diff options
author | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-12 12:41:15 +0300 |
---|---|---|
committer | Sergey Poznyakoff <gray@gnu.org.ua> | 2016-07-12 14:34:16 +0300 |
commit | 89f200b55b309aa67c1fbfc11d4de211725348f4 (patch) | |
tree | 39e2e43f29766cbebbdf61f160b5d062ea63c996 /doc | |
parent | e8cad816f36b1cad11bb67c96f0ce878cf30844e (diff) | |
download | gdbm-89f200b55b309aa67c1fbfc11d4de211725348f4.tar.gz gdbm-89f200b55b309aa67c1fbfc11d4de211725348f4.tar.bz2 |
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.
Diffstat (limited to 'doc')
-rw-r--r-- | doc/gdbm.texi | 22 | ||||
-rw-r--r-- | doc/gdbmtool.1 | 15 |
2 files changed, 35 insertions, 2 deletions
diff --git a/doc/gdbm.texi b/doc/gdbm.texi index 4c7c5c0..d172ad7 100644 --- a/doc/gdbm.texi +++ b/doc/gdbm.texi @@ -1825,12 +1825,18 @@ data? @kbd{3} However, such prompting is possible only in interactive mode. In 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. * definitions:: how to define structured data. * startup files:: @end menu @@ -2110,12 +2116,28 @@ Import data from a flat dump file @var{file-name} (@pxref{Flat files}). If the word @samp{replace} is given as an argument, any records with the same keys as the already 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 @deffn {command verb} next [@var{key}] Sequential access: fetch and display the next record. If the @var{key} is diff --git a/doc/gdbmtool.1 b/doc/gdbmtool.1 index dae881c..c479822 100644 --- a/doc/gdbmtool.1 +++ b/doc/gdbmtool.1 @@ -10,13 +10,13 @@ .\" but WITHOUT ANY WARRANTY; without even the implied warranty of .\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the .\" GNU General Public License for more details. .\" .\" You should have received a copy of the GNU General Public License .\" along with GDBM. If not, see <http://www.gnu.org/licenses/>. */ -.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 \fBgdbmtool\fR [\fB\-lmNnqrs\fR] [\fB\-b\fR \fISIZE\fR] [\fB\-c\fR \fISIZE\fR]\ [\fB\-f\fR \fIFILE\fR] [\fB\-\-block\-size\fR=\fISIZE\fR] [\fB\-\-cache\-size\fR=\fISIZE\fR] [\fB\-\-file\fR \fIFILE\fR]\ @@ -155,13 +155,13 @@ Print the current bucket. \fBdelete\fR \fIKEY\fR Delete record with the given \fIKEY\fR. .TP .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). This command will not overwrite an existing file, unless the .B truncate parameter is also given. Another optional parameter determines the type of @@ -184,12 +184,23 @@ Print file header. .TP .BR help " or " ? 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 .B replace argument is given, any records with the same keys as the already existing ones will replace them. The |