=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-save-buffer.c,v retrieving revision 1.7 retrieving revision 1.8 diff -c -r1.7 -r1.8 *** src/usr.bin/tmux/cmd-save-buffer.c 2010/06/28 22:10:42 1.7 --- src/usr.bin/tmux/cmd-save-buffer.c 2010/07/24 20:11:59 1.8 *************** *** 1,4 **** ! /* $OpenBSD: cmd-save-buffer.c,v 1.7 2010/06/28 22:10:42 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha --- 1,4 ---- ! /* $OpenBSD: cmd-save-buffer.c,v 1.8 2010/07/24 20:11:59 nicm Exp $ */ /* * Copyright (c) 2009 Tiago Cunha *************** *** 47,54 **** struct cmd_buffer_data *data = self->data; struct session *s; struct paste_buffer *pb; ! mode_t mask; ! FILE *f, *close_f; if ((s = cmd_find_session(ctx, data->target)) == NULL) return (-1); --- 47,54 ---- struct cmd_buffer_data *data = self->data; struct session *s; struct paste_buffer *pb; ! mode_t mask; ! FILE *f; if ((s = cmd_find_session(ctx, data->target)) == NULL) return (-1); *************** *** 70,77 **** ctx->error(ctx, "%s: can't write to stdout", data->arg); return (-1); } ! f = ctx->cmdclient->stdout_file; ! close_f = NULL; } else { mask = umask(S_IRWXG | S_IRWXO); if (cmd_check_flag(data->chflags, 'a')) --- 70,77 ---- ctx->error(ctx, "%s: can't write to stdout", data->arg); return (-1); } ! bufferevent_write( ! ctx->cmdclient->stdout_event, pb->data, pb->size); } else { mask = umask(S_IRWXG | S_IRWXO); if (cmd_check_flag(data->chflags, 'a')) *************** *** 83,99 **** ctx->error(ctx, "%s: %s", data->arg, strerror(errno)); return (-1); } ! close_f = f; } - - if (fwrite(pb->data, 1, pb->size, f) != pb->size) { - ctx->error(ctx, "%s: fwrite error", data->arg); - fclose(f); - return (-1); - } - - if (close_f != NULL) - fclose(close_f); return (0); } --- 83,95 ---- ctx->error(ctx, "%s: %s", data->arg, strerror(errno)); return (-1); } ! if (fwrite(pb->data, 1, pb->size, f) != pb->size) { ! ctx->error(ctx, "%s: fwrite error", data->arg); ! fclose(f); ! return (-1); ! } ! fclose(f); } return (0); }