forked from neomutt/neomutt
-
Notifications
You must be signed in to change notification settings - Fork 0
/
init.h
4677 lines (4649 loc) · 190 KB
/
init.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
/**
* @file
* Definitions of user variables, sort methods and commands
*
* @authors
* Copyright (C) 1996-2002,2007,2010,2012-2013,2016 Michael R. Elkins <me@mutt.org>
* Copyright (C) 2004 g10 Code GmbH
*
* @copyright
* This program is free software: you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation, either version 2 of the License, or (at your option) any later
* version.
*
* 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/>.
*/
#ifndef _MUTT_INIT_H
#define _MUTT_INIT_H
#ifdef _MAKEDOC
#include "config.h"
#include "doc/makedoc_defs.h"
#else
#include <stddef.h>
#include "mutt.h"
#include "buffy.h"
#include "globals.h"
#include "group.h"
#include "mapping.h"
#include "mutt_commands.h"
#include "mutt_options.h"
#include "mutt_regex.h"
#include "mx.h"
#include "options.h"
#include "protos.h"
#include "sort.h"
#ifdef USE_LUA
#include "mutt_lua.h"
#endif
#endif
struct Buffer;
#ifndef _MAKEDOC
/* flags to parse_set() */
#define MUTT_SET_INV (1 << 0) /**< default is to invert all vars */
#define MUTT_SET_UNSET (1 << 1) /**< default is to unset all vars */
#define MUTT_SET_RESET (1 << 2) /**< default is to reset all vars to default */
/* forced redraw/resort types + other flags */
#define R_NONE 0
#define R_INDEX (1 << 0) /**< redraw the index menu (MENU_MAIN) */
#define R_PAGER (1 << 1) /**< redraw the pager menu */
#define R_PAGER_FLOW (1 << 2) /**< reflow line_info and redraw the pager menu */
#define R_RESORT (1 << 3) /**< resort the mailbox */
#define R_RESORT_SUB (1 << 4) /**< resort subthreads */
#define R_RESORT_INIT (1 << 5) /**< resort from scratch */
#define R_TREE (1 << 6) /**< redraw the thread tree */
#define R_REFLOW (1 << 7) /**< reflow window layout and full redraw */
#define R_SIDEBAR (1 << 8) /**< redraw the sidebar */
#define R_MENU (1 << 9) /**< redraw all menus */
#define R_BOTH (R_INDEX | R_PAGER)
#define R_RESORT_BOTH (R_RESORT | R_RESORT_SUB)
/* general flags, to be OR'd with the R_ flags above (so keep shifting..) */
#define F_SENSITIVE (1 << 9)
#define IS_SENSITIVE(x) (((x).flags & F_SENSITIVE) == F_SENSITIVE)
#define UL (unsigned long)
#endif /* _MAKEDOC */
#ifndef ISPELL
#define ISPELL "ispell"
#endif
struct Option MuttVars[] = {
/*++*/
{ "abort_noattach", DT_QUAD, R_NONE, OPT_ATTACH, MUTT_NO },
/*
** .pp
** If set to \fIyes\fP, when composing messages containing the regular expression
** specified by $attach_keyword and no attachments ** are given, composition
** will be aborted. If set to \fIno\fP, composing ** messages as such will never
** be aborted.
** .pp
** Example:
** .ts
** set attach_keyword = "\\<attach(|ed|ments?)\\>"
** .te
*/
{ "abort_nosubject", DT_QUAD, R_NONE, OPT_SUBJECT, MUTT_ASKYES },
/*
** .pp
** If set to \fIyes\fP, when composing messages and no subject is given
** at the subject prompt, composition will be aborted. If set to
** \fIno\fP, composing messages with no subject given at the subject
** prompt will never be aborted.
*/
{ "abort_unmodified", DT_QUAD, R_NONE, OPT_ABORT, MUTT_YES },
/*
** .pp
** If set to \fIyes\fP, composition will automatically abort after
** editing the message body if no changes are made to the file (this
** check only happens after the \fIfirst\fP edit of the file). When set
** to \fIno\fP, composition will never be aborted.
*/
{ "alias_file", DT_PATH, R_NONE, UL &AliasFile, UL "~/.muttrc" },
/*
** .pp
** The default file in which to save aliases created by the
** \fC$<create-alias>\fP function. Entries added to this file are
** encoded in the character set specified by $$config_charset if it
** is \fIset\fP or the current character set otherwise.
** .pp
** \fBNote:\fP Mutt will not automatically source this file; you must
** explicitly use the ``$source'' command for it to be executed in case
** this option points to a dedicated alias file.
** .pp
** The default for this option is the currently used muttrc file, or
** ``~/.muttrc'' if no user muttrc was found.
*/
{ "alias_format", DT_STR, R_NONE, UL &AliasFmt, UL "%4n %2f %t %-10a %r" },
/*
** .pp
** Specifies the format of the data displayed for the ``$alias'' menu. The
** following \fCprintf(3)\fP-style sequences are available:
** .dl
** .dt %a .dd alias name
** .dt %f .dd flags - currently, a ``d'' for an alias marked for deletion
** .dt %n .dd index number
** .dt %r .dd address which alias expands to
** .dt %t .dd character which indicates if the alias is tagged for inclusion
** .de
*/
{ "allow_8bit", DT_BOOL, R_NONE, OPT_ALLOW_8BIT, 1 },
/*
** .pp
** Controls whether 8-bit data is converted to 7-bit using either Quoted-
** Printable or Base64 encoding when sending mail.
*/
{ "allow_ansi", DT_BOOL, R_NONE, OPT_ALLOW_ANSI, 0 },
/*
** .pp
** Controls whether ANSI color codes in messages (and color tags in
** rich text messages) are to be interpreted.
** Messages containing these codes are rare, but if this option is \fIset\fP,
** their text will be colored accordingly. Note that this may override
** your color choices, and even present a security problem, since a
** message could include a line like
** .ts
** [-- PGP output follows ...
** .te
** .pp
** and give it the same color as your attachment color (see also
** $$crypt_timestamp).
*/
{ "arrow_cursor", DT_BOOL, R_MENU, OPT_ARROW_CURSOR, 0 },
/*
** .pp
** When \fIset\fP, an arrow (``->'') will be used to indicate the current entry
** in menus instead of highlighting the whole line. On slow network or modem
** links this will make response faster because there is less that has to
** be redrawn on the screen when moving to the next or previous entries
** in the menu.
*/
{ "ascii_chars", DT_BOOL, R_BOTH, OPT_ASCII_CHARS, 0 },
/*
** .pp
** If \fIset\fP, Mutt will use plain ASCII characters when displaying thread
** and attachment trees, instead of the default \fIACS\fP characters.
*/
{ "askbcc", DT_BOOL, R_NONE, OPT_ASK_BCC, 0 },
/*
** .pp
** If \fIset\fP, Mutt will prompt you for blind-carbon-copy (Bcc) recipients
** before editing an outgoing message.
*/
{ "askcc", DT_BOOL, R_NONE, OPT_ASK_CC, 0 },
/*
** .pp
** If \fIset\fP, Mutt will prompt you for carbon-copy (Cc) recipients before
** editing the body of an outgoing message.
*/
#ifdef USE_NNTP
{ "ask_follow_up", DT_BOOL, R_NONE, OPT_ASK_FOLLOWUP, 0 },
/*
** .pp
** If set, Mutt will prompt you for follow-up groups before editing
** the body of an outgoing message.
*/
{ "ask_x_comment_to", DT_BOOL, R_NONE, OPT_ASK_XCOMMENTTO, 0 },
/*
** .pp
** If set, Mutt will prompt you for x-comment-to field before editing
** the body of an outgoing message.
*/
#endif
{ "assumed_charset", DT_STR, R_NONE, UL &AssumedCharset, UL 0 },
/*
** .pp
** This variable is a colon-separated list of character encoding
** schemes for messages without character encoding indication.
** Header field values and message body content without character encoding
** indication would be assumed that they are written in one of this list.
** By default, all the header fields and message body without any charset
** indication are assumed to be in ``us-ascii''.
** .pp
** For example, Japanese users might prefer this:
** .ts
** set assumed_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
** .te
** .pp
** However, only the first content is valid for the message body.
*/
{ "attach_charset", DT_STR, R_NONE, UL &AttachCharset, UL 0 },
/*
** .pp
** This variable is a colon-separated list of character encoding
** schemes for text file attachments. Mutt uses this setting to guess
** which encoding files being attached are encoded in to convert them to
** a proper character set given in $$send_charset.
** .pp
** If \fIunset\fP, the value of $$charset will be used instead.
** For example, the following configuration would work for Japanese
** text handling:
** .ts
** set attach_charset="iso-2022-jp:euc-jp:shift_jis:utf-8"
** .te
** .pp
** Note: for Japanese users, ``iso-2022-*'' must be put at the head
** of the value as shown above if included.
*/
{ "attach_format", DT_STR, R_NONE, UL &AttachFormat, UL "%u%D%I %t%4n %T%.40d%> [%.7m/%.10M, %.6e%?C?, %C?, %s] " },
/*
** .pp
** This variable describes the format of the ``attachment'' menu. The
** following \fCprintf(3)\fP-style sequences are understood:
** .dl
** .dt %C .dd charset
** .dt %c .dd requires charset conversion (``n'' or ``c'')
** .dt %D .dd deleted flag
** .dt %d .dd description (if none, falls back to %F)
** .dt %e .dd MIME content-transfer-encoding
** .dt %F .dd filename in content-disposition header (if none, falls back to %f)
** .dt %f .dd filename
** .dt %I .dd disposition (``I'' for inline, ``A'' for attachment)
** .dt %m .dd major MIME type
** .dt %M .dd MIME subtype
** .dt %n .dd attachment number
** .dt %Q .dd ``Q'', if MIME part qualifies for attachment counting
** .dt %s .dd size
** .dt %t .dd tagged flag
** .dt %T .dd graphic tree characters
** .dt %u .dd unlink (=to delete) flag
** .dt %X .dd number of qualifying MIME parts in this part and its children
** (please see the ``$attachments'' section for possible speed effects)
** .dt %>X .dd right justify the rest of the string and pad with character ``X''
** .dt %|X .dd pad to the end of the line with character ``X''
** .dt %*X .dd soft-fill with character ``X'' as pad
** .de
** .pp
** For an explanation of ``soft-fill'', see the $$index_format documentation.
*/
{ "attach_keyword", DT_RX, R_NONE, UL &AttachKeyword, UL "\\<(attach|attached|attachments?)\\>" },
/*
** .pp
** If $abort_noattach is not set to no, then the body of the message
** will be scanned for this regular expression, and if found, you will
** be prompted if there are no attachments.
*/
{ "attach_sep", DT_STR, R_NONE, UL &AttachSep, UL "\n" },
/*
** .pp
** The separator to add between attachments when operating (saving,
** printing, piping, etc) on a list of tagged attachments.
*/
{ "attach_split", DT_BOOL, R_NONE, OPT_ATTACH_SPLIT, 1 },
/*
** .pp
** If this variable is \fIunset\fP, when operating (saving, printing, piping,
** etc) on a list of tagged attachments, Mutt will concatenate the
** attachments and will operate on them as a single attachment. The
** $$attach_sep separator is added after each attachment. When \fIset\fP,
** Mutt will operate on the attachments one by one.
*/
{ "attribution", DT_STR, R_NONE, UL &Attribution, UL "On %d, %n wrote:" },
/*
** .pp
** This is the string that will precede a message which has been included
** in a reply. For a full listing of defined \fCprintf(3)\fP-like sequences see
** the section on $$index_format.
*/
{ "attribution_locale", DT_STR, R_NONE, UL &AttributionLocale, UL "" },
/*
** .pp
** The locale used by \fCstrftime(3)\fP to format dates in the
** $attribution string. Legal values are the strings your system
** accepts for the locale environment variable \fC$$$LC_TIME\fP.
** .pp
** This variable is to allow the attribution date format to be
** customized by recipient or folder using hooks. By default, Mutt
** will use your locale environment, so there is no need to set
** this except to override that default.
*/
{ "auto_tag", DT_BOOL, R_NONE, OPT_AUTO_TAG, 0 },
/*
** .pp
** When \fIset\fP, functions in the \fIindex\fP menu which affect a message
** will be applied to all tagged messages (if there are any). When
** unset, you must first use the \fC<tag-prefix>\fP function (bound to ``;''
** by default) to make the next function apply to all tagged messages.
*/
{ "autoedit", DT_BOOL, R_NONE, OPT_AUTO_EDIT, 0 },
/*
** .pp
** When \fIset\fP along with $$edit_headers, Mutt will skip the initial
** send-menu (prompting for subject and recipients) and allow you to
** immediately begin editing the body of your
** message. The send-menu may still be accessed once you have finished
** editing the body of your message.
** .pp
** \fBNote:\fP when this option is \fIset\fP, you cannot use send-hooks that depend
** on the recipients when composing a new (non-reply) message, as the initial
** list of recipients is empty.
** .pp
** Also see $$fast_reply.
*/
{ "beep", DT_BOOL, R_NONE, OPT_BEEP, 1 },
/*
** .pp
** When this variable is \fIset\fP, mutt will beep when an error occurs.
*/
{ "beep_new", DT_BOOL, R_NONE, OPT_BEEP_NEW, 0 },
/*
** .pp
** When this variable is \fIset\fP, mutt will beep whenever it prints a message
** notifying you of new mail. This is independent of the setting of the
** $$beep variable.
*/
{ "bounce", DT_QUAD, R_NONE, OPT_BOUNCE, MUTT_ASKYES },
/*
** .pp
** Controls whether you will be asked to confirm bouncing messages.
** If set to \fIyes\fP you don't get asked if you want to bounce a
** message. Setting this variable to \fIno\fP is not generally useful,
** and thus not recommended, because you are unable to bounce messages.
*/
{ "bounce_delivered", DT_BOOL, R_NONE, OPT_BOUNCE_DELIVERED, 1 },
/*
** .pp
** When this variable is \fIset\fP, mutt will include Delivered-To headers when
** bouncing messages. Postfix users may wish to \fIunset\fP this variable.
*/
{ "braille_friendly", DT_BOOL, R_NONE, OPT_BRAILLE_FRIENDLY, 0 },
/*
** .pp
** When this variable is \fIset\fP, mutt will place the cursor at the beginning
** of the current line in menus, even when the $$arrow_cursor variable
** is \fIunset\fP, making it easier for blind persons using Braille displays to
** follow these menus. The option is \fIunset\fP by default because many
** visual terminals don't permit making the cursor invisible.
*/
#ifdef USE_NNTP
{ "catchup_newsgroup", DT_QUAD, R_NONE, OPT_CATCHUP, MUTT_ASKYES },
/*
** .pp
** If this variable is \fIset\fP, Mutt will mark all articles in newsgroup
** as read when you quit the newsgroup (catchup newsgroup).
*/
#endif
#ifdef USE_SSL
{ "certificate_file", DT_PATH, R_NONE, UL &SslCertFile, UL "~/.mutt_certificates" },
/*
** .pp
** This variable specifies the file where the certificates you trust
** are saved. When an unknown certificate is encountered, you are asked
** if you accept it or not. If you accept it, the certificate can also
** be saved in this file and further connections are automatically
** accepted.
** .pp
** You can also manually add CA certificates in this file. Any server
** certificate that is signed with one of these CA certificates is
** also automatically accepted.
** .pp
** Example:
** .ts
** set certificate_file=~/.mutt/certificates
** .te
**
*/
#endif
{ "charset", DT_STR, R_NONE, UL &Charset, UL 0 },
/*
** .pp
** Character set your terminal uses to display and enter textual data.
** It is also the fallback for $$send_charset.
** .pp
** Upon startup Mutt tries to derive this value from environment variables
** such as \fC$$$LC_CTYPE\fP or \fC$$$LANG\fP.
** .pp
** \fBNote:\fP It should only be set in case Mutt isn't able to determine the
** character set used correctly.
*/
{ "check_mbox_size", DT_BOOL, R_NONE, OPT_CHECK_MBOX_SIZE, 0 },
/*
** .pp
** When this variable is \fIset\fP, mutt will use file size attribute instead of
** access time when checking for new mail in mbox and mmdf folders.
** .pp
** This variable is \fIunset\fP by default and should only be enabled when
** new mail detection for these folder types is unreliable or doesn't work.
** .pp
** Note that enabling this variable should happen before any ``$mailboxes''
** directives occur in configuration files regarding mbox or mmdf folders
** because mutt needs to determine the initial new mail status of such a
** mailbox by performing a fast mailbox scan when it is defined.
** Afterwards the new mail status is tracked by file size changes.
*/
{ "check_new", DT_BOOL, R_NONE, OPT_CHECK_NEW, 1 },
/*
** .pp
** \fBNote:\fP this option only affects \fImaildir\fP and \fIMH\fP style
** mailboxes.
** .pp
** When \fIset\fP, Mutt will check for new mail delivered while the
** mailbox is open. Especially with MH mailboxes, this operation can
** take quite some time since it involves scanning the directory and
** checking each file to see if it has already been looked at. If
** this variable is \fIunset\fP, no check for new mail is performed
** while the mailbox is open.
*/
{ "collapse_unread", DT_BOOL, R_NONE, OPT_COLLAPSE_UNREAD, 1 },
/*
** .pp
** When \fIunset\fP, Mutt will not collapse a thread if it contains any
** unread messages.
*/
{ "collapse_flagged", DT_BOOL, R_NONE, OPT_COLLAPSE_FLAGGED, 1 },
/*
** .pp
** When \fIunset\fP, Mutt will not collapse a thread if it contains any
** flagged messages.
*/
{ "compose_format", DT_STR, R_MENU, UL &ComposeFormat, UL "-- NeoMutt: Compose [Approx. msg size: %l Atts: %a]%>-" },
/*
** .pp
** Controls the format of the status line displayed in the ``compose''
** menu. This string is similar to $$status_format, but has its own
** set of \fCprintf(3)\fP-like sequences:
** .dl
** .dt %a .dd total number of attachments
** .dt %h .dd local hostname
** .dt %l .dd approximate size (in bytes) of the current message
** .dt %v .dd Mutt version string
** .de
** .pp
** See the text describing the $$status_format option for more
** information on how to set $$compose_format.
*/
{ "config_charset", DT_STR, R_NONE, UL &ConfigCharset, UL 0 },
/*
** .pp
** When defined, Mutt will recode commands in rc files from this
** encoding to the current character set as specified by $$charset
** and aliases written to $$alias_file from the current character set.
** .pp
** Please note that if setting $$charset it must be done before
** setting $$config_charset.
** .pp
** Recoding should be avoided as it may render unconvertable
** characters as question marks which can lead to undesired
** side effects (for example in regular expressions).
*/
{ "confirmappend", DT_BOOL, R_NONE, OPT_CONFIRM_APPEND, 1 },
/*
** .pp
** When \fIset\fP, Mutt will prompt for confirmation when appending messages to
** an existing mailbox.
*/
{ "confirmcreate", DT_BOOL, R_NONE, OPT_CONFIRM_CREATE, 1 },
/*
** .pp
** When \fIset\fP, Mutt will prompt for confirmation when saving messages to a
** mailbox which does not yet exist before creating it.
*/
{ "connect_timeout", DT_NUM, R_NONE, UL &ConnectTimeout, 30 },
/*
** .pp
** Causes Mutt to timeout a network connection (for IMAP, POP or SMTP) after this
** many seconds if the connection is not able to be established. A negative
** value causes Mutt to wait indefinitely for the connection attempt to succeed.
*/
{ "content_type", DT_STR, R_NONE, UL &ContentType, UL "text/plain" },
/*
** .pp
** Sets the default Content-Type for the body of newly composed messages.
*/
{ "copy", DT_QUAD, R_NONE, OPT_COPY, MUTT_YES },
/*
** .pp
** This variable controls whether or not copies of your outgoing messages
** will be saved for later references. Also see $$record,
** $$save_name, $$force_name and ``$fcc-hook''.
*/
{ "pgp_autoencrypt", DT_SYN, R_NONE, UL "crypt_autoencrypt", 0 },
{ "crypt_autoencrypt", DT_BOOL, R_NONE, OPT_CRYPT_AUTO_ENCRYPT, 0 },
/*
** .pp
** Setting this variable will cause Mutt to always attempt to PGP
** encrypt outgoing messages. This is probably only useful in
** connection to the ``$send-hook'' command. It can be overridden
** by use of the pgp menu, when encryption is not required or
** signing is requested as well. If $$smime_is_default is \fIset\fP,
** then OpenSSL is used instead to create S/MIME messages and
** settings can be overridden by use of the smime menu instead.
** (Crypto only)
*/
{ "crypt_autopgp", DT_BOOL, R_NONE, OPT_CRYPT_AUTO_PGP, 1 },
/*
** .pp
** This variable controls whether or not mutt may automatically enable
** PGP encryption/signing for messages. See also $$crypt_autoencrypt,
** $$crypt_replyencrypt,
** $$crypt_autosign, $$crypt_replysign and $$smime_is_default.
*/
{ "pgp_autosign", DT_SYN, R_NONE, UL "crypt_autosign", 0 },
{ "crypt_autosign", DT_BOOL, R_NONE, OPT_CRYPT_AUTO_SIGN, 0 },
/*
** .pp
** Setting this variable will cause Mutt to always attempt to
** cryptographically sign outgoing messages. This can be overridden
** by use of the pgp menu, when signing is not required or
** encryption is requested as well. If $$smime_is_default is \fIset\fP,
** then OpenSSL is used instead to create S/MIME messages and settings can
** be overridden by use of the smime menu instead of the pgp menu.
** (Crypto only)
*/
{ "crypt_autosmime", DT_BOOL, R_NONE, OPT_CRYPT_AUTO_SMIME, 1 },
/*
** .pp
** This variable controls whether or not mutt may automatically enable
** S/MIME encryption/signing for messages. See also $$crypt_autoencrypt,
** $$crypt_replyencrypt,
** $$crypt_autosign, $$crypt_replysign and $$smime_is_default.
*/
{ "crypt_confirmhook", DT_BOOL, R_NONE, OPT_CRYPT_CONFIRM_HOOK, 1 },
/*
** .pp
** If set, then you will be prompted for confirmation of keys when using
** the \fIcrypt-hook\fP command. If unset, no such confirmation prompt will
** be presented. This is generally considered unsafe, especially where
** typos are concerned.
*/
{ "crypt_opportunistic_encrypt", DT_BOOL, R_NONE, OPT_CRYPT_OPPORTUNISTIC_ENCRYPT, 0 },
/*
** .pp
** Setting this variable will cause Mutt to automatically enable and
** disable encryption, based on whether all message recipient keys
** can be located by Mutt.
** .pp
** When this option is enabled, Mutt will enable/disable encryption
** each time the TO, CC, and BCC lists are edited. If
** $$edit_headers is set, Mutt will also do so each time the message
** is edited.
** .pp
** While this is set, encryption can't be manually enabled/disabled.
** The pgp or smime menus provide a selection to temporarily disable
** this option for the current message.
** .pp
** If $$crypt_autoencrypt or $$crypt_replyencrypt enable encryption for
** a message, this option will be disabled for that message. It can
** be manually re-enabled in the pgp or smime menus.
** (Crypto only)
*/
{ "pgp_replyencrypt", DT_SYN, R_NONE, UL "crypt_replyencrypt", 1 },
{ "crypt_replyencrypt", DT_BOOL, R_NONE, OPT_CRYPT_REPLY_ENCRYPT, 1 },
/*
** .pp
** If \fIset\fP, automatically PGP or OpenSSL encrypt replies to messages which are
** encrypted.
** (Crypto only)
*/
{ "pgp_replysign", DT_SYN, R_NONE, UL "crypt_replysign", 0 },
{ "crypt_replysign", DT_BOOL, R_NONE, OPT_CRYPT_REPLY_SIGN, 0 },
/*
** .pp
** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages which are
** signed.
** .pp
** \fBNote:\fP this does not work on messages that are encrypted
** \fIand\fP signed!
** (Crypto only)
*/
{ "pgp_replysignencrypted", DT_SYN, R_NONE, UL "crypt_replysignencrypted", 0 },
{ "crypt_replysignencrypted", DT_BOOL, R_NONE, OPT_CRYPT_REPLY_SIGN_ENCRYPTED, 0 },
/*
** .pp
** If \fIset\fP, automatically PGP or OpenSSL sign replies to messages
** which are encrypted. This makes sense in combination with
** $$crypt_replyencrypt, because it allows you to sign all
** messages which are automatically encrypted. This works around
** the problem noted in $$crypt_replysign, that mutt is not able
** to find out whether an encrypted message is also signed.
** (Crypto only)
*/
{ "crypt_timestamp", DT_BOOL, R_NONE, OPT_CRYPT_TIMESTAMP, 1 },
/*
** .pp
** If \fIset\fP, mutt will include a time stamp in the lines surrounding
** PGP or S/MIME output, so spoofing such lines is more difficult.
** If you are using colors to mark these lines, and rely on these,
** you may \fIunset\fP this setting.
** (Crypto only)
*/
{ "crypt_use_gpgme", DT_BOOL, R_NONE, OPT_CRYPT_USE_GPGME, 0 },
/*
** .pp
** This variable controls the use of the GPGME-enabled crypto backends.
** If it is \fIset\fP and Mutt was built with gpgme support, the gpgme code for
** S/MIME and PGP will be used instead of the classic code. Note that
** you need to set this option in .muttrc; it won't have any effect when
** used interactively.
** .pp
** Note that the GPGME backend does not support creating old-style inline
** (traditional) PGP encrypted or signed messages (see $$pgp_autoinline).
*/
{ "crypt_use_pka", DT_BOOL, R_NONE, OPT_CRYPT_USE_PKA, 0 },
/*
** .pp
** Controls whether mutt uses PKA
** (see http://www.g10code.de/docs/pka-intro.de.pdf) during signature
** verification (only supported by the GPGME backend).
*/
{ "pgp_verify_sig", DT_SYN, R_NONE, UL "crypt_verify_sig", 0 },
{ "crypt_verify_sig", DT_QUAD, R_NONE, OPT_VERIFY_SIG, MUTT_YES },
/*
** .pp
** If \fI``yes''\fP, always attempt to verify PGP or S/MIME signatures.
** If \fI``ask-*''\fP, ask whether or not to verify the signature.
** If \fI``no''\fP, never attempt to verify cryptographic signatures.
** (Crypto only)
*/
{ "date_format", DT_STR, R_MENU, UL &DateFmt, UL "!%a, %b %d, %Y at %I:%M:%S%p %Z" },
/*
** .pp
** This variable controls the format of the date printed by the ``%d''
** sequence in $$index_format. This is passed to the \fCstrftime(3)\fP
** function to process the date, see the man page for the proper syntax.
** .pp
** Unless the first character in the string is a bang (``!''), the month
** and week day names are expanded according to the locale.
** If the first character in the string is a
** bang, the bang is discarded, and the month and week day names in the
** rest of the string are expanded in the \fIC\fP locale (that is in US
** English).
*/
#ifdef DEBUG
{ "debug_level", DT_NUM, R_NONE, UL &DebugLevel, 0 },
/*
** .pp
** The debug level. Note: to debug the early startup process (before the
** configuration is loaded), ``-d'' mutt argument must be used.
** debug_level/debug_file are ignored until it's read from the configuration
** file.
*/
{ "debug_file", DT_PATH, R_NONE, UL &DebugFile, UL "~/.muttdebug" },
/*
** .pp
** The location prefix of the debug file, 0 is append to the debug file
** Old debug files are renamed with the prefix 1, 2, 3 and 4.
** See ``debug_level'' for more detail.
*/
#endif
{ "default_hook", DT_STR, R_NONE, UL &DefaultHook, UL "~f %s !~P | (~P ~C %s)" },
/*
** .pp
** This variable controls how ``$message-hook'', ``$reply-hook'', ``$send-hook'',
** ``$send2-hook'', ``$save-hook'', and ``$fcc-hook'' will
** be interpreted if they are specified with only a simple regexp,
** instead of a matching pattern. The hooks are expanded when they are
** declared, so a hook will be interpreted according to the value of this
** variable at the time the hook is declared.
** .pp
** The default value matches
** if the message is either from a user matching the regular expression
** given, or if it is from you (if the from address matches
** ``$alternates'') and is to or cc'ed to a user matching the given
** regular expression.
*/
{ "delete", DT_QUAD, R_NONE, OPT_DELETE, MUTT_ASKYES },
/*
** .pp
** Controls whether or not messages are really deleted when closing or
** synchronizing a mailbox. If set to \fIyes\fP, messages marked for
** deleting will automatically be purged without prompting. If set to
** \fIno\fP, messages marked for deletion will be kept in the mailbox.
*/
{ "delete_untag", DT_BOOL, R_NONE, OPT_DELETE_UNTAG, 1 },
/*
** .pp
** If this option is \fIset\fP, mutt will untag messages when marking them
** for deletion. This applies when you either explicitly delete a message,
** or when you save it to another folder.
*/
{ "digest_collapse", DT_BOOL, R_NONE, OPT_DIGEST_COLLAPSE, 1 },
/*
** .pp
** If this option is \fIset\fP, mutt's received-attachments menu will not show the subparts of
** individual messages in a multipart/digest. To see these subparts, press ``v'' on that menu.
*/
{ "display_filter", DT_PATH, R_PAGER, UL &DisplayFilter, UL "" },
/*
** .pp
** When set, specifies a command used to filter messages. When a message
** is viewed it is passed as standard input to $$display_filter, and the
** filtered message is read from the standard output.
*/
{ "dsn_notify", DT_STR, R_NONE, UL &DsnNotify, UL "" },
/*
** .pp
** This variable sets the request for when notification is returned. The
** string consists of a comma separated list (no spaces!) of one or more
** of the following: \fInever\fP, to never request notification,
** \fIfailure\fP, to request notification on transmission failure,
** \fIdelay\fP, to be notified of message delays, \fIsuccess\fP, to be
** notified of successful transmission.
** .pp
** Example:
** .ts
** set dsn_notify="failure,delay"
** .te
** .pp
** \fBNote:\fP when using $$sendmail for delivery, you should not enable
** this unless you are either using Sendmail 8.8.x or greater or a MTA
** providing a \fCsendmail(1)\fP-compatible interface supporting the \fC-N\fP option
** for DSN. For SMTP delivery, DSN support is auto-detected so that it
** depends on the server whether DSN will be used or not.
*/
{ "dsn_return", DT_STR, R_NONE, UL &DsnReturn, UL "" },
/*
** .pp
** This variable controls how much of your message is returned in DSN
** messages. It may be set to either \fIhdrs\fP to return just the
** message header, or \fIfull\fP to return the full message.
** .pp
** Example:
** .ts
** set dsn_return=hdrs
** .te
** .pp
** \fBNote:\fP when using $$sendmail for delivery, you should not enable
** this unless you are either using Sendmail 8.8.x or greater or a MTA
** providing a \fCsendmail(1)\fP-compatible interface supporting the \fC-R\fP option
** for DSN. For SMTP delivery, DSN support is auto-detected so that it
** depends on the server whether DSN will be used or not.
*/
{ "duplicate_threads", DT_BOOL, R_RESORT|R_RESORT_INIT|R_INDEX, OPT_DUP_THREADS, 1 },
/*
** .pp
** This variable controls whether mutt, when $$sort is set to \fIthreads\fP, threads
** messages with the same Message-Id together. If it is \fIset\fP, it will indicate
** that it thinks they are duplicates of each other with an equals sign
** in the thread tree.
*/
{ "edit_headers", DT_BOOL, R_NONE, OPT_EDIT_HDRS, 0 },
/*
** .pp
** This option allows you to edit the header of your outgoing messages
** along with the body of your message.
** .pp
** Although the compose menu may have localized header labels, the
** labels passed to your editor will be standard RFC2822 headers,
** (e.g. To:, Cc:, Subject:). Headers added in your editor must
** also be RFC2822 headers, or one of the pseudo headers listed in
** ``$edit-header''. Mutt will not understand localized header
** labels, just as it would not when parsing an actual email.
** .pp
** \fBNote\fP that changes made to the References: and Date: headers are
** ignored for interoperability reasons.
*/
{ "edit_hdrs", DT_SYN, R_NONE, UL "edit_headers", 0 },
/*
*/
{ "editor", DT_PATH, R_NONE, UL &Editor, 0 },
/*
** .pp
** This variable specifies which editor is used by mutt.
** It defaults to the value of the \fC$$$VISUAL\fP, or \fC$$$EDITOR\fP, environment
** variable, or to the string ``vi'' if neither of those are set.
** .pp
** The \fC$$editor\fP string may contain a \fI%s\fP escape, which will be replaced by the name
** of the file to be edited. If the \fI%s\fP escape does not appear in \fC$$editor\fP, a
** space and the name to be edited are appended.
** .pp
** The resulting string is then executed by running
** .ts
** sh -c 'string'
** .te
** .pp
** where \fIstring\fP is the expansion of \fC$$editor\fP described above.
*/
{ "empty_subject", DT_STR, R_NONE, UL &EmptySubject, UL "Re: your mail" },
/*
** .pp
** This variable specifies the subject to be used when replying to an email
** with an empty subject. It defaults to "Re: your mail".
*/
{ "encode_from", DT_BOOL, R_NONE, OPT_ENCODE_FROM, 0 },
/*
** .pp
** When \fIset\fP, mutt will quoted-printable encode messages when
** they contain the string ``From '' (note the trailing space) in the beginning of a line.
** This is useful to avoid the tampering certain mail delivery and transport
** agents tend to do with messages (in order to prevent tools from
** misinterpreting the line as a mbox message separator).
*/
#ifdef USE_SSL_OPENSSL
{ "entropy_file", DT_PATH, R_NONE, UL &SslEntropyFile, 0 },
/*
** .pp
** The file which includes random data that is used to initialize SSL
** library functions.
*/
#endif
{ "envelope_from_address", DT_ADDR, R_NONE, UL &EnvFrom, 0 },
/*
** .pp
** Manually sets the \fIenvelope\fP sender for outgoing messages.
** This value is ignored if $$use_envelope_from is \fIunset\fP.
*/
{ "escape", DT_STR, R_NONE, UL &EscChar, UL "~" },
/*
** .pp
** Escape character to use for functions in the built-in editor.
*/
{ "fast_reply", DT_BOOL, R_NONE, OPT_FAST_REPLY, 0 },
/*
** .pp
** When \fIset\fP, the initial prompt for recipients and subject are skipped
** when replying to messages, and the initial prompt for subject is
** skipped when forwarding messages.
** .pp
** \fBNote:\fP this variable has no effect when the $$autoedit
** variable is \fIset\fP.
*/
{ "fcc_attach", DT_QUAD, R_NONE, OPT_FCC_ATTACH, MUTT_YES },
/*
** .pp
** This variable controls whether or not attachments on outgoing messages
** are saved along with the main body of your message.
*/
{ "fcc_clear", DT_BOOL, R_NONE, OPT_FCC_CLEAR, 0 },
/*
** .pp
** When this variable is \fIset\fP, FCCs will be stored unencrypted and
** unsigned, even when the actual message is encrypted and/or
** signed.
** (PGP only)
*/
{ "flag_safe", DT_BOOL, R_NONE, OPT_FLAG_SAFE, 0 },
/*
** .pp
** If set, flagged messages cannot be deleted.
*/
{ "folder", DT_PATH, R_NONE, UL &Maildir, UL "~/Mail" },
/*
** .pp
** Specifies the default location of your mailboxes. A ``+'' or ``='' at the
** beginning of a pathname will be expanded to the value of this
** variable. Note that if you change this variable (from the default)
** value you need to make sure that the assignment occurs \fIbefore\fP
** you use ``+'' or ``='' for any other variables since expansion takes place
** when handling the ``$mailboxes'' command.
*/
{ "folder_format", DT_STR, R_MENU, UL &FolderFormat, UL "%2C %t %N %F %2l %-8.8u %-8.8g %8s %d %f" },
/*
** .pp
** This variable allows you to customize the file browser display to your
** personal taste. This string is similar to $$index_format, but has
** its own set of \fCprintf(3)\fP-like sequences:
** .dl
** .dt %C .dd current file number
** .dt %d .dd date/time folder was last modified
** .dt %D .dd date/time folder was last modified using $$date_format.
** .dt %f .dd filename (``/'' is appended to directory names,
** ``@'' to symbolic links and ``*'' to executable
** files)
** .dt %F .dd file permissions
** .dt %g .dd group name (or numeric gid, if missing)
** .dt %l .dd number of hard links
** .dt %m .dd number of messages in the mailbox *
** .dt %n .dd number of unread messages in the mailbox *
** .dt %N .dd N if mailbox has new mail, blank otherwise
** .dt %s .dd size in bytes
** .dt %t .dd ``*'' if the file is tagged, blank otherwise
** .dt %u .dd owner name (or numeric uid, if missing)
** .dt %>X .dd right justify the rest of the string and pad with character ``X''
** .dt %|X .dd pad to the end of the line with character ``X''
** .dt %*X .dd soft-fill with character ``X'' as pad
** .de
** .pp
** For an explanation of ``soft-fill'', see the $$index_format documentation.
** .pp
** * = can be optionally printed if nonzero
** .pp
** %m, %n, and %N only work for monitored mailboxes.
** %m requires $$mail_check_stats to be set.
** %n requires $$mail_check_stats to be set (except for IMAP mailboxes).
*/
{ "followup_to", DT_BOOL, R_NONE, OPT_FOLLOW_UP_TO, 1 },
/*
** .pp
** Controls whether or not the ``Mail-Followup-To:'' header field is
** generated when sending mail. When \fIset\fP, Mutt will generate this
** field when you are replying to a known mailing list, specified with
** the ``$subscribe'' or ``$lists'' commands.
** .pp
** This field has two purposes. First, preventing you from
** receiving duplicate copies of replies to messages which you send
** to mailing lists, and second, ensuring that you do get a reply
** separately for any messages sent to known lists to which you are
** not subscribed.
** .pp
** The header will contain only the list's address
** for subscribed lists, and both the list address and your own
** email address for unsubscribed lists. Without this header, a
** group reply to your message sent to a subscribed list will be
** sent to both the list and your address, resulting in two copies
** of the same email for you.
*/
#ifdef USE_NNTP
{ "followup_to_poster", DT_QUAD, R_NONE, OPT_FOLLOW_UP_TO_POSTER, MUTT_ASKYES },
/*
** .pp
** If this variable is \fIset\fP and the keyword "poster" is present in
** \fIFollowup-To\fP header, follow-up to newsgroup function is not
** permitted. The message will be mailed to the submitter of the
** message via mail.
*/
#endif
{ "force_name", DT_BOOL, R_NONE, OPT_FORCE_NAME, 0 },
/*
** .pp
** This variable is similar to $$save_name, except that Mutt will
** store a copy of your outgoing message by the username of the address
** you are sending to even if that mailbox does not exist.
** .pp
** Also see the $$record variable.
*/
{ "forward_attribution_intro", DT_STR, R_NONE, UL &ForwardAttrIntro, UL "----- Forwarded message from %f -----" },
/*
** .pp
** This is the string that will precede a message which has been forwarded
** in the main body of a message (when $$mime_forward is unset).
** For a full listing of defined \fCprintf(3)\fP-like sequences see
** the section on $$index_format. See also $$attribution_locale.
*/
{ "forward_attribution_trailer", DT_STR, R_NONE, UL &ForwardAttrTrailer, UL "----- End forwarded message -----" },
/*
** .pp
** This is the string that will follow a message which has been forwarded
** in the main body of a message (when $$mime_forward is unset).
** For a full listing of defined \fCprintf(3)\fP-like sequences see
** the section on $$index_format. See also $$attribution_locale.
*/
{ "forward_decode", DT_BOOL, R_NONE, OPT_FORW_DECODE, 1 },
/*
** .pp
** Controls the decoding of complex MIME messages into \fCtext/plain\fP when
** forwarding a message. The message header is also RFC2047 decoded.
** This variable is only used, if $$mime_forward is \fIunset\fP,
** otherwise $$mime_forward_decode is used instead.
*/
{ "forw_decode", DT_SYN, R_NONE, UL "forward_decode", 0 },
/*
*/
{ "forward_decrypt", DT_BOOL, R_NONE, OPT_FORW_DECRYPT, 1 },
/*
** .pp
** Controls the handling of encrypted messages when forwarding a message.
** When \fIset\fP, the outer layer of encryption is stripped off. This
** variable is only used if $$mime_forward is \fIset\fP and
** $$mime_forward_decode is \fIunset\fP.
** (PGP only)
*/
{ "forw_decrypt", DT_SYN, R_NONE, UL "forward_decrypt", 0 },
/*
*/
{ "forward_edit", DT_QUAD, R_NONE, OPT_FORW_EDIT, MUTT_YES },
/*
** .pp