From 9e80356dd5f13c32dc265d3a499623134d95beb5 Mon Sep 17 00:00:00 2001
From: Daniel Stenberg <daniel@haxx.se>
Date: Tue, 13 Jan 2004 16:07:40 +0000
Subject: [PATCH] Luck Call made win32 password prompting support backspace

---
 CHANGES       | 3 +++
 RELEASE-NOTES | 3 ++-
 src/getpass.c | 5 +++++
 3 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/CHANGES b/CHANGES
index d3ef2754a3..3be7a475fc 100644
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,9 @@
                                   Changelog
 
 Daniel (13 January 2004)
+- Luke Call made the win32 version of the password prompting function support
+  backspace.
+
 - Dan Fandrich fixed the hugehelp source file to contain both a compressed and
   an uncompressed version in the distribution, so that more people easier can
   build curl with the compressed version.
diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 1637a1c3fe..4e59fd34cf 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -19,6 +19,7 @@ This release includes the following changes:
 
 This release includes the following bugfixes:
 
+ o the win32 password prompting supports backspace
  o builds natively on AmigaOS (without unix emulation)
  o ftps:// now uses port 990 by default
  o the "configure --with-spnego" action was improved
@@ -79,6 +80,6 @@ advice from friends like these:
  W. Rozycki, Nicolas Croiset, Josh Kapell, Gaz Iqbal, Dave May, Markus
  Moeller, James Clancy, Giuseppe Attardi, swalkaus at yahoo.com, Steve Green,
  Marty Kuhrt, Dominick Meglio, Diego Casorran, David Byron, John McGowan,
- David J Meyer, Dan Fandrich, Pierre, Brian R Duffy
+ David J Meyer, Dan Fandrich, Pierre, Brian R Duffy, Luke Call
  
         Thanks! (and sorry if I forgot to mention someone)
diff --git a/src/getpass.c b/src/getpass.c
index 225f7f04ec..77e950c9dc 100644
--- a/src/getpass.c
+++ b/src/getpass.c
@@ -203,6 +203,11 @@ char *getpass_r(const char *prompt, char *buffer, int buflen)
       buffer[i] = 0;
       break;
     }
+    else
+      if ( buffer[i] == '\b')
+        /* remove this letter and if this is not the first key, remove the
+           previous one as well */
+        i = i - (i>=1?2:1);
   }
   /* if user didn't hit ENTER, terminate buffer */
   if (i==buflen)
-- 
GitLab