/MirOS/dist/jupp/joe-3.1jupp30.tgz
[alioth/jupp.git] / utils.h
1 /* $MirOS: contrib/code/jupp/utils.h,v 1.4 2017/01/10 19:05:17 tg Exp $ */
2 /*
3  *      Various utilities
4  *
5  *      Copyright
6  *              (C) 1992 Joseph H. Allen
7  *              (C) 2001 Marek 'Marx' Grac
8  *
9  *      This file is part of JOE (Joe's Own Editor)
10  */
11 #ifndef _JOE_UTILS_H
12 #define _JOE_UTILS_H 1
13
14 #include "config.h"
15
16 #ifdef HAVE_SYS_TYPES_H
17 #include <sys/types.h>                  /* we need size_t, ssize_t */
18 #endif
19 #ifdef HAVE_SIGNAL_H
20 #include <signal.h>
21 #endif
22
23 /*
24  * Functions which return minimum/maximum of two numbers
25  */
26 unsigned int uns_min PARAMS((unsigned int a, unsigned int b));
27 signed int int_min PARAMS((signed int a, int signed b));
28 signed long long_max PARAMS((signed long a, signed long b));
29 signed long long_min PARAMS((signed long a, signed long b));
30
31 /* Versions of 'read' and 'write' which automatically retry when interrupted */
32 ssize_t joe_read PARAMS((int fd, void *buf, size_t siz));
33 ssize_t joe_write PARAMS((int fd, void *buf, size_t siz));
34
35 /* wrappers to *alloc routines */
36 #define joe_malloc malloc
37 #define joe_calloc calloc
38 #define joe_realloc realloc
39 #define joe_free free
40
41 #ifndef HAVE_SIGHANDLER_T
42 typedef RETSIGTYPE (*sighandler_t)(int);
43 #endif
44
45 #ifdef NEED_TO_REINSTALL_SIGNAL
46 #define REINSTALL_SIGHANDLER(sig, handler) joe_set_signal(sig, handler)
47 #else
48 #define REINSTALL_SIGHANDLER(sig, handler) do {} while(0)
49 #endif
50
51 /* wrapper to hide signal interface differrencies */
52 int joe_set_signal PARAMS((int signum, sighandler_t handler));
53
54 int parse_ws PARAMS((unsigned char **p,int cmt));
55 int parse_ident PARAMS((unsigned char **p,unsigned char *buf,int len));
56 int parse_kw PARAMS((unsigned char **p,unsigned char *kw));
57 int parse_tows PARAMS((unsigned char **p,unsigned char *buf));
58 int parse_field PARAMS((unsigned char **p,unsigned char *field));
59 int parse_char PARAMS((unsigned char  **p,unsigned char c));
60 int parse_int PARAMS((unsigned char **p,int *buf));
61 int parse_string PARAMS((unsigned char **p,unsigned char *buf,int len));
62 int parse_range PARAMS((unsigned char **p,int *first,int *second));
63
64 void tty_xonoffbaudrst(void);
65
66 #endif