From: Andre Noll Date: Thu, 22 Jan 2015 17:45:38 +0000 (+0100) Subject: Merge branch 'maint' X-Git-Tag: v0.5.4~3 X-Git-Url: http://git.tuebingen.mpg.de/?a=commitdiff_plain;h=f167629b3191c57a6b691cd2a6af04a45a74ccb0;hp=9a67f9e1e37589b548fc1823a21ffdf0b6faf4ea;p=paraslash.git Merge branch 'maint' 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. --- diff --git a/aft.c b/aft.c index c61d3820..727292c7 100644 --- 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 3f7c48da..7aedf59b 100644 --- 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, diff --git a/command.c b/command.c index 43f85ca6..2ef9c5a8 100644 --- 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 456476e5..ceff71f5 100644 --- 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;