diff options
| author | Daniel Stenberg <daniel@haxx.se> | 2001-08-06 12:20:28 +0000 | 
|---|---|---|
| committer | Daniel Stenberg <daniel@haxx.se> | 2001-08-06 12:20:28 +0000 | 
| commit | 6f543f3ede618e1f980e1c54bf9560ee196678e2 (patch) | |
| tree | d11189bcfa64ba84379d45d3e159628b4fa857cf | |
| parent | 93bcfd4e65ba660e0bd45b7c25a0f8cb76c8368c (diff) | |
Nico Baggus made it work and compile under VMS!
| -rw-r--r-- | lib/getpass.c | 25 | 
1 files changed, 25 insertions, 0 deletions
| diff --git a/lib/getpass.c b/lib/getpass.c index 7477742e0..01d3ea7c9 100644 --- a/lib/getpass.c +++ b/lib/getpass.c @@ -42,6 +42,30 @@  #ifndef HAVE_GETPASS_R  #ifndef WIN32 +#ifdef	VMS +#include <stdio.h> +#include <string.h> +#include descrip +#include starlet +#include iodef +#include iosbdef +char *getpass_r(const char *prompt, char *buffer, size_t buflen) +{ +	long sts; +	short chan; +	struct _iosb iosb; +	$DESCRIPTOR(ttdesc, "TT"); + +	buffer[0]='\0'; +	if ((sts = sys$assign(&ttdesc, &chan,0,0)) & 1) { +		if (((sts = sys$qiow(0, chan, IO$_READPROMPT | IO$M_NOECHO, &iosb, 0, 0, buffer, buflen, 0, 0, prompt, strlen(prompt))) & 1) && (iosb.iosb$w_status&1)) { +			buffer[iosb.iosb$w_bcnt] = '\0'; +		}  +		sts = sys$dassgn(chan); +	} +	return buffer; /* we always return success */ +} +#else /* VMS */  #ifdef HAVE_TERMIOS_H  #  if !defined(HAVE_TCGETATTR) && !defined(HAVE_TCSETATTR)   #    undef HAVE_TERMIOS_H @@ -186,6 +210,7 @@ char *getpass_r(const char *prompt, char *buffer, size_t buflen)    return buffer; /* we always return success */  } +#endif /* VMS */  #else /* WIN32 */  #include <stdio.h>  #include <conio.h> | 
