Annotation of 43BSDTahoe/etc/tzone/scheck.c, revision 1.1.1.1

1.1       root        1: #ifndef lint
                      2: static char sccsid[] = "@(#)scheck.c   1.1 (Berkeley) 3/29/87";
                      3: #endif
                      4: 
                      5: /*LINTLIBRARY*/
                      6: 
                      7: #include "stdio.h"
                      8: #include "ctype.h"
                      9: 
                     10: extern char *  imalloc();
                     11: 
                     12: char *
                     13: scheck(string, format)
                     14: char * string;
                     15: char * format;
                     16: {
                     17:        register char * fbuf;
                     18:        register char * fp;
                     19:        register char * tp;
                     20:        register int    c;
                     21:        register char * result;
                     22:        char            dummy;
                     23: 
                     24:        result = "";
                     25:        if (string == NULL || format == NULL)
                     26:                return result;
                     27:        fbuf = imalloc(2 * strlen(format) + 4);
                     28:        if (fbuf == NULL)
                     29:                return result;
                     30:        fp = format;
                     31:        tp = fbuf;
                     32:        while ((*tp++ = c = *fp++) != '\0') {
                     33:                if (c != '%')
                     34:                        continue;
                     35:                if (*fp == '%') {
                     36:                        *tp++ = *fp++;
                     37:                        continue;
                     38:                }
                     39:                *tp++ = '*';
                     40:                if (*fp == '*')
                     41:                        ++fp;
                     42:                while (isascii(*fp) && isdigit(*fp))
                     43:                        *tp++ = *fp++;
                     44:                if (*fp == 'l' || *fp == 'h')
                     45:                        *tp++ = *fp++;
                     46:                else if (*fp == '[')
                     47:                        do *tp++ = *fp++;
                     48:                                while (*fp != '\0' && *fp != ']');
                     49:                if ((*tp++ = *fp++) == '\0')
                     50:                        break;
                     51:        }
                     52:        *(tp - 1) = '%';
                     53:        *tp++ = 'c';
                     54:        *tp = '\0';
                     55:        if (sscanf(string, fbuf, &dummy) != 1)
                     56:                result = format;
                     57:        free(fbuf);
                     58:        return result;
                     59: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.