Skip to content

Commit d1ecc51

Browse files
committed
readtags,refactor: move "canon" local variable in main function to inputSpec
Signed-off-by: Masatake YAMATO <[email protected]>
1 parent e751d3a commit d1ecc51

File tree

1 file changed

+32
-30
lines changed

1 file changed

+32
-30
lines changed

extra-cmds/readtags-cmd.c

Lines changed: 32 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,8 @@ struct actionSpec {
5555
ACTION_LIST_PTAGS = 1 << 2,
5656
} action;
5757
const char *name; /* for ACTION_FIND */
58+
bool canonicalizing;
59+
struct canonWorkArea canon;
5860
};
5961

6062
static const char *ProgramName;
@@ -719,24 +721,17 @@ extern int main (int argc, char **argv)
719721
struct actionSpec actionSpec = {
720722
.action = ACTION_NONE,
721723
.name = NULL,
724+
.canonicalizing = false,
725+
.canon = {
726+
.cacheTable = NULL,
727+
.ptags = false,
728+
/* .absoluteOnly = false, */
729+
},
722730
};
723731

724732
memset (&printOpts, 0, sizeof (printOpts));
725733
memset (&readOpts, 0, sizeof (readOpts));
726734

727-
struct canonWorkArea canonWorkArea = {
728-
.cacheTable = NULL,
729-
.ptags = false,
730-
.absoluteOnly = false,
731-
};
732-
struct canonWorkArea canonWorkAreaAbsForm = {
733-
.cacheTable = NULL,
734-
.ptags = false,
735-
.absoluteOnly = true,
736-
};
737-
struct canonWorkArea *canon = NULL;
738-
739-
740735
ProgramName = argv [0];
741736
setExecutableName (ProgramName);
742737
if (argc == 1)
@@ -839,9 +834,15 @@ extern int main (int argc, char **argv)
839834
}
840835
}
841836
else if (strcmp (optname, "absolute-input") == 0)
842-
canon = &canonWorkAreaAbsForm;
837+
{
838+
actionSpec.canonicalizing = true;
839+
actionSpec.canon.absoluteOnly = true;
840+
}
843841
else if (strcmp (optname, "canonicalize-input") == 0)
844-
canon = &canonWorkArea;
842+
{
843+
actionSpec.canonicalizing = true;
844+
actionSpec.canon.absoluteOnly = false;
845+
}
845846
#ifdef READTAGS_DSL
846847
else if (strcmp (optname, "filter") == 0)
847848
{
@@ -952,10 +953,12 @@ extern int main (int argc, char **argv)
952953
printUsage(stderr, 1);
953954
break;
954955
case 'A':
955-
canon = &canonWorkAreaAbsForm;
956+
actionSpec.canonicalizing = true;
957+
actionSpec.canon.absoluteOnly = true;
956958
break;
957959
case 'C':
958-
canon = &canonWorkArea;
960+
actionSpec.canonicalizing = true;
961+
actionSpec.canon.absoluteOnly = false;
959962
break;
960963
#ifdef READTAGS_DSL
961964
case 'Q':
@@ -1009,18 +1012,20 @@ extern int main (int argc, char **argv)
10091012

10101013
if (actionSpec.action & ACTION_LIST_PTAGS)
10111014
{
1012-
if (canon)
1013-
canon->ptags = true;
1014-
listTags (&inputSpec, 1, &printOpts, canon);
1015-
if (canon)
1016-
canon->ptags = false;
1015+
if (actionSpec.canonicalizing)
1016+
actionSpec.canon.ptags = true;
1017+
listTags (&inputSpec, 1, &printOpts,
1018+
actionSpec.canonicalizing? &actionSpec.canon: NULL);
1019+
if (actionSpec.canonicalizing)
1020+
actionSpec.canon.ptags = false;
10171021
}
10181022

10191023
if (actionSpec.action & ACTION_FIND)
1020-
findTag (&inputSpec, actionSpec.name, &readOpts, &printOpts, canon);
1024+
findTag (&inputSpec, actionSpec.name, &readOpts, &printOpts,
1025+
actionSpec.canonicalizing? &actionSpec.canon: NULL);
10211026
else if (actionSpec.action & ACTION_LIST)
1022-
listTags (&inputSpec, 0, &printOpts, canon);
1023-
1027+
listTags (&inputSpec, 0, &printOpts,
1028+
actionSpec.canonicalizing? &actionSpec.canon: NULL);
10241029

10251030
#ifdef READTAGS_DSL
10261031
if (Qualifier)
@@ -1031,11 +1036,8 @@ extern int main (int argc, char **argv)
10311036
f_destroy (Formatter);
10321037
#endif
10331038

1034-
if (canon)
1035-
{
1036-
if (canon->cacheTable)
1037-
canonFnameCacheTableDelete (canon->cacheTable);
1038-
}
1039+
if (actionSpec.canon.cacheTable)
1040+
canonFnameCacheTableDelete (actionSpec.canon.cacheTable);
10391041

10401042
if (inputSpec.tempFileName)
10411043
{

0 commit comments

Comments
 (0)