src/prefix.h

Tue, 23 Nov 2004 20:25:22 +0000

author
Tim Ringenbach <marv@pidgin.im>
date
Tue, 23 Nov 2004 20:25:22 +0000
changeset 10251
6ee4aa069e27
parent 10245
81654bee87e8
child 10262
19c34497cd7e
permissions
-rw-r--r--

[gaim-migrate @ 11391]
This lets us register a fallback function, so we can do binreloc methods
2 and 3 without messing with prefix.c.
This is already in autopackage cvs.

10245
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
1 /*
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
2 * I made the following modifications, be sure to readd these when
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
3 * upgrading these files.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
4 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
5 * Added this comment.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
6 * Added "gaim_ ## " to the namespace
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
7 * Changed the lib macro to use /lib/gaim instead of just /lib
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
8 * (why does gaim do that in the -DLIBDIR autoconf thing anyway?)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
9 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
10 */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
11
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
12 /*
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
13 * BinReloc - a library for creating relocatable executables
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
14 * Written by: Mike Hearn <mike@theoretic.com>
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
15 * Hongli Lai <h.lai@chello.nl>
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
16 * http://autopackage.org/
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
17 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
18 * This source code is public domain. You can relicense this code
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
19 * under whatever license you want.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
20 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
21 * See http://autopackage.org/docs/binreloc/ for
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
22 * more information and how to use this.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
23 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
24 * NOTE: if you're using C++ and are getting "undefined reference
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
25 * to br_*", try renaming prefix.c to prefix.cpp
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
26 */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
27
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
28 #ifndef _PREFIX_H_
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
29 #define _PREFIX_H_
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
30
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
31 #ifdef __cplusplus
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
32 extern "C" {
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
33 #endif /* __cplusplus */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
34
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
35 /* WARNING, BEFORE YOU MODIFY PREFIX.C:
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
36 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
37 * If you make changes to any of the functions in prefix.c, you MUST
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
38 * change the BR_NAMESPACE macro.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
39 * This way you can avoid symbol table conflicts with other libraries
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
40 * that also happen to use BinReloc.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
41 *
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
42 * Example:
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
43 * #define BR_NAMESPACE(funcName) foobar_ ## funcName
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
44 * --> expands br_locate to foobar_br_locate
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
45 */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
46 #undef BR_NAMESPACE
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
47 #define BR_NAMESPACE(funcName) gaim_ ## funcName
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
48
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
49
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
50 #ifdef ENABLE_BINRELOC
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
51
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
52 #define br_thread_local_store BR_NAMESPACE(br_thread_local_store)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
53 #define br_locate BR_NAMESPACE(br_locate)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
54 #define br_locate_prefix BR_NAMESPACE(br_locate_prefix)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
55 #define br_prepend_prefix BR_NAMESPACE(br_prepend_prefix)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
56
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
57 #ifndef BR_NO_MACROS
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
58 /* These are convience macros that replace the ones usually used
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
59 in Autoconf/Automake projects */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
60 #undef SELFPATH
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
61 #undef PREFIX
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
62 #undef PREFIXDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
63 #undef BINDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
64 #undef SBINDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
65 #undef DATADIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
66 #undef LIBDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
67 #undef LIBEXECDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
68 #undef ETCDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
69 #undef SYSCONFDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
70 #undef CONFDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
71 #undef LOCALEDIR
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
72
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
73 #define SELFPATH (br_thread_local_store (br_locate ((void *) "")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
74 #define PREFIX (br_thread_local_store (br_locate_prefix ((void *) "")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
75 #define PREFIXDIR (br_thread_local_store (br_locate_prefix ((void *) "")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
76 #define BINDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/bin")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
77 #define SBINDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/sbin")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
78 #define DATADIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/share")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
79 #define LIBDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/lib/gaim")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
80 #define LIBEXECDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/libexec")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
81 #define ETCDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/etc")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
82 #define SYSCONFDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/etc")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
83 #define CONFDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/etc")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
84 #define LOCALEDIR (br_thread_local_store (br_prepend_prefix ((void *) "", "/share/locale")))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
85 #endif /* BR_NO_MACROS */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
86
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
87
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
88 /* The following functions are used internally by BinReloc
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
89 and shouldn't be used directly in applications. */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
90
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
91 const char *br_thread_local_store (char *str);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
92 char *br_locate (void *symbol);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
93 char *br_locate_prefix (void *symbol);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
94 char *br_prepend_prefix (void *symbol, char *path);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
95
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
96
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
97 #endif /* ENABLE_BINRELOC */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
98
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
99
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
100 /* These macros and functions are not guarded by the ENABLE_BINRELOC
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
101 * macro because they are portable. You can use these functions.
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
102 */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
103
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
104 #define br_strcat BR_NAMESPACE(br_strcat)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
105 #define br_extract_dir BR_NAMESPACE(br_extract_dir)
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
106 #define br_extract_prefix BR_NAMESPACE(br_extract_prefix)
10251
6ee4aa069e27 [gaim-migrate @ 11391]
Tim Ringenbach <marv@pidgin.im>
parents: 10245
diff changeset
107 #define br_set_locate_fallback_func BR_NAMESPACE(br_set_locate_fallback_func)
10245
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
108
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
109 #ifndef BR_NO_MACROS
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
110 /* Convenience functions for concatenating paths */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
111 #define BR_SELFPATH(suffix) (br_thread_local_store (br_strcat (SELFPATH, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
112 #define BR_PREFIX(suffix) (br_thread_local_store (br_strcat (PREFIX, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
113 #define BR_PREFIXDIR(suffix) (br_thread_local_store (br_strcat (BR_PREFIX, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
114 #define BR_BINDIR(suffix) (br_thread_local_store (br_strcat (BINDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
115 #define BR_SBINDIR(suffix) (br_thread_local_store (br_strcat (SBINDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
116 #define BR_DATADIR(suffix) (br_thread_local_store (br_strcat (DATADIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
117 #define BR_LIBDIR(suffix) (br_thread_local_store (br_strcat (LIBDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
118 #define BR_LIBEXECDIR(suffix) (br_thread_local_store (br_strcat (LIBEXECDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
119 #define BR_ETCDIR(suffix) (br_thread_local_store (br_strcat (ETCDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
120 #define BR_SYSCONFDIR(suffix) (br_thread_local_store (br_strcat (SYSCONFDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
121 #define BR_CONFDIR(suffix) (br_thread_local_store (br_strcat (CONFDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
122 #define BR_LOCALEDIR(suffix) (br_thread_local_store (br_strcat (LOCALEDIR, suffix)))
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
123 #endif
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
124
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
125 char *br_strcat (const char *str1, const char *str2);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
126 char *br_extract_dir (const char *path);
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
127 char *br_extract_prefix(const char *path);
10251
6ee4aa069e27 [gaim-migrate @ 11391]
Tim Ringenbach <marv@pidgin.im>
parents: 10245
diff changeset
128 typedef char *(*br_locate_fallback_func) (void *symbol, void *data);
6ee4aa069e27 [gaim-migrate @ 11391]
Tim Ringenbach <marv@pidgin.im>
parents: 10245
diff changeset
129 void br_set_locate_fallback_func (br_locate_fallback_func func, void *data);
10245
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
130
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
131
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
132 #ifdef __cplusplus
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
133 }
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
134 #endif /* __cplusplus */
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
135
81654bee87e8 [gaim-migrate @ 11385]
Tim Ringenbach <marv@pidgin.im>
parents:
diff changeset
136 #endif /* _PREFIX_H_ */

mercurial