BSD 2 development
[unix-history] / .ref-BSD-1 / ex-1.1 / ex_file.c
#include "ex.h"
/*
* Ex - a text editor
* Bill Joy UCB September 1977
*/
filename(comm)
char comm;
{
register c;
c = getchar();
if (endcmd(c)) {
if (savedfile[0] == 0 && comm != 'f')
error("No file|No current filename");
strcpy(file, savedfile);
} else {
ungetchar(c);
getone();
c = comm;
if (savedfile[0] == 0 && c != 'E' && c != 'e') {
c = 'e';
value(EDITED) = 0;
}
switch (c) {
case 'f':
value(EDITED) = 0;
case 'e':
if (savedfile[0])
strcpy(altfile, savedfile);
strcpy(savedfile, file);
break;
default:
if (file[0])
strcpy(altfile, file);
break;
}
}
if (value(HUSH) && comm != 'f' || comm == 'E')
return;
if (file[0] != 0) {
lprintf("\"%s\"", file);
if (comm == 'f') {
if (value(EDITED))
printf(" [Edited]");
if (tchngflag)
printf(" [Modified]");
}
flush();
} else
printf("No file ");
if (comm == 'f')
printf(mesg(" %d lin%c@in buffer"), dol - zero, dol == one ? 'e' : 'es');
}