Changes between Version 9 and Version 10 of SettingsListsCowan


Ignore:
Timestamp:
12/02/12 12:14:44 (4 years ago)
Author:
cowan
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • SettingsListsCowan

    v9 v10  
    99 `textual`:: 
    1010 
    11  If the value of this key is true, then a call to `open-input-file`, `open-output-file`, `with-input-from-file`, `with-output-from-file`, `call-with-input-file`, or `call-with-output-file` will allow textual operations and respond `#t` to `textual-port?`.  If `binary` is specified as `#t`, binary operations may also be possible.  However, textual and binary operations may not be mixed on a port unless the value of the `char-buffer` key is `none`.  The value `#f` causes the key to be ignored. 
     11 If the value of this key is true, then a call to `open-input-file`, `open-output-file`, `with-input-from-file`, `with-output-from-file`, `call-with-input-file`, or `call-with-output-file` will allow textual operations and respond `#t` to `textual-port?`.  If the `binary` key is present and has a true value also, binary operations may also be possible.  However, textual and binary operations may not be mixed on a port unless the value of the `char-buffer` key is `none` or unless a `set-port-position!` operation intervenes.  The value `#f` causes the key to be ignored. 
    1212 
    1313 `binary`:: 
    1414 
    15  If the value of this key is true, then a call to `open-input-file`, `open-output-file`, `with-input-from-file`, `with-output-from-file`, `call-with-input-file`, or `call-with-output-file` will allow binary operations and respond `#t` to `binary-port?`.  If `textual` is specified as `#t`, textual operations may also be possible.  However, textual and binary operations may not be mixed on a port unless the value of the `char-buffer` key is `none`.  It is an error to specify the value as `#f` on calls to `open-binary-input-file` or `open-binary-output-file` (which would be self-contradictory); otherwise, the value `#f` causes the key to be ignored. 
     15 If the value of this key is true, then a call to `open-input-file`, `open-output-file`, `with-input-from-file`, `with-output-from-file`, `call-with-input-file`, or `call-with-output-file` will allow binary operations and respond `#t` to `binary-port?`.  If `textual` is specified as `#t`, textual operations may also be possible as explained under `textual`.  It is an error to specify the value as `#f` on calls to `open-binary-input-file` or `open-binary-output-file` (which would be self-contradictory); otherwise, the value `#f` causes the key to be ignored. 
    1616 
    1717 `bidirectional`:: 
    1818 
    19  Specifies that the port will respond `#t` to both `input-port?` and `output-port?`, and both input and output operations are accepted.  However, it is an error to perform an input operation immediately followed by an output operation or vice versa; an intervening call to `set-port-position!` will suffice to separate them.  The input and output side of the port may be closed separately using `close-input-port` and `close-output-port`; `close-port` will close both sides. 
     19 If the value of this key is true, then the port will respond `#t` to both `input-port?` and `output-port?`, and both input and output operations are accepted.  However, on a file port it is an error to perform an input operation immediately followed by an output operation or vice versa, unless a call to `set-port-position!` intervenes.  The input and output side of the port may be closed separately using `close-input-port` and `close-output-port`; `close-port` will close both sides. 
    2020 
    2121 `append`:: 
     
    2929 `exclusive`:: 
    3030 
    31  If the value of this key is true, and the file specified by `path` exists, an error is signalled.  This is only effective if the value of the `create` key is also true.  This is POSIX and Win32 O_EXCL. 
     31 If the value of this key is true, and the file specified by `path` exists, an error that satisfies `file-error?` is signalled.  This is only effective if the value of the `create` key is also true.  This is POSIX and Win32 O_EXCL. 
    3232 
    3333 `truncate`:: 
     
    3737 `buffer`:: 
    3838 
    39  For an output port, the value of this key defines when an output operation flushes a buffer associated with the output port. For an input port, the value defines how much data will be read to satisfy read operations.  The value `none` means there is no buffering; the value `block` means there is a buffer of an implementation-dependent size.  Buffer sizes are implementation-dependent.  The default value is implementation-dependent. 
     39 For an output port, the value of this key defines when an output operation flushes a buffer associated with the output port. For an input port, the value defines how much data will be read to satisfy read operations.  The value `none` means there is no buffering; the value `block` means there is a buffer of an implementation-dependent size.  Other values MAY be supported by an implementation.  Buffer sizes are implementation-dependent.  The default value is implementation-dependent. 
    4040 
    4141 `char-buffer`:: 
     
    4545 `encoding`:: 
    4646 
    47  Specifies what character encoding to use on a textual port.  The (case insensitive) value `us-ascii` MUST be supported.  The values `iso-8859-1` and `utf-8` SHOULD be supported if the implementation contains the appropriate repertoire of characters.  Other values MAY be supported; they SHOULD appear in the [http://www.iana.org/assignments/character-sets IANA list of encodings].  The default value is implementation-dependent. 
     47 Specifies what character encoding to use on a textual port.  The (case insensitive) value `us-ascii` MUST be supported.  The values `iso-8859-1` and `utf-8` SHOULD be supported if the implementation contains the appropriate repertoire of characters.  Other values MAY be supported by an implementation; if so, they SHOULD appear in the [http://www.iana.org/assignments/character-sets IANA list of encodings].  The default value is implementation-dependent. 
    4848 
    4949 If a BOM (Byte Order Mark, U+FEFF) is present at the beginning of input on a port encoded as UTF-8, it is skipped.  A BOM is not automatically written on output.  Implementations MAY provide a way around this. 
     
    5151 `newline`:: 
    5252 
    53  Specifies how to translate newlines on a textual port.  The value `none` means that no translation is performed.  The values `cr`, `lf`, and `crlf` cause `#\newline` to be translated to CR, LF, or CR+LF respectively on output; all of them cause all of CR, LF, and CR+LF to be translated to `#\newline` on input.  Other values MAY be supported by an implementation.  The default value is implementation-dependent. 
     53 Specifies how to translate newlines on a textual port.  The value `none` means that no translation is performed.  The values `cr`, `lf`, and `crlf` cause `#\newline` to be translated to CR, LF, or CR+LF respectively on output; all of them also cause all of CR, LF, and CR+LF to be translated to `#\newline` on input.  Other values MAY be supported by an implementation.  The default value is implementation-dependent. 
    5454 
    5555 `encoding-error`:: 
    5656 
    57  Specifies what action to take if a character cannot be encoded as bytes or a sequence of bytes cannot be decoded as a character in the specified encoding of a textual port.  The value `ignore` means that the untranslatable byte or character is ignored.  The value `raise` means that an error is signalled.  The value `replace` means that an untranslatable byte is replaced by `#\xFFFD;` if that character is available in the implementation, or `#\?` if not, and an untranslatable character is replaced by the byte encoding of `#xFFFD;` if there is one, or `#\?` if not.  The default value is implementation-dependent. 
     57 Specifies what action to take if a character cannot be encoded as bytes or a sequence of bytes cannot be decoded as a character in the specified encoding of a textual port.  The value `ignore` means that the untranslatable byte or character is ignored.  The value `raise` means that an error is signalled.  The value `replace` means that an untranslatable byte is translated to `#\xFFFD;` if that character is available and can appear in strings in the implementation, or `#\?` if not, and an untranslatable character is translated to the byte encoding of `#xFFFD;` if there is one, or of `#\?` if not.  The default value is implementation-dependent. 
    5858 
    5959Implementations MAY support other keys, SHOULD warn if they detect keys or values they do not understand or implement, and MAY signal an error in such cases.