URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [language/] [c/] [libc/] [stdio/] [current/] [ChangeLog] - Rev 786
Compare with Previous | Blame | View Log
2009-08-20 Uwe Kindler <uwe_kindler@web.de>
* cdl/stdio.cdl Added option CYGIMP_LIBC_STDIO_C99_SNPRINTF
for activation of C99 compliant snprintf() return value.
* src/output/vfnprintf.cxx: Added optional C99 compliant return
value calculation.
* tests/snprintf.c: New test for snprintf including C99
implementation.
2009-08-07 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/vsnprintf.cxx (class Cyg_VsnprintfStream):
Remove destructor.
(vsnprintf): Apply null terminator correctly when truncated.
2009-02-16 Lars Povlsen <lpovlsen@vitesse.com>
* include/stdio.h: Removed extra semicolon after scanf()
prototype.
2009-01-18 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Fix silly
typo in last change.
2009-01-15 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Ensure the
files table can't change. Thanks to Xiaochen Zhou for the detective
work.
2008-07-21 Guenter Ebermann <guenter.ebermann@gmx.at>
* src/common/fclose.cxx (fclose): Replace config-dependent use of
delete with free(), as the memory had been allocated with malloc.
2007-07-02 Gary Thomas <gary@mlbassoc.com>
* src/output/vfnprintf.cxx: Add (char *) casts to make GCC/4.2.x happy.
2007-02-05 Sergei Organov <osv@javad.com>
* src/output/vfnprintf.cxx (vfnprintf): while formatting integers
in decimal, convert the value to unsigned long from unsigned long
long before processing, unless we actually print long long
argument. This tremendously speeds-up the formatting.
2007-01-16 Sergei Organov <osv@javad.com>
Speed-up [v]s[n]printf() functions by a factor of about 2+. In
particular, sprintf(s, "%s", "") becomes faster 2.8 times,
printing of every character -- 1.7 times, and, as a result, e.g.,
printing of a string of length 50 -- 2.2 times.
* include/stream.hxx (class Cyg_OutputStream): New ABC.
(class Cyg_StdioStream): inherit from Cyg_OutputStream; make
the destructor, write(), and get_error() virtual.
* src/output/vfnprintf.cxx (vfnprintf): Use ABC Cyg_OutputStream
instead of Cyg_StdioStream.
* src/common/vsnprintf.cxx (class Cyg_VsnprintfStream): New class
that specializes Cyg_OutputStream for output to a string.
(vsnprintf): Use Cyg_VsnprintfStream for printing to a string.
2006-12-22 Sergei Organov <osv@javad.com>
* src/output/vfnprintf.cxx (vfnprintf): Speed-up formatting of
decimal integers by replacing modulo operation with multiply and
subtract.
2006-09-27 Jonathan Larmour <jifl@eCosCentric.com>
* include/stdio.h: Make fpos_t be signed to allow negative
SEEK_CUR offsets to fseek().
* include/stream.inl (set_position): If SEEK_CUR, then if
having to reconcile difference between position and underlying
file position, then requested seek position needs adjusting
for buffer size.
Both above reported and analysed by Ivan Djelic.
2006-09-26 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/stream.cxx (read): Only update position after direct
reads from I/O system so it's updated by the correct number of
bytes.
(write): Reset underlying file position if there had been
stuff read from the file left in the buffer so the file positions
are inconsistent.
2005-07-22 Andrew Lunn <andrew.lunn@ascom.ch>
* src/common/fopen.cxx (fopen): Default the open mode to Read
until we have process the flags. Initialize the dev handle. These
keep the compiler happy.
2005-04-11 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/stream.cxx (read): don't reference flags.buffering
when configured by CDL to be unbuffered.
2005-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
* include/stdio.h: Added CYGBLD_ATTRIB_{PRINTF|SCANF}_FORMAT where
appropriate so the compiler does more checking.
2004-12-08 Daniel Neri <daniel.neri@sigicom.se>
* cdl/stdio.cdl (CYGPKG_LIBC_STDIO_FILEIO): The FILEIO variant of
vsnprintf breaks if CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF is disabled.
2004-09-27 Jonathan Larmour <jifl@eCosCentric.com>
* cdl/stdio.cdl (CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS): New option,
to control whether or not fdopen()/fileno() are implemented.
Only build fopen/fclose if CYGPKG_LIBC_STDIO_OPEN.
* src/common/fclose.cxx: Can remove ifdef CYGPKG_LIBC_STDIO_OPEN since
file now isn't even built if not.
* src/common/fopen.cxx: Ditto. Also condition on
CYGFUN_LIBC_STDIO_OPEN_POSIX_FDFUNCS so decision is centralised in CDL.
2004-08-18 Jonathan Larmour <jifl@eCosCentric.com>
* cdl/stdio.cdl (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Only use
CYGDAT_IO_SERIAL_TTY_CONSOLE if set.
2004-08-18 Fredrik Hederstierna <fredrik@wespot.com>
2004-08-18 Jonathan Larmour <jifl@eCosCentric.com>
* src/input/vfscanf.cxx (vfscanf): Add long long and long double
support.
* cdl/stdio.cdl (CYGFUN_LIBC_STDIO_LONGLONG): Make it a new option.
2004-08-16 Oyvind Harboe <oyvind.harboe@zylin.com>
* src/common/stream.cxx (read): fixed performance problem with
unbuffered reads. Long unbuffered i/o read requests would cause
one roundtrip to the underlying file system for each byte, instead
of a single trip as intended.
2004-03-29 Kelvin Lawson <klawson@ad-holdings.co.uk>
* src/common/fopen.cxx:
* src/common/stream.cxx:
* include/io.inl:
* include/stream.hxx:
Split CYGSTREAM_READWRITE into CYGSTREAM_READWRITE_CREATE and
CYGSTREAM_READWRITE_NOCREATE. This fixes fopen() with mode 'w+'
which previously did not allow file creation.
2004-03-27 Andrew Lunn <andrew.lunn@ascom.ch>
* include/stream.inl (set_position): Flush the output buffer
before seeking the underlying file otherwise the writes ends up in
the wrong location in the file.
2004-03-15 Jonathan Larmour <jifl@eCosCentric.com>
* src/common/fileops.cxx (tmpnam): Only close if open() succeded.
2004-03-12 Jonathan Larmour <jifl@eCosCentric.com>
* src/input/vfscanf.cxx (vfscanf): Silence warning.
* include/stdio.h:
Add file operation functions which weren't here before!
While I'm here, add __THROW everywhere and use __externC not externC.
* cdl/stdio.cdl: We implement stdio fileops in isoinfra now.
Also set header for that.
Build fileops.cxx.
L_tmpnam must be at least 4.
TMP_MAX must be at least 1, and ISO C says it should be >=25.
Add description for CYGPKG_LIBC_STDIO_FILEIO and move up from
bottom so it goes with others.
* src/common/fileops.cxx: New file. Implements rename(), remove(),
tmpnam() and tmpfile().
* src/common/fclose.cxx: Add throw specifiers to match stdio.h.
* src/common/feof.cxx: Ditto.
* src/common/fflush.cxx: Ditto.
* src/common/fopen.cxx: Ditto.
* src/common/freopen.cxx: Ditto.
* src/common/fseek.cxx: Ditto.
* src/common/setvbuf.cxx: Ditto.
* src/common/snprintf.cxx: Ditto.
* src/common/sprintf.cxx: Ditto.
* src/common/sscanf.cxx: Ditto.
* src/common/stdioinlines.cxx: Ditto.
* src/common/ungetc.cxx: Ditto.
* src/common/vsnprintf.cxx: Ditto.
* src/common/vsscanf.cxx: Ditto.
* src/input/fgetc.cxx: Ditto.
* src/input/fgets.cxx: Ditto.
* src/input/fread.cxx: Ditto.
* src/input/fscanf.cxx: Ditto.
* src/input/gets.cxx: Ditto.
* src/input/scanf.cxx: Ditto.
* src/input/vfscanf.cxx: Ditto.
* src/output/fnprintf.cxx: Ditto.
* src/output/fprintf.cxx: Ditto.
* src/output/fputc.cxx: Ditto.
* src/output/fputs.cxx: Ditto.
* src/output/fwrite.cxx: Ditto.
* src/output/printf.cxx: Ditto.
* src/output/vfnprintf.cxx: Ditto.
2004-02-17 Jonathan Larmour <jifl@eCosCentric.com>
* cdl/stdio.cdl (CYGSEM_LIBC_STDIO_THREAD_SAFE_STREAMS): Can
be inactive when no kernel.
* cdl/stdio.cdl: Implements file positioning functions in isoinfra.
2003-09-03 Thomas Koeller <thomas.koeller@baslerweb.com>
* cdl/stdio.cdl: only require "/dev/haldiag" if actually using it.
2003-08-12 Scott Wilkinson <scott@alliantnetworks.com>
* src/common/fclose.cxx (fclose): fclose would seg-fault if passed
NULL FILE pointer. Now returns error. Also cleaned up some exit
paths to call Cyg_libc_stdio_files::unlock()
* src/common/fopen.cxx (fopen): Cleaned up some exit paths to call
Cyg_libc_stdio_files::unlock()
2003-06-10 Andrew Lunn <andrew.lunn@ascom.ch>
* src/output/vfnprintf.cxx (SARG): Cast size_t to long. This seems
to stop gcc from producing wrong code for the plain int clause. The
wrong code causes negative numbers to be printed as positive because
the sign extend from 32 bits to 64 bits is wrong.
2003-03-06 Gary Thomas <gary@mlbassoc.com>
* src/input/fread.cxx (fread): Simple EOF should not set error.
* tests/fileio.c: New file.
* cdl/stdio.cdl: Add new file I/O tests.
2003-02-24 Jonathan Larmour <jifl@eCosCentric.com>
* cdl/stdio.cdl: Fix doc link.
2003-02-15 Fabrice Gautier <Fabrice_Gautier@sdesigns.com>
* include/stdio.inl (setbuf): Don't supply size with _IONBF.
* src/common/stdioinlines.cxx (setbuf): Ditto.
2003-01-29 Jonathan Larmour <jifl@eCosCentric.com>
* src/output/vfnprintf.cxx: Add support for C99 'z' flag (size_t).
2002-09-02 Andrew Lunn <andrew.lunn@ascom.ch>
* include/stream.inl (set_position): Fixed typo in none buffered
case. Seek pos bytes, not whence bytes.
2002-05-17 Martin Buck <martin.buck@ascom.ch>
* include/stdio.h (fnprintf): Added printf-format-checking using
CYGBLD_ATTRIB_PRINTF_FORMAT, since gcc does it automatically only for
ISO C90 functions.
(snprintf) Likewise.
2002-04-24 Yoshinori Sato <qzb04471@nifty.ne.jp>
* include/streambuf.inl (Cyg_StdioStreamBuffer constructor):
Don't set default args in func definition.
(set_buffer): Ditto.
2002-04-05 Jonathan Larmour <jlarmour@redhat.com>
* src/input/fgetc.cxx (fgetc): Silence conversion warning.
2002-04-04 Jonathan Larmour <jlarmour@redhat.com>
* src/common/fopen.cxx (fopen_inner): Allocate memory using malloc and
placement new, not default new.
* src/input/fgetc.cxx (fgetc): Don't set error on true EOF.
2002-04-04 Jurica Baricevic <jura@INTESIS.hr>
* src/common/fclose.cxx (fclose): Use delete if we can.
2002-02-06 Jonathan Larmour <jlarmour@redhat.com>
* src/input/fread.cxx (fread): when looping read into ptrc, not ptr!
2002-01-25 Jonathan Larmour <jlarmour@redhat.com>
* include/stream.inl (set_position): Fix the seek backwards case again.
Doh!
2002-01-24 Jonathan Larmour <jlarmour@redhat.com>
* include/stream.inl (set_position): Fix the posdiff == 0 case.
2002-01-24 Jesper Skov <jskov@redhat.com>
* include/stream.inl (set_position): Check that posdiff is >0
before taking the code path that assumes so.
2002-01-17 Jonathan Larmour <jlarmour@redhat.com>
* include/stream.inl (set_position): Use an off_t for bytesavail to
prevent warnings.
2001-12-05 Jonathan Larmour <jlarmour@redhat.com>
* src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Fix starvation
problem when waiting for threads to unlock of lower priority.
Fix for bug #57014.
2001-11-23 Jonathan Larmour <jlarmour@redhat.com>
* cdl/stdio.cdl: Add dependency on stdlib string conversion functions
for *scanf.
2001-08-10 Robin Farine <robin.farine@terminus.org>
* src/output/vfnprintf.cxx (cvt): Handles the cases of finite,
NaN and infinite numbers separately.
* src/common/stream.cxx (read): Read correct number of bytes when
a character has been "ungot".
2001-08-03 Jonathan Larmour <jlarmour@redhat.com>
* include/streambuf.inl (~Cyg_StdioStreamBuffer): use correct configury
to decide when to call free.
2001-07-27 Jesper Skov <jskov@redhat.com>
* src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): The check
for last operation being a read is only valid in buffered IO mode.
2001-07-20 Jonathan Larmour <jlarmour@redhat.com>
* include/stream.inl (set_position): Take read buffer into account
when seeking. Thanks to jjtsai <jjtsai@itri.org.tw> for the
help.
2001-07-12 Jonathan Larmour <jlarmour@redhat.com>
* src/common/fflush.cxx (cyg_libc_stdio_flush_all_but): Don't
flush a stream that was last used for reading - it doesn't need it.
* include/stream.hxx: cyg_libc_stdio_flush_all_but needs to be a
friend of class Cyg_StdioStream to do the above.
2001-06-18 Jonathan Larmour <jlarmour@redhat.com>
* src/input/fread.cxx (fread): Fix compilation problem with below
change.
2001-06-15 Rob Jansen <rwjansen@planet.nl>
* src/input/fread.cxx (fread): Changed to read the requested amount
of data items instead of stopping on CYG_LIBC_STDIO_BUFSIZE boundaries.
2001-06-08 Jeff Johnston <jjohnstn@redhat.com>
* src/input/vfscanf.cxx (vfscanf)[CYGINT_LIBC_I18N_MB_REQUIRED]: Added
call to mbtowc_fn for current locale to process format string.
Also added variable definitions needed in this circumstance.
* src/output/vfnprintf.cxx (vfnprintf)[CYGINT_LIBC_I18N_MB_REQUIRED]: Ditto.
(vfnprintf): Changed non-multibyte path to simply use the current
character rather than call the C mbtowc function since only
single byte characters would be possible.
2001-03-19 Jonathan Larmour <jlarmour@redhat.com>
* src/common/stream.cxx (refill_read_buffer): Flush all streams here...
(read): ...rather than here, or...
(read_byte): ...here.
This means less flushing, which improves performance.
* src/input/fgets.cxx: Add a reminder comment to improve this later.
* src/input/gets.cxx: Ditto.
2001-03-16 Jonathan Larmour <jlarmour@redhat.com>
* include/stream.hxx (class Cyg_StdioStream): Improve member visibility.
* src/common/stream.cxx (refill_read_buffer): Ensure eof is set.
* src/common/feof.cxx: New file. Implements the long lost
feof(), ferror() and clearerr() functions which were MIA for
no good reason.
* cdl/stdio.cdl: Build it.
2001-03-15 Jonathan Larmour <jlarmour@redhat.com>
* cdl/stdio.cdl (CYGDAT_LIBC_STDIO_DEFAULT_CONSOLE): Default to
tty default console.
* src/input/fgets.cxx (fgets): Reimplement to work with EOF properly.
Add tracing.
* src/input/gets.cxx (gets): Ditto.
* include/io.hxx, include/io.inl, include/stream.hxx,
include/stream.inl, include/streambuf.hxx, include/streambuf.inl:
Silence warnings from recent compilers.
2001-02-01 Jonathan Larmour <jlarmour@redhat.com>
* cdl/stdio.cdl (CYGPKG_LIBC_STDIO_OPEN): Implements
CYGINT_ISO_STDIO_POSIX_FDFUNCS ( fileno() and fdopen() ).
2000-11-01 Jonathan Larmour <jlarmour@redhat.com>
* include/stdio.h: Make FILE array type larger to be more resistant
against small data sections.
Lose the cyg_libc_stdio_stdin/out/err definitions with macros for
stdin/stdout/err since it can cause problems with libgcc exception
code. Instead just make these extern FILE *s.
* src/common/stderr.cxx:
* src/common/stdin.cxx:
* src/common/stdout.cxx:
Define objects with init priority corresponding to order the fd's
should be allocated where applicable.
Define actual stdin, stdout, stderr externally visible constants to
point to the streams.
* cdl/stdio.cdl: Support CYGINT_ISO_STDIO_STREAMS interface
* src/common/fopen.cxx (fdopen): return f as intended
2000-10-23 Jesper Skov <jskov@redhat.com>
* include/streambuf.inl: Adjust assertions to cope with buffers
generated by sprintf and similar non-bound-buffer calls.
2000-08-09 Jonathan Larmour <jlarmour@redhat.co.uk>
* include/io.inl: No need to include string.h
* cdl/stdio.cdl: Add some more requires statements
2000-08-07 Jonathan Larmour <jlarmour@redhat.co.uk>
* src/common/stream.cxx (Cyg_StdioStream::Cyg_StdioStream):
Only call io_buf members conditionally.
2000-08-03 Jonathan Larmour <jlarmour@redhat.co.uk>
* src/common/fseek.cxx: Include assertion and tracing support since
they are used.
2000-07-20 Nick Garnett <nickg@cygnus.co.uk>
* include/stream.hxx (class Cyg_StdioStream): Added get_dev()
accessor member function to return underlying device handle.
* src/common/fopen.cxx: Added fdopen() and fileno(). Reorganized
fopen() so that code common with fdopen() is now in a separate
function.
* src/common/stdiosupp.cxx (Cyg_libc_stdio_find_filename): Removed
compiler warning.
2000-07-13 Nick Garnett <nickg@cygnus.co.uk>
* cdl/stdio.cdl: Added common/fseek.cxx to compile list.
Reorganized options for stream buffering:
CYGSEM_LIBC_STDIO_DYNAMIC_SETVBUF now controls whether the user
can attach their own buffer to the stream.
CYGSEM_LIBC_STDIO_SETVBUF_MALLOC controls whether buffers can be
malloced or only statically defined.
Added CYGPKG_LIBC_STDIO_FILEIO option to control whether the STDIO
package uses the FILEIO package for all IO, or goes directly to
the device drivers as before.
* include/stdio.h: Added file positioning calls defined in section
7.9.9 of the standard.
* include/io.hxx:
* include/io.inl:
Added these files to define an abstraction layer for access to the
real device underlying an IO stream. Depending on
CYGPKG_LIBC_STDIO_FILEIO this either goes to the FILEIO package or
directly to the device drivers.
* include/stream.hxx:
Modifications to use io.hxx abstractions.
Added second constructor for creating a buffer-only stream.
Added initialize() function which contains most of the common
stream initialization code.
Added a close() member function.
* include/stream.inl:
Modifications to use io.hxx abstractions.
Moved most of the work of the destructor into close() member.
Added FILEIO version of set_position() member function.
* include/streambuf.hxx:
* include/streambuf.inl:
* src/common/streambuf.cxx:
Rearranged to match new buffering configuration options.
* src/common/stream.cxx:
Modifications to use io.hxx abstractions.
Added second constructor, and moved common initialization code to
initialize() member function.
Added code to make position member correctly track current file
position.
* src/common/fopen.cxx:
Fixed handling of write/append in process_mode().
Moved call of process_mode() to before call to cyg_stdio_open() so
that stream modes may be passed in.
Added code to detect an interactive stream and choose non-buffered
mode - fully buffered is now the default.
Added calls to cyg_stdio_close() where appropriate.
* src/output/vfnprintf.cxx: Removed FLUSH() macro and its
uses. Deciding to flush should be in the hands of the buffer code,
or the user calling fflush().
* src/common/vsscanf.cxx:
Added FILEIO variant of vsscanf(). This uses a precharged stream
object to emulate input.
* src/common/vsnprintf.cxx:
Added FILEIO variant of vsnprintf(). This uses the standard stream
object to print into the supplied buffer.
* src/common/fseek.cxx:
Added this file to implement file positioning functions.
* src/common/fclose.cxx (fclose):
Added call to Cyg_StdioStream::close().
* include/stdiosupp.hxx:
* src/common/stdiosupp.cxx:
Modified Cyg_libc_stdio_find_filename() to take mode, binary and
append arguments.
* src/common/stdin.cxx:
* src/common/stdout.cxx:
* src/common/stderr.cxx:
Modified calls to Cyg_libc_stdio_find_filename() to pass
appropriate values for mode, binary and append arguments.
2000-06-18 Jonathan Larmour <jlarmour@redhat.co.uk>
* src/common/vsscanf.cxx: Add NULL select entry to DEVIO_TABLE
* src/common/vsnprintf.cxx: Likewise
2000-05-25 Hugo Tyson <hmt@cygnus.co.uk>
* include/stream.inl (set_error): If the error is EEOF, set
the EOF flag (flags.at_eof) so that clients know.
* src/input/fgetc.cxx (__fgetc):
* src/input/fgets.cxx (_fgets):
* src/input/fread.cxx (_fread): Correctly handle an error,
or EOF indication, from real_stream->refill_read_buffer().
2000-05-02 Jonathan Larmour <jlarmour@redhat.co.uk>
* New package
Separated original libc out into separate packages on functional
boundaries.
Header files are now managed by isoinfra package
Plenty of cleanups done, but no major functionality changes
//===========================================================================
// ####GPLCOPYRIGHTBEGIN####
// -------------------------------------------
// This file is part of eCos, the Embedded Configurable Operating System.
// Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2006, 2009 Free Software Foundation, Inc.
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 or (at your option) any
// later version.
//
// This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
// General Public License for more details.
//
// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the
// Free Software Foundation, Inc., 51 Franklin Street,
// Fifth Floor, Boston, MA 02110-1301, USA.
// -------------------------------------------
// ####GPLCOPYRIGHTEND####
//===========================================================================