projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
RT3544: Remove MWERKS support
[openssl.git]
/
crypto
/
ui
/
ui_openssl.c
diff --git
a/crypto/ui/ui_openssl.c
b/crypto/ui/ui_openssl.c
index 1f23a45a339bc018eb27cb501076e5440f9bb536..6d4c4e147d878b80d451a9460935a67d975fc7a6 100644
(file)
--- a/
crypto/ui/ui_openssl.c
+++ b/
crypto/ui/ui_openssl.c
@@
-122,7
+122,15
@@
* sigaction and fileno included. -pedantic would be more appropriate for
* the intended purposes, but we can't prevent users from adding -ansi.
*/
* sigaction and fileno included. -pedantic would be more appropriate for
* the intended purposes, but we can't prevent users from adding -ansi.
*/
-#define _POSIX_C_SOURCE 1
+#if defined(OPENSSL_SYSNAME_VXWORKS)
+#include <sys/types.h>
+#endif
+
+#if !defined(_POSIX_C_SOURCE) && defined(OPENSSL_SYS_VMS)
+#ifndef _POSIX_C_SOURCE
+#define _POSIX_C_SOURCE 2
+#endif
+#endif
#include <signal.h>
#include <stdio.h>
#include <string.h>
#include <signal.h>
#include <stdio.h>
#include <string.h>
@@
-194,7
+202,7
@@
# undef SGTTY
#endif
# undef SGTTY
#endif
-#if !defined(TERMIO) && !defined(TERMIOS) && !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_MSDOS) && !defined(
OPENSSL_SYS_MACINTOSH_CLASSIC) && !defined(
MAC_OS_GUSI_SOURCE)
+#if !defined(TERMIO) && !defined(TERMIOS) && !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_MSDOS) && !defined(MAC_OS_GUSI_SOURCE)
# undef TERMIOS
# undef TERMIO
# define SGTTY
# undef TERMIOS
# undef TERMIO
# define SGTTY
@@
-236,7
+244,7
@@
# define TTY_set(tty,data) ioctl(tty,TIOCSETP,data)
#endif
# define TTY_set(tty,data) ioctl(tty,TIOCSETP,data)
#endif
-#if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_
MACINTOSH_CLASSIC) && !defined(OPENSSL_SYS_
SUNOS)
+#if !defined(_LIBC) && !defined(OPENSSL_SYS_MSDOS) && !defined(OPENSSL_SYS_VMS) && !defined(OPENSSL_SYS_SUNOS)
# include <sys/ioctl.h>
#endif
# include <sys/ioctl.h>
#endif
@@
-260,7
+268,7
@@
struct IOSB {
typedef int sig_atomic_t;
#endif
typedef int sig_atomic_t;
#endif
-#if defined(
OPENSSL_SYS_MACINTOSH_CLASSIC) || defined(
MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE)
+#if defined(MAC_OS_GUSI_SOURCE) || defined(OPENSSL_SYS_NETWARE)
/*
* This one needs work. As a matter of fact the code is unoperational
* and this is only a trick to get it compiled.
/*
* This one needs work. As a matter of fact the code is unoperational
* and this is only a trick to get it compiled.
@@
-297,7
+305,7
@@
static int is_a_tty;
/* Declare static functions */
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
/* Declare static functions */
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
-static
void
read_till_nl(FILE *);
+static
int
read_till_nl(FILE *);
static void recsig(int);
static void pushsig(void);
static void popsig(void);
static void recsig(int);
static void pushsig(void);
static void popsig(void);
@@
-390,14
+398,16
@@
static int read_string(UI *ui, UI_STRING *uis)
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
/* Internal functions to read a string without echoing */
#if !defined(OPENSSL_SYS_WIN16) && !defined(OPENSSL_SYS_WINCE)
/* Internal functions to read a string without echoing */
-static
void
read_till_nl(FILE *in)
+static
int
read_till_nl(FILE *in)
{
#define SIZE 4
char buf[SIZE+1];
do {
{
#define SIZE 4
char buf[SIZE+1];
do {
- fgets(buf,SIZE,in);
+ if (!fgets(buf,SIZE,in))
+ return 0;
} while (strchr(buf,'\n') == NULL);
} while (strchr(buf,'\n') == NULL);
+ return 1;
}
static volatile sig_atomic_t intr_signal;
}
static volatile sig_atomic_t intr_signal;
@@
-445,7
+455,8
@@
static int read_string_inner(UI *ui, UI_STRING *uis, int echo, int strip_nl)
*p='\0';
}
else
*p='\0';
}
else
- read_till_nl(tty_in);
+ if (!read_till_nl(tty_in))
+ goto error;
if (UI_set_result(ui, uis, result) >= 0)
ok=1;
if (UI_set_result(ui, uis, result) >= 0)
ok=1;
@@
-473,7
+484,7
@@
static int open_console(UI *ui)
CRYPTO_w_lock(CRYPTO_LOCK_UI);
is_a_tty = 1;
CRYPTO_w_lock(CRYPTO_LOCK_UI);
is_a_tty = 1;
-#if defined(OPENSSL_SYS_
MACINTOSH_CLASSIC) || defined(OPENSSL_SYS_VXWORKS) || defined(OPENSSL_SYS_NETWARE
)
+#if defined(OPENSSL_SYS_
VXWORKS) || defined(OPENSSL_SYS_NETWARE) || defined(OPENSSL_SYS_BEOS
)
tty_in=stdin;
tty_out=stderr;
#else
tty_in=stdin;
tty_out=stderr;
#else
@@
-677,6
+688,8
@@
static int noecho_fgets(char *buf, int size, FILE *tty)
size--;
#ifdef WIN16TTY
i=_inchar();
size--;
#ifdef WIN16TTY
i=_inchar();
+#elif defined(_WIN32)
+ i=_getch();
#else
i=getch();
#endif
#else
i=getch();
#endif