Back to index

glibc  2.9
Functions | Variables
scheck.c File Reference
#include "private.h"

Go to the source code of this file.

Functions

const char * scheck (char *const string, const char *const format) const

Variables

static char elsieid [] = "@(#)scheck.c 8.19"

Function Documentation

const char* scheck ( char * const  string,
const char * const  format 
) const

Definition at line 17 of file scheck.c.

{
       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;
}

Here is the call graph for this function:


Variable Documentation

char elsieid[] = "@(#)scheck.c 8.19" [static]

Definition at line 8 of file scheck.c.