Index: icu46/source/tools/tzcode/scheck.c |
=================================================================== |
--- icu46/source/tools/tzcode/scheck.c (revision 0) |
+++ icu46/source/tools/tzcode/scheck.c (revision 0) |
@@ -0,0 +1,63 @@ |
+/* |
+** This file is in the public domain, so clarified as of |
+** 2006-07-17 by Arthur David Olson. |
+*/ |
+ |
+#ifndef lint |
+#ifndef NOID |
+static char elsieid[] = "@(#)scheck.c 8.19"; |
+#endif /* !defined lint */ |
+#endif /* !defined NOID */ |
+ |
+/*LINTLIBRARY*/ |
+ |
+#include "private.h" |
+ |
+const char * |
+scheck(string, format) |
+const char * const string; |
+const char * const format; |
+{ |
+ register char * fbuf; |
+ register const char * fp; |
+ register char * tp; |
+ register int c; |
+ register const char * result; |
+ char dummy; |
+ |
+ result = ""; |
+ if (string == NULL || format == NULL) |
+ return result; |
+ fbuf = imalloc((int) (2 * strlen(format) + 4)); |
+ if (fbuf == NULL) |
+ return result; |
+ fp = format; |
+ tp = fbuf; |
+ while ((*tp++ = c = *fp++) != '\0') { |
+ if (c != '%') |
+ continue; |
+ if (*fp == '%') { |
+ *tp++ = *fp++; |
+ continue; |
+ } |
+ *tp++ = '*'; |
+ if (*fp == '*') |
+ ++fp; |
+ while (is_digit(*fp)) |
+ *tp++ = *fp++; |
+ if (*fp == 'l' || *fp == 'h') |
+ *tp++ = *fp++; |
+ else if (*fp == '[') |
+ do *tp++ = *fp++; |
+ while (*fp != '\0' && *fp != ']'); |
+ if ((*tp++ = *fp++) == '\0') |
+ break; |
+ } |
+ *(tp - 1) = '%'; |
+ *tp++ = 'c'; |
+ *tp = '\0'; |
+ if (sscanf(string, fbuf, &dummy) != 1) |
+ result = (char *) format; |
+ ifree(fbuf); |
+ return result; |
+} |
Property changes on: icu46/source/tools/tzcode/scheck.c |
___________________________________________________________________ |
Added: svn:eol-style |
+ LF |