* src/files.c: Formatting changes.

(tryopen, tryclose, openfiles): Rename as...
(xfopen, xfclose, open_files): this.
(stringappend): static.
* src/files.h: Complete the list of exported symbols.
Propagate its use.
This commit is contained in:
Akim Demaille
2000-10-02 08:02:12 +00:00
parent a70083a3ed
commit 8963a27bde
5 changed files with 133 additions and 121 deletions

View File

@@ -1,3 +1,13 @@
2000-10-02 Akim Demaille <akim@epita.fr>
* src/files.c: Formatting changes.
(tryopen, tryclose, openfiles): Rename as...
(xfopen, xfclose, open_files): this.
(stringappend): static.
* src/files.h: Complete the list of exported symbols.
Propagate its use.
2000-10-02 Akim Demaille <akim@epita.fr> 2000-10-02 Akim Demaille <akim@epita.fr>
* src/reader.h: New file. * src/reader.h: New file.

View File

@@ -71,19 +71,15 @@ static char *tmpattrsfile;
static char *tmptabfile; static char *tmptabfile;
static char *tmpdefsfile; static char *tmpdefsfile;
extern char *mktemp(); /* So the compiler won't complain */ extern char *mktemp (); /* So the compiler won't complain */
extern char *getenv(); extern char *getenv ();
extern char *stringappend PARAMS((const char *, int, const char *));
extern void openfiles PARAMS((void));
extern void open_extra_files PARAMS((void));
int fixed_outfiles = 0; int fixed_outfiles = 0;
extern char *program_name; extern char *program_name;
char * static char *
stringappend (const char *string1, int end1, const char *string2) stringappend (const char *string1, int end1, const char *string2)
{ {
register char *ostring; register char *ostring;
@@ -93,9 +89,10 @@ stringappend (const char *string1, int end1, const char *string2)
cp1 = string2; cp1 = string2;
i = 0; i = 0;
while (*cp1++) i++; while (*cp1++)
i++;
ostring = NEW2(i+end1+1, char); ostring = NEW2 (i + end1 + 1, char);
cp = ostring; cp = ostring;
cp1 = string1; cp1 = string1;
@@ -115,9 +112,9 @@ stringappend (const char *string1, int end1, const char *string2)
`-----------------------------------------------------------------*/ `-----------------------------------------------------------------*/
static FILE * static FILE *
tryopen (const char *name, const char *mode) xfopen (const char *name, const char *mode)
{ {
FILE *ptr; FILE *ptr;
ptr = fopen (name, mode); ptr = fopen (name, mode);
if (!ptr) if (!ptr)
@@ -131,7 +128,7 @@ tryopen (const char *name, const char *mode)
`-------------------------------------------------------------*/ `-------------------------------------------------------------*/
static int static int
tryclose (FILE *ptr) xfclose (FILE *ptr)
{ {
int result; int result;
@@ -148,7 +145,7 @@ tryclose (FILE *ptr)
/* JF this has been hacked to death. Nowaday it sets up the file names for /* JF this has been hacked to death. Nowaday it sets up the file names for
the output files, and opens the tmp files and the parser */ the output files, and opens the tmp files and the parser */
void void
openfiles (void) open_files (void)
{ {
char *name_base; char *name_base;
#ifdef MSDOS #ifdef MSDOS
@@ -173,9 +170,9 @@ openfiles (void)
#endif /* MSDOS */ #endif /* MSDOS */
#if (defined(_WIN32) && !defined(__CYGWIN32__)) #if (defined(_WIN32) && !defined(__CYGWIN32__))
tmp_base = getenv ("TEMP"); /* Windows95 defines this ... */ tmp_base = getenv ("TEMP"); /* Windows95 defines this ... */
if (tmp_base == 0) if (tmp_base == 0)
tmp_base = getenv ("Temp"); /* ... while NT prefers this */ tmp_base = getenv ("Temp"); /* ... while NT prefers this */
if (tmp_base == 0) if (tmp_base == 0)
tmp_base = ""; tmp_base = "";
strlwr (infile); strlwr (infile);
@@ -183,19 +180,19 @@ openfiles (void)
#if (defined(unix) || defined(__unix) || defined(__unix__) || defined(__EMX__)) #if (defined(unix) || defined(__unix) || defined(__unix__) || defined(__EMX__))
{ {
char *tmp_ptr = getenv("TMPDIR"); char *tmp_ptr = getenv ("TMPDIR");
if (tmp_ptr != 0) if (tmp_ptr != 0)
tmp_base = stringappend (tmp_ptr, strlen (tmp_ptr), "/b."); tmp_base = stringappend (tmp_ptr, strlen (tmp_ptr), "/b.");
} }
#endif /* unix || __unix || __unix__ */ #endif /* unix || __unix || __unix__ */
tmp_len = strlen (tmp_base); tmp_len = strlen (tmp_base);
if (spec_outfile) if (spec_outfile)
{ {
/* -o was specified. The precise -o name will be used for ftable. /* -o was specified. The precise -o name will be used for ftable.
For other output files, remove the ".c" or ".tab.c" suffix. */ For other output files, remove the ".c" or ".tab.c" suffix. */
name_base = spec_outfile; name_base = spec_outfile;
#ifdef MSDOS #ifdef MSDOS
strlwr (name_base); strlwr (name_base);
@@ -233,7 +230,7 @@ openfiles (void)
else else
{ {
/* -o was not specified; compute output file name from input /* -o was not specified; compute output file name from input
or use y.tab.c, etc., if -y was specified. */ or use y.tab.c, etc., if -y was specified. */
static char FIXED_NAME_BASE[] = "y.y"; static char FIXED_NAME_BASE[] = "y.y";
@@ -247,105 +244,105 @@ openfiles (void)
short_base_length = base_length; short_base_length = base_length;
#ifdef VMS #ifdef VMS
name_base = stringappend(name_base, short_base_length, "_tab"); name_base = stringappend (name_base, short_base_length, "_tab");
#else #else
#ifdef MSDOS #ifdef MSDOS
name_base = stringappend(name_base, short_base_length, "_tab"); name_base = stringappend (name_base, short_base_length, "_tab");
#else #else
name_base = stringappend(name_base, short_base_length, ".tab"); name_base = stringappend (name_base, short_base_length, ".tab");
#endif /* not MSDOS */ #endif /* not MSDOS */
#endif #endif
base_length = short_base_length + 4; base_length = short_base_length + 4;
} }
finput = tryopen(infile, "r"); finput = xfopen (infile, "r");
if (! noparserflag) if (!noparserflag)
{ {
filename = getenv("BISON_SIMPLE"); filename = getenv ("BISON_SIMPLE");
#ifdef MSDOS #ifdef MSDOS
/* File doesn't exist in current directory; try in INIT directory. */ /* File doesn't exist in current directory; try in INIT directory. */
cp = getenv("INIT"); cp = getenv ("INIT");
if (filename == 0 && cp != NULL) if (filename == 0 && cp != NULL)
{ {
filename = xmalloc(strlen(cp) + strlen(PFILE) + 2); filename = xmalloc (strlen (cp) + strlen (PFILE) + 2);
strcpy(filename, cp); strcpy (filename, cp);
cp = filename + strlen(filename); cp = filename + strlen (filename);
*cp++ = '/'; *cp++ = '/';
strcpy(cp, PFILE); strcpy (cp, PFILE);
} }
#endif /* MSDOS */ #endif /* MSDOS */
fparser = tryopen(filename ? filename : PFILE, "r"); fparser = xfopen (filename ? filename : PFILE, "r");
} }
if (verboseflag) if (verboseflag)
{ {
#ifdef MSDOS #ifdef MSDOS
outfile = stringappend(name_base, short_base_length, ".out"); outfile = stringappend (name_base, short_base_length, ".out");
#else #else
/* We used to use just .out if spec_name_prefix (-p) was used, /* We used to use just .out if spec_name_prefix (-p) was used,
but that conflicts with Posix. */ but that conflicts with Posix. */
outfile = stringappend(name_base, short_base_length, ".output"); outfile = stringappend (name_base, short_base_length, ".output");
#endif #endif
foutput = tryopen(outfile, "w"); foutput = xfopen (outfile, "w");
} }
if (noparserflag) if (noparserflag)
{ {
/* use permanent name for actions file */ /* use permanent name for actions file */
actfile = stringappend(name_base, short_base_length, ".act"); actfile = stringappend (name_base, short_base_length, ".act");
faction = tryopen(actfile, "w"); faction = xfopen (actfile, "w");
} }
#ifdef MSDOS #ifdef MSDOS
if (! noparserflag) if (!noparserflag)
actfile = mktemp(stringappend(tmp_base, tmp_len, "acXXXXXX")); actfile = mktemp (stringappend (tmp_base, tmp_len, "acXXXXXX"));
tmpattrsfile = mktemp(stringappend(tmp_base, tmp_len, "atXXXXXX")); tmpattrsfile = mktemp (stringappend (tmp_base, tmp_len, "atXXXXXX"));
tmptabfile = mktemp(stringappend(tmp_base, tmp_len, "taXXXXXX")); tmptabfile = mktemp (stringappend (tmp_base, tmp_len, "taXXXXXX"));
tmpdefsfile = mktemp(stringappend(tmp_base, tmp_len, "deXXXXXX")); tmpdefsfile = mktemp (stringappend (tmp_base, tmp_len, "deXXXXXX"));
#else #else
if (! noparserflag) if (!noparserflag)
actfile = mktemp(stringappend(tmp_base, tmp_len, "act.XXXXXX")); actfile = mktemp (stringappend (tmp_base, tmp_len, "act.XXXXXX"));
tmpattrsfile = mktemp(stringappend(tmp_base, tmp_len, "attrs.XXXXXX")); tmpattrsfile = mktemp (stringappend (tmp_base, tmp_len, "attrs.XXXXXX"));
tmptabfile = mktemp(stringappend(tmp_base, tmp_len, "tab.XXXXXX")); tmptabfile = mktemp (stringappend (tmp_base, tmp_len, "tab.XXXXXX"));
tmpdefsfile = mktemp(stringappend(tmp_base, tmp_len, "defs.XXXXXX")); tmpdefsfile = mktemp (stringappend (tmp_base, tmp_len, "defs.XXXXXX"));
#endif /* not MSDOS */ #endif /* not MSDOS */
if (! noparserflag) if (!noparserflag)
faction = tryopen(actfile, "w+"); faction = xfopen (actfile, "w+");
fattrs = tryopen(tmpattrsfile,"w+"); fattrs = xfopen (tmpattrsfile, "w+");
ftable = tryopen(tmptabfile, "w+"); ftable = xfopen (tmptabfile, "w+");
if (definesflag) if (definesflag)
{ {
defsfile = stringappend(name_base, base_length, ".h"); defsfile = stringappend (name_base, base_length, ".h");
fdefines = tryopen(tmpdefsfile, "w+"); fdefines = xfopen (tmpdefsfile, "w+");
} }
#if !(defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__))) #if !(defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__)))
if (! noparserflag) if (!noparserflag)
unlink(actfile); unlink (actfile);
unlink(tmpattrsfile); unlink (tmpattrsfile);
unlink(tmptabfile); unlink (tmptabfile);
unlink(tmpdefsfile); unlink (tmpdefsfile);
#endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */ #endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */
/* These are opened by `done' or `open_extra_files', if at all */ /* These are opened by `done' or `open_extra_files', if at all */
if (spec_outfile) if (spec_outfile)
tabfile = spec_outfile; tabfile = spec_outfile;
else else
tabfile = stringappend(name_base, base_length, ".c"); tabfile = stringappend (name_base, base_length, ".c");
#ifdef VMS #ifdef VMS
attrsfile = stringappend(name_base, short_base_length, "_stype.h"); attrsfile = stringappend (name_base, short_base_length, "_stype.h");
guardfile = stringappend(name_base, short_base_length, "_guard.c"); guardfile = stringappend (name_base, short_base_length, "_guard.c");
#else #else
#ifdef MSDOS #ifdef MSDOS
attrsfile = stringappend(name_base, short_base_length, ".sth"); attrsfile = stringappend (name_base, short_base_length, ".sth");
guardfile = stringappend(name_base, short_base_length, ".guc"); guardfile = stringappend (name_base, short_base_length, ".guc");
#else #else
attrsfile = stringappend(name_base, short_base_length, ".stype.h"); attrsfile = stringappend (name_base, short_base_length, ".stype.h");
guardfile = stringappend(name_base, short_base_length, ".guard.c"); guardfile = stringappend (name_base, short_base_length, ".guard.c");
#endif /* not MSDOS */ #endif /* not MSDOS */
#endif /* not VMS */ #endif /* not VMS */
} }
@@ -367,47 +364,47 @@ open_extra_files (void)
char *cp; char *cp;
#endif #endif
tryclose(fparser); xfclose (fparser);
if (! noparserflag) if (!noparserflag)
{ {
filename = (char *) getenv ("BISON_HAIRY"); filename = (char *) getenv ("BISON_HAIRY");
#ifdef MSDOS #ifdef MSDOS
/* File doesn't exist in current directory; try in INIT directory. */ /* File doesn't exist in current directory; try in INIT directory. */
cp = getenv("INIT"); cp = getenv ("INIT");
if (filename == 0 && cp != NULL) if (filename == 0 && cp != NULL)
{ {
filename = xmalloc(strlen(cp) + strlen(PFILE1) + 2); filename = xmalloc (strlen (cp) + strlen (PFILE1) + 2);
strcpy(filename, cp); strcpy (filename, cp);
cp = filename + strlen(filename); cp = filename + strlen (filename);
*cp++ = '/'; *cp++ = '/';
strcpy(cp, PFILE1); strcpy (cp, PFILE1);
} }
#endif #endif
fparser= tryopen(filename ? filename : PFILE1, "r"); fparser = xfopen (filename ? filename : PFILE1, "r");
} }
/* JF change from inline attrs file to separate one */ /* JF change from inline attrs file to separate one */
ftmp = tryopen(attrsfile, "w"); ftmp = xfopen (attrsfile, "w");
rewind(fattrs); rewind (fattrs);
while((c=getc(fattrs))!=EOF) /* Thank god for buffering */ while ((c = getc (fattrs)) != EOF) /* Thank god for buffering */
putc(c,ftmp); putc (c, ftmp);
tryclose(fattrs); xfclose (fattrs);
fattrs=ftmp; fattrs = ftmp;
fguard = tryopen(guardfile, "w"); fguard = xfopen (guardfile, "w");
} }
void void
done (void) done (void)
{ {
tryclose(faction); xfclose (faction);
tryclose(fattrs); xfclose (fattrs);
tryclose(fguard); xfclose (fguard);
tryclose(finput); xfclose (finput);
tryclose(fparser); xfclose (fparser);
tryclose(foutput); xfclose (foutput);
/* JF write out the output file */ /* JF write out the output file */
if (!complain_message_count && ftable) if (!complain_message_count && ftable)
@@ -415,42 +412,46 @@ done (void)
FILE *ftmp; FILE *ftmp;
register int c; register int c;
ftmp=tryopen(tabfile, "w"); ftmp = xfopen (tabfile, "w");
rewind(ftable); rewind (ftable);
while((c=getc(ftable)) != EOF) while ((c = getc (ftable)) != EOF)
putc(c,ftmp); putc (c, ftmp);
tryclose(ftmp); xfclose (ftmp);
tryclose(ftable); xfclose (ftable);
if (definesflag) if (definesflag)
{ {
ftmp = tryopen(defsfile, "w"); ftmp = xfopen (defsfile, "w");
fflush(fdefines); fflush (fdefines);
rewind(fdefines); rewind (fdefines);
while((c=getc(fdefines)) != EOF) while ((c = getc (fdefines)) != EOF)
putc(c,ftmp); putc (c, ftmp);
tryclose(ftmp); xfclose (ftmp);
tryclose(fdefines); xfclose (fdefines);
} }
} }
#if defined (VMS) & !defined (__VMS_POSIX) #if defined (VMS) & !defined (__VMS_POSIX)
if (faction && ! noparserflag) if (faction && !noparserflag)
delete(actfile); delete (actfile);
if (fattrs) if (fattrs)
delete(tmpattrsfile); delete (tmpattrsfile);
if (ftable) if (ftable)
delete(tmptabfile); delete (tmptabfile);
/* Don't call exit again, we're in atexit (). /* Don't call exit again, we're in atexit ().
if (!complain_message_count) if (!complain_message_count)
sys$exit(SS$_NORMAL); sys$exit(SS$_NORMAL);
sys$exit(SS$_ABORT); */ sys$exit(SS$_ABORT); */
#else #else
#if (defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__))) #if (defined (MSDOS) || (defined(_WIN32) && !defined(__CYGWIN32__)))
if (actfile && ! noparserflag) unlink(actfile); if (actfile && !noparserflag)
if (tmpattrsfile) unlink(tmpattrsfile); unlink (actfile);
if (tmptabfile) unlink(tmptabfile); if (tmpattrsfile)
if (tmpdefsfile) unlink(tmpdefsfile); unlink (tmpattrsfile);
if (tmptabfile)
unlink (tmptabfile);
if (tmpdefsfile)
unlink (tmpdefsfile);
#endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */ #endif /* MSDOS || (_WIN32 && !__CYGWIN32__) */
/* Don't call exit again, we're in atexit (). /* Don't call exit again, we're in atexit ().
exit (complain_message_count ? 1 : 0); */ exit (complain_message_count ? 1 : 0); */

View File

@@ -53,4 +53,7 @@ extern char *attrsfile;
extern char *guardfile; extern char *guardfile;
extern char *actfile; extern char *actfile;
extern void done PARAMS((void)); void open_files PARAMS((void));
void open_extra_files PARAMS((void));
void done PARAMS((void));

View File

@@ -41,7 +41,6 @@ extern void berror PARAMS((const char *));
extern char *printable_version PARAMS ((int)); extern char *printable_version PARAMS ((int));
extern void openfiles PARAMS ((void));
extern void reduce_grammar PARAMS ((void)); extern void reduce_grammar PARAMS ((void));
extern void set_nullable PARAMS ((void)); extern void set_nullable PARAMS ((void));
extern void free_nullable PARAMS ((void)); extern void free_nullable PARAMS ((void));
@@ -68,7 +67,7 @@ main (int argc, char *argv[])
/* Be ready to clean up if we exit. */ /* Be ready to clean up if we exit. */
atexit (done); atexit (done);
openfiles (); open_files ();
/* Read the input. Copy some parts of it to FGUARD, FACTION, FTABLE /* Read the input. Copy some parts of it to FGUARD, FACTION, FTABLE
and FATTRS. In file reader.c. The other parts are recorded in and FATTRS. In file reader.c. The other parts are recorded in

View File

@@ -63,7 +63,6 @@ extern int maxtoken;
extern void tabinit PARAMS ((void)); extern void tabinit PARAMS ((void));
extern void free_symtab PARAMS ((void)); extern void free_symtab PARAMS ((void));
extern void open_extra_files PARAMS ((void));
extern char *printable_version PARAMS ((int)); extern char *printable_version PARAMS ((int));
typedef struct symbol_list typedef struct symbol_list