With the recent ability to name paste buffers, the following is possible: % ~/projects/tmux/tmux setb -b buffer0001 -nfoo % ~/projects/tmux/tmux setb -b buffer0000 -nbuffer0001 % ~/projects/tmux/tmux setb -b foo -nbuffer0001
Which results in two paste buffers with the same name. Perfectly legal since they're two different paste buffers, but it's confusing as hell working out which one of those gets used. So check for this, and disallow it. --- paste.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/paste.c b/paste.c index fdd4f5d..e6f77c4 100644 --- a/paste.c +++ b/paste.c @@ -175,7 +175,7 @@ paste_add(char *data, size_t size) int paste_rename(const char *oldname, const char *newname, char **cause) { - struct paste_buffer *pb; + struct paste_buffer *pb, *pb_new; if (cause != NULL) *cause = NULL; @@ -192,12 +192,22 @@ paste_rename(const char *oldname, const char *newname, char **cause) } pb = paste_get_name(oldname); + pb_new = paste_get_name(newname); + if (pb == NULL) { if (cause != NULL) xasprintf(cause, "no buffer %s", oldname); return (-1); } + if (pb_new != NULL) { + if (cause != NULL) { + xasprintf(cause, + "buffer '%s' already exists", newname); + } + return (-1); + } + RB_REMOVE(paste_name_tree, &paste_by_name, pb); free(pb->name); -- 1.8.4.rc2 ------------------------------------------------------------------------------ "Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE Instantly run your Selenium tests across 300+ browser/OS combos. Get unparalleled scalability from the best Selenium testing platform available Simple to use. Nothing to install. Get started now for free." http://p.sf.net/sfu/SauceLabs _______________________________________________ tmux-users mailing list tmux-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/tmux-users