[BACK]Return to edit.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / mail

Diff for /src/usr.bin/mail/edit.c between version 1.3 and 1.4

version 1.3, 1997/07/13 21:21:11 version 1.4, 1997/07/13 23:53:59
Line 117 
Line 117 
                 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);
Line 135 
Line 135 
                                 warn("/tmp");                                  warn("/tmp");
                         (void)Fclose(fp);                          (void)Fclose(fp);
                 }                  }
                 (void) signal(SIGINT, sigint);                  (void)signal(SIGINT, sigint);
         }          }
         return(0);          return(0);
 }  }
Line 165 
Line 165 
         }          }
         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;
         }          }
Line 196 
Line 196 
         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;
         }          }
         /*          /*
Line 204 
Line 204 
          * 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) {
Line 212 
Line 212 
                 goto out;                  goto out;
         }          }
         if (modtime == statb.st_mtime) {          if (modtime == statb.st_mtime) {
                 (void) unlink(tempEdit);                  (void)unlink(tempEdit);
                 goto out;                  goto out;
         }          }
         /*          /*
Line 220 
Line 220 
          */           */
         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);
 }  }

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.4