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[];
 
_______________________________________________
svn-src-head@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"

Reply via email to