]> Pileus Git - ~andy/fetchmail/blobdiff - getpass.c
Minor bug fixes for socket.c
[~andy/fetchmail] / getpass.c
index f89f32aab22dd76e9cb408f4ca68d58495e457ec..3c19ba7c832fb9f3825c3b98c6d29e7cd5024351 100644 (file)
--- a/getpass.c
+++ b/getpass.c
@@ -17,6 +17,7 @@
 #include <stdio.h>
 #include <signal.h>
 #include <fcntl.h>
+#include <stdlib.h>
 #if defined(HAVE_UNISTD_H)
 #include <unistd.h>
 #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 *fm_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,7 +127,7 @@ char *prompt;
        restore_tty_state();
 
        /* restore previous state of SIGINT */
-       signal(SIGINT, sig);
+       set_signal_handler(SIGINT, sig);
     }
     if (fi != stdin)
        fclose(fi);     /* not checking should be safe, file mode was "r" */
@@ -189,8 +188,9 @@ static void restore_tty_state(void)
 
 static RETSIGTYPE sigint_handler(int signum)
 {
+    (void)signum;
     restore_tty_state();
-    report(stderr, _("\nCaught SIGINT... bailing out.\n"));
+    report(stderr, GT_("\nCaught SIGINT... bailing out.\n"));
     exit(1);
 }