X-Git-Url: https://git.distorted.org.uk/u/mdw/putty/blobdiff_plain/db9c0f865c8540d2a158aa99e6010150f89bef26..b7a189f38294c745ae4ea6efb55891c8196e275b:/misc.h diff --git a/misc.h b/misc.h index 37b73115..21540a3b 100644 --- a/misc.h +++ b/misc.h @@ -3,6 +3,35 @@ #include "puttymem.h" +#include /* for va_list */ + +#ifndef FALSE +#define FALSE 0 +#endif +#ifndef TRUE +#define TRUE 1 +#endif + +char *dupstr(const char *s); +char *dupcat(const char *s1, ...); +char *dupprintf(const char *fmt, ...); +char *dupvprintf(const char *fmt, va_list ap); + +void base64_encode_atom(unsigned char *data, int n, char *out); + +struct bufchain_granule; +typedef struct bufchain_tag { + struct bufchain_granule *head, *tail; + int buffersize; /* current amount of buffered data */ +} bufchain; + +void bufchain_init(bufchain *ch); +void bufchain_clear(bufchain *ch); +int bufchain_size(bufchain *ch); +void bufchain_add(bufchain *ch, void *data, int len); +void bufchain_prefix(bufchain *ch, void **data, int *len); +void bufchain_consume(bufchain *ch, int len); +void bufchain_fetch(bufchain *ch, void *data, int len); /* * Debugging functions. @@ -19,7 +48,7 @@ #ifdef DEBUG void dprintf(char *fmt, ...); -void debug_memdump (void *buf, int len, int L); +void debug_memdump(void *buf, int len, int L); #define debug(x) (dprintf x) #define dmemdump(buf,len) debug_memdump (buf, len, 0); #define dmemdumpl(buf,len) debug_memdump (buf, len, 1); @@ -29,10 +58,15 @@ void debug_memdump (void *buf, int len, int L); #define dmemdumpl(buf,len) #endif - #ifndef lenof #define lenof(x) ( (sizeof((x))) / (sizeof(*(x)))) #endif +#ifndef min +#define min(x,y) ( (x) < (y) ? (x) : (y) ) +#endif +#ifndef max +#define max(x,y) ( (x) > (y) ? (x) : (y) ) +#endif #endif