Add missing libraries to examples' Makefiles
[dockapps.git] / wmail / src / common.h
bloba2e114c1a6218fc8d5c806e0ca3ebe56cce3b08b
1 ///////////////////////////////////////////////////////////////////////////////
2 // common.h
3 // common defines and typedefs, part of wmail
4 //
5 // Copyright 2000-2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
6 // Copyright 2016-2017, Doug Torrance <dtorrance@piedmont.edu>.
7 // Copyright 2019, Jeremy Sowden <jeremy@azazel.net>.
8 //
9 // Redistribution and use in source and binary forms, with or without
10 // modification, are permitted provided that the following conditions
11 // are met:
12 // 1. Redistributions of source code must retain the above copyright
13 // notice, this list of conditions, and the following disclaimer.
14 // 2. Redistributions in binary form must reproduce the above copyright
15 // notice, this list of conditions, and the following disclaimer in the
16 // documentation and/or other materials provided with the distribution.
17 // 3. The name of the author may not be used to endorse or promote products
18 // derived from this software without specific prior written permission.
20 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
21 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
22 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
23 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
24 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
25 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
29 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32 #ifndef _COMMON_H_fdda99de15ce3f21ce7faf607a5b4985_
33 #define _COMMON_H_fdda99de15ce3f21ce7faf607a5b4985_
36 ///////////////////////////////////////////////////////////////////////////////
37 // defines
39 // X display to open
40 #define WMAIL_DISPLAY ""
42 // ticker scroll frame rate per seconds
43 #define WMAIL_FPS 60
45 // default mail check interval in seconds
46 #define WMAIL_CHECK_INTERVAL 1
48 // default client-button command
49 #define WMAIL_CLIENT_CMD "xterm -e mail"
51 // filename of the checksum-file
52 #define WMAIL_CHECKSUM_FILE ".wmail-cksums"
54 // filename of the config-file
55 #define WMAIL_RC_FILE ".wmailrc"
57 #define WMAIL_READSTATUS "O"
59 ///////////////////////////////////////////////////////////////////////////////
60 // typedefs
62 #ifdef HAVE_STDBOOL_H
63 # include <stdbool.h>
64 #else
65 # ifndef HAVE__BOOL
66 # ifdef __cplusplus
67 typedef bool _Bool;
68 # else
69 # define _Bool signed char
70 # endif
71 # endif
72 # define bool _Bool
73 # define false 0
74 # define true 1
75 # define __bool_true_false_are_defined 1
76 #endif
79 ///////////////////////////////////////////////////////////////////////////////
80 // prototypes
82 void ABORT( const char *fmt, ... );
83 void WARNING( const char *fmt, ... );
84 char *MakePathName( const char *dir, const char *file );
86 #ifdef DEBUG
88 void TRACE( const char *fmt, ... );
89 #define ASSERT( EXPR ) do { \
90 if ( !(EXPR) ) \
91 ABORT( "%s(%i): Assertion failed: \"%s\"\n", \
92 __FILE__, __LINE__, #EXPR ); \
93 } while (0)
95 #else
97 #define TRACE( fmt... )
98 #define ASSERT( EXPR )
100 #endif
102 #define PREFIX_MATCHES(S, P, CS) ( CS ? strncmp : strncasecmp ) ( (S), (P), sizeof (P) - 1) == 0
104 #endif