zlaski      02/11/10 15:10:02

  Modified:    live/gcc3/gcc Tag: fearless-kitty-branch cppfiles.c
  Log:
  Snaroff's header cache fix.
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.46.4.3  +32 -31    src/live/gcc3/gcc/cppfiles.c
  
  Index: cppfiles.c
  ===================================================================
  RCS file: /cvs/Darwin/src/live/gcc3/gcc/cppfiles.c,v
  retrieving revision 1.46.4.2
  retrieving revision 1.46.4.3
  diff -u -r1.46.4.2 -r1.46.4.3
  --- cppfiles.c        2002/11/06 19:51:31     1.46.4.2
  +++ cppfiles.c        2002/11/10 23:10:02     1.46.4.3
  @@ -718,7 +718,7 @@
     /* Search directory path for the file.  */
     /* APPLE LOCAL -header-mapfile bandaid for buffer overflows */
     name = (char *) alloca (strlen (fname) + pfile->max_include_len + 2 + 500);
  -  
  +
   /* APPLE LOCAL begin header search */
     if ((type != IT_INCLUDE_NEXT) && 
         (CPP_OPTION (pfile, bracket_include) == CPP_OPTION (pfile, quote_include)))
  @@ -1861,38 +1861,11 @@
             }
           }
         }
  -    else /* we have a slash...check to see if it is a framework */
  +    else /* we have a slash... */
         {
         char *basename = strchr(fname, '/');
  -      
  -      memcpy(name, fname, basename-fname);
  -      name[basename-fname] = 0;
  -      strcat(name, ".framework");
  -      if ((entry = htab_find(header_htab, name)))
  -          {
  -          int len = entry->include_directory->len;
  -          memcpy(name, entry->include_directory->name, 
entry->include_directory->len);
  -          name[len] = '/';
  -          strcpy (&name[len + 1], entry->file_name);
  -          strcat (name, "/Headers");
  -          strcat (name, basename); // add the base name
  -          if ((file = open_file (pfile, name)))
  -            {
  -            file->foundhere = entry->include_directory;
  -            return file;
  -            }
  -          memcpy(name, entry->include_directory->name, 
entry->include_directory->len);
  -          name[len] = '/';
  -          strcpy (&name[len + 1], entry->file_name);
  -          strcat (name, "/PrivateHeaders");
  -          strcat (name, basename); // add the base name
  -          if ((file = open_file (pfile, name)))
  -            {
  -            file->foundhere = entry->include_directory;
  -            return file;
  -            }
  -          }
  -      /* at this point, we have a non-framework path with slashes */
  +
  +      /* first, look for a directory */
         memcpy(name, fname, basename-fname);
         name[basename-fname] = 0;
   
  @@ -1917,6 +1890,34 @@
                 }   
               } 
             while ((hattr = hattr->next));
  +          }
  +        }
  +      /* now, look for a framework */
  +      memcpy(name, fname, basename-fname);
  +      name[basename-fname] = 0;
  +      strcat(name, ".framework");
  +      if ((entry = htab_find(header_htab, name)))
  +        {
  +        int len = entry->include_directory->len;
  +        memcpy(name, entry->include_directory->name, entry->include_directory->len);
  +        name[len] = '/';
  +        strcpy (&name[len + 1], entry->file_name);
  +        strcat (name, "/Headers");
  +        strcat (name, basename); // add the base name
  +        if ((file = open_file (pfile, name)))
  +          {
  +            file->foundhere = entry->include_directory;
  +            return file;
  +          }
  +        memcpy(name, entry->include_directory->name, entry->include_directory->len);
  +        name[len] = '/';
  +        strcpy (&name[len + 1], entry->file_name);
  +        strcat (name, "/PrivateHeaders");
  +        strcat (name, basename); // add the base name
  +        if ((file = open_file (pfile, name)))
  +          {
  +            file->foundhere = entry->include_directory;
  +            return file;
             }
           }
       }
  
  
  


Reply via email to