mirror of
https://frontier.innolan.net/rainlance/amiga-tz.git
synced 2026-05-07 10:19:36 +00:00
* Makefile (GCC_DEBUG_FLAGS): Modernize for GCC 4.6.3 x86. * asctime.c (asctime_r, asctime): * date.c (main, dogmt, reset, wildinput, nondigit, oops, display) (timeout, sametm, netsettime): * difftime.c (difftime): * ialloc.c (icatalloc, icpyalloc): * localtime.c (detzcode, detzcode64, differ_by_repeat) (tzload, typesequiv, getzname, getnum, getsecs, getoffset) (getrule, transtime, tzparse, gmtload, tzsetwall, tzset) (localsub, localtime, localtime_r, gmtsub, gmtime, gmtime_r) (offtime, leaps_thru_end_of, timesub, ctime, ctime_r) (increment_overflow, long_increment_overflow) (normalize_overflow, long_normalize_overflow, tmcomp, time2sub) (time2, time1, mktime, timelocal, timegm, timeoff, gtime) (leapcorr, time2posix, posix2time): * scheck.c (scheck): * strftime.c (strftime, _fmt, _conv, _add, _yconv, _loc): * zdump.c (my_localtime, abbrok, usage, main, yeartot) (delta, abbr, dumptime): * zic.c (memcheck, eats, eat, error, warning, main) (dolink, itsdir, rcomp, associate, infile, gethms, inrule) (inzone, inzcont, inzsub, inleap, inlink, rulesub, convert) (convert64, puttzcode, puttzcode64, atcomp, is32, writezone, DO) (doabbr, updateminmax, stringoffset, stringrule, stringzone) (outzone, addtt, addtype, leapadd, yearistype, lowerit, ciequal) (itsabbr, byword, getfields, oadd, tadd, rpytime, newabbr) (mkdirs, eitol): Assume C89 or better. Mostly this consists of using function prototypes. In a few places, prototypes are required for portability to hosts where time_t does not promote to itself and where a preceding prototype does not override a definition. But while we're at it we might as well be consistent: it's safe to assume at-least-C89 these days. * ialloc.c (nonzero, imalloc, icalloc, irealloc, ifree, icfree): Remove; no longer needed now that we assume C89 or better. All callers changed to use malloc, calloc, realloc, free. * localtime.c (getzname, getqzname, leaps_thru_end_of, transtime): * zdump.c (delta, yeartot): * zic.c (eitol): Now pure. * private.h, zdump.c (ATTRIBUTE_PURE): New macro. * private.h (icalloc, imalloc, irealloc, icfree, ifree): Remove decls. * zic.c: Remove no-longer-necessary forward decls. (max_time, min_time): Now const. (setboundaries): Remove.
56 lines
1.0 KiB
C
56 lines
1.0 KiB
C
/*
|
|
** This file is in the public domain, so clarified as of
|
|
** 2006-07-17 by Arthur David Olson.
|
|
*/
|
|
|
|
/*LINTLIBRARY*/
|
|
|
|
#include "private.h"
|
|
|
|
const char *
|
|
scheck(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 = malloc(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 = format;
|
|
free(fbuf);
|
|
return result;
|
|
}
|