/*
- * Copyright (C) 1998-2009 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1998-2010 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
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;
}
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)) {
command_list[num].handler();
}
free(tmp);
+ return;
}
/* not found, check internal key bindings */
for (i = 0; command_list[i].handler; i++) {