summaryrefslogtreecommitdiff
path: root/guile-readline
Commit message (Collapse)AuthorAgeFilesLines
* Avoid stifling readline history when looking up optionsDaniel Llorens2016-06-241-27/+29
| | | | | | With this patch, history is never stifled unless (readline-set!) is used. * src/guile-readline/readline.c (scm_readline_options)
* Merge branch 'stable-2.0'Mark H Weaver2014-09-301-1/+2
|\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: benchmark-suite/benchmarks/ports.bm libguile/async.h libguile/bytevectors.c libguile/foreign.c libguile/gsubr.c libguile/srfi-1.c libguile/vm-engine.h libguile/vm-i-scheme.c module/Makefile.am module/language/tree-il/analyze.scm module/language/tree-il/peval.scm module/scripts/compile.scm module/scripts/disassemble.scm test-suite/tests/asm-to-bytecode.test test-suite/tests/peval.test test-suite/tests/rdelim.test
| * guile-readline: Use the current directory if HOME is unset.David Michael2014-09-211-1/+2
| | | | | | | | | | * guile-readline/ice-9/readline.scm (history-file): When the HOME environment variable is unset, use the current directory instead.
* | Merge branch 'stable-2.0'Mark H Weaver2014-04-251-2/+3
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: GUILE-VERSION NEWS guile-readline/ice-9/readline.scm libguile/async.c libguile/backtrace.c libguile/deprecated.h libguile/gc-malloc.c libguile/gdbint.c libguile/init.c libguile/ioext.c libguile/mallocs.c libguile/print.c libguile/rw.c libguile/scmsigs.c libguile/script.c libguile/simpos.c libguile/snarf.h libguile/strports.c libguile/threads.c libguile/vm-i-scheme.c libguile/vm-i-system.c module/srfi/srfi-18.scm test-suite/Makefile.am test-suite/standalone/test-num2integral.c
| * Readline history preserves newlinesAndy Wingo2014-04-141-2/+2
| | | | | | | | | | | | * guile-readline/ice-9/readline.scm (make-readline-port): Preserve newlines. This preserves the semantics of history entries that contain until-end-of-line comments using `;'.
* | Put the readline extension in the extensionsdirAndy Wingo2013-10-143-27/+11
| | | | | | | | | | | | | | | | | | | | | | | | * GUILE-VERSION: * acinclude.m4: * guile-readline/LIBGUILEREADLINE-VERSION: * guile-readline/Makefile.am: Rename libguile-readline-v-18.so to guile-readline.so, and install it to the extensions dir instead of the libdir. * guile-readline/ice-9/readline.scm: Load guile-readline instead of libguile-readline-v-18.
* | Merge remote-tracking branch 'origin/stable-2.0'Mark H Weaver2013-03-281-27/+5
|\| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Conflicts: configure.ac libguile/deprecated.c libguile/deprecated.h libguile/filesys.h libguile/fluids.c libguile/fports.c libguile/gc.c libguile/guile.c libguile/numbers.c libguile/objcodes.c libguile/r6rs-ports.c libguile/smob.c libguile/socket.c libguile/threads.h module/language/scheme/decompile-tree-il.scm module/language/tree-il/peval.scm test-suite/tests/syncase.test
| * simplify readline.cAndy Wingo2013-03-091-27/+4
| | | | | | | | | | * guile-readline/readline.c: Remove all mingw special-casing, relying instead on mingw / gnulib doing the right thing.
* | add scm_from_port_string and friendsAndy Wingo2013-01-151-7/+2
|/ | | | | | | | | | | | | * doc/ref/api-data.texi (Conversion to/from C): * libguile/strings.h: * libguile/strings.c (scm_from_port_string, scm_from_port_stringn): (scm_to_port_string, scm_to_port_stringn): New functions. * guile-readline/readline.c (internal_readline): * libguile/strports.c (scm_strport_to_string): * libguile/read.c (scm_read_number, scm_read_mixed_case_symbol): (scm_read_number_and_radix, scm_read_character): Use the new functions.
* guile-readline: Clean `.go' files.Ludovic Courtès2012-01-231-2/+3
| | | | * guile-readline/Makefile.am (CLEANFILES): Add *.go.
* readline uses define-onceAndy Wingo2011-02-091-10/+10
| | | | * guile-readline/ice-9/readline.scm: Use define-once.
* remove readline-activator.scmAndy Wingo2011-02-081-17/+0
| | | | | * guile-readline/readline-activator.scm: Remove this file that was deprecated in Guile 1.4.
* Expression-oriented readline historyNeil Jerram2010-11-141-14/+29
| | | | | | | * guile-readline/ice-9/readline.scm (make-readline-port): Instead of calling add-history after every %readline call, do it only when starting a new read. Other times, append the line just read to an internal buffer.
* readline repl-reader falls back to boot-9 definition for other portsAndy Wingo2010-10-101-18/+25
| | | | | | | * guile-readline/ice-9/readline.scm (readline-repl-reader): Pull definition out of activate-readline. If the current input port is not the readline port, fall back to the boot-9 repl reader. (activate-readline): Adapt.
* guile-readline slight modernizationAndy Wingo2010-10-052-13/+12
| | | | | | | * guile-readline/Makefile.am: Update to use am/guilec. * guile-readline/ice-9/readline.scm (activate-readline): Update to use a lambda*.
* readline only handles SIGWINCHAndy Wingo2010-07-091-9/+20
| | | | | | | | | | | * acinclude.m4 (GUILE_READLINE): Check for rl_catch_signals and rl_catch_sigwinch. * guile-readline/readline.c (scm_init_readline): If we can, turn off readline's signal handling, because we can do our own. (scm_readline): Use dynwinds to handle resetting readline's state on nonlocal exit, not catches. (unwind_readline): Rename from handle_error.
* remove use-emacs-interface check from ice-9 readlineAndy Wingo2010-07-091-15/+12
| | | | | * guile-readline/ice-9/readline.scm (activate-readline): Remove check for use-emacs-interface in guile-user, an interface that was removed.
* Use AM_SILENT_RULES to pare down build output, ignore auto-generated filesNo Itisnt2010-06-181-3/+3
| | | | | | | | | | | * .gitignore: Ignore extra gnulib headers. * am/snarf: Silent SNARF command * am/guilec: Silent GUILEC command * configure.ac: Use AM_SILENT_RULES when available * guile-readline/Makefile.am: * libguile/Makefile.am: * srfi/Makefile.am: * test-suite/standalone/Makefile.am: Silence snarf output
* fix argument tab-completionAndy Wingo2010-06-021-2/+2
| | | | | | * guile-readline/readline.c (scm_init_readline): Space is a word-breaking char too. Fixes tab-completion for args; thanks to Jao for the patch!
* parallel installability for libguile*.hAndy Wingo2010-03-161-1/+2
| | | | | | | | | | | | | * Makefile.am: * libguile/Makefile.am (modincludedir): Install into $pkgincludedir/$GUILE_EFFECTIVE_VERSION. This allows multiple Guile development packages to be installed at once. * guile-readline/Makefile.am (modincludedir): * srfi/Makefile.am (srfiincludedir): Likewise. * meta/guile-2.0.pc.in (Cflags): Add the appropriate -I line so that user code picks up the new location transparently.
* rename libguile to libguile-@EFFECTIVE_VERSION@, currently libguile-2.0Andy Wingo2010-03-161-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/Makefile.am (lib_LTLIBRARIES): Instead of just "libguile.la", make "libguile-@EFFECTIVE_VERSION@.la". This allows multiple versions of Guile to be installed at once. See http://www106.pair.com/rhp/parallel.html for a rationale. (libguile_@GUILE_EFFECTIVE_VERSION@_la_CFLAGS): (libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): (EXTRA_libguile_@GUILE_EFFECTIVE_VERSION@_la_SOURCES): (libguile_@GUILE_EFFECTIVE_VERSION@_la_DEPENDENCIES): (libguile_@GUILE_EFFECTIVE_VERSION@_la_LIBADD): (libguile_@GUILE_EFFECTIVE_VERSION@_la_LDFLAGS): Fixup automake vars to include the effective version. (guile_LDADD): Fix up the spelling of libguile. * libguile/bytevectors.c (scm_bootstrap_bytevectors): * libguile/foreign.c (scm_register_foreign): * libguile/i18n.c (scm_bootstrap_i18n): * libguile/instructions.c (scm_bootstrap_instructions): * libguile/objcodes.c (scm_bootstrap_objcodes): * libguile/programs.c (scm_bootstrap_programs): * libguile/vm.c (scm_bootstrap_vm): Register extensions using e.g. "libguile-2.0" as the libname -- i.e., including the effective version in the libname. * module/ice-9/i18n.scm: * module/rnrs/bytevector.scm: * module/rnrs/io/ports.scm: * module/system/foreign.scm: * module/system/vm/instruction.scm: * module/system/vm/objcode.scm: * module/system/vm/program.scm: * module/system/vm/vm.scm: When doing a load-extension for something in Guile, use the effective version also. * meta/guile-2.0-uninstalled.pc.in (Libs): * meta/guile-2.0.pc.in (Libs): Use -lguile-@EFFECTIVE_VERSION@. This change should mean that code built against Guile should not be affected by the libguile rename. * guile-readline/Makefile.am (libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD): * srfi/Makefile.am (libguile_srfi_srfi_1_v_@LIBGUILE_SRFI_SRFI_1_MAJOR@_la_LIBADD): (libguile_srfi_srfi_4_v_@LIBGUILE_SRFI_SRFI_4_MAJOR@_la_LIBADD): (libguile_srfi_srfi_13_14_v_@LIBGUILE_SRFI_SRFI_13_14_MAJOR@_la_LIBADD): (libguile_srfi_srfi_60_v_@LIBGUILE_SRFI_SRFI_60_MAJOR@_la_LIBADD): * test-suite/standalone/Makefile.am (test_num2integral_LDADD): (test_round_LDADD): (libtest_asmobs_la_LIBADD): (libtest_ffi_la_LIBADD): (test_list_LDADD): (test_unwind_LDADD): (test_conversion_LDADD): (test_loose_ends_LDADD): (test_scm_c_read_LDADD): (test_scm_take_locale_symbol_LDADD): (test_scm_take_u8vector_LDADD): (libtest_extensions_la_LIBADD): (test_with_guile_module_LDADD): (test_scm_with_guile_LDADD): Fix up the spelling of libguile.la.
* decruftify scm_sys_protectsAndy Wingo2009-12-051-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * libguile/root.h * libguile/root.c (scm_sys_protects): It used to be that for some reason we'd define a special array of "protected" values. This was a little silly, always, but with the BDW GC it's completely unnecessary. Also many of these variables were unused, and none of them were good API. So remove this array, and either eliminate, make static, or make internal the various values. * libguile/snarf.h: No need to generate calls to scm_permanent_object. * guile-readline/readline.c (scm_init_readline): No need to call scm_permanent_object. * libguile/array-map.c (ramap, rafe): Remove the dubious nullvect optimizations. * libguile/async.c (scm_init_async): No need to init scm_asyncs, it is no more. * libguile/eval.c (scm_init_eval): No need to init scm_listofnull, it is no more. * libguile/gc.c: Make scm_protects a static var. (scm_storage_prehistory): Change the sanity check to use the address of protects. (scm_init_gc_protect_object): No need to clear the scm_sys_protects, as it is no more. * libguile/keywords.c: Make the keyword obarray a static var. * libguile/numbers.c: Make flo0 a static var. * libguile/objprop.c: Make object_whash a static var. * libguile/properties.c: Make properties_whash a static var. * libguile/srcprop.h: * libguile/srcprop.c: Make scm_source_whash a global with internal linkage. * libguile/strings.h: * libguile/strings.c: Make scm_nullstr a global with internal linkage. * libguile/vectors.c (scm_init_vectors): No need to init scm_nullvect, it's unused.
* repl-reader accepts optional "read" argumentAndy Wingo2009-10-161-3/+5
| | | | | | | | | * module/ice-9/boot-9.scm (repl-reader): Accept an optional second argument, the reader to use. If it is given, use it instead of dereferencing the current-reader fluid. * guile-readline/ice-9/readline.scm (activate-readline): Make our replacement definition of repl-reader compatible with boot-9.
* Make scm_i_from_stringn into API for use with libguilereadlineMichael Gran2009-09-091-2/+2
| | | | | | | | | | | | | | * libguile/strings.c (scm_i_from_stringn): renamed to scm_from_stringn. All callers changed. * libguile/strings.h: change declaration of scm_i_from_stringn to scm_from_stringn * libguile/strports.c (scm_strport_to_string): scm_i_from_stringn -> scm_from_stringn * guile-readline/readline.c (internal_readline): scm_i_from_stringn -> scm_from_stringn
* Fix broken interaction between readline and UnicodeMichael Gran2009-09-071-2/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This requires separate small fixes. Readline has internal logic to deal with multi-byte characters, so it wants bytes, not characters. scm_c_read gets called by the vm when readline is activated, and it was truncating multi-byte characters because soft ports didn't have the UCS-4 capability. Soft ports need the capability to read UCS-4 characters. Since soft ports may have a single byte buffer, full characters need to be stored into the pushback buffer. This broke the optimizations in scm_c_read for using an alternate buffer for single-byte-buffered ports, because the opimization wasn't expecting anything in the pushback buffer. * libguile/vports.c (sf_fill_input): store complete chars, not single bytes * libguile/ports.c (scm_c_read): don't use optimized path for non Latin-1. Add debug prints. * libguile/string.h: make scm_i_from_stringn and scm_i_string_ref public so that readline can use them * guile-readline/readline.c: read bytes, not complete chars, from the input port. Convert output to the output port's locale
* Export readline history functionsNeil Jerram2009-08-301-5/+9
| | | | * guile-readline/ice-9/readline.scm: Export history functions.
* Aggregate `guile-readline' makefiles.Ludovic Courtès2009-08-212-33/+12
| | | | | | | | | | | | * configure.ac: Don't produce `guile-readline/ice-9/Makefile'. * guile-readline/Makefile.am (SUBDIRS): Remove. (ice9dir, nobase_ice9_DATA): New, formerly under `ice-9'. (ETAGS_ARGS, EXTRA_DIST): Augment. (DEFS): Move outside of `if'. (MKDEP): Remove. * guile-readline/ice-9/Makefile.am: Remove.
* Don't use a sub-`configure' for `guile-readline'.Ludovic Courtès2009-08-214-107/+21
| | | | | | | | | | | | | | | | | | | | * acinclude.m4 (GUILE_READLINE): New macro, based on the former `guile-readline/configure.ac'. * configure.ac: Remove `AC_CONFIG_SUBDIRS' invocation. Add `GUILE_READLINE' invocation. Produce files under `guile-readline'. * guile-readline/Makefile.am: Conditionalize the meat under `HAVE_READLINE'. (INCLUDES): Rename to... (AM_CPPFLAGS): this. Users updates. (AM_CFLAGS): New variable. (libguilereadline_v_@LIBGUILEREADLINE_MAJOR@_la_LIBADD): Add $(READLINE_LIBS). * guile-readline/readline.c: Include <config.h>. * guile-readline/configure.ac, guile-readline/autogen.sh: Remove.
* rename configure.in to configure.acAndy Wingo2009-08-041-0/+0
| | | | | | * configure.ac: * guile-readline/configure.ac: Rename from configure.in, as recommended by the autoconf manual.
* Remove AC_SYS_RESTARTABLE_SYSCALLS and related codeNeil Jerram2009-06-232-94/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | As the Autoconf documentation says, "These days portable programs [...] should not rely on `HAVE_RESTARTABLE_SYSCALLS', since nowadays whether a system call is restartable is a dynamic issue, not a configuration-time issue." In other words, if we ever rely on HAVE_RESTARTABLE_SYSCALLS, we are at the mercy of any code that Guile happens to be linked with, because that code could install a signal handler without the SA_RESTART flag, and then a Guile system call could unexpectedly return EINTR. The readline part of this goes back to this problem report: http://sources.redhat.com/ml/guile/2000-05/msg00177.html; and is an excellent example of the above paragraph. It was noted during the discussion that undefining HAVE_RESTARTABLE_SYSCALLS would fix the problem, but that solution wasn't adopted - I guess because Guile was still using cooperative threads then (not pthreads) and so there was a significant concern (whether founded or not) that not using restartable syscalls (where available) could lead to a loss of performance. Now Guile's default mode of operation is with pthreads, where we already don't assume that HAVE_RESTARTABLE_SYSCALLS is reliable, so there is no possible further performance loss. And in any case we really have no choice, if we want correct operation. Thanks to Sylvain Beucler for reporting this and suggesting the fix. * configure.in (AC_SYS_RESTARTABLE_SYSCALLS): Removed. * doc/ref/posix.texi (Signals): Remove statement that Guile always sets SA_RESTART flag. * guile-readline/configure.in (GUILE_SIGWINCH_SA_RESTART_CLEARED): Remove this setting, together with its test code. (HAVE_RL_PRE_INPUT_HOOK): Remove this setting and its code, as no longer needed. * guile-readline/readline.c (sigwinch_enable_restart): Removed. (scm_init_readline): Remove setting of rl_pre_input_hook. * libguile/_scm.h (SCM_SYSCALL): Remove the definition that relies on HAVE_RESTARTABLE_SYSCALLS. * libguile/scmsigs.c (scm_sigaction_for_thread): Don't always set the SA_RESTART flag if available. Update docstring accordingly. (scm_init_scmsigs): Remove code that sets SA_RESTART flag for all signals. * THANKS: Add Sylvain.
* Change guile-readline license to GPLv3+Neil Jerram2009-06-175-23/+23
|
* Provide easier configure options for GMP and readlineNeil Jerram2009-06-141-1/+2
| | | | | | | | | | | | | | | | | This patch uses the AC_LIB_LINKFLAGS macro, provided by Gnulib's havelib module, to provide --with-gmp-prefix and --with-readline-prefix configure options. Many thanks to Bruno Haible for suggesting and explaining this to me. * configure.in (top level): Add AC_LIB_LINKFLAGS(gmp). * guile-readline/configure.in (AC_CONFIG_AUX_DIR): Change to ../build-aux, to share the main build-aux directory and so avoid having to distribute multiple copies of config.rpath. (top level): Add AC_LIB_LINKFLAGS(readline). * lib/Makefile.am, m4/gnulib-cache.m4: Regenerated by gnulib-tool for new import of the `havelib' module.
* leap of faith: (ice-9 syncase) in psyntax-pp.scm -> (guile)Andy Wingo2009-04-241-17/+15
| | | | | * module/ice-9/psyntax-pp.scm: Manually switch psyntax-pp over to (guile) from (ice-9 syncase). Heh heh.
* Merge commit 'origin/master' into vmAndy Wingo2008-09-305-29/+2
|\ | | | | | | | | | | | | | | Conflicts: doc/Makefile.am ice-9/Makefile.am libguile/gc.c
| * Remove GH and its traces.Han-Wen Nienhuys2008-09-281-1/+0
| |
| * Add `ChangeLog-2008' files to the distribution.Ludovic Courtès2008-09-121-2/+2
| |
| * Rename `ChangeLog' files to `ChangeLog-2008'.Ludovic Courtès2008-09-121-0/+0
| |
| * Remove `.cvsignore' files.Ludovic Courtès2008-09-112-26/+0
| |
* | merge from guile masterAndy Wingo2008-08-263-4/+21
|\| | | | | | | Had to fix up .gitignore for some conflicts.
| * Remove uses of non-portable makefile constructs.Ludovic Courtès2008-05-072-3/+9
| |
| * Don't use "echo -n" in `guile-readline/configure.in'.Ludovic Courtès2008-04-162-1/+12
| |
* | make readline's `repl-reader' impl check the current-reader fluidAndy Wingo2008-08-021-1/+1
|/ | | | | * guile-readline/ice-9/readline.scm (activate-readline): Use the current binding of the current-reader fluid, if it is available.
* Merge 1.8.4 release commit.Ludovic Courtès2008-02-211-0/+5
|
* Release stuff: missing NEWS and 2007/2008 copyrights.Neil Jerram2008-02-151-1/+1
|
* * readline.c (scm_init_readline): Only do init_bouncing_parens ()Neil Jerram2008-01-293-0/+18
| | | | | | | | if HAVE_RL_GET_KEYMAP. (init_bouncing_parens, find_matching_paren, match_paren): Compile out if ! HAVE_RL_GET_KEYMAP. * configure.in: Add check for rl_get_keymap.
* Changes from arch/CVS synchronizationLudovic Courtès2007-07-292-4/+12
|
* Changes from arch/CVS synchronizationLudovic Courtès2007-07-171-0/+5
|
* Changes from arch/CVS synchronizationLudovic Courtès2007-06-252-2/+12
|
* terminate option list with NULL.Han-Wen Nienhuys2007-01-192-3/+2
| | | | (scm_init_readline): fix CVS mess-up.
* * readline.c: terminate option list with NULL.Han-Wen Nienhuys2007-01-192-1/+6
| | | | | | | | | | | * read.c: idem. * print.c: idem. * eval.c: terminate option lists with 0. * options.c: remove n (for length) from scm_option_X functions. Detect option list length by looking for NULL name.