#ifdef USE_TMP
extern char *mktemp(); /* library routine */
-static char tmpname[] = "/tmp/Cem.XXXXXX";
+char *tmpfdir = "/tmp"; /* where to keep the temporary file */
+static char *tmpfname = "/Cem.XXXXXX";
char *tmpfile = 0;
#endif USE_TMP
compile(argc, argv)
char *argv[];
{
+#ifdef USE_TMP
+ char tmpf[256];
+#endif
+
#ifndef NOPP
int pp_only = options['E'] || options['P'];
#endif NOPP
}
#ifdef USE_TMP
- tmpfile = mktemp(tmpname);
+ strcpy(tmpf, tmpfdir);
+ strcat(tmpf, tmpfname);
+ tmpfile = mktemp(tmpf);
#endif USE_TMP
+
if (strcmp(destination, "-") == 0)
destination = 0;
if (!InsertFile(source, (char **) 0)) /* read the source file */
while generating compact EM code
P in running the preprocessor do not output '# line' lines
R restricted C
+T take path following as directory for storing temporary file(s)
U undefine predefined name
V set objectsize and alignment requirements
w suppress warning diagnostics
#include "sizes.h"
#include "align.h"
#include "storage.h"
+#include "use_tmp.h"
#ifndef NOPP
extern char *inctable[MAXINCL];
extern char options[];
extern int idfsize;
+extern char *tmpfdir; /* main.c */
int txt2int();
#endif NOPP
break;
+#ifdef USE_TMP
+ case 'T' :
+ if (*text)
+ tmpfdir = text;
+ else
+ tmpfdir = ".";
+#else USE_TMP
+ warning("-T option ignored");
+#endif USE_TMP
+ break;
+
case 'U' : { /* -Uname : undefine predefined */
#ifndef NOPP
struct idf *idef;