X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=shell%2Fash.c;h=b27b2777ea5975e0c2ddd4ba26c9e21f0e4e5ca5;hb=e19e1935a33b117e2ee6daf9b2d79c00603333c7;hp=fe8c1bed215aaae9fa6fed1260aea9d8dfdef8c7;hpb=34d4d89b2d3337ea1486d98ea979c1594a6a5efe;p=oweals%2Fbusybox.git diff --git a/shell/ash.c b/shell/ash.c index fe8c1bed2..b27b2777e 100644 --- a/shell/ash.c +++ b/shell/ash.c @@ -56,11 +56,11 @@ /* STANDALONE does not make sense, and won't compile */ #undef CONFIG_FEATURE_SH_STANDALONE #undef ENABLE_FEATURE_SH_STANDALONE -#undef USE_FEATURE_SH_STANDALONE -#undef SKIP_FEATURE_SH_STANDALONE(...) +#undef IF_FEATURE_SH_STANDALONE +#undef IF_NOT_FEATURE_SH_STANDALONE(...) #define ENABLE_FEATURE_SH_STANDALONE 0 -#define USE_FEATURE_SH_STANDALONE(...) -#define SKIP_FEATURE_SH_STANDALONE(...) __VA_ARGS__ +#define IF_FEATURE_SH_STANDALONE(...) +#define IF_NOT_FEATURE_SH_STANDALONE(...) __VA_ARGS__ #endif #ifndef PIPE_BUF @@ -349,7 +349,7 @@ raise_interrupt(void) } while (0) #endif -static USE_ASH_OPTIMIZE_FOR_SIZE(inline) void +static IF_ASH_OPTIMIZE_FOR_SIZE(inline) void int_on(void) { xbarrier(); @@ -358,7 +358,7 @@ int_on(void) } } #define INT_ON int_on() -static USE_ASH_OPTIMIZE_FOR_SIZE(inline) void +static IF_ASH_OPTIMIZE_FOR_SIZE(inline) void force_int_on(void) { xbarrier(); @@ -4219,7 +4219,7 @@ cmdputs(const char *s) static const char vstype[VSTYPE + 1][3] = { "", "}", "-", "+", "?", "=", "%", "%%", "#", "##" - USE_ASH_BASH_COMPAT(, ":", "/", "//") + IF_ASH_BASH_COMPAT(, ":", "/", "//") }; const char *p, *str; @@ -6069,9 +6069,9 @@ subevalvar(char *p, char *str, int strloc, int subtype, char *startp; char *loc; char *rmesc, *rmescend; - USE_ASH_BASH_COMPAT(char *repl = NULL;) - USE_ASH_BASH_COMPAT(char null = '\0';) - USE_ASH_BASH_COMPAT(int pos, len, orig_len;) + IF_ASH_BASH_COMPAT(char *repl = NULL;) + IF_ASH_BASH_COMPAT(char null = '\0';) + IF_ASH_BASH_COMPAT(int pos, len, orig_len;) int saveherefd = herefd; int amount, workloc, resetloc; int zero; @@ -6157,7 +6157,7 @@ subevalvar(char *p, char *str, int strloc, int subtype, * stack will need rebasing, and we'll need to remove our work * areas each time */ - USE_ASH_BASH_COMPAT(restart:) + IF_ASH_BASH_COMPAT(restart:) amount = expdest - ((char *)stackblock() + resetloc); STADJUST(-amount, expdest); @@ -7083,7 +7083,7 @@ static int builtinloc = -1; /* index in path of %builtin, or -1 */ static void -tryexec(USE_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char **envp) +tryexec(IF_FEATURE_SH_STANDALONE(int applet_no,) char *cmd, char **argv, char **envp) { int repeated = 0; @@ -7155,13 +7155,13 @@ shellexec(char **argv, const char *path, int idx) || (applet_no = find_applet_by_name(argv[0])) >= 0 #endif ) { - tryexec(USE_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp); + tryexec(IF_FEATURE_SH_STANDALONE(applet_no,) argv[0], argv, envp); e = errno; } else { e = ENOENT; while ((cmdname = padvance(&path, argv[0])) != NULL) { if (--idx < 0 && pathopt == NULL) { - tryexec(USE_FEATURE_SH_STANDALONE(-1,) cmdname, argv, envp); + tryexec(IF_FEATURE_SH_STANDALONE(-1,) cmdname, argv, envp); if (errno != ENOENT && errno != ENOTDIR) e = errno; } @@ -10789,7 +10789,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs) int parenlevel; /* levels of parens in arithmetic */ int dqvarnest; /* levels of variables expansion within double quotes */ - USE_ASH_BASH_COMPAT(smallint bash_dollar_squote = 0;) + IF_ASH_BASH_COMPAT(smallint bash_dollar_squote = 0;) #if __GNUC__ /* Avoid longjmp clobbering */ @@ -10895,7 +10895,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs) dblquote = 1; goto quotemark; case CENDQUOTE: - USE_ASH_BASH_COMPAT(bash_dollar_squote = 0;) + IF_ASH_BASH_COMPAT(bash_dollar_squote = 0;) if (eofmark != NULL && arinest == 0 && varnest == 0 ) { @@ -10994,7 +10994,7 @@ readtoken1(int firstc, int syntax, char *eofmark, int striptabs) len = out - (char *)stackblock(); out = stackblock(); if (eofmark == NULL) { - if ((c == '>' || c == '<' USE_ASH_BASH_COMPAT( || c == 0x100 + '>')) + if ((c == '>' || c == '<' IF_ASH_BASH_COMPAT( || c == 0x100 + '>')) && quotef == 0 ) { if (isdigit_str9(out)) { @@ -11488,7 +11488,7 @@ xxreadtoken(void) startlinno = g_parsefile->linno; for (;;) { /* until token or start of word found */ c = pgetc_fast(); - if (c == ' ' || c == '\t' USE_ASH_ALIAS( || c == PEOA)) + if (c == ' ' || c == '\t' IF_ASH_ALIAS( || c == PEOA)) continue; if (c == '#') { @@ -11848,7 +11848,9 @@ cmdloop(int top) #endif } n = parsecmd(inter); - /* showtree(n); DEBUG */ +#if DEBUG + showtree(n); +#endif if (n == NEOF) { if (!top || numeof >= 50) break; @@ -12452,8 +12454,8 @@ readcmd(int argc UNUSED_PARAM, char **argv UNUSED_PARAM) rflag = 0; prompt = NULL; while ((i = nextopt("p:u:r" - USE_ASH_READ_TIMEOUT("t:") - USE_ASH_READ_NCHARS("n:s") + IF_ASH_READ_TIMEOUT("t:") + IF_ASH_READ_NCHARS("n:s") )) != '\0') { switch (i) { case 'p': @@ -12644,6 +12646,8 @@ umaskcmd(int argc UNUSED_PARAM, char **argv) S_IROTH, S_IWOTH, S_IXOTH }; + /* TODO: use bb_parse_mode() instead */ + char *ap; mode_t mask; int i; @@ -12710,7 +12714,6 @@ umaskcmd(int argc UNUSED_PARAM, char **argv) * * Public domain. */ - struct limits { uint8_t cmd; /* RLIMIT_xxx fit into it */ uint8_t factor_shift; /* shift by to get rlim_{cur,max} values */