Patch title: Release 87 bulk changes
Abstract:
File: /pliant/language/stream/native.pli
Key:
    Removed line
    Added line
   
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


method nd query command stream answer -> status
  oarg_rw NativeStreamDriver nd ; arg Str command ; arg_rw S
  if os_api="linux" and command="seek"
    status := shunt (os_llseek nd:handle 0 0 addressof:(var 
    answer := string (cast result Intn)+((cast stream:stream
  eif os_api="posix" and command="seek"
    var Int pos := os_lseek nd:handle 0 os_SEEK_CUR
    status := shunt pos>=0 success failure
    answer := string pos+((cast stream:stream_read_cur Int).
# Copyright  Hubert Tonneau  hubert.tonneau@pliant.cx
#
# This program is free software; you can redistribute it and
# modify it under the terms of the GNU General Public Licens
# as published by the Free Software Foundation.
#
# This program is distributed in the hope that it will be us
# but WITHOUT ANY WARRANTY; without even the implied warrant
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See 
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public 
# version 2 along with this program; if not, write to the Fr
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 


method nd query command stream answer -> status
  oarg_rw NativeStreamDriver nd ; arg Str command ; arg_rw S
  if os_api="linux" and command="seek"
    status := shunt (os_llseek nd:handle 0 0 addressof:(var 
    answer := string (cast result Intn)+((cast stream:stream
  eif os_api="posix" and command="seek"
    var Int pos := os_lseek nd:handle 0 os_SEEK_CUR
    status := shunt pos>=0 success failure
    answer := string pos+((cast stream:stream_read_cur Int).
  eif os_api="win32" and command="seek"
    var Int pos := os_SetFilePointer nd:handle 0 (null map uInt) os_FILE_CURRENT
    status := shunt pos>=0 success failure
    answer := string pos+((cast stream:stream_read_cur Int).-.(cast stream:stream_read_stop Int))+((cast stream:stream_write_cur Int).-.(cast stream:stream_write_buf Int))
  else
    status := failure


export NativeFileSystem
  else
    status := failure


export NativeFileSystem