1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-28 13:56:37 +02:00

core: add option "swap" for command /buffer (task #11373)

This commit is contained in:
Nils Görs
2012-07-29 20:08:52 +02:00
committed by Sebastien Helleu
parent 418b0519eb
commit ee74131f69
19 changed files with 371 additions and 116 deletions
+31
View File
@@ -2494,6 +2494,37 @@ gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number)
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
}
/*
* gui_buffer_swap: swap two buffers
*/
void
gui_buffer_swap (struct t_gui_buffer *buffer1, struct t_gui_buffer *buffer2)
{
struct t_gui_buffer *ptr_buffer1, *ptr_buffer2;
int number1, number2;
if (!buffer1 || !buffer2)
return;
/* store pointers and numbers, with number1 < number2 */
ptr_buffer1 = (buffer1->number < buffer2->number) ? buffer1 : buffer2;
ptr_buffer2 = (buffer1->number < buffer2->number) ? buffer2 : buffer1;
number1 = ptr_buffer1->number;
number2 = ptr_buffer2->number;
/* swap buffer with itself? nothing to do! */
if (number1 == number2)
return;
/* move number2 before number1 */
gui_buffer_move_to_number (ptr_buffer2, number1);
/* move number1 before number2 */
if (number2 > number1 + 1)
gui_buffer_move_to_number (ptr_buffer1, number2);
}
/*
* gui_buffer_merge: merge a buffer to another buffer
*/