From 89f200b55b309aa67c1fbfc11d4de211725348f4 Mon Sep 17 00:00:00 2001 From: Sergey Poznyakoff Date: Tue, 12 Jul 2016 12:41:15 +0300 Subject: Line-editing support in gdbmtool * configure.ac: Check if GNU Readline is available. * src/Makefile.am: Add new files. * src/input-rl.c: New file. * src/input-std.c: New file. * src/gdbmtool.c (handler_param): Move declaration to the header file. (quit_handler): Call input_done. (command_tab): Add the "history" command. (command_generator): New function. (slist_new_s, slist_new_l) (slist_insert): New functions. (main): Call input_init and input_done. * src/gdbmtool.h: New protos. * src/gram.y: Use slist_insert to construct string lists. * src/lex.l (read_input): Remove. Use input_read instead. (print_prompt_at_bol): New function. (print_prompt): Remove. (make_prompt): New function. * NEWS: Document changes. * README: Document readline support. * doc/gdbm.texi: Document line editing in gdbmtool. * doc/gdbmtool.1: Likewise. --- doc/gdbm.texi | 22 ++++++++++++++++++++++ doc/gdbmtool.1 | 15 +++++++++++++-- 2 files changed, 35 insertions(+), 2 deletions(-) (limited to 'doc') diff --git a/doc/gdbm.texi b/doc/gdbm.texi index 4c7c5c0..d172ad7 100644 --- a/doc/gdbm.texi +++ b/doc/gdbm.texi @@ -1828,6 +1828,12 @@ non-interactive mode (e.g.@: when running a script), all arguments must be supplied with each command, otherwise @command{gdbmtool} will report an error and exit immediately. +@cindex readline +@cindex GNU Readline +If the package is compiled with GNU Readline, the input line can be +edited (@pxref{Command Line Editing, , +Command Line Editing, readline, GNU Readline Library}). + @menu * variables:: shell variables. * commands:: shell commands. @@ -2113,6 +2119,22 @@ existing ones will replace them. The word @samp{nometa} turns off restoring meta-information from the dump file. @end deffn +@deffn {command verb} history +@deffnx {command verb} history @var{count} +@deffnx {command verb} history @var{n} @var{count} +Shows the command history list with line numbers. When used without +arguments, shows entire history. When used with one argument, +displays @var{count} last commands from the history. With two +arguments, displays @var{count} commands starting from @var{n}th +command. Command numbering starts with 1. + +This command is available only if GDBM was compiled with GNU Readline. +The history is saved in file @file{.gdbmtool_history} in the user's +home directory. If this file exists upon startup, it is read to +populate the history. Thus, command history is preserved between +@command{gdbmtool} invocations. +@end deffn + @deffn {command verb} list List the contents of the database. @end deffn diff --git a/doc/gdbmtool.1 b/doc/gdbmtool.1 index dae881c..c479822 100644 --- a/doc/gdbmtool.1 +++ b/doc/gdbmtool.1 @@ -13,7 +13,7 @@ .\" .\" You should have received a copy of the GNU General Public License .\" along with GDBM. If not, see . */ -.TH GDBMTOOL 1 "May 18, 2016" "GDBM" "GDBM User Reference" +.TH GDBMTOOL 1 "July 12, 2016" "GDBM" "GDBM User Reference" .SH NAME gdbmtool \- examine and modify a GDBM database .SH SYNOPSIS @@ -158,7 +158,7 @@ Delete record with the given \fIKEY\fR. .BR dir Print hash directory. .TP -\fBexport\fR, \fBe\fR \fIFILE\-NAME\fR [\fBtruncate\fR] [\fBbinary\fR|\fBascii\fR] +\fBexport\fR \fIFILE\-NAME\fR [\fBtruncate\fR] [\fBbinary\fR|\fBascii\fR] Export the database to the flat file \fIFILE\-NAME\fR. This is equivalent to .BR gdbm_dump (1). @@ -187,6 +187,17 @@ Print a concise command summary, showing each command letter and verb with its parameters and a short description of what it does. Optional arguments are enclosed in square brackets. .TP +.B history +Shows the command history list with line numbers. This command is +available only if the program was compiled with GNU Readline. +.TP +\fBhistory\fR \fICOUNT\fR. +Shows \fICOUNT\fR latest commands from the command history. +.TP +\fBhistory\fR \fIN\fR \fICOUNT\fR. +Shows \fICOUNT\fR commands from the command history starting with \fIN\fRth +command. +.TP \fBimport\fR \fIFILE\-NAME\fR [\fBreplace\fR] [\fBnometa\fR] Import data from a flat dump file \fIFILE\-NAME\fR. If the -- cgit v1.2.1