=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/paste.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- src/usr.bin/tmux/paste.c 2015/08/29 09:36:46 1.29 +++ src/usr.bin/tmux/paste.c 2015/09/11 14:41:50 1.30 @@ -1,4 +1,4 @@ -/* $OpenBSD: paste.c,v 1.29 2015/08/29 09:36:46 nicm Exp $ */ +/* $OpenBSD: paste.c,v 1.30 2015/09/11 14:41:50 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -111,18 +111,6 @@ return (pb); } -/* Free the most recent buffer. */ -int -paste_free_top(void) -{ - struct paste_buffer *pb; - - pb = paste_get_top(NULL); - if (pb == NULL) - return (-1); - return (paste_free_name(pb->name)); -} - /* Get a paste buffer by name. */ struct paste_buffer * paste_get_name(const char *name) @@ -136,20 +124,10 @@ return (RB_FIND(paste_name_tree, &paste_by_name, &pbfind)); } -/* Free a paste buffer by name. */ -int -paste_free_name(const char *name) +/* Free a paste buffer. */ +void +paste_free(struct paste_buffer *pb) { - struct paste_buffer *pb, pbfind; - - if (name == NULL || *name == '\0') - return (-1); - - pbfind.name = (char *)name; - pb = RB_FIND(paste_name_tree, &paste_by_name, &pbfind); - if (pb == NULL) - return (-1); - RB_REMOVE(paste_name_tree, &paste_by_name, pb); RB_REMOVE(paste_time_tree, &paste_by_time, pb); if (pb->automatic) @@ -158,7 +136,6 @@ free(pb->data); free(pb->name); free(pb); - return (0); } /* @@ -179,7 +156,7 @@ if (paste_num_automatic < limit) break; if (pb->automatic) - paste_free_name(pb->name); + paste_free(pb); } pb = xmalloc(sizeof *pb); @@ -257,7 +234,7 @@ int paste_set(char *data, size_t size, const char *name, char **cause) { - struct paste_buffer *pb; + struct paste_buffer *pb, *old; if (cause != NULL) *cause = NULL; @@ -288,8 +265,8 @@ pb->automatic = 0; pb->order = paste_next_order++; - if (paste_get_name(name) != NULL) - paste_free_name(name); + if ((old = paste_get_name(name)) != NULL) + paste_free(old); RB_INSERT(paste_name_tree, &paste_by_name, pb); RB_INSERT(paste_time_tree, &paste_by_time, pb);