]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
Merge branch 't/lib_arg_with'
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 727292c7001cf5b175eb8ef43b063540fc25d4d7..8d32516d22f3c2526926eba5bdcb46717c5c662e 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -72,6 +72,20 @@ enum ls_listing_mode {
        LS_MODE_PARSER,
 };
 
+/* Data about one audio file. Needed for ls and stat output. */
+struct ls_data {
+       /* Usual audio format handler information. */
+       struct afh_info afhi;
+       /* Audio file selector information. */
+       struct afs_info afsi;
+       /* The full path of the audio file. */
+       char *path;
+       /* The score value (if -a was given). */
+       long score;
+       /* The hash value of the audio file data. */
+       unsigned char *hash;
+};
+
 /** The flags accepted by the ls command. */
 enum ls_flags {
        /** -p */
@@ -1111,13 +1125,13 @@ int open_and_update_audio_file(struct osl_row *aft_row, long score,
                return ret;
        ret = mmap_full_file(path, O_RDONLY, &map.data, &map.size, &afd->fd);
        if (ret < 0)
-               goto err;
+               goto out;
        hash_function(map.data, map.size, file_hash);
        ret = hash_compare(file_hash, aft_hash);
        para_munmap(map.data, map.size);
        if (ret) {
                ret = -E_HASH_MISMATCH;
-               goto err;
+               goto out;
        }
        new_afsi = old_afsi;
        new_afsi.num_played++;
@@ -1128,12 +1142,12 @@ int open_and_update_audio_file(struct osl_row *aft_row, long score,
        load_chunk_table(&afd->afhi, chunk_table_obj.data);
        ret = make_status_items(afd, &old_afsi, path, score, file_hash);
        if (ret < 0)
-               goto err;
+               goto out;
        aced.aft_row = aft_row;
        aced.old_afsi = &old_afsi;
        afs_event(AFSI_CHANGE, NULL, &aced);
        ret = save_afd(afd);
-err:
+out:
        free(afd->afhi.chunk_table);
        osl_close_disk_object(&chunk_table_obj);
        if (ret < 0)