aboutsummaryrefslogtreecommitdiff
path: root/gas/input-file.c
diff options
context:
space:
mode:
Diffstat (limited to 'gas/input-file.c')
-rw-r--r--gas/input-file.c77
1 files changed, 37 insertions, 40 deletions
diff --git a/gas/input-file.c b/gas/input-file.c
index f001e52..02512de 100644
--- a/gas/input-file.c
+++ b/gas/input-file.c
@@ -1,5 +1,5 @@
/* input_file.c - Deal with Input Files -
- Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000
+ Copyright 1987, 1990, 1991, 1992, 1993, 1994, 1995, 1999, 2000, 2001
Free Software Foundation, Inc.
This file is part of GAS, the GNU Assembler.
@@ -19,12 +19,10 @@
Software Foundation, 59 Temple Place - Suite 330, Boston, MA
02111-1307, USA. */
-/*
- * Confines all details of reading source bytes to this module.
- * All O/S specific crocks should live here.
- * What we lose in "efficiency" we gain in modularity.
- * Note we don't need to #include the "as.h" file. No common coupling!
- */
+/* Confines all details of reading source bytes to this module.
+ All O/S specific crocks should live here.
+ What we lose in "efficiency" we gain in modularity.
+ Note we don't need to #include the "as.h" file. No common coupling! */
#include <stdio.h>
#include <string.h>
@@ -35,34 +33,30 @@
static int input_file_get PARAMS ((char *, int));
/* This variable is non-zero if the file currently being read should be
- preprocessed by app. It is zero if the file can be read straight in.
- */
+ preprocessed by app. It is zero if the file can be read straight in. */
int preprocess = 0;
-/*
- * This code opens a file, then delivers BUFFER_SIZE character
- * chunks of the file on demand.
- * BUFFER_SIZE is supposed to be a number chosen for speed.
- * The caller only asks once what BUFFER_SIZE is, and asks before
- * the nature of the input files (if any) is known.
- */
+/* This code opens a file, then delivers BUFFER_SIZE character
+ chunks of the file on demand.
+ BUFFER_SIZE is supposed to be a number chosen for speed.
+ The caller only asks once what BUFFER_SIZE is, and asks before
+ the nature of the input files (if any) is known. */
#define BUFFER_SIZE (32 * 1024)
-/*
- * We use static data: the data area is not sharable.
- */
+/* We use static data: the data area is not sharable. */
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. */
@@ -92,6 +86,7 @@ input_file_is_open ()
/* Push the state of our input, returning a pointer to saved info that
can be restored with input_file_pop (). */
+
char *
input_file_push ()
{
@@ -105,7 +100,8 @@ input_file_push ()
if (preprocess)
saved->app_save = app_push ();
- input_file_begin (); /* Initialize for new file */
+ /* Initialize for new file. */
+ input_file_begin ();
return (char *) saved;
}
@@ -116,7 +112,7 @@ input_file_pop (arg)
{
register struct saved_file *saved = (struct saved_file *) arg;
- input_file_end (); /* Close out old file */
+ input_file_end (); /* Close out old file. */
f_in = saved->f_in;
file_name = saved->file_name;
@@ -140,7 +136,7 @@ input_file_open (filename, pre)
assert (filename != 0); /* Filename may not be NULL. */
if (filename[0])
{ /* We have a file name. Suck it and see. */
- f_in = fopen (filename, "r");
+ f_in = fopen (filename, FOPEN_RT);
file_name = filename;
}
else
@@ -157,7 +153,8 @@ input_file_open (filename, pre)
c = getc (f_in);
if (c == '#')
- { /* Begins with comment, may not want to preprocess */
+ {
+ /* Begins with comment, may not want to preprocess. */
c = getc (f_in);
if (c == 'N')
{
@@ -165,7 +162,7 @@ input_file_open (filename, pre)
if (!strcmp (buf, "O_APP\n"))
preprocess = 0;
if (!strchr (buf, '\n'))
- ungetc ('#', f_in); /* It was longer */
+ ungetc ('#', f_in); /* It was longer. */
else
ungetc ('\n', f_in);
}
@@ -179,13 +176,14 @@ input_file_open (filename, pre)
}
/* Close input file. */
+
void
input_file_close ()
{
+ /* Don't close a null file pointer. */
if (f_in != NULL)
- {
- fclose (f_in);
- } /* don't close a null file pointer */
+ fclose (f_in);
+
f_in = 0;
}
@@ -218,12 +216,10 @@ input_file_give_next_buffer (where)
if (f_in == (FILE *) 0)
return 0;
- /*
- * fflush (stdin); could be done here if you want to synchronise
- * stdin and stdout, for the case where our input file is stdin.
- * Since the assembler shouldn't do any output to stdout, we
- * don't bother to synch output and input.
- */
+ /* fflush (stdin); could be done here if you want to synchronise
+ stdin and stdout, for the case where our input file is stdin.
+ Since the assembler shouldn't do any output to stdout, we
+ don't bother to synch output and input. */
if (preprocess)
size = do_scrub_chars (input_file_get, where, BUFFER_SIZE);
else
@@ -242,5 +238,6 @@ input_file_give_next_buffer (where)
f_in = (FILE *) 0;
return_value = 0;
}
- return (return_value);
+
+ return return_value;
}