* fork-child.c (fork_inferior): Only quote exec file if needed.

* mipsread.c (parse_symbol): Remove 21 Jul 93 change with
	stTypedef inside an stBlock.
This commit is contained in:
Jim Kingdon 1993-07-27 17:43:09 +00:00
parent 4e95866e2c
commit 38bbfd3795
2 changed files with 52 additions and 9 deletions

View File

@ -97,20 +97,58 @@ fork_inferior (exec_file, allargs, env, traceme_fun, init_trace_fun)
#endif
strcat (shell_command, "exec ");
/* Now add exec_file, quoting as necessary. Quoting in this style is
said to work with all shells. */
/* Now add exec_file, quoting as necessary. */
{
char *p;
int need_to_quote;
strcat (shell_command, "'");
for (p = exec_file; *p != '\0'; ++p)
/* Quoting in this style is said to work with all shells. But csh
on IRIX 4.0.1 can't deal with it. So we only quote it if we need
to. */
p = exec_file;
while (1)
{
if (*p == '\'')
strcat (shell_command, "'\\''");
else
strncat (shell_command, p, 1);
switch (*p)
{
case '\'':
case '"':
case '(':
case ')':
case '$':
case '&':
case ';':
case '<':
case '>':
case ' ':
case '\n':
case '\t':
need_to_quote = 1;
goto end_scan;
case '\0':
need_to_quote = 0;
goto end_scan;
default:
break;
}
++p;
}
strcat (shell_command, "'");
end_scan:
if (need_to_quote)
{
strcat (shell_command, "'");
for (p = exec_file; *p != '\0'; ++p)
{
if (*p == '\'')
strcat (shell_command, "'\\''");
else
strncat (shell_command, p, 1);
}
strcat (shell_command, "'");
}
else
strcat (shell_command, exec_file);
}
strcat (shell_command, " ");

View File

@ -954,6 +954,10 @@ parse_symbol (sh, ax, ext_sh, bigend)
max_value = tsym.value;
break;
#if 0
/* This does not fix the bug which it intended to fix,
and makes GDB hang when reading its own symbol table on
the SGI, when compiled with the SGI compiler. */
case stTypedef:
case stConstant:
case stStaticProc:
@ -962,6 +966,7 @@ parse_symbol (sh, ax, ext_sh, bigend)
Apparently processing them like the following prevents
core dumps. */
/* FALLTHROUGH */
#endif
case stBlock:
case stUnion: