mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-04-30 03:40:34 +02:00
Add keyword arguments to file opening procedures.
* libguile/fports.c (scm_open_file_with_encoding): New API function, containing the code previously found in 'scm_open_file', but modified to accept the new 'guess_encoding' and 'encoding' arguments. (scm_open_file): Now just a simple wrapper that calls 'scm_open_file_with_encoding'. (scm_i_open_file): New implementation of 'open-file' that accepts keyword arguments '#:guess-encoding' and '#:encoding', and calls 'scm_open_file_with_encoding'. (scm_init_fports_keywords): New initialization function that gets called after keywords are initialized. * libguile/fports.h (scm_open_file_with_encoding, scm_init_fports_keywords): Add prototypes. * libguile/init.c (scm_i_init_guile): Call 'scm_init_fports_keywords'. * module/ice-9/boot-9.scm: Add enhanced versions of 'open-input-file', 'open-output-file', 'call-with-input-file', 'call-with-output-file', 'with-input-from-file', 'with-output-to-file', and 'with-error-to-file', that accept keyword arguments '#:binary', '#:encoding', and (for input port constructors) '#:guess-encoding'. * doc/ref/api-io.texi (File Ports): Update documentation. * test-suite/tests/ports.test ("keyword arguments for file openers"): Add tests.
This commit is contained in:
parent
b6e374e535
commit
3ace9a8e4e
6 changed files with 581 additions and 70 deletions
|
@ -444,6 +444,7 @@ scm_i_init_guile (void *base)
|
|||
scm_init_gettext ();
|
||||
scm_init_ioext ();
|
||||
scm_init_keywords (); /* Requires smob_prehistory */
|
||||
scm_init_fports_keywords ();
|
||||
scm_init_list ();
|
||||
scm_init_random (); /* Requires smob_prehistory */
|
||||
scm_init_macros (); /* Requires smob_prehistory and random */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue