core: optimize loop when closing several buffers with command /buffer close n1-n2

This commit is contained in:
Sebastien Helleu 2013-11-15 09:01:19 +01:00
parent d1a89e9db0
commit f435e8d3fa

View File

@ -801,26 +801,25 @@ COMMAND_CALLBACK(buffer)
{ {
error_main_buffer = 0; error_main_buffer = 0;
num_buffers = 0; num_buffers = 0;
for (i = number2; i >= number1; i--) ptr_buffer = last_gui_buffer;
while (ptr_buffer)
{ {
ptr_buffer = last_gui_buffer; ptr_prev_buffer = ptr_buffer->prev_buffer;
while (ptr_buffer) if (ptr_buffer->number < number1)
break;
if (ptr_buffer->number <= number2)
{ {
ptr_prev_buffer = ptr_buffer->prev_buffer; num_buffers++;
if (ptr_buffer->number == i) if (ptr_buffer == weechat_buffer)
{ {
num_buffers++; error_main_buffer = 1;
if (ptr_buffer == weechat_buffer) }
{ else
error_main_buffer = 1; {
} gui_buffer_close (ptr_buffer);
else
{
gui_buffer_close (ptr_buffer);
}
} }
ptr_buffer = ptr_prev_buffer;
} }
ptr_buffer = ptr_prev_buffer;
} }
/* /*
* display error for main buffer if it was the only * display error for main buffer if it was the only