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

Diff for /src/usr.bin/patch/inp.c between version 1.7 and 1.8

version 1.7, 1998/11/25 00:30:25 version 1.8, 1999/01/03 05:33:48
Line 78 
Line 78 
     Reg2 LINENUM iline;      Reg2 LINENUM iline;
     char lbuf[MAXLINELEN];      char lbuf[MAXLINELEN];
   
       if (!filename || *filename == '\0')
           return FALSE;
   
     statfailed = stat(filename, &filestat);      statfailed = stat(filename, &filestat);
     if (statfailed && ok_to_create_file) {      if (statfailed && ok_to_create_file) {
         if (verbose)          if (verbose)
Line 102 
Line 105 
         || ((filestat.st_mode & 0022) == 0 && filestat.st_uid != myuid)) {          || ((filestat.st_mode & 0022) == 0 && filestat.st_uid != myuid)) {
         struct stat cstat;          struct stat cstat;
         char *cs = Nullch;          char *cs = Nullch;
         char *filebase;          char *filebase, *filedir;
         int pathlen;  
   
         filebase = basename(filename);          filebase = basename(filename);
         pathlen = filebase - filename;          filedir = dirname(filename);
   
         /* Put any leading path into `s'.          /* Leave room in lbuf for the diff command.  */
            Leave room in lbuf for the diff command.  */  
         s = lbuf + 20;          s = lbuf + 20;
         strncpy(s, filename, pathlen);  
   
 #define try(f, a1, a2) (Snprintf(s + pathlen, sizeof lbuf - (s + pathlen - lbuf), f, a1, a2), stat(s, &cstat) == 0)  #define try(f, a1, a2, a3) (Snprintf(s, sizeof lbuf - 20, f, a1, a2, a3), stat(s, &cstat) == 0)
         if (   try("RCS/%s%s", filebase, RCSSUFFIX)          if (   try("%s/RCS/%s%s", filedir, filebase, RCSSUFFIX)
             || try("RCS/%s"  , filebase,         0)              || try("%s/RCS/%s%s", filedir, filebase,         "")
             || try(    "%s%s", filebase, RCSSUFFIX)) {              || try(    "%s/%s%s", filedir, filebase, RCSSUFFIX)) {
             Snprintf(buf, sizeof buf, CHECKOUT, filename);              Snprintf(buf, sizeof buf, CHECKOUT, filename);
             Snprintf(lbuf, sizeof lbuf, RCSDIFF, filename);              Snprintf(lbuf, sizeof lbuf, RCSDIFF, filename);
             cs = "RCS";              cs = "RCS";
         } else if (   try("SCCS/%s%s", SCCSPREFIX, filebase)          } else if (   try("%s/SCCS/%s%s", filedir, SCCSPREFIX, filebase)
                    || try(     "%s%s", SCCSPREFIX, filebase)) {                     || try(     "%s/%s%s", filedir, SCCSPREFIX, filebase)) {
             Snprintf(buf, sizeof buf, GET, s);              Snprintf(buf, sizeof buf, GET, s);
             Snprintf(lbuf, sizeof lbuf, SCCSDIFF, s, filename);              Snprintf(lbuf, sizeof lbuf, SCCSDIFF, s, filename);
             cs = "SCCS";              cs = "SCCS";

Legend:
Removed from v.1.7  
changed lines
  Added in v.1.8