/* source: utils.h */ /* Copyright Gerhard Rieger and contributors (see file CHANGES) */ /* Published under the GNU General Public License V.2, see file COPYING */ #ifndef __utils_h_included #define __utils_h_included 1 /* a generic name table entry */ struct wordent { const char *name; void *desc; } ; #if !HAVE_PROTOTYPE_LIB_memrchr extern void *memrchr(const void *s, int c, size_t n); #endif extern void *memdup(const void *src, size_t n); #if !HAVE_PROTOTYPE_LIB_strndup extern char *strndup(const char *s, size_t n); #endif #if !HAVE_SETENV extern int setenv(const char *name, const char *value, int overwrite); #endif /* !HAVE_SETENV */ extern const struct wordent *keyw(const struct wordent *keywds, const char *name, unsigned int nkeys); #define XIOSAN_ZERO_MASK 0x000f #define XIOSAN_ZERO_DEFAULT 0x0000 #define XIOSAN_ZERO_DOT 0x0001 #define XIOSAN_ZERO_BACKSLASH_OCT_3 0x0002 #define XIOSAN_ZERO_BACKSLASH_OCT_4 0x0003 #define XIOSAN_ZERO_BACKSLASHX_HEX_UP 0x0004 #define XIOSAN_ZERO_BACKSLASHX_HEX_LOW 0x0005 #define XIOSAN_ZERO_PERCENT_HEX_UP 0x0006 #define XIOSAN_ZERO_PERCENT_HEX_LOW 0x0007 #define XIOSAN_CONTROL_MASK 0x00f0 #define XIOSAN_CONTROL_DEFAULT 0x0000 #define XIOSAN_CONTROL_DOT 0x0010 #define XIOSAN_CONTROL_BACKSLASH_OCT_3 0x0020 #define XIOSAN_CONTROL_BACKSLASH_OCT_4 0x0030 #define XIOSAN_CONTROL_BACKSLASHX_HEX_UP 0x0040 #define XIOSAN_CONTROL_BACKSLASHX_HEX_LOW 0x0050 #define XIOSAN_CONTROL_PERCENT_HEX_UP 0x0060 #define XIOSAN_CONTROL_PERCENT_HEX_LOW 0x0070 #define XIOSAN_UNPRINT_MASK 0x0f00 #define XIOSAN_UNPRINT_DEFAULT 0x0000 #define XIOSAN_UNPRINT_DOT 0x0100 #define XIOSAN_UNPRINT_BACKSLASH_OCT_3 0x0200 #define XIOSAN_UNPRINT_BACKSLASH_OCT_4 0x0300 #define XIOSAN_UNPRINT_BACKSLASHX_HEX_UP 0x0400 #define XIOSAN_UNPRINT_BACKSLASHX_HEX_LOW 0x0500 #define XIOSAN_UNPRINT_PERCENT_HEX_UP 0x0600 #define XIOSAN_UNPRINT_PERCENT_HEX_LOW 0x0700 #define XIOSAN_DEFAULT_MASK 0xf000 #define XIOSAN_DEFAULT_BACKSLASH_DOT 0x1000 #define XIOSAN_DEFAULT_BACKSLASH_OCT_3 0x2000 #define XIOSAN_DEFAULT_BACKSLASH_OCT_4 0x3000 #define XIOSAN_DEFAULT_BACKSLASHX_HEX_UP 0x4000 #define XIOSAN_DEFAULT_BACKSLASHX_HEX_LOW 0x5000 #define XIOSAN_DEFAULT_PERCENT_HEX_UP 0x6000 #define XIOSAN_DEFAULT_PERCENT_HEX_LOW 0x7000 extern char *sanitize_string(const char *data, /* input data */ size_t bytes, /* length of input data, >=0 */ char *coded, /* output buffer, must be long enough */ int style); extern char *xiosubstr(char *scratch, const char *str, size_t from, size_t len); extern int xio_snprintf(char *str, size_t size, const char *format, ...); #endif /* !defined(__utils_h_included) */