| OLD | NEW | 
|---|
| 1 #include "stdio_impl.h" | 1 #include "stdio_impl.h" | 
| 2 #include "locale_impl.h" | 2 #include "locale_impl.h" | 
| 3 #include <wchar.h> | 3 #include <wchar.h> | 
| 4 #include <limits.h> | 4 #include <limits.h> | 
| 5 #include <ctype.h> | 5 #include <ctype.h> | 
| 6 #include <string.h> | 6 #include <string.h> | 
| 7 | 7 | 
| 8 wint_t ungetwc(wint_t c, FILE *f) | 8 wint_t ungetwc(wint_t c, FILE* f) { | 
| 9 { | 9   unsigned char mbc[MB_LEN_MAX]; | 
| 10 »       unsigned char mbc[MB_LEN_MAX]; | 10   int l = 1; | 
| 11 »       int l=1; | 11   locale_t *ploc = &CURRENT_LOCALE, loc = *ploc; | 
| 12 »       locale_t *ploc = &CURRENT_LOCALE, loc = *ploc; |  | 
| 13 | 12 | 
| 14 »       FLOCK(f); | 13   FLOCK(f); | 
| 15 | 14 | 
| 16 »       if (f->mode <= 0) fwide(f, 1); | 15   if (f->mode <= 0) | 
| 17 »       *ploc = f->locale; | 16     fwide(f, 1); | 
|  | 17   *ploc = f->locale; | 
| 18 | 18 | 
| 19 »       if (!f->rpos) __toread(f); | 19   if (!f->rpos) | 
| 20 »       if (!f->rpos || f->rpos < f->buf - UNGET + l || c == WEOF || | 20     __toread(f); | 
| 21 »           (!isascii(c) && (l = wctomb((void *)mbc, c)) < 0)) { | 21   if (!f->rpos || f->rpos < f->buf - UNGET + l || c == WEOF || | 
| 22 »       »       FUNLOCK(f); | 22       (!isascii(c) && (l = wctomb((void*)mbc, c)) < 0)) { | 
| 23 »       »       *ploc = loc; | 23     FUNLOCK(f); | 
| 24 »       »       return WEOF; | 24     *ploc = loc; | 
| 25 »       } | 25     return WEOF; | 
|  | 26   } | 
| 26 | 27 | 
| 27 »       if (isascii(c)) *--f->rpos = c; | 28   if (isascii(c)) | 
| 28 »       else memcpy(f->rpos -= l, mbc, l); | 29     *--f->rpos = c; | 
|  | 30   else | 
|  | 31     memcpy(f->rpos -= l, mbc, l); | 
| 29 | 32 | 
| 30 »       f->flags &= ~F_EOF; | 33   f->flags &= ~F_EOF; | 
| 31 | 34 | 
| 32 »       FUNLOCK(f); | 35   FUNLOCK(f); | 
| 33 »       *ploc = loc; | 36   *ploc = loc; | 
| 34 »       return c; | 37   return c; | 
| 35 } | 38 } | 
| OLD | NEW | 
|---|