1
0
mirror of https://github.com/weechat/weechat.git synced 2026-06-27 05:16:38 +02:00

core: add function gui_buffer_search_by_id (issue #2081)

This commit is contained in:
Sébastien Helleu
2024-03-07 07:32:27 +01:00
parent c71e6a50eb
commit 5af0415508
3 changed files with 44 additions and 0 deletions
+20
View File
@@ -2860,6 +2860,26 @@ gui_buffer_search_main ()
return NULL;
}
/*
* Searches for a buffer by id (unique identifier).
*/
struct t_gui_buffer *
gui_buffer_search_by_id (long long id)
{
struct t_gui_buffer *ptr_buffer;
for (ptr_buffer = gui_buffers; ptr_buffer;
ptr_buffer = ptr_buffer->next_buffer)
{
if (ptr_buffer->id == id)
return ptr_buffer;
}
/* buffer not found */
return NULL;
}
/*
* Searches for a buffer by full name (example: "irc.libera.#weechat").
*
+1
View File
@@ -391,6 +391,7 @@ extern void gui_buffer_add_value_num_displayed (struct t_gui_buffer *buffer,
int value);
extern int gui_buffer_is_main (const char *plugin_name, const char *name);
extern struct t_gui_buffer *gui_buffer_search_main ();
extern struct t_gui_buffer *gui_buffer_search_by_id (long long id);
extern struct t_gui_buffer *gui_buffer_search_by_full_name (const char *full_name);
extern struct t_gui_buffer *gui_buffer_search (const char *plugin, const char *name);
extern struct t_gui_buffer *gui_buffer_search_by_partial_name (const char *plugin,
+23
View File
@@ -1313,6 +1313,29 @@ TEST(GuiBuffer, SearchMain)
gui_buffer_close (buffer);
}
/*
* Tests functions:
* gui_buffer_search_by_id
*/
TEST(GuiBuffer, SearchById)
{
struct t_gui_buffer *buffer;
buffer = gui_buffer_new (NULL, TEST_BUFFER_NAME,
NULL, NULL, NULL,
NULL, NULL, NULL);
CHECK(buffer);
POINTERS_EQUAL(NULL, gui_buffer_search_by_id (-1));
POINTERS_EQUAL(NULL, gui_buffer_search_by_id (0));
POINTERS_EQUAL(gui_buffers, gui_buffer_search_by_id (gui_buffers->id));
POINTERS_EQUAL(buffer, gui_buffer_search_by_id (buffer->id));
gui_buffer_close (buffer);
}
/*
* Tests functions:
* gui_buffer_search_by_full_name