diff options
| author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-10-31 10:40:37 +0000 |
|---|---|---|
| committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-10-31 10:40:37 +0000 |
| commit | 64dfafd384df3a24e7b7d814366d665f024e6b02 (patch) | |
| tree | 12c29b829d122188bbdd61cf78a05b2d69be832b | |
| parent | dc1bbd1b50c3a3eae314b35202f8aa3de236ddab (diff) | |
| download | busybox-w32-64dfafd384df3a24e7b7d814366d665f024e6b02.tar.gz busybox-w32-64dfafd384df3a24e7b7d814366d665f024e6b02.tar.bz2 busybox-w32-64dfafd384df3a24e7b7d814366d665f024e6b02.zip | |
Patch from ASA <llb@udm.net.ru> to that source files
are properly passed their arguments.
git-svn-id: svn://busybox.net/trunk/busybox@3613 69ca8d6d-28ef-0310-b511-8ec308f3f277
| -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 | { |
