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

Diff for /src/usr.bin/sed/main.c between version 1.28 and 1.29

version 1.28, 2015/10/25 20:18:37 version 1.29, 2015/10/26 14:08:47
Line 161 
Line 161 
   
         if (inplace != NULL) {          if (inplace != NULL) {
                 if (pledge("stdio rpath wpath cpath fattr", NULL) == -1)                  if (pledge("stdio rpath wpath cpath fattr", NULL) == -1)
                         err(1, "pledge");                          error(1, "pledge");
         } else {          } else {
                 if (pledge("stdio rpath wpath cpath", NULL) == -1)                  if (pledge("stdio rpath wpath cpath", NULL) == -1)
                         err(1, "pledge");                          error(1, "pledge");
         }          }
   
         /* First usage case; script is the first arg */          /* First usage case; script is the first arg */
Line 184 
Line 184 
         process();          process();
         cfclose(prog, NULL);          cfclose(prog, NULL);
         if (fclose(stdout))          if (fclose(stdout))
                 err(FATAL, "stdout: %s", strerror(errno));                  error(FATAL, "stdout: %s", strerror(errno));
         exit (rval);          exit (rval);
 }  }
   
Line 214 
Line 214 
                 switch (script->type) {                  switch (script->type) {
                 case CU_FILE:                  case CU_FILE:
                         if ((f = fopen(script->s, "r")) == NULL)                          if ((f = fopen(script->s, "r")) == NULL)
                                 err(FATAL,                                  error(FATAL,
                                     "%s: %s", script->s, strerror(errno));                                      "%s: %s", script->s, strerror(errno));
                         fname = script->s;                          fname = script->s;
                         state = ST_FILE;                          state = ST_FILE;
Line 305 
Line 305 
                 /* stdin? */                  /* stdin? */
                 if (files->fname == NULL) {                  if (files->fname == NULL) {
                         if (inplace != NULL)                          if (inplace != NULL)
                                 err(FATAL, "-i may not be used with stdin");                                  error(FATAL, "-i may not be used with stdin");
                         infile = stdin;                          infile = stdin;
                         fname = "stdin";                          fname = "stdin";
                         outfile = stdout;                          outfile = stdout;
Line 329 
Line 329 
                         fclose(infile);                          fclose(infile);
                         if (*oldfname != '\0') {                          if (*oldfname != '\0') {
                                 if (rename(fname, oldfname) != 0) {                                  if (rename(fname, oldfname) != 0) {
                                         err(WARNING, "rename()");                                          error(WARNING, "rename()");
                                         unlink(tmpfname);                                          unlink(tmpfname);
                                         exit(1);                                          exit(1);
                                 }                                  }
Line 355 
Line 355 
                 fname = files->fname;                  fname = files->fname;
                 if (inplace != NULL) {                  if (inplace != NULL) {
                         if (lstat(fname, &sb) != 0)                          if (lstat(fname, &sb) != 0)
                                 err(1, "%s: %s", fname,                                  error(1, "%s: %s", fname,
                                     strerror(errno ? errno : EIO));                                      strerror(errno ? errno : EIO));
                         if (!S_ISREG(sb.st_mode))                          if (!S_ISREG(sb.st_mode))
                                 err(FATAL, "%s: %s %s", fname,                                  error(FATAL, "%s: %s %s", fname,
                                     "in-place editing only",                                      "in-place editing only",
                                     "works for regular files");                                      "works for regular files");
                         if (*inplace != '\0') {                          if (*inplace != '\0') {
Line 367 
Line 367 
                                 len = strlcat(oldfname, inplace,                                  len = strlcat(oldfname, inplace,
                                     sizeof(oldfname));                                      sizeof(oldfname));
                                 if (len > sizeof(oldfname))                                  if (len > sizeof(oldfname))
                                         err(FATAL, "%s: name too long", fname);                                          error(FATAL, "%s: name too long", fname);
                         }                          }
                         len = snprintf(tmpfname, sizeof(tmpfname), "%s/sedXXXXXXXXXX",                          len = snprintf(tmpfname, sizeof(tmpfname), "%s/sedXXXXXXXXXX",
                             dirname(fname));                              dirname(fname));
                         if (len >= sizeof(tmpfname))                          if (len >= sizeof(tmpfname))
                                 err(FATAL, "%s: name too long", fname);                                  error(FATAL, "%s: name too long", fname);
                         if ((fd = mkstemp(tmpfname)) == -1)                          if ((fd = mkstemp(tmpfname)) == -1)
                                 err(FATAL, "%s", fname);                                  error(FATAL, "%s", fname);
                         if ((outfile = fdopen(fd, "w")) == NULL) {                          if ((outfile = fdopen(fd, "w")) == NULL) {
                                 unlink(tmpfname);                                  unlink(tmpfname);
                                 err(FATAL, "%s", fname);                                  error(FATAL, "%s", fname);
                         }                          }
                         fchown(fileno(outfile), sb.st_uid, sb.st_gid);                          fchown(fileno(outfile), sb.st_uid, sb.st_gid);
                         fchmod(fileno(outfile), sb.st_mode & ALLPERMS);                          fchmod(fileno(outfile), sb.st_mode & ALLPERMS);
Line 389 
Line 389 
                         outfname = "stdout";                          outfname = "stdout";
                 }                  }
                 if ((infile = fopen(fname, "r")) == NULL) {                  if ((infile = fopen(fname, "r")) == NULL) {
                         err(WARNING, "%s", strerror(errno));                          error(WARNING, "%s", strerror(errno));
                         rval = 1;                          rval = 1;
                         continue;                          continue;
                 }                  }
Line 405 
Line 405 
          */           */
         p = fgetln(infile, &len);          p = fgetln(infile, &len);
         if (ferror(infile))          if (ferror(infile))
                 err(FATAL, "%s: %s", fname, strerror(errno ? errno : EIO));                  error(FATAL, "%s: %s", fname, strerror(errno ? errno : EIO));
         if (len != 0 && p[len - 1] == '\n') {          if (len != 0 && p[len - 1] == '\n') {
                 sp->append_newline = 1;                  sp->append_newline = 1;
                 len--;                  len--;

Legend:
Removed from v.1.28  
changed lines
  Added in v.1.29