From a2dbb10eb14801370522ec248e1d819eb38a83a2 Mon Sep 17 00:00:00 2001 From: MySQL Team Date: Fri, 20 Oct 2000 22:26:48 +0000 Subject: Update libmysql to 3.23 version. No major changes visible to the user - mostly bug fixes and other maintenance-oriented changes. --- ext/mysql/libmysql/get_password.c | 109 +++++++++++++++++++------------------- 1 file changed, 54 insertions(+), 55 deletions(-) (limited to 'ext/mysql/libmysql/get_password.c') diff --git a/ext/mysql/libmysql/get_password.c b/ext/mysql/libmysql/get_password.c index e0a460c3a3..c0c6f90406 100644 --- a/ext/mysql/libmysql/get_password.c +++ b/ext/mysql/libmysql/get_password.c @@ -1,5 +1,5 @@ -/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB - This file is public domain and comes with NO WARRANTY of any kind */ +/* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB +This file is public domain and comes with NO WARRANTY of any kind */ /* ** Ask for a password from tty @@ -21,7 +21,7 @@ #include #endif /* HAVE_PWD_H */ #else /* ! HAVE_GETPASS */ -#ifndef __WIN32__ +#ifndef __WIN__ #include #ifdef HAVE_TERMIOS_H /* For tty-password */ #include @@ -41,14 +41,14 @@ #endif #else #include -#endif /* __WIN32__ */ +#endif /* __WIN__ */ #endif /* HAVE_GETPASS */ #ifdef HAVE_GETPASSPHRASE /* For Solaris */ #define getpass(A) getpassphrase(A) #endif -#ifdef __WIN32__ +#ifdef __WIN__ /* were just going to fake it here and get input from the keyboard */ @@ -88,7 +88,54 @@ char *get_tty_password(char *opt_message) #else -static void get_password(char *to,uint length,int file_no,bool echo); + +#ifndef HAVE_GETPASS +/* +** Can't use fgets, because readline will get confused +** length is max number of chars in to, not counting \0 +* to will not include the eol characters. +*/ + +static void get_password(char *to,uint length,int fd,bool echo) +{ + char *pos=to,*end=to+length; + + for (;;) + { + char tmp; + if (my_read(fd,&tmp,1,MYF(0)) != 1) + break; + if (tmp == '\b' || (int) tmp == 127) + { + if (pos != to) + { + if (echo) + { + fputs("\b \b",stdout); + fflush(stdout); + } + pos--; + continue; + } + } + if (tmp == '\n' || tmp == '\r' || tmp == 3) + break; + if (iscntrl(tmp) || pos == end) + continue; + if (echo) + { + fputc('*',stdout); + fflush(stdout); + } + *(pos++) = tmp; + } + while (pos != to && isspace(pos[-1]) == ' ') + pos--; /* Allow dummy space at end */ + *pos=0; + return; +} +#endif /* ! HAVE_GETPASS */ + char *get_tty_password(char *opt_message) { @@ -148,52 +195,4 @@ char *get_tty_password(char *opt_message) DBUG_RETURN(my_strdup(buff,MYF(MY_FAE))); } - -#ifndef HAVE_GETPASS -/* -** Can't use fgets, because readline will get confused -** length is max number of chars in to, not counting \0 -* to will not include the eol characters. -*/ - -void get_password(char *to,uint length,int fd,bool echo) -{ - char *pos=to,*end=to+length; - - for (;;) - { - char tmp; - if (my_read(fd,&tmp,1,MYF(0)) != 1) - break; - if (tmp == '\b' || (int) tmp == 127) - { - if (pos != to) - { - if (echo) - { - fputs("\b \b",stdout); - fflush(stdout); - } - pos--; - continue; - } - } - if (tmp == '\n' || tmp == '\r' || tmp == 3) - break; - if (iscntrl(tmp) || pos == end) - continue; - if (echo) - { - fputc('*',stdout); - fflush(stdout); - } - *(pos++) = tmp; - } - while (pos != to && isspace(pos[-1]) == ' ') - pos--; /* Allow dummy space at end */ - *pos=0; - return; -} -#endif /* ! HAVE_GETPASS */ - -#endif /*__WIN32__*/ +#endif /*__WIN__*/ -- cgit v1.2.1