From 6f543f3ede618e1f980e1c54bf9560ee196678e2 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Mon, 6 Aug 2001 12:20:28 +0000
Subject: [PATCH] Nico Baggus made it work and compile under VMS!

---
 lib/getpass.c | 25 +++++++++++++++++++++++++
 1 file changed, 25 insertions(+)

diff --git a/lib/getpass.c b/lib/getpass.c
index 7477742e06..01d3ea7c9a 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>
-- 
GitLab