mirror of
https://gcc.gnu.org/git/gcc.git
synced 2024-11-24 11:24:05 +08:00
Changes for _G_IO_IO_FILE_VERSION == 0x20001:
* libioP.h (_IO_showmanyc_t, _IO_SHOWMANYC, _IO_imbue_t, _IO_IMBUE): New definitions. (struct _IO_jump_t): Add __showmanyc and __imbue fields. (_IO_file_fopen): Add new fourth argument. * filebuf.cc (filebuf::open): Pass new fourth argument to _IO_file_fopen. * iolibio.h (_IO_freopen): Likewise. * streambuf.cc (streambuf::showmanyc, streambuf::imbue): New functions. * streambuf.h (_IO_wchar_t): Define to _G_wchar_t. (ios::fill): Remove casts. (struct streambuf): Add showmanyc and imbue members. * iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >= 1]: Initialize new fields is_char of struct printf_info. (ostream::operator<<(long double n)) [__GLIBC_MINOR__ >= 1]: Likewise. From-SVN: r18222
This commit is contained in:
parent
14e403d46d
commit
3eaa4d3b4d
@ -1,3 +1,24 @@
|
||||
1998-02-24 Andreas Schwab <schwab@issan.informatik.uni-dortmund.de>
|
||||
|
||||
Changes for _G_IO_IO_FILE_VERSION == 0x20001:
|
||||
* libioP.h (_IO_showmanyc_t, _IO_SHOWMANYC, _IO_imbue_t,
|
||||
_IO_IMBUE): New definitions.
|
||||
(struct _IO_jump_t): Add __showmanyc and __imbue fields.
|
||||
(_IO_file_fopen): Add new fourth argument.
|
||||
* filebuf.cc (filebuf::open): Pass new fourth argument to
|
||||
_IO_file_fopen.
|
||||
* iolibio.h (_IO_freopen): Likewise.
|
||||
* streambuf.cc (streambuf::showmanyc, streambuf::imbue): New
|
||||
functions.
|
||||
* streambuf.h (_IO_wchar_t): Define to _G_wchar_t.
|
||||
(ios::fill): Remove casts.
|
||||
(struct streambuf): Add showmanyc and imbue members.
|
||||
|
||||
* iostream.cc (ostream::operator<<(double n)) [__GLIBC_MINOR__ >=
|
||||
1]: Initialize new fields is_char of struct printf_info.
|
||||
(ostream::operator<<(long double n)) [__GLIBC_MINOR__ >= 1]:
|
||||
Likewise.
|
||||
|
||||
Sun Feb 22 17:24:53 1998 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* config.shared: Bring back changes from Ian and Fred that were
|
||||
|
@ -131,7 +131,11 @@ filebuf* filebuf::open(const char *filename, ios::openmode mode, int prot)
|
||||
|
||||
filebuf* filebuf::open(const char *filename, const char *mode)
|
||||
{
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
return (filebuf*)_IO_file_fopen(this, filename, mode, 0);
|
||||
#else
|
||||
return (filebuf*)_IO_file_fopen(this, filename, mode);
|
||||
#endif
|
||||
}
|
||||
|
||||
filebuf* filebuf::attach(int fd)
|
||||
|
@ -45,8 +45,13 @@ extern int _IO_obstack_printf __P ((struct obstack *, const char *, ...));
|
||||
(_IO_seekoff(__fp, __offset, __whence, _IOS_INPUT|_IOS_OUTPUT) == _IO_pos_BAD ? EOF : 0)
|
||||
#define _IO_rewind(FILE) (void)_IO_seekoff(FILE, 0, 0, _IOS_INPUT|_IOS_OUTPUT)
|
||||
#define _IO_vprintf(FORMAT, ARGS) _IO_vfprintf(_IO_stdout, FORMAT, ARGS)
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
#define _IO_freopen(FILENAME, MODE, FP) \
|
||||
(_IO_file_close_it(FP), _IO_file_fopen(FP, FILENAME, MODE, 0))
|
||||
#else
|
||||
#define _IO_freopen(FILENAME, MODE, FP) \
|
||||
(_IO_file_close_it(FP), _IO_file_fopen(FP, FILENAME, MODE))
|
||||
#endif
|
||||
#define _IO_fileno(FP) ((FP)->_fileno)
|
||||
extern _IO_FILE* _IO_popen __P((const char*, const char*));
|
||||
#define _IO_pclose _IO_fclose
|
||||
|
@ -634,6 +634,9 @@ ostream& ostream::operator<<(double n)
|
||||
/* group: */ 0,
|
||||
#if defined __GLIBC__ && __GLIBC__ >= 2
|
||||
/* extra: */ 0,
|
||||
#if __GLIBC_MINOR__ >= 1
|
||||
/* is_char: */ 0,
|
||||
#endif
|
||||
#endif
|
||||
/* pad: */ fill()
|
||||
};
|
||||
@ -737,6 +740,9 @@ ostream& ostream::operator<<(long double n)
|
||||
/* group: */ 0,
|
||||
#if defined __GLIBC__ && __GLIBC__ >= 2
|
||||
/* extra: */ 0,
|
||||
#if __GLIBC_MINOR__ >= 1
|
||||
/* is_char: */ 0,
|
||||
#endif
|
||||
#endif
|
||||
/* pad: */ fill()
|
||||
};
|
||||
|
@ -226,6 +226,19 @@ typedef int (*_IO_close_t) __P ((_IO_FILE *)); /* finalize */
|
||||
typedef int (*_IO_stat_t) __P ((_IO_FILE *, void *));
|
||||
#define _IO_SYSSTAT(FP, BUF) JUMP1 (__stat, FP, BUF)
|
||||
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
/* The 'showmany' hook can be used to get an image how much input is
|
||||
available. In many cases the answer will be 0 which means unknown
|
||||
but some cases one can provide real information. */
|
||||
typedef int (*_IO_showmanyc_t) __P ((_IO_FILE *));
|
||||
#define _IO_SHOWMANYC(FP) JUMP0 (__showmanyc, FP)
|
||||
|
||||
/* The 'imbue' hook is used to get information about the currently
|
||||
installed locales. */
|
||||
typedef void (*_IO_imbue_t) __P ((_IO_FILE *, void *));
|
||||
#define _IO_IMBUE(FP, LOCALE) JUMP1 (__imbue, FP, LOCALE)
|
||||
#endif
|
||||
|
||||
|
||||
#define _IO_CHAR_TYPE char /* unsigned char ? */
|
||||
#define _IO_INT_TYPE int
|
||||
@ -254,6 +267,10 @@ struct _IO_jump_t
|
||||
JUMP_FIELD(_IO_seek_t, __seek);
|
||||
JUMP_FIELD(_IO_close_t, __close);
|
||||
JUMP_FIELD(_IO_stat_t, __stat);
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
JUMP_FIELD(_IO_showmanyc_t, __showmanyc);
|
||||
JUMP_FIELD(_IO_imbue_t, __imbue);
|
||||
#endif
|
||||
#if 0
|
||||
get_column;
|
||||
set_column;
|
||||
@ -381,7 +398,12 @@ extern void _IO_file_init __P ((_IO_FILE *));
|
||||
extern _IO_FILE* _IO_file_attach __P ((_IO_FILE *, int));
|
||||
extern _IO_FILE* _IO_file_open __P ((_IO_FILE *, const char *, int, int,
|
||||
int, int));
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *,
|
||||
int));
|
||||
#else
|
||||
extern _IO_FILE* _IO_file_fopen __P ((_IO_FILE *, const char *, const char *));
|
||||
#endif
|
||||
extern _IO_ssize_t _IO_file_write __P ((_IO_FILE *, const void *,
|
||||
_IO_ssize_t));
|
||||
extern _IO_ssize_t _IO_file_read __P ((_IO_FILE *, void *, _IO_ssize_t));
|
||||
|
@ -301,6 +301,17 @@ streampos streambuf::sys_seek(streamoff, _seek_dir)
|
||||
|
||||
int streambuf::sys_close() { return 0; /* Suceess; do nothing */ }
|
||||
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
int streambuf::showmanyc()
|
||||
{
|
||||
return -1;
|
||||
}
|
||||
|
||||
void streambuf::imbue(void *)
|
||||
{
|
||||
}
|
||||
#endif
|
||||
|
||||
streammarker::streammarker(streambuf *sb)
|
||||
{
|
||||
_IO_init_marker(this, sb);
|
||||
|
@ -55,8 +55,12 @@ extern "C" {
|
||||
#endif
|
||||
|
||||
#ifndef _IO_wchar_t
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
#define _IO_wchar_t _G_wchar_t
|
||||
#else
|
||||
#define _IO_wchar_t short
|
||||
#endif
|
||||
#endif
|
||||
|
||||
extern "C++" {
|
||||
class istream; /* Work-around for a g++ name mangling bug. Fixed in 2.6. */
|
||||
@ -176,9 +180,9 @@ class ios : public _ios_fields {
|
||||
ostream* tie(ostream* val) { ostream* save=_tie; _tie=val; return save; }
|
||||
|
||||
// Methods to change the format state.
|
||||
_IO_wchar_t fill() const { return (_IO_wchar_t)_fill; }
|
||||
_IO_wchar_t fill() const { return _fill; }
|
||||
_IO_wchar_t fill(_IO_wchar_t newf)
|
||||
{_IO_wchar_t oldf = (_IO_wchar_t)_fill; _fill = (char)newf; return oldf;}
|
||||
{_IO_wchar_t oldf = _fill; _fill = newf; return oldf;}
|
||||
fmtflags flags() const { return _flags; }
|
||||
fmtflags flags(fmtflags new_val) {
|
||||
fmtflags old_val = _flags; _flags = new_val; return old_val; }
|
||||
@ -409,6 +413,10 @@ struct streambuf : public _IO_FILE { // protected??
|
||||
virtual streampos sys_seek(streamoff, _seek_dir);
|
||||
virtual int sys_close();
|
||||
virtual int sys_stat(void*); // Actually, a (struct stat*)
|
||||
#if _G_IO_IO_FILE_VERSION == 0x20001
|
||||
virtual int showmanyc();
|
||||
virtual void imbue(void *);
|
||||
#endif
|
||||
};
|
||||
|
||||
// A backupbuf is a streambuf with full backup and savepoints on reading.
|
||||
|
Loading…
Reference in New Issue
Block a user