From 76056ccc14159ea196a6231e7751a110dade2fde Mon Sep 17 00:00:00 2001 From: singesang Date: Thu, 30 Oct 2008 08:20:48 +0000 Subject: [PATCH] Fix:Core: M&G driver unterstands now $HOME, ~ (and maybe more) due to Bug #7 git-svn-id: https://navit.svn.sourceforge.net/svnroot/navit/trunk@1619 ffa7fe5e-494d-0410-b361-a75ebd5db220 --- navit/navit/data/mg/map.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/navit/navit/data/mg/map.c b/navit/navit/data/mg/map.c index 214ab9d..c6e4c67 100644 --- a/navit/navit/data/mg/map.c +++ b/navit/navit/data/mg/map.c @@ -456,25 +456,32 @@ map_new_mg(struct map_methods *meth, struct attr **attrs) { struct map_priv *m; int i,maybe_missing; - struct attr *data; + struct attr *data=attr_search(attrs, NULL, attr_data); char *filename; + struct file_wordexp *wexp; + char **wexp_data; + + if (! data) + return NULL; + wexp=file_wordexp_new(data->u.str); + wexp_data=file_wordexp_get_array(wexp); + *meth=map_methods_mg; data=attr_search(attrs, NULL, attr_data); - if (! data) - return NULL; m=g_new(struct map_priv, 1); m->id=++map_id; - m->dirname=g_strdup(data->u.str); + m->dirname=g_strdup(wexp_data[0]); + file_wordexp_destroy(wexp); for (i = 0 ; i < file_end ; i++) { if (file[i]) { - filename=g_strdup_printf("%s/%s", data->u.str, file[i]); + filename=g_strdup_printf("%s/%s", m->dirname, file[i]); m->file[i]=file_create_caseinsensitive(filename); if (! m->file[i]) { maybe_missing=(i == file_border_ply || i == file_height_ply || i == file_sea_ply); if (! maybe_missing) - dbg(0,"Failed to load %s", filename); + dbg(0,"Failed to load %s\n", filename); } else file_mmap(m->file[i]); g_free(filename); -- 2.7.4