mirror of
https://github.com/bminor/binutils-gdb.git
synced 2025-12-27 17:40:49 +00:00
* read.c (old_buffer, old_input, old_limit): Remove variables.
(read_a_source_file): Delete label contin. <handling #APP/#NO_APP>: Use an "sb" to push #APP expansion into input as with macros, instead of in separate old_* variables. Zero-terminate string being scrubbed.
This commit is contained in:
@@ -1,3 +1,11 @@
|
||||
2003-05-13 Hans-Peter Nilsson <hp@axis.com>
|
||||
|
||||
* read.c (old_buffer, old_input, old_limit): Remove variables.
|
||||
(read_a_source_file): Delete label contin.
|
||||
<handling #APP/#NO_APP>: Use an "sb" to push #APP expansion into
|
||||
input as with macros, instead of in separate old_* variables.
|
||||
Zero-terminate string being scrubbed.
|
||||
|
||||
2003-05-12 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* config/tc-xstormy16.c (skipping_fptr): New local variable.
|
||||
|
||||
44
gas/read.c
44
gas/read.c
@@ -168,10 +168,6 @@ static char *buffer_limit; /*->1 + last char in buffer. */
|
||||
internals manual. */
|
||||
int target_big_endian = TARGET_BYTES_BIG_ENDIAN;
|
||||
|
||||
static char *old_buffer; /* JF a hack. */
|
||||
static char *old_input;
|
||||
static char *old_limit;
|
||||
|
||||
/* Variables for handling include file directory table. */
|
||||
|
||||
/* Table of pointers to directories to search for .include's. */
|
||||
@@ -533,9 +529,7 @@ read_a_source_file (name)
|
||||
while ((buffer_limit = input_scrub_next_buffer (&input_line_pointer)) != 0)
|
||||
{ /* We have another line to parse. */
|
||||
know (buffer_limit[-1] == '\n'); /* Must have a sentinel. */
|
||||
contin: /* JF this goto is my fault I admit it.
|
||||
Someone brave please re-write the whole
|
||||
input section here? Pleeze??? */
|
||||
|
||||
while (input_line_pointer < buffer_limit)
|
||||
{
|
||||
/* We have more of this buffer to parse. */
|
||||
@@ -953,6 +947,7 @@ read_a_source_file (name)
|
||||
|
||||
if (c && strchr (line_comment_chars, c))
|
||||
{ /* Its a comment. Better say APP or NO_APP. */
|
||||
sb sbuf;
|
||||
char *ends;
|
||||
char *new_buf;
|
||||
char *new_tmp;
|
||||
@@ -965,6 +960,7 @@ read_a_source_file (name)
|
||||
continue; /* We ignore it */
|
||||
s += 4;
|
||||
|
||||
sb_new (&sbuf);
|
||||
ends = strstr (s, "#NO_APP\n");
|
||||
|
||||
if (!ends)
|
||||
@@ -1026,7 +1022,7 @@ read_a_source_file (name)
|
||||
|
||||
if (size < space)
|
||||
{
|
||||
new_tmp += size;
|
||||
new_tmp[size] = 0;
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -1037,13 +1033,19 @@ read_a_source_file (name)
|
||||
|
||||
if (tmp_buf)
|
||||
free (tmp_buf);
|
||||
old_buffer = buffer;
|
||||
old_input = input_line_pointer;
|
||||
old_limit = buffer_limit;
|
||||
buffer = new_buf;
|
||||
input_line_pointer = new_buf;
|
||||
buffer_limit = new_tmp;
|
||||
|
||||
/* We've "scrubbed" input to the preferred format. In the
|
||||
process we may have consumed the whole of the remaining
|
||||
file (and included files). We handle this formatted
|
||||
input similar to that of macro expansion, letting
|
||||
actual macro expansion (possibly nested) and other
|
||||
input expansion work. Beware that in messages, line
|
||||
numbers and possibly file names will be incorrect. */
|
||||
sb_add_string (&sbuf, new_buf);
|
||||
input_scrub_include_sb (&sbuf, input_line_pointer, 0);
|
||||
sb_kill (&sbuf);
|
||||
buffer_limit = input_scrub_next_buffer (&input_line_pointer);
|
||||
free (new_buf);
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -1061,20 +1063,6 @@ read_a_source_file (name)
|
||||
#ifdef md_after_pass_hook
|
||||
md_after_pass_hook ();
|
||||
#endif
|
||||
|
||||
if (old_buffer)
|
||||
{
|
||||
free (buffer);
|
||||
bump_line_counters ();
|
||||
if (old_input != 0)
|
||||
{
|
||||
buffer = old_buffer;
|
||||
input_line_pointer = old_input;
|
||||
buffer_limit = old_limit;
|
||||
old_buffer = 0;
|
||||
goto contin;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
quit:
|
||||
|
||||
Reference in New Issue
Block a user