home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume13 / modemcap / mgetnum.c < prev    next >
Encoding:
C/C++ Source or Header  |  1988-01-31  |  945 b   |  35 lines

  1. extern    char    *__modemcap;
  2.  
  3. mgetnum (id)
  4. register char    *id;
  5. {
  6.     register char    *cp = __modemcap;
  7.  
  8.     if (__modemcap == (char *) 0)        /* has mgetent() been called? ...    */
  9.         return (-1);            /* ... no, can't find number        */
  10.  
  11.     while (*cp != ':' && *cp != 0)        /* find first entry in cap        */
  12.         cp++;
  13.  
  14.     if (*cp == 0)                /* empty entry???            */
  15.         return (-1);            /* ... yes, bad modemcap entry        */
  16.     else
  17.         cp++;                /* point to first character in next    */
  18.  
  19.     while (*cp != 0) {            /* until entry found or end of entry    */
  20.         if (cp[0] == id[0] && cp[1] == id[1]) {    /* found entry!!!        */
  21.             if (cp[2] != '#')    /* is it a numeric value???        */
  22.                 return (-1);    /* no, something else            */
  23.  
  24.             return (atoi (&cp[3]));    /* return value (just after #)        */
  25.         } else {            /* not entry, skip this entire entry    */
  26.             while (*cp != ':' && *cp != 0)
  27.                 cp++;        /* search for end of current entry    */
  28.  
  29.             if (*cp != 0)
  30.                 cp++;        /* skip terminating character        */
  31.         }
  32.     }
  33.     return (-1);
  34. }
  35.