svn commit: r255068 - head/bin/sh

Jilles Tjoelker jilles at FreeBSD.org
Fri Aug 30 10:45:03 UTC 2013


Author: jilles
Date: Fri Aug 30 10:45:02 2013
New Revision: 255068
URL: http://svnweb.freebsd.org/changeset/base/255068

Log:
  sh: Cast -1 to pointer rather than pointer to variable of wrong type.
  
  NEOF needs to be a non-null pointer distinct from valid union node pointers.
  It is not dereferenced.
  
  The new NEOF is much like SIG_ERR except that it is an object pointer
  instead of a function pointer.
  
  The variable tokpushback can now be static.

Modified:
  head/bin/sh/parser.c
  head/bin/sh/parser.h

Modified: head/bin/sh/parser.c
==============================================================================
--- head/bin/sh/parser.c	Fri Aug 30 10:39:56 2013	(r255067)
+++ head/bin/sh/parser.c	Fri Aug 30 10:45:02 2013	(r255068)
@@ -96,7 +96,7 @@ static struct heredoc *heredoclist;	/* l
 static int doprompt;		/* if set, prompt the user */
 static int needprompt;		/* true if interactive and at start of line */
 static int lasttoken;		/* last token read */
-int tokpushback;		/* last token pushed back */
+static int tokpushback;		/* last token pushed back */
 static char *wordtext;		/* text of last word returned by readtoken */
 static int checkkwd;
 static struct nodelist *backquotelist;

Modified: head/bin/sh/parser.h
==============================================================================
--- head/bin/sh/parser.h	Fri Aug 30 10:39:56 2013	(r255067)
+++ head/bin/sh/parser.h	Fri Aug 30 10:45:02 2013	(r255068)
@@ -68,11 +68,9 @@
 
 /*
  * NEOF is returned by parsecmd when it encounters an end of file.  It
- * must be distinct from NULL, so we use the address of a variable that
- * happens to be handy.
+ * must be distinct from NULL.
  */
-extern int tokpushback;
-#define NEOF ((union node *)&tokpushback)
+#define NEOF ((union node *)-1)
 extern int whichprompt;		/* 1 == PS1, 2 == PS2 */
 extern const char *const parsekwd[];
 


More information about the svn-src-head mailing list