diff options
author | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-03-10 07:12:12 +0000 |
---|---|---|
committer | andersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277> | 2001-03-10 07:12:12 +0000 |
commit | 08c1c99559c99b43f8bd43ebe3c032f1f7cb9730 (patch) | |
tree | 8920760c17eff02678dc81ae6e29d6e108f1d86c /sh.c | |
parent | b3e13bba6eb01596eca3e4c29e9abc2bb3ba7ff5 (diff) | |
download | busybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.tar.gz busybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.tar.bz2 busybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.zip |
When using wordexp, only try to use the expand command
when something actually got expanded. Skip it otherwise.
-Erik
git-svn-id: svn://busybox.net/trunk/busybox@2038 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'sh.c')
-rw-r--r-- | sh.c | 26 |
1 files changed, 14 insertions, 12 deletions
@@ -941,20 +941,22 @@ static int expand_arguments(char *command) | |||
941 | return FALSE; | 941 | return FALSE; |
942 | } | 942 | } |
943 | 943 | ||
944 | /* Convert from char** (one word per string) to a simple char*, | 944 | if (expand_result.we_wordc > 0) { |
945 | * but don't overflow command which is BUFSIZ in length */ | 945 | /* Convert from char** (one word per string) to a simple char*, |
946 | *command = '\0'; | 946 | * but don't overflow command which is BUFSIZ in length */ |
947 | while (i < expand_result.we_wordc && total_length < BUFSIZ) { | 947 | *command = '\0'; |
948 | length=strlen(expand_result.we_wordv[i])+1; | 948 | while (i < expand_result.we_wordc && total_length < BUFSIZ) { |
949 | if (BUFSIZ-total_length-length <= 0) { | 949 | length=strlen(expand_result.we_wordv[i])+1; |
950 | error_msg(out_of_space); | 950 | if (BUFSIZ-total_length-length <= 0) { |
951 | return FALSE; | 951 | error_msg(out_of_space); |
952 | return FALSE; | ||
953 | } | ||
954 | strcat(command+total_length, expand_result.we_wordv[i++]); | ||
955 | strcat(command+total_length, " "); | ||
956 | total_length+=length; | ||
952 | } | 957 | } |
953 | strcat(command+total_length, expand_result.we_wordv[i++]); | 958 | wordfree (&expand_result); |
954 | strcat(command+total_length, " "); | ||
955 | total_length+=length; | ||
956 | } | 959 | } |
957 | wordfree (&expand_result); | ||
958 | #else | 960 | #else |
959 | 961 | ||
960 | /* Ok. They don't have a recent glibc and they don't have uClibc. Chances | 962 | /* Ok. They don't have a recent glibc and they don't have uClibc. Chances |