Imported from ../bash-2.01.tar.gz.
This commit is contained in:
parent
ccc6cda312
commit
d166f04881
304 changed files with 14702 additions and 13012 deletions
26
braces.c
26
braces.c
|
@ -28,11 +28,7 @@
|
|||
# include <unistd.h>
|
||||
#endif
|
||||
|
||||
#if defined (HAVE_STRING_H)
|
||||
# include <string.h>
|
||||
#else /* !HAVE_STRING_H */
|
||||
# include <strings.h>
|
||||
#endif /* !HAVE_STRING_H */
|
||||
#include "bashansi.h"
|
||||
|
||||
#if defined (SHELL)
|
||||
# include "shell.h"
|
||||
|
@ -41,6 +37,10 @@
|
|||
#include "general.h"
|
||||
#define brace_whitespace(c) (!(c) || (c) == ' ' || (c) == '\t' || (c) == '\n')
|
||||
|
||||
#if defined (SHELL)
|
||||
extern char *extract_command_subst ();
|
||||
#endif
|
||||
|
||||
/* Basic idea:
|
||||
|
||||
Segregate the text into 3 sections: preamble (stuff before an open brace),
|
||||
|
@ -210,6 +210,10 @@ brace_gobbler (text, indx, satisfy)
|
|||
int satisfy;
|
||||
{
|
||||
register int i, c, quoted, level, pass_next;
|
||||
#if defined (SHELL)
|
||||
int si;
|
||||
char *t;
|
||||
#endif
|
||||
|
||||
level = quoted = pass_next = 0;
|
||||
|
||||
|
@ -242,6 +246,18 @@ brace_gobbler (text, indx, satisfy)
|
|||
continue;
|
||||
}
|
||||
|
||||
#if defined (SHELL)
|
||||
/* Pass new-style command substitutions through unchanged. */
|
||||
if (c == '$' && text[i+1] == '(') /* ) */
|
||||
{
|
||||
si = i + 2;
|
||||
t = extract_command_subst (text, &si);
|
||||
i = si;
|
||||
free (t);
|
||||
continue;
|
||||
}
|
||||
#endif
|
||||
|
||||
if (c == satisfy && level == 0 && quoted == 0)
|
||||
{
|
||||
/* We ignore an open brace surrounded by whitespace, and also
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue