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

Diff for /src/usr.bin/make/arch.c between version 1.66 and 1.67

version 1.66, 2007/09/16 12:09:36 version 1.67, 2007/09/16 12:25:12
Line 575 
Line 575 
         /* If not found, get it now.  */          /* If not found, get it now.  */
         if (ar == NULL) {          if (ar == NULL) {
                 if (!hash) {                  if (!hash) {
                     /* Quick path:  no need to hash the whole archive, just use                          /* Quick path:  no need to hash the whole archive, just
                      * ArchFindMember to get the member's header and close the                           * use ArchFindMember to get the member's header and
                      * stream again.  */                           * close the stream again.  */
                     struct ar_hdr arHeader;                          struct ar_hdr arHeader;
   
                     arch = ArchFindMember(archive, member, &arHeader, "r");                          arch = ArchFindMember(archive, member, &arHeader, "r");
   
                     if (arch != NULL) {                          if (arch != NULL) {
                             fclose(arch);                                  fclose(arch);
                             ts_set_from_time_t(                                  ts_set_from_time_t(
                                 (time_t)strtol(arHeader.ar_date, NULL, 10),                                      (time_t)strtol(arHeader.ar_date, NULL, 10),
                                 result);                                      result);
                     }                          }
                     return result;                          return result;
                 }                  }
                 ar = read_archive(archive, end);                  ar = read_archive(archive, end);
                 if (ar != NULL)                  if (ar != NULL)
Line 804 
Line 804 
                     sizeof(arHeaderPtr->ar_size));                      sizeof(arHeaderPtr->ar_size));
   
 #ifdef SVR4ARCHIVES  #ifdef SVR4ARCHIVES
                     /* svr4 names are slash terminated. Also svr4 extended AR                  /* svr4 names are slash terminated. Also svr4 extended AR
                      * format.                   * format.
                      */                   */
                     if (memberName[0] == '/') {                  if (memberName[0] == '/') {
                             /* svr4 magic mode.  */                          /* svr4 magic mode.  */
                             memberName = ArchSVR4Entry(&list,                          memberName = ArchSVR4Entry(&list,
                                 arHeaderPtr->ar_name, size, arch);                              arHeaderPtr->ar_name, size, arch);
                             if (memberName == NULL)     /* Invalid data */                          if (memberName == NULL) /* Invalid data */
                                     break;                                  break;
                             else if (memberName == svr4list)                          else if (memberName == svr4list)
                                 /* List of files entry */                              /* List of files entry */
                                     continue;                                  continue;
                             /* Got the entry.  */                          /* Got the entry.  */
                             if (strcmp(memberName, member) == 0) {                          if (strcmp(memberName, member) == 0) {
                                     efree(list.fnametab);                                  efree(list.fnametab);
                                     return arch;                                  return arch;
                             }                          }
                     }                  }
 #endif  #endif
   
 #ifdef AR_EFMT1  #ifdef AR_EFMT1
Line 869 
Line 869 
 static void  static void
 ArchTouch(const char *archive, const char *member)  ArchTouch(const char *archive, const char *member)
 {  {
     FILE *arch;          FILE *arch;
     struct ar_hdr arHeader;          struct ar_hdr arHeader;
   
         arch = ArchFindMember(archive, member, &arHeader, "r+");          arch = ArchFindMember(archive, member, &arHeader, "r+");
         if (arch != NULL) {          if (arch != NULL) {

Legend:
Removed from v.1.66  
changed lines
  Added in v.1.67