X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=gui.c;h=f2098d45162bd854de5c256feb35d2aab9fe730b;hb=fecbff83c4ca773815965f4ebdc7e6d9769a87dc;hp=45b477fb19b8bddaa43918b2d86676584c12b864;hpb=e8089cd5efad59a5eec689117acf563a38b8c6c7;p=paraslash.git diff --git a/gui.c b/gui.c index 45b477fb..f2098d45 100644 --- a/gui.c +++ b/gui.c @@ -730,6 +730,8 @@ static int read_audiod_pipe(int fd) ret = for_each_stat_item(buf, loaded, update_item); if (ret < 0) return ret; + if (ret > 0 && ret < loaded) + memmove(buf, buf + loaded - ret, ret); loaded = ret; return 1; } @@ -953,11 +955,9 @@ repeat: if (ret <= 0) goto check_return; /* skip fd checks */ /* signals */ - if (FD_ISSET(signal_pipe, &rfds)) { - int sig_nr = para_next_signal(); - if (sig_nr > 0) - handle_signal(sig_nr); - } + ret = para_next_signal(&rfds); + if (ret > 0) + handle_signal(ret); /* read command pipe if ready */ if (command_pipe >= 0 && mode == COMMAND_MODE && FD_ISSET(command_pipe, &rfds)) { @@ -1371,6 +1371,7 @@ static void handle_command(int c) command_list[num].handler(); } free(tmp); + return; } /* not found, check internal key bindings */ for (i = 0; command_list[i].handler; i++) {