X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=getpass.c;h=3c19ba7c832fb9f3825c3b98c6d29e7cd5024351;hb=2629c4511c68729d98acfd08637c1f00d3807f49;hp=fc021bae01f90fc8dafb800c6e3bc632f35da041;hpb=d0c2c187633fa906eee672c21f46a2ac68148d15;p=~andy%2Ffetchmail diff --git a/getpass.c b/getpass.c index fc021bae..3c19ba7c 100644 --- a/getpass.c +++ b/getpass.c @@ -17,6 +17,7 @@ #include #include #include +#include #if defined(HAVE_UNISTD_H) #include #endif @@ -55,20 +56,19 @@ static int ttyfd; #endif #endif -void static save_tty_state(void); -void static disable_tty_echo(void); -void static restore_tty_state(void); +static void save_tty_state(void); +static void disable_tty_echo(void); +static void restore_tty_state(void); static RETSIGTYPE sigint_handler(int); -char *getpassword(prompt) -char *prompt; +char *fm_getpassword(char *prompt) { #if !(defined(HAVE_TCSETATTR) || defined(HAVE_TERMIO_H) || defined(HAVE_STTY)) #if defined(HAVE_GETPASS) char *getpass(); return getpass(prompt); #else - fputs(_("ERROR: no support for getpassword() routine\n"),stderr); + fputs(GT_("ERROR: no support for getpassword() routine\n"),stderr); exit(1); #endif #else @@ -76,8 +76,7 @@ char *prompt; register int c; FILE *fi; static char pbuf[INPUT_BUF_SIZE]; - RETSIGTYPE (*sig)(int) = 0; /* initialization pacifies -Wall */ - RETSIGTYPE sigint_handler(int); + SIGHANDLERTYPE sig = 0; /* initialization pacifies -Wall */ int istty = isatty(0); @@ -102,7 +101,7 @@ char *prompt; /* now that we have the current tty state, we can catch SIGINT and exit gracefully */ - sig = signal(SIGINT, sigint_handler); + sig = set_signal_handler(SIGINT, sigint_handler); /* turn off echo on the tty */ disable_tty_echo(); @@ -128,10 +127,10 @@ char *prompt; restore_tty_state(); /* restore previous state of SIGINT */ - signal(SIGINT, sig); + set_signal_handler(SIGINT, sig); } if (fi != stdin) - fclose(fi); + fclose(fi); /* not checking should be safe, file mode was "r" */ return(pbuf); #endif /* !(defined(HAVE_TCSETATTR) || ... */ @@ -189,8 +188,9 @@ static void restore_tty_state(void) static RETSIGTYPE sigint_handler(int signum) { + (void)signum; restore_tty_state(); - report(stderr, _("\nCaught signal... bailing out.\n")); + report(stderr, GT_("\nCaught SIGINT... bailing out.\n")); exit(1); }