]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
doxify acl.c.
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 2cdeb20cec5da5e8695d25bfe631a1a3d04c0f99..0bf38fe691838b78cc35a1a8cde344147b5d4f47 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -1,5 +1,5 @@
 /*
- * 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.
  */
@@ -804,8 +804,8 @@ static char *make_image_lines(struct afs_info *afsi)
 
 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",
@@ -814,9 +814,8 @@ static char *make_filename_lines(const char *path, unsigned flags)
        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;
 }
@@ -887,13 +886,15 @@ static int print_list_item(struct ls_data *d, struct ls_options *opts,
        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 */
@@ -1631,7 +1632,7 @@ static int com_add_callback(const struct osl_object *query,
        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;
@@ -1761,7 +1762,7 @@ out_unmap:
 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);
@@ -1806,7 +1807,8 @@ int com_add(int fd, int argc, char * const * const argv)
                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;
@@ -1826,7 +1828,7 @@ int com_add(int fd, int argc, char * const * const argv)
                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;
                }
@@ -1882,12 +1884,12 @@ static int touch_audio_file(__a_unused struct osl_table *table,
 
        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;
@@ -1935,7 +1937,7 @@ static int com_touch_callback(const struct osl_object *query,
                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;
@@ -2007,7 +2009,7 @@ int com_touch(int fd, int argc, char * const * const argv)
                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;
 }
 
@@ -2042,7 +2044,7 @@ static int remove_audio_file(__a_unused struct osl_table *table,
        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;
@@ -2066,7 +2068,7 @@ static int com_rm_callback(const struct osl_object *query,
                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 {
@@ -2119,7 +2121,7 @@ int com_rm(int fd, int argc,  char * const * const argv)
                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;
 }
 
@@ -2212,7 +2214,7 @@ static int com_cpsi_callback(const struct osl_object *query,
        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 "
@@ -2280,7 +2282,7 @@ int com_cpsi(int fd, int argc,  char * const * const argv)
                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;
 }
 
@@ -2295,7 +2297,7 @@ static int check_audio_file(struct osl_row *row, void *data)
        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)
@@ -2306,17 +2308,17 @@ static int check_audio_file(struct osl_row *row, void *data)
        }
        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;
 }