diff --git a/scheme/ikarus.io.ss b/scheme/ikarus.io.ss index 96ceee8..f86d3e3 100644 --- a/scheme/ikarus.io.ss +++ b/scheme/ikarus.io.ss @@ -39,7 +39,7 @@ port-position port-has-port-position? set-port-position! port-has-set-port-position!? call-with-port - flush-output-port + flush-output-port put-u8 put-bytevector put-char write-char put-string @@ -58,6 +58,7 @@ console-input-port newline port-mode set-port-mode! + output-port-buffer-mode reset-input-port! reset-output-port! port-id @@ -117,6 +118,7 @@ console-error-port newline port-mode set-port-mode! + output-port-buffer-mode reset-input-port! reset-output-port! port-id @@ -1587,6 +1589,16 @@ (open-output-file-handle filename file-options who) filename buffer-size transcoder #t who))])) + (define (output-port-buffer-mode p) + (unless (output-port? p) + (die 'output-port-buffer-mode "not an output port" p)) + (let ([buff ($port-buffer p)]) + (if (if (string? buff) + (fx= 1 (string-length buff)) + (fx= 1 (bytevector-length buff))) + 'none + 'block))) + (define (open-output-file filename) (unless (string? filename) (die 'open-output-file "invalid filename" filename)) diff --git a/scheme/ikarus.not-yet-implemented.ss b/scheme/ikarus.not-yet-implemented.ss index 446b425..7b093f1 100644 --- a/scheme/ikarus.not-yet-implemented.ss +++ b/scheme/ikarus.not-yet-implemented.ss @@ -5,7 +5,7 @@ bitwise-rotate-bit-field fxreverse-bit-field make-custom-binary-input/output-port make-custom-textual-input/output-port - open-file-input/output-port output-port-buffer-mode + open-file-input/output-port equal-hash) (import (except (ikarus) @@ -13,7 +13,7 @@ bitwise-rotate-bit-field fxreverse-bit-field make-custom-binary-input/output-port make-custom-textual-input/output-port - open-file-input/output-port output-port-buffer-mode + open-file-input/output-port equal-hash)) (define-syntax not-yet @@ -29,11 +29,11 @@ (condition (make-error) (make-who-condition 'ikarus) - (make-message-condition "primitive not supported yet") + (make-message-condition "primitive not supported") (make-message-condition - "please file a bug report to help us prioritize our goals") + "Please visit the Ikarus FAQs page for more information") (make-url-condition - "https://bugs.launchpad.net/ikarus/+filebug") + "https://answers.launchpad.net/ikarus/+faqs") (make-irritants-condition (list op))))) (define (x* . args) (bug 'x*)) ...)])) @@ -48,7 +48,6 @@ make-custom-binary-input/output-port make-custom-textual-input/output-port open-file-input/output-port - output-port-buffer-mode )) diff --git a/scheme/last-revision b/scheme/last-revision index 36dd03b..f344618 100644 --- a/scheme/last-revision +++ b/scheme/last-revision @@ -1 +1 @@ -1710 +1711