From d9393c021044b97301b91b236473b65abab58951 Mon Sep 17 00:00:00 2001 From: "Kevin M. Rosenberg" Date: Mon, 5 May 2003 22:17:00 +0000 Subject: [PATCH] r4819: Auto commit for Debian build --- README | 46 +++++++++++++++++++++++++++++++++++++---- TODO | 2 +- debian/changelog | 6 ++++++ debian/control | 2 +- libreadline.lisp | 2 +- readline.lisp | 53 ++++++++++++++++++++++++++---------------------- 6 files changed, 80 insertions(+), 31 deletions(-) diff --git a/README b/README index 1dbf41d..d71dd79 100644 --- a/README +++ b/README @@ -1,4 +1,4 @@ -CL-READLINE 0.1 +CL-READLINE 0.1.1 CL-READLINE is a simple UFFI-based wrapper for the GNU Readline library. @@ -7,8 +7,46 @@ CL-READLINE 0.1 and CMUCL. Other platforms and UFFI compatible implementations should work, but may require tweaking. - To use: + To load: - (asdf:oos 'asdf:load-op 'readline) - (rl:readline :prompt "> ") + (asdf:oos 'asdf:load-op 'readline) + The interface exported by the package READLINE (nicknamed RL). + +Functions: + + READLINE &key prompt history + + prompt -- a string (default "") + history -- a boolean (default t) + + Prompt is the prompt displayed to user. + + History controls whether the string read is added to history, or + not. Note that history is available in any case. Currently there + is no way to erase history. + + ADD-HISTORY string + + Adds the given string to history. + + USE-FILENAME-COMPLETE + + Use the Readline's default filename-completion system. + + USE-CL-COMPLETE + + Insert symbols in CL-USER to the custom completion pool, + and start using the custom completion system. + + USE-CUSTOM-COMPLETE + + Use the custom completion system. + + ADD-COMPLETION + + Add a completion to the custom completion pool. + + CLEAR-COMPLETIONS + + Empty the custom completion pool. diff --git a/TODO b/TODO index 256debc..60b50a5 100644 --- a/TODO +++ b/TODO @@ -20,4 +20,4 @@ - Lightweight version based on alternate library with more permissive license. -- Samrter installation +- Smarter installation diff --git a/debian/changelog b/debian/changelog index a26b15c..5d43831 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,9 @@ +cl-readline (0.1.1kmr-1) unstable; urgency=low + + * New upstream (closes: 191916) + + -- Kevin M. Rosenberg Mon, 5 May 2003 16:15:45 -0600 + cl-readline (0.1-1) unstable; urgency=low * Initial upload (closes:191916) diff --git a/debian/control b/debian/control index d6832cb..85adaed 100644 --- a/debian/control +++ b/debian/control @@ -7,7 +7,7 @@ Standards-Version: 3.5.9.0 Package: cl-readline Architecture: any -Depends: ${shlibs:Depends}, common-lisp-controller, cl-uffi, libreadline4 +Depends: ${shlibs:Depends}, common-lisp-controller, cl-uffi Description: Common Lisp interface to the GNU readline library This package uses UFFI to provide an interface to the GNU readline library for Common Lisp programs. diff --git a/libreadline.lisp b/libreadline.lisp index a127189..53fd105 100644 --- a/libreadline.lisp +++ b/libreadline.lisp @@ -23,7 +23,7 @@ (def-function "readline" ((prompt :cstring)) :module "readline" - :returning :cstring) + :returning (* :char)) (def-function "add_history" ((str :cstring)) :module "readline" diff --git a/readline.lisp b/readline.lisp index 2685c4b..4e8af26 100644 --- a/readline.lisp +++ b/readline.lisp @@ -36,16 +36,6 @@ (setq cl-complete nil) (libreadline::clear-completions)) - (defun use-custom-complete () - "Use custom-competions." - (libreadline::use-custom-complete) - nil) - - (defun use-filename-complete () - "Use default completion system. (filename)" - (libreadline::use-filename-complete) - nil) - (defun use-cl-complete () "Load symbols in package CL-USER as custom-completions." (unless cl-complete @@ -54,19 +44,34 @@ (do-symbols (sym (find-package :cl-user)) (add-completion (string-downcase (string sym))))) (use-custom-complete) - nil) + nil)) + +;;; Everything that affects the custom-completion collection goes +;;; above. + +(defun use-custom-complete () + "Use custom-competions." + (libreadline::use-custom-complete) + nil) + +(defun use-filename-complete () + "Use default completion system. (filename)" + (libreadline::use-filename-complete) + nil) - (defun add-history (string) - "Add STRING to history." - (with-cstring (c-string string) - (libreadline::add-history c-string)) - string) +(defun add-history (string) + "Add STRING to history." + (with-cstring (c-string string) + (libreadline::add-history c-string)) + string) - (defun readline (&key (prompt "") (history t)) - "Read a line from current TTY with line-editing." - (with-cstring (c-prompt prompt) - (let ((str (string-trim - *whitespace* - (convert-from-cstring (libreadline::readline c-prompt))))) - (when (and history (not (string= "" str))) - (add-history str)))))) +(defun readline (&key (prompt "") (history t)) + "Read a line from current TTY with line-editing." + (with-cstring (c-prompt prompt) + (let* ((char* (libreadline::readline c-prompt)) + (str (string-trim *whitespace* + (convert-from-foreign-string char*)))) + (free-foreign-object char*) + (when (and history (not (string= "" str))) + (add-history str)) + str))) -- 2.34.1