Changeset 185 for trunk/src/sh_string.c
- Timestamp:
- Oct 29, 2008, 8:59:18 PM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/sh_string.c
r183 r185 204 204 #define SH_STRING_PARCEL 120 205 205 206 static 207 size_t sh_string_read_int(sh_string * s, FILE * fp, size_t maxlen, char *start); 208 206 209 size_t sh_string_read(sh_string * s, FILE * fp, size_t maxlen) 207 210 { 211 return sh_string_read_int(s, fp, maxlen, NULL); 212 } 213 214 size_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 219 size_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 } 208 243 209 244 /* case 1) EOF or error
Note:
See TracChangeset
for help on using the changeset viewer.