home *** CD-ROM | disk | FTP | other *** search
/ FreeWare Collection 2 / FreeSoftwareCollection2pd199x-jp.img / ms_dos / update / jfnsplit.c < prev    next >
Text File  |  1990-06-14  |  1KB  |  75 lines

  1. /*
  2.  *    jfnsplit.c
  3.  *    fnsplit function that is available for kanji file name
  4.  *    int jfnsplit(char *path,char *drive,char *dir,char *name,char *ext)
  5.  *
  6.  *    1988/8/30    Sey
  7.  */
  8. #include    <dir.h>
  9. #include    <jstring.h>
  10. #include    <stddef.h>
  11.  
  12. int
  13. jfnsplit(char *path,char *drive,char *dir,char *name,char *ext)
  14.     {
  15.     char    *p = path;
  16.     char    *p2;
  17.     int    len;
  18.     int    ret = 0;
  19.  
  20.     if( drive != NULL )
  21.         *drive = 0;
  22.     if( dir != NULL )
  23.         *dir = 0;
  24.     if( name != NULL )
  25.         *name = 0;
  26.     if( ext != NULL )
  27.         *ext = 0;
  28.     if( *p == 0 )
  29.         return( ret );
  30.     if( jstrchr(p,':') == path + 1 )
  31.         {
  32.         ret |= DRIVE;
  33.         if( drive != NULL )
  34.             {
  35.             strncpy(drive,path,2);
  36.             *(drive+2) = 0;
  37.             }
  38.                 p = path + 2;
  39.         if( *p == 0 )
  40.             return( ret );
  41.                 }
  42.     if( (p2 = jstrrchr(p,'\\')) != NULL )
  43.         {
  44.         ret |= DIRECTORY;
  45.         if( dir != NULL )
  46.             {
  47.             len = p2 - p + 1;
  48.             strncpy(dir,p,len);
  49.             *(dir+len) = 0;
  50.             }
  51.         p = p2 + 1;
  52.         if( *p == 0 )
  53.             return( ret );
  54.         }
  55.     if( jstrmatch(p,"*?") != NULL )
  56.         ret |= WILDCARDS;
  57.     ret |= FILENAME;
  58.     if( (p2 = jstrchr(p,'.')) != NULL )
  59.         {
  60.         ret |= EXTENSION;
  61.         if( ext != NULL )
  62.             strcpy(ext,p2);
  63.         if( name != NULL )
  64.             {
  65.             len = p2 - p;
  66.             strncpy(name,p,len);
  67.             *(name+len) = 0;
  68.             }
  69.         }
  70.     else if( name != NULL )
  71.         strcpy(name,p);
  72.     return( ret );
  73.     }
  74. /* end jfnsplit */
  75.