All of 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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.