diff options
author | Alexander Larsson <alexl@redhat.com> | 2007-05-16 07:49:08 +0000 |
---|---|---|
committer | Alexander Larsson <alexl@redhat.com> | 2007-05-16 07:49:08 +0000 |
commit | bd907d54f08e6687492bf8d0f871fcb0b4479ec9 (patch) | |
tree | da85c0856d38fe12a70ac8df006d10a45ffdd2a6 /xdg-user-dirs-update.c | |
parent | 66717d8c831b3cee9a3b11c74361a2be5686069d (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.c | 13 |
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); |