NeoMutt  2025-09-05-55-g97fc89
Teaching an old dog new tricks
DOXYGEN
Loading...
Searching...
No Matches
functions.c File Reference

Pager functions. More...

#include "config.h"
#include <inttypes.h>
#include <stdbool.h>
#include <stdio.h>
#include <sys/stat.h>
#include "mutt/lib.h"
#include "config/lib.h"
#include "email/lib.h"
#include "core/lib.h"
#include "gui/lib.h"
#include "mutt.h"
#include "lib.h"
#include "attach/lib.h"
#include "browser/lib.h"
#include "color/lib.h"
#include "editor/lib.h"
#include "history/lib.h"
#include "index/lib.h"
#include "key/lib.h"
#include "menu/lib.h"
#include "pattern/lib.h"
#include "display.h"
#include "functions.h"
#include "muttlib.h"
#include "private_data.h"
#include "protos.h"
+ Include dependency graph for functions.c:

Go to the source code of this file.

Functions

static int op_pager_search_next (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Search for next match - Implements pager_function_t -.
 
static bool assert_pager_mode (bool test)
 Check that pager is in correct mode.
 
static int up_n_lines (int nlines, struct Line *info, int cur, bool hiding)
 Reposition the pager's view up by n lines.
 
bool jump_to_bottom (struct PagerPrivateData *priv, struct PagerView *pview)
 Make sure the bottom line is displayed.
 
static int op_pager_bottom (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Jump to the bottom of the message - Implements pager_function_t -.
 
static int op_pager_half_down (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Scroll down 1/2 page - Implements pager_function_t -.
 
static int op_pager_half_up (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Scroll up 1/2 page - Implements pager_function_t -.
 
static int op_pager_hide_quoted (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Toggle display of quoted text - Implements pager_function_t -.
 
static int op_pager_next_line (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Scroll down one line - Implements pager_function_t -.
 
static int op_pager_next_page (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Move to the next page - Implements pager_function_t -.
 
static int op_pager_prev_line (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Scroll up one line - Implements pager_function_t -.
 
static int op_pager_prev_page (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Move to the previous page - Implements pager_function_t -.
 
static int op_pager_search (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Search for a regular expression - Implements pager_function_t -.
 
static int op_pager_skip_headers (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Jump to first line after headers - Implements pager_function_t -.
 
static int op_pager_skip_quoted (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Skip beyond quoted text - Implements pager_function_t -.
 
static int op_pager_top (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Jump to the top of the message - Implements pager_function_t -.
 
static int op_exit (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Exit this menu - Implements pager_function_t -.
 
static int op_help (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Help screen - Implements pager_function_t -.
 
static int op_save (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Save the Pager text - Implements pager_function_t -.
 
static int op_search_toggle (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Toggle search pattern coloring - Implements pager_function_t -.
 
static int op_view_attachments (struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
 Show MIME attachments - Implements pager_function_t -.
 
int pager_function_dispatcher (struct MuttWindow *win, int op)
 Perform a Pager function - Implements function_dispatcher_t -.
 

Variables

static const char * Not_available_in_this_menu = N_("Not available in this menu")
 Error message for unavailable functions.
 
const struct MenuFuncOp OpPager []
 Functions for the Pager Menu.
 
const struct MenuOpSeq PagerDefaultBindings []
 Key bindings for the Pager Menu.
 
static const struct PagerFunction PagerFunctions []
 All the NeoMutt functions that the Pager supports.
 

Detailed Description

Pager functions.

Authors
  • Richard Russon

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with this program. If not, see http://www.gnu.org/licenses/.

Definition in file functions.c.

Function Documentation

◆ assert_pager_mode()

static bool assert_pager_mode ( bool test)
inlinestatic

Check that pager is in correct mode.

Parameters
testTest condition
Return values
trueExpected mode is set
falsePager is is some other mode
Note
On failure, the input will be flushed and an error message displayed

Definition at line 338 of file functions.c.

339{
340 if (test)
341 return true;
342
345 return false;
346}
void mutt_flushinp(void)
Empty all the keyboard buffers.
Definition get.c:58
#define mutt_error(...)
Definition logging2.h:93
#define _(a)
Definition message.h:28
static const char * Not_available_in_this_menu
Error message for unavailable functions.
Definition functions.c:61
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ up_n_lines()

static int up_n_lines ( int nlines,
struct Line * info,
int cur,
bool hiding )
static

Reposition the pager's view up by n lines.

Parameters
nlinesNumber of lines to move
infoLine info array
curCurrent line number
hidingtrue if lines have been hidden
Return values
numNew current line number

Definition at line 356 of file functions.c.

357{
358 while ((cur > 0) && (nlines > 0))
359 {
360 cur--;
361 if (!hiding || !COLOR_QUOTED(info[cur].cid))
362 nlines--;
363 }
364
365 return cur;
366}
#define COLOR_QUOTED(cid)
Definition quoted.h:28
+ Here is the caller graph for this function:

◆ jump_to_bottom()

bool jump_to_bottom ( struct PagerPrivateData * priv,
struct PagerView * pview )

Make sure the bottom line is displayed.

Parameters
privPrivate Pager data
pviewPagerView
Return values
trueSomething changed
falseBottom was already displayed

Definition at line 375 of file functions.c.

376{
377 if (!(priv->lines[priv->cur_line].offset < (priv->st.st_size - 1)))
378 {
379 return false;
380 }
381
382 int line_num = priv->cur_line;
383 /* make sure the types are defined to the end of file */
384 while (display_line(priv->fp, &priv->bytes_read, &priv->lines, line_num,
385 &priv->lines_used, &priv->lines_max,
386 priv->has_types | (pview->flags & MUTT_PAGER_NOWRAP),
387 &priv->quote_list, &priv->q_level, &priv->force_redraw,
388 &priv->search_re, priv->pview->win_pager, &priv->ansi_list) == 0)
389 {
390 line_num++;
391 }
392 priv->top_line = up_n_lines(priv->pview->win_pager->state.rows, priv->lines,
393 priv->lines_used, priv->hide_quoted);
395 return true;
396}
int display_line(FILE *fp, LOFF_T *bytes_read, struct Line **lines, int line_num, int *lines_used, int *lines_max, PagerFlags flags, struct QuoteStyle **quote_list, int *q_level, bool *force_redraw, regex_t *search_re, struct MuttWindow *win_pager, struct AttrColorList *ansi_list)
Print a line on screen.
Definition display.c:1051
bool notify_send(struct Notify *notify, enum NotifyType event_type, int event_subtype, void *event_data)
Send out a notification message.
Definition notify.c:173
@ NT_PAGER
Pager data has changed, NotifyPager, PagerPrivateData.
Definition notify_type.h:53
static int up_n_lines(int nlines, struct Line *info, int cur, bool hiding)
Reposition the pager's view up by n lines.
Definition functions.c:356
#define NT_PAGER_VIEW
Pager View has changed.
Definition lib.h:185
#define MUTT_PAGER_NOWRAP
Format for term width, ignore $wrap.
Definition lib.h:71
LOFF_T offset
Offset into Email file (PagerPrivateData->fp)
Definition display.h:51
struct WindowState state
Current state of the Window.
PagerFlags hide_quoted
Set to MUTT_HIDE when quoted email is hidden <toggle-quoted>
int q_level
Number of unique quoting levels.
int cur_line
Current line (last line visible on screen)
int lines_used
Size of lines array (used entries)
int lines_max
Capacity of lines array (total entries)
bool force_redraw
Repaint is needed.
struct Line * lines
Array of text lines in pager.
int has_types
Set to MUTT_TYPES for PAGER_MODE_EMAIL or MUTT_SHOWCOLOR.
struct Notify * notify
Notifications: NotifyPager, PagerPrivateData.
LOFF_T bytes_read
Number of bytes read from file.
int top_line
First visible line on screen.
struct stat st
Stats about Email file.
struct QuoteStyle * quote_list
Tree of quoting levels.
struct PagerView * pview
Object to view in the pager.
struct AttrColorList ansi_list
List of ANSI colours used in the Pager.
regex_t search_re
Compiled search string.
FILE * fp
File containing decrypted/decoded/weeded Email.
PagerFlags flags
Additional settings to tweak pager's function.
Definition lib.h:173
struct MuttWindow * win_pager
Pager Window.
Definition lib.h:178
short rows
Number of rows, can be MUTT_WIN_SIZE_UNLIMITED.
Definition mutt_window.h:62
+ Here is the call graph for this function:
+ Here is the caller graph for this function:

Variable Documentation

◆ Not_available_in_this_menu

const char* Not_available_in_this_menu = N_("Not available in this menu")
static

Error message for unavailable functions.

Definition at line 61 of file functions.c.

◆ OpPager

const struct MenuFuncOp OpPager[]

Functions for the Pager Menu.

Definition at line 70 of file functions.c.

70 { /* map: pager */
71 { "bottom", OP_PAGER_BOTTOM },
72 { "bounce-message", OP_BOUNCE_MESSAGE },
73 { "break-thread", OP_MAIN_BREAK_THREAD },
74 { "change-folder", OP_MAIN_CHANGE_FOLDER },
75 { "change-folder-readonly", OP_MAIN_CHANGE_FOLDER_READONLY },
76 { "change-newsgroup", OP_MAIN_CHANGE_GROUP },
77 { "change-newsgroup-readonly", OP_MAIN_CHANGE_GROUP_READONLY },
78#ifdef USE_NOTMUCH
79 { "change-vfolder", OP_MAIN_CHANGE_VFOLDER },
80#endif
81 { "check-stats", OP_CHECK_STATS },
82 { "check-traditional-pgp", OP_CHECK_TRADITIONAL },
83 { "clear-flag", OP_MAIN_CLEAR_FLAG },
84 { "compose-to-sender", OP_COMPOSE_TO_SENDER },
85 { "copy-message", OP_COPY_MESSAGE },
86 { "create-alias", OP_CREATE_ALIAS },
87 { "decode-copy", OP_DECODE_COPY },
88 { "decode-save", OP_DECODE_SAVE },
89 { "decrypt-copy", OP_DECRYPT_COPY },
90 { "decrypt-save", OP_DECRYPT_SAVE },
91 { "delete-message", OP_DELETE },
92 { "delete-subthread", OP_DELETE_SUBTHREAD },
93 { "delete-thread", OP_DELETE_THREAD },
94 { "display-address", OP_DISPLAY_ADDRESS },
95 { "display-toggle-weed", OP_DISPLAY_HEADERS },
96 { "edit", OP_EDIT_RAW_MESSAGE },
97 { "edit-label", OP_EDIT_LABEL },
98 { "edit-or-view-raw-message", OP_EDIT_OR_VIEW_RAW_MESSAGE },
99 { "edit-raw-message", OP_EDIT_RAW_MESSAGE },
100 { "edit-type", OP_ATTACHMENT_EDIT_TYPE },
101 { "enter-command", OP_ENTER_COMMAND },
102#ifdef USE_NOTMUCH
103 { "entire-thread", OP_MAIN_ENTIRE_THREAD },
104#endif
105 { "exit", OP_EXIT },
106 { "extract-keys", OP_EXTRACT_KEYS },
107 { "flag-message", OP_FLAG_MESSAGE },
108 { "followup-message", OP_FOLLOWUP },
109 { "forget-passphrase", OP_FORGET_PASSPHRASE },
110 { "forward-message", OP_FORWARD_MESSAGE },
111 { "forward-to-group", OP_FORWARD_TO_GROUP },
112 { "group-chat-reply", OP_GROUP_CHAT_REPLY },
113 { "group-reply", OP_GROUP_REPLY },
114 { "half-down", OP_HALF_DOWN },
115 { "half-up", OP_HALF_UP },
116 { "help", OP_HELP },
117 { "imap-fetch-mail", OP_MAIN_IMAP_FETCH },
118 { "imap-logout-all", OP_MAIN_IMAP_LOGOUT_ALL },
119 { "jump", OP_JUMP },
120 { "jump", OP_JUMP_1 },
121 { "jump", OP_JUMP_2 },
122 { "jump", OP_JUMP_3 },
123 { "jump", OP_JUMP_4 },
124 { "jump", OP_JUMP_5 },
125 { "jump", OP_JUMP_6 },
126 { "jump", OP_JUMP_7 },
127 { "jump", OP_JUMP_8 },
128 { "jump", OP_JUMP_9 },
129 { "link-threads", OP_MAIN_LINK_THREADS },
130 { "list-reply", OP_LIST_REPLY },
131 { "list-subscribe", OP_LIST_SUBSCRIBE },
132 { "list-unsubscribe", OP_LIST_UNSUBSCRIBE },
133 { "mail", OP_MAIL },
134 { "mail-key", OP_MAIL_KEY },
135 { "mailbox-list", OP_MAILBOX_LIST },
136 { "mark-as-new", OP_TOGGLE_NEW },
137 { "modify-labels", OP_MAIN_MODIFY_TAGS },
138 { "modify-labels-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
139 { "modify-tags", OP_MAIN_MODIFY_TAGS },
140 { "modify-tags-then-hide", OP_MAIN_MODIFY_TAGS_THEN_HIDE },
141 { "next-entry", OP_NEXT_ENTRY },
142 { "next-line", OP_NEXT_LINE },
143 { "next-new", OP_MAIN_NEXT_NEW },
144 { "next-new-then-unread", OP_MAIN_NEXT_NEW_THEN_UNREAD },
145 { "next-page", OP_NEXT_PAGE },
146 { "next-subthread", OP_MAIN_NEXT_SUBTHREAD },
147 { "next-thread", OP_MAIN_NEXT_THREAD },
148 { "next-undeleted", OP_MAIN_NEXT_UNDELETED },
149 { "next-unread", OP_MAIN_NEXT_UNREAD },
150 { "next-unread-mailbox", OP_MAIN_NEXT_UNREAD_MAILBOX },
151 { "parent-message", OP_MAIN_PARENT_MESSAGE },
152 { "pipe-entry", OP_PIPE },
153 { "pipe-message", OP_PIPE },
154 { "post-message", OP_POST },
155 { "previous-entry", OP_PREV_ENTRY },
156 { "previous-line", OP_PREV_LINE },
157 { "previous-new", OP_MAIN_PREV_NEW },
158 { "previous-new-then-unread", OP_MAIN_PREV_NEW_THEN_UNREAD },
159 { "previous-page", OP_PREV_PAGE },
160 { "previous-subthread", OP_MAIN_PREV_SUBTHREAD },
161 { "previous-thread", OP_MAIN_PREV_THREAD },
162 { "previous-undeleted", OP_MAIN_PREV_UNDELETED },
163 { "previous-unread", OP_MAIN_PREV_UNREAD },
164 { "print-entry", OP_ATTACHMENT_PRINT },
165 { "print-message", OP_PRINT },
166 { "purge-message", OP_PURGE_MESSAGE },
167 { "purge-thread", OP_PURGE_THREAD },
168 { "quasi-delete", OP_MAIN_QUASI_DELETE },
169 { "quit", OP_QUIT },
170 { "read-subthread", OP_MAIN_READ_SUBTHREAD },
171 { "read-thread", OP_MAIN_READ_THREAD },
172 { "recall-message", OP_RECALL_MESSAGE },
173 { "reconstruct-thread", OP_RECONSTRUCT_THREAD },
174 { "redraw-screen", OP_REDRAW },
175 { "reply", OP_REPLY },
176 { "resend-message", OP_RESEND },
177 { "root-message", OP_MAIN_ROOT_MESSAGE },
178 { "save-entry", OP_ATTACHMENT_SAVE },
179 { "save-message", OP_SAVE },
180 { "search", OP_SEARCH },
181 { "search-next", OP_SEARCH_NEXT },
182 { "search-opposite", OP_SEARCH_OPPOSITE },
183 { "search-reverse", OP_SEARCH_REVERSE },
184 { "search-toggle", OP_SEARCH_TOGGLE },
185 { "set-flag", OP_MAIN_SET_FLAG },
186 { "shell-escape", OP_SHELL_ESCAPE },
187 { "show-log-messages", OP_SHOW_LOG_MESSAGES },
188 { "show-version", OP_VERSION },
189 { "sidebar-first", OP_SIDEBAR_FIRST },
190 { "sidebar-last", OP_SIDEBAR_LAST },
191 { "sidebar-next", OP_SIDEBAR_NEXT },
192 { "sidebar-next-new", OP_SIDEBAR_NEXT_NEW },
193 { "sidebar-open", OP_SIDEBAR_OPEN },
194 { "sidebar-page-down", OP_SIDEBAR_PAGE_DOWN },
195 { "sidebar-page-up", OP_SIDEBAR_PAGE_UP },
196 { "sidebar-prev", OP_SIDEBAR_PREV },
197 { "sidebar-prev-new", OP_SIDEBAR_PREV_NEW },
198 { "sidebar-toggle-virtual", OP_SIDEBAR_TOGGLE_VIRTUAL },
199 { "sidebar-toggle-visible", OP_SIDEBAR_TOGGLE_VISIBLE },
200 { "skip-headers", OP_PAGER_SKIP_HEADERS },
201 { "skip-quoted", OP_PAGER_SKIP_QUOTED },
202 { "sort-mailbox", OP_SORT },
203 { "sort-reverse", OP_SORT_REVERSE },
204 { "sync-mailbox", OP_MAIN_SYNC_FOLDER },
205 { "tag-message", OP_TAG },
206 { "toggle-quoted", OP_PAGER_HIDE_QUOTED },
207 { "toggle-write", OP_TOGGLE_WRITE },
208 { "top", OP_PAGER_TOP },
209 { "undelete-message", OP_UNDELETE },
210 { "undelete-subthread", OP_UNDELETE_SUBTHREAD },
211 { "undelete-thread", OP_UNDELETE_THREAD },
212#ifdef USE_NOTMUCH
213 { "vfolder-from-query", OP_MAIN_VFOLDER_FROM_QUERY },
214 { "vfolder-from-query-readonly", OP_MAIN_VFOLDER_FROM_QUERY_READONLY },
215#endif
216 { "view-attachments", OP_VIEW_ATTACHMENTS },
217 { "view-raw-message", OP_VIEW_RAW_MESSAGE },
218 { "what-key", OP_WHAT_KEY },
219 // Deprecated
220 { "buffy-list", OP_MAILBOX_LIST, OP_DEPRECATED },
221 { "error-history", OP_SHOW_LOG_MESSAGES, OP_DEPRECATED },
222 { NULL, 0 },
223};
#define OP_DEPRECATED
Convenience symbol.
Definition lib.h:109

◆ PagerDefaultBindings

const struct MenuOpSeq PagerDefaultBindings[]

Key bindings for the Pager Menu.

Definition at line 228 of file functions.c.

228 { /* map: pager */
229 { OP_ATTACHMENT_EDIT_TYPE, "\005" }, // <Ctrl-E>
230 { OP_BOUNCE_MESSAGE, "b" },
231 { OP_CHECK_TRADITIONAL, "\033P" }, // <Alt-P>
232 { OP_COPY_MESSAGE, "C" },
233 { OP_CREATE_ALIAS, "a" },
234 { OP_DECODE_COPY, "\033C" }, // <Alt-C>
235 { OP_DECODE_SAVE, "\033s" }, // <Alt-s>
236 { OP_DELETE, "d" },
237 { OP_DELETE_SUBTHREAD, "\033d" }, // <Alt-d>
238 { OP_DELETE_THREAD, "\004" }, // <Ctrl-D>
239 { OP_DISPLAY_ADDRESS, "@" },
240 { OP_DISPLAY_HEADERS, "h" },
241 { OP_EDIT_LABEL, "Y" },
242 { OP_EDIT_OR_VIEW_RAW_MESSAGE, "e" },
243 { OP_ENTER_COMMAND, ":" },
244 { OP_EXIT, "i" },
245 { OP_EXIT, "q" },
246 { OP_EXIT, "x" },
247 { OP_EXTRACT_KEYS, "\013" }, // <Ctrl-K>
248 { OP_FLAG_MESSAGE, "F" },
249 { OP_FORGET_PASSPHRASE, "\006" }, // <Ctrl-F>
250 { OP_FORWARD_MESSAGE, "f" },
251 { OP_GROUP_REPLY, "g" },
252 { OP_HELP, "?" },
253 { OP_JUMP_1, "1" },
254 { OP_JUMP_2, "2" },
255 { OP_JUMP_3, "3" },
256 { OP_JUMP_4, "4" },
257 { OP_JUMP_5, "5" },
258 { OP_JUMP_6, "6" },
259 { OP_JUMP_7, "7" },
260 { OP_JUMP_8, "8" },
261 { OP_JUMP_9, "9" },
262 { OP_LIST_REPLY, "L" },
263 { OP_MAIL, "m" },
264 { OP_MAILBOX_LIST, "." },
265 { OP_MAIL_KEY, "\033k" }, // <Alt-k>
266 { OP_MAIN_BREAK_THREAD, "#" },
267 { OP_MAIN_CHANGE_FOLDER, "c" },
268 { OP_MAIN_CHANGE_FOLDER_READONLY, "\033c" }, // <Alt-c>
269 { OP_MAIN_CLEAR_FLAG, "W" },
270 { OP_MAIN_LINK_THREADS, "&" },
271 { OP_MAIN_NEXT_NEW_THEN_UNREAD, "\t" }, // <Tab>
272 { OP_MAIN_NEXT_SUBTHREAD, "\033n" }, // <Alt-n>
273 { OP_MAIN_NEXT_THREAD, "\016" }, // <Ctrl-N>
274 { OP_MAIN_NEXT_UNDELETED, "<down>" },
275 { OP_MAIN_NEXT_UNDELETED, "<right>" },
276 { OP_MAIN_NEXT_UNDELETED, "j" },
277 { OP_MAIN_PARENT_MESSAGE, "P" },
278 { OP_MAIN_PREV_SUBTHREAD, "\033p" }, // <Alt-p>
279 { OP_MAIN_PREV_THREAD, "\020" }, // <Ctrl-P>
280 { OP_MAIN_PREV_UNDELETED, "<left>" },
281 { OP_MAIN_PREV_UNDELETED, "<up>" },
282 { OP_MAIN_PREV_UNDELETED, "k" },
283 { OP_MAIN_READ_SUBTHREAD, "\033r" }, // <Alt-r>
284 { OP_MAIN_READ_THREAD, "\022" }, // <Ctrl-R>
285 { OP_MAIN_SET_FLAG, "w" },
286 { OP_MAIN_SYNC_FOLDER, "$" },
287 { OP_NEXT_ENTRY, "J" },
288 { OP_NEXT_LINE, "<keypadenter>" },
289 { OP_NEXT_LINE, "\n" }, // <Enter>
290 { OP_NEXT_LINE, "\r" }, // <Return>
291 { OP_NEXT_PAGE, " " }, // <Space>
292 { OP_NEXT_PAGE, "<pagedown>" },
293 { OP_PAGER_BOTTOM, "<end>" },
294 { OP_PAGER_HIDE_QUOTED, "T" },
295 { OP_PAGER_SKIP_HEADERS, "H" },
296 { OP_PAGER_SKIP_QUOTED, "S" },
297 { OP_PAGER_TOP, "<home>" },
298 { OP_PAGER_TOP, "^" },
299 { OP_PIPE, "|" },
300 { OP_PREV_ENTRY, "K" },
301 { OP_PREV_LINE, "<backspace>" },
302 { OP_PREV_PAGE, "-" },
303 { OP_PREV_PAGE, "<pageup>" },
304 { OP_PRINT, "p" },
305 { OP_QUIT, "Q" },
306 { OP_RECALL_MESSAGE, "R" },
307 { OP_REDRAW, "\014" }, // <Ctrl-L>
308 { OP_REPLY, "r" },
309 { OP_RESEND, "\033e" }, // <Alt-e>
310 { OP_SAVE, "s" },
311 { OP_SEARCH, "/" },
312 { OP_SEARCH_NEXT, "n" },
313 { OP_SEARCH_REVERSE, "\033/" }, // <Alt-/>
314 { OP_SEARCH_TOGGLE, "\\" }, // <Backslash>
315 { OP_SHELL_ESCAPE, "!" },
316 { OP_SORT, "o" },
317 { OP_SORT_REVERSE, "O" },
318 { OP_TAG, "t" },
319 { OP_TOGGLE_NEW, "N" },
320 { OP_TOGGLE_WRITE, "%" },
321 { OP_UNDELETE, "u" },
322 { OP_UNDELETE_SUBTHREAD, "\033u" }, // <Alt-u>
323 { OP_UNDELETE_THREAD, "\025" }, // <Ctrl-U>
324 { OP_VERSION, "V" },
325 { OP_VIEW_ATTACHMENTS, "v" },
326 { 0, NULL },
327};

◆ PagerFunctions

const struct PagerFunction PagerFunctions[]
static
Initial value:
= {
{ OP_EXIT, op_exit },
{ OP_HALF_DOWN, op_pager_half_down },
{ OP_HALF_UP, op_pager_half_up },
{ OP_HELP, op_help },
{ OP_NEXT_LINE, op_pager_next_line },
{ OP_NEXT_PAGE, op_pager_next_page },
{ OP_PAGER_BOTTOM, op_pager_bottom },
{ OP_PAGER_HIDE_QUOTED, op_pager_hide_quoted },
{ OP_PAGER_SKIP_HEADERS, op_pager_skip_headers },
{ OP_PAGER_SKIP_QUOTED, op_pager_skip_quoted },
{ OP_PAGER_TOP, op_pager_top },
{ OP_PREV_LINE, op_pager_prev_line },
{ OP_PREV_PAGE, op_pager_prev_page },
{ OP_SAVE, op_save },
{ OP_SEARCH, op_pager_search },
{ OP_SEARCH_REVERSE, op_pager_search },
{ OP_SEARCH_NEXT, op_pager_search_next },
{ OP_SEARCH_OPPOSITE, op_pager_search_next },
{ OP_SEARCH_TOGGLE, op_search_toggle },
{ OP_VIEW_ATTACHMENTS, op_view_attachments },
{ 0, NULL },
}
static int op_exit(struct AliasMenuData *mdata, int op)
exit this menu - Implements alias_function_t -
Definition functions.c:200
static int op_help(struct EnterWindowData *wdata, int op)
Display Help - Implements enter_function_t -.
Definition functions.c:424
static int op_view_attachments(struct IndexSharedData *shared, struct IndexPrivateData *priv, int op)
Show MIME attachments - Implements index_function_t -.
Definition functions.c:2483
static int op_save(struct IndexSharedData *shared, struct IndexPrivateData *priv, int op)
Make decrypted copy - Implements index_function_t -.
Definition functions.c:2217
static int op_pager_skip_quoted(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Skip beyond quoted text - Implements pager_function_t -.
Definition functions.c:859
static int op_pager_skip_headers(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Jump to first line after headers - Implements pager_function_t -.
Definition functions.c:820
static int op_pager_half_up(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Scroll up 1/2 page - Implements pager_function_t -.
Definition functions.c:441
static int op_pager_next_line(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Scroll down one line - Implements pager_function_t -.
Definition functions.c:483
static int op_search_toggle(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Toggle search pattern coloring - Implements pager_function_t -.
Definition functions.c:1063
static int op_pager_top(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Jump to the top of the message - Implements pager_function_t -.
Definition functions.c:959
static int op_pager_hide_quoted(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Toggle display of quoted text - Implements pager_function_t -.
Definition functions.c:461
static int op_pager_next_page(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Move to the next page - Implements pager_function_t -.
Definition functions.c:509
static int op_pager_prev_page(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Move to the previous page - Implements pager_function_t -.
Definition functions.c:553
static int op_pager_bottom(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Jump to the bottom of the message - Implements pager_function_t -.
Definition functions.c:403
static int op_pager_half_down(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Scroll down 1/2 page - Implements pager_function_t -.
Definition functions.c:415
static int op_pager_search(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Search for a regular expression - Implements pager_function_t -.
Definition functions.c:577
static int op_pager_search_next(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Search for next match - Implements pager_function_t -.
Definition functions.c:724
static int op_pager_prev_line(struct IndexSharedData *shared, struct PagerPrivateData *priv, int op)
Scroll up one line - Implements pager_function_t -.
Definition functions.c:535

All the NeoMutt functions that the Pager supports.

Definition at line 1101 of file functions.c.

1101 {
1102 // clang-format off
1103 { OP_EXIT, op_exit },
1104 { OP_HALF_DOWN, op_pager_half_down },
1105 { OP_HALF_UP, op_pager_half_up },
1106 { OP_HELP, op_help },
1107 { OP_NEXT_LINE, op_pager_next_line },
1108 { OP_NEXT_PAGE, op_pager_next_page },
1109 { OP_PAGER_BOTTOM, op_pager_bottom },
1110 { OP_PAGER_HIDE_QUOTED, op_pager_hide_quoted },
1111 { OP_PAGER_SKIP_HEADERS, op_pager_skip_headers },
1112 { OP_PAGER_SKIP_QUOTED, op_pager_skip_quoted },
1113 { OP_PAGER_TOP, op_pager_top },
1114 { OP_PREV_LINE, op_pager_prev_line },
1115 { OP_PREV_PAGE, op_pager_prev_page },
1116 { OP_SAVE, op_save },
1117 { OP_SEARCH, op_pager_search },
1118 { OP_SEARCH_REVERSE, op_pager_search },
1119 { OP_SEARCH_NEXT, op_pager_search_next },
1120 { OP_SEARCH_OPPOSITE, op_pager_search_next },
1121 { OP_SEARCH_TOGGLE, op_search_toggle },
1122 { OP_VIEW_ATTACHMENTS, op_view_attachments },
1123 { 0, NULL },
1124 // clang-format on
1125};