aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDavid S. Miller <davem@davemloft.net>2011-08-17 09:31:17 +0800
committermaximilian attems <max@stro.at>2012-07-02 10:46:37 +0200
commit4a84d61a24296b8253b3f8f7c86ee28df53e2f3b (patch)
tree4d220f395f7d2c5f2ea0097476b5943969ed918b
parent4a12ba8937fbc47ee82ab76bd4fceddf6338dced (diff)
downloadklibc-4a84d61a24296b8253b3f8f7c86ee28df53e2f3b.tar.gz
[klibc] [SHELL] Allow building without LINEO support
Simply specify --disable-lineno to configure. Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: maximilian attems <max@stro.at>
-rw-r--r--usr/dash/var.c4
-rw-r--r--usr/dash/var.h6
2 files changed, 10 insertions, 0 deletions
diff --git a/usr/dash/var.c b/usr/dash/var.c
index ecc8c90ed060a..027beff154861 100644
--- a/usr/dash/var.c
+++ b/usr/dash/var.c
@@ -101,7 +101,9 @@ struct var varinit[] = {
{ 0, VSTRFIXED|VTEXTFIXED, "PS2=> ", 0 },
{ 0, VSTRFIXED|VTEXTFIXED, "PS4=+ ", 0 },
{ 0, VSTRFIXED|VTEXTFIXED, "OPTIND=1", getoptsreset },
+#ifdef WITH_LINENO
{ 0, VSTRFIXED|VTEXTFIXED, linenovar, 0 },
+#endif
#ifndef SMALL
{ 0, VSTRFIXED|VTEXTFIXED|VUNSET, "TERM\0", 0 },
{ 0, VSTRFIXED|VTEXTFIXED|VUNSET, "HISTSIZE\0", sethistsize },
@@ -335,9 +337,11 @@ lookupvar(const char *name)
struct var *v;
if ((v = *findvar(hashvar(name), name)) && !(v->flags & VUNSET)) {
+#ifdef WITH_LINENO
if (v == &vlineno && v->text == linenovar) {
fmtstr(linenovar+7, sizeof(linenovar)-7, "%d", lineno);
}
+#endif
return strchrnul(v->text, '=') + 1;
}
return NULL;
diff --git a/usr/dash/var.h b/usr/dash/var.h
index 4c02eb243a519..1a06a3cbf2263 100644
--- a/usr/dash/var.h
+++ b/usr/dash/var.h
@@ -88,9 +88,15 @@ extern struct var varinit[];
#define vps2 (&vps1)[1]
#define vps4 (&vps2)[1]
#define voptind (&vps4)[1]
+#ifdef WITH_LINENO
#define vlineno (&voptind)[1]
+#endif
#ifndef SMALL
+#ifdef WITH_LINENO
#define vterm (&vlineno)[1]
+#else
+#define vterm (&voptind)[1]
+#endif
#define vhistsize (&vterm)[1]
#endif