mirror of
https://github.com/troglobit/editline.git
synced 2025-09-15 15:58:11 +08:00
Revert function pointers for rl_complete() and rl_list_possib() introduced in 0.2.2.
Instead merge afd8b4de9dca8ec6afc3 from http://github.com/heimdal/heimdal.git project. This lets rl_complete() and rl_list_possib() become wrapper functions calling a set of function pointers, set using rl_set_complete_func() and rl_set_list_possib_funct(). Each wrapper has a fallback to do filename completion, which in turn can be disabled by leaving out --enable-default-complete from the configure line. This change, admittedly quite intrusive for a library, is a better implementation in many ways. For one it is much more readable, but it also enables further adoption of other editline forks as well as a simpler implementation of GNU Readline function pointers rl_completion_entry_function and rl_attempted_completion_function at a later stage. My apologies to everyone for whom this change breaks backwards compatibility. For help on converting your code, please see examples/cli.c.
This commit is contained in:
@@ -21,12 +21,18 @@
|
||||
#ifndef __EDITLINE_H__
|
||||
#define __EDITLINE_H__
|
||||
|
||||
/* Editline specific types, despite rl_ prefix. From Heimdal project. */
|
||||
typedef char* (*rl_complete_func_t)(char*, int*);
|
||||
typedef int (*rl_list_possib_func_t)(char*, char***);
|
||||
|
||||
/* Display print 8-bit chars as `M-x' or as the actual 8-bit char? (Default:1) */
|
||||
extern int rl_meta_chars;
|
||||
|
||||
/* Assign these to get command completion, see cli.c for example usage. */
|
||||
extern char *(*rl_complete) (char *token, int *match);
|
||||
extern int (*rl_list_possib)(char *token, char ***av);
|
||||
/* Use these functions to set custom command/file completion, see cli.c for example usage. */
|
||||
rl_complete_func_t rl_set_complete_func(rl_complete_func_t func);
|
||||
rl_list_possib_func_t rl_set_list_possib_func(rl_list_possib_func_t func);
|
||||
|
||||
/* Editline specific functions. */
|
||||
|
||||
/* For compatibility with FSF readline. */
|
||||
extern int rl_point;
|
||||
|
Reference in New Issue
Block a user