NeoMutt  2023-05-17-16-g61469c
Teaching an old dog new tricks
DOXYGEN
search()

Search a menu for a item matching a regex. More...

+ Collaboration diagram for search():

Functions

static int select_file_search (struct Menu *menu, regex_t *rx, int line)
 Menu search callback for matching files - Implements Menu::search() -. More...
 
static int generic_search (struct Menu *menu, regex_t *rx, int line)
 Search a menu for a item matching a regex - Implements Menu::search() -. More...
 

Detailed Description

Search a menu for a item matching a regex.

Parameters
menuMenu to search
rxRegex to match
lineMenu entry to match
Return values
0Success
>0Error, e.g. REG_NOMATCH

Function Documentation

◆ select_file_search()

static int select_file_search ( struct Menu menu,
regex_t *  rx,
int  line 
)
static

Menu search callback for matching files - Implements Menu::search() -.

Definition at line 861 of file browser.c.

862{
863 struct BrowserStateEntry *entry = menu->mdata;
864#ifdef USE_NNTP
865 if (OptNews)
866 return regexec(rx, ARRAY_GET(entry, line)->desc, 0, NULL, 0);
867#endif
868 struct FolderFile *ff = ARRAY_GET(entry, line);
869 char *search_on = ff->desc ? ff->desc : ff->name;
870
871 return regexec(rx, search_on, 0, NULL, 0);
872}
#define ARRAY_GET(head, idx)
Return the element at index.
Definition: array.h:108
bool OptNews
(pseudo) used to change reader mode
Definition: globals.c:79
Browser entry representing a folder/dir.
Definition: lib.h:73
char * name
Name of file/dir/mailbox.
Definition: lib.h:81
char * desc
Description of mailbox.
Definition: lib.h:82
void * mdata
Private data.
Definition: lib.h:138
+ Here is the caller graph for this function:

◆ generic_search()

static int generic_search ( struct Menu menu,
regex_t *  rx,
int  line 
)
static

Search a menu for a item matching a regex - Implements Menu::search() -.

Definition at line 55 of file menu.c.

56{
57 char buf[1024] = { 0 };
58
59 menu->make_entry(menu, buf, sizeof(buf), line);
60 return regexec(rx, buf, 0, NULL, 0);
61}
void(* make_entry)(struct Menu *menu, char *buf, size_t buflen, int line)
Definition: lib.h:97
+ Here is the caller graph for this function: