ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/fixargv0.c
(Generate patch)

Comparing ray/src/common/fixargv0.c (file contents):
Revision 2.3 by greg, Tue Feb 25 02:47:21 2003 UTC vs.
Revision 2.9 by greg, Fri Jul 24 16:58:16 2020 UTC

# Line 4 | Line 4 | static const char      RCSid[] = "$Id$";
4   /*
5   * Fix argv[0] for DOS environments
6   *
7 < *  External symbols declared in standard.h
7 > *  External symbols declared in paths.h
8   */
9  
10 < #include "copyright.h"
10 > #include <ctype.h>
11 > #include <string.h>
12  
12
13   char *
14 < fixargv0(av0)                   /* extract command name from full path */
15 < char  *av0;
14 > fixargv0(char *av0)             /* extract command name from full path */
15   {
16 <        register char  *cp = av0;
16 >        char  *cp = av0, *end;
17  
18          while (*cp) cp++;               /* start from end */
19 +        end = cp;
20          while (cp-- > av0)
21                  switch (*cp) {          /* fix up command name */
22                  case '.':                       /* remove extension */
23                          *cp = '\0';
24 +                        end = cp;
25                          continue;
26                  case '\\':                      /* remove directory */
27 <                        return(cp+1);
27 >                case '/':
28 >                        /* make sure the original pointer remains the same */
29 >                        memmove(av0, cp+1, end-cp);
30 >                        return(av0);
31                  default:                        /* convert to lower case */
32                          *cp = tolower(*cp);
33                          continue;
34                  }
35          return(av0);
36   }
33
34

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines