Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 30 Aug 2013 10:45:02 +0000 (UTC)
From:      Jilles Tjoelker <jilles@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r255068 - head/bin/sh
Message-ID:  <201308301045.r7UAj2G5055923@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
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[];
 



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201308301045.r7UAj2G5055923>