Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: jacmet at uclibc.org <jacmet@uclibc.org>
To: buildroot@busybox.net
Subject: [Buildroot] svn commit: trunk/buildroot/package/busybox
Date: Fri, 28 Nov 2008 00:19:24 -0800 (PST)	[thread overview]
Message-ID: <20081128081924.52B0A3C2C1@busybox.net> (raw)

Author: jacmet
Date: 2008-11-28 00:19:23 -0800 (Fri, 28 Nov 2008)
New Revision: 24172

Log:
busybox: updated 1.13.0 ash fix

Modified:
   trunk/buildroot/package/busybox/busybox-1.13.0-ash.patch


Changeset:
Modified: trunk/buildroot/package/busybox/busybox-1.13.0-ash.patch
===================================================================
--- trunk/buildroot/package/busybox/busybox-1.13.0-ash.patch	2008-11-28 04:01:03 UTC (rev 24171)
+++ trunk/buildroot/package/busybox/busybox-1.13.0-ash.patch	2008-11-28 08:19:23 UTC (rev 24172)
@@ -1,5 +1,5 @@
 --- busybox-1.13.0/shell/ash.c	Thu Oct 30 08:41:32 2008
-+++ busybox-1.13.0-ash/shell/ash.c	Sat Nov 22 02:31:06 2008
++++ busybox-1.13.0-ash/shell/ash.c	Fri Nov 28 04:39:17 2008
 @@ -536,6 +536,7 @@
  #define NHERE    24
  #define NXHERE   25
@@ -88,3 +88,188 @@
  };
  
  static void calcsize(union node *n);
+@@ -9065,8 +9069,6 @@
+  * This implements the input routines used by the parser.
+  */
+ 
+-#define EOF_NLEFT -99           /* value of parsenleft when EOF pushed back */
+-
+ enum {
+ 	INPUT_PUSH_FILE = 1,
+ 	INPUT_NOFILE_OK = 2,
+@@ -9107,7 +9109,6 @@
+ #endif
+ 	parsenextc = sp->prevstring;
+ 	parsenleft = sp->prevnleft;
+-/*dprintf("*** calling popstring: restoring to '%s'\n", parsenextc);*/
+ 	g_parsefile->strpush = sp->prev;
+ 	if (sp != &(g_parsefile->basestrpush))
+ 		free(sp);
+@@ -9123,7 +9124,7 @@
+ 
+ #if ENABLE_FEATURE_EDITING
+  retry:
+-	if (!iflag || g_parsefile->fd)
++	if (!iflag || g_parsefile->fd != STDIN_FILENO)
+ 		nr = nonblock_safe_read(g_parsefile->fd, buf, BUFSIZ - 1);
+ 	else {
+ #if ENABLE_FEATURE_TAB_COMPLETION
+@@ -9171,55 +9172,76 @@
+  * Refill the input buffer and return the next input character:
+  *
+  * 1) If a string was pushed back on the input, pop it;
+- * 2) If an EOF was pushed back (parsenleft == EOF_NLEFT) or we are reading
++ * 2) If an EOF was pushed back (parsenleft < -BIGNUM) or we are reading
+  *    from a string so we can't refill the buffer, return EOF.
+  * 3) If the is more stuff in this buffer, use it else call read to fill it.
+  * 4) Process input up to the next newline, deleting nul characters.
+  */
++//#define pgetc_debug(...) bb_error_msg(__VA_ARGS__)
++#define pgetc_debug(...) ((void)0)
+ static int
+ preadbuffer(void)
+ {
+ 	char *q;
+ 	int more;
+-	char savec;
+ 
+ 	while (g_parsefile->strpush) {
+ #if ENABLE_ASH_ALIAS
+-		if (parsenleft == -1 && g_parsefile->strpush->ap &&
+-			parsenextc[-1] != ' ' && parsenextc[-1] != '\t') {
++		if (parsenleft == -1 && g_parsefile->strpush->ap
++		 && parsenextc[-1] != ' ' && parsenextc[-1] != '\t'
++		) {
++			pgetc_debug("preadbuffer PEOA");
+ 			return PEOA;
+ 		}
+ #endif
+ 		popstring();
++		/* try "pgetc" now: */
++		pgetc_debug("internal pgetc at %d:%p'%s'", parsenleft, parsenextc, parsenextc);
+ 		if (--parsenleft >= 0)
+ 			return signed_char2int(*parsenextc++);
+ 	}
+-	if (parsenleft == EOF_NLEFT || g_parsefile->buf == NULL)
++	/* on both branches above parsenleft < 0.
++	 * "pgetc" needs refilling.
++	 */
++
++	/* -90 is -BIGNUM. Below we use -99 to mark "EOF on read",
++	 * pungetc() may decrement it a few times. -90 is enough.
++	 */
++	if (parsenleft < -90 || g_parsefile->buf == NULL) {
++		pgetc_debug("preadbuffer PEOF1");
++		/* even in failure keep them in lock step,
++		 * for correct pungetc. */
++		parsenextc++;
+ 		return PEOF;
+-	flush_stdout_stderr();
++	}
+ 
+ 	more = parselleft;
+ 	if (more <= 0) {
++		flush_stdout_stderr();
+  again:
+ 		more = preadfd();
+ 		if (more <= 0) {
+-			parselleft = parsenleft = EOF_NLEFT;
++			parselleft = parsenleft = -99;
++			pgetc_debug("preadbuffer PEOF2");
++			parsenextc++;
+ 			return PEOF;
+ 		}
+ 	}
+ 
++	/* Find out where's the end of line.
++	 * Set parsenleft/parselleft acordingly.
++	 * NUL chars are deleted.
++	 */
+ 	q = parsenextc;
+-
+-	/* delete nul characters */
+ 	for (;;) {
+-		int c;
++		char c;
+ 
+ 		more--;
+-		c = *q;
+ 
+-		if (!c)
++		c = *q;
++		if (c == '\0') {
+ 			memmove(q, q + 1, more);
+-		else {
++		} else {
+ 			q++;
+ 			if (c == '\n') {
+ 				parsenleft = q - parsenextc - 1;
+@@ -9236,22 +9258,23 @@
+ 	}
+ 	parselleft = more;
+ 
+-	savec = *q;
+-	*q = '\0';
+-
+ 	if (vflag) {
++		char save = *q;
++		*q = '\0';
+ 		out2str(parsenextc);
++		*q = save;
+ 	}
+ 
+-	*q = savec;
+-
++	pgetc_debug("preadbuffer@%d:%p'%s'", parsenleft, parsenextc, parsenextc);
+ 	return signed_char2int(*parsenextc++);
+ }
+ 
+ #define pgetc_as_macro() (--parsenleft >= 0 ? signed_char2int(*parsenextc++) : preadbuffer())
++
+ static int
+ pgetc(void)
+ {
++	pgetc_debug("pgetc at %d:%p'%s'", parsenleft, parsenextc, parsenextc);
+ 	return pgetc_as_macro();
+ }
+ 
+@@ -9312,6 +9335,7 @@
+ {
+ 	parsenleft++;
+ 	parsenextc--;
++	pgetc_debug("pushed back to %d:%p'%s'", parsenleft, parsenextc, parsenextc);
+ }
+ 
+ /*
+@@ -9325,16 +9349,17 @@
+ pushstring(char *s, struct alias *ap)
+ {
+ 	struct strpush *sp;
+-	size_t len;
++	int len;
+ 
+ 	len = strlen(s);
+ 	INT_OFF;
+ 	if (g_parsefile->strpush) {
+-		sp = ckzalloc(sizeof(struct strpush));
++		sp = ckzalloc(sizeof(*sp));
+ 		sp->prev = g_parsefile->strpush;
+-		g_parsefile->strpush = sp;
+-	} else
+-		sp = g_parsefile->strpush = &(g_parsefile->basestrpush);
++	} else {
++		sp = &(g_parsefile->basestrpush);
++	}
++	g_parsefile->strpush = sp;
+ 	sp->prevstring = parsenextc;
+ 	sp->prevnleft = parsenleft;
+ #if ENABLE_ASH_ALIAS
+@@ -9424,7 +9449,7 @@
+ 	close_on_exec_on(fd);
+ 	if (push) {
+ 		pushfile();
+-		g_parsefile->buf = 0;
++		g_parsefile->buf = NULL;
+ 	}
+ 	g_parsefile->fd = fd;
+ 	if (g_parsefile->buf == NULL)

             reply	other threads:[~2008-11-28  8:19 UTC|newest]

Thread overview: 161+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-11-28  8:19 jacmet at uclibc.org [this message]
  -- strict thread matches above, loose matches on Subject: below --
2009-03-02 15:33 [Buildroot] svn commit: trunk/buildroot/package/busybox jacmet at uclibc.org
2009-02-18 14:16 jacmet at uclibc.org
2009-02-01 19:36 jacmet at uclibc.org
2009-01-29 11:29 jacmet at uclibc.org
2009-01-29 11:27 jacmet at uclibc.org
2009-01-20 19:26 jacmet at uclibc.org
2009-01-19 12:34 jacmet at uclibc.org
2009-01-12  9:36 jacmet at uclibc.org
2008-12-31  9:35 jacmet at uclibc.org
2008-12-30 19:15 jacmet at uclibc.org
2008-12-29 10:09 jacmet at uclibc.org
2008-12-11  9:35 jacmet at uclibc.org
2008-12-10 13:46 jacmet at uclibc.org
2008-12-07 21:22 jacmet at uclibc.org
2008-12-04 13:21 jacmet at uclibc.org
2008-11-29 20:12 jacmet at uclibc.org
2008-11-22  6:49 jacmet at uclibc.org
2008-11-21 14:36 jacmet at uclibc.org
2008-11-21 10:59 jacmet at uclibc.org
2008-11-20  6:49 jacmet at uclibc.org
2008-11-17  7:40 jacmet at uclibc.org
2008-11-16 17:22 jacmet at uclibc.org
2008-11-16 23:46 ` Hamish Moffatt
2008-11-17  7:13   ` Peter Korsgaard
2008-11-17 12:38     ` Hamish Moffatt
2008-11-17 12:45       ` Peter Korsgaard
2008-11-15 21:25 jacmet at uclibc.org
2008-11-13 16:32 jacmet at uclibc.org
2008-11-14 16:42 ` hartleys
2008-11-15 21:29   ` Peter Korsgaard
2008-11-16 23:42     ` Hamish Moffatt
2008-11-17  7:13       ` Peter Korsgaard
2008-11-13 16:32 jacmet at uclibc.org
2008-11-07 10:16 jacmet at uclibc.org
2008-11-02 13:06 jacmet at uclibc.org
2008-10-13 12:42 jacmet at uclibc.org
2008-10-06 18:52 jacmet at uclibc.org
2008-09-28 19:28 jacmet at uclibc.org
2008-09-22 11:54 jacmet at uclibc.org
2008-09-09  8:50 jacmet at uclibc.org
2008-09-09  8:50 jacmet at uclibc.org
2008-09-10  1:32 ` Hamish Moffatt
2008-09-10  6:57   ` Peter Korsgaard
2008-08-31 21:45 jacmet at uclibc.org
2008-08-28  4:57 jacmet at uclibc.org
2008-08-26  1:05 hamish at uclibc.org
2008-08-21  5:08 jacmet at uclibc.org
2008-08-06 12:56 jacmet at uclibc.org
2008-08-06  6:37 jacmet at uclibc.org
2008-08-04 19:06 jacmet at uclibc.org
2008-07-23  6:01 jacmet at uclibc.org
2008-07-22 11:19 jacmet at uclibc.org
2008-07-11 22:19 jacmet at uclibc.org
2008-07-06 13:55 jacmet at uclibc.org
2008-07-01 14:04 jacmet at uclibc.org
2008-07-01 13:37 jacmet at uclibc.org
2008-06-28 20:53 jacmet at uclibc.org
2008-06-26  6:51 jacmet at uclibc.org
2008-06-26  6:51 jacmet at uclibc.org
2008-06-26  6:58 ` Peter Korsgaard
2008-06-27  9:05   ` Daniel Laird
2008-06-27  9:20     ` Peter Korsgaard
2008-06-27 12:00       ` Bernhard Fischer
2008-06-27 12:46         ` sjhill at realitydiluted.com
2008-06-27 12:53           ` Bernhard Fischer
2008-06-27 14:07           ` Peter Korsgaard
2008-06-27 12:49         ` Daniel Laird
2008-06-27 13:19           ` Peter Korsgaard
2008-06-26  6:51 jacmet at uclibc.org
2008-06-20 18:38 jacmet at uclibc.org
2008-06-13 20:49 jacmet at uclibc.org
2008-06-07  7:46 jacmet at uclibc.org
2008-05-31 12:58 jacmet at uclibc.org
2008-05-31  7:28 jacmet at uclibc.org
2008-05-31  7:39 ` Cristian Ionescu-Idbohrn
2008-05-31 12:59   ` Peter Korsgaard
2008-05-09 10:01 jacmet at uclibc.org
2008-05-05 17:17 jacmet at uclibc.org
2008-04-29  6:53 jacmet at uclibc.org
2008-04-22  9:37 jacmet at uclibc.org
2008-04-04  7:17 jacmet at uclibc.org
2008-04-01 10:00 jacmet at uclibc.org
2008-03-30 14:37 jacmet at uclibc.org
2008-03-26 21:53 jacmet at uclibc.org
2008-03-26 21:49 jacmet at uclibc.org
2008-03-25 14:38 jacmet at uclibc.org
2008-03-21 17:56 ninevoltz at uclibc.org
2008-03-21 10:14 jacmet at uclibc.org
2008-03-17 19:44 jacmet at uclibc.org
2008-03-11  8:17 jacmet at uclibc.org
2008-02-28 14:38 jacmet at uclibc.org
2008-02-14 15:49 jacmet at uclibc.org
2008-02-14 14:45 jacmet at uclibc.org
2008-02-02 21:49 jacmet at uclibc.org
2008-01-08 12:51 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:33 jacmet at uclibc.org
2008-01-03 13:31 jacmet at uclibc.org
2007-09-30 12:50 aldot at uclibc.org
2007-09-30 12:48 aldot at uclibc.org
2007-09-22 17:29 aldot at uclibc.org
2007-09-22 10:25 aldot at uclibc.org
2007-09-20 16:58 aldot at uclibc.org
2007-09-15 18:14 aldot at uclibc.org
2007-09-10  7:38 jacmet at uclibc.org
2007-09-02 22:09 aldot at uclibc.org
2007-09-02 14:56 aldot at uclibc.org
2007-09-01 17:33 aldot at uclibc.org
2007-08-24 14:23 aldot at uclibc.org
2007-07-08 12:10 aldot at uclibc.org
2007-07-08 12:04 aldot at uclibc.org
2007-07-08 11:56 aldot at uclibc.org
2007-07-02 15:20 aldot at uclibc.org
2007-07-02  9:54 aldot at uclibc.org
2007-06-27 21:07 aldot at uclibc.org
2007-06-25 11:07 aldot at uclibc.org
2007-06-14 13:09 jacmet at uclibc.org
2007-06-02 13:13 aldot at uclibc.org
2007-05-15  9:34 aldot at uclibc.org
2007-05-07  4:07 sjhill at uclibc.org
2007-05-07  4:04 sjhill at uclibc.org
2007-04-25  7:11 jacmet at uclibc.org
2007-04-05  7:04 jacmet at uclibc.org
2007-03-24 12:09 aldot at uclibc.org
2007-03-23 13:26 aldot at uclibc.org
2007-03-23 13:24 aldot at uclibc.org
2007-03-20  9:51 aldot at uclibc.org
2007-03-20  8:53 aldot at uclibc.org
2007-03-15  8:36 jacmet at uclibc.org
2007-03-14 13:02 aldot at uclibc.org
2007-02-27  9:04 jacmet at uclibc.org
2007-02-23 11:55 jacmet at uclibc.org
2007-02-16 15:19 aldot at uclibc.org
2007-02-12 14:43 jacmet at uclibc.org
2007-02-06 16:34 jacmet at uclibc.org
2007-02-06 16:31 jacmet at uclibc.org
2007-02-06 16:23 jacmet at uclibc.org
2007-02-06 16:20 jacmet at uclibc.org
2007-02-06 16:18 jacmet at uclibc.org
2007-02-02 16:15 aldot at uclibc.org
2007-02-01 12:30 aldot at uclibc.org
2007-01-31 14:21 aldot at uclibc.org
2007-01-30 16:47 jacmet at uclibc.org
2007-01-30 13:37 jacmet at uclibc.org
2007-01-30 13:36 jacmet at uclibc.org
2006-12-13  6:58 andersen at uclibc.org
2006-12-13  6:18 andersen at uclibc.org
2006-12-07 16:31 aldot at uclibc.org
2006-12-02 19:36 aldot at uclibc.org
2006-12-02 18:36 aldot at uclibc.org
2006-12-02 17:03 aldot at uclibc.org
2006-11-17 12:57 aldot at uclibc.org
2006-11-17 11:37 aldot at uclibc.org
2006-10-25  8:10 jacmet at uclibc.org
2006-08-29 16:45 aldot at uclibc.org
2006-08-24 19:48 aldot at uclibc.org
2006-07-31  9:01 jacmet

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20081128081924.52B0A3C2C1@busybox.net \
    --to=jacmet@uclibc.org \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox