wmshutdown: Destroy dialog window before shutting down. This is especially useful...
[dockapps.git] / wmail / src / common.c
blob59acec43a39214c8b3cfe415e83ab27d07cbb11e
1 ///////////////////////////////////////////////////////////////////////////////
2 // common.c
3 // common defines and typedefs, part of wmail
4 //
5 // Copyright 2000~2002, Sven Geisenhainer <sveng@informatik.uni-jena.de>.
6 // All rights reserved.
7 //
8 // Redistribution and use in source and binary forms, with or without
9 // modification, are permitted provided that the following conditions
10 // are met:
11 // 1. Redistributions of source code must retain the above copyright
12 // notice, this list of conditions, and the following disclaimer.
13 // 2. Redistributions in binary form must reproduce the above copyright
14 // notice, this list of conditions, and the following disclaimer in the
15 // documentation and/or other materials provided with the distribution.
16 // 3. The name of the author may not be used to endorse or promote products
17 // derived from this software without specific prior written permission.
19 // THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
20 // IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
21 // OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22 // IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
23 // INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
24 // NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
28 // THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31 #include <stdio.h>
32 #include <stdlib.h>
33 #include <stdarg.h>
34 #include <string.h>
35 #include "common.h"
38 #if defined(DEBUG) || defined(DEBUG2) || defined(_DEBUG)
39 void TRACE( const char *fmt, ... )
41 va_list args;
42 va_start( args, fmt );
43 vfprintf( stderr, fmt, args );
44 fflush( stderr );
45 va_end( args );
47 #endif
49 void ABORT( const char *fmt, ... )
51 va_list args;
52 va_start( args, fmt );
53 fprintf( stderr, "wmail error: " );
54 vfprintf( stderr, fmt, args );
55 fflush( stderr );
56 va_end( args );
58 exit( 1 );
61 void WARNING( const char *fmt, ... )
63 va_list args;
64 va_start( args, fmt );
65 fprintf( stderr, "wmail warning: " );
66 vfprintf( stderr, fmt, args );
67 fflush( stderr );
68 va_end( args );
71 char *MakePathName( const char *dir, const char *file )
73 char *fullName;
74 int len1 = strlen( dir );
75 int len2 = strlen( file );
77 if( dir[len1-1] != '/' )
78 fullName = malloc( len1 + len2 + 2 );
79 else
80 fullName = malloc( len1 + len2 + 1 );
82 memcpy( fullName, dir, len1 );
83 if( dir[len1-1] != '/' )
84 fullName[len1++] = '/';
85 memcpy( fullName + len1, file, len2 + 1 );
87 return fullName;