- para_printf(&raad.pb, "%s\n", PARA_STRERROR(-ret));
- if (raad.num_removed) {
- uint64_t and_mask = ~raad.mask_of_removed_atts;
- ret = audio_file_loop(&and_mask, logical_and_attribute);
- if (ret < 0)
- para_printf(&raad.pb, "%s\n", PARA_STRERROR(-ret));
- find_greatest_att_bitnum();
- ret = reload_current_mood();
- if (ret < 0)
- para_printf(&raad.pb, "%s\n", PARA_STRERROR(-ret));
- }
- if (!raad.pb.buf)
- para_printf(&raad.pb, "no match -- nothing removed\n");
- result->data = raad.pb.buf;
- result->size = raad.pb.size;
- return 1;
+ ret2 = para_printf(&raad.pb, "%s\n", para_strerror(-ret));
+ else if (!raad.num_removed)
+ ret2 = para_printf(&raad.pb, "no match -- nothing removed\n");
+ if (ret2 >= 0 && raad.pb.offset)
+ pass_buffer_as_shm(fd, SBD_OUTPUT, raad.pb.buf, raad.pb.offset);
+ free(raad.pb.buf);