summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDenis Vlasenko2008-11-28 04:01:03 +0000
committerDenis Vlasenko2008-11-28 04:01:03 +0000
commite27dafd338b204407092af37dbafdbebb87859a1 (patch)
tree6c842eb390826b15f959ce7821fdb91fe51e50cd
parent7b2294edff76ae975a61d35b1fd0079d907f34f8 (diff)
downloadbusybox-e27dafd338b204407092af37dbafdbebb87859a1.zip
busybox-e27dafd338b204407092af37dbafdbebb87859a1.tar.gz
ash: add FIXME
-rw-r--r--shell/ash.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/shell/ash.c b/shell/ash.c
index 295418c..9eff1b3 100644
--- a/shell/ash.c
+++ b/shell/ash.c
@@ -9156,6 +9156,11 @@ popstring(void)
INT_ON;
}
+//FIXME: BASH_COMPAT with "...&" does TWO pungetc():
+//it peeks whether it is &>, and then pushes back both chars.
+//This function needs to save last *next_to_pgetc to buf[0]
+//to make two pungetc() reliable. Currently,
+// pgetc (out of buf: does preadfd), pgetc, pungetc, pungetc won't work...
static int
preadfd(void)
{
@@ -9251,9 +9256,9 @@ preadbuffer(void)
* "pgetc" needs refilling.
*/
- /* -90 is -BIGNUM. Below we use -99 to mark "EOF on read",
+ /* -90 is our -BIGNUM. Below we use -99 to mark "EOF on read",
* pungetc() may increment it a few times.
- * Assuming it won't increment it to 0.
+ * Assuming it won't increment it to less than -90.
*/
if (g_parsefile->left_in_line < -90 || g_parsefile->buf == NULL) {
pgetc_debug("preadbuffer PEOF1");