/[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.51.2.8 by akim, Tue Sep 25 18:35:04 2001 UTC revision 1.51.2.9 by akim, Tue Oct 2 14:48:53 2001 UTC
# Line 200  skeleton_find (const char *envvar, const Line 200  skeleton_find (const char *envvar, const
200  {  {
201    const char *res = getenv (envvar);    const char *res = getenv (envvar);
202    
203  #ifdef MSDOS  #if defined (MSDOS) || defined (_WIN32)
204    const char *cp;    if (!res)
   
   /* File doesn't exist in current directory; try in INIT directory.  */  
   if (!res && (cp = getenv ("INIT")))  
205      {      {
206        res = XMALLOC (char, strlen (cp) + strlen (skeleton_name) + 2);        /* Skeleton file name without path */
207        sprintf (res, "%s%c%s", cp, '/', skeleton_name);        const char *skel_name = strrchr(skeleton_name, '/');
208      }        if (!skel_name)
209  #endif /* !MSDOS */          skel_name = strrchr(skeleton_name, '\\');
210          if (!skel_name)
211            skel_name = skeleton_name;
212          else
213            ++skel_name;
214    
215          /* File doesn't exist in current directory; try in INIT directory.  */
216          const char *cp = getenv ("INIT");
217          if (cp)
218            {
219              res = XMALLOC (char, strlen (cp) + strlen (skel_name) + 2);
220              sprintf (res, "%s%c%s", cp, '\\', skel_name);
221            }
222          else if (access (skel_name, 4) == 0) /* Look in current dir. */
223            res = skel_name;
224          else
225            {
226              /* Look in program locations dir. */
227              extern char *program_name;
228              cp = strrchr(program_name, '\\');
229              if (!cp)
230                return skeleton_name;
231              else
232                ++cp;
233              res = XMALLOC (char, cp - program_name + strlen (skel_name) + 1);
234              strncpy (res, program_name, cp - program_name);
235              strcpy (res + (cp - program_name), skel_name);
236            }
237        }
238    #endif /* defined (MSDOS) || defined (_WIN32) */
239    if (!res)    if (!res)
240      res = skeleton_name;      res = skeleton_name;
241    

Legend:
Removed from v.1.51.2.8  
changed lines
  Added in v.1.51.2.9

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