2 THE COMPUTER CODE CONTAINED HEREIN IS THE SOLE PROPERTY OF PARALLAX
3 SOFTWARE CORPORATION ("PARALLAX"). PARALLAX, IN DISTRIBUTING THE CODE TO
4 END-USERS, AND SUBJECT TO ALL OF THE TERMS AND CONDITIONS HEREIN, GRANTS A
5 ROYALTY-FREE, PERPETUAL LICENSE TO SUCH END-USERS FOR USE BY SUCH END-USERS
6 IN USING, DISPLAYING, AND CREATING DERIVATIVE WORKS THEREOF, SO LONG AS
7 SUCH USE, DISPLAY OR CREATION IS FOR NON-COMMERCIAL, ROYALTY OR REVENUE
8 FREE PURPOSES. IN NO EVENT SHALL THE END-USER USE THE COMPUTER CODE
9 CONTAINED HEREIN FOR REVENUE-BEARING PURPOSES. THE END-USER UNDERSTANDS
10 AND AGREES TO THE TERMS HEREIN AND ACCEPTS THE SAME BY USE OF THIS FILE.
11 COPYRIGHT 1993-1999 PARALLAX SOFTWARE CORPORATION. ALL RIGHTS RESERVED.
29 char *strdup(const char *str)
33 newstr = malloc(strlen(str) + 1);
40 // string compare without regard to case
42 int stricmp( const char *s1, const char *s2 )
48 u1 = toupper((int) *s1);
49 u2 = toupper((int) *s2);
51 return (u1 > u2) ? 1 : -1;
60 int strnicmp( const char *s1, const char *s2, int n )
66 u1 = toupper((int) *s1);
67 u2 = toupper((int) *s2);
69 return (u1 > u2) ? 1 : -1;
74 } while (u1 && u2 && n);
82 void strlwr( char *s1 )
90 void strupr( char *s1 )
100 void strrev( char *s1 )
104 t = s1 + strlen(s1) - 1;
115 // remove extension from filename, doesn't work with paths.
116 void removeext(const char *filename, char *out)
120 if ((p = strrchr(filename, '.')))
122 strncpy(out, filename, p - filename);
123 out[p - filename] = 0;
126 strcpy(out, filename);
130 //give a filename a new extension, doesn't work with paths.
131 void change_filename_extension( char *dest, const char *src, char *ext )
140 p = strrchr(dest, '.');
142 p = dest + strlen(dest);
146 Assert((p + strlen(ext)) - dest < FILENAME_LEN);
150 #if !defined(__MSDOS__) && !(defined(_WIN32) && !defined(_WIN32_WCE))
151 void _splitpath(char *name, char *drive, char *path, char *base, char *ext)
169 s = strrchr(p, '\\');
206 char drive[10], path[50], name[16], ext[5];
208 drive[0] = path[0] = name[0] = ext[0] = '\0';
209 _splitpath("f:\\tmp\\x.out", drive, path, name, ext);
210 drive[0] = path[0] = name[0] = ext[0] = '\0';
211 _splitpath("tmp\\x.out", drive, path, name, ext);
212 drive[0] = path[0] = name[0] = ext[0] = '\0';
213 _splitpath("f:\\tmp\\a.out", NULL, NULL, name, NULL);
214 drive[0] = path[0] = name[0] = ext[0] = '\0';
215 _splitpath("tmp\\*.dem", drive, path, NULL, NULL);
216 drive[0] = path[0] = name[0] = ext[0] = '\0';
217 _splitpath(".\\tmp\\*.dem", drive, path, NULL, NULL);