| OLD | NEW |
| 1 #include "shgetc.h" | 1 #include "shgetc.h" |
| 2 | 2 |
| 3 void __shlim(FILE *f, off_t lim) | 3 void __shlim(FILE *f, off_t lim) |
| 4 { | 4 { |
| 5 f->shlim = lim; | 5 f->shlim = lim; |
| 6 f->shcnt = f->rend - f->rpos; | 6 f->shcnt = f->rend - f->rpos; |
| 7 if (lim && f->shcnt > lim) | 7 if (lim && f->shcnt > lim) |
| 8 f->shend = f->rpos + lim; | 8 f->shend = f->rpos + lim; |
| 9 else | 9 else |
| 10 f->shend = f->rend; | 10 f->shend = f->rend; |
| 11 } | 11 } |
| 12 | 12 |
| 13 int __shgetc(FILE *f) | 13 int __shgetc(FILE *f) |
| 14 { | 14 { |
| 15 int c; | 15 int c; |
| 16 » if (f->shlim && f->shcnt >= f->shlim || (c=__uflow(f)) < 0) { | 16 » if ((f->shlim && f->shcnt >= f->shlim) || (c=__uflow(f)) < 0) { |
| 17 f->shend = 0; | 17 f->shend = 0; |
| 18 return EOF; | 18 return EOF; |
| 19 } | 19 } |
| 20 if (f->shlim && f->rend - f->rpos > f->shlim - f->shcnt - 1) | 20 if (f->shlim && f->rend - f->rpos > f->shlim - f->shcnt - 1) |
| 21 f->shend = f->rpos + (f->shlim - f->shcnt - 1); | 21 f->shend = f->rpos + (f->shlim - f->shcnt - 1); |
| 22 else | 22 else |
| 23 f->shend = f->rend; | 23 f->shend = f->rend; |
| 24 if (f->rend) f->shcnt += f->rend - f->rpos + 1; | 24 if (f->rend) f->shcnt += f->rend - f->rpos + 1; |
| 25 if (f->rpos[-1] != c) f->rpos[-1] = c; | 25 if (f->rpos[-1] != c) f->rpos[-1] = c; |
| 26 return c; | 26 return c; |
| 27 } | 27 } |
| OLD | NEW |