X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=ao-tools%2Fao-dbg%2Fao-dbg-main.c;h=772701a94315543260b101747021a63ea213930e;hb=88e279b15b3d2357f142e58d20d73c24bf2561eb;hp=21b83a3dbc2b6c01327f05fe1e72ae59111b400a;hpb=73adae3661160d410dcc802873b530d255c210e5;p=fw%2Faltos diff --git a/ao-tools/ao-dbg/ao-dbg-main.c b/ao-tools/ao-dbg/ao-dbg-main.c index 21b83a3d..772701a9 100644 --- a/ao-tools/ao-dbg/ao-dbg-main.c +++ b/ao-tools/ao-dbg/ao-dbg-main.c @@ -16,6 +16,10 @@ * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. */ +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "ao-dbg.h" #include #include @@ -46,7 +50,8 @@ usage(void) exit(1); } -void s51_sigint() +static void +s51_sigint(int signum) { s51_interrupted = 1; } @@ -60,9 +65,8 @@ static const struct option options[] = { int main(int argc, char **argv) { - int flags, opt; + int opt; char *endptr; - struct sigvec vec, ovec; while ((opt = getopt_long(argc, argv, "PVvHhmt:X:c:r:Z:s:S:p:T:", options, NULL)) != -1) { switch (opt) { @@ -165,22 +169,16 @@ main(int argc, char **argv) perror("fdopen"); exit(1); } - vec.sv_handler = SIG_IGN; - vec.sv_mask = 0; - vec.sv_flags = 0; - sigvec(SIGINT, &vec, &ovec); + signal(SIGINT, SIG_IGN); command_read(); - sigvec(SIGINT, &ovec, NULL); + signal(SIGINT, SIG_DFL); fclose(s51_input); fclose(s51_output); } } else { s51_input = stdin; s51_output = stdout; - vec.sv_handler = s51_sigint; - vec.sv_mask = 0; - vec.sv_flags = 0; - sigvec(SIGINT, &vec, &ovec); + signal(SIGINT, s51_sigint); command_read(); } exit(0); @@ -204,13 +202,16 @@ s51_putc(int c) putc(c, s51_output); } +#if HAVE_LIBREADLINE #include #include +#endif int s51_read_line(char *line, int len) { int ret; +#if HAVE_LIBREADLINE if (s51_output == stdout && s51_input == stdin && s51_prompt) { char *r; @@ -221,7 +222,9 @@ s51_read_line(char *line, int len) line[len-1] = '\0'; add_history(r); return 1; - } else { + } else +#endif + { if (s51_prompt) s51_printf("%s", s51_prompt); else @@ -240,7 +243,6 @@ s51_check_input(void) { struct pollfd input; int r; - int c; input.fd = fileno(s51_input); input.events = POLLIN;