--- xdg-user-dirs-0.8/xdg-user-dirs-update.c.sentinel 2007-05-29 15:49:31.000000000 -0400 +++ xdg-user-dirs-0.8/xdg-user-dirs-update.c 2007-05-29 15:52:30.000000000 -0400 @@ -761,15 +761,16 @@ save_user_dirs (void) fprintf (file, "# absolute path. No other format is supported.\n"); fprintf (file, "# \n"); - for (i = 0; user_dirs[i].name != NULL; i++) - { - escaped = shell_escape (user_dirs[i].path); - fprintf (file, "XDG_%s_DIR=\"%s%s\"\n", - user_dirs[i].name, - (*escaped == '/')?"":"$HOME/", - escaped); - free (escaped); - } + if (user_dirs != NULL) + for (i = 0; user_dirs[i].name != NULL; i++) + { + escaped = shell_escape (user_dirs[i].path); + fprintf (file, "XDG_%s_DIR=\"%s%s\"\n", + user_dirs[i].name, + (*escaped == '/')?"":"$HOME/", + escaped); + free (escaped); + } fclose (file); @@ -844,11 +845,12 @@ find_dir (Directory *dirs, const char *n { int i; - for (i = 0; dirs[i].name != NULL; i++) - { - if (strcmp (dirs[i].name, name) == 0) - return &dirs[i]; - } + if (dirs != NULL) + for (i = 0; dirs[i].name != NULL; i++) + { + if (strcmp (dirs[i].name, name) == 0) + return &dirs[i]; + } return NULL; } @@ -866,9 +868,7 @@ create_dirs (int force) for (i = 0; default_dirs[i].name != NULL; i++) { default_dir = &default_dirs[i]; - user_dir = NULL; - if (user_dirs) - user_dir = find_dir (user_dirs, default_dir->name); + user_dir = find_dir (user_dirs, default_dir->name); if (user_dir && !force) {