From: Daniel Stenberg Date: Fri, 10 Nov 2000 09:18:25 +0000 (+0000) Subject: new interface, updated Angus' license, dependent on HAVE_GETPASS_R X-Git-Tag: upstream/7.37.1~17497 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a5b2eb7962524aad65f07c5755920379af5717e3;p=platform%2Fupstream%2Fcurl.git new interface, updated Angus' license, dependent on HAVE_GETPASS_R --- diff --git a/lib/getpass.c b/lib/getpass.c index 0811286..f5833cc 100644 --- a/lib/getpass.c +++ b/lib/getpass.c @@ -4,8 +4,9 @@ * Redistribution and use are freely permitted provided that: * * 1) This header remain in tact. - * 2) The prototype for getpass is not changed from: - * int getpass_r(const char *prompt, char *buffer, int buflen) + * 2) The prototypes for getpass and getpass_r are not changed from: + * char *getpass(const char *prompt) + * char *getpass_r(const char *prompt, char* buffer, int buflen) * 3) This source code is not used outside of this(getpass.c) file. * 4) Any changes to this(getpass.c) source code are made publicly available. * @@ -34,11 +35,13 @@ * Daniel Stenberg */ -#ifndef WIN32 #ifdef HAVE_CONFIG_H # include #endif +#ifndef HAVE_GETPASS_R + +#ifndef WIN32 #ifdef HAVE_TERMIOS_H # if !defined(HAVE_TCGETATTR) && !defined(HAVE_TCSETATTR) # undef HAVE_TERMIOS_H @@ -68,7 +71,7 @@ # define perror(x) fprintf(stderr, "Error in: %s\n", x) #endif -int getpass_r(const char *prompt, char *buffer, int buflen) +char *getpass_r(const char *prompt, char *buffer, int buflen) { FILE *infp; FILE *outfp; @@ -176,12 +179,12 @@ int getpass_r(const char *prompt, char *buffer, int buflen) signal(SIGTSTP, sigtstp); #endif - return 0; /* we always return success */ + return buffer; /* we always return success */ } #else /* WIN32 */ #include #include -int getpass_r(const char *prompt, char *buffer, int buflen) +char *getpass_r(const char *prompt, char *buffer, int buflen) { int i; printf("%s", prompt); @@ -197,7 +200,17 @@ int getpass_r(const char *prompt, char *buffer, int buflen) if (i==buflen) buffer[buflen-1]=0; - return 0; /* we always return success */ + return buffer; /* we always return success */ } #endif +#endif /* ifndef HAVE_GETPASS_R */ + +#if 0 +/* for consistensy, here's the old-style function: */ +char *getpass(const char *prompt) +{ + static char buf[256]; + return getpass_r(prompt, buf, sizeof(buf)); +} +#endif diff --git a/lib/getpass.h b/lib/getpass.h index 2f63e6d..6245f22 100644 --- a/lib/getpass.h +++ b/lib/getpass.h @@ -1,8 +1,8 @@ #ifndef __GETPASS_H #define __GETPASS_H /* - * Returning non-zero will abort the continued operation! + * Returning NULL will abort the continued operation! */ -int getpass_r(char *prompt, char* buffer, int buflen ); +char* getpass_r(char *prompt, char* buffer, int buflen ); #endif