]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 'maint'
authorAndre Noll <maan@tuebingen.mpg.de>
Thu, 22 Jan 2015 17:45:38 +0000 (18:45 +0100)
committerAndre Noll <maan@tuebingen.mpg.de>
Thu, 22 Jan 2015 17:45:38 +0000 (18:45 +0100)
Was cooking for a week and seems to be regression-free.

aft: Generate a remove event when adding duplicate files.
command.c: Add missing items to EMPTY_STATUS_ITEMS.
aft.c: Don't call osl_close_disk_object() on failure.
Add missing osl() wrapper calls.
fd.c: Add missing va_end().

The conflict in aft.c was trivial to fix up.

aft.c
blob.c
command.c
fd.c

diff --git a/aft.c b/aft.c
index c61d3820083bd0ff9c5fbfbf773f49fc5c04a51a..727292c7001cf5b175eb8ef43b063540fc25d4d7 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -829,8 +829,8 @@ static int print_chunk_table(struct ls_data *d, struct para_buffer *b)
        ret = aft_get_row_of_hash(d->hash, &aft_row);
        if (ret < 0)
                return ret;
-       ret = osl_open_disk_object(audio_file_table, aft_row,
-               AFTCOL_CHUNKS, &chunk_table_obj);
+       ret = osl(osl_open_disk_object(audio_file_table, aft_row,
+               AFTCOL_CHUNKS, &chunk_table_obj));
        if (ret < 0)
                return ret;
        ret = para_printf(b, "%s\n"
@@ -1105,10 +1105,10 @@ int open_and_update_audio_file(struct osl_row *aft_row, long score,
        if (ret < 0)
                return ret;
        afd->afhi.chunk_table = NULL;
-       ret = osl_open_disk_object(audio_file_table, aft_row,
-               AFTCOL_CHUNKS, &chunk_table_obj);
+       ret = osl(osl_open_disk_object(audio_file_table, aft_row,
+               AFTCOL_CHUNKS, &chunk_table_obj));
        if (ret < 0)
-               goto err;
+               return ret;
        ret = mmap_full_file(path, O_RDONLY, &map.data, &map.size, &afd->fd);
        if (ret < 0)
                goto err;
@@ -1716,10 +1716,11 @@ static void com_add_callback(int fd, const struct osl_object *query)
                struct osl_object obj;
                if (pb) { /* hs trumps pb, remove pb */
                        if (flags & ADD_FLAG_VERBOSE) {
-                               ret = para_printf(&msg, "removing path brother\n");
+                               ret = para_printf(&msg, "removing %s\n", path);
                                if (ret < 0)
                                        goto out;
                        }
+                       afs_event(AUDIO_FILE_REMOVE, &msg, pb);
                        ret = osl(osl_del_row(audio_file_table, pb));
                        if (ret < 0)
                                goto out;
diff --git a/blob.c b/blob.c
index 3f7c48daa74251f15b798ec6f0fdefe39496f466..7aedf59bb9d3da7ead694f9c2d85c2d8e52da9d7 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -645,7 +645,7 @@ static int blob_get_name_and_def_by_row(struct osl_table *table,
        static int table_name ## _create(const char *dir) \
        { \
                table_name ## _table_desc.dir = dir; \
-               return osl_create_table(&table_name ## _table_desc); \
+               return osl(osl_create_table(&table_name ## _table_desc)); \
        }
 
 static int blob_open(struct osl_table **table,
index 43f85ca67a5e7b35c56d430f7da75cfdb64c7f94..2ef9c5a87b54760ed38fc41e4f3b83391a4aa3f5 100644 (file)
--- a/command.c
+++ b/command.c
@@ -419,6 +419,7 @@ static int com_version(struct command_context *cc)
        return send_sb(&cc->scc, msg, len, SBD_OUTPUT, false);
 }
 
+/** These status items are cleared if no audio file is currently open. */
 #define EMPTY_STATUS_ITEMS \
        ITEM(PATH) \
        ITEM(DIRECTORY) \
@@ -445,7 +446,11 @@ static int com_version(struct command_context *cc)
        ITEM(YEAR) \
        ITEM(ALBUM) \
        ITEM(COMMENT) \
-       ITEM(AMPLIFICATION)
+       ITEM(MTIME) \
+       ITEM(FILE_SIZE) \
+       ITEM(CHUNK_TIME) \
+       ITEM(NUM_CHUNKS) \
+       ITEM(AMPLIFICATION) \
 
 /**
  * Write a list of audio-file related status items with empty values.
diff --git a/fd.c b/fd.c
index 456476e59ca3d1757a9828f8dec055cfc34aefd4..ceff71f584545bb6356d38129c436e8d393fe38c 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -144,6 +144,7 @@ __printf_2_3 int write_va_buffer(int fd, const char *fmt, ...)
 
        va_start(ap, fmt);
        ret = xvasprintf(&msg, fmt, ap);
+       va_end(ap);
        ret = write_all(fd, msg, ret);
        free(msg);
        return ret;