io_error_t close_temp_file(const char *filename, int ofd, int type, mus_long_t bytes) { int err; err = mus_file_close(ofd); if (err == MUS_NO_ERROR) { local_mus_error = MUS_NO_ERROR; old_error_handler = mus_error_set_handler(local_mus_error_to_snd); mus_header_change_data_size(filename, type, bytes); mus_error_set_handler(old_error_handler); return(sndlib_error_to_snd(local_mus_error)); } return(sndlib_error_to_snd(err)); }
int mus_sound_close_output(int fd, mus_long_t bytes_of_data) { char *name; name = mus_file_fd_name(fd); if (name) { int err = MUS_ERROR, old_type; char *fname; fname = mus_strdup(name); old_type = mus_file_header_type(fd); err = mus_file_close(fd); /* this frees the original fd->name, so we copied above */ /* fd is NULL now */ mus_sound_forget(fname); mus_header_change_data_size(fname, old_type, bytes_of_data); free(fname); return(err); } return(MUS_ERROR); }