void i9e_signal_dispatch(int sig_num);
__printf_2_3 void i9e_log(int ll, const char* fmt,...);
int i9e_poll(struct pollfd *fds, nfds_t nfds, int timeout);
-int i9e_extract_completions(const char *word, char **string_list,
+int i9e_extract_completions(const char *word, char * const *string_list,
char ***result);
- char **i9e_complete_commands(const char *word, struct i9e_completer *completers);
+ char **i9e_complete_commands(const char *word, const struct i9e_completer *completers);
-void i9e_complete_option(char **opts, struct i9e_completion_info *ci,
- struct i9e_completion_result *cr);
+void i9e_complete_option(char * const *opts,
+ struct i9e_completion_info *ci, struct i9e_completion_result *cr);
+unsigned i9e_get_nonopt_argnum(char * const *opts,
+ struct i9e_completion_info *ci);
+int i9e_cword_is_option_arg(char * const *opts, struct i9e_completion_info *ci);
- int i9e_print_completions(struct i9e_completer *completers);
+ int i9e_print_completions(const struct i9e_completer *completers);
int i9e_get_error(void);
void i9e_ll_completer(struct i9e_completion_info *ci,
struct i9e_completion_result *cr);