31
32
#include <locale.h>
32
33
#include <gsf/gsf-impl-utils.h>
35
static char const *gnumeric_lib_dir = GNUMERIC_LIBDIR;
36
static char const *gnumeric_data_dir = GNUMERIC_DATADIR;
37
static char const *gnumeric_icon_dir = GNUMERIC_ICONDIR;
38
static char const *gnumeric_locale_dir = GNUMERIC_LOCALEDIR;
40
35
static char *gnumeric_lib_dir;
41
36
static char *gnumeric_data_dir;
42
static char *priv_lib_dir;
43
static char *priv_data_dir;
44
37
static char *gnumeric_icon_dir;
45
38
static char *gnumeric_locale_dir;
48
static char const *gnumeric_usr_dir;
39
static char *gnumeric_usr_dir;
42
running_in_tree (void)
44
const char *argv0 = g_get_prgname ();
49
/* Sometime we see, e.g., "lt-gnumeric" as basename. */
51
char *base = g_path_get_basename (argv0);
52
gboolean has_lt_prefix = (strncmp (base, "lt-", 3) == 0);
58
/* Look for ".libs" as final path element. */
60
const char *dotlibs = strstr (argv0, ".libs/");
62
(dotlibs == argv0 || G_IS_DIR_SEPARATOR (dotlibs[-1])) &&
63
strchr (dotlibs + 6, G_DIR_SEPARATOR) == NULL)
53
73
char const *home_dir;
55
gchar *dir = g_win32_get_package_installation_directory (NULL, NULL);
56
priv_lib_dir = gnumeric_lib_dir = g_build_filename (dir,
57
"lib", "gnumeric", GNM_VERSION_FULL, NULL);
58
priv_data_dir = gnumeric_data_dir = g_build_filename (dir,
59
"share", "gnumeric", GNM_VERSION_FULL, NULL);
60
gnumeric_icon_dir = g_build_filename (dir,
61
"share", "pixmaps", "gnumeric", NULL);
62
gnumeric_locale_dir = g_build_filename (dir,
63
"share", "locale", NULL);
75
gchar *dir = g_win32_get_package_installation_directory_of_module (NULL);
76
gnumeric_lib_dir = g_build_filename (dir, "lib",
77
"gnumeric", GNM_VERSION_FULL,
79
gnumeric_data_dir = g_build_filename (dir, "share",
80
"gnumeric", GNM_VERSION_FULL,
82
gnumeric_icon_dir = g_build_filename (dir, "share", "pixmaps",
84
gnumeric_locale_dir = g_build_filename (dir, "share", "locale", NULL);
87
if (running_in_tree ()) {
88
const char *argv0 = g_get_prgname ();
89
char *dotlibs = g_path_get_dirname (argv0);
90
char *top = g_build_filename (dotlibs, "..", "../", NULL);
91
char *plugins = g_build_filename (top, PLUGIN_SUBDIR, NULL);
92
if (g_file_test (plugins, G_FILE_TEST_IS_DIR))
94
go_filename_simplify (top, GO_DOTDOT_SYNTACTIC,
99
if (0) g_printerr ("Running in-tree\n");
102
if (!gnumeric_lib_dir)
103
gnumeric_lib_dir = g_strdup (GNUMERIC_LIBDIR);
104
gnumeric_data_dir = g_strdup (GNUMERIC_DATADIR);
105
gnumeric_icon_dir = g_strdup (GNUMERIC_ICONDIR);
106
gnumeric_locale_dir = g_strdup (GNUMERIC_LOCALEDIR);
66
108
home_dir = g_get_home_dir ();
67
109
gnumeric_usr_dir = (home_dir == NULL ? NULL :
114
gnm_regcomp_XL (GORegexp *preg, char const *pattern, int cflags)
159
gnm_regcomp_XL (GORegexp *preg, char const *pattern, int cflags,
116
162
GString *res = g_string_new (NULL);
166
g_string_append_c (res, '^');
119
168
while (*pattern) {
120
169
switch (*pattern) {
124
g_string_append (res, "\\*");
126
g_string_append_c (res, *pattern);
127
if (*pattern) pattern++;
131
171
g_string_append (res, ".*");