summaryrefslogtreecommitdiffhomepage
path: root/shell
diff options
context:
space:
mode:
authorMike Frysinger <vapier@gentoo.org>2009-03-28 19:09:04 +0000
committerMike Frysinger <vapier@gentoo.org>2009-03-28 19:09:04 +0000
commit5a82845f60b2be8e1b85bed08851c794aa188a39 (patch)
treeebc3c83b6d241ea50bbf8ed7145fb0c52026372f /shell
parenta2333c8938af4829a8eac8c09615e6652cd412f1 (diff)
update the normally disabled debug code around the syntax() func to use new maybe_die()
Diffstat (limited to 'shell')
-rw-r--r--shell/hush.c23
1 files changed, 6 insertions, 17 deletions
diff --git a/shell/hush.c b/shell/hush.c
index 84dd9e13c..3ab96a323 100644
--- a/shell/hush.c
+++ b/shell/hush.c
@@ -588,7 +588,6 @@ static const struct built_in_command bltins[] = {
};
-#if 1
/* Normal */
static void maybe_die(const char *notice, const char *msg)
{
@@ -601,23 +600,13 @@ static void maybe_die(const char *notice, const char *msg)
#endif
fp(msg ? "%s: %s" : notice, notice, msg);
}
-static void syntax(const char *msg)
-{
- maybe_die("syntax error", msg);
-}
-#else
-/* Debug */
-static void syntax_lineno(int line)
-{
-#if ENABLE_HUSH_INTERACTIVE
- void FAST_FUNC (*fp)(const char *s, ...);
- fp = (G.interactive_fd ? bb_error_msg : bb_error_msg_and_die);
- fp("syntax error hush.c:%d", line);
+#if 1
+#define syntax(msg) maybe_die("syntax error", msg);
#else
- bb_error_msg_and_die("syntax error hush.c:%d", line);
-#endif
-}
-#define syntax(str) syntax_lineno(__LINE__)
+/* Debug -- trick gcc to expand __LINE__ and convert to string */
+#define __syntax(msg, line) maybe_die("syntax error hush.c:" # line, msg)
+#define _syntax(msg, line) __syntax(msg, line)
+#define syntax(msg) _syntax(msg, __LINE__)
#endif
static int glob_needed(const char *s)