Changeset 185 for trunk/src/sh_string.c


Ignore:
Timestamp:
Oct 29, 2008, 8:59:18 PM (16 years ago)
Author:
katerina
Message:

Bugfixes for log monitoring, samba logfile parser.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/sh_string.c

    r183 r185  
    204204#define SH_STRING_PARCEL 120
    205205
     206static
     207size_t sh_string_read_int(sh_string * s, FILE * fp, size_t maxlen, char *start);
     208
    206209size_t sh_string_read(sh_string * s, FILE * fp, size_t maxlen)
    207210{
     211  return sh_string_read_int(s, fp, maxlen, NULL);
     212}
     213
     214size_t sh_string_read_cont(sh_string * s, FILE * fp, size_t maxlen, char *cont)
     215{
     216  return sh_string_read_int(s, fp, maxlen, cont);
     217}
     218
     219size_t sh_string_read_int(sh_string * s, FILE * fp, size_t maxlen, char *start)
     220{
     221
     222  /* case 0) start != NULL and first char not in 'start'
     223   */
     224  if (start)
     225    {
     226      int first = fgetc(fp);
     227
     228      if (first == EOF)
     229        {
     230          sh_string_truncate(s, 0);
     231          if (ferror(fp))
     232            return -1;
     233          return 0;
     234        }
     235
     236      if (NULL == strchr(start, first))
     237        {
     238          ungetc(first, fp);
     239          return 0;
     240        }
     241      ungetc(first, fp);
     242    }
    208243
    209244  /* case 1) EOF or error
Note: See TracChangeset for help on using the changeset viewer.