Honor TMPDIR on Unix hosts.

Use prototypes if the compiler understands them.
This commit is contained in:
Jesse Thilo
1998-12-30 05:22:02 +00:00
parent 118fb2053c
commit bd088c911c

View File

@@ -72,8 +72,12 @@ extern int noparserflag;
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 void perror(); extern void perror();
FILE *tryopen(); /* This might be a good idea */
void done(); char *stringappend PARAMS((char *, int, char *));
void openfiles PARAMS((void));
void open_extra_files PARAMS((void));
FILE *tryopen PARAMS((char *, char *)); /* This might be a good idea */
void done PARAMS((int));
extern char *program_name; extern char *program_name;
extern int verboseflag; extern int verboseflag;
@@ -81,11 +85,8 @@ extern int definesflag;
int fixed_outfiles = 0; int fixed_outfiles = 0;
char* char *
stringappend(string1, end1, string2) stringappend (char *string1, int end1, char *string2)
char *string1;
int end1;
char *string2;
{ {
register char *ostring; register char *ostring;
register char *cp, *cp1; register char *cp, *cp1;
@@ -102,7 +103,8 @@ char *string2;
*cp++ = *cp1++; *cp++ = *cp1++;
cp1 = string2; cp1 = string2;
while (*cp++ = *cp1++) ; while ((*cp++ = *cp1++))
;
return ostring; return ostring;
} }
@@ -111,7 +113,7 @@ char *string2;
/* 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() openfiles (void)
{ {
char *name_base; char *name_base;
register char *cp; register char *cp;
@@ -142,6 +144,15 @@ openfiles()
strlwr (infile); strlwr (infile);
#endif /* _WIN32 && !__CYGWIN32__ */ #endif /* _WIN32 && !__CYGWIN32__ */
#if (defined(unix) || defined(__unix) || defined(__unix__))
{
char *tmp_ptr = getenv("TMPDIR");
if (tmp_ptr != 0)
tmp_base = stringappend (tmp_ptr, strlen (tmp_ptr), "/b.");
}
#endif /* unix || __unix || __unix__ */
tmp_len = strlen (tmp_base); tmp_len = strlen (tmp_base);
if (spec_outfile) if (spec_outfile)
@@ -306,7 +317,7 @@ openfiles()
This is done when %semantic_parser is seen in the declarations section. */ This is done when %semantic_parser is seen in the declarations section. */
void void
open_extra_files() open_extra_files (void)
{ {
FILE *ftmp; FILE *ftmp;
int c; int c;
@@ -348,9 +359,7 @@ open_extra_files()
/* JF to make file opening easier. This func tries to open file /* JF to make file opening easier. This func tries to open file
NAME with mode MODE, and prints an error message if it fails. */ NAME with mode MODE, and prints an error message if it fails. */
FILE * FILE *
tryopen(name, mode) tryopen (char *name, char *mode)
char *name;
char *mode;
{ {
FILE *ptr; FILE *ptr;
@@ -365,8 +374,7 @@ char *mode;
} }
void void
done(k) done (int k)
int k;
{ {
if (faction) if (faction)
fclose(faction); fclose(faction);