Module Name:    src
Committed By:   christos
Date:           Sun Mar 27 14:35:30 UTC 2016

Modified Files:
        src/bin/sh: parser.c

Log Message:
Finish constifying the new parsebackquote() function.  Save a
variable or two...   Should change nothing. (from kre@)


To generate a diff of this commit:
cvs rdiff -u -r1.108 -r1.109 src/bin/sh/parser.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/bin/sh/parser.c
diff -u src/bin/sh/parser.c:1.108 src/bin/sh/parser.c:1.109
--- src/bin/sh/parser.c:1.108	Sun Mar 27 10:34:46 2016
+++ src/bin/sh/parser.c	Sun Mar 27 10:35:30 2016
@@ -1,4 +1,4 @@
-/*	$NetBSD: parser.c,v 1.108 2016/03/27 14:34:46 christos Exp $	*/
+/*	$NetBSD: parser.c,v 1.109 2016/03/27 14:35:30 christos Exp $	*/
 
 /*-
  * Copyright (c) 1991, 1993
@@ -37,7 +37,7 @@
 #if 0
 static char sccsid[] = "@(#)parser.c	8.7 (Berkeley) 5/16/95";
 #else
-__RCSID("$NetBSD: parser.c,v 1.108 2016/03/27 14:34:46 christos Exp $");
+__RCSID("$NetBSD: parser.c,v 1.109 2016/03/27 14:35:30 christos Exp $");
 #endif
 #endif /* not lint */
 
@@ -1091,18 +1091,16 @@ parsebackq(VSS *const stack, char * cons
     struct nodelist **const pbqlist, const int oldstyle)
 {
 	struct nodelist **nlpp;
-	int savepbq;
+	const int savepbq = parsebackquote;
 	union node *n;
 	char *out;
 	char *str = NULL;
-	char *pout;
 	char *volatile sstr = str;
 	struct jmploc jmploc;
 	struct jmploc *const savehandler = handler;
-	int savelen;
+	const int savelen = in - stackblock();
 	int saveprompt;
 
-	savepbq = parsebackquote;
 	if (setjmp(jmploc.loc)) {
 		if (sstr)
 			ckfree(__UNVOLATILE(sstr));
@@ -1112,9 +1110,7 @@ parsebackq(VSS *const stack, char * cons
 		longjmp(handler->loc, 1);
 	}
 	INTOFF;
-	out = in;
 	sstr = str = NULL;
-	savelen = out - stackblock();
 	if (savelen > 0) {
 		sstr = str = ckmalloc(savelen);
 		memcpy(str, stackblock(), savelen);
@@ -1134,7 +1130,7 @@ parsebackq(VSS *const stack, char * cons
 		 * need to bother the state stack.  That will be used
 		 * (as appropriate) when the processed string is re-read.
 		 */
-                STARTSTACKSTR(pout);
+                STARTSTACKSTR(out);
 		for (;;) {
 			if (needprompt) {
 				setprompt(2);
@@ -1161,7 +1157,7 @@ parsebackq(VSS *const stack, char * cons
 				}
                                 if (pc != '\\' && pc != '`' && pc != '$'
                                     && (!ISDBLQUOTE() || pc != '"'))
-                                        STPUTC('\\', pout);
+                                        STPUTC('\\', out);
 				break;
 
 			case '\n':
@@ -1177,13 +1173,13 @@ parsebackq(VSS *const stack, char * cons
 			default:
 				break;
 			}
-			STPUTC(pc, pout);
+			STPUTC(pc, out);
                 }
 done:
-                STPUTC('\0', pout);
-                psavelen = pout - stackblock();
+                STPUTC('\0', out);
+                psavelen = out - stackblock();
                 if (psavelen > 0) {
-			pstr = grabstackstr(pout);
+			pstr = grabstackstr(out);
 			setinputstring(pstr, 1);
                 }
         }
@@ -1220,12 +1216,13 @@ done:
                 popfile();
 		tokpushback = 0;
 	}
+
 	while (stackblocksize() <= savelen)
 		growstackblock();
-	STARTSTACKSTR(pout);
+	STARTSTACKSTR(out);
 	if (str) {
-		memcpy(pout, str, savelen);
-		STADJUST(savelen, pout);
+		memcpy(out, str, savelen);
+		STADJUST(savelen, out);
 		INTOFF;
 		ckfree(str);
 		sstr = str = NULL;
@@ -1234,11 +1231,11 @@ done:
 	parsebackquote = savepbq;
 	handler = savehandler;
 	if (arinest || ISDBLQUOTE())
-		USTPUTC(CTLBACKQ | CTLQUOTE, pout);
+		USTPUTC(CTLBACKQ | CTLQUOTE, out);
 	else
-		USTPUTC(CTLBACKQ, pout);
+		USTPUTC(CTLBACKQ, out);
 
-	return pout;
+	return out;
 }
 
 STATIC int

Reply via email to