aboutsummaryrefslogtreecommitdiff
path: root/lib/scan_sec.c
blob: 637739908db94f5053e65295e1d574cb25cbbe33 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "../ninitfeatures.h"

unsigned int scan_sec(const char *src, unsigned long *ul) /*EXTRACT_INCL*/ {
  unsigned long tmp, u=0;
  char ch, *s = (char *)src;
  for (; *s; ) {
    s += scan_ulong(s, &tmp);
    ch = *s;
    if (ch > 96) ch -= 32; /* upper case */

    switch (ch) {
      case 'W': tmp *= 10080; s++; break;
      case 'D': tmp *= 1440; s++; break;
      case 'H': tmp *= 60; s++; break;
      case 0: break; 
      default: u += tmp; goto ready;
    }
    u += tmp;
  }
 ready:
  *ul = u * 60;
  return s-src;
}