NeoMutt  2024-11-14-34-g5aaf0d
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
make_entry()

Format a item for a menu. More...

+ Collaboration diagram for make_entry():

Functions

static int alias_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Alias for the Menu - Implements Menu::make_entry() -.
 
static int query_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Alias for the Menu - Implements Menu::make_entry() -.
 
static int attach_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Attachment for the Menu - Implements Menu::make_entry() -.
 
static int autocrypt_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Autocrypt Account for the Menu - Implements Menu::make_entry() -.
 
static int folder_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format a Folder for the Menu - Implements Menu::make_entry() -.
 
static int compose_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Attachment for the Menu - Implements Menu::make_entry() -.
 
static int cert_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Create a Certificate for the Menu - Implements Menu::make_entry() -.
 
static int history_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format a History Item for the Menu - Implements Menu::make_entry() -.
 
int index_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Email for the Menu - Implements Menu::make_entry() -.
 
static int crypt_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format a PGP Key for the Menu - Implements Menu::make_entry() -.
 
static int pgp_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format a PGP Key for the Menu - Implements Menu::make_entry() -.
 
static int smime_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an S/MIME Key for the Menu - Implements Menu::make_entry() -.
 
static int pattern_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Create a Pattern for the Menu - Implements Menu::make_entry() -.
 
static int post_make_entry (struct Menu *menu, int line, int max_cols, struct Buffer *buf)
 Format an Email for the Menu - Implements Menu::make_entry() -.
 

Detailed Description

Format a item for a menu.

Parameters
[in]menuMenu containing items
[in]lineMenu line number
[in]max_colsMaximum number of screen columns to use
[out]bufBuffer for the result
Return values
numNumber of screen columns used

Function Documentation

◆ alias_make_entry()

static int alias_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Alias for the Menu - Implements Menu::make_entry() -.

See also
$alias_format

Definition at line 221 of file dlg_alias.c.

222{
223 const struct AliasMenuData *mdata = menu->mdata;
224 const struct AliasViewArray *ava = &mdata->ava;
225 struct AliasView *av = ARRAY_GET(ava, line);
226
227 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
228 if (c_arrow_cursor)
229 {
230 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
231 if (max_cols > 0)
232 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
233 }
234
235 const struct Expando *c_alias_format = cs_subset_expando(mdata->sub, "alias_format");
236 return expando_filter(c_alias_format, AliasRenderData, av,
237 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
238}
#define ARRAY_GET(head, idx)
Return the element at index.
Definition: array.h:109
const char * cs_subset_string(const struct ConfigSubset *sub, const char *name)
Get a string config item by name.
Definition: helpers.c:291
bool cs_subset_bool(const struct ConfigSubset *sub, const char *name)
Get a boolean config item by name.
Definition: helpers.c:47
const struct Expando * cs_subset_expando(const struct ConfigSubset *sub, const char *name)
Get an Expando config item by name.
Definition: config_type.c:357
size_t mutt_strwidth(const char *s)
Measure a string's width in screen cells.
Definition: curs_lib.c:443
const struct ExpandoRenderData AliasRenderData[]
Callbacks for Alias Expandos.
Definition: dlg_alias.c:97
int expando_filter(const struct Expando *exp, const struct ExpandoRenderData *rdata, void *data, MuttFormatFlags flags, int max_cols, struct Buffer *buf)
Render an Expando and run the result through a filter.
Definition: filter.c:138
#define MUTT_FORMAT_ARROWCURSOR
Reserve space for arrow_cursor.
Definition: render.h:37
AliasView array wrapper with Pattern information -.
Definition: gui.h:54
struct AliasViewArray ava
All Aliases/Queries.
Definition: gui.h:55
struct Menu * menu
Menu.
Definition: gui.h:58
struct ConfigSubset * sub
Config items.
Definition: gui.h:57
GUI data wrapping an Alias.
Definition: gui.h:38
Parsed Expando trees.
Definition: expando.h:41
struct ConfigSubset * sub
Inherited config items.
Definition: lib.h:87
void * mdata
Private data.
Definition: lib.h:147
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ query_make_entry()

static int query_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Alias for the Menu - Implements Menu::make_entry() -.

See also
$query_format

Definition at line 232 of file dlg_query.c.

233{
234 const struct AliasMenuData *mdata = menu->mdata;
235 const struct AliasViewArray *ava = &mdata->ava;
236 struct AliasView *av = ARRAY_GET(ava, line);
237
238 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
239 if (c_arrow_cursor)
240 {
241 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
242 if (max_cols > 0)
243 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
244 }
245
246 const struct Expando *c_query_format = cs_subset_expando(mdata->sub, "query_format");
247 return expando_filter(c_query_format, QueryRenderData, av,
248 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
249}
const struct ExpandoRenderData QueryRenderData[]
Callbacks for Query Expandos.
Definition: dlg_query.c:98
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ attach_make_entry()

static int attach_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Attachment for the Menu - Implements Menu::make_entry() -.

See also
$attach_format

Definition at line 465 of file dlg_attach.c.

466{
467 struct AttachPrivateData *priv = menu->mdata;
468 struct AttachCtx *actx = priv->actx;
469
470 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
471 if (c_arrow_cursor)
472 {
473 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
474 if (max_cols > 0)
475 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
476 }
477
478 const struct Expando *c_attach_format = cs_subset_expando(NeoMutt->sub, "attach_format");
479 return expando_filter(c_attach_format, AttachRenderData, (actx->idx[actx->v2r[line]]),
480 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
481}
const struct ExpandoRenderData AttachRenderData[]
Callbacks for Attachment Expandos.
Definition: dlg_attach.c:622
A set of attachments.
Definition: attach.h:65
struct AttachPtr ** idx
Array of attachments.
Definition: attach.h:69
short * v2r
Mapping from virtual to real attachment.
Definition: attach.h:73
Private state data for Attachments.
Definition: private_data.h:36
struct Menu * menu
Current Menu.
Definition: private_data.h:37
struct AttachCtx * actx
List of all Attachments.
Definition: private_data.h:38
Container for Accounts, Notifications.
Definition: neomutt.h:42
struct ConfigSubset * sub
Inherited config items.
Definition: neomutt.h:46
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ autocrypt_make_entry()

static int autocrypt_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Autocrypt Account for the Menu - Implements Menu::make_entry() -.

See also
$autocrypt_acct_format

Definition at line 198 of file dlg_autocrypt.c.

199{
200 struct AutocryptData *ad = menu->mdata;
201 struct AccountEntry **pentry = ARRAY_GET(&ad->entries, line);
202 if (!pentry)
203 return 0;
204
205 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
206 if (c_arrow_cursor)
207 {
208 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
209 if (max_cols > 0)
210 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
211 }
212
213 const struct Expando *c_autocrypt_acct_format = cs_subset_expando(NeoMutt->sub, "autocrypt_acct_format");
214 return expando_filter(c_autocrypt_acct_format, AutocryptRenderData, *pentry,
215 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
216}
const struct ExpandoRenderData AutocryptRenderData[]
Callbacks for Autocrypt Expandos.
Definition: dlg_autocrypt.c:86
An entry in the Autocrypt account Menu.
Definition: private.h:47
Data to pass to the Autocrypt Functions.
struct Menu * menu
Autocrypt Menu.
struct AccountEntryArray entries
Account Entries.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ folder_make_entry()

static int folder_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format a Folder for the Menu - Implements Menu::make_entry() -.

See also
$folder_format, $group_index_format, $mailbox_folder_format

Definition at line 948 of file dlg_browser.c.

949{
950 struct BrowserPrivateData *priv = menu->mdata;
951 struct BrowserState *bstate = &priv->state;
952 struct BrowserEntryArray *entry = &bstate->entry;
953 struct Folder folder = {
954 .ff = ARRAY_GET(entry, line),
955 .num = line,
956 };
957
958 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
959 if (c_arrow_cursor)
960 {
961 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
962 if (max_cols > 0)
963 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
964 }
965
966 if (OptNews)
967 {
968 const struct Expando *c_group_index_format = cs_subset_expando(NeoMutt->sub, "group_index_format");
969 return expando_filter(c_group_index_format, GroupIndexRenderData, &folder,
970 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
971 }
972
973 if (bstate->is_mailbox_list)
974 {
975 const struct Expando *c_mailbox_folder_format = cs_subset_expando(NeoMutt->sub, "mailbox_folder_format");
976 return expando_filter(c_mailbox_folder_format, FolderRenderData, &folder,
977 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
978 }
979
980 const struct Expando *c_folder_format = cs_subset_expando(NeoMutt->sub, "folder_format");
981 return expando_filter(c_folder_format, FolderRenderData, &folder,
982 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
983}
const struct ExpandoRenderData GroupIndexRenderData[]
Callbacks for Nntp Browser Expandos.
Definition: dlg_browser.c:110
const struct ExpandoRenderData FolderRenderData[]
Callbacks for Browser Expandos.
Definition: dlg_browser.c:109
bool OptNews
(pseudo) used to change reader mode
Definition: globals.c:67
Private state data for the Browser.
Definition: private_data.h:34
struct Menu * menu
Menu.
Definition: private_data.h:43
struct BrowserState state
State containing list of files/dir/mailboxes.
Definition: private_data.h:42
State of the file/mailbox browser.
Definition: lib.h:143
bool is_mailbox_list
Viewing mailboxes.
Definition: lib.h:147
struct BrowserEntryArray entry
Array of files / dirs / mailboxes.
Definition: lib.h:144
A folder/dir in the browser.
Definition: lib.h:68
struct FolderFile * ff
File / Dir / Mailbox.
Definition: lib.h:69
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ compose_make_entry()

static int compose_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Attachment for the Menu - Implements Menu::make_entry() -.

See also
$attach_format

Definition at line 217 of file attach.c.

218{
219 struct ComposeAttachData *adata = menu->mdata;
220 struct AttachCtx *actx = adata->actx;
221 struct ComposeSharedData *shared = menu->win->parent->wdata;
222 struct ConfigSubset *sub = shared->sub;
223
224 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
225 if (c_arrow_cursor)
226 {
227 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
228 if (max_cols > 0)
229 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
230 }
231
232 const struct Expando *c_attach_format = cs_subset_expando(sub, "attach_format");
233 return expando_filter(c_attach_format, AttachRenderData, (actx->idx[actx->v2r[line]]),
235}
#define MUTT_FORMAT_STAT_FILE
Used by attach_format_str.
Definition: render.h:36
Data to fill the Compose Attach Window.
Definition: attach_data.h:33
struct Menu * menu
Menu displaying the attachments.
Definition: attach_data.h:35
struct AttachCtx * actx
Set of attachments.
Definition: attach_data.h:34
Shared Compose Data.
Definition: shared_data.h:35
struct ConfigSubset * sub
Config set to use.
Definition: shared_data.h:36
A set of inherited config items.
Definition: subset.h:47
struct MuttWindow * win
Window holding the Menu.
Definition: lib.h:86
void * wdata
Private data.
Definition: mutt_window.h:144
struct MuttWindow * parent
Parent Window.
Definition: mutt_window.h:134
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ cert_make_entry()

static int cert_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Create a Certificate for the Menu - Implements Menu::make_entry() -.

Definition at line 133 of file dlg_verifycert.c.

134{
135 struct CertMenuData *mdata = menu->mdata;
136
137 menu->current = -1; /* hide menubar */
138
139 int total_cols = 0;
140
141 const char **line_ptr = ARRAY_GET(mdata->carr, line);
142 if (line_ptr)
143 {
144 const int bytes = buf_addstr(buf, *line_ptr);
145 total_cols = mutt_strnwidth(buf_string(buf), bytes);
146 }
147
148 return total_cols;
149}
size_t buf_addstr(struct Buffer *buf, const char *s)
Add a string to a Buffer.
Definition: buffer.c:226
static const char * buf_string(const struct Buffer *buf)
Convert a buffer to a const char * "string".
Definition: buffer.h:96
size_t mutt_strnwidth(const char *s, size_t n)
Measure a string's width in screen cells.
Definition: curs_lib.c:456
Certificate data to use in the Menu.
Definition: ssl.h:42
struct CertArray * carr
Lines of the Certificate.
Definition: ssl.h:43
int current
Current entry.
Definition: lib.h:80
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ history_make_entry()

static int history_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format a History Item for the Menu - Implements Menu::make_entry() -.

Definition at line 111 of file dlg_history.c.

112{
113 struct HistoryData *hd = menu->mdata;
114
115 const char **pentry = ARRAY_GET(hd->matches, line);
116 if (!pentry)
117 return 0;
118
119 struct HistoryEntry h = { line, *pentry };
120
121 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
122 if (c_arrow_cursor)
123 {
124 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
125 if (max_cols > 0)
126 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
127 }
128
129 const struct Expando *c_history_format = cs_subset_expando(NeoMutt->sub, "history_format");
130 return expando_filter(c_history_format, HistoryRenderData, &h,
131 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
132}
const struct ExpandoRenderData HistoryRenderData[]
Callbacks for History Expandos.
Definition: dlg_history.c:73
Data to pass to the History Functions.
Definition: functions.h:38
struct Menu * menu
History Menu.
Definition: functions.h:42
struct HistoryArray * matches
History entries.
Definition: functions.h:43
A line in the History menu.
Definition: lib.h:68
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ index_make_entry()

int index_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)

Format an Email for the Menu - Implements Menu::make_entry() -.

See also
$index_format

Definition at line 797 of file dlg_index.c.

798{
799 if (!menu || !menu->mdata)
800 return 0;
801
802 struct IndexPrivateData *priv = menu->mdata;
803 struct IndexSharedData *shared = priv->shared;
804 struct Mailbox *m = shared->mailbox;
805 if (!shared->mailbox_view)
806 menu->current = -1;
807
808 if (!m || (line < 0) || (line >= m->email_max))
809 return 0;
810
811 struct Email *e = mutt_get_virt_email(m, line);
812 if (!e)
813 return 0;
814
816 struct MuttThread *tmp = NULL;
817
818 const enum UseThreads c_threads = mutt_thread_style();
819 if ((c_threads > UT_FLAT) && e->tree && e->thread)
820 {
821 flags |= MUTT_FORMAT_TREE; /* display the thread tree */
822 if (e->display_subject)
823 {
824 flags |= MUTT_FORMAT_FORCESUBJ;
825 }
826 else
827 {
828 const bool reverse = c_threads == UT_REVERSE;
829 int edgemsgno;
830 if (reverse)
831 {
832 if (menu->top + menu->page_len > menu->max)
833 edgemsgno = m->v2r[menu->max - 1];
834 else
835 edgemsgno = m->v2r[menu->top + menu->page_len - 1];
836 }
837 else
838 {
839 edgemsgno = m->v2r[menu->top];
840 }
841
842 for (tmp = e->thread->parent; tmp; tmp = tmp->parent)
843 {
844 if (!tmp->message)
845 continue;
846
847 /* if no ancestor is visible on current screen, provisionally force
848 * subject... */
849 if (reverse ? (tmp->message->msgno > edgemsgno) : (tmp->message->msgno < edgemsgno))
850 {
851 flags |= MUTT_FORMAT_FORCESUBJ;
852 break;
853 }
854 else if (tmp->message->vnum >= 0)
855 {
856 break;
857 }
858 }
859 if (flags & MUTT_FORMAT_FORCESUBJ)
860 {
861 for (tmp = e->thread->prev; tmp; tmp = tmp->prev)
862 {
863 if (!tmp->message)
864 continue;
865
866 /* ...but if a previous sibling is available, don't force it */
867 if (reverse ? (tmp->message->msgno > edgemsgno) : (tmp->message->msgno < edgemsgno))
868 {
869 break;
870 }
871 else if (tmp->message->vnum >= 0)
872 {
873 flags &= ~MUTT_FORMAT_FORCESUBJ;
874 break;
875 }
876 }
877 }
878 }
879 }
880
881 const struct Expando *c_index_format = cs_subset_expando(shared->sub, "index_format");
882 int msg_in_pager = shared->mailbox_view ? shared->mailbox_view->msg_in_pager : 0;
883
884 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
885 if (c_arrow_cursor)
886 {
887 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
888 if (max_cols > 0)
889 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
890 }
891
892 return mutt_make_string(buf, max_cols, c_index_format, m, msg_in_pager, e, flags, NULL);
893}
int mutt_make_string(struct Buffer *buf, size_t max_cols, const struct Expando *exp, struct Mailbox *m, int inpgr, struct Email *e, MuttFormatFlags flags, const char *progress)
Create formatted strings using mailbox expandos.
Definition: hdrline.c:1719
enum UseThreads mutt_thread_style(void)
Which threading style is active?
Definition: mutt_thread.c:82
UseThreads
Which threading style is active, $use_threads.
Definition: mutt_thread.h:97
@ UT_FLAT
Unthreaded.
Definition: mutt_thread.h:99
@ UT_REVERSE
Reverse threading (subthreads above root)
Definition: mutt_thread.h:101
struct Email * mutt_get_virt_email(struct Mailbox *m, int vnum)
Get a virtual Email.
Definition: mview.c:418
#define MUTT_FORMAT_FORCESUBJ
Print the subject even if unchanged.
Definition: render.h:34
#define MUTT_FORMAT_INDEX
This is a main index entry.
Definition: render.h:38
#define MUTT_FORMAT_TREE
Draw the thread tree.
Definition: render.h:35
uint8_t MuttFormatFlags
Flags for expando_render(), e.g. MUTT_FORMAT_FORCESUBJ.
Definition: render.h:32
The envelope/body of an email.
Definition: email.h:39
bool display_subject
Used for threading.
Definition: email.h:101
char * tree
Character string to print thread tree.
Definition: email.h:125
int vnum
Virtual message number.
Definition: email.h:114
int msgno
Number displayed to the user.
Definition: email.h:111
struct MuttThread * thread
Thread of Emails.
Definition: email.h:119
Private state data for the Index.
Definition: private_data.h:35
struct IndexSharedData * shared
Shared Index data.
Definition: private_data.h:40
struct Menu * menu
Menu controlling the index.
Definition: private_data.h:41
Data shared between Index, Pager and Sidebar.
Definition: shared_data.h:37
struct Mailbox * mailbox
Current Mailbox.
Definition: shared_data.h:41
struct ConfigSubset * sub
Config set to use.
Definition: shared_data.h:38
struct MailboxView * mailbox_view
Current Mailbox view.
Definition: shared_data.h:40
int msg_in_pager
Message currently shown in the pager.
Definition: mview.h:45
A mailbox.
Definition: mailbox.h:79
int * v2r
Mapping from virtual to real msgno.
Definition: mailbox.h:98
int email_max
Size of emails array.
Definition: mailbox.h:97
int top
Entry that is the top of the current page.
Definition: lib.h:90
int max
Number of entries in the menu.
Definition: lib.h:81
int page_len
Number of entries per screen.
Definition: lib.h:84
An Email conversation.
Definition: thread.h:34
struct MuttThread * parent
Parent of this Thread.
Definition: thread.h:44
struct MuttThread * prev
Previous sibling Thread.
Definition: thread.h:47
struct Email * message
Email this Thread refers to.
Definition: thread.h:49
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ crypt_make_entry()

static int crypt_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format a PGP Key for the Menu - Implements Menu::make_entry() -.

See also
$pgp_entry_format

Definition at line 533 of file dlg_gpgme.c.

534{
535 struct GpgmeData *gd = menu->mdata;
536 struct CryptKeyInfo **pinfo = ARRAY_GET(gd->key_table, line);
537 if (!pinfo)
538 return 0;
539
540 struct CryptEntry entry = { line + 1, *pinfo };
541
542 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
543 if (c_arrow_cursor)
544 {
545 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
546 if (max_cols > 0)
547 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
548 }
549
550 const struct Expando *c_pgp_entry_format = cs_subset_expando(NeoMutt->sub, "pgp_entry_format");
551 return expando_filter(c_pgp_entry_format, PgpEntryGpgmeRenderData, &entry,
552 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
553}
const struct ExpandoRenderData PgpEntryGpgmeRenderData[]
Callbacks for GPGME Key Expandos.
Definition: dlg_gpgme.c:93
An entry in the Select-Key menu.
Definition: crypt_gpgme.h:87
A stored PGP key.
Definition: crypt_gpgme.h:45
Data to pass to the Gpgme Functions.
struct CryptKeyInfoArray * key_table
Array of Keys.
struct Menu * menu
Gpgme Menu.
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pgp_make_entry()

static int pgp_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format a PGP Key for the Menu - Implements Menu::make_entry() -.

See also
$pgp_entry_format

Definition at line 527 of file dlg_pgp.c.

528{
529 struct PgpData *pd = menu->mdata;
530 struct PgpUid **puid = ARRAY_GET(pd->key_table, line);
531 if (!*puid)
532 return 0;
533
534 struct PgpEntry entry = { line + 1, *puid };
535
536 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
537 if (c_arrow_cursor)
538 {
539 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
540 if (max_cols > 0)
541 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
542 }
543
544 const struct Expando *c_pgp_entry_format = cs_subset_expando(NeoMutt->sub, "pgp_entry_format");
545 return expando_filter(c_pgp_entry_format, PgpEntryRenderData, &entry,
546 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
547}
const struct ExpandoRenderData PgpEntryRenderData[]
PgpEntryRenderData- Callbacks for PGP Key Expandos.
Definition: dlg_pgp.c:91
Data to pass to the Pgp Functions.
Definition: pgp_functions.h:35
struct Menu * menu
Pgp Menu.
Definition: pgp_functions.h:37
struct PgpUidArray * key_table
Array of Keys.
Definition: pgp_functions.h:38
An entry in a PGP key menu.
Definition: private.h:39
PGP User ID.
Definition: pgplib.h:35
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ smime_make_entry()

static int smime_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an S/MIME Key for the Menu - Implements Menu::make_entry() -.

Definition at line 110 of file dlg_smime.c.

111{
112 struct SmimeData *sd = menu->mdata;
113 struct SmimeKey **pkey = ARRAY_GET(sd->ska, line);
114 if (!pkey)
115 return 0;
116
117 char *truststate = NULL;
118 switch ((*pkey)->trust)
119 {
120 case 'e':
121 /* L10N: Describes the trust state of a S/MIME key.
122 This translation must be padded with spaces to the right such that it
123 has the same length as the other translations.
124 The translation strings which need to be padded are:
125 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
126 truststate = _("Expired ");
127 break;
128 case 'i':
129 /* L10N: Describes the trust state of a S/MIME key.
130 This translation must be padded with spaces to the right such that it
131 has the same length as the other translations.
132 The translation strings which need to be padded are:
133 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
134 truststate = _("Invalid ");
135 break;
136 case 'r':
137 /* L10N: Describes the trust state of a S/MIME key.
138 This translation must be padded with spaces to the right such that it
139 has the same length as the other translations.
140 The translation strings which need to be padded are:
141 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
142 truststate = _("Revoked ");
143 break;
144 case 't':
145 /* L10N: Describes the trust state of a S/MIME key.
146 This translation must be padded with spaces to the right such that it
147 has the same length as the other translations.
148 The translation strings which need to be padded are:
149 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
150 truststate = _("Trusted ");
151 break;
152 case 'u':
153 /* L10N: Describes the trust state of a S/MIME key.
154 This translation must be padded with spaces to the right such that it
155 has the same length as the other translations.
156 The translation strings which need to be padded are:
157 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
158 truststate = _("Unverified");
159 break;
160 case 'v':
161 /* L10N: Describes the trust state of a S/MIME key.
162 This translation must be padded with spaces to the right such that it
163 has the same length as the other translations.
164 The translation strings which need to be padded are:
165 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
166 truststate = _("Verified ");
167 break;
168 default:
169 /* L10N: Describes the trust state of a S/MIME key.
170 This translation must be padded with spaces to the right such that it
171 has the same length as the other translations.
172 The translation strings which need to be padded are:
173 Expired, Invalid, Revoked, Trusted, Unverified, Verified, and Unknown. */
174 truststate = _("Unknown ");
175 }
176
177 int bytes = buf_printf(buf, " 0x%s %s %s %-35.35s %s", (*pkey)->hash,
178 smime_key_flags((*pkey)->flags), truststate,
179 (*pkey)->email, (*pkey)->label);
180 if (bytes < 0)
181 bytes = 0;
182
183 return mutt_strnwidth(buf_string(buf), bytes);
184}
int buf_printf(struct Buffer *buf, const char *fmt,...)
Format a string overwriting a Buffer.
Definition: buffer.c:161
static char * smime_key_flags(KeyFlags flags)
Turn SMIME key flags into a string.
Definition: dlg_smime.c:88
#define _(a)
Definition: message.h:28
Data to pass to the Smime Functions.
struct Menu * menu
Smime Menu.
struct SmimeKeyArray * ska
Array of Keys.
An SIME key.
Definition: smime.h:44
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ pattern_make_entry()

static int pattern_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Create a Pattern for the Menu - Implements Menu::make_entry() -.

See also
$pattern_format

Definition at line 137 of file dlg_pattern.c.

138{
139 struct PatternData *pd = menu->mdata;
140
141 struct PatternEntry *entry = ARRAY_GET(&pd->entries, line);
142
143 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
144 if (c_arrow_cursor)
145 {
146 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
147 if (max_cols > 0)
148 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
149 }
150
151 const struct Expando *c_pattern_format = cs_subset_expando(NeoMutt->sub, "pattern_format");
152 return expando_filter(c_pattern_format, PatternRenderData, entry,
153 MUTT_FORMAT_ARROWCURSOR, max_cols, buf);
154}
const struct ExpandoRenderData PatternRenderData[]
Callbacks for Pattern Expandos.
Definition: dlg_pattern.c:86
Data to pass to the Pattern Functions.
Definition: pattern_data.h:47
struct Menu * menu
Pattern Menu.
Definition: pattern_data.h:51
struct PatternEntryArray entries
Patterns for the Menu.
Definition: pattern_data.h:52
A line in the Pattern Completion menu.
Definition: pattern_data.h:35
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ post_make_entry()

static int post_make_entry ( struct Menu menu,
int  line,
int  max_cols,
struct Buffer buf 
)
static

Format an Email for the Menu - Implements Menu::make_entry() -.

See also
$index_format

Definition at line 103 of file dlg_postpone.c.

104{
105 struct PostponeData *pd = menu->mdata;
106 struct MailboxView *mv = pd->mailbox_view;
107 struct Mailbox *m = mv->mailbox;
108
109 const bool c_arrow_cursor = cs_subset_bool(menu->sub, "arrow_cursor");
110 if (c_arrow_cursor)
111 {
112 const char *const c_arrow_string = cs_subset_string(menu->sub, "arrow_string");
113 if (max_cols > 0)
114 max_cols -= (mutt_strwidth(c_arrow_string) + 1);
115 }
116
117 const struct Expando *c_index_format = cs_subset_expando(NeoMutt->sub, "index_format");
118 return mutt_make_string(buf, max_cols, c_index_format, m, -1, m->emails[line],
120}
View of a Mailbox.
Definition: mview.h:40
struct Mailbox * mailbox
Current Mailbox.
Definition: mview.h:51
struct Email ** emails
Array of Emails.
Definition: mailbox.h:96
Data to pass to the Postpone Functions.
Definition: functions.h:34
struct MailboxView * mailbox_view
Postponed Mailbox view.
Definition: functions.h:35
struct Menu * menu
Postponed Menu.
Definition: functions.h:36
+ Here is the call graph for this function:
+ Here is the caller graph for this function: