diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-10-31 10:40:37 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-10-31 10:40:37 +0000 |
commit | 69a20f0aca1f4146210fe8c39c8638671e6558c5 (patch) | |
tree | 12c29b829d122188bbdd61cf78a05b2d69be832b | |
parent | 6cf47a79acfef8dbe4e651560f59200978b656b1 (diff) | |
download | busybox-w32-69a20f0aca1f4146210fe8c39c8638671e6558c5.tar.gz busybox-w32-69a20f0aca1f4146210fe8c39c8638671e6558c5.tar.bz2 busybox-w32-69a20f0aca1f4146210fe8c39c8638671e6558c5.zip |
Patch from ASA <llb@udm.net.ru> to that source files
are properly passed their arguments.
-rw-r--r-- | shell/ash.c | 31 |
1 files changed, 25 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c index 0c893998d..a1029fa05 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -359,9 +359,10 @@ static int stacknleft = MINSIZE; | |||
359 | 359 | ||
360 | #ifdef DEBUG | 360 | #ifdef DEBUG |
361 | #define TRACE(param) trace param | 361 | #define TRACE(param) trace param |
362 | typedef union node unode; | ||
362 | static void trace (const char *, ...); | 363 | static void trace (const char *, ...); |
363 | static void trargs (char **); | 364 | static void trargs (char **); |
364 | static void showtree (union node *); | 365 | static void showtree (unode *); |
365 | static void trputc (int); | 366 | static void trputc (int); |
366 | static void trputs (const char *); | 367 | static void trputs (const char *); |
367 | static void opentrace (void); | 368 | static void opentrace (void); |
@@ -1580,8 +1581,10 @@ static int typecmd (int, char **); | |||
1580 | static int getoptscmd (int, char **); | 1581 | static int getoptscmd (int, char **); |
1581 | #endif | 1582 | #endif |
1582 | 1583 | ||
1583 | #ifndef CONFIG_TRUE_FALSE | 1584 | #ifndef CONFIG_TRUE |
1584 | static int true_main (int, char **); | 1585 | static int true_main (int, char **); |
1586 | #endif | ||
1587 | #ifndef CONFIG_FALSE | ||
1585 | static int false_main (int, char **); | 1588 | static int false_main (int, char **); |
1586 | #endif | 1589 | #endif |
1587 | 1590 | ||
@@ -3073,7 +3076,7 @@ returncmd(argc, argv) | |||
3073 | } | 3076 | } |
3074 | 3077 | ||
3075 | 3078 | ||
3076 | #ifndef CONFIG_TRUE_FALSE | 3079 | #ifndef CONFIG_FALSE |
3077 | static int | 3080 | static int |
3078 | false_main(argc, argv) | 3081 | false_main(argc, argv) |
3079 | int argc; | 3082 | int argc; |
@@ -3081,8 +3084,9 @@ false_main(argc, argv) | |||
3081 | { | 3084 | { |
3082 | return 1; | 3085 | return 1; |
3083 | } | 3086 | } |
3087 | #endif | ||
3084 | 3088 | ||
3085 | 3089 | #ifndef CONFIG_TRUE | |
3086 | static int | 3090 | static int |
3087 | true_main(argc, argv) | 3091 | true_main(argc, argv) |
3088 | int argc; | 3092 | int argc; |
@@ -7868,6 +7872,7 @@ dotcmd(argc, argv) | |||
7868 | char **argv; | 7872 | char **argv; |
7869 | { | 7873 | { |
7870 | struct strlist *sp; | 7874 | struct strlist *sp; |
7875 | volatile struct shparam saveparam; | ||
7871 | exitstatus = 0; | 7876 | exitstatus = 0; |
7872 | 7877 | ||
7873 | for (sp = cmdenviron; sp ; sp = sp->next) | 7878 | for (sp = cmdenviron; sp ; sp = sp->next) |
@@ -7879,10 +7884,24 @@ dotcmd(argc, argv) | |||
7879 | 7884 | ||
7880 | setstackmark(&smark); | 7885 | setstackmark(&smark); |
7881 | fullname = find_dot_file(argv[1]); | 7886 | fullname = find_dot_file(argv[1]); |
7887 | |||
7888 | if (argc>2) { | ||
7889 | saveparam = shellparam; | ||
7890 | shellparam.malloc = 0; | ||
7891 | shellparam.nparam = argc - 2; | ||
7892 | shellparam.p = argv + 2; | ||
7893 | }; | ||
7894 | |||
7882 | setinputfile(fullname, 1); | 7895 | setinputfile(fullname, 1); |
7883 | commandname = fullname; | 7896 | commandname = fullname; |
7884 | cmdloop(0); | 7897 | cmdloop(0); |
7885 | popfile(); | 7898 | popfile(); |
7899 | |||
7900 | if (argc>2) { | ||
7901 | freeparam(&shellparam); | ||
7902 | shellparam = saveparam; | ||
7903 | }; | ||
7904 | |||
7886 | popstackmark(&smark); | 7905 | popstackmark(&smark); |
7887 | } | 7906 | } |
7888 | return exitstatus; | 7907 | return exitstatus; |
@@ -11444,7 +11463,7 @@ static void trstring (char *); | |||
11444 | 11463 | ||
11445 | static void | 11464 | static void |
11446 | showtree(n) | 11465 | showtree(n) |
11447 | union node *n; | 11466 | unode *n; |
11448 | { | 11467 | { |
11449 | trputs("showtree called\n"); | 11468 | trputs("showtree called\n"); |
11450 | shtree(n, 1, NULL, stdout); | 11469 | shtree(n, 1, NULL, stdout); |
@@ -12631,7 +12650,7 @@ findvar(struct var **vpp, const char *name) | |||
12631 | /* | 12650 | /* |
12632 | * Copyright (c) 1999 Herbert Xu <herbert@debian.org> | 12651 | * Copyright (c) 1999 Herbert Xu <herbert@debian.org> |
12633 | * This file contains code for the times builtin. | 12652 | * This file contains code for the times builtin. |
12634 | * $Id: ash.c,v 1.32 2001/10/28 05:12:18 andersen Exp $ | 12653 | * $Id: ash.c,v 1.33 2001/10/31 10:40:37 andersen Exp $ |
12635 | */ | 12654 | */ |
12636 | static int timescmd (int argc, char **argv) | 12655 | static int timescmd (int argc, char **argv) |
12637 | { | 12656 | { |