1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-30 14:56:39 +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
*/
+2
View File
@@ -279,6 +279,8 @@ extern void gui_buffer_set_active_buffer (struct t_gui_buffer *buffer);
extern struct t_gui_buffer *gui_buffer_get_next_active_buffer (struct t_gui_buffer *buffer);
extern struct t_gui_buffer *gui_buffer_get_previous_active_buffer (struct t_gui_buffer *buffer);
extern void gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number);
extern void gui_buffer_swap (struct t_gui_buffer *buffer1,
struct t_gui_buffer *buffer2);
extern void gui_buffer_merge (struct t_gui_buffer *buffer,
struct t_gui_buffer *target_buffer);
extern void gui_buffer_unmerge (struct t_gui_buffer *buffer, int number);