/*
- * Copyright (C) 2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
AFTCOL_CHUNKS, &chunk_table_obj);
if (ret < 0)
return ret;
+ afd->afhi.chunk_table = NULL;
ret = mmap_full_file(path, O_RDONLY, &map.data,
&map.size, &afd->fd);
if (ret < 0)
aced.old_afsi = &old_afsi;
afs_event(AFSI_CHANGE, NULL, &aced);
ret = save_afd(afd);
- free(afd->afhi.chunk_table);
- if (ret < 0)
- goto err;
err:
+ free(afd->afhi.chunk_table);
osl_close_disk_object(&chunk_table_obj);
return ret;
}
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",
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;
}
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 */
afs_event(AUDIO_FILE_ADD, &msg, aft_row);
out:
if (ret < 0)
- para_printf(&msg, "%s\n", PARA_STRERROR(-ret));
+ para_printf(&msg, "%s\n", para_strerror(-ret));
if (!msg.buf)
return 0;
result->data = msg.buf;
out_free:
if (ret < 0 && send_ret >= 0)
send_ret = send_va_buffer(pad->fd, "failed to add %s (%s)\n", path,
- PARA_STRERROR(-ret));
+ para_strerror(-ret));
free(obj.data);
if (afhi_ptr)
free(afhi_ptr->chunk_table);
char *path;
ret = verify_path(argv[i], &path);
if (ret < 0) {
- ret = send_va_buffer(fd, "%s: %s\n", argv[i], PARA_STRERROR(-ret));
+ ret = send_va_buffer(fd, "%s: %s\n", argv[i],
+ para_strerror(-ret));
if (ret < 0)
return ret;
continue;
else
ret = add_one_audio_file(path, &pad);
if (ret < 0) {
- send_va_buffer(fd, "%s: %s\n", path, PARA_STRERROR(-ret));
+ send_va_buffer(fd, "%s: %s\n", path, para_strerror(-ret));
free(path);
return ret;
}
ret = get_afsi_object_of_row(row, &obj);
if (ret < 0) {
- para_printf(&tad->pb, "%s: %s\n", name, PARA_STRERROR(-ret));
+ para_printf(&tad->pb, "%s: %s\n", name, para_strerror(-ret));
return 1;
}
ret = load_afsi(&old_afsi, &obj);
if (ret < 0) {
- para_printf(&tad->pb, "%s: %s\n", name, PARA_STRERROR(-ret));
+ para_printf(&tad->pb, "%s: %s\n", name, para_strerror(-ret));
return 1;
}
new_afsi = old_afsi;
pmd.fnmatch_flags |= FNM_PATHNAME;
ret = for_each_matching_row(&pmd);
if (ret < 0)
- para_printf(&tad.pb, "%s\n", PARA_STRERROR(-ret));
+ para_printf(&tad.pb, "%s\n", para_strerror(-ret));
if (tad.pb.buf) {
result->data = tad.pb.buf;
result->size = tad.pb.size;
send_buffer(fd, (char *)result.data);
free(result.data);
} else if (ret < 0)
- send_va_buffer(fd, "%s\n", PARA_STRERROR(-ret));
+ send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}
afs_event(AUDIO_FILE_REMOVE, &crd->pb, row);
ret = osl_del_row(audio_file_table, row);
if (ret < 0)
- para_printf(&crd->pb, "%s: %s\n", name, PARA_STRERROR(-ret));
+ para_printf(&crd->pb, "%s: %s\n", name, para_strerror(-ret));
else
crd->num_removed++;
return 1;
pmd.fnmatch_flags |= FNM_PATHNAME;
ret = for_each_matching_row(&pmd);
if (ret < 0)
- para_printf(&crd.pb, "%s\n", PARA_STRERROR(-ret));
+ para_printf(&crd.pb, "%s\n", para_strerror(-ret));
if (!crd.num_removed && !(crd.flags & RM_FLAG_FORCE))
para_printf(&crd.pb, "no matches -- nothing removed\n");
else {
send_buffer(fd, (char *)result.data);
free(result.data);
} else if (ret < 0)
- send_va_buffer(fd, "%s\n", PARA_STRERROR(-ret));
+ send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}
ret = for_each_matching_row(&pmd);
out:
if (ret < 0)
- para_printf(&cad.pb, "%s\n", PARA_STRERROR(-ret));
+ para_printf(&cad.pb, "%s\n", para_strerror(-ret));
if (cad.flags & CPSI_FLAG_VERBOSE) {
if (cad.num_copied)
para_printf(&cad.pb, "copied requested afsi from %s "
send_buffer(fd, (char *)result.data);
free(result.data);
} else
- send_va_buffer(fd, "%s\n", PARA_STRERROR(-ret));
+ send_va_buffer(fd, "%s\n", para_strerror(-ret));
return ret;
}
char *blob_name;
if (ret < 0) {
- para_printf(pb, "%s\n", PARA_STRERROR(-ret));
+ para_printf(pb, "%s\n", para_strerror(-ret));
return 1;
}
if (stat(path, &statbuf) < 0)
}
ret = get_afsi_of_row(row, &afsi);
if (ret < 0) {
- para_printf(pb, "%s: %s\n", path, PARA_STRERROR(-ret));
+ para_printf(pb, "%s: %s\n", path, para_strerror(-ret));
return 1;
}
ret = lyr_get_name_by_id(afsi.lyrics_id, &blob_name);
if (ret < 0)
para_printf(pb, "%s lyrics id %u: %s\n", path, afsi.lyrics_id,
- PARA_STRERROR(-ret));
+ para_strerror(-ret));
ret = img_get_name_by_id(afsi.image_id, &blob_name);
if (ret < 0)
para_printf(pb, "%s image id %u: %s\n", path, afsi.image_id,
- PARA_STRERROR(-ret));
+ para_strerror(-ret));
return 1;
}