home *** CD-ROM | disk | FTP | other *** search
- /*[]------------------------------------------------------------[]*/
- /*| |*/
- /*| srbinit.cpp |*/
- /*| |*/
- /*| Class strstreambuf |*/
- /*| void strstreambuf::init( signed char*, int, signed char* )|*/
- /*| |*/
- /*[]------------------------------------------------------------[]*/
-
- /*
- * C/C++ Run Time Library - Version 5.0
- *
- * Copyright (c) 1990, 1992 by Borland International
- * All Rights Reserved.
- *
- */
-
- #include <ioconfig.h>
- #include <strstrea.h>
- #include <limits.h>
- #include <string.h>
-
- /*
- If n is negative, the provided buffer is supposed to be unlimited.
- As a practical way to handle this, the buffer is arbitrarily defined
- to be size INT_MAX. (It really should be the max value supported by
- type size_t, but AT&T defined all sizes to be int.)
- */
-
- void strstreambuf::init( signed char* ptr, int n, signed char* pstart )
- {
- ssbflags = 0;
- if( n == 0 )
- n = strlen((char*)ptr);
- else if( n < 0 )
- {
- n = INT_MAX;
- ssbflags |= unlimited; // distinguish it from merely large
- }
-
- setb((char*)ptr, (char*)ptr+n, 0);
- if( pstart )
- {
- setp((char*)pstart, ebuf());
- setg((char*)ptr, (char*)ptr, (pstart > ptr+n) ?
- (char *)ptr+n: (char*)pstart);
- }
- else
- setg((char*)ptr, (char*)ptr, (char*)ebuf());
-
- allocf = 0;
- freef = 0;
- }
-
-
-