aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2018-05-19 02:39:43 +0800
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:55 +0000
commit6dc1db1bce863f0e0e0abda1b9a58d8cb22863ca (patch)
tree1109b81283b3f09dab998bfe0832514b04b377ca
parentf7bb177a0dbd9750f78988a3636fa3c32418f6d7 (diff)
downloadklibc-6dc1db1bce863f0e0e0abda1b9a58d8cb22863ca.tar.gz
[klibc] dash: var: Set IFS to fixed value at start time
[ dash commit 6458796c79e643503d14e18c611cfbf68c4a8cce ] This patch forces the IFS variable to always be set to its default value, regardless of the environment. It also removes the long unused IFS_BROKEN code. Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/dash/var.c11
-rw-r--r--usr/dash/var.h6
2 files changed, 3 insertions, 14 deletions
diff --git a/usr/dash/var.c b/usr/dash/var.c
index cc6f7f2a910a9..604ab1f7327d2 100644
--- a/usr/dash/var.c
+++ b/usr/dash/var.c
@@ -75,11 +75,7 @@ MKINIT struct localvar_list *localvar_stack;
const char defpathvar[] =
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin";
-#ifdef IFS_BROKEN
-const char defifsvar[] = "IFS= \t\n";
-#else
-const char defifs[] = " \t\n";
-#endif
+char defifsvar[] = "IFS= \t\n";
MKINIT char defoptindvar[] = "OPTIND=1";
int lineno;
@@ -90,11 +86,7 @@ struct var varinit[] = {
#if ATTY
{ 0, VSTRFIXED|VTEXTFIXED|VUNSET, "ATTY\0", 0 },
#endif
-#ifdef IFS_BROKEN
{ 0, VSTRFIXED|VTEXTFIXED, defifsvar, 0 },
-#else
- { 0, VSTRFIXED|VTEXTFIXED|VUNSET, "IFS\0", 0 },
-#endif
{ 0, VSTRFIXED|VTEXTFIXED|VUNSET, "MAIL\0", changemail },
{ 0, VSTRFIXED|VTEXTFIXED|VUNSET, "MAILPATH\0", changemail },
{ 0, VSTRFIXED|VTEXTFIXED, defpathvar, changepath },
@@ -143,6 +135,7 @@ INIT {
}
}
+ setvareq(defifsvar, VTEXTFIXED);
setvareq(defoptindvar, VTEXTFIXED);
fmtstr(ppid + 5, sizeof(ppid) - 5, "%ld", (long) getppid());
diff --git a/usr/dash/var.h b/usr/dash/var.h
index 11ce9b7d06b0a..52f559d1e2b9e 100644
--- a/usr/dash/var.h
+++ b/usr/dash/var.h
@@ -100,12 +100,8 @@ extern struct var varinit[];
#define vhistsize (&vterm)[1]
#endif
-#ifdef IFS_BROKEN
-extern const char defifsvar[];
+extern char defifsvar[];
#define defifs (defifsvar + 4)
-#else
-extern const char defifs[];
-#endif
extern const char defpathvar[];
#define defpath (defpathvar + 36)