hush: search/and/replace style cleanups, no code changes

diff --git a/shell/hush.c b/shell/hush.c
index 58100d4..ca854c2 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -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 @@
 	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 @@
 	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 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 @@
  */
 #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 @@
 		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_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 @@
 /* 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 @@
  * 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 @@
 	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 @@
 	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 @@
 }
 
 #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 @@
 	}
 }
 #else
-#define b_debug_list(prefix, o, n) ((void)0)
+#define o_debug_list(prefix, o, n) ((void)0)
 #endif
 
 
@@ -1931,7 +1927,6 @@
 		}
 		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 @@
 				 * 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 @@
 				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 @@
 	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 @@
 	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 @@
 					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 @@
 			 * 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 @@
 			} /* 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 @@
 	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 @@
 			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 @@
 		} 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 @@
 			*ctx = *old;   /* physical copy */
 			free(old);
 		}
-		b_reset(dest);
+		o_reset(dest);
 		return 1;
 	}
 	return 0;
@@ -3092,7 +3085,7 @@
 		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 @@
 	/*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 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 @@
 	}
 	/* reuse num (and save an int) */
 	num = atoi(o->data);
-	b_reset(o);
+	o_reset(o);
 	return num;
 }
 
@@ -3285,7 +3276,6 @@
 
 /* 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 @@
 		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 @@
 
 	/* 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_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_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 @@
 {
 	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 @@
 		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 @@
 		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 @@
 					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 @@
 			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 @@
 	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 @@
 				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 @@
 		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 @@
 				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 @@
 		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 @@
 #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 @@
 			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 @@
 			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 @@
 		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 @@
 		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 @@
 		} 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;
 }