Module Name: src
Committed By: christos
Date: Tue May 26 19:59:21 UTC 2015
Modified Files:
src/lib/libedit: readline.c
src/lib/libedit/readline: readline.h
Log Message:
- fix types of rl_completion_entry_function and rl_add_defun
- call update pos before completion to refresh the screen
>From Thomas Eriksson
To generate a diff of this commit:
cvs rdiff -u -r1.115 -r1.116 src/lib/libedit/readline.c
cvs rdiff -u -r1.34 -r1.35 src/lib/libedit/readline/readline.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/lib/libedit/readline.c
diff -u src/lib/libedit/readline.c:1.115 src/lib/libedit/readline.c:1.116
--- src/lib/libedit/readline.c:1.115 Wed Apr 1 11:23:15 2015
+++ src/lib/libedit/readline.c Tue May 26 15:59:21 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: readline.c,v 1.115 2015/04/01 15:23:15 christos Exp $ */
+/* $NetBSD: readline.c,v 1.116 2015/05/26 19:59:21 christos Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -31,7 +31,7 @@
#include "config.h"
#if !defined(lint) && !defined(SCCSID)
-__RCSID("$NetBSD: readline.c,v 1.115 2015/04/01 15:23:15 christos Exp $");
+__RCSID("$NetBSD: readline.c,v 1.116 2015/05/26 19:59:21 christos Exp $");
#endif /* not lint && not SCCSID */
#include <sys/types.h>
@@ -107,7 +107,7 @@ int rl_attempted_completion_over = 0;
char *rl_basic_word_break_characters = break_chars;
char *rl_completer_word_break_characters = NULL;
char *rl_completer_quote_characters = NULL;
-Function *rl_completion_entry_function = NULL;
+CPFunction *rl_completion_entry_function = NULL;
char *(*rl_completion_word_break_hook)(void) = NULL;
CPPFunction *rl_attempted_completion_function = NULL;
Function *rl_pre_input_hook = NULL;
@@ -160,7 +160,7 @@ int rl_completion_append_character = ' '
static History *h = NULL;
static EditLine *e = NULL;
-static Function *map[256];
+static rl_command_func_t *map[256];
static jmp_buf topbuf;
/* internal functions */
@@ -1827,6 +1827,8 @@ rl_complete(int ignore __attribute__((__
else
breakchars = rl_basic_word_break_characters;
+ _rl_update_pos();
+
/* Just look at how many global variables modify this operation! */
return fn_complete(e,
(CPFunction *)rl_completion_entry_function,
@@ -1958,7 +1960,7 @@ rl_bind_wrapper(EditLine *el __attribute
_rl_update_pos();
- (*map[c])(NULL, c);
+ (*map[c])(1, c);
/* If rl_done was set by the above call, deal with it here */
if (rl_done)
@@ -1968,7 +1970,7 @@ rl_bind_wrapper(EditLine *el __attribute
}
int
-rl_add_defun(const char *name, Function *fun, int c)
+rl_add_defun(const char *name, rl_command_func_t *fun, int c)
{
char dest[8];
if ((size_t)c >= sizeof(map) / sizeof(map[0]) || c < 0)
Index: src/lib/libedit/readline/readline.h
diff -u src/lib/libedit/readline/readline.h:1.34 src/lib/libedit/readline/readline.h:1.35
--- src/lib/libedit/readline/readline.h:1.34 Mon May 27 20:10:34 2013
+++ src/lib/libedit/readline/readline.h Tue May 26 15:59:21 2015
@@ -1,4 +1,4 @@
-/* $NetBSD: readline.h,v 1.34 2013/05/28 00:10:34 christos Exp $ */
+/* $NetBSD: readline.h,v 1.35 2015/05/26 19:59:21 christos Exp $ */
/*-
* Copyright (c) 1997 The NetBSD Foundation, Inc.
@@ -108,7 +108,7 @@ extern int max_input_history;
extern char *rl_basic_word_break_characters;
extern char *rl_completer_word_break_characters;
extern char *rl_completer_quote_characters;
-extern Function *rl_completion_entry_function;
+extern CPFunction *rl_completion_entry_function;
extern char *(*rl_completion_word_break_hook)(void);
extern CPPFunction *rl_attempted_completion_function;
extern int rl_attempted_completion_over;
@@ -194,7 +194,7 @@ int rl_read_init_file(const char *);
int rl_parse_and_bind(const char *);
int rl_variable_bind(const char *, const char *);
void rl_stuff_char(int);
-int rl_add_defun(const char *, Function *, int);
+int rl_add_defun(const char *, rl_command_func_t *, int);
HISTORY_STATE *history_get_history_state(void);
void rl_get_screen_size(int *, int *);
void rl_set_screen_size(int, int);