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 }