/[bison]/bison/src/files.c
ViewVC logotype

Diff of /bison/src/files.c

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.75 by eggert, Mon Aug 12 14:38:04 2002 UTC revision 1.76 by akim, Fri Sep 13 16:12:21 2002 UTC
# Line 134  xfclose (FILE *ptr) Line 134  xfclose (FILE *ptr)
134    
135    return result;    return result;
136  }  }
   
   
 /*------------------------------------------------------------------.  
 | Return the path to the skeleton which locaction might be given in |  
 | ENVVAR, otherwise return SKELETON_NAME.                           |  
 `------------------------------------------------------------------*/  
   
 const char *  
 skeleton_find (const char *envvar, const char *skeleton_name)  
 {  
   const char *res = getenv (envvar);  
   
 #if defined (MSDOS) || defined (_WIN32)  
   const char *cp = getenv ("INIT");  
   if (!res)  
     {  
       /* Skeleton file name without path */  
       const char *skel_name = strrchr (skeleton_name, '/');  
       if (!skel_name)  
         skel_name = strrchr (skeleton_name, '\\');  
       if (!skel_name)  
         skel_name = skeleton_name;  
       else  
         ++skel_name;  
   
       /* File doesn't exist in current directory; try in INIT directory.  */  
       if (cp)  
         {  
           res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);  
           sprintf (res, "%s%c%s", cp, '\\', skel_name);  
         }  
       else if (access (skel_name, 4) == 0) /* Look in current dir. */  
         res = skel_name;  
       else  
         {  
           /* Look in program locations dir. */  
           extern char *program_name;  
           cp = strrchr(program_name, '\\');  
           if (!cp)  
             return skeleton_name;  
           else  
             ++cp;  
           res = XMALLOC (char, cp - program_name + strlen (skel_name) + 1);  
           strncpy (res, program_name, cp - program_name);  
           strcpy (res + (cp - program_name), skel_name);  
         }  
     }  
 #endif /* defined (MSDOS) || defined (_WIN32) */  
   if (!res)  
     res = skeleton_name;  
   
   return res;  
 }  
137    
138    
139  /*----------------------------------------------------------------.  /*----------------------------------------------------------------.

Legend:
Removed from v.1.75  
changed lines
  Added in v.1.76

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26