diff options
author | Eric Andersen <andersen@codepoet.org> | 2001-07-17 01:12:36 +0000 |
---|---|---|
committer | Eric Andersen <andersen@codepoet.org> | 2001-07-17 01:12:36 +0000 |
commit | 044228d5ecb9b79397f9fc915d046cf4538281e2 (patch) | |
tree | 4c43e4947b0196d807249f8f6e1c9c679b6bbcde /shell | |
parent | 51ded05b3bf4df6f126420d39a40d27ea0728aa9 (diff) | |
download | busybox-w32-044228d5ecb9b79397f9fc915d046cf4538281e2.tar.gz busybox-w32-044228d5ecb9b79397f9fc915d046cf4538281e2.tar.bz2 busybox-w32-044228d5ecb9b79397f9fc915d046cf4538281e2.zip |
This is vodz' latest patch. Sorry it took so long...
1) ping cleanup (compile fix from this patch already applied).
2) traceroute call not spare ntohl() now (and reduce size);
3) Fix for functions not declared static in insmod, ash, vi and mount.
4) a more simple API cmdedit :))
5) adds "stopped jobs" warning to ash on Ctrl-D and fixes "ignoreeof" option
6) reduce exporting library function index->strchr (traceroute), bzero->memset (syslogd)
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash.c | 7 | ||||
-rw-r--r-- | shell/cmdedit.c | 11 | ||||
-rw-r--r-- | shell/cmdedit.h | 2 |
3 files changed, 14 insertions, 6 deletions
diff --git a/shell/ash.c b/shell/ash.c index 334d2fddd..d16da82db 100644 --- a/shell/ash.c +++ b/shell/ash.c | |||
@@ -6204,8 +6204,7 @@ retry: | |||
6204 | if (!iflag) | 6204 | if (!iflag) |
6205 | nr = safe_read(parsefile->fd, buf, BUFSIZ - 1); | 6205 | nr = safe_read(parsefile->fd, buf, BUFSIZ - 1); |
6206 | else { | 6206 | else { |
6207 | cmdedit_read_input((char*)cmdedit_prompt, buf); | 6207 | nr = cmdedit_read_input((char*)cmdedit_prompt, buf); |
6208 | nr = strlen(buf); | ||
6209 | } | 6208 | } |
6210 | } | 6209 | } |
6211 | #else | 6210 | #else |
@@ -9445,7 +9444,7 @@ static char *wordtext; /* text of last word returned by readtok | |||
9445 | 9444 | ||
9446 | static struct nodelist *backquotelist; | 9445 | static struct nodelist *backquotelist; |
9447 | static union node *redirnode; | 9446 | static union node *redirnode; |
9448 | struct heredoc *heredoc; | 9447 | static struct heredoc *heredoc; |
9449 | static int quoteflag; /* set if (part of) last token was quoted */ | 9448 | static int quoteflag; /* set if (part of) last token was quoted */ |
9450 | static int startlinno; /* line # where last token started */ | 9449 | static int startlinno; /* line # where last token started */ |
9451 | 9450 | ||
@@ -12917,7 +12916,7 @@ findvar(struct var **vpp, const char *name) | |||
12917 | /* | 12916 | /* |
12918 | * Copyright (c) 1999 Herbert Xu <herbert@debian.org> | 12917 | * Copyright (c) 1999 Herbert Xu <herbert@debian.org> |
12919 | * This file contains code for the times builtin. | 12918 | * This file contains code for the times builtin. |
12920 | * $Id: ash.c,v 1.10 2001/07/12 20:26:31 andersen Exp $ | 12919 | * $Id: ash.c,v 1.11 2001/07/17 01:12:35 andersen Exp $ |
12921 | */ | 12920 | */ |
12922 | static int timescmd (int argc, char **argv) | 12921 | static int timescmd (int argc, char **argv) |
12923 | { | 12922 | { |
diff --git a/shell/cmdedit.c b/shell/cmdedit.c index 540eb7ea7..69f833747 100644 --- a/shell/cmdedit.c +++ b/shell/cmdedit.c | |||
@@ -1153,7 +1153,8 @@ enum { | |||
1153 | * | 1153 | * |
1154 | */ | 1154 | */ |
1155 | 1155 | ||
1156 | extern void cmdedit_read_input(char *prompt, char command[BUFSIZ]) | 1156 | |
1157 | int cmdedit_read_input(char *prompt, char command[BUFSIZ]) | ||
1157 | { | 1158 | { |
1158 | 1159 | ||
1159 | int break_out = 0; | 1160 | int break_out = 0; |
@@ -1231,10 +1232,15 @@ extern void cmdedit_read_input(char *prompt, char command[BUFSIZ]) | |||
1231 | * if the len=0 and no chars to delete */ | 1232 | * if the len=0 and no chars to delete */ |
1232 | if (len == 0) { | 1233 | if (len == 0) { |
1233 | prepare_to_die: | 1234 | prepare_to_die: |
1235 | #if !defined(BB_FEATURE_ASH) | ||
1234 | printf("exit"); | 1236 | printf("exit"); |
1235 | goto_new_line(); | 1237 | goto_new_line(); |
1236 | /* cmdedit_reset_term() called in atexit */ | 1238 | /* cmdedit_reset_term() called in atexit */ |
1237 | exit(EXIT_SUCCESS); | 1239 | exit(EXIT_SUCCESS); |
1240 | #else | ||
1241 | break_out = -1; /* for control stoped jobs */ | ||
1242 | break; | ||
1243 | #endif | ||
1238 | } else { | 1244 | } else { |
1239 | input_delete(); | 1245 | input_delete(); |
1240 | } | 1246 | } |
@@ -1455,8 +1461,10 @@ prepare_to_die: | |||
1455 | num_ok_lines++; | 1461 | num_ok_lines++; |
1456 | #endif | 1462 | #endif |
1457 | } | 1463 | } |
1464 | if(break_out>0) { | ||
1458 | command[len++] = '\n'; /* set '\n' */ | 1465 | command[len++] = '\n'; /* set '\n' */ |
1459 | command[len] = 0; | 1466 | command[len] = 0; |
1467 | } | ||
1460 | #if defined(BB_FEATURE_CLEAN_UP) && defined(BB_FEATURE_COMMAND_TAB_COMPLETION) | 1468 | #if defined(BB_FEATURE_CLEAN_UP) && defined(BB_FEATURE_COMMAND_TAB_COMPLETION) |
1461 | input_tab(0); /* strong free */ | 1469 | input_tab(0); /* strong free */ |
1462 | #endif | 1470 | #endif |
@@ -1464,6 +1472,7 @@ prepare_to_die: | |||
1464 | free(cmdedit_prompt); | 1472 | free(cmdedit_prompt); |
1465 | #endif | 1473 | #endif |
1466 | cmdedit_reset_term(); | 1474 | cmdedit_reset_term(); |
1475 | return len; | ||
1467 | } | 1476 | } |
1468 | 1477 | ||
1469 | 1478 | ||
diff --git a/shell/cmdedit.h b/shell/cmdedit.h index 1482da3b8..83893572a 100644 --- a/shell/cmdedit.h +++ b/shell/cmdedit.h | |||
@@ -1,6 +1,6 @@ | |||
1 | #ifndef CMDEDIT_H | 1 | #ifndef CMDEDIT_H |
2 | #define CMDEDIT_H | 2 | #define CMDEDIT_H |
3 | 3 | ||
4 | void cmdedit_read_input(char* promptStr, char* command); /* read a line of input */ | 4 | int cmdedit_read_input(char* promptStr, char* command); |
5 | 5 | ||
6 | #endif /* CMDEDIT_H */ | 6 | #endif /* CMDEDIT_H */ |