1
0
Fork 0
mirror of git://git.gnupg.org/gnupg.git synced 2025-07-02 22:46:30 +02:00

Merged most of David Shaw's changes in 1.3 since 2003-06-03.

This commit is contained in:
Werner Koch 2003-09-23 17:48:33 +00:00
parent 47959a306e
commit 4c66e94ff9
45 changed files with 1489 additions and 509 deletions

View file

@ -1,3 +1,11 @@
2003-09-23 Werner Koch <wk@gnupg.org>
* iobuf.c (check_special_filename): Replaced is isdigit by digitp
to avoid passing negative values and potential locale problems.
Problem noted by Christian Biere.
* util.h (ascii_isspace): New.
2003-09-18 Werner Koch <wk@gnupg.org>
* ttyio.c (tty_fprintf): New.

View file

@ -101,7 +101,7 @@ typedef struct close_cache_s *CLOSE_CACHE;
static CLOSE_CACHE close_cache;
#endif
#ifdef __MINGW32__
#ifdef _WIN32
typedef struct
{
int sock;
@ -112,7 +112,7 @@ typedef struct
char fname[1]; /* name of the file */
}
sock_filter_ctx_t;
#endif /*__MINGW32__*/
#endif /*_WIN32*/
/* The first partial length header block must be of size 512
* to make it easier (and efficienter) we use a min. block size of 512
@ -580,7 +580,7 @@ file_filter (void *opaque, int control, iobuf_t chain, byte * buf,
return rc;
}
#ifdef __MINGW32__
#ifdef _WIN32
/* Becuase sockets are an special object under Lose32 we have to
* use a special filter */
static int
@ -667,7 +667,7 @@ sock_filter (void *opaque, int control, iobuf_t chain, byte * buf,
}
return rc;
}
#endif /*__MINGW32__*/
#endif /*_WIN32*/
/****************
* This is used to implement the block write mode.
@ -1171,7 +1171,7 @@ check_special_filename (const char *fname)
int i;
fname += 2;
for (i = 0; isdigit (fname[i]); i++)
for (i = 0; digitp (fname+i); i++)
;
if (!fname[i])
return atoi (fname);
@ -1262,7 +1262,7 @@ iobuf_t
iobuf_sockopen (int fd, const char *mode)
{
iobuf_t a;
#ifdef __MINGW32__
#ifdef _WIN32
sock_filter_ctx_t *scx;
size_t len;
@ -1405,7 +1405,7 @@ iobuf_ioctl (iobuf_t a, int cmd, int intval, void *ptrval)
b->keep_open = intval;
return 0;
}
#ifdef __MINGW32__
#ifdef _WIN32
else if (!a->chain && a->filter == sock_filter)
{
sock_filter_ctx_t *b = a->filter_ov;
@ -1440,7 +1440,7 @@ iobuf_ioctl (iobuf_t a, int cmd, int intval, void *ptrval)
b->no_cache = intval;
return 0;
}
#ifdef __MINGW32__
#ifdef _WIN32
else if (!a->chain && a->filter == sock_filter)
{
sock_filter_ctx_t *b = a->filter_ov;
@ -2363,7 +2363,7 @@ iobuf_read_line (iobuf_t a, byte ** addr_of_buffer,
int
iobuf_translate_file_handle (int fd, int for_write)
{
#ifdef __MINGW32__
#ifdef _WIN32
{
int x;
@ -2387,7 +2387,7 @@ iobuf_translate_file_handle (int fd, int for_write)
static int
translate_file_handle (int fd, int for_write)
{
#ifdef __MINGW32__
#ifdef _WIN32
#ifdef FILE_FILTER_USES_STDIO
fd = iobuf_translate_file_handle (fd, for_write);
#else

View file

@ -37,7 +37,7 @@
#define HAVE_TCGETATTR
#endif
#endif
#ifdef __MINGW32__ /* use the odd Win32 functions */
#ifdef _WIN32 /* use the odd Win32 functions */
#include <windows.h>
#ifdef HAVE_TCGETATTR
#error mingw32 and termios
@ -51,7 +51,7 @@
#define CONTROL_D ('D' - 'A' + 1)
#ifdef __MINGW32__ /* use the odd Win32 functions */
#ifdef _WIN32 /* use the odd Win32 functions */
static struct {
HANDLE in, out;
} con;
@ -124,7 +124,7 @@ init_ttyfp(void)
if( initialized )
return;
#if defined(__MINGW32__)
#if defined(_WIN32)
{
SECURITY_ATTRIBUTES sa;
@ -194,7 +194,7 @@ tty_printf( const char *fmt, ... )
init_ttyfp();
va_start( arg_ptr, fmt ) ;
#ifdef __MINGW32__
#ifdef _WIN32
{
char *buf = NULL;
int n;
@ -241,7 +241,7 @@ tty_fprintf (FILE *fp, const char *fmt, ... )
init_ttyfp();
va_start( arg_ptr, fmt ) ;
#ifdef __MINGW32__
#ifdef _WIN32
{
char *buf = NULL;
int n;
@ -278,7 +278,7 @@ tty_print_string ( const byte *p, size_t n )
if( !initialized )
init_ttyfp();
#ifdef __MINGW32__
#ifdef _WIN32
/* not so effective, change it if you want */
for( ; n; n--, p++ )
if( iscntrl( *p ) ) {
@ -372,7 +372,7 @@ do_get( const char *prompt, int hidden )
buf = xmalloc((n=50));
i = 0;
#ifdef __MINGW32__ /* windoze version */
#ifdef _WIN32 /* windoze version */
if( hidden )
SetConsoleMode(con.in, HID_INPMODE );
@ -527,7 +527,7 @@ tty_kill_prompt()
last_prompt_len = 0;
if( !last_prompt_len )
return;
#ifdef __MINGW32__
#ifdef _WIN32
tty_printf("\r%*s\r", last_prompt_len, "");
#else
{

View file

@ -107,6 +107,10 @@ int asprintf (char **result, const char *format, ...);
#define hexdigitp(a) (digitp (a) \
|| (*(a) >= 'A' && *(a) <= 'F') \
|| (*(a) >= 'a' && *(a) <= 'f'))
/* Note this isn't identical to a C locale isspace() without \f and
\v, but works for the purposes used here. */
#define ascii_isspace(a) ((a)==' ' || (a)=='\n' || (a)=='\r' || (a)=='\t')
/* the atoi macros assume that the buffer has only valid digits */
#define atoi_1(p) (*(p) - '0' )
#define atoi_2(p) ((atoi_1(p) * 10) + atoi_1((p)+1))