diff options
author | MySQL Team <mysql@php.net> | 2000-08-22 09:02:46 +0000 |
---|---|---|
committer | MySQL Team <mysql@php.net> | 2000-08-22 09:02:46 +0000 |
commit | 4b1380e31c0f6e76c629611c7ba8c4e2e961a2fd (patch) | |
tree | 853d1881366287956bbfa7edf2f4edc0ae62637e /ext/mysql/libmysql/get_password.c | |
parent | bac08af4cb97ea7e9db18a4267fb070264792f2f (diff) | |
download | php-git-4b1380e31c0f6e76c629611c7ba8c4e2e961a2fd.tar.gz |
New files for MySQL 3.23.23 client library. New files are for qouting
using different character sets.
Diffstat (limited to 'ext/mysql/libmysql/get_password.c')
-rw-r--r-- | ext/mysql/libmysql/get_password.c | 123 |
1 files changed, 68 insertions, 55 deletions
diff --git a/ext/mysql/libmysql/get_password.c b/ext/mysql/libmysql/get_password.c index e0a460c3a3..d61c40a955 100644 --- a/ext/mysql/libmysql/get_password.c +++ b/ext/mysql/libmysql/get_password.c @@ -1,5 +1,19 @@ -/* 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 (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB + + This library is free software; you can redistribute it and/or + modify it under the terms of the GNU Library General Public + License as published by the Free Software Foundation; either + version 2 of the License, or (at your option) any later version. + + This library is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU + Library General Public License for more details. + + You should have received a copy of the GNU Library General Public + License along with this library; if not, write to the Free + Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, + MA 02111-1307, USA */ /* ** Ask for a password from tty @@ -21,7 +35,7 @@ #include <pwd.h> #endif /* HAVE_PWD_H */ #else /* ! HAVE_GETPASS */ -#ifndef __WIN32__ +#ifndef __WIN__ #include <sys/ioctl.h> #ifdef HAVE_TERMIOS_H /* For tty-password */ #include <termios.h> @@ -41,14 +55,14 @@ #endif #else #include <conio.h> -#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 +102,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 +209,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__*/ |