|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ T s ┃
Length: 1086 (0x43e) Types: TextFile Names: »scheck.c«
└─⟦a0efdde77⟧ Bits:30001252 EUUGD11 Tape, 1987 Spring Conference Helsinki └─ ⟦this⟧ »EUUGD11/euug-87hel/sec3/localtime/scheck.c«
# /*LINTLIBRARY*/ #include "stdio.h" #ifndef lint #ifndef NOID static char sccsid[] = "@(#)scheck.c 7.15"; #endif /* !NOID */ #endif /* !lint */ #include "ctype.h" extern char * imalloc(); char * scheck(string, format) char * string; char * format; { register char * fbuf; register char * fp; register char * tp; register int c; register char * result; char dummy; result = ""; if (string == NULL || format == NULL) return result; fbuf = imalloc(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 (isascii(*fp) && isdigit(*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; }