Always write image_name and lyrics_name status output.
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index e45938d3942619989cc6eecbc9f29e986d3f5f30..62db6e7b42bf663af95df97e6764c5ee8891fffc 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -673,7 +673,7 @@ int open_and_update_audio_file(struct osl_row *aft_row, struct audio_file_data *
        int ret = get_hash_of_row(aft_row, &aft_hash);
        struct afsi_change_event_data aced;
        struct osl_object map, chunk_table_obj;
-       char *tmp, *path;
+       char *path;
 
        if (ret < 0)
                return ret;
@@ -714,14 +714,6 @@ int open_and_update_audio_file(struct osl_row *aft_row, struct audio_file_data *
        ret = load_chunk_info(&chunk_table_obj, &afd->afhi);
        if (ret < 0)
                goto err;
-       ret = get_attribute_text(&afd->afsi.attributes, " ", &tmp);
-       if (ret < 0)
-               goto err;
-       assert(tmp);
-       strncpy(afd->attributes_string, tmp, sizeof(afd->attributes_string));
-       afd->attributes_string[sizeof(afd->attributes_string) - 1] = '\0';
-       free(tmp);
-
        {
                struct ls_data d = {
                        .afhi = afd->afhi,
@@ -735,7 +727,7 @@ int open_and_update_audio_file(struct osl_row *aft_row, struct audio_file_data *
                if (ret < 0)
                        goto err;
                strncpy(afd->afs_status_info, pb.buf, AFS_STATUS_INFO_SIZE);
-               afd->afs_status_info[AFS_STATUS_INFO_SIZE] = '\0';
+               afd->afs_status_info[AFS_STATUS_INFO_SIZE - 1] = '\0';
                free(pb.buf);
        }
        aced.aft_row = aft_row;
@@ -819,23 +811,21 @@ static char *make_attribute_lines(const char *att_bitmap, struct afs_info *afsi)
        return att_lines;
 }
 
-static char *make_lyrics_line(struct afs_info *afsi)
+static char *make_lyrics_lines(struct afs_info *afsi)
 {
        char *lyrics_name;
 
        lyr_get_name_by_id(afsi->lyrics_id, &lyrics_name);
-       if (!lyrics_name)
-               return make_message("%u", afsi->lyrics_id);
-       return make_message("%u (%s)", afsi->lyrics_id, lyrics_name);
+       return make_message("lyrics_id: %u\nlyrics_name: %s\n",
+               afsi->lyrics_id, lyrics_name? lyrics_name : "(none)");
 }
 
-static char *make_image_line(struct afs_info *afsi)
+static char *make_image_lines(struct afs_info *afsi)
 {
        char *image_name;
        img_get_name_by_id(afsi->image_id, &image_name);
-       if (!image_name)
-               return make_message("%u", afsi->image_id);
-       return make_message("%u (%s)", afsi->image_id, image_name);
+       return make_message("image_id: %u\nimage_name: %s\n",
+               afsi->image_id, image_name? image_name : "(none)");
 }
 
 static int print_list_item(struct ls_data *d, struct ls_options *opts,
@@ -851,7 +841,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
        struct ls_widths *w = &opts->widths;
        int have_score = opts->flags & LS_FLAG_ADMISSIBLE_ONLY;
        char asc_hash[2 * HASH_SIZE + 1];
-       char *att_lines, *lyrics_line, *image_line;
+       char *att_lines, *lyrics_lines, *image_lines;
 
        if (opts->mode == LS_MODE_SHORT) {
                para_printf(b, "%s\n", d->path);
@@ -901,16 +891,16 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
        }
        hash_to_asc(d->hash, asc_hash);
        att_lines = make_attribute_lines(att_buf, afsi);
-       lyrics_line = make_lyrics_line(afsi);
-       image_line = make_image_line(afsi);
+       lyrics_lines = make_lyrics_lines(afsi);
+       image_lines = make_image_lines(afsi);
        if (opts->mode == LS_MODE_VERBOSE) {
                para_printf(b,
                        "%s: %s\n" /* path */
                        "%s%s%s" /* score */
                        "attributes: %s\n"
                        "hash: %s\n"
-                       "image_id: %s\n"
-                       "lyrics_id: %s\n"
+                       "%s" /* image id, image name */
+                       "%s" /* lyrics */
                        "bitrate: %dkbit/s\n"
                        "format: %s\n"
                        "frequency: %dHz\n"
@@ -925,8 +915,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
                                have_score? "\n" : "",
                        att_lines,
                        asc_hash,
-                       image_line,
-                       lyrics_line,
+                       image_lines,
+                       lyrics_lines,
                        afhi->bitrate,
                        audio_format_name(afsi->audio_format_id),
                        afhi->frequency,
@@ -946,7 +936,7 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
                        "%s%s%s" /* score */
                        "%s\n" /* attributes */
                        "hash: %s\n"
-                       "image_id: %s\n"
+                       "%s\n" /* image id, image name */
                        "lyrics_id: %s\n"
                        "bitrate: %dkbit/s\n"
                        "format: %s\n"
@@ -962,8 +952,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
                                have_score? "\n" : "",
                        att_lines,
                        asc_hash,
-                       image_line,
-                       lyrics_line,
+                       image_lines,
+                       lyrics_lines,
                        afhi->bitrate,
                        audio_format_name(afsi->audio_format_id),
                        afhi->frequency,
@@ -978,8 +968,8 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
                        osl_close_disk_object(lyrics_def.data);
        }
        free(att_lines);
-       free(lyrics_line);
-       free(image_line);
+       free(lyrics_lines);
+       free(image_lines);
        return 1;
 }