5 * (C) 1992 Joseph H. Allen
6 * (C) 2001 Marek 'Marx' Grac
8 * This file is part of JOE (Joe's Own Editor)
11 #define _JOE_UTILS_H 1
14 __IDSTRING(rcsid_utils_h, "$MirOS: contrib/code/jupp/utils.h,v 1.8 2017/12/02 17:00:52 tg Exp $");
22 * Functions which return minimum/maximum of two numbers
24 unsigned int uns_min PARAMS((unsigned int a, unsigned int b));
25 signed int int_min PARAMS((signed int a, int signed b));
26 signed long long_max PARAMS((signed long a, signed long b));
27 signed long long_min PARAMS((signed long a, signed long b));
29 /* Versions of 'read' and 'write' which automatically retry when interrupted */
30 ssize_t joe_read PARAMS((int fd, void *buf, size_t siz));
31 ssize_t joe_write PARAMS((int fd, void *buf, size_t siz));
33 /* wrappers to *alloc routines */
34 #define joe_malloc malloc
35 #define joe_calloc calloc
36 #define joe_realloc realloc
39 #ifndef HAVE_SIGHANDLER_T
40 typedef RETSIGTYPE (*sighandler_t)(int);
43 #ifdef NEED_TO_REINSTALL_SIGNAL
44 #define REINSTALL_SIGHANDLER(sig, handler) joe_set_signal(sig, handler)
46 #define REINSTALL_SIGHANDLER(sig, handler) do {} while(0)
49 /* wrapper to hide signal interface differrencies */
50 int joe_set_signal PARAMS((int signum, sighandler_t handler));
52 int parse_ws PARAMS((unsigned char **p,int cmt));
53 int parse_ident PARAMS((unsigned char **p,unsigned char *buf,int len));
54 int parse_kw PARAMS((unsigned char **p,unsigned char *kw));
55 int parse_tows PARAMS((unsigned char **p,unsigned char *buf));
56 int parse_field PARAMS((unsigned char **p,unsigned char *field));
57 int parse_char PARAMS((unsigned char **p,unsigned char c));
58 int parse_string PARAMS((unsigned char **p,unsigned char *buf,int len));
59 int parse_range PARAMS((unsigned char **p,int *first,int *second));
61 void tty_xonoffbaudrst(void);
65 #define USTOL_AUTO 0x00
66 #define USTOL_DEC 0x01
67 #define USTOL_HEX 0x02
68 #define USTOL_OCT 0x03
69 #define USTOL_LTRIM 0x04
70 #define USTOL_RTRIM 0x08
71 #define USTOL_TRIM 0x0C
72 #define USTOL_EOS 0x10
74 long ustol(void *, void **, int);
75 long ustolb(void *, void **, long, long, int);
77 #define USTOC_MAX 4 /* arbitrary, but at least 4 */
79 size_t ustoc_hex(const void *, int *, size_t);
80 size_t ustoc_oct(const void *, int *, size_t);