1 ///////////////////////////////////////////////////////////////////////////////
3 // common defines and typedefs, part of wmail
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>.
9 // Redistribution and use in source and binary forms, with or without
10 // modification, are permitted provided that the following conditions
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.
33 #ifndef CONFIG_H_INCLUDED
34 #include "../config.h"
35 #define CONFIG_H_INCLUDED
47 void TRACE( const char *fmt
, ... )
50 va_start( args
, fmt
);
51 vfprintf( stderr
, fmt
, args
);
57 void ABORT( const char *fmt
, ... )
60 va_start( args
, fmt
);
61 fprintf( stderr
, "wmail error: " );
62 vfprintf( stderr
, fmt
, args
);
69 void WARNING( const char *fmt
, ... )
72 va_start( args
, fmt
);
73 fprintf( stderr
, "wmail warning: " );
74 vfprintf( stderr
, fmt
, args
);
79 char *MakePathName( const char *dir
, const char *file
)
81 size_t dir_len
= strlen( dir
);
82 size_t file_len
= strlen( file
);
89 if( dir
[dir_len
- 1] != '/' )
91 len
= dir_len
+ 1 + file_len
+ 1;
96 len
= dir_len
+ file_len
+ 1;
100 fullName
= malloc( len
);
101 if( fullName
!= NULL
)
102 snprintf( fullName
, len
, fmt
, dir
, file
);