Workaround for a Win95 console bug triggered by the password read stuff.

This commit is contained in:
Dr. Stephen Henson 1999-03-05 01:07:04 +00:00
parent 9985bed331
commit d00b7aad5a
2 changed files with 29 additions and 1 deletions

View File

@ -5,7 +5,12 @@
Changes between 0.9.1c and 0.9.2
*) Add text documentation for the BUFFER functions.
*) Add text documentation for the BUFFER functions. Also added a work around
to a Win95 console bug. This was triggered by the password read stuff: the
last character typed gets carried over to the next fread(). If you were
generating a new cert request using 'req' for example then the last
character of the passphrase would be CR which would then enter the first
field as blank.
[Steve Henson]
*) Added the new `Includes OpenSSL Cryptography Software' button as

View File

@ -63,6 +63,11 @@
#include <graph.h>
#endif
#if defined(WIN32) && !defined(WINNT)
#define WIN_CONSOLE_BUG
#endif
/* 06-Apr-92 Luke Brennan Support for VMS */
#include "des_locl.h"
#include <signal.h>
@ -70,6 +75,12 @@
#include <setjmp.h>
#include <errno.h>
#ifdef WIN_CONSOLE_BUG
#include <windows.h>
#include <wincon.h>
#endif
/* There are 5 types of terminal interface supported,
* TERMIO, TERMIOS, VMS, MSDOS and SGTTY
*/
@ -462,6 +473,18 @@ FILE *tty;
break;
}
}
#ifdef WIN_CONSOLE_BUG
/* Win95 has several evil console bugs: one of these is that the
* last character read using getch() is passed to the next read: this is
* usually a CR so this can be trouble. No STDIO fix seems to work but
* flushing the console appears to do the trick.
*/
{
HANDLE inh;
inh = GetStdHandle(STD_INPUT_HANDLE);
FlushConsoleInputBuffer(inh);
}
#endif
return(strlen(buf));
}
#endif