diff options
author | Jari Aalto <jari.aalto@cante.net> | 2001-11-13 17:56:06 +0000 |
---|---|---|
committer | Jari Aalto <jari.aalto@cante.net> | 2009-09-12 16:46:54 +0000 |
commit | f73dda092b33638d2d5e9c35375f687a607b5403 (patch) | |
tree | f21584e70a444d6a1ecba0fb5e2cf79e8cce91db /builtins/kill.def | |
parent | 28ef6c316f1aff914bb95ac09787a3c83c1815fd (diff) | |
download | android_external_bash-f73dda092b33638d2d5e9c35375f687a607b5403.tar.gz android_external_bash-f73dda092b33638d2d5e9c35375f687a607b5403.tar.bz2 android_external_bash-f73dda092b33638d2d5e9c35375f687a607b5403.zip |
Imported from ../bash-2.05a.tar.gz.
Diffstat (limited to 'builtins/kill.def')
-rw-r--r-- | builtins/kill.def | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/builtins/kill.def b/builtins/kill.def index 4392717..d7aba5b 100644 --- a/builtins/kill.def +++ b/builtins/kill.def @@ -58,8 +58,6 @@ extern int errno; #endif /* !errno */ #if defined (JOB_CONTROL) -extern int interactive; -extern int job_control; extern int posixly_correct; #if !defined (CONTINUE_AFTER_KILL_ERROR) @@ -78,6 +76,7 @@ kill_builtin (list) int signal, any_succeeded, listing, saw_signal; char *sigspec, *word; pid_t pid; + long pid_value; if (list == 0) { @@ -164,10 +163,10 @@ kill_builtin (list) if (*word == '-') word++; - if (*word && all_digits (word)) + if (*word && legal_number (word, &pid_value) && (pid_value == (pid_t)pid_value)) { /* Use the entire argument in case of minus sign presence. */ - pid = (pid_t) atoi (list->word->word); + pid = (pid_t) pid_value; if (kill_pid (pid, signal, 0) < 0) goto signal_error; @@ -207,12 +206,10 @@ kill_builtin (list) if (kill_pid (pid, signal, 1) < 0) { signal_error: - if (errno == EPERM) - builtin_error ("(%d) - Not owner", (int)pid); - else if (errno == ESRCH) - builtin_error ("(%d) - No such pid", (int)pid); - else + if (errno == EINVAL) builtin_error ("Invalid signal %d", signal); + else + builtin_error ("(%ld) - %s", (long)pid, strerror (errno)); CONTINUE_OR_FAIL; } else |