ExtStream.st
changeset 2999 b0e55440cf12
parent 2986 c6957cf6128f
child 3016 42466b291fae
equal deleted inserted replaced
2998:930360fb3f12 2999:b0e55440cf12
    65 # define CLEAR_ERRNO		/* nothing */
    65 # define CLEAR_ERRNO		/* nothing */
    66 #endif
    66 #endif
    67 
    67 
    68 #ifdef xxxWIN32
    68 #ifdef xxxWIN32
    69 # define NO_STDIO
    69 # define NO_STDIO
    70 # define __HANDLEVal(o) 	(HFILE)(__MKCP(o))
    70 # define __HANDLEVal(o) 	(HFILE)(__externalAddressVal(o))
    71 # define READ(f, cp, n)		_lread((f), (cp), (n))
    71 # define READ(f, cp, n)		_lread((f), (cp), (n))
    72 # define WRITE(f, cp, n)	_lwrite((f), (cp), (n))
    72 # define WRITE(f, cp, n)	_lwrite((f), (cp), (n))
    73 # define FFLUSH(fp)		/* nothing */
    73 # define FFLUSH(fp)		/* nothing */
    74 # undef STDIO_NEEDS_FSEEK
    74 # undef STDIO_NEEDS_FSEEK
    75 # define FILEPOINTER		HFILE
    75 # define FILEPOINTER		HFILE
  1431     if (__isSmallInteger(anInteger) &&
  1431     if (__isSmallInteger(anInteger) &&
  1432 	__isString(openMode) &&
  1432 	__isString(openMode) &&
  1433 	(f = fdopen(__intVal(anInteger), __stringVal(openMode))) != 0
  1433 	(f = fdopen(__intVal(anInteger), __stringVal(openMode))) != 0
  1434     ) {
  1434     ) {
  1435 	__PROTECT__(self);
  1435 	__PROTECT__(self);
  1436 	fp = __MKOBJ(f); 
  1436 	fp = __MKEXTERNALADDRESS(f); 
  1437 	__UNPROTECT__(self);
  1437 	__UNPROTECT__(self);
  1438 	__INST(filePointer) = fp; __STORE(self, fp);
  1438 	__INST(filePointer) = fp; __STORE(self, fp);
  1439 	RETURN (self);
  1439 	RETURN (self);
  1440     }
  1440     }
  1441 #endif /* not WIN32 */
  1441 #endif /* not WIN32 */
  2752 	f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
  2752 	f = (FILEPOINTER) fdopen(__intVal(aFileDescriptor), (char *)__stringVal(openmode));
  2753 	if (f == NULL) {
  2753 	if (f == NULL) {
  2754 	    __INST(lastErrorNumber) = __MKSMALLINT(errno);
  2754 	    __INST(lastErrorNumber) = __MKSMALLINT(errno);
  2755 	    __INST(position) = nil;
  2755 	    __INST(position) = nil;
  2756 	} else {
  2756 	} else {
  2757 	    __INST(filePointer) = fp = __MKOBJ(f); __STORE(self, fp);
  2757 	    __INST(filePointer) = fp = __MKEXTERNALADDRESS(f); __STORE(self, fp);
  2758 	    __INST(position) = __MKSMALLINT(1);
  2758 	    __INST(position) = __MKSMALLINT(1);
  2759 	    retVal = self;
  2759 	    retVal = self;
  2760 	}
  2760 	}
  2761     }
  2761     }
  2762 %}.
  2762 %}.
  2791         } while ((f == NULL) && (errno == EINTR));
  2791         } while ((f == NULL) && (errno == EINTR));
  2792         __END_INTERRUPTABLE__
  2792         __END_INTERRUPTABLE__
  2793         if (f == NULL) {
  2793         if (f == NULL) {
  2794             __INST(lastErrorNumber) = __MKSMALLINT(errno);
  2794             __INST(lastErrorNumber) = __MKSMALLINT(errno);
  2795         } else {
  2795         } else {
  2796             __INST(filePointer) = fp = __MKOBJ((INT)f); __STORE(self, fp);
  2796             __INST(filePointer) = fp = __MKEXTERNALADDRESS((INT)f); __STORE(self, fp);
  2797             ok = true;
  2797             ok = true;
  2798         }
  2798         }
  2799     }
  2799     }
  2800 %}.
  2800 %}.
  2801     ok ifFalse:[
  2801     ok ifFalse:[
  4167 ! !
  4167 ! !
  4168 
  4168 
  4169 !ExternalStream class methodsFor:'documentation'!
  4169 !ExternalStream class methodsFor:'documentation'!
  4170 
  4170 
  4171 version
  4171 version
  4172     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.145 1997-09-25 12:58:16 stefan Exp $'
  4172     ^ '$Header: /cvs/stx/stx/libbasic/Attic/ExtStream.st,v 1.146 1997-10-06 13:28:01 cg Exp $'
  4173 ! !
  4173 ! !
  4174 ExternalStream initialize!
  4174 ExternalStream initialize!