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

Diff for /src/usr.bin/patch/util.c between version 1.4 and 1.5

version 1.4, 1997/09/22 05:45:27 version 1.5, 1999/01/03 05:33:48
Line 380 
Line 380 
     char tmpbuf[200];      char tmpbuf[200];
     int sleading = strip_leading;      int sleading = strip_leading;
   
     if (!at)      if (!at || *at == '\0')
         return Nullch;          return Nullch;
     while (isspace(*at))      while (isspace(*at))
         at++;          at++;
Line 416 
Line 416 
   
     if (stat(name, &filestat) && !assume_exists) {      if (stat(name, &filestat) && !assume_exists) {
         char *filebase = basename(name);          char *filebase = basename(name);
         int pathlen = filebase - name;          char *filedir = dirname(name);
   
         /* Put any leading path into `tmpbuf'.  */  #define try(f, a1, a2, a3) (Snprintf(tmpbuf, sizeof tmpbuf, f, a1, a2), stat(tmpbuf, &filestat) == 0)
         strncpy(tmpbuf, name, pathlen);          if (   try("%s/RCS/%s%s", filedir, filebase, RCSSUFFIX)
               || try("%s/RCS/%s%s", filedir, filebase,        "")
 #define try(f, a1, a2) (Snprintf(tmpbuf + pathlen, sizeof tmpbuf - pathlen, f, a1, a2), stat(tmpbuf, &filestat) == 0)              || try(    "%s/%s%s", filedir, filebase, RCSSUFFIX)
         if (   try("RCS/%s%s", filebase, RCSSUFFIX)              || try("%s/SCCS/%s%s", filedir, SCCSPREFIX, filebase)
             || try("RCS/%s%s", filebase,        "")              || try(     "%s/%s%s", filedir, SCCSPREFIX, filebase))
             || try(    "%s%s", filebase, RCSSUFFIX)  
             || try("SCCS/%s%s", SCCSPREFIX, filebase)  
             || try(     "%s%s", SCCSPREFIX, filebase))  
           return name;            return name;
         free(name);          free(name);
         name = Nullch;          name = Nullch;

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