ExternalStream.st
changeset 24646 7e6d23d0f41f
parent 24640 76d48838aca5
child 24654 ed1f7d888617
equal deleted inserted replaced
24645:296d85814087 24646:7e6d23d0f41f
  6330 
  6330 
  6331     if ((handle != STObject.Nil)
  6331     if ((handle != STObject.Nil)
  6332      && (aCharacter.isSTCharacter())) {
  6332      && (aCharacter.isSTCharacter())) {
  6333         handle.writeChar( aCharacter );
  6333         handle.writeChar( aCharacter );
  6334         self.instVarAt_put(I_position, STObject.Nil);
  6334         self.instVarAt_put(I_position, STObject.Nil);
  6335         return __c__._RETURN_self();
  6335         return __c__._RETURN(aCharacter);
  6336     }
  6336     }
  6337 #else
  6337 #else
  6338     __INST(lastErrorNumber) = nil;
  6338     __INST(lastErrorNumber) = nil;
  6339     if ((__INST(handleType) == nil)
  6339     if ((__INST(handleType) == nil)
  6340      || (__INST(handleType) == @symbol(filePointer))
  6340      || (__INST(handleType) == @symbol(filePointer))
  6402 
  6402 
  6403                                 t = __MKINT(np); __INST(position) = t; __STORE(self, t);
  6403                                 t = __MKINT(np); __INST(position) = t; __STORE(self, t);
  6404                             } else {
  6404                             } else {
  6405                                 __INST(position) = nil; /* i.e. do not know */
  6405                                 __INST(position) = nil; /* i.e. do not know */
  6406                             }
  6406                             }
  6407                             RETURN ( self );
  6407                             RETURN ( aCharacter );
  6408                         }
  6408                         }
  6409 # ifdef __win32__
  6409 # ifdef __win32__
  6410                         __threadErrno = __WIN32_ERR(GetLastError());
  6410                         __threadErrno = __WIN32_ERR(GetLastError());
  6411 # endif
  6411 # endif
  6412                         error = __mkSmallInteger(__threadErrno);
  6412                         error = __mkSmallInteger(__threadErrno);
  6425 #endif /* not SCHTEAM */
  6425 #endif /* not SCHTEAM */
  6426 %}.
  6426 %}.
  6427     error notNil ifTrue:[
  6427     error notNil ifTrue:[
  6428         lastErrorNumber := error.
  6428         lastErrorNumber := error.
  6429         self writeError:error.
  6429         self writeError:error.
  6430         ^ self
  6430         ^ aCharacter
  6431     ].
  6431     ].
  6432     handle isNil ifTrue:[self errorNotOpen. ^ self].
  6432     handle isNil ifTrue:[self errorNotOpen. ^ self].
  6433     (mode == #readonly) ifTrue:[self errorReadOnly. ^ self].
  6433     (mode == #readonly) ifTrue:[self errorReadOnly. ^ self].
  6434     binary == true ifTrue:[
  6434     binary == true ifTrue:[
  6435         aCharacter isInteger ifFalse:[
  6435         aCharacter isInteger ifFalse:[
  6436             self argumentMustBeInteger.
  6436             self argumentMustBeInteger.
  6437             ^ self.
  6437             ^ aCharacter.
  6438         ].
  6438         ].
  6439     ] ifFalse:[
  6439     ] ifFalse:[
  6440         (aCharacter isCharacter not
  6440         (aCharacter isCharacter not
  6441          or:[aCharacter codePoint > 16rFF]) ifTrue:[
  6441          or:[aCharacter codePoint > 16rFF]) ifTrue:[
  6442             self argumentMustBeCharacter.
  6442             self argumentMustBeCharacter.
  6443             ^ self.
  6443             ^ aCharacter.
  6444         ].
  6444         ].
  6445     ].
  6445     ].
  6446     "/ migration support
  6446     "/ migration support
  6447     self
  6447     self
  6448         nextPutByte:aCharacter asInteger
  6448         nextPutByte:aCharacter asInteger
  6449         toFile:handle
  6449         toFile:handle.
       
  6450     ^ aCharacter
  6450 
  6451 
  6451     "Modified: / 22-11-2018 / 14:47:13 / Stefan Vogel"
  6452     "Modified: / 22-11-2018 / 14:47:13 / Stefan Vogel"
  6452 !
  6453 !
  6453 
  6454 
  6454 nextPutAll:aCollection
  6455 nextPutAll:aCollection