enum rdline_status {
RDLINE_INIT,
- RDLINE_RUNNING
+ RDLINE_RUNNING,
+ RDLINE_EXITED
};
struct rdline;
-typedef void (rdline_write_char_t)(struct rdline *rdl, char);
+typedef int (rdline_write_char_t)(struct rdline *rdl, char);
typedef void (rdline_validate_t)(struct rdline *rdl,
const char *buf, unsigned int size);
typedef int (rdline_complete_t)(struct rdline *rdl, const char *buf,
void rdline_stop(struct rdline *rdl);
/**
- * Restart after a call to rdline_stop()
+ * Same than rdline_stop() except that next calls to rdline_char_in()
+ * will return RDLINE_RES_EXITED.
+ * \param rdl A pointer to a struct rdline
+ */
+void rdline_quit(struct rdline *rdl);
+
+/**
+ * Restart after a call to rdline_stop() or rdline_quit()
* \param rdl A pointer to a struct rdline
*/
void rdline_restart(struct rdline *rdl);
#define RDLINE_RES_COMPLETE 2
#define RDLINE_RES_NOT_RUNNING -1
#define RDLINE_RES_EOF -2
+#define RDLINE_RES_EXITED -3
/**
* append a char to the readline buffer.