mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-02 04:40:29 +02:00
* module/rnrs/io/ports.scm: (file-options, buffer-mode, eol-style) (error-handling-mode, make-transcoder, native-transcoder) (latin-1-codec, utf-8-codec, utf-16-codec) (call-with-bytevector-output-port, open-file-input-port) (open-file-output-port, make-custom-textual-output-port) (flush-output-port, put-char, put-datum, put-string, get-char) (get-datum, get-line, get-string-all, lookahead-char) (standard-input-port, standard-output-port, standard-error-port): Define all of these. (call-with-port): Don't use `dynamic-wind', as it is against its specification in R6RS 8.2.6. * module/rnrs.scm: Export procedures added. * module/rnrs/io/simple.scm (call-with-input-file) (call-with-output-file): Define these in terms of R6RS procedures to get correct exception behavior. Signed-off-by: Ludovic Courtès <ludo@gnu.org>
126 lines
2.9 KiB
Scheme
126 lines
2.9 KiB
Scheme
;;; simple.scm --- The R6RS simple I/O library
|
||
|
||
;; Copyright (C) 2010 Free Software Foundation, Inc.
|
||
;;
|
||
;; This library is free software; you can redistribute it and/or
|
||
;; modify it under the terms of the GNU Lesser General Public
|
||
;; License as published by the Free Software Foundation; either
|
||
;; version 3 of the License, or (at your option) any later version.
|
||
;;
|
||
;; This library 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
|
||
;; Lesser General Public License for more details.
|
||
;;
|
||
;; You should have received a copy of the GNU Lesser General Public
|
||
;; License along with this library; if not, write to the Free Software
|
||
;; Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
||
|
||
|
||
(library (rnrs io simple (6))
|
||
(export eof-object
|
||
eof-object?
|
||
|
||
call-with-input-file
|
||
call-with-output-file
|
||
|
||
input-port?
|
||
output-port?
|
||
|
||
current-input-port
|
||
current-output-port
|
||
current-error-port
|
||
|
||
with-input-from-file
|
||
with-output-to-file
|
||
|
||
open-input-file
|
||
open-output-file
|
||
|
||
close-input-port
|
||
close-output-port
|
||
|
||
read-char
|
||
peek-char
|
||
read
|
||
write-char
|
||
newline
|
||
display
|
||
write
|
||
|
||
&i/o make-i/o-error i/o-error?
|
||
&i/o-read make-i/o-read-error i/o-read-error?
|
||
&i/o-write make-i/o-write-error i/o-write-error?
|
||
|
||
&i/o-invalid-position
|
||
make-i/o-invalid-position-error
|
||
i/o-invalid-position-error?
|
||
i/o-error-position
|
||
|
||
&i/o-filename
|
||
make-i/o-filename-error
|
||
i/o-filename-error?
|
||
i/o-error-filename
|
||
|
||
&i/o-file-protection
|
||
make-i/o-file-protection-error
|
||
i/o-file-protection-error?
|
||
|
||
&i/o-file-is-read-only
|
||
make-i/o-file-is-read-only-error
|
||
i/o-file-is-read-only-error?
|
||
|
||
&i/o-file-already-exists
|
||
make-i/o-file-already-exists-error
|
||
i/o-file-already-exists-error?
|
||
|
||
&i/o-file-does-not-exist
|
||
make-i/o-file-does-not-exist-error
|
||
i/o-file-does-not-exist-error?
|
||
|
||
&i/o-port
|
||
make-i/o-port-error
|
||
i/o-port-error?
|
||
i/o-error-port)
|
||
|
||
(import (only (rnrs io ports)
|
||
call-with-port
|
||
open-file-input-port
|
||
open-file-output-port
|
||
eof-object
|
||
eof-object?
|
||
|
||
input-port?
|
||
output-port?)
|
||
(only (guile) @@
|
||
current-input-port
|
||
current-output-port
|
||
current-error-port
|
||
|
||
with-input-from-file
|
||
with-output-to-file
|
||
|
||
open-input-file
|
||
open-output-file
|
||
|
||
close-input-port
|
||
close-output-port
|
||
|
||
read-char
|
||
peek-char
|
||
read
|
||
write-char
|
||
newline
|
||
display
|
||
write)
|
||
(rnrs base (6))
|
||
(rnrs files (6)) ;for the condition types
|
||
)
|
||
|
||
(define (call-with-input-file filename proc)
|
||
(call-with-port (open-file-input-port filename) proc))
|
||
|
||
(define (call-with-output-file filename proc)
|
||
(call-with-port (open-file-output-port filename) proc))
|
||
|
||
)
|