summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJohn Hawthorn <john.hawthorn@gmail.com>2016-06-19 23:36:39 -0700
committerJohn Hawthorn <john.hawthorn@gmail.com>2016-06-20 23:31:05 -0700
commitbf4937bc910db2944dc50edd67bbd545e76821e2 (patch)
treec865a9d8e218b42945ec4672d106eb45b67971e7 /src
parent2c802e23845a5320cfcfcec13d229c9b938698a8 (diff)
Return exit code from run
Diffstat (limited to 'src')
-rw-r--r--src/fzy.c6
-rw-r--r--src/tty_interface.c6
-rw-r--r--src/tty_interface.h4
3 files changed, 11 insertions, 5 deletions
diff --git a/src/fzy.c b/src/fzy.c
index 654bd40..3b47475 100644
--- a/src/fzy.c
+++ b/src/fzy.c
@@ -13,6 +13,8 @@
#include "../config.h"
int main(int argc, char *argv[]) {
+ int ret = 0;
+
options_t options;
options_parse(&options, argc, argv);
@@ -47,10 +49,10 @@ int main(int argc, char *argv[]) {
tty_interface_t tty_interface;
tty_interface_init(&tty_interface, &tty, &choices, &options);
- tty_interface_run(&tty_interface);
+ ret = tty_interface_run(&tty_interface);
}
choices_destroy(&choices);
- return 0;
+ return ret;
}
diff --git a/src/tty_interface.c b/src/tty_interface.c
index 03f71fb..e3329e3 100644
--- a/src/tty_interface.c
+++ b/src/tty_interface.c
@@ -113,7 +113,7 @@ void tty_interface_init(tty_interface_t *state, tty_t *tty, choices_t *choices,
strncpy(state->search, options->init_search, SEARCH_SIZE_MAX);
}
-void tty_interface_run(tty_interface_t *state) {
+int tty_interface_run(tty_interface_t *state) {
tty_t *tty = state->tty;
choices_t *choices = state->choices;
char *search = state->search;
@@ -164,7 +164,7 @@ void tty_interface_run(tty_interface_t *state) {
emit(state);
/* Return to eventually exit successfully */
- return;
+ return 0;
} else if (ch == KEY_ESC) { /* ESC */
ch = tty_getchar(tty);
if (ch == '[' || ch == 'O') {
@@ -177,4 +177,6 @@ void tty_interface_run(tty_interface_t *state) {
}
}
} while (1);
+
+ return 0;
}
diff --git a/src/tty_interface.h b/src/tty_interface.h
index 4122271..d6b05de 100644
--- a/src/tty_interface.h
+++ b/src/tty_interface.h
@@ -13,9 +13,11 @@ typedef struct {
options_t *options;
char search[SEARCH_SIZE_MAX + 1];
+
+ int exit;
} tty_interface_t;
void tty_interface_init(tty_interface_t *state, tty_t *tty, choices_t *choices, options_t *options);
-void tty_interface_run(tty_interface_t *state);
+int tty_interface_run(tty_interface_t *state);
#endif