I’ve got a question about Readline Library.
I want to know if Readline can autocomplete filename from directories in a C program ?
I’ve searched and only seen command name completion.
thanks in advance.
EDIT: I’ve copy filename in an array.
These as functions that I use :
in the file rline.c, char *command_generator,char **tab_completion (const char *text, int start, int end),void initialize_readline (). I think I have to use char * filename_completion_function (char *text, int state) ? When I type on “tab” key, it calls nothing, bind() didn’t seem to be used. Do you know if I use right functions ?
thanks !!
Filename completion is a built-in feature of readline, you don’t need to populate filename lists etc. Here with readline 6.1 the following program allows filename completion by default.
There are ways to customize this mechanism, e.g. you can specify some functions like
rl_filename_quoting_functionandrl_filename_dequoting_functionto help readline provide proper filename quotation for your application.I think you need to specify your version of readline if this doesn’t work for you.
/etc/inputrccontents should be examined as well. Do you havebash, which uses readline? Does the filename completion work there as expected?Anyway,
info readlineis a very good documentation provided you can useinfoitself 🙂 If not, look at Programming with GNU Readline.