diff options
author | unknown <vva@eagle.mysql.r18.ru> | 2004-08-24 20:41:41 +0500 |
---|---|---|
committer | unknown <vva@eagle.mysql.r18.ru> | 2004-08-24 20:41:41 +0500 |
commit | af043308a9988c247b044345f15bbfaa4acd5466 (patch) | |
tree | 4ee77f533257aa0e91c1a8078b6b2183641fa68e /cmd-line-utils/libedit/hist.c | |
parent | de225e637a65366aab0ad5fd8b08f24af8ee8f67 (diff) | |
download | mariadb-git-af043308a9988c247b044345f15bbfaa4acd5466.tar.gz |
upgrade to libedit-2.6.7
(fixed Bug #4462 libedit compile failure)
BitKeeper/etc/ignore:
change config.h -> config.h to commit cmd-line-utils/libedit/config.h
cmd-line-utils/libedit/Makefile.am:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/chared.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/chared.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/common.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/el.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/el.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/emacs.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/hist.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/hist.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/histedit.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/history.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/key.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/key.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/makelist.sh:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/map.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/map.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/parse.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/prompt.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/read.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/readline.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/readline/readline.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/refresh.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/search.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/search.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/sig.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/sig.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/sys.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/term.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/tokenizer.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/tokenizer.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/tty.c:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/tty.h:
upgrade to libedit-2.6.7
cmd-line-utils/libedit/vi.c:
upgrade to libedit-2.6.7
configure.in:
change liblibedit.a to correct libedit.a
Diffstat (limited to 'cmd-line-utils/libedit/hist.c')
-rw-r--r-- | cmd-line-utils/libedit/hist.c | 63 |
1 files changed, 43 insertions, 20 deletions
diff --git a/cmd-line-utils/libedit/hist.c b/cmd-line-utils/libedit/hist.c index 2b20c7d14dc..59c2f39dd34 100644 --- a/cmd-line-utils/libedit/hist.c +++ b/cmd-line-utils/libedit/hist.c @@ -1,4 +1,4 @@ -/* $NetBSD: hist.c,v 1.9 2001/05/17 01:02:17 christos Exp $ */ +/* $NetBSD: hist.c,v 1.12 2003/01/21 18:40:23 christos Exp $ */ /*- * Copyright (c) 1992, 1993 @@ -36,12 +36,18 @@ * SUCH DAMAGE. */ -#include "compat.h" +#include "config.h" +#if !defined(lint) && !defined(SCCSID) +#if 0 +static char sccsid[] = "@(#)hist.c 8.1 (Berkeley) 6/4/93"; +#else +__RCSID("$NetBSD: hist.c,v 1.12 2003/01/21 18:40:23 christos Exp $"); +#endif +#endif /* not lint && not SCCSID */ /* * hist.c: History access functions */ -#include "sys.h" #include <stdlib.h> #include "el.h" @@ -126,18 +132,16 @@ hist_get(EditLine *el) el->el_history.eventno = h; return (CC_ERROR); } - (void) strncpy(el->el_line.buffer, hp, + (void) strlcpy(el->el_line.buffer, hp, (size_t)(el->el_line.limit - el->el_line.buffer)); el->el_line.lastchar = el->el_line.buffer + strlen(el->el_line.buffer); - if (el->el_line.lastchar > el->el_line.buffer) { - if (el->el_line.lastchar[-1] == '\n') - el->el_line.lastchar--; - if (el->el_line.lastchar[-1] == ' ') - el->el_line.lastchar--; - if (el->el_line.lastchar < el->el_line.buffer) - el->el_line.lastchar = el->el_line.buffer; - } + if (el->el_line.lastchar > el->el_line.buffer + && el->el_line.lastchar[-1] == '\n') + el->el_line.lastchar--; + if (el->el_line.lastchar > el->el_line.buffer + && el->el_line.lastchar[-1] == ' ') + el->el_line.lastchar--; #ifdef KSHVI if (el->el_map.type == MAP_VI) el->el_line.cursor = el->el_line.buffer; @@ -149,22 +153,41 @@ hist_get(EditLine *el) } -/* hist_list() - * List history entries +/* hist_command() + * process a history command */ protected int /*ARGSUSED*/ -hist_list(EditLine *el, int argc __attribute__((unused)), - const char **argv __attribute__((unused))) +hist_command(EditLine *el, int argc, const char **argv) { const char *str; + int num; + HistEvent ev; if (el->el_history.ref == NULL) return (-1); - for (str = HIST_LAST(el); str != NULL; str = HIST_PREV(el)) - (void) fprintf(el->el_outfile, "%d %s", - el->el_history.ev.num, str); - return (0); + + if (argc == 0 || strcmp(argv[0], "list") == 1) { + /* List history entries */ + + for (str = HIST_LAST(el); str != NULL; str = HIST_PREV(el)) + (void) fprintf(el->el_outfile, "%d %s", + el->el_history.ev.num, str); + return (0); + } + + if (argc != 2) + return (-1); + + num = (int)strtol(argv[1], NULL, 0); + + if (strcmp(argv[0], "size") == 0) + return history(el->el_history.ref, &ev, H_SETSIZE, num); + + if (strcmp(argv[0], "unique") == 0) + return history(el->el_history.ref, &ev, H_SETUNIQUE, num); + + return -1; } /* hist_enlargebuf() |