-/*
- * Copyright (C) 2011-2012 Andre Noll <maan@systemlinux.org>
- *
- * Licensed under the GPL v2. For licencing details see COPYING.
- */
+/* Copyright (C) 2011 Andre Noll <maan@tuebingen.mpg.de>, see file COPYING. */
/** \file interactive.h Public API for interactive sessions. */
*
* \param name Determines the name of the function to be defined.
*/
-#define I9E_DUMMY_COMPLETER(name) void name ## _completer( \
+#define I9E_DUMMY_COMPLETER(name) static void name ## _completer( \
__a_unused struct i9e_completion_info *ciname, \
struct i9e_completion_result *result) {result->matches = NULL;}
int loglevel;
/** Complete input lines are passed to this callback function. */
int (*line_handler)(char *line);
+ /** In single key mode, this callback is executed instead. */
+ int (*key_handler)(int key);
+ /** The array of valid key sequences for libreadline. */
+ char **bound_keyseqs;
/** File descriptors to use for input/output/log. */
int fds[3];
/** Text of the current prompt. */
* completer if the cursor is not on the first word.
*/
struct i9e_completer *completers;
+ /**
+ * If non-NULL, this node is attached immediately to the stdout btr
+ * node of the i9e subsystem.
+ */
+ struct btr_node *producer;
};
int i9e_open(struct i9e_client_info *ici, struct sched *s);
void i9e_attach_to_stdout(struct btr_node *producer);
+void ie9_print_status_bar(char *buf, unsigned len);
void i9e_close(void);
void i9e_signal_dispatch(int sig_num);
__printf_2_3 void i9e_log(int ll, const char* fmt,...);
void i9e_complete_option(char **opts, struct i9e_completion_info *ci,
struct i9e_completion_result *cr);
int i9e_print_completions(struct i9e_completer *completers);
+int i9e_get_error(void);