aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/builtin_complete.cpp
diff options
context:
space:
mode:
authorGravatar ridiculousfish <corydoras@ridiculousfish.com>2015-07-25 18:16:00 -0700
committerGravatar ridiculousfish <corydoras@ridiculousfish.com>2015-07-25 18:16:34 -0700
commitf4d1657c22c81a7720a91026f915b80d2d6aa6e8 (patch)
tree03ebc46be5d18b98e2eecc76ccde83697a5b89cd /src/builtin_complete.cpp
parentcaab298f723590fdaaff887ec32d1530da18920b (diff)
Eliminate wgetopt global variables
Replace them with a new struct wgetopter_t that uses instance variables instead.
Diffstat (limited to 'src/builtin_complete.cpp')
-rw-r--r--src/builtin_complete.cpp37
1 files changed, 19 insertions, 18 deletions
diff --git a/src/builtin_complete.cpp b/src/builtin_complete.cpp
index b11ad7bf..6c4ccbcb 100644
--- a/src/builtin_complete.cpp
+++ b/src/builtin_complete.cpp
@@ -287,6 +287,7 @@ static void builtin_complete_remove(const wcstring_list_t &cmd,
static int builtin_complete(parser_t &parser, wchar_t **argv)
{
ASSERT_IS_MAIN_THREAD();
+ wgetopter_t w;
bool res=false;
int argc=0;
int result_mode=SHARED;
@@ -308,7 +309,7 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
argc = builtin_count_args(argv);
- woptind=0;
+ w.woptind=0;
while (! res)
{
@@ -337,11 +338,11 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
int opt_index = 0;
- int opt = wgetopt_long(argc,
- argv,
- L"a:c:p:s:l:o:d:frxeuAn:C::w:h",
- long_options,
- &opt_index);
+ int opt = w.wgetopt_long(argc,
+ argv,
+ L"a:c:p:s:l:o:d:frxeuAn:C::w:h",
+ long_options,
+ &opt_index);
if (opt == -1)
break;
@@ -376,7 +377,7 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
case 'c':
{
wcstring tmp;
- if (unescape_string(woptarg, &tmp, UNESCAPE_SPECIAL))
+ if (unescape_string(w.woptarg, &tmp, UNESCAPE_SPECIAL))
{
if (opt=='p')
path.push_back(tmp);
@@ -385,14 +386,14 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
}
else
{
- append_format(stderr_buffer, L"%ls: Invalid token '%ls'\n", argv[0], woptarg);
+ append_format(stderr_buffer, L"%ls: Invalid token '%ls'\n", argv[0], w.woptarg);
res = true;
}
break;
}
case 'd':
- desc = woptarg;
+ desc = w.woptarg;
break;
case 'u':
@@ -404,19 +405,19 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
break;
case 's':
- short_opt.append(woptarg);
+ short_opt.append(w.woptarg);
break;
case 'l':
- gnu_opt.push_back(woptarg);
+ gnu_opt.push_back(w.woptarg);
break;
case 'o':
- old_opt.push_back(woptarg);
+ old_opt.push_back(w.woptarg);
break;
case 'a':
- comp = woptarg;
+ comp = w.woptarg;
break;
case 'e':
@@ -424,16 +425,16 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
break;
case 'n':
- condition = woptarg;
+ condition = w.woptarg;
break;
case 'w':
- wrap_targets.push_back(woptarg);
+ wrap_targets.push_back(w.woptarg);
break;
case 'C':
do_complete = true;
- do_complete_param = woptarg ? woptarg : reader_get_buffer();
+ do_complete_param = w.woptarg ? w.woptarg : reader_get_buffer();
break;
case 'h':
@@ -441,7 +442,7 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
return 0;
case '?':
- builtin_unknown_option(parser, argv[0], argv[woptind-1]);
+ builtin_unknown_option(parser, argv[0], argv[w.woptind-1]);
res = true;
break;
@@ -545,7 +546,7 @@ static int builtin_complete(parser_t &parser, wchar_t **argv)
recursion_level--;
}
}
- else if (woptind != argc)
+ else if (w.woptind != argc)
{
append_format(stderr_buffer,
_(L"%ls: Too many arguments\n"),