2
* Copyright (c) 2003-2004 Benedikt Meurer <benny@xfce.org>
5
* Redistribution and use in source and binary forms, with or without
6
* modification, are permitted provided that the following conditions
9
* 1. Redistributions of source code must retain the above copyright
10
* notice, this list of conditions and the following disclaimer.
11
* 2. Redistributions in binary form must reproduce the above copyright
12
* notice, this list of conditions and the following disclaimer in the
13
* documentation and/or other materials provided with the distribution.
15
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
16
* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
17
* OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
18
* IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
19
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
20
* NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
21
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
22
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
23
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
24
* THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
#ifndef __LIBXFCE4UTIL_UTIL_H__
28
#define __LIBXFCE4UTIL_UTIL_H__
30
#include <libxfce4util/libxfce4util-config.h>
31
#include <libxfce4util/debug.h>
33
/* save way to get path to users home directory and files below */
34
extern G_CONST_RETURN gchar *xfce_get_homedir(void);
36
extern G_CONST_RETURN gchar *xfce_get_homefile_r(gchar *buffer,
37
size_t length, const gchar *format, ...);
39
/* save way to get path to users ".xfce4" directory */
40
extern G_CONST_RETURN gchar *xfce_get_userdir(void);
42
extern G_CONST_RETURN gchar *xfce_get_userfile_r(gchar *buffer,
43
size_t length, const gchar *format, ...);
45
#if defined(G_HAVE_ISO_VARARGS)
47
#define xfce_get_homefile(...) \
48
(g_build_filename (xfce_get_homedir (), __VA_ARGS__))
50
#define xfce_get_userfile(...) \
51
(g_build_filename (xfce_get_userdir (), __VA_ARGS__))
53
#elif defined(G_HAVE_GNUC_VARARGS)
55
#define xfce_get_homefile(first_element...) \
56
(g_build_filename(xfce_get_homedir(), ## first_element))
58
#define xfce_get_userfile(first_element...) \
59
(g_build_filename(xfce_get_userdir(), ## first_element))
62
#error "Variable argument lists not support on your plattform."
65
#endif /* __LIBXFCE4UTIL_UTIL_H__ */