[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>
diff --git a/ChangeLog b/ChangeLog
index 02bfda0..4f0d122 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,7 @@
+2011-08-17 David S. Miller <davem@davemloft.net>
+
+ * Allow building without LINEO support.
+
2011-07-26 Harald van Dijk <harald@gigawatt.nl>
* Avoid imaxdiv when only one of the results is wanted.
diff --git a/configure.ac b/configure.ac
index 5cd6e95..c6fb401 100644
--- a/configure.ac
+++ b/configure.ac
@@ -131,5 +131,10 @@
else
export LIBS="$LIBS -ledit"
fi
+AC_ARG_ENABLE(lineno, AS_HELP_STRING(--disable-lineno, \
+ [Disable LINENO support]))
+if test "$enable_lineno" != "no"; then
+ AC_DEFINE([WITH_LINENO], 1, [Define if you build with -DWITH_LINENO])
+fi
AC_CONFIG_FILES([Makefile src/Makefile])
AC_OUTPUT
diff --git a/src/var.c b/src/var.c
index ecc8c90..027beff 100644
--- a/src/var.c
+++ b/src/var.c
@@ -101,7 +101,9 @@
{ 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 @@
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/src/var.h b/src/var.h
index 54f7b2d..79ee71a 100644
--- a/src/var.h
+++ b/src/var.h
@@ -88,9 +88,15 @@
#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