This repository has been archived on 2024-12-16. You can view files and clone it, but cannot push or open issues or pull requests.
CodeBlocksPortable/dm/include/STDIOSTR.H

112 lines
2.3 KiB
C++

#if __SC__ || __RCC__
#pragma once
#endif
#ifndef _STDSTREAM_H_
#define _STDSTREAM_H_
#ifndef __cplusplus
#error Use C++ compiler for stdiostr.h
#endif
/*
* stdiostream.h -- class stdiobuf and stdiostream declarations
*
* $Id: stdiostr.h,v 1.1.1.1 1997/01/02 19:16:44 smarx Exp $
*
****************************************************************************
*
* Rogue Wave Software, Inc.
* P.O. Box 2328
* Corvallis, OR 97339
* Voice: (503) 754-3010 FAX: (503) 757-6650
*
* Copyright (C) 1991, 1993, 1994.
* This software is subject to copyright protection under the laws of
* the United States and other countries.
* ALL RIGHTS RESERVED
*
***************************************************************************
*
* $Log: stdiostr.h,v $
* Revision 1.1.1.1 1997/01/02 19:16:44 smarx
* cafe12
*
// *
// * 5 2/26/96 8:05a Smarx
*
* Rev 1.3 24 May 1995 15:42:16 Andrew
* Fixed problem where structs/classes were not in pragma pack(__DEFALIGN)
*
* Rev 1.2 08 Oct 1994 14:11:56 BUSHNELL
* Added pragma once for faster compilations
*
* Rev 1.1 02 Jun 1994 21:35:44 bushnell
* added ifdef so that MS RC will not include header twice
*
* Rev 1.0 28 Apr 1994 19:17:46 thompson
* Initial revision.
*
* Rev 1.0 20 Apr 1994 17:46:14 thompson
* Initial revision.
* Revision 1.1 1994/04/14 16:58:12 vriezen
* Initial revision
*
* Revision 1.2 1994/04/14 00:50:17 vriezen
* Updated copywrite, added ID and LOG and changed comments to indicate .cpp filename
*
*
*
*/
/*
NOTE: These are inefficient and obsolete. Use the standard classes
and functions in <fstream.h> instead.
*/
#include <iostream.h>
#include <stdio.h>
#pragma pack(__DEFALIGN)
class stdiobuf : public streambuf {
public:
stdiobuf(FILE*);
FILE* stdiofile();
~stdiobuf();
virtual int overflow(int=EOF);
virtual int pbackfail(int);
virtual int sync();
virtual streampos seekoff(streamoff, ios::seek_dir, int);
virtual int underflow();
private:
FILE* sio;
char lahead[2];
};
inline FILE* stdiobuf::stdiofile() { return sio; }
class stdiostream : public ios {
public:
stdiostream(FILE*);
~stdiostream();
stdiobuf* rdbuf();
private:
stdiobuf buf;
};
inline stdiobuf* stdiostream::rdbuf() { return &buf; }
#pragma pack()
#endif /* _STDSTREAM_H_ */