]> Pileus Git - ~andy/fetchmail/blobdiff - getpass.c
Attempt merging from 6.3.24.
[~andy/fetchmail] / getpass.c
index 12f58627545daadd0c1522f5d44fa68ef138b2cb..c1624299eb43d75a494420ce7694c83aa0f93903 100644 (file)
--- a/getpass.c
+++ b/getpass.c
 #include <signal.h>
 #include <fcntl.h>
 #include <stdlib.h>
-#if defined(HAVE_UNISTD_H)
 #include <unistd.h>
-#endif
 #include "fetchmail.h"
-#include "i18n.h"
+#include "gettext.h"
 
 #define INPUT_BUF_SIZE PASSWORDLEN
 
-#if defined(HAVE_TERMIOS_H) && defined(HAVE_TCSETATTR)
-#  include <termios.h>
-#else
-#if defined(HAVE_TERMIO_H)
-#  include <sys/ioctl.h>
-#  include <termio.h>
-#else
-#if defined(HAVE_SGTTY_H)
-#  include <sgtty.h>
-#endif
-#endif
-#endif
+#include <termios.h>
 
 static int ttyfd;
 
-#if defined(HAVE_TCSETATTR)
-  static struct termios termb;
-  static tcflag_t flags;
-#else
-#if defined(HAVE_TERMIO_H)
-  static struct termio termb;
-  static unsigned short flags;
-#else
-#if defined(HAVE_STTY)
-  static struct sgttyb ttyb;
-  static int flags;
-#endif
-#endif
-#endif
+static struct termios termb;
+static tcflag_t flags;
 
 static void save_tty_state(void);
 static void disable_tty_echo(void);
 static void restore_tty_state(void);
-static RETSIGTYPE sigint_handler(int);
+static void 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(GT_("ERROR: no support for getpassword() routine\n"),stderr);
-    exit(1);
-#endif
-#else
     register char *p;
     register int c;
     FILE *fi;
@@ -134,60 +99,29 @@ char *prompt;
        fclose(fi);     /* not checking should be safe, file mode was "r" */
 
     return(pbuf);
-#endif /* !(defined(HAVE_TCSETATTR) || ... */
 }
 
 static void save_tty_state (void)
 {
-#if defined(HAVE_TCSETATTR)
     tcgetattr(ttyfd, &termb);
     flags = termb.c_lflag;
-#else
-#if defined(HAVE_TERMIO_H)
-    ioctl(ttyfd, TCGETA, (char *) &termb);
-    flags = termb.c_lflag;
-#else  /* we HAVE_STTY */
-    gtty(ttyfd, &ttyb);
-    flags = ttyb.sg_flags;
-#endif
-#endif
 }
 
 static void disable_tty_echo(void) 
 {
     /* turn off echo on the tty */
-#if defined(HAVE_TCSETATTR)
     termb.c_lflag &= ~ECHO;
     tcsetattr(ttyfd, TCSAFLUSH, &termb);
-#else
-#if defined(HAVE_TERMIO_H)
-    termb.c_lflag &= ~ECHO;
-    ioctl(ttyfd, TCSETA, (char *) &termb);
-#else  /* we HAVE_STTY */
-    ttyb.sg_flags &= ~ECHO;
-    stty(ttyfd, &ttyb);
-#endif
-#endif
 }
 
 static void restore_tty_state(void)
 {
     /* restore previous tty echo state */
-#if defined(HAVE_TCSETATTR)
     termb.c_lflag = flags;
     tcsetattr(ttyfd, TCSAFLUSH, &termb);
-#else
-#if defined(HAVE_TERMIO_H)
-    termb.c_lflag = flags;
-    ioctl(ttyfd, TCSETA, (char *) &termb);
-#else  /* we HAVE_STTY */
-    ttyb.sg_flags = flags;
-    stty(ttyfd, &ttyb);
-#endif
-#endif
 }
 
-static RETSIGTYPE sigint_handler(int signum)
+static void sigint_handler(int signum)
 {
     (void)signum;
     restore_tty_state();