-#if LOGFILE
-
-use_logfile()
-{
- int exists;
- int answer;
- char message[100];
-
- /*
- * If he asked for a log file and we have opened standard input,
- * create the log file.
- * We take care not to blindly overwrite an existing file.
- */
- end_logfile();
-
- /*
- * {{ We could use access() here. }}
- */
- exists = open(namelogfile, 0);
- close(exists);
- exists = (exists >= 0);
-
- if (exists && !force_logfile)
- {
- static char w[] = "WARNING: log file exists: ";
- strcpy(message, w);
- strtcpy(message+sizeof(w)-1, namelogfile,
- sizeof(message)-sizeof(w));
- error(message);
- answer = 'X'; /* Ask the user what to do */
- } else
- answer = 'O'; /* Create the log file */
-
-loop:
- switch (answer)
- {
- case 'O': case 'o':
- logfile = creat(namelogfile, 0644);
- break;
- case 'A': case 'a':
- logfile = open(namelogfile, 1);
- if (lseek(logfile, (off_t)0, L_XTND) < 0)
- {
- close(logfile);
- logfile = -1;
- }
- break;
- case 'D': case 'd':
- answer = 0; /* Don't print an error message */
- break;
- case 'q':
- quit();
- default:
- putstr("\n Overwrite, Append, or Don't log? ");
- answer = getchr();
- putstr("\n");
- flush();
- goto loop;
- }
-
- if (logfile < 0 && answer != 0)
- {
- sprintf(message, "Cannot write to \"%s\"",
- namelogfile);
- error(message);
- }
-}
-