~earboxer/suggpicker

da3ce831fdeed71dd2a0e3deb977d6bc770ef2f9 — Zach DeCook 1 year, 10 months ago 24f516a
suggestion: take from stdin
1 files changed, 19 insertions(+), 3 deletions(-)

M main.c
M main.c => main.c +19 -3
@@ 380,13 380,29 @@ show(int sigint) {
}

void
handle_input(FILE *fd) {
handle_input(FILE *fd, struct key *sugg) {
	char *line;
	line = malloc(1024);

	if (fgets(line, 1024, fd) != NULL) {
		fprintf(stderr, "Retrieved line: %s", line);
		
		int i;
		struct key *key = sugg;
		char *l = line;
		for (i = 0; l[i+1]; i++) {
			if (l[i] == '\t') {
				// free label?
				key->label = strndup(l,i);
				l += i + 1;
				i = 0;
				key++;
			} else if (l[i] == '\n') {
				break;
			}
		}		
		key->label = strndup(l,i);
		key+=sizeof(struct key*);
		key->label = NULL;
	}

	free(line);


@@ 506,7 522,7 @@ main(int argc, char **argv) {
	while (run_display) {
		while(layer_surface && poll(fds, 2, -1) != -1) {
			if (fds[0].revents & POLLIN) {
				handle_input(stdin);
				handle_input(stdin, keyboard.suggs);
			}
			if (wl_display_dispatch(display) == -1) {
				break;