| 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
|
|
|
|
|