home *** CD-ROM | disk | FTP | other *** search
/ rtsi.com / 2014.01.www.rtsi.com.tar / www.rtsi.com / OS9 / OSK / TELECOM / UUCP_Blars.lzh / getargs.c < prev    next >
C/C++ Source or Header  |  1991-09-08  |  854b  |  52 lines

  1. #include <stdio.h>
  2.  
  3. getargs(command, argsp)
  4. char *command;
  5. register char ***argsp;
  6. {
  7.     register char *cp;
  8.  
  9.     *argsp = (char **)malloc(strlen(cp = command) * sizeof (char *));
  10.     for(;;) {
  11. anotherarg:
  12.     switch(*cp) {
  13.     case ' ': case '\t': case '\r': case '\l':
  14.         cp++;
  15.         break;
  16.     case '\0':
  17.         **argsp++ = (char *)NULL;
  18.         return 0;
  19.     case '"':
  20.         **argsp++ = ++cp;
  21.         for(;;) {
  22.             switch(*cp) {
  23.         case '"':
  24.             *cp++ = '\0';
  25.             goto anotherarg;
  26.         case '\0':
  27.             **argsp = (char *)NULL;
  28.             return 0;
  29.         default:
  30.             cp++;
  31.             break;
  32.         }
  33.         }
  34.     default:
  35.         **argsp++ = cp++;
  36.         for(;;) {
  37.             switch(*cp) {
  38.         case ' ': case '\t': case '\l': case '\r':
  39.             *cp++ = '\0';
  40.             goto anotherarg;
  41.         case '\0':
  42.             **argsp = (char *)NULL;
  43.             return 0;
  44.         default:
  45.             cp++;
  46.             break;
  47.         }
  48.         }
  49.     }
  50.     }
  51. }
  52.