|
|
1.1 ! root 1: /*ident "@(#)ctrans:lib/stream/cstreams.c 1.1.4.1" */ ! 2: /************************************************************************** ! 3: Copyright (c) 1984 AT&T ! 4: All Rights Reserved ! 5: ! 6: THIS IS UNPUBLISHED PROPRIETARY SOURCE CODE OF AT&T ! 7: ! 8: The copyright notice above does not evidence any ! 9: actual or intended publication of such source code. ! 10: ! 11: cstreams.c: ! 12: ! 13: *****************************************************************************/ ! 14: ! 15: #include <iostream.h> ! 16: #include <fstream.h> ! 17: #include <new.h> ! 18: #include "streamdefs.h" ! 19: ! 20: int Iostream_init::stdstatus = 0 ; ! 21: int Iostream_init::initcount = 0 ; ! 22: ! 23: istream_withassign cin ; ! 24: ostream_withassign cout ; ! 25: ostream_withassign cerr ; ! 26: ostream_withassign clog ; ! 27: ! 28: // The value of Iostream_init::stdstatus describes the ! 29: // The std stream variables ! 30: ! 31: // 0 means istream::stdin, ostream::stdout, ostream::stderr, and ! 32: // ostream::stdlog are unitialized ! 33: // 1 means they are initialized to filebufs ! 34: // 2 means they are initialized to stdiobufs ! 35: ! 36: Iostream_init::Iostream_init() ! 37: { ! 38: ++initcount ; ! 39: if ( initcount > 1 ) return ; ! 40: ! 41: // Be careful. Initialization occurs before constructors ! 42: // of the standard streams are called. ! 43: new (&cin) istream_withassign ; ! 44: new (&cout) ostream_withassign ; ! 45: new (&cerr) ostream_withassign ; ! 46: new (&clog) ostream_withassign ; ! 47: cin = new filebuf(0) ; ! 48: cout = new filebuf(1) ; ! 49: cerr = new filebuf(2) ; ! 50: clog = new filebuf(2) ; ! 51: ! 52: cin.setf(~0L,ios::skipws) ; ! 53: cerr.setf(~0L,ios::unitbuf) ; ! 54: cin.tie(&cout) ; ! 55: cerr.tie(&cout) ; ! 56: clog.tie(&cout) ; ! 57: stdstatus = 1 ; ! 58: } ! 59: ! 60: Iostream_init::~Iostream_init() ! 61: { ! 62: --initcount ; ! 63: if ( initcount > 0 ) return ; ! 64: cout.flush() ; ! 65: cerr.flush() ; ! 66: clog.flush() ; ! 67: }
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.