* Copyright (c) 1992 The Regents of the University of California.
* This code is derived from software contributed to Berkeley by
* Rodney Ruddock of the University of Guelph.
* %sccs.include.redist.c%
static char sccsid
[] = "@(#)e.c 5.1 (Berkeley) %G%";
* Places a new file in the buffer to be editted. The current contents
* of the buffer are deleted - no undo can be perfomed. A warning is
* issued once if no write has occurred since the last buffer
* modification (unless 'E' spec'd).
int l_which
; /* which is it? 'e' or 'E' */
l_temp
= filename(inputt
, errnum
);
filename_current
= l_temp
;
while (((ss
= getc(inputt
)) != '\n') || (ss
== EOF
))
/* note: 'E' will bypass this if stmt., which warns of no save */
if ((change_flag
== 1L) && (l_which
== 'e'))
strcpy(help_msg
, "warning: buffer changes not saved");
start_default
= End_default
= 0;
if (start
== NULL
&& bottom
== NULL
)
d(inputt
, errnum
); /* delete the whole buffer */
u_clr_stk(); /* an 'e' clears all traces of last doc'mt, even in 'g' */
/* This is pulled out of e.c to make the "simulated 'e'" at startup
template = (char *)calloc(FILENAME_LEN
, sizeof(char));
/* create the buffer using the method favored at compile time */
bcopy("/tmp/_4.4bsd_ed_XXXXXX\0", template, 22);
fhtmp
= fopen(template, "w+");
(l_dbaccess
.bval
) = (u_char
)'\0';
(l_dbaccess
.cachesize
) = 0;
(l_dbaccess
.flags
) = R_NOKEY
;
dbhtmp
= dbopen(template, (O_CREAT
| O_RDWR
), (S_IRUSR
| S_IWUSR
), (DBTYPE
)DB_RECNO
, &l_dbaccess
);
filename_flag
= 1; /* so 'r' knows the filename is already read in */