mirror of
				https://github.com/troglobit/editline.git
				synced 2025-10-31 08:18: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
	 Joachim Nilsson
					Joachim Nilsson