2000-11-06 Kazu Hirata <kazu@hxi.com>
* input-file.c: Fix formatting. * input-file.h: Likewise. * input-scrub.c: Likewise.
This commit is contained in:
parent
c7db355bcd
commit
7152f1dc45
4 changed files with 79 additions and 90 deletions
|
@ -1,3 +1,9 @@
|
|||
2000-11-06 Kazu Hirata <kazu@hxi.com>
|
||||
|
||||
* input-file.c: Fix formatting.
|
||||
* input-file.h: Likewise.
|
||||
* input-scrub.c: Likewise.
|
||||
|
||||
2000-11-06 Nick Clifton <nickc@redhat.com>
|
||||
|
||||
* doc/as.texinfo: Add GNU Free Documentation License.
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
/* input_file.c - Deal with Input Files -
|
||||
Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 98, 1999
|
||||
Copyright (C) 1987, 90, 91, 92, 93, 94, 95, 98, 99, 2000
|
||||
Free Software Foundation, Inc.
|
||||
|
||||
This file is part of GAS, the GNU Assembler.
|
||||
|
@ -57,13 +57,12 @@ static FILE *f_in;
|
|||
static char *file_name;
|
||||
|
||||
/* Struct for saving the state of this module for file includes. */
|
||||
struct saved_file
|
||||
{
|
||||
FILE *f_in;
|
||||
char *file_name;
|
||||
int preprocess;
|
||||
char *app_save;
|
||||
};
|
||||
struct saved_file {
|
||||
FILE *f_in;
|
||||
char *file_name;
|
||||
int preprocess;
|
||||
char *app_save;
|
||||
};
|
||||
|
||||
/* These hooks accomodate most operating systems. */
|
||||
|
||||
|
@ -188,7 +187,7 @@ input_file_close ()
|
|||
fclose (f_in);
|
||||
} /* don't close a null file pointer */
|
||||
f_in = 0;
|
||||
} /* input_file_close() */
|
||||
}
|
||||
|
||||
/* This function is passed to do_scrub_chars. */
|
||||
|
||||
|
@ -245,5 +244,3 @@ input_file_give_next_buffer (where)
|
|||
}
|
||||
return (return_value);
|
||||
}
|
||||
|
||||
/* end of input-file.c */
|
||||
|
|
|
@ -14,12 +14,12 @@
|
|||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with GAS; see the file COPYING. If not, write to
|
||||
the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
|
||||
along with GAS; see the file COPYING. If not, write to the Free
|
||||
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
|
||||
02111-1307, USA. */
|
||||
|
||||
/*"input_file.c":Operating-system dependant functions to read source files.*/
|
||||
|
||||
|
||||
/*
|
||||
* No matter what the operating system, this module must provide the
|
||||
* following services to its callers.
|
||||
|
@ -64,5 +64,3 @@ void input_file_close PARAMS ((void));
|
|||
void input_file_end PARAMS ((void));
|
||||
void input_file_open PARAMS ((char *filename, int pre));
|
||||
void input_file_pop PARAMS ((char *arg));
|
||||
|
||||
/* end of input_file.h */
|
||||
|
|
|
@ -59,14 +59,15 @@
|
|||
static char *buffer_start; /*->1st char of full buffer area. */
|
||||
static char *partial_where; /*->after last full line in buffer. */
|
||||
static int partial_size; /* >=0. Number of chars in partial line in buffer. */
|
||||
|
||||
/* Because we need AFTER_STRING just after last full line, it clobbers
|
||||
1st part of partial line. So we preserve 1st part of partial line
|
||||
here. */
|
||||
static char save_source[AFTER_SIZE];
|
||||
/* Because we need AFTER_STRING just after last */
|
||||
/* full line, it clobbers 1st part of partial */
|
||||
/* line. So we preserve 1st part of partial */
|
||||
/* line here. */
|
||||
static unsigned int buffer_length; /* What is the largest size buffer that */
|
||||
/* input_file_give_next_buffer() could */
|
||||
/* return to us? */
|
||||
|
||||
/* What is the largest size buffer that input_file_give_next_buffer()
|
||||
could return to us? */
|
||||
static unsigned int buffer_length;
|
||||
|
||||
/* The index into an sb structure we are reading from. -1 if none. */
|
||||
static int sb_index = -1;
|
||||
|
@ -101,24 +102,23 @@ static line_numberT physical_input_line;
|
|||
static int logical_input_line;
|
||||
|
||||
/* Struct used to save the state of the input handler during include files */
|
||||
struct input_save
|
||||
{
|
||||
char *buffer_start;
|
||||
char *partial_where;
|
||||
int partial_size;
|
||||
char save_source[AFTER_SIZE];
|
||||
unsigned int buffer_length;
|
||||
char *physical_input_file;
|
||||
char *logical_input_file;
|
||||
line_numberT physical_input_line;
|
||||
int logical_input_line;
|
||||
int sb_index;
|
||||
sb from_sb;
|
||||
int from_sb_is_expansion; /* Should we do a conditional check? */
|
||||
struct input_save *next_saved_file; /* Chain of input_saves */
|
||||
char *input_file_save; /* Saved state of input routines */
|
||||
char *saved_position; /* Caller's saved position in buf */
|
||||
};
|
||||
struct input_save {
|
||||
char *buffer_start;
|
||||
char *partial_where;
|
||||
int partial_size;
|
||||
char save_source[AFTER_SIZE];
|
||||
unsigned int buffer_length;
|
||||
char *physical_input_file;
|
||||
char *logical_input_file;
|
||||
line_numberT physical_input_line;
|
||||
int logical_input_line;
|
||||
int sb_index;
|
||||
sb from_sb;
|
||||
int from_sb_is_expansion; /* Should we do a conditional check? */
|
||||
struct input_save *next_saved_file; /* Chain of input_saves */
|
||||
char *input_file_save; /* Saved state of input routines */
|
||||
char *saved_position; /* Caller's saved position in buf */
|
||||
};
|
||||
|
||||
static struct input_save *input_scrub_push PARAMS ((char *saved_position));
|
||||
static char *input_scrub_pop PARAMS ((struct input_save *arg));
|
||||
|
@ -132,6 +132,7 @@ static struct input_save *next_saved_file;
|
|||
/* Push the state of input reading and scrubbing so that we can #include.
|
||||
The return value is a 'void *' (fudged for old compilers) to a save
|
||||
area, which can be restored by passing it to input_scrub_pop(). */
|
||||
|
||||
static struct input_save *
|
||||
input_scrub_push (saved_position)
|
||||
char *saved_position;
|
||||
|
@ -166,7 +167,7 @@ input_scrub_push (saved_position)
|
|||
memcpy (buffer_start, BEFORE_STRING, (int) BEFORE_SIZE);
|
||||
|
||||
return saved;
|
||||
} /* input_scrub_push() */
|
||||
}
|
||||
|
||||
static char *
|
||||
input_scrub_pop (saved)
|
||||
|
@ -196,12 +197,12 @@ input_scrub_pop (saved)
|
|||
return saved_position;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
input_scrub_begin ()
|
||||
{
|
||||
know (strlen (BEFORE_STRING) == BEFORE_SIZE);
|
||||
know (strlen (AFTER_STRING) == AFTER_SIZE || (AFTER_STRING[0] == '\0' && AFTER_SIZE == 1));
|
||||
know (strlen (AFTER_STRING) == AFTER_SIZE
|
||||
|| (AFTER_STRING[0] == '\0' && AFTER_SIZE == 1));
|
||||
|
||||
input_file_begin ();
|
||||
|
||||
|
@ -229,9 +230,10 @@ input_scrub_end ()
|
|||
}
|
||||
}
|
||||
|
||||
/* Start reading input from a new file. */
|
||||
/* Start reading input from a new file.
|
||||
Return start of caller's part of buffer. */
|
||||
|
||||
char * /* Return start of caller's part of buffer. */
|
||||
char *
|
||||
input_scrub_new_file (filename)
|
||||
char *filename;
|
||||
{
|
||||
|
@ -311,16 +313,17 @@ input_scrub_next_buffer (bufp)
|
|||
if (sb_index >= from_sb.len)
|
||||
{
|
||||
sb_kill (&from_sb);
|
||||
if (from_sb_is_expansion
|
||||
if (from_sb_is_expansion
|
||||
)
|
||||
{
|
||||
cond_finish_check (macro_nest);
|
||||
{
|
||||
cond_finish_check (macro_nest);
|
||||
#ifdef md_macro_end
|
||||
/* allow the target to clean up per-macro expansion data */
|
||||
md_macro_end ();
|
||||
/* Allow the target to clean up per-macro expansion
|
||||
data. */
|
||||
md_macro_end ();
|
||||
#endif
|
||||
}
|
||||
--macro_nest;
|
||||
}
|
||||
--macro_nest;
|
||||
partial_where = NULL;
|
||||
if (next_saved_file != NULL)
|
||||
*bufp = input_scrub_pop (next_saved_file);
|
||||
|
@ -404,15 +407,13 @@ input_scrub_next_buffer (bufp)
|
|||
}
|
||||
}
|
||||
return (partial_where);
|
||||
} /* input_scrub_next_buffer() */
|
||||
}
|
||||
|
||||
/*
|
||||
* The remaining part of this file deals with line numbers, error
|
||||
* messages and so on.
|
||||
*/
|
||||
/* The remaining part of this file deals with line numbers, error
|
||||
messages and so on. Return TRUE if we opened any file. */
|
||||
|
||||
int
|
||||
seen_at_least_1_file () /* TRUE if we opened any file. */
|
||||
seen_at_least_1_file ()
|
||||
{
|
||||
return (physical_input_file != NULL);
|
||||
}
|
||||
|
@ -428,20 +429,17 @@ bump_line_counters ()
|
|||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* new_logical_line()
|
||||
*
|
||||
* Tells us what the new logical line number and file are.
|
||||
* If the line_number is -1, we don't change the current logical line
|
||||
* number. If it is -2, we decrement the logical line number (this is
|
||||
* to support the .appfile pseudo-op inserted into the stream by
|
||||
* do_scrub_chars).
|
||||
* If the fname is NULL, we don't change the current logical file name.
|
||||
* Returns nonzero if the filename actually changes.
|
||||
*/
|
||||
/* Tells us what the new logical line number and file are.
|
||||
If the line_number is -1, we don't change the current logical line
|
||||
number. If it is -2, we decrement the logical line number (this is
|
||||
to support the .appfile pseudo-op inserted into the stream by
|
||||
do_scrub_chars).
|
||||
If the fname is NULL, we don't change the current logical file name.
|
||||
Returns nonzero if the filename actually changes. */
|
||||
|
||||
int
|
||||
new_logical_line (fname, line_number)
|
||||
char *fname; /* DON'T destroy it! We point to it! */
|
||||
char *fname; /* DON'T destroy it! We point to it! */
|
||||
int line_number;
|
||||
{
|
||||
if (line_number >= 0)
|
||||
|
@ -458,15 +456,12 @@ new_logical_line (fname, line_number)
|
|||
}
|
||||
else
|
||||
return 0;
|
||||
} /* new_logical_line() */
|
||||
}
|
||||
|
||||
/*
|
||||
* a s _ w h e r e ()
|
||||
*
|
||||
* Return the current file name and line number.
|
||||
* namep should be char * const *, but there are compilers which screw
|
||||
* up declarations like that, and it's easier to avoid it.
|
||||
*/
|
||||
/* Return the current file name and line number.
|
||||
namep should be char * const *, but there are compilers which screw
|
||||
up declarations like that, and it's easier to avoid it. */
|
||||
|
||||
void
|
||||
as_where (namep, linep)
|
||||
char **namep;
|
||||
|
@ -491,22 +486,17 @@ as_where (namep, linep)
|
|||
if (linep != NULL)
|
||||
*linep = 0;
|
||||
}
|
||||
} /* as_where() */
|
||||
}
|
||||
|
||||
/* Output to given stream how much of line we have scanned so far.
|
||||
Assumes we have scanned up to and including input_line_pointer.
|
||||
No free '\n' at end of line. */
|
||||
|
||||
/*
|
||||
* a s _ h o w m u c h ()
|
||||
*
|
||||
* Output to given stream how much of line we have scanned so far.
|
||||
* Assumes we have scanned up to and including input_line_pointer.
|
||||
* No free '\n' at end of line.
|
||||
*/
|
||||
void
|
||||
as_howmuch (stream)
|
||||
FILE *stream; /* Opened for write please. */
|
||||
{
|
||||
register char *p; /* Scan input line. */
|
||||
/* register char c; JF unused */
|
||||
|
||||
for (p = input_line_pointer - 1; *p != '\n'; --p)
|
||||
{
|
||||
|
@ -536,5 +526,3 @@ as_1_char (c, stream)
|
|||
}
|
||||
(void) putc (c, stream);
|
||||
}
|
||||
|
||||
/* end of input_scrub.c */
|
||||
|
|
Loading…
Reference in a new issue