home *** CD-ROM | disk | FTP | other *** search
- /*
- * jfnsplit.c
- * fnsplit function that is available for kanji file name
- * int jfnsplit(char *path,char *drive,char *dir,char *name,char *ext)
- *
- * 1988/8/30 Sey
- */
- #include <dir.h>
- #include <jstring.h>
- #include <stddef.h>
-
- int
- jfnsplit(char *path,char *drive,char *dir,char *name,char *ext)
- {
- char *p = path;
- char *p2;
- int len;
- int ret = 0;
-
- if( drive != NULL )
- *drive = 0;
- if( dir != NULL )
- *dir = 0;
- if( name != NULL )
- *name = 0;
- if( ext != NULL )
- *ext = 0;
- if( *p == 0 )
- return( ret );
- if( jstrchr(p,':') == path + 1 )
- {
- ret |= DRIVE;
- if( drive != NULL )
- {
- strncpy(drive,path,2);
- *(drive+2) = 0;
- }
- p = path + 2;
- if( *p == 0 )
- return( ret );
- }
- if( (p2 = jstrrchr(p,'\\')) != NULL )
- {
- ret |= DIRECTORY;
- if( dir != NULL )
- {
- len = p2 - p + 1;
- strncpy(dir,p,len);
- *(dir+len) = 0;
- }
- p = p2 + 1;
- if( *p == 0 )
- return( ret );
- }
- if( jstrmatch(p,"*?") != NULL )
- ret |= WILDCARDS;
- ret |= FILENAME;
- if( (p2 = jstrchr(p,'.')) != NULL )
- {
- ret |= EXTENSION;
- if( ext != NULL )
- strcpy(ext,p2);
- if( name != NULL )
- {
- len = p2 - p;
- strncpy(name,p,len);
- *(name+len) = 0;
- }
- }
- else if( name != NULL )
- strcpy(name,p);
- return( ret );
- }
- /* end jfnsplit */