diff options
Diffstat (limited to 'libguile/ports.c')
-rw-r--r-- | libguile/ports.c | 230 |
1 files changed, 113 insertions, 117 deletions
diff --git a/libguile/ports.c b/libguile/ports.c index ba6be67c3..9db949e4a 100644 --- a/libguile/ports.c +++ b/libguile/ports.c @@ -358,7 +358,7 @@ scm_set_port_get_natural_buffer_sizes static void scm_i_clear_pending_eof (SCM port) { - scm_port_buffer_set_has_eof_p (SCM_PORT_GET_INTERNAL (port)->read_buf, + scm_port_buffer_set_has_eof_p (SCM_PORT (port)->read_buf, SCM_BOOL_F); } @@ -369,7 +369,7 @@ SCM_DEFINE (scm_i_port_property, "%port-property", 2, 0, 0, { SCM_VALIDATE_OPPORT (1, port); - return scm_assq_ref (SCM_PORT_GET_INTERNAL (port)->alist, key); + return scm_assq_ref (SCM_PORT (port)->alist, key); } #undef FUNC_NAME @@ -378,12 +378,12 @@ SCM_DEFINE (scm_i_set_port_property_x, "%set-port-property!", 3, 0, 0, "Set the property of @var{port} associated with @var{key} to @var{value}.") #define FUNC_NAME s_scm_i_set_port_property_x { - scm_t_port_internal *pti; + scm_t_port *pt; SCM_VALIDATE_OPPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - pti->alist = scm_assq_set_x (pti->alist, key, value); + pt = SCM_PORT (port); + pt->alist = scm_assq_set_x (pt->alist, key, value); return SCM_UNSPECIFIED; } @@ -683,7 +683,7 @@ static const size_t default_buffer_size = 1024; static void initialize_port_buffers (SCM port) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); + scm_t_port *pt = SCM_PORT (port); scm_t_ptob_descriptor *ptob = SCM_PORT_DESCRIPTOR (port); size_t read_buf_size, write_buf_size; @@ -705,9 +705,9 @@ initialize_port_buffers (SCM port) if (!SCM_OUTPUT_PORT_P (port)) write_buf_size = 1; - pti->read_buffering = read_buf_size; - pti->read_buf = scm_c_make_port_buffer (read_buf_size); - pti->write_buf = scm_c_make_port_buffer (write_buf_size); + pt->read_buffering = read_buf_size; + pt->read_buf = scm_c_make_port_buffer (read_buf_size); + pt->write_buf = scm_c_make_port_buffer (write_buf_size); } SCM @@ -845,7 +845,7 @@ SCM_DEFINE (scm_close_port, "close-port", 1, 0, 0, "descriptors.") #define FUNC_NAME s_scm_close_port { - scm_t_port_internal *pti; + scm_t_port *pt; port = SCM_COERCE_OUTPORT (port); @@ -857,7 +857,7 @@ SCM_DEFINE (scm_close_port, "close-port", 1, 0, 0, if (SCM_OUTPUT_PORT_P (port)) scm_flush (port); - pti = SCM_PORT_GET_INTERNAL (port); + pt = SCM_PORT (port); SCM_CLR_PORT_OPEN_FLAG (port); if (SCM_PORT_DESCRIPTOR (port)->flags & SCM_PORT_TYPE_NEEDS_CLOSE_ON_GC) @@ -868,12 +868,12 @@ SCM_DEFINE (scm_close_port, "close-port", 1, 0, 0, should be resilient to non-local exits. */ SCM_PORT_DESCRIPTOR (port)->close (port); - if (pti->iconv_descriptors) + if (pt->iconv_descriptors) { /* If we don't get here, the iconv_descriptors finalizer will clean up. */ - close_iconv_descriptors (pti->iconv_descriptors); - pti->iconv_descriptors = NULL; + close_iconv_descriptors (pt->iconv_descriptors); + pt->iconv_descriptors = NULL; } return SCM_BOOL_T; @@ -1122,8 +1122,8 @@ close_iconv_descriptors (scm_t_iconv_descriptors *id) static void prepare_iconv_descriptors (SCM port, SCM encoding) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); - scm_t_iconv_descriptors *desc = pti->iconv_descriptors; + scm_t_port *pt = SCM_PORT (port); + scm_t_iconv_descriptors *desc = pt->iconv_descriptors; /* If the specified encoding is UTF-16 or UTF-32, then default to big-endian byte order. This fallback isn't necessary if you read @@ -1137,7 +1137,7 @@ prepare_iconv_descriptors (SCM port, SCM encoding) if (desc && scm_is_eq (desc->precise_encoding, encoding)) return; - pti->iconv_descriptors = open_iconv_descriptors + pt->iconv_descriptors = open_iconv_descriptors (encoding, SCM_INPUT_PORT_P (port), SCM_OUTPUT_PORT_P (port)); } @@ -1151,13 +1151,13 @@ SCM_DEFINE (scm_specialize_port_encoding_x, SCM_VALIDATE_PORT (1, port); SCM_VALIDATE_SYMBOL (2, encoding); - if (scm_is_eq (SCM_PTAB_ENTRY (port)->encoding, sym_UTF_16)) + if (scm_is_eq (SCM_PORT (port)->encoding, sym_UTF_16)) { if (!scm_is_eq (encoding, sym_UTF_16LE) && !scm_is_eq (encoding, sym_UTF_16BE)) SCM_OUT_OF_RANGE (2, encoding); } - else if (scm_is_eq (SCM_PTAB_ENTRY (port)->encoding, sym_UTF_32)) + else if (scm_is_eq (SCM_PORT (port)->encoding, sym_UTF_32)) { if (!scm_is_eq (encoding, sym_UTF_32LE) && !scm_is_eq (encoding, sym_UTF_32BE)) @@ -1175,12 +1175,12 @@ SCM_DEFINE (scm_specialize_port_encoding_x, scm_t_iconv_descriptors * scm_i_port_iconv_descriptors (SCM port) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); + scm_t_port *pt = SCM_PORT (port); - if (!pti->iconv_descriptors) - prepare_iconv_descriptors (port, SCM_PTAB_ENTRY (port)->encoding); + if (!pt->iconv_descriptors) + prepare_iconv_descriptors (port, pt->encoding); - return pti->iconv_descriptors; + return pt->iconv_descriptors; } /* The name of the encoding is itself encoded in ASCII. */ @@ -1188,24 +1188,22 @@ void scm_i_set_port_encoding_x (SCM port, const char *encoding) { scm_t_port *pt; - scm_t_port_internal *pti; scm_t_iconv_descriptors *prev; /* Set the character encoding for this port. */ - pt = SCM_PTAB_ENTRY (port); - pti = SCM_PORT_GET_INTERNAL (port); - prev = pti->iconv_descriptors; + pt = SCM_PORT (port); + prev = pt->iconv_descriptors; /* In order to handle cases where the encoding changes mid-stream (e.g. within an HTTP stream, or within a file that is composed of segments with different encodings), we consider this to be "stream start" for purposes of BOM handling, regardless of our actual file position. */ - pti->at_stream_start_for_bom_read = 1; - pti->at_stream_start_for_bom_write = 1; + pt->at_stream_start_for_bom_read = 1; + pt->at_stream_start_for_bom_write = 1; pt->encoding = canonicalize_encoding (encoding); - pti->iconv_descriptors = NULL; + pt->iconv_descriptors = NULL; if (prev) close_iconv_descriptors (prev); } @@ -1218,7 +1216,7 @@ SCM_DEFINE (scm_sys_port_encoding, "%port-encoding", 1, 0, 0, { SCM_VALIDATE_PORT (1, port); - return SCM_PTAB_ENTRY (port)->encoding; + return SCM_PORT (port)->encoding; } #undef FUNC_NAME @@ -1283,7 +1281,7 @@ SCM_DEFINE (scm_port_conversion_strategy, "port-conversion-strategy", return scm_i_default_port_conversion_strategy (); SCM_VALIDATE_OPPORT (1, port); - return SCM_PTAB_ENTRY (port)->conversion_strategy; + return SCM_PORT (port)->conversion_strategy; } #undef FUNC_NAME @@ -1317,7 +1315,7 @@ SCM_DEFINE (scm_set_port_conversion_strategy_x, "set-port-conversion-strategy!", else { SCM_VALIDATE_OPPORT (1, port); - SCM_PTAB_ENTRY (port)->conversion_strategy = sym; + SCM_PORT (port)->conversion_strategy = sym; } return SCM_UNSPECIFIED; @@ -1332,7 +1330,7 @@ SCM_DEFINE (scm_set_port_conversion_strategy_x, "set-port-conversion-strategy!", static int get_byte_or_eof (SCM port) { - SCM buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + SCM buf = SCM_PORT (port)->read_buf; SCM buf_bv, buf_cur, buf_end; size_t cur; @@ -1373,7 +1371,7 @@ get_byte_or_eof (SCM port) static int peek_byte_or_eof (SCM port) { - SCM buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + SCM buf = SCM_PORT (port)->read_buf; SCM buf_bv, buf_cur, buf_end; size_t cur; @@ -1450,16 +1448,16 @@ scm_c_read_bytes (SCM port, SCM dst, size_t start, size_t count) #define FUNC_NAME "scm_c_read_bytes" { size_t to_read = count; - scm_t_port_internal *pti; + scm_t_port *pt; SCM read_buf; scm_t_uint8 *dst_ptr = (scm_t_uint8 *) SCM_BYTEVECTOR_CONTENTS (dst) + start; SCM_VALIDATE_OPINPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - read_buf = pti->read_buf; + pt = SCM_PORT (port); + read_buf = pt->read_buf; - if (pti->rw_random) + if (pt->rw_random) scm_flush (port); port_clear_stream_start_for_bom_read (port, BOM_IO_BINARY); @@ -1478,7 +1476,7 @@ scm_c_read_bytes (SCM port, SCM dst, size_t start, size_t count) /* If the read is smaller than the buffering on the read side of this port, then go through the buffer. Otherwise fill our buffer directly. */ - if (to_read < pti->read_buffering) + if (to_read < pt->read_buffering) { read_buf = scm_fill_input (port, 0); did_read = scm_port_buffer_take (read_buf, dst_ptr, to_read); @@ -1515,16 +1513,16 @@ scm_c_read (SCM port, void *buffer, size_t size) #define FUNC_NAME "scm_c_read" { size_t copied = 0; - scm_t_port_internal *pti; + scm_t_port *pt; SCM read_buf; scm_t_uint8 *dst = buffer; SCM_VALIDATE_OPINPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - read_buf = pti->read_buf; + pt = SCM_PORT (port); + read_buf = pt->read_buf; - if (pti->rw_random) + if (pt->rw_random) scm_flush (port); while (copied < size) @@ -1689,7 +1687,7 @@ peek_utf8_codepoint (SCM port, size_t *len) DECODING_ERROR (1); decoding_error: - if (scm_is_eq (SCM_PTAB_ENTRY (port)->conversion_strategy, sym_substitute)) + if (scm_is_eq (SCM_PORT (port)->conversion_strategy, sym_substitute)) /* *len already set. */ return '?'; @@ -1747,7 +1745,7 @@ SCM_DEFINE (scm_port_decode_char, "port-decode-char", 4, 0, 0, /* The input byte sequence did not form a complete character. Read another byte and try again. */ return SCM_BOOL_F; - else if (scm_is_eq (SCM_PTAB_ENTRY (port)->conversion_strategy, + else if (scm_is_eq (SCM_PORT (port)->conversion_strategy, sym_substitute)) return SCM_MAKE_CHAR ('?'); else @@ -1798,7 +1796,7 @@ peek_iconv_codepoint (SCM port, size_t *len) } /* EOF found in the middle of a multibyte character. */ - if (scm_is_eq (SCM_PTAB_ENTRY (port)->conversion_strategy, + if (scm_is_eq (SCM_PORT (port)->conversion_strategy, sym_substitute)) return '?'; @@ -1825,7 +1823,7 @@ peek_iconv_codepoint (SCM port, size_t *len) static SCM_C_INLINE scm_t_wchar peek_codepoint (SCM port, size_t *len) { - SCM encoding = SCM_PTAB_ENTRY (port)->encoding; + SCM encoding = SCM_PORT (port)->encoding; if (scm_is_eq (encoding, sym_UTF_8)) return peek_utf8_codepoint (port, len); @@ -1844,7 +1842,7 @@ scm_getc (SCM port) scm_t_wchar codepoint; codepoint = peek_codepoint (port, &len); - scm_port_buffer_did_take (SCM_PORT_GET_INTERNAL (port)->read_buf, len); + scm_port_buffer_did_take (SCM_PORT (port)->read_buf, len); if (codepoint == EOF) scm_i_clear_pending_eof (port); update_port_lf (codepoint, port); @@ -1886,10 +1884,10 @@ void scm_unget_bytes (const scm_t_uint8 *buf, size_t len, SCM port) #define FUNC_NAME "scm_unget_bytes" { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); - SCM read_buf = pti->read_buf; + scm_t_port *pt = SCM_PORT (port); + SCM read_buf = pt->read_buf; - if (pti->rw_random) + if (pt->rw_random) scm_flush (port); if (scm_port_buffer_can_putback (read_buf) < len) @@ -1934,7 +1932,7 @@ void scm_ungetc (scm_t_wchar c, SCM port) #define FUNC_NAME "scm_ungetc" { - scm_t_port *pt = SCM_PTAB_ENTRY (port); + scm_t_port *pt = SCM_PORT (port); char *result; char result_buf[10]; size_t len; @@ -2108,7 +2106,7 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0, #define FUNC_NAME s_scm_setvbuf { long csize; - scm_t_port_internal *pti; + scm_t_port *pt; scm_t_ptob_descriptor *ptob; scm_t_bits tag_word; size_t read_buf_size, write_buf_size; @@ -2117,7 +2115,7 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0, port = SCM_COERCE_OUTPORT (port); SCM_VALIDATE_OPENPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); + pt = SCM_PORT (port); ptob = SCM_PORT_DESCRIPTOR (port); tag_word = SCM_CELL_WORD_0 (port) & ~(SCM_BUF0 | SCM_BUFLINE); @@ -2161,12 +2159,12 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0, if (SCM_OUTPUT_PORT_P (port)) scm_flush (port); - saved_read_buf = pti->read_buf; + saved_read_buf = pt->read_buf; SCM_SET_CELL_WORD_0 (port, tag_word); - pti->read_buffering = read_buf_size; - pti->read_buf = scm_c_make_port_buffer (read_buf_size); - pti->write_buf = scm_c_make_port_buffer (write_buf_size); + pt->read_buffering = read_buf_size; + pt->read_buf = scm_c_make_port_buffer (read_buf_size); + pt->write_buf = scm_c_make_port_buffer (write_buf_size); if (saved_read_buf) scm_unget_bytes (scm_port_buffer_take_pointer (saved_read_buf), @@ -2174,7 +2172,7 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0, port); if (saved_read_buf) - scm_port_buffer_set_has_eof_p (pti->read_buf, + scm_port_buffer_set_has_eof_p (pt->read_buf, scm_port_buffer_has_eof_p (saved_read_buf)); return SCM_UNSPECIFIED; @@ -2187,7 +2185,7 @@ SCM_DEFINE (scm_setvbuf, "setvbuf", 2, 1, 0, size_t scm_take_from_input_buffers (SCM port, char *dest, size_t read_len) { - SCM read_buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + SCM read_buf = SCM_PORT (port)->read_buf; return scm_port_buffer_take (read_buf, (scm_t_uint8 *) dest, read_len); } @@ -2213,7 +2211,7 @@ SCM_DEFINE (scm_drain_input, "drain-input", 1, 0, 0, long count; SCM_VALIDATE_OPINPORT (1, port); - read_buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + read_buf = SCM_PORT (port)->read_buf; count = scm_port_buffer_can_take (read_buf); if (count) @@ -2235,7 +2233,7 @@ scm_end_input (SCM port) SCM buf; size_t discarded; - buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + buf = SCM_PORT (port)->read_buf; discarded = scm_port_buffer_take (buf, NULL, (size_t) -1); if (discarded != 0) @@ -2269,7 +2267,7 @@ static void scm_i_write (SCM port, SCM buf); void scm_flush (SCM port) { - SCM buf = SCM_PORT_GET_INTERNAL (port)->write_buf; + SCM buf = SCM_PORT (port)->write_buf; if (scm_port_buffer_can_take (buf)) scm_i_write (port, buf); } @@ -2303,16 +2301,15 @@ maybe_consume_bom (SCM port, const unsigned char *bom, size_t bom_len) static size_t port_clear_stream_start_for_bom_read (SCM port, enum bom_io_mode io_mode) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); - scm_t_port *pt = SCM_PTAB_ENTRY (port); + scm_t_port *pt = SCM_PORT (port); - if (!pti->at_stream_start_for_bom_read) + if (!pt->at_stream_start_for_bom_read) return 0; /* Maybe slurp off a byte-order marker. */ - pti->at_stream_start_for_bom_read = 0; - if (pti->rw_random) - pti->at_stream_start_for_bom_write = 0; + pt->at_stream_start_for_bom_read = 0; + if (pt->rw_random) + pt->at_stream_start_for_bom_write = 0; if (io_mode == BOM_IO_BINARY) return 0; @@ -2365,18 +2362,18 @@ SCM_DEFINE (scm_port_clear_stream_start_for_bom_read, "") #define FUNC_NAME s_scm_port_clear_stream_start_for_bom_read { - scm_t_port_internal *pti; + scm_t_port *pt; SCM_VALIDATE_PORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - if (!pti->at_stream_start_for_bom_read) + pt = SCM_PORT (port); + if (!pt->at_stream_start_for_bom_read) return SCM_BOOL_F; /* Maybe slurp off a byte-order marker. */ - pti->at_stream_start_for_bom_read = 0; - if (pti->rw_random) - pti->at_stream_start_for_bom_write = 0; + pt->at_stream_start_for_bom_read = 0; + if (pt->rw_random) + pt->at_stream_start_for_bom_write = 0; return SCM_BOOL_T; } @@ -2385,16 +2382,15 @@ SCM_DEFINE (scm_port_clear_stream_start_for_bom_read, static void port_clear_stream_start_for_bom_write (SCM port, enum bom_io_mode io_mode) { - scm_t_port *pt = SCM_PTAB_ENTRY (port); - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); + scm_t_port *pt = SCM_PORT (port); - if (!pti->at_stream_start_for_bom_write) + if (!pt->at_stream_start_for_bom_write) return; /* Record that we're no longer at stream start. */ - pti->at_stream_start_for_bom_write = 0; - if (pti->rw_random) - pti->at_stream_start_for_bom_read = 0; + pt->at_stream_start_for_bom_write = 0; + if (pt->rw_random) + pt->at_stream_start_for_bom_read = 0; /* Write a BOM if appropriate. */ if (scm_is_eq (pt->encoding, sym_UTF_16)) @@ -2418,7 +2414,7 @@ port_clear_stream_start_for_bom_write (SCM port, enum bom_io_mode io_mode) SCM scm_fill_input (SCM port, size_t minimum_size) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (port); + scm_t_port *pt = SCM_PORT (port); SCM read_buf; size_t buffered; @@ -2426,14 +2422,14 @@ scm_fill_input (SCM port, size_t minimum_size) minimum_size = 1; port_clear_stream_start_for_bom_read (port, BOM_IO_TEXT); - read_buf = pti->read_buf; + read_buf = pt->read_buf; buffered = scm_port_buffer_can_take (read_buf); if (buffered >= minimum_size || scm_is_true (scm_port_buffer_has_eof_p (read_buf))) return read_buf; - if (pti->rw_random) + if (pt->rw_random) scm_flush (port); /* Prepare to read. Make sure there is enough space in the buffer for @@ -2458,10 +2454,10 @@ scm_fill_input (SCM port, size_t minimum_size) && !scm_is_true (scm_port_buffer_has_eof_p (read_buf))) { size_t count; - size_t buffering = pti->read_buffering; + size_t buffering = pt->read_buffering; size_t to_read; - if (pti->read_buffering < minimum_size) + if (pt->read_buffering < minimum_size) buffering = minimum_size; to_read = buffering - buffered; @@ -2481,7 +2477,7 @@ SCM_DEFINE (scm_port_random_access_p, "port-random-access?", 1, 0, 0, #define FUNC_NAME s_scm_port_random_access_p { SCM_VALIDATE_OPPORT (1, port); - return scm_from_bool (SCM_PORT_GET_INTERNAL (port)->rw_random); + return scm_from_bool (SCM_PORT (port)->rw_random); } #undef FUNC_NAME @@ -2491,7 +2487,7 @@ SCM_DEFINE (scm_port_read_buffering, "port-read-buffering", 1, 0, 0, #define FUNC_NAME s_scm_port_read_buffering { SCM_VALIDATE_OPINPORT (1, port); - return scm_from_size_t (SCM_PORT_GET_INTERNAL (port)->read_buffering); + return scm_from_size_t (SCM_PORT (port)->read_buffering); } #undef FUNC_NAME @@ -2503,35 +2499,35 @@ SCM_DEFINE (scm_expand_port_read_buffer_x, "expand-port-read-buffer!", 2, 1, 0, "to the end instead. Return the new buffer.") #define FUNC_NAME s_scm_expand_port_read_buffer_x { - scm_t_port_internal *pti; + scm_t_port *pt; size_t c_size; SCM new_buf; SCM_VALIDATE_OPINPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); + pt = SCM_PORT (port); c_size = scm_to_size_t (size); - SCM_ASSERT_RANGE (2, size, c_size > scm_port_buffer_size (pti->read_buf)); + SCM_ASSERT_RANGE (2, size, c_size > scm_port_buffer_size (pt->read_buf)); if (SCM_UNBNDP (putback_p)) putback_p = SCM_BOOL_F; new_buf = scm_c_make_port_buffer (c_size); scm_port_buffer_set_has_eof_p (new_buf, - scm_port_buffer_has_eof_p (pti->read_buf)); + scm_port_buffer_has_eof_p (pt->read_buf)); if (scm_is_true (putback_p)) { scm_port_buffer_reset_end (new_buf); scm_port_buffer_putback (new_buf, - scm_port_buffer_take_pointer (pti->read_buf), - scm_port_buffer_can_take (pti->read_buf)); + scm_port_buffer_take_pointer (pt->read_buf), + scm_port_buffer_can_take (pt->read_buf)); } else { scm_port_buffer_reset (new_buf); scm_port_buffer_put (new_buf, - scm_port_buffer_take_pointer (pti->read_buf), - scm_port_buffer_can_take (pti->read_buf)); + scm_port_buffer_take_pointer (pt->read_buf), + scm_port_buffer_can_take (pt->read_buf)); } - pti->read_buf = new_buf; + pt->read_buf = new_buf; return new_buf; } @@ -2562,7 +2558,7 @@ SCM_DEFINE (scm_port_read_buffer, "port-read-buffer", 1, 0, 0, #define FUNC_NAME s_scm_port_read_buffer { SCM_VALIDATE_OPPORT (1, port); - return SCM_PORT_GET_INTERNAL (port)->read_buf; + return SCM_PORT (port)->read_buf; } #undef FUNC_NAME @@ -2572,7 +2568,7 @@ SCM_DEFINE (scm_port_write_buffer, "port-write-buffer", 1, 0, 0, #define FUNC_NAME s_scm_port_write_buffer { SCM_VALIDATE_OPPORT (1, port); - return SCM_PORT_GET_INTERNAL (port)->write_buf; + return SCM_PORT (port)->write_buf; } #undef FUNC_NAME @@ -2640,15 +2636,15 @@ void scm_c_write_bytes (SCM port, SCM src, size_t start, size_t count) #define FUNC_NAME "scm_c_write_bytes" { - scm_t_port_internal *pti; + scm_t_port *pt; SCM write_buf; SCM_VALIDATE_OPOUTPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - write_buf = pti->write_buf; + pt = SCM_PORT (port); + write_buf = pt->write_buf; - if (pti->rw_random) + if (pt->rw_random) scm_end_input (port); if (count < scm_port_buffer_size (write_buf)) @@ -2693,17 +2689,17 @@ void scm_c_write (SCM port, const void *ptr, size_t size) #define FUNC_NAME "scm_c_write" { - scm_t_port_internal *pti; + scm_t_port *pt; SCM write_buf; size_t written = 0; const scm_t_uint8 *src = ptr; SCM_VALIDATE_OPOUTPORT (1, port); - pti = SCM_PORT_GET_INTERNAL (port); - write_buf = pti->write_buf; + pt = SCM_PORT (port); + write_buf = pt->write_buf; - if (pti->rw_random) + if (pt->rw_random) scm_end_input (port); while (written < size) @@ -2783,7 +2779,7 @@ SCM_DEFINE (scm_char_ready_p, "char-ready?", 0, 1, 0, this case. */ SCM_VALIDATE_OPINPORT (1, port); - read_buf = SCM_PORT_GET_INTERNAL (port)->read_buf; + read_buf = SCM_PORT (port)->read_buf; if (scm_port_buffer_can_take (read_buf) || scm_is_true (scm_port_buffer_has_eof_p (read_buf))) @@ -2838,12 +2834,12 @@ SCM_DEFINE (scm_seek, "seek", 3, 0, 0, if (SCM_OPPORTP (fd_port)) { - scm_t_port_internal *pti = SCM_PORT_GET_INTERNAL (fd_port); + scm_t_port *pt = SCM_PORT (fd_port); scm_t_ptob_descriptor *ptob = SCM_PORT_DESCRIPTOR (fd_port); off_t_or_off64_t off = scm_to_off_t_or_off64_t (offset); off_t_or_off64_t rv; - if (!ptob->seek || !pti->rw_random) + if (!ptob->seek || !pt->rw_random) SCM_MISC_ERROR ("port is not seekable", scm_cons (fd_port, SCM_EOL)); @@ -2856,8 +2852,8 @@ SCM_DEFINE (scm_seek, "seek", 3, 0, 0, rv = ptob->seek (fd_port, off, how); /* Set stream-start flags according to new position. */ - pti->at_stream_start_for_bom_read = (rv == 0); - pti->at_stream_start_for_bom_write = (rv == 0); + pt->at_stream_start_for_bom_read = (rv == 0); + pt->at_stream_start_for_bom_write = (rv == 0); scm_i_clear_pending_eof (fd_port); @@ -2955,7 +2951,7 @@ SCM_DEFINE (scm_truncate_file, "truncate-file", 1, 1, 0, scm_i_clear_pending_eof (object); if (SCM_INPUT_PORT_P (object) - && SCM_PORT_GET_INTERNAL (object)->rw_random) + && SCM_PORT (object)->rw_random) scm_end_input (object); scm_flush (object); @@ -3002,7 +2998,7 @@ SCM_DEFINE (scm_set_port_line_x, "set-port-line!", 2, 0, 0, { port = SCM_COERCE_OUTPORT (port); SCM_VALIDATE_OPENPORT (1, port); - SCM_PORT_GET_INTERNAL (port)->line_number = scm_to_long (line); + SCM_PORT (port)->line_number = scm_to_long (line); return SCM_UNSPECIFIED; } #undef FUNC_NAME @@ -3033,7 +3029,7 @@ SCM_DEFINE (scm_set_port_column_x, "set-port-column!", 2, 0, 0, { port = SCM_COERCE_OUTPORT (port); SCM_VALIDATE_OPENPORT (1, port); - SCM_PORT_GET_INTERNAL (port)->column_number = scm_to_int (column); + SCM_PORT (port)->column_number = scm_to_int (column); return SCM_UNSPECIFIED; } #undef FUNC_NAME @@ -3096,7 +3092,7 @@ scm_port_print (SCM exp, SCM port, scm_print_state *pstate SCM_UNUSED) scm_print_port_mode (exp, port); scm_puts (type, port); scm_putc (' ', port); - scm_uintprint ((scm_t_bits) SCM_PTAB_ENTRY (exp), 16, port); + scm_uintprint ((scm_t_bits) SCM_PORT (exp), 16, port); scm_putc ('>', port); return 1; } |