skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

sig0_scan.c (596B)


      1 /* ISC license. */
      2 
      3 #include <string.h>
      4 #include <strings.h>
      5 
      6 #include <skalibs/types.h>
      7 #include <skalibs/sig.h>
      8 
      9 static size_t sig0_scan_norec (char const *s, int *sig)
     10 {
     11   int r = sig_number(s) ;
     12   if (r)
     13   {
     14     *sig = r ;
     15     return strlen(s) ;
     16   }
     17   {
     18     unsigned int u ;
     19     size_t len = uint0_scan(s, &u) ;
     20     if (len) *sig = u ;
     21     return len ;
     22   }
     23 }
     24 
     25 size_t sig0_scan (char const *s, int *sig)
     26 {
     27   size_t len = sig0_scan_norec(s, sig) ;
     28   if (len) return len ;
     29   if (!strncasecmp(s, "SIG", 3))
     30   {
     31     len = sig0_scan_norec(s+3, sig) ;
     32     if (len) return 3+len ;
     33   }
     34   return 0 ;
     35 }