/*
- * 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 */
return -E_AFT_SYNTAX;
ret = send_option_arg_callback_request(&query, argc - i,
argv + i, com_touch_callback, &result);
- if (ret > 0) {
- send_buffer(fd, (char *)result.data);
- free(result.data);
- } else if (ret < 0)
+ if (!ret)
+ return 0;
+ if (ret < 0) {
send_va_buffer(fd, "%s\n", para_strerror(-ret));
+ return ret;
+ }
+ ret = send_buffer(fd, (char *)result.data);
+ free(result.data);
return ret;
}
return -E_AFT_SYNTAX;
ret = send_option_arg_callback_request(&query, argc - i, argv + i,
com_rm_callback, &result);
- if (ret > 0) {
- send_buffer(fd, (char *)result.data);
- free(result.data);
- } else if (ret < 0)
+ if (!ret)
+ return 0;
+ if (ret < 0) {
send_va_buffer(fd, "%s\n", para_strerror(-ret));
+ return ret;
+ }
+ ret = send_buffer(fd, (char *)result.data);
+ free(result.data);
return ret;
}
flags = ~(unsigned)CPSI_FLAG_VERBOSE | flags;
ret = send_option_arg_callback_request(&options, argc - i, argv + i,
com_cpsi_callback, &result);
- if (ret > 0) {
- send_buffer(fd, (char *)result.data);
- free(result.data);
- } else
+ if (!ret)
+ return 0;
+ if (ret < 0) {
send_va_buffer(fd, "%s\n", para_strerror(-ret));
+ return ret;
+ }
+ ret = send_buffer(fd, (char *)result.data);
+ free(result.data);
return ret;
}