source: trunk/sys/dietlibc/fgets.c @ 312

Last change on this file since 312 was 1, checked in by alain, 8 years ago

First import

File size: 553 bytes
RevLine 
[1]1#include "dietstdio.h"
2
3char *fgets_unlocked(char *s, int size, FILE *stream) {
4  int l;
5  for (l=0; l<size; ) {
6    register int c;
7    if (l && stream->bm<stream->bs) {
8      /* try common case first */
9      c=(unsigned char)stream->buf[stream->bm++];
10    } else {
11      c=fgetc_unlocked(stream);
12      if (c==EOF) {
13        if (!l) return 0;
14        goto fini;
15      }
16    }
17    s[l]=c;
18    ++l;
19    if (c=='\n') {
20fini:
21      s[l]=0;
22      return s;
23    }
24  }
25  return 0;
26}
27
28char*fgets(char*s,int size,FILE*stream) __attribute__((weak,alias("fgets_unlocked")));
Note: See TracBrowser for help on using the repository browser.