hush: search/and/replace style cleanups, no code changes
No binary (build failed)
—
(log yok)
| @@ -20,7 +20,7 @@ | |
| * rewrites. | |
| * | |
| * Other credits: | |
| - | * b_addchr() derived from similar w_addchar function in glibc-2.2 |
| + | * o_addchr() derived from similar w_addchar function in glibc-2.2 |
| * setup_redirect(), redirect_opt_num(), and big chunks of main() | |
| * and many builtins derived from contributions by Erik Andersen | |
| * miscellaneous bugfixes from Matt Kraai | |
| @@ -293,10 +293,6 @@ struct child_prog { | |
| smallint is_stopped; /* is the program currently running? */ | |
| struct redir_struct *redirects; /* I/O redirections */ | |
| struct pipe *family; /* pointer back to the child's parent pipe */ | |
| - | //sp counting seems to be broken... so commented out, grep for '//sp:' |
| - | //sp: int sp; /* number of SPECIAL_VAR_SYMBOL */ |
| - | //seems to be unused, grep for '//pt:' |
| - | //pt: int parse_type; |
| }; | |
| /* argv vector may contain variable references (^Cvar^C, ^C0^C etc) | |
| * and on execution these are substituted with their values. | |
| @@ -361,8 +357,8 @@ struct in_str { | |
| int (*get) (struct in_str *); | |
| int (*peek) (struct in_str *); | |
| }; | |
| - | #define b_getch(input) ((input)->get(input)) |
| - | #define b_peek(input) ((input)->peek(input)) |
| + | #define i_getch(input) ((input)->get(input)) |
| + | #define i_peek(input) ((input)->peek(input)) |
| enum { | |
| CHAR_ORDINARY = 0, | |
| @@ -533,12 +529,12 @@ static int done_pipe(struct p_context *ctx, pipe_style type); | |
| static int redirect_dup_num(struct in_str *input); | |
| static int redirect_opt_num(o_string *o); | |
| #if ENABLE_HUSH_TICK | |
| - | static int process_command_subs(o_string *dest, /*struct p_context *ctx,*/ |
| + | static int process_command_subs(o_string *dest, |
| struct in_str *input, const char *subst_end); | |
| #endif | |
| static int parse_group(o_string *dest, struct p_context *ctx, struct in_str *input, int ch); | |
| static const char *lookup_param(const char *src); | |
| - | static int handle_dollar(o_string *dest, /*struct p_context *ctx,*/ |
| + | static int handle_dollar(o_string *dest, |
| struct in_str *input); | |
| static int parse_stream(o_string *dest, struct p_context *ctx, struct in_str *input0, const char *end_trigger); | |
| /* setup: */ | |
| @@ -1175,7 +1171,7 @@ static int builtin_unset(char **argv) | |
| */ | |
| #define B_CHUNK (32 * sizeof(char*)) | |
| - | static void b_reset(o_string *o) |
| + | static void o_reset(o_string *o) |
| { | |
| o->length = 0; | |
| o->nonnull = 0; | |
| @@ -1183,13 +1179,13 @@ static void b_reset(o_string *o) | |
| o->data[0] = '\0'; | |
| } | |
| - | static void b_free(o_string *o) |
| + | static void o_free(o_string *o) |
| { | |
| free(o->data); | |
| memset(o, 0, sizeof(*o)); | |
| } | |
| - | static void b_grow_by(o_string *o, int len) |
| + | static void o_grow_by(o_string *o, int len) |
| { | |
| if (o->length + len > o->maxlen) { | |
| o->maxlen += (2*len > B_CHUNK ? 2*len : B_CHUNK); | |
| @@ -1197,18 +1193,18 @@ static void b_grow_by(o_string *o, int len) | |
| } | |
| } | |
| - | static void b_addchr(o_string *o, int ch) |
| + | static void o_addchr(o_string *o, int ch) |
| { | |
| - | debug_printf("b_addchr: '%c' o->length=%d o=%p\n", ch, o->length, o); |
| - | b_grow_by(o, 1); |
| + | debug_printf("o_addchr: '%c' o->length=%d o=%p\n", ch, o->length, o); |
| + | o_grow_by(o, 1); |
| o->data[o->length] = ch; | |
| o->length++; | |
| o->data[o->length] = '\0'; | |
| } | |
| - | static void b_addstr(o_string *o, const char *str, int len) |
| + | static void o_addstr(o_string *o, const char *str, int len) |
| { | |
| - | b_grow_by(o, len); |
| + | o_grow_by(o, len); |
| memcpy(&o->data[o->length], str, len); | |
| o->length += len; | |
| o->data[o->length] = '\0'; | |
| @@ -1217,12 +1213,12 @@ static void b_addstr(o_string *o, const char *str, int len) | |
| /* My analysis of quoting semantics tells me that state information | |
| * is associated with a destination, not a source. | |
| */ | |
| - | static void b_addqchr(o_string *o, int ch, int quote) |
| + | static void o_addqchr(o_string *o, int ch, int quote) |
| { | |
| if (quote && strchr("*?[\\", ch)) { | |
| - | b_addchr(o, '\\'); |
| + | o_addchr(o, '\\'); |
| } | |
| - | b_addchr(o, ch); |
| + | o_addchr(o, ch); |
| } | |
| /* A special kind of o_string for $VAR and `cmd` expansion. | |
| @@ -1232,10 +1228,10 @@ static void b_addqchr(o_string *o, int ch, int quote) | |
| * It means that if list[] needs to grow, data needs to be moved higher up | |
| * but list[i]'s need not be modified. | |
| * NB: remembering how many list[i]'s you have there is crucial. | |
| - | * b_finalize_list() operation post-processes this structure - calculates |
| + | * o_finalize_list() operation post-processes this structure - calculates |
| * and stores actual char* ptrs in list[]. Oh, it NULL terminates it as well. | |
| */ | |
| - | static int b_addptr(o_string *o, int n) |
| + | static int o_save_ptr(o_string *o, int n) |
| { | |
| char **list = (char**)o->data; | |
| int string_start = ((n + 0xf) & ~0xf) * sizeof(list[0]); | |
| @@ -1258,7 +1254,7 @@ static int b_addptr(o_string *o, int n) | |
| return n + 1; | |
| } | |
| - | static int b_get_last_ptr(o_string *o, int n) |
| + | static int o_get_last_ptr(o_string *o, int n) |
| { | |
| char **list = (char**)o->data; | |
| int string_start = ((n + 0xf) & ~0xf) * sizeof(list[0]); | |
| @@ -1266,12 +1262,12 @@ static int b_get_last_ptr(o_string *o, int n) | |
| return ((int)list[n-1]) + string_start; | |
| } | |
| - | static char **b_finalize_list(o_string *o, int n) |
| + | static char **o_finalize_list(o_string *o, int n) |
| { | |
| char **list = (char**)o->data; | |
| int string_start; | |
| - | b_addptr(o, n); /* force growth for list[n] if necessary */ |
| + | o_save_ptr(o, n); /* force growth for list[n] if necessary */ |
| string_start = ((n+1 + 0xf) & ~0xf) * sizeof(list[0]); | |
| list[n] = NULL; | |
| while (n) { | |
| @@ -1282,7 +1278,7 @@ static char **b_finalize_list(o_string *o, int n) | |
| } | |
| #ifdef DEBUG_EXPAND | |
| - | static void b_debug_list(const char *prefix, o_string *o, int n) |
| + | static void o_debug_list(const char *prefix, o_string *o, int n) |
| { | |
| char **list = (char**)o->data; | |
| int string_start = ((n + 0xf) & ~0xf) * sizeof(list[0]); | |
| @@ -1300,7 +1296,7 @@ static void b_debug_list(const char *prefix, o_string *o, int n) | |
| } | |
| } | |
| #else | |
| - | #define b_debug_list(prefix, o, n) ((void)0) |
| + | #define o_debug_list(prefix, o, n) ((void)0) |
| #endif | |
| @@ -1931,7 +1927,6 @@ static int run_pipe(struct pipe *pi) | |
| } | |
| for (i = 0; is_assignment(argv[i]); i++) { | |
| p = expand_string_to_string(argv[i]); | |
| - | //sp: child->sp--; |
| putenv(p); | |
| } | |
| for (x = bltins; x->cmd; x++) { | |
| @@ -1948,7 +1943,6 @@ static int run_pipe(struct pipe *pi) | |
| * things seem to work with glibc. */ | |
| setup_redirects(child, squirrel); | |
| debug_printf_exec(": builtin '%s' '%s'...\n", x->cmd, argv[i+1]); | |
| - | //sp: if (child->sp) /* btw we can do it unconditionally... */ |
| argv_expanded = expand_strvec_to_strvec(argv + i); | |
| rcode = x->function(argv_expanded) & 0xff; | |
| free(argv_expanded); | |
| @@ -1964,7 +1958,6 @@ static int run_pipe(struct pipe *pi) | |
| setup_redirects(child, squirrel); | |
| save_nofork_data(&nofork_save); | |
| argv_expanded = argv + i; | |
| - | //sp: if (child->sp) |
| argv_expanded = expand_strvec_to_strvec(argv + i); | |
| debug_printf_exec(": run_nofork_applet '%s' '%s'...\n", argv_expanded[0], argv_expanded[1]); | |
| rcode = run_nofork_applet_prime(&nofork_save, a, argv_expanded); | |
| @@ -2549,17 +2542,17 @@ static int expand_on_ifs(o_string *output, int n, const char *str) | |
| while (1) { | |
| int word_len = strcspn(str, ifs); | |
| if (word_len) { | |
| - | b_addstr(output, str, word_len); /* store non-ifs chars */ |
| + | o_addstr(output, str, word_len); /* store non-ifs chars */ |
| str += word_len; | |
| } | |
| if (!*str) /* EOL - do not finalize word */ | |
| break; | |
| - | b_addchr(output, '\0'); |
| - | b_debug_list("expand_on_ifs", output, n); |
| - | n = b_addptr(output, n); |
| + | o_addchr(output, '\0'); |
| + | o_debug_list("expand_on_ifs", output, n); |
| + | n = o_save_ptr(output, n); |
| str += strspn(str, ifs); /* skip ifs chars */ | |
| } | |
| - | b_debug_list("expand_on_ifs[1]", output, n); |
| + | o_debug_list("expand_on_ifs[1]", output, n); |
| return n; | |
| } | |
| @@ -2583,15 +2576,15 @@ static int expand_vars_to_list(o_string *output, int n, char *arg, char or_mask) | |
| ored_ch = 0; | |
| debug_printf_expand("expand_vars_to_list: arg '%s'\n", arg); | |
| - | b_debug_list("expand_vars_to_list", output, n); |
| - | n = b_addptr(output, n); |
| - | b_debug_list("expand_vars_to_list[0]", output, n); |
| + | o_debug_list("expand_vars_to_list", output, n); |
| + | n = o_save_ptr(output, n); |
| + | o_debug_list("expand_vars_to_list[0]", output, n); |
| while ((p = strchr(arg, SPECIAL_VAR_SYMBOL)) != NULL) { | |
| o_string subst_result = NULL_O_STRING; | |
| - | b_addstr(output, arg, p - arg); |
| - | b_debug_list("expand_vars_to_list[1]", output, n); |
| + | o_addstr(output, arg, p - arg); |
| + | o_debug_list("expand_vars_to_list[1]", output, n); |
| arg = ++p; | |
| p = strchr(p, SPECIAL_VAR_SYMBOL); | |
| @@ -2625,10 +2618,10 @@ static int expand_vars_to_list(o_string *output, int n, char *arg, char or_mask) | |
| if (global_argv[i++][0] && global_argv[i]) { | |
| /* this argv[] is not empty and not last: | |
| * put terminating NUL, start new word */ | |
| - | b_addchr(output, '\0'); |
| - | b_debug_list("expand_vars_to_list[2]", output, n); |
| - | n = b_addptr(output, n); |
| - | b_debug_list("expand_vars_to_list[3]", output, n); |
| + | o_addchr(output, '\0'); |
| + | o_debug_list("expand_vars_to_list[2]", output, n); |
| + | n = o_save_ptr(output, n); |
| + | o_debug_list("expand_vars_to_list[3]", output, n); |
| } | |
| } | |
| } else | |
| @@ -2636,20 +2629,20 @@ static int expand_vars_to_list(o_string *output, int n, char *arg, char or_mask) | |
| * and in this case should treat it like '$*' - see 'else...' below */ | |
| if (first_ch == ('@'|0x80) && !or_mask) { /* quoted $@ */ | |
| while (1) { | |
| - | b_addstr(output, global_argv[i], strlen(global_argv[i])); |
| + | o_addstr(output, global_argv[i], strlen(global_argv[i])); |
| if (++i >= global_argc) | |
| break; | |
| - | b_addchr(output, '\0'); |
| - | b_debug_list("expand_vars_to_list[4]", output, n); |
| - | n = b_addptr(output, n); |
| + | o_addchr(output, '\0'); |
| + | o_debug_list("expand_vars_to_list[4]", output, n); |
| + | n = o_save_ptr(output, n); |
| } | |
| } else { /* quoted $*: add as one word */ | |
| while (1) { | |
| - | b_addstr(output, global_argv[i], strlen(global_argv[i])); |
| + | o_addstr(output, global_argv[i], strlen(global_argv[i])); |
| if (!global_argv[++i]) | |
| break; | |
| if (ifs[0]) | |
| - | b_addchr(output, ifs[0]); |
| + | o_addchr(output, ifs[0]); |
| } | |
| } | |
| break; | |
| @@ -2685,17 +2678,17 @@ static int expand_vars_to_list(o_string *output, int n, char *arg, char or_mask) | |
| } /* else: quoted $VAR, val will be appended below */ | |
| } | |
| if (val) | |
| - | b_addstr(output, val, strlen(val)); |
| + | o_addstr(output, val, strlen(val)); |
| - | b_free(&subst_result); |
| + | o_free(&subst_result); |
| arg = ++p; | |
| } /* end of "while (SPECIAL_VAR_SYMBOL is found) ..." */ | |
| - | b_debug_list("expand_vars_to_list[a]", output, n); |
| - | b_addstr(output, arg, strlen(arg) + 1); |
| - | b_debug_list("expand_vars_to_list[b]", output, n); |
| + | o_debug_list("expand_vars_to_list[a]", output, n); |
| + | o_addstr(output, arg, strlen(arg) + 1); |
| + | o_debug_list("expand_vars_to_list[b]", output, n); |
| //TESTME | |
| - | if (output->length - 1 == b_get_last_ptr(output, n)) { /* expansion is empty */ |
| + | if (output->length - 1 == o_get_last_ptr(output, n)) { /* expansion is empty */ |
| if (!(ored_ch & 0x80)) { /* all vars were not quoted... */ | |
| n--; | |
| /* allow to reuse list[n] later without re-growth */ | |
| @@ -2717,10 +2710,10 @@ static char **expand_variables(char **argv, char or_mask) | |
| v = argv; | |
| while (*v) | |
| n = expand_vars_to_list(&output, n, *v++, or_mask); | |
| - | b_debug_list("expand_variables", &output, n); |
| + | o_debug_list("expand_variables", &output, n); |
| /* output.data (malloced) gets returned in "list" */ | |
| - | list = b_finalize_list(&output, n); |
| + | list = o_finalize_list(&output, n); |
| #ifdef DEBUG_EXPAND | |
| { | |
| @@ -3021,7 +3014,7 @@ static int reserved_word(o_string *dest, struct p_context *ctx) | |
| if (ctx->res_w == RES_IN || ctx->res_w == RES_FOR) { | |
| syntax("malformed for"); /* example: 'for if' */ | |
| ctx->res_w = RES_SNTX; | |
| - | b_reset(dest); |
| + | o_reset(dest); |
| return 1; | |
| } | |
| #endif | |
| @@ -3032,7 +3025,7 @@ static int reserved_word(o_string *dest, struct p_context *ctx) | |
| } else if (ctx->res_w == RES_NONE || !(ctx->old_flag & (1 << r->code))) { | |
| syntax(NULL); | |
| ctx->res_w = RES_SNTX; | |
| - | b_reset(dest); |
| + | o_reset(dest); |
| return 1; | |
| } | |
| ctx->res_w = r->code; | |
| @@ -3047,7 +3040,7 @@ static int reserved_word(o_string *dest, struct p_context *ctx) | |
| *ctx = *old; /* physical copy */ | |
| free(old); | |
| } | |
| - | b_reset(dest); |
| + | o_reset(dest); |
| return 1; | |
| } | |
| return 0; | |
| @@ -3092,7 +3085,7 @@ static int done_word(o_string *dest, struct p_context *ctx) | |
| return 1; | |
| } | |
| - | b_reset(dest); |
| + | o_reset(dest); |
| if (ctx->pending_redirect) { | |
| /* NB: don't free_strings(ctx->pending_redirect->glob_word) here */ | |
| if (ctx->pending_redirect->glob_word | |
| @@ -3151,8 +3144,6 @@ static int done_command(struct p_context *ctx) | |
| /*child->is_stopped = 0;*/ | |
| /*child->group = NULL;*/ | |
| child->family = pi; | |
| - | //sp: /*child->sp = 0;*/ |
| - | //pt: child->parse_type = ctx->parse_type; |
| ctx->child = child; | |
| /* but ctx->pipe and ctx->list_head remain unchanged */ | |
| @@ -3190,20 +3181,20 @@ static int done_pipe(struct p_context *ctx, pipe_style type) | |
| static int redirect_dup_num(struct in_str *input) | |
| { | |
| int ch, d = 0, ok = 0; | |
| - | ch = b_peek(input); |
| + | ch = i_peek(input); |
| if (ch != '&') return -1; | |
| - | b_getch(input); /* get the & */ |
| - | ch = b_peek(input); |
| + | i_getch(input); /* get the & */ |
| + | ch = i_peek(input); |
| if (ch == '-') { | |
| - | b_getch(input); |
| + | i_getch(input); |
| return -3; /* "-" represents "close me" */ | |
| } | |
| while (isdigit(ch)) { | |
| d = d*10 + (ch-'0'); | |
| ok = 1; | |
| - | b_getch(input); |
| - | ch = b_peek(input); |
| + | i_getch(input); |
| + | ch = i_peek(input); |
| } | |
| if (ok) return d; | |
| @@ -3235,7 +3226,7 @@ static int redirect_opt_num(o_string *o) | |
| } | |
| /* reuse num (and save an int) */ | |
| num = atoi(o->data); | |
| - | b_reset(o); |
| + | o_reset(o); |
| return num; | |
| } | |
| @@ -3285,7 +3276,6 @@ static FILE *generate_stream_from_list(struct pipe *head) | |
| /* Return code is exit status of the process that is run. */ | |
| static int process_command_subs(o_string *dest, | |
| - | /*struct p_context *ctx,*/ |
| struct in_str *input, | |
| const char *subst_end) | |
| { | |
| @@ -3303,7 +3293,7 @@ static int process_command_subs(o_string *dest, | |
| return retcode; /* syntax error or EOF */ | |
| done_word(&result, &inner); | |
| done_pipe(&inner, PIPE_SEQ); | |
| - | b_free(&result); |
| + | o_free(&result); |
| p = generate_stream_from_list(inner.list_head); | |
| if (p == NULL) | |
| @@ -3313,16 +3303,16 @@ static int process_command_subs(o_string *dest, | |
| /* now send results of command back into original context */ | |
| eol_cnt = 0; | |
| - | while ((ch = b_getch(&pipe_str)) != EOF) { |
| + | while ((ch = i_getch(&pipe_str)) != EOF) { |
| if (ch == '\n') { | |
| eol_cnt++; | |
| continue; | |
| } | |
| while (eol_cnt) { | |
| - | b_addqchr(dest, '\n', dest->o_quote); |
| + | o_addqchr(dest, '\n', dest->o_quote); |
| eol_cnt--; | |
| } | |
| - | b_addqchr(dest, ch, dest->o_quote); |
| + | o_addqchr(dest, ch, dest->o_quote); |
| } | |
| debug_printf("done reading from pipe, pclose()ing\n"); | |
| @@ -3386,31 +3376,31 @@ static void add_till_backquote(o_string *dest, struct in_str *input); | |
| static void add_till_single_quote(o_string *dest, struct in_str *input) | |
| { | |
| while (1) { | |
| - | int ch = b_getch(input); |
| + | int ch = i_getch(input); |
| if (ch == EOF) | |
| break; | |
| if (ch == '\'') | |
| break; | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| } | |
| } | |
| /* "...\"...`..`...." - do we need to handle "...$(..)..." too? */ | |
| static void add_till_double_quote(o_string *dest, struct in_str *input) | |
| { | |
| while (1) { | |
| - | int ch = b_getch(input); |
| + | int ch = i_getch(input); |
| if (ch == '"') | |
| break; | |
| if (ch == '\\') { /* \x. Copy both chars. */ | |
| - | b_addchr(dest, ch); |
| - | ch = b_getch(input); |
| + | o_addchr(dest, ch); |
| + | ch = i_getch(input); |
| } | |
| if (ch == EOF) | |
| break; | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| if (ch == '`') { | |
| add_till_backquote(dest, input); | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| continue; | |
| } | |
| // if (ch == '$') ... | |
| @@ -3433,19 +3423,19 @@ static void add_till_double_quote(o_string *dest, struct in_str *input) | |
| static void add_till_backquote(o_string *dest, struct in_str *input) | |
| { | |
| while (1) { | |
| - | int ch = b_getch(input); |
| + | int ch = i_getch(input); |
| //bb_error_msg("ADD '%c'", ch); | |
| if (ch == '`') | |
| break; | |
| if (ch == '\\') { /* \x. Copy both chars unless it is \` */ | |
| - | int ch2 = b_getch(input); |
| + | int ch2 = i_getch(input); |
| if (ch2 != '`' && ch2 != '$' && ch2 != '\\') | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| ch = ch2; | |
| } | |
| if (ch == EOF) | |
| break; | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| } | |
| } | |
| /* Process $(cmd) - copy contents until ")" is seen. Complicated by | |
| @@ -3464,7 +3454,7 @@ static void add_till_closing_curly_brace(o_string *dest, struct in_str *input) | |
| { | |
| int count = 0; | |
| while (1) { | |
| - | int ch = b_getch(input); |
| + | int ch = i_getch(input); |
| if (ch == EOF) | |
| break; | |
| if (ch == '(') | |
| @@ -3472,51 +3462,47 @@ static void add_till_closing_curly_brace(o_string *dest, struct in_str *input) | |
| if (ch == ')') | |
| if (--count < 0) | |
| break; | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| if (ch == '\'') { | |
| add_till_single_quote(dest, input); | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| continue; | |
| } | |
| if (ch == '"') { | |
| add_till_double_quote(dest, input); | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| continue; | |
| } | |
| } | |
| } | |
| #endif /* ENABLE_HUSH_TICK */ | |
| - | //FIXME: remove ctx and sp |
| - | |
| /* return code: 0 for OK, 1 for syntax error */ | |
| - | static int handle_dollar(o_string *dest, /*struct p_context *ctx,*/ struct in_str *input) |
| + | static int handle_dollar(o_string *dest, struct in_str *input) |
| { | |
| - | int ch = b_peek(input); /* first character after the $ */ |
| + | int ch = i_peek(input); /* first character after the $ */ |
| unsigned char quote_mask = dest->o_quote ? 0x80 : 0; | |
| debug_printf_parse("handle_dollar entered: ch='%c'\n", ch); | |
| if (isalpha(ch)) { | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| - | //sp: ctx->child->sp++; |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| while (1) { | |
| debug_printf_parse(": '%c'\n", ch); | |
| - | b_getch(input); |
| - | b_addchr(dest, ch | quote_mask); |
| + | i_getch(input); |
| + | o_addchr(dest, ch | quote_mask); |
| quote_mask = 0; | |
| - | ch = b_peek(input); |
| + | ch = i_peek(input); |
| if (!isalnum(ch) && ch != '_') | |
| break; | |
| } | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| } else if (isdigit(ch)) { | |
| make_one_char_var: | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| - | //sp: ctx->child->sp++; |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| debug_printf_parse(": '%c'\n", ch); | |
| - | b_getch(input); |
| - | b_addchr(dest, ch | quote_mask); |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | i_getch(input); |
| + | o_addchr(dest, ch | quote_mask); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| } else switch (ch) { | |
| case '$': /* pid */ | |
| case '!': /* last bg pid */ | |
| @@ -3526,12 +3512,11 @@ static int handle_dollar(o_string *dest, /*struct p_context *ctx,*/ struct in_st | |
| case '@': /* args */ | |
| goto make_one_char_var; | |
| case '{': | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| - | //sp: ctx->child->sp++; |
| - | b_getch(input); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | i_getch(input); |
| /* XXX maybe someone will try to escape the '}' */ | |
| while (1) { | |
| - | ch = b_getch(input); |
| + | ch = i_getch(input); |
| if (ch == '}') | |
| break; | |
| if (!isalnum(ch) && ch != '_') { | |
| @@ -3540,18 +3525,18 @@ static int handle_dollar(o_string *dest, /*struct p_context *ctx,*/ struct in_st | |
| return 1; | |
| } | |
| debug_printf_parse(": '%c'\n", ch); | |
| - | b_addchr(dest, ch | quote_mask); |
| + | o_addchr(dest, ch | quote_mask); |
| quote_mask = 0; | |
| } | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| break; | |
| #if ENABLE_HUSH_TICK | |
| case '(': | |
| - | b_getch(input); |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| - | b_addchr(dest, quote_mask | '`'); |
| + | i_getch(input); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, quote_mask | '`'); |
| add_till_closing_curly_brace(dest, input); | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| break; | |
| #endif | |
| case '-': | |
| @@ -3561,7 +3546,7 @@ static int handle_dollar(o_string *dest, /*struct p_context *ctx,*/ struct in_st | |
| return 1; | |
| break; | |
| default: | |
| - | b_addqchr(dest, '$', dest->o_quote); |
| + | o_addqchr(dest, '$', dest->o_quote); |
| } | |
| debug_printf_parse("handle_dollar return 0\n"); | |
| return 0; | |
| @@ -3585,11 +3570,11 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| while (1) { | |
| m = CHAR_IFS; | |
| next = '\0'; | |
| - | ch = b_getch(input); |
| + | ch = i_getch(input); |
| if (ch != EOF) { | |
| m = charmap[ch]; | |
| if (ch != '\n') | |
| - | next = b_peek(input); |
| + | next = i_peek(input); |
| } | |
| debug_printf_parse(": ch=%c (%d) m=%d quote=%d\n", | |
| ch, ch, m, dest->o_quote); | |
| @@ -3601,7 +3586,7 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| debug_printf_parse("parse_stream return 1: unterminated \"\n"); | |
| return 1; | |
| } | |
| - | b_addqchr(dest, ch, dest->o_quote); |
| + | o_addqchr(dest, ch, dest->o_quote); |
| continue; | |
| } | |
| if (m == CHAR_IFS) { | |
| @@ -3630,13 +3615,13 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| case '#': | |
| if (dest->length == 0 && !dest->o_quote) { | |
| while (1) { | |
| - | ch = b_peek(input); |
| + | ch = i_peek(input); |
| if (ch == EOF || ch == '\n') | |
| break; | |
| - | b_getch(input); |
| + | i_getch(input); |
| } | |
| } else { | |
| - | b_addqchr(dest, ch, dest->o_quote); |
| + | o_addqchr(dest, ch, dest->o_quote); |
| } | |
| break; | |
| case '\\': | |
| @@ -3645,11 +3630,11 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| debug_printf_parse("parse_stream return 1: \\<eof>\n"); | |
| return 1; | |
| } | |
| - | b_addqchr(dest, '\\', dest->o_quote); |
| - | b_addqchr(dest, b_getch(input), dest->o_quote); |
| + | o_addqchr(dest, '\\', dest->o_quote); |
| + | o_addqchr(dest, i_getch(input), dest->o_quote); |
| break; | |
| case '$': | |
| - | if (handle_dollar(dest, /*ctx,*/ input) != 0) { |
| + | if (handle_dollar(dest, input) != 0) { |
| debug_printf_parse("parse_stream return 1: handle_dollar returned non-0\n"); | |
| return 1; | |
| } | |
| @@ -3657,10 +3642,10 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| case '\'': | |
| dest->nonnull = 1; | |
| while (1) { | |
| - | ch = b_getch(input); |
| + | ch = i_getch(input); |
| if (ch == EOF || ch == '\'') | |
| break; | |
| - | b_addchr(dest, ch); |
| + | o_addchr(dest, ch); |
| } | |
| if (ch == EOF) { | |
| syntax("unterminated '"); | |
| @@ -3675,10 +3660,10 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| #if ENABLE_HUSH_TICK | |
| case '`': { | |
| //int pos = dest->length; | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| - | b_addchr(dest, dest->o_quote ? 0x80 | '`' : '`'); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, dest->o_quote ? 0x80 | '`' : '`'); |
| add_till_backquote(dest, input); | |
| - | b_addchr(dest, SPECIAL_VAR_SYMBOL); |
| + | o_addchr(dest, SPECIAL_VAR_SYMBOL); |
| //bb_error_msg("RES '%s'", dest->data + pos); | |
| break; | |
| } | |
| @@ -3689,7 +3674,7 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| redir_style = REDIRECT_OVERWRITE; | |
| if (next == '>') { | |
| redir_style = REDIRECT_APPEND; | |
| - | b_getch(input); |
| + | i_getch(input); |
| } | |
| #if 0 | |
| else if (next == '(') { | |
| @@ -3706,10 +3691,10 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| redir_style = REDIRECT_INPUT; | |
| if (next == '<') { | |
| redir_style = REDIRECT_HEREIS; | |
| - | b_getch(input); |
| + | i_getch(input); |
| } else if (next == '>') { | |
| redir_style = REDIRECT_IO; | |
| - | b_getch(input); |
| + | i_getch(input); |
| } | |
| #if 0 | |
| else if (next == '(') { | |
| @@ -3727,7 +3712,7 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| case '&': | |
| done_word(dest, ctx); | |
| if (next == '&') { | |
| - | b_getch(input); |
| + | i_getch(input); |
| done_pipe(ctx, PIPE_AND); | |
| } else { | |
| done_pipe(ctx, PIPE_BG); | |
| @@ -3736,7 +3721,7 @@ static int parse_stream(o_string *dest, struct p_context *ctx, | |
| case '|': | |
| done_word(dest, ctx); | |
| if (next == '|') { | |
| - | b_getch(input); |
| + | i_getch(input); |
| done_pipe(ctx, PIPE_OR); | |
| } else { | |
| /* we could pick up a file descriptor choice here | |
| @@ -3836,14 +3821,14 @@ static int parse_and_run_stream(struct in_str *inp, int parse_flag) | |
| } else { | |
| if (ctx.old_flag != 0) { | |
| free(ctx.stack); | |
| - | b_reset(&temp); |
| + | o_reset(&temp); |
| } | |
| temp.nonnull = 0; | |
| temp.o_quote = 0; | |
| inp->p = NULL; | |
| free_pipe_list(ctx.list_head, /* indent: */ 0); | |
| } | |
| - | b_free(&temp); |
| + | o_free(&temp); |
| } while (rcode != -1 && !(parse_flag & PARSEFLAG_EXIT_FROM_LOOP)); /* loop on syntax errors, return on EOF */ | |
| return 0; | |
| } | |