Update.
2000-09-24 Ulrich Drepper <drepper@redhat.com> * libio/genops.c (_IO_doallocbuf): Don't use single byte buffer if stream is in wide mode. * stdio-common/vfprintf.c (buffered_vfprintf): Orient stream. 2000-09-21 Bruno Haible <haible@clisp.cons.org> * iconvdata/iso-2022-cn-ext.c (EMIT_SHIFT_TO_INIT): Shift __count by 3, not 2. (INIT_PARAMS, UPDATE_PARAMS): Likewise. handling. * stdio/tst-printf.sh: Adjust expected results. Reported by Joseph S. Myers <jsm28@cam.ac.uk>.
This commit is contained in:
parent
d90e1b4295
commit
655de5fdf2
17
ChangeLog
17
ChangeLog
|
@ -1,3 +1,16 @@
|
|||
2000-09-24 Ulrich Drepper <drepper@redhat.com>
|
||||
|
||||
* libio/genops.c (_IO_doallocbuf): Don't use single byte buffer if
|
||||
stream is in wide mode.
|
||||
|
||||
* stdio-common/vfprintf.c (buffered_vfprintf): Orient stream.
|
||||
|
||||
2000-09-21 Bruno Haible <haible@clisp.cons.org>
|
||||
|
||||
* iconvdata/iso-2022-cn-ext.c (EMIT_SHIFT_TO_INIT): Shift __count
|
||||
by 3, not 2.
|
||||
(INIT_PARAMS, UPDATE_PARAMS): Likewise.
|
||||
|
||||
2000-09-21 Bruno Haible <haible@clisp.cons.org>
|
||||
|
||||
* stdio-common/vfscanf.c (__vfscanf, _IO_vfscanf): Fix bugs in
|
||||
|
@ -8,7 +21,9 @@
|
|||
* stdio-common/vfprintf.c (process_arg): Handle %hhn.
|
||||
Add missing case in va_arg handling for numbers.
|
||||
* stdio-common/tst-printf.c (main): Add tests for %hhu and %hhn
|
||||
handling. Reported by Joseph S. Myers <jsm28@cam.ac.uk>.
|
||||
handling.
|
||||
* stdio/tst-printf.sh: Adjust expected results.
|
||||
Reported by Joseph S. Myers <jsm28@cam.ac.uk>.
|
||||
|
||||
2000-09-20 Bruno Haible <haible@clisp.cons.org>
|
||||
|
||||
|
|
|
@ -123,12 +123,12 @@ enum
|
|||
the output state to the initial state. This has to be done during the
|
||||
flushing. */
|
||||
#define EMIT_SHIFT_TO_INIT \
|
||||
if (data->__statep->__count >> 2 != ASCII_set) \
|
||||
if (data->__statep->__count >> 3 != ASCII_set) \
|
||||
{ \
|
||||
if (FROM_DIRECTION) \
|
||||
/* It's easy, we don't have to emit anything, we just reset the \
|
||||
state for the input. */ \
|
||||
data->__statep->__count = ASCII_set << 2; \
|
||||
data->__statep->__count = ASCII_set << 3; \
|
||||
else \
|
||||
{ \
|
||||
unsigned char *outbuf = data->__outbuf; \
|
||||
|
@ -145,7 +145,7 @@ enum
|
|||
if (data->__flags & __GCONV_IS_LAST) \
|
||||
*irreversible += 1; \
|
||||
data->__outbuf = outbuf; \
|
||||
data->__statep->__count = ASCII_set << 2; \
|
||||
data->__statep->__count = ASCII_set << 3; \
|
||||
} \
|
||||
} \
|
||||
}
|
||||
|
@ -394,9 +394,9 @@ enum
|
|||
*((uint32_t *) outptr)++ = ch; \
|
||||
}
|
||||
#define EXTRA_LOOP_DECLS , int *setp
|
||||
#define INIT_PARAMS int set = (*setp >> 2) & CURRENT_MASK; \
|
||||
int ann = (*setp >> 2) & ~CURRENT_MASK
|
||||
#define UPDATE_PARAMS *setp = (set | ann) << 2
|
||||
#define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
|
||||
int ann = (*setp >> 3) & ~CURRENT_MASK
|
||||
#define UPDATE_PARAMS *setp = (set | ann) << 3
|
||||
#define LOOP_NEED_FLAGS
|
||||
#include <iconv/loop.c>
|
||||
|
||||
|
@ -644,9 +644,9 @@ enum
|
|||
inptr += 4; \
|
||||
}
|
||||
#define EXTRA_LOOP_DECLS , int *setp
|
||||
#define INIT_PARAMS int set = (*setp >> 2) & CURRENT_MASK; \
|
||||
int ann = (*setp >> 2) & ~CURRENT_MASK
|
||||
#define UPDATE_PARAMS *setp = (set | ann) << 2
|
||||
#define INIT_PARAMS int set = (*setp >> 3) & CURRENT_MASK; \
|
||||
int ann = (*setp >> 3) & ~CURRENT_MASK
|
||||
#define UPDATE_PARAMS *setp = (set | ann) << 3
|
||||
#define LOOP_NEED_FLAGS
|
||||
#include <iconv/loop.c>
|
||||
|
||||
|
|
|
@ -368,7 +368,7 @@ _IO_doallocbuf (fp)
|
|||
{
|
||||
if (fp->_IO_buf_base)
|
||||
return;
|
||||
if (!(fp->_flags & _IO_UNBUFFERED))
|
||||
if (!(fp->_flags & _IO_UNBUFFERED) || fp->_mode > 0)
|
||||
if (_IO_DOALLOCATE (fp) != EOF)
|
||||
return;
|
||||
_IO_setb (fp, fp->_shortbuf, fp->_shortbuf+1, 0);
|
||||
|
|
|
@ -134,6 +134,8 @@ prefix 6d 6o 6x 6X 6u
|
|||
0.10000000000000009
|
||||
Test ok.
|
||||
sprintf (buf, "%07Lo", 040000000000ll) = 40000000000
|
||||
printf ("%hhu", 257) = 1
|
||||
printf ("%hu", 65537) = 1
|
||||
--- Should be no further output. ---
|
||||
EOF
|
||||
cmp - ${common_objpfx}stdio-common/tst-printf.out >& /dev/null ||
|
||||
|
@ -243,6 +245,8 @@ prefix 6d 6o 6x 6X 6u
|
|||
0.10000000000000009
|
||||
Test ok.
|
||||
sprintf (buf, "%07Lo", 040000000000ll) = 40000000000
|
||||
printf ("%hhu", 257) = 1
|
||||
printf ("%hu", 65537) = 1
|
||||
--- Should be no further output. ---
|
||||
EOF
|
||||
cmp - ${common_objpfx}stdio-common/tst-printf.out >& /dev/null ||
|
||||
|
|
|
@ -2062,6 +2062,11 @@ buffered_vfprintf (register _IO_FILE *s, const CHAR_T *format,
|
|||
register _IO_FILE *hp = (_IO_FILE *) &helper._f;
|
||||
int result, to_flush;
|
||||
|
||||
/* Orient the stream. */
|
||||
#ifdef ORIENT
|
||||
ORIENT;
|
||||
#endif
|
||||
|
||||
/* Initialize helper. */
|
||||
helper._put_stream = s;
|
||||
#ifdef COMPILE_WPRINTF
|
||||
|
@ -2122,6 +2127,11 @@ buffered_vfprintf (register FILE *s, const CHAR_T *format, va_list args)
|
|||
char buf[BUFSIZ];
|
||||
int result;
|
||||
|
||||
/* Orient the stream. */
|
||||
#ifdef ORIENT
|
||||
ORIENT;
|
||||
#endif
|
||||
|
||||
s->__bufp = s->__buffer = buf;
|
||||
s->__bufsize = sizeof buf;
|
||||
s->__put_limit = s->__buffer + s->__bufsize;
|
||||
|
|
Loading…
Reference in New Issue