version 1.3, 1997/07/13 21:21:11 |
version 1.4, 1997/07/13 23:53:59 |
|
|
sigint = signal(SIGINT, SIG_IGN); |
sigint = signal(SIGINT, SIG_IGN); |
fp = run_editor(setinput(mp), mp->m_size, type, readonly); |
fp = run_editor(setinput(mp), mp->m_size, type, readonly); |
if (fp != NULL) { |
if (fp != NULL) { |
(void) fseek(otf, 0L, 2); |
(void)fseek(otf, 0L, 2); |
size = ftell(otf); |
size = ftell(otf); |
mp->m_block = blockof(size); |
mp->m_block = blockof(size); |
mp->m_offset = offsetof(size); |
mp->m_offset = offsetof(size); |
|
|
warn("/tmp"); |
warn("/tmp"); |
(void)Fclose(fp); |
(void)Fclose(fp); |
} |
} |
(void) signal(SIGINT, sigint); |
(void)signal(SIGINT, sigint); |
} |
} |
return(0); |
return(0); |
} |
} |
|
|
} |
} |
if ((nf = Fdopen(t, "w")) == NULL) { |
if ((nf = Fdopen(t, "w")) == NULL) { |
warn(tempEdit); |
warn(tempEdit); |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
goto out; |
goto out; |
} |
} |
if (size >= 0) |
if (size >= 0) |
while (--size >= 0 && (t = getc(fp)) != EOF) |
while (--size >= 0 && (t = getc(fp)) != EOF) |
(void) putc(t, nf); |
(void)putc(t, nf); |
else |
else |
while ((t = getc(fp)) != EOF) |
while ((t = getc(fp)) != EOF) |
(void) putc(t, nf); |
(void)putc(t, nf); |
(void) fflush(nf); |
(void)fflush(nf); |
if (fstat(fileno(nf), &statb) < 0) |
if (fstat(fileno(nf), &statb) < 0) |
modtime = 0; |
modtime = 0; |
else |
else |
modtime = statb.st_mtime; |
modtime = statb.st_mtime; |
if (ferror(nf)) { |
if (ferror(nf)) { |
(void) Fclose(nf); |
(void)Fclose(nf); |
warn(tempEdit); |
warn(tempEdit); |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
nf = NULL; |
nf = NULL; |
goto out; |
goto out; |
} |
} |
if (Fclose(nf) < 0) { |
if (Fclose(nf) < 0) { |
warn(tempEdit); |
warn(tempEdit); |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
nf = NULL; |
nf = NULL; |
goto out; |
goto out; |
} |
} |
|
|
if ((edit = value(type == 'e' ? "EDITOR" : "VISUAL")) == NOSTR) |
if ((edit = value(type == 'e' ? "EDITOR" : "VISUAL")) == NOSTR) |
edit = type == 'e' ? _PATH_EX : _PATH_VI; |
edit = type == 'e' ? _PATH_EX : _PATH_VI; |
if (run_command(edit, 0, -1, -1, tempEdit, NOSTR, NOSTR) < 0) { |
if (run_command(edit, 0, -1, -1, tempEdit, NOSTR, NOSTR) < 0) { |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
goto out; |
goto out; |
} |
} |
/* |
/* |
|
|
* temporary and return. |
* temporary and return. |
*/ |
*/ |
if (readonly) { |
if (readonly) { |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
goto out; |
goto out; |
} |
} |
if (stat(tempEdit, &statb) < 0) { |
if (stat(tempEdit, &statb) < 0) { |
|
|
goto out; |
goto out; |
} |
} |
if (modtime == statb.st_mtime) { |
if (modtime == statb.st_mtime) { |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
goto out; |
goto out; |
} |
} |
/* |
/* |
|
|
*/ |
*/ |
if ((nf = Fopen(tempEdit, "a+")) == NULL) { |
if ((nf = Fopen(tempEdit, "a+")) == NULL) { |
warn(tempEdit); |
warn(tempEdit); |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
goto out; |
goto out; |
} |
} |
(void) unlink(tempEdit); |
(void)unlink(tempEdit); |
out: |
out: |
return(nf); |
return(nf); |
} |
} |