aboutsummaryrefslogtreecommitdiff
path: root/lib/scan_sec.c
diff options
context:
space:
mode:
authorKlaatu <[email protected]>2015-05-17 15:33:21 +1200
committerKlaatu <[email protected]>2015-05-17 15:33:21 +1200
commitb0de699679e8f1e39af847ed172d1ba605b4370c (patch)
tree01dac00471d61f727394e508c613b29cff0ceae5 /lib/scan_sec.c
bulk upload of source
Diffstat (limited to 'lib/scan_sec.c')
-rw-r--r--lib/scan_sec.c23
1 files changed, 23 insertions, 0 deletions
diff --git a/lib/scan_sec.c b/lib/scan_sec.c
new file mode 100644
index 0000000..6377399
--- /dev/null
+++ b/lib/scan_sec.c
@@ -0,0 +1,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;
+}