diff --git a/gio/tests/gtlsconsoleinteraction.c b/gio/tests/gtlsconsoleinteraction.c index c56ca6a4c..62e21c74d 100644 --- a/gio/tests/gtlsconsoleinteraction.c +++ b/gio/tests/gtlsconsoleinteraction.c @@ -22,8 +22,14 @@ #include "config.h" +#include #include +#ifdef G_OS_WIN32 +#include +#include +#endif + #include "gtlsconsoleinteraction.h" /* @@ -34,6 +40,31 @@ G_DEFINE_TYPE (GTlsConsoleInteraction, g_tls_console_interaction, G_TYPE_TLS_INTERACTION); +#ifdef G_OS_WIN32 +/* win32 doesn't have getpass() */ +static gchar * +getpass (const gchar *prompt) +{ + static gchar buf[BUFSIZ]; + gint i; + + g_printf ("%s", prompt); + fflush (stdout); + + for (i = 0; i < BUFSIZ - 1; ++i) + { + buf[i] = _getch (); + if (buf[i] == '\r') + break; + } + buf[i] = '\0'; + + g_printf ("\n"); + + return &buf[0]; +} +#endif + static GTlsInteractionResult g_tls_console_interaction_ask_password (GTlsInteraction *interaction, GTlsPassword *password,