Last change
on this file since 445 was 444, checked in by coas-nagasima, 4 years ago |
muslのソースコードを追加
|
-
Property svn:eol-style
set to
native
-
Property svn:mime-type
set to
text/x-csrc;charset=UTF-8
|
File size:
561 bytes
|
Rev | Line | |
---|
[444] | 1 | #include "shgetc.h"
|
---|
| 2 |
|
---|
| 3 | void __shlim(FILE *f, off_t lim)
|
---|
| 4 | {
|
---|
| 5 | f->shlim = lim;
|
---|
| 6 | f->shcnt = f->rend - f->rpos;
|
---|
| 7 | if (lim && f->shcnt > lim)
|
---|
| 8 | f->shend = f->rpos + lim;
|
---|
| 9 | else
|
---|
| 10 | f->shend = f->rend;
|
---|
| 11 | }
|
---|
| 12 |
|
---|
| 13 | int __shgetc(FILE *f)
|
---|
| 14 | {
|
---|
| 15 | int c;
|
---|
| 16 | if (f->shlim && f->shcnt >= f->shlim || (c=__uflow(f)) < 0) {
|
---|
| 17 | f->shend = 0;
|
---|
| 18 | return EOF;
|
---|
| 19 | }
|
---|
| 20 | if (f->shlim && f->rend - f->rpos > f->shlim - f->shcnt - 1)
|
---|
| 21 | f->shend = f->rpos + (f->shlim - f->shcnt - 1);
|
---|
| 22 | else
|
---|
| 23 | f->shend = f->rend;
|
---|
| 24 | if (f->rend) f->shcnt += f->rend - f->rpos + 1;
|
---|
| 25 | if (f->rpos[-1] != c) f->rpos[-1] = c;
|
---|
| 26 | return c;
|
---|
| 27 | }
|
---|
Note:
See
TracBrowser
for help on using the repository browser.