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

scope "/"
module "ring.pli"


type FileSystem
  void


method fs list path options flags files -> supported_flags
  oarg_rw FileSystem fs ; arg Str path options ; arg Int flags supported_flags ; arg_rw List files
  generic

method fs query filename options flags info -> status
  oarg_rw FileSystem fs ; arg Str filename options ; arg Int flags ; arg_rw FileInfo info ; arg ExtendedStatus status
  generic
  info size := undefined
  info datetime := undefined
  info status := failure
  var Int i := filename search_last "/" -1
  if i<>(-1)
    fs list (filename 0 i+1) options flags (var List files)
    var Pointer:Arrow c :> files first
    while c<>null
      check (addressof entry_type:c)=addressof:FileInfo
      var Pointer:FileInfo f :> c map FileInfo
      if f:name=filename
        info := f
        return success
      c :> files next c
  status := failure

method fs configure filename options command -> status
  oarg_rw FileSystem fs ; arg Str filename options command ; arg ExtendedStatus status
  generic
  status := failure


public
  gvar Link:FileSystem pliant_default_file_system


export FileSystem '. query' '. list' '. configure'