]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - aft.c
afs: Introduce flush_and_free_pb().
[paraslash.git] / aft.c
diff --git a/aft.c b/aft.c
index 42153d46b09bcdc4198d4564290a51cc2f636ebe..16de67634677c4ba75774bc9453ae427f4581a13 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -1344,9 +1344,7 @@ static void com_ls_callback(int fd, const struct osl_object *query)
                                goto out;
                }
 out:
-       if (b.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, b.buf, b.offset);
-       free(b.buf);
+       flush_and_free_pb(&b);
        free(opts->data);
        free(opts->data_ptr);
        free(opts->patterns);
@@ -1739,9 +1737,7 @@ static void com_add_callback(int fd, const struct osl_object *query)
 out:
        if (ret < 0)
                para_printf(&msg, "%s\n", para_strerror(-ret));
-       if (msg.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, msg.buf, msg.offset);
-       free(msg.buf);
+       flush_and_free_pb(&msg);
 }
 
 /** Used by com_add(). */
@@ -2042,9 +2038,7 @@ static void com_touch_callback(int fd, const struct osl_object *query)
                para_printf(&tad.pb, "%s\n", para_strerror(-ret));
        else if (pmd.num_matches == 0)
                para_printf(&tad.pb, "no matches\n");
-       if (tad.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, tad.pb.buf, tad.pb.offset);
-       free(tad.pb.buf);
+       flush_and_free_pb(&tad.pb);
 }
 
 int com_touch(struct command_context *cc)
@@ -2187,9 +2181,7 @@ static void com_rm_callback(int fd, const struct osl_object *query)
                para_printf(&crd.pb, "no matches -- nothing removed\n");
        else if (crd.flags & RM_FLAG_VERBOSE)
                para_printf(&crd.pb, "removed %u files\n", pmd.num_matches);
-       if (ret >= 0 && crd.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, crd.pb.buf, crd.pb.offset);
-       free(crd.pb.buf);
+       flush_and_free_pb(&crd.pb);
 }
 
 /* TODO options: -r (recursive) */
@@ -2332,9 +2324,7 @@ out:
                                "to %u files\n", source_path, pmd.num_matches);
        } else
                para_printf(&cad.pb, "no matches - nothing copied\n");
-       if (cad.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, cad.pb.buf, cad.pb.offset);
-       free(cad.pb.buf);
+       flush_and_free_pb(&cad.pb);
 }
 
 int com_cpsi(struct command_context *cc)
@@ -2479,9 +2469,7 @@ static void com_setatt_callback(int fd, const struct osl_object *query)
 out:
        if (ret < 0)
                para_printf(&cad.pb, "%s\n", para_strerror(-ret));
-       if (cad.pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, cad.pb.buf, cad.pb.offset);
-       free(cad.pb.buf);
+       flush_and_free_pb(&cad.pb);
 }
 
 int com_setatt(struct command_context *cc)
@@ -2582,9 +2570,7 @@ void aft_check_callback(int fd, __a_unused const struct osl_object *query)
        };
        para_printf(&pb, "checking audio file table...\n");
        audio_file_loop(&pb, check_audio_file);
-       if (pb.offset)
-               pass_buffer_as_shm(fd, SBD_OUTPUT, pb.buf, pb.offset);
-       free(pb.buf);
+       flush_and_free_pb(&pb);
 }
 
 /**