]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
Merge commit 'remotes/yangtse/master'
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 51703aa4583ace19696db9e317e9135a9d285904..2b7a7af7efaa8d8fb72b55eb48616103c04cf1eb 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -804,8 +804,8 @@ static char *make_image_lines(struct afs_info *afsi)
 
 static char *make_filename_lines(const char *path, unsigned flags)
 {
-       char *basename, *dirname;
-       char *ret;
+       char *dirname, *ret;
+       const char *basename;
 
        if (!(flags & LS_FLAG_FULL_PATH))
                return make_message("%s: %s\n",
@@ -814,9 +814,8 @@ static char *make_filename_lines(const char *path, unsigned flags)
        dirname = para_dirname(path);
        ret = make_message("%s: %s\n%s: %s\n%s: %s\n",
                status_item_list[SI_PATH], path,
-               status_item_list[SI_DIRECTORY], dirname,
-               status_item_list[SI_BASENAME], basename);
-       free(basename);
+               status_item_list[SI_DIRECTORY], dirname? dirname : "?",
+               status_item_list[SI_BASENAME], basename? basename : "?");
        free(dirname);
        return ret;
 }
@@ -887,13 +886,15 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
        lyrics_lines = make_lyrics_lines(afsi);
        image_lines = make_image_lines(afsi);
        filename_lines = make_filename_lines(d->path, opts->flags);
-       if (opts->mode == LS_MODE_MBOX)
+       if (opts->mode == LS_MODE_MBOX) {
+               const char *bn = para_basename(d->path);
                para_printf(b,
                        "From foo@localhost %s\n"
                        "Received: from\nTo: bar\nFrom: a\n"
                        "Subject: %s\n\n",
                        last_played_time,
-                       d->path);
+                       bn? bn : "?");
+       }
        para_printf(b,
                "%s" /* filename stuff */
                "%s%s%s%s" /* score */