summaryrefslogtreecommitdiff
path: root/job.c
diff options
context:
space:
mode:
authorPaul Smith <psmith@gnu.org>2003-03-25 03:21:42 +0000
committerPaul Smith <psmith@gnu.org>2003-03-25 03:21:42 +0000
commitacb2e6496630080a172d8938f0e0a459ee2929e2 (patch)
tree3c7d216b9badfed4c6fe43526dbdfb513e4512be /job.c
parent276d0c7c646eef13a40fcaccbda1a56bed1310c6 (diff)
downloadgunmake-acb2e6496630080a172d8938f0e0a459ee2929e2.tar.gz
Fix bug #2892.
More OS/2 updates from Andreas Buening. Upgrade build system to autoconf 2.57 and automake 1.7.3.
Diffstat (limited to 'job.c')
-rw-r--r--job.c17
1 files changed, 9 insertions, 8 deletions
diff --git a/job.c b/job.c
index 25988a9..b083214 100644
--- a/job.c
+++ b/job.c
@@ -2328,9 +2328,9 @@ child_execute_job (int stdin_fd, int stdout_fd, char **argv, char **envp)
/* < 0 only if dup() failed */
if (save_stdin < 0)
- fatal (NILF, _("could not duplicate stdin\n"));
+ fatal (NILF, _("no more file handles: could not duplicate stdin\n"));
if (save_stdout < 0)
- fatal (NILF, _("could not duplicate stdout\n"));
+ fatal (NILF, _("no more file handles: could not duplicate stdout\n"));
/* Close unnecessary file handles for the child. */
if (save_stdin != 0)
@@ -2510,6 +2510,8 @@ exec_command (char **argv, char **envp)
shell = lookup_variable ("SHELL", 5);
if (shell)
shell = shell->value;
+ else
+ shell = 0;
# else
shell = getenv ("SHELL");
# endif
@@ -2655,7 +2657,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
"set", "setlocal", "shift", "start", "time",
"type", "ver", "verify", "vol", ":", 0 };
- static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^";
+ static char sh_chars_sh[] = "#;\"*?[]&|<>(){}$`^~'";
static char *sh_cmds_sh[] = { "echo", "cd", "eval", "exec", "exit", "login",
"logout", "set", "umask", "wait", "while",
"for", "case", "if", ":", ".", "break",
@@ -2751,7 +2753,8 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
{
extern int _is_unixy_shell (const char *_path);
- message (1, _("$SHELL changed (was `%s', now `%s')"), default_shell, shell);
+ DB (DB_BASIC, (_("$SHELL changed (was `%s', now `%s')\n"),
+ default_shell, shell));
unixy_shell = _is_unixy_shell (shell);
default_shell = shell;
/* we must allocate a copy of shell: construct_command_argv() will free
@@ -3236,8 +3239,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
if (*q == quote)
{
/* remove the quote */
- while(*q == quote) /* do not ask */
- q++;
+ q++;
quote = 0;
}
else /* normal character: copy it */
@@ -3253,8 +3255,7 @@ construct_command_argv_internal (char *line, char **restp, char *shell,
{
/* remove opening quote */
quote = *q;
- while(*q == quote) /* do not ask */
- q++;
+ q++;
}
/* spaces outside of a quoted string: remove them