mirror of
https://github.com/weechat/weechat.git
synced 2026-06-30 06:46:38 +02:00
core: add option -all for command /buffer unmerge
This commit is contained in:
+17
-10
@@ -651,15 +651,22 @@ COMMAND_CALLBACK(buffer)
|
||||
number = -1;
|
||||
if (argc >= 3)
|
||||
{
|
||||
error = NULL;
|
||||
number = strtol (argv[2], &error, 10);
|
||||
if (!error || error[0])
|
||||
if (string_strcasecmp (argv[2], "-all") == 0)
|
||||
{
|
||||
/* invalid number */
|
||||
gui_chat_printf (NULL,
|
||||
_("%sError: incorrect buffer number"),
|
||||
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]);
|
||||
return WEECHAT_RC_OK;
|
||||
gui_buffer_unmerge_all ();
|
||||
}
|
||||
else
|
||||
{
|
||||
error = NULL;
|
||||
number = strtol (argv[2], &error, 10);
|
||||
if (!error || error[0])
|
||||
{
|
||||
/* invalid number */
|
||||
gui_chat_printf (NULL,
|
||||
_("%sError: incorrect buffer number"),
|
||||
gui_chat_prefix[GUI_CHAT_PREFIX_ERROR]);
|
||||
return WEECHAT_RC_OK;
|
||||
}
|
||||
}
|
||||
}
|
||||
gui_buffer_unmerge (buffer, (int) number);
|
||||
@@ -5159,7 +5166,7 @@ command_init ()
|
||||
N_("list"
|
||||
" || clear [<number>|-merged|-all]"
|
||||
" || move|merge <number>"
|
||||
" || unmerge [<number>]"
|
||||
" || unmerge [<number>|-all]"
|
||||
" || close [<n1>[-<n2>]|<name>]"
|
||||
" || notify <level>"
|
||||
" || localvar"
|
||||
@@ -5217,7 +5224,7 @@ command_init ()
|
||||
"clear -merged|-all|%(buffers_numbers)"
|
||||
" || move %(buffers_numbers)"
|
||||
" || merge %(buffers_numbers)"
|
||||
" || unmerge %(buffers_numbers)"
|
||||
" || unmerge %(buffers_numbers)|-all"
|
||||
" || close %(buffers_plugins_names)"
|
||||
" || list"
|
||||
" || notify reset|none|highlight|message|all"
|
||||
|
||||
@@ -2580,6 +2580,33 @@ gui_buffer_unmerge (struct t_gui_buffer *buffer, int number)
|
||||
WEECHAT_HOOK_SIGNAL_POINTER, buffer);
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_buffer_unmerge_all: unmerge all merged buffers
|
||||
*/
|
||||
|
||||
void
|
||||
gui_buffer_unmerge_all ()
|
||||
{
|
||||
int number, count_merged, i;
|
||||
struct t_gui_buffer *ptr_buffer;
|
||||
|
||||
number = 1;
|
||||
while (number <= last_gui_buffer->number)
|
||||
{
|
||||
count_merged = gui_buffer_count_merged_buffers (number);
|
||||
if (count_merged > 1)
|
||||
{
|
||||
for (i = 0; i < count_merged - 1; i++)
|
||||
{
|
||||
ptr_buffer = gui_buffer_search_by_number (number);
|
||||
if (ptr_buffer)
|
||||
gui_buffer_unmerge (ptr_buffer, -1);
|
||||
}
|
||||
}
|
||||
number++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* gui_buffer_undo_snap: do a "snapshot" of buffer input (save content and
|
||||
* position)
|
||||
|
||||
@@ -278,6 +278,7 @@ extern void gui_buffer_move_to_number (struct t_gui_buffer *buffer, int number);
|
||||
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);
|
||||
extern void gui_buffer_unmerge_all ();
|
||||
extern void gui_buffer_undo_snap (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_undo_snap_free (struct t_gui_buffer *buffer);
|
||||
extern void gui_buffer_undo_add (struct t_gui_buffer *buffer);
|
||||
|
||||
Reference in New Issue
Block a user