summaryrefslogtreecommitdiff
path: root/xdg-user-dirs-update.c
diff options
context:
space:
mode:
authorAlexander Larsson <alexl@redhat.com>2007-05-16 07:49:08 +0000
committerAlexander Larsson <alexl@redhat.com>2007-05-16 07:49:08 +0000
commitbd907d54f08e6687492bf8d0f871fcb0b4479ec9 (patch)
treeda85c0856d38fe12a70ac8df006d10a45ffdd2a6 /xdg-user-dirs-update.c
parent66717d8c831b3cee9a3b11c74361a2be5686069d (diff)
2007-05-16 Alexander Larsson <alexl@redhat.com>
* xdg-user-dirs-update.c: Handle keys set to $HOME without recreating the original dir.
Diffstat (limited to 'xdg-user-dirs-update.c')
-rw-r--r--xdg-user-dirs-update.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/xdg-user-dirs-update.c b/xdg-user-dirs-update.c
index a0f636e..173bfe8 100644
--- a/xdg-user-dirs-update.c
+++ b/xdg-user-dirs-update.c
@@ -630,8 +630,14 @@ load_user_dirs (void)
continue;
- if (has_prefix (p, "$HOME/"))
- p += 6;
+ if (has_prefix (p, "$HOME"))
+ {
+ p += 5;
+ if (*p == '/')
+ p++;
+ else if (*p != '"' && *p != 0)
+ continue; /* Not ending after $HOME, nor followed by slash. Ignore */
+ }
else if (*p != '/')
continue;
value = p;
@@ -650,9 +656,10 @@ load_user_dirs (void)
*key_end = 0;
*value_end = 0;
- if (*key == 0 || *value == 0)
+ if (*key == 0)
continue;
+ printf ("key: '%s', value: '%s'\n", key, value);
dir.name = strdup (key);
dir.path = shell_unescape (value);
user_dirs = add_directory (user_dirs, &dir);