summaryrefslogtreecommitdiff
path: root/guile-readline
AgeCommit message (Collapse)Author
2017-05-17readline: Avoid interpreting control characters in pastes.Andy Wingo
* NEWS: Update. * doc/ref/repl-modules.texi (Readline Options): Update for bracketed-paste. * guile-readline/readline.h (SCM_READLINE_BRACKETED_PASTE): Add bracketed-paste option. * guile-readline/readline.c (scm_readline_opts): Add bracketed-paste. (scm_init_readline): Wire up the logic.
2016-06-24Avoid stifling readline history when looking up optionsDaniel Llorens
With this patch, history is never stifled unless (readline-set!) is used. * src/guile-readline/readline.c (scm_readline_options)
2014-09-30Merge branch 'stable-2.0'Mark H Weaver
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
2014-09-21guile-readline: Use the current directory if HOME is unset.David Michael
* guile-readline/ice-9/readline.scm (history-file): When the HOME environment variable is unset, use the current directory instead.
2014-04-25Merge branch 'stable-2.0'Mark H Weaver
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
2014-04-14Readline history preserves newlinesAndy Wingo
* 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 `;'.
2013-10-14Put the readline extension in the extensionsdirAndy Wingo
* 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.
2013-03-28Merge remote-tracking branch 'origin/stable-2.0'Mark H Weaver
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
2013-03-09simplify readline.cAndy Wingo
* guile-readline/readline.c: Remove all mingw special-casing, relying instead on mingw / gnulib doing the right thing.
2013-01-15add scm_from_port_string and friendsAndy Wingo
* 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.
2012-01-23guile-readline: Clean `.go' files.Ludovic Courtès
* guile-readline/Makefile.am (CLEANFILES): Add *.go.
2011-02-09readline uses define-onceAndy Wingo
* guile-readline/ice-9/readline.scm: Use define-once.
2011-02-08remove readline-activator.scmAndy Wingo
* guile-readline/readline-activator.scm: Remove this file that was deprecated in Guile 1.4.
2010-11-14Expression-oriented readline historyNeil Jerram
* 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.
2010-10-10readline repl-reader falls back to boot-9 definition for other portsAndy Wingo
* 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.
2010-10-05guile-readline slight modernizationAndy Wingo
* guile-readline/Makefile.am: Update to use am/guilec. * guile-readline/ice-9/readline.scm (activate-readline): Update to use a lambda*.
2010-07-09readline only handles SIGWINCHAndy Wingo
* 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.
2010-07-09remove use-emacs-interface check from ice-9 readlineAndy Wingo
* guile-readline/ice-9/readline.scm (activate-readline): Remove check for use-emacs-interface in guile-user, an interface that was removed.
2010-06-18Use AM_SILENT_RULES to pare down build output, ignore auto-generated filesNo Itisnt
* .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
2010-06-02fix argument tab-completionAndy Wingo
* 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!
2010-03-16parallel installability for libguile*.hAndy Wingo
* 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.
2010-03-16rename libguile to libguile-@EFFECTIVE_VERSION@, currently libguile-2.0Andy Wingo
* 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.
2009-12-05decruftify scm_sys_protectsAndy Wingo
* 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.
2009-10-16repl-reader accepts optional "read" argumentAndy Wingo
* 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.
2009-09-09Make scm_i_from_stringn into API for use with libguilereadlineMichael Gran
* 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
2009-09-07Fix broken interaction between readline and UnicodeMichael Gran
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
2009-08-30Export readline history functionsNeil Jerram
* guile-readline/ice-9/readline.scm: Export history functions.
2009-08-21Aggregate `guile-readline' makefiles.Ludovic Courtès
* 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.
2009-08-21Don't use a sub-`configure' for `guile-readline'.Ludovic Courtès
* 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.
2009-08-04rename configure.in to configure.acAndy Wingo
* configure.ac: * guile-readline/configure.ac: Rename from configure.in, as recommended by the autoconf manual.
2009-06-23Remove AC_SYS_RESTARTABLE_SYSCALLS and related codeNeil Jerram
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.
2009-06-17Change guile-readline license to GPLv3+Neil Jerram
2009-06-14Provide easier configure options for GMP and readlineNeil Jerram
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.
2009-04-24leap of faith: (ice-9 syncase) in psyntax-pp.scm -> (guile)Andy Wingo
* module/ice-9/psyntax-pp.scm: Manually switch psyntax-pp over to (guile) from (ice-9 syncase). Heh heh.
2008-09-30Merge commit 'origin/master' into vmAndy Wingo
Conflicts: doc/Makefile.am ice-9/Makefile.am libguile/gc.c
2008-09-28Remove GH and its traces.Han-Wen Nienhuys
2008-09-12Add `ChangeLog-2008' files to the distribution.Ludovic Courtès
2008-09-12Rename `ChangeLog' files to `ChangeLog-2008'.Ludovic Courtès
2008-09-11Remove `.cvsignore' files.Ludovic Courtès
2008-08-26merge from guile masterAndy Wingo
Had to fix up .gitignore for some conflicts.
2008-08-02make readline's `repl-reader' impl check the current-reader fluidAndy Wingo
* guile-readline/ice-9/readline.scm (activate-readline): Use the current binding of the current-reader fluid, if it is available.
2008-05-07Remove uses of non-portable makefile constructs.Ludovic Courtès
2008-04-16Don't use "echo -n" in `guile-readline/configure.in'.Ludovic Courtès
2008-02-21Merge 1.8.4 release commit.Ludovic Courtès
2008-02-15Release stuff: missing NEWS and 2007/2008 copyrights.Neil Jerram
2008-01-29* readline.c (scm_init_readline): Only do init_bouncing_parens ()Neil Jerram
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.
2007-07-29Changes from arch/CVS synchronizationLudovic Courtès
2007-07-17Changes from arch/CVS synchronizationLudovic Courtès
2007-06-25Changes from arch/CVS synchronizationLudovic Courtès
2007-01-19terminate option list with NULL.Han-Wen Nienhuys
(scm_init_readline): fix CVS mess-up.