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);
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(). */
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)
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) */
"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)
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)
};
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);
}
/**