Mercurial > emacs
comparison lisp/mh-e/mh-customize.el @ 67758:6b063593fdad
Follow Emacs coding conventions. Use default setting of
emacs-lisp-docstring-fill-column which is 65.
author | Bill Wohler <wohler@newt.com> |
---|---|
date | Fri, 23 Dec 2005 07:40:40 +0000 |
parents | 7ff92ad99326 |
children | b7b75914a27d |
comparison
equal
deleted
inserted
replaced
67757:488b4dbc7482 | 67758:6b063593fdad |
---|---|
88 (defvar mh-show-buffer) | 88 (defvar mh-show-buffer) |
89 (defvar mh-show-folder-buffer)) | 89 (defvar mh-show-folder-buffer)) |
90 | 90 |
91 (defun mh-customize (&optional delete-other-windows-flag) | 91 (defun mh-customize (&optional delete-other-windows-flag) |
92 "Customize MH-E variables. | 92 "Customize MH-E variables. |
93 If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other windows in | 93 If optional argument DELETE-OTHER-WINDOWS-FLAG is non-nil, other |
94 the frame are removed." | 94 windows in the frame are removed." |
95 (interactive "P") | 95 (interactive "P") |
96 (customize-group 'mh-e) | 96 (customize-group 'mh-e) |
97 (when delete-other-windows-flag | 97 (when delete-other-windows-flag |
98 (delete-other-windows))) | 98 (delete-other-windows))) |
99 | 99 |
101 | 101 |
102 ;;; MH-E Customization Groups | 102 ;;; MH-E Customization Groups |
103 | 103 |
104 (defgroup mh-e nil | 104 (defgroup mh-e nil |
105 "Emacs interface to the MH mail system. | 105 "Emacs interface to the MH mail system. |
106 MH is the Rand Mail Handler. Other implementations include nmh and GNU | 106 MH is the Rand Mail Handler. Other implementations include nmh |
107 mailutils." | 107 and GNU mailutils." |
108 :link '(custom-manual "(mh-e)Top") | 108 :link '(custom-manual "(mh-e)Top") |
109 :group 'mail) | 109 :group 'mail) |
110 | 110 |
111 (defgroup mh-alias nil | 111 (defgroup mh-alias nil |
112 "Aliases." | 112 "Aliases." |
269 :type '(repeat (directory))) | 269 :type '(repeat (directory))) |
270 | 270 |
271 (defcustom mh-variant 'autodetect | 271 (defcustom mh-variant 'autodetect |
272 "*Specifies the variant used by MH-E. | 272 "*Specifies the variant used by MH-E. |
273 | 273 |
274 The default setting of this option is `Auto-detect' which means that MH-E will | 274 The default setting of this option is `Auto-detect' which means |
275 automatically choose the first of nmh, MH, or GNU mailutils that it finds in | 275 that MH-E will automatically choose the first of nmh, MH, or GNU |
276 the directories listed in `mh-path' (which you can customize), `mh-sys-path', | 276 mailutils that it finds in the directories listed in |
277 and `exec-path'. If, for example, you have both nmh and mailutils installed | 277 `mh-path' (which you can customize), `mh-sys-path', and |
278 and `mh-variant-in-use' was initialized to nmh but you want to use mailutils, | 278 `exec-path'. If, for example, you have both nmh and mailutils |
279 then you can set this option to `mailutils'. | 279 installed and `mh-variant-in-use' was initialized to nmh but you |
280 want to use mailutils, then you can set this option to | |
281 `mailutils'. | |
280 | 282 |
281 When this variable is changed, MH-E resets `mh-progs', `mh-lib', | 283 When this variable is changed, MH-E resets `mh-progs', `mh-lib', |
282 `mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use' | 284 `mh-lib-progs', `mh-flists-present-flag', and `mh-variant-in-use' |
283 accordingly." | 285 accordingly." |
284 :type `(radio | 286 :type `(radio |
293 | 295 |
294 ;;; Aliases (:group 'mh-alias) | 296 ;;; Aliases (:group 'mh-alias) |
295 | 297 |
296 (defcustom mh-alias-completion-ignore-case-flag t | 298 (defcustom mh-alias-completion-ignore-case-flag t |
297 "*Non-nil means don't consider case significant in MH alias completion. | 299 "*Non-nil means don't consider case significant in MH alias completion. |
298 As MH ignores case in the aliases, so too does MH-E. However, you may turn | 300 |
299 this option off to make case significant which can be used to segregate | 301 As MH ignores case in the aliases, so too does MH-E. However, you |
300 completion of your aliases. You might use lowercase for mailing lists and | 302 may turn this option off to make case significant which can be |
301 uppercase for people." | 303 used to segregate completion of your aliases. You might use |
304 lowercase for mailing lists and uppercase for people." | |
302 :type 'boolean | 305 :type 'boolean |
303 :group 'mh-alias) | 306 :group 'mh-alias) |
304 | 307 |
305 (defcustom mh-alias-expand-aliases-flag nil | 308 (defcustom mh-alias-expand-aliases-flag nil |
306 "*Non-nil means to expand aliases entered in the minibuffer. | 309 "*Non-nil means to expand aliases entered in the minibuffer. |
307 In other words, aliases entered in the minibuffer will be expanded to the full | 310 |
308 address in the message draft. By default, this expansion is not performed." | 311 In other words, aliases entered in the minibuffer will be |
312 expanded to the full address in the message draft. By default, | |
313 this expansion is not performed." | |
309 :type 'boolean | 314 :type 'boolean |
310 :group 'mh-alias) | 315 :group 'mh-alias) |
311 | 316 |
312 (defcustom mh-alias-flash-on-comma t | 317 (defcustom mh-alias-flash-on-comma t |
313 "*Specify whether to flash address or warn on translation. | 318 "*Specify whether to flash address or warn on translation. |
314 This option controls the behavior when a [comma] is pressed while entering | 319 |
315 aliases or addresses. The default setting flashes the address associated with | 320 This option controls the behavior when a [comma] is pressed while |
316 an address in the minibuffer briefly, but does not display a warning if the | 321 entering aliases or addresses. The default setting flashes the |
317 alias is not found." | 322 address associated with an address in the minibuffer briefly, but |
323 does not display a warning if the alias is not found." | |
318 :type '(choice (const :tag "Flash but Don't Warn If No Alias" t) | 324 :type '(choice (const :tag "Flash but Don't Warn If No Alias" t) |
319 (const :tag "Flash and Warn If No Alias" 1) | 325 (const :tag "Flash and Warn If No Alias" 1) |
320 (const :tag "Don't Flash Nor Warn If No Alias" nil)) | 326 (const :tag "Don't Flash Nor Warn If No Alias" nil)) |
321 :group 'mh-alias) | 327 :group 'mh-alias) |
322 | 328 |
323 (defcustom mh-alias-insert-file nil | 329 (defcustom mh-alias-insert-file nil |
324 "*Filename used to store a new MH-E alias. | 330 "*Filename used to store a new MH-E alias. |
325 The default setting of this option is `Use Aliasfile Profile Component'. This | 331 |
326 option can also hold the name of a file or a list a file names. If this option | 332 The default setting of this option is `Use Aliasfile Profile |
327 is set to a list of file names, or the `Aliasfile:' profile component contains | 333 Component'. This option can also hold the name of a file or a |
328 more than one file name, MH-E will prompt for one of them when MH-E adds an | 334 list a file names. If this option is set to a list of file names, |
329 alias." | 335 or the `Aliasfile:' profile component contains more than one file |
336 name, MH-E will prompt for one of them when MH-E adds an alias." | |
330 :type '(choice (const :tag "Use Aliasfile Profile Component" nil) | 337 :type '(choice (const :tag "Use Aliasfile Profile Component" nil) |
331 (file :tag "Alias File") | 338 (file :tag "Alias File") |
332 (repeat :tag "List of Alias Files" file)) | 339 (repeat :tag "List of Alias Files" file)) |
333 :group 'mh-alias) | 340 :group 'mh-alias) |
334 | 341 |
335 (defcustom mh-alias-insertion-location 'sorted | 342 (defcustom mh-alias-insertion-location 'sorted |
336 "Specifies where new aliases are entered in alias files. | 343 "Specifies where new aliases are entered in alias files. |
337 This option is set to `Alphabetical' by default. If you organize your alias | 344 |
338 file in other ways, then adding aliases to the `Top' or `Bottom' of your alias | 345 This option is set to `Alphabetical' by default. If you organize |
339 file might be more appropriate." | 346 your alias file in other ways, then adding aliases to the `Top' |
347 or `Bottom' of your alias file might be more appropriate." | |
340 :type '(choice (const :tag "Alphabetical" sorted) | 348 :type '(choice (const :tag "Alphabetical" sorted) |
341 (const :tag "Top" top) | 349 (const :tag "Top" top) |
342 (const :tag "Bottom" bottom)) | 350 (const :tag "Bottom" bottom)) |
343 :group 'mh-alias) | 351 :group 'mh-alias) |
344 | 352 |
345 (defcustom mh-alias-local-users t | 353 (defcustom mh-alias-local-users t |
346 "*If on, local users are added to alias completion. | 354 "*If on, local users are added to alias completion. |
347 | 355 |
348 Aliases are created from `/etc/passwd' entries with a user ID larger than | 356 Aliases are created from `/etc/passwd' entries with a user ID |
349 a magical number, typically 200. This can be a handy tool on a machine where | 357 larger than a magical number, typically 200. This can be a handy |
350 you and co-workers exchange messages. These aliases have the form | 358 tool on a machine where you and co-workers exchange messages. |
351 `local.first.last' if a real name is present in the password file. | 359 These aliases have the form `local.first.last' if a real name is |
352 Otherwise, the alias will have the form `local.login'. | 360 present in the password file. Otherwise, the alias will have the |
353 | 361 form `local.login'. |
354 If you're on a system with thousands of users you don't know, and the loading | 362 |
355 of local aliases slows MH-E down noticeably, then turn this option off. | 363 If you're on a system with thousands of users you don't know, and |
356 | 364 the loading of local aliases slows MH-E down noticeably, then |
357 This option also takes a string which is executed to generate the password | 365 turn this option off. |
358 file. For example, use \"ypcat passwd\" to obtain the NIS password file." | 366 |
367 This option also takes a string which is executed to generate the | |
368 password file. For example, use \"ypcat passwd\" to obtain the | |
369 NIS password file." | |
359 :type '(choice (boolean) (string)) | 370 :type '(choice (boolean) (string)) |
360 :group 'mh-alias) | 371 :group 'mh-alias) |
361 | 372 |
362 (defcustom mh-alias-local-users-prefix "local." | 373 (defcustom mh-alias-local-users-prefix "local." |
363 "*String prefixed to the real names of users from the password file. | 374 "*String prefixed to the real names of users from the password file. |
365 | 376 |
366 For example, consider the following password file entry: | 377 For example, consider the following password file entry: |
367 | 378 |
368 psg:x:1000:1000:Peter S Galbraith,,,:/home/psg:/bin/tcsh | 379 psg:x:1000:1000:Peter S Galbraith,,,:/home/psg:/bin/tcsh |
369 | 380 |
370 The following settings of this option will produce the associated aliases: | 381 The following settings of this option will produce the associated |
382 aliases: | |
371 | 383 |
372 \"local.\" local.peter.galbraith | 384 \"local.\" local.peter.galbraith |
373 \"\" peter.galbraith | 385 \"\" peter.galbraith |
374 Use Login psg | 386 Use Login psg |
375 | 387 |
376 This option has no effect if variable `mh-alias-local-users' is turned off." | 388 This option has no effect if variable `mh-alias-local-users' is |
389 turned off." | |
377 :type '(choice (const :tag "Use Login" nil) | 390 :type '(choice (const :tag "Use Login" nil) |
378 (string)) | 391 (string)) |
379 :group 'mh-alias) | 392 :group 'mh-alias) |
380 | 393 |
381 (defcustom mh-alias-passwd-gecos-comma-separator-flag t | 394 (defcustom mh-alias-passwd-gecos-comma-separator-flag t |
382 "*Non-nil means the gecos field in the password file uses a comma separator. | 395 "*Non-nil means the gecos field in the password file uses a comma separator. |
383 In the example in `mh-alias-local-users-prefix', commas are used to separate | 396 |
384 different values within the so-called gecos field. This is a fairly common | 397 In the example in `mh-alias-local-users-prefix', commas are used |
385 usage. However, in the rare case that the gecos field in your password file is | 398 to separate different values within the so-called gecos field. |
386 not separated by commas and whose contents may contain commas, you can turn | 399 This is a fairly common usage. However, in the rare case that the |
387 this option off." | 400 gecos field in your password file is not separated by commas and |
401 whose contents may contain commas, you can turn this option off." | |
388 :type 'boolean | 402 :type 'boolean |
389 :group 'mh-alias) | 403 :group 'mh-alias) |
390 | 404 |
391 | 405 |
392 | 406 |
393 ;;; Organizing Your Mail with Folders (:group 'mh-folder) | 407 ;;; Organizing Your Mail with Folders (:group 'mh-folder) |
394 | 408 |
395 (defcustom mh-new-messages-folders t | 409 (defcustom mh-new-messages-folders t |
396 "Folders searched for the \"unseen\" sequence. | 410 "Folders searched for the \"unseen\" sequence. |
397 | 411 |
398 Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to | 412 Set this option to \"Inbox\" to search the \"+inbox\" folder or |
399 search all of the top level folders. Otherwise, list the folders that should | 413 \"All\" to search all of the top level folders. Otherwise, list |
400 be searched with the \"Choose Folders\" menu item. | 414 the folders that should be searched with the \"Choose Folders\" |
415 menu item. | |
401 | 416 |
402 See also `mh-recursive-folders-flag'." | 417 See also `mh-recursive-folders-flag'." |
403 :type '(choice (const :tag "Inbox" t) | 418 :type '(choice (const :tag "Inbox" t) |
404 (const :tag "All" nil) | 419 (const :tag "All" nil) |
405 (repeat :tag "Choose Folders" (string :tag "Folder"))) | 420 (repeat :tag "Choose Folders" (string :tag "Folder"))) |
406 :group 'mh-folder) | 421 :group 'mh-folder) |
407 | 422 |
408 (defcustom mh-ticked-messages-folders t | 423 (defcustom mh-ticked-messages-folders t |
409 "Folders searched for `mh-tick-seq'. | 424 "Folders searched for `mh-tick-seq'. |
410 | 425 |
411 Set this option to \"Inbox\" to search the \"+inbox\" folder or \"All\" to | 426 Set this option to \"Inbox\" to search the \"+inbox\" folder or |
412 search all of the top level folders. Otherwise, list the folders that should | 427 \"All\" to search all of the top level folders. Otherwise, list |
413 be searched with the \"Choose Folders\" menu item. | 428 the folders that should be searched with the \"Choose Folders\" |
429 menu item. | |
414 | 430 |
415 See also `mh-recursive-folders-flag'." | 431 See also `mh-recursive-folders-flag'." |
416 :type '(choice (const :tag "Inbox" t) | 432 :type '(choice (const :tag "Inbox" t) |
417 (const :tag "All" nil) | 433 (const :tag "All" nil) |
418 (repeat :tag "Choose Folders" (string :tag "Folder"))) | 434 (repeat :tag "Choose Folders" (string :tag "Folder"))) |
419 :group 'mh-folder) | 435 :group 'mh-folder) |
420 | 436 |
421 (defcustom mh-large-folder 200 | 437 (defcustom mh-large-folder 200 |
422 "The number of messages that indicates a large folder. | 438 "The number of messages that indicates a large folder. |
423 If a folder is deemed to be large, that is the number of messages in it exceed | 439 |
424 this value, then confirmation is needed when it is visited. Even when | 440 If a folder is deemed to be large, that is the number of messages |
425 `mh-show-threads-flag' is non-nil, the folder is not automatically threaded, if | 441 in it exceed this value, then confirmation is needed when it is |
426 it is large. If set to nil all folders are treated as if they are small." | 442 visited. Even when `mh-show-threads-flag' is non-nil, the folder |
443 is not automatically threaded, if it is large. If set to nil all | |
444 folders are treated as if they are small." | |
427 :type '(choice (const :tag "No Limit") integer) | 445 :type '(choice (const :tag "No Limit") integer) |
428 :group 'mh-folder) | 446 :group 'mh-folder) |
429 | 447 |
430 (defcustom mh-recenter-summary-flag nil | 448 (defcustom mh-recenter-summary-flag nil |
431 "*Non-nil means to recenter the summary window. | 449 "*Non-nil means to recenter the summary window. |
432 If this option is turned on, recenter the summary window when the show window | 450 |
433 is toggled off." | 451 If this option is turned on, recenter the summary window when the |
452 show window is toggled off." | |
434 :type 'boolean | 453 :type 'boolean |
435 :group 'mh-folder) | 454 :group 'mh-folder) |
436 | 455 |
437 (defcustom mh-recursive-folders-flag nil | 456 (defcustom mh-recursive-folders-flag nil |
438 "*Non-nil means that commands which operate on folders do so recursively." | 457 "*Non-nil means that commands which operate on folders do so recursively." |
441 | 460 |
442 (defcustom mh-sortm-args nil | 461 (defcustom mh-sortm-args nil |
443 "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>. | 462 "*Additional arguments for \"sortm\"\\<mh-folder-mode-map>. |
444 | 463 |
445 This option is consulted when a prefix argument is used with | 464 This option is consulted when a prefix argument is used with |
446 \\[mh-sort-folder]. Normally default arguments to \"sortm\" are specified in | 465 \\[mh-sort-folder]. Normally default arguments to \"sortm\" are |
447 the MH profile. This option may be used to provide an alternate view. For | 466 specified in the MH profile. This option may be used to provide |
448 example, \"'(\"-nolimit\" \"-textfield\" \"subject\")\" is a useful setting." | 467 an alternate view. For example, \"'(\"-nolimit\" \"-textfield\" |
468 \"subject\")\" is a useful setting." | |
449 :type 'string | 469 :type 'string |
450 :group 'mh-folder) | 470 :group 'mh-folder) |
451 | 471 |
452 | 472 |
453 | 473 |
454 ;;; Folder Selection (:group 'mh-folder-selection) | 474 ;;; Folder Selection (:group 'mh-folder-selection) |
455 | 475 |
456 (defcustom mh-default-folder-for-message-function nil | 476 (defcustom mh-default-folder-for-message-function nil |
457 "Function to select a default folder for refiling or `Fcc'. | 477 "Function to select a default folder for refiling or `Fcc'. |
458 The current buffer is set to the message being refiled with point at the start | 478 |
459 of the message. This function should return the default folder as a string | 479 The current buffer is set to the message being refiled with point |
460 with a leading `+' sign. It can also return nil so that the last folder name | 480 at the start of the message. This function should return the |
461 is used as the default, or an empty string to suppress the default entirely." | 481 default folder as a string with a leading `+' sign. It can also |
482 return nil so that the last folder name is used as the default, | |
483 or an empty string to suppress the default entirely." | |
462 :type 'function | 484 :type 'function |
463 :group 'mh-folder-selection) | 485 :group 'mh-folder-selection) |
464 | 486 |
465 (defcustom mh-default-folder-list nil | 487 (defcustom mh-default-folder-list nil |
466 "*List of addresses and folders. | 488 "*List of addresses and folders. |
467 The folder name associated with the first address found in this list is used | 489 |
468 as the default for `mh-refile-msg' and similar functions. Each element in this | 490 The folder name associated with the first address found in this |
469 list contains a `Check Recipient' item. If this item is turned on, then the | 491 list is used as the default for `mh-refile-msg' and similar |
470 address is checked against the recipient instead of the sender. This is useful | 492 functions. Each element in this list contains a `Check Recipient' |
471 for mailing lists. | 493 item. If this item is turned on, then the address is checked |
472 | 494 against the recipient instead of the sender. This is useful for |
473 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more | 495 mailing lists. |
474 information." | 496 |
497 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' | |
498 for more information." | |
475 :type '(repeat (list (regexp :tag "Address") | 499 :type '(repeat (list (regexp :tag "Address") |
476 (string :tag "Folder") | 500 (string :tag "Folder") |
477 (boolean :tag "Check Recipient"))) | 501 (boolean :tag "Check Recipient"))) |
478 :group 'mh-folder-selection) | 502 :group 'mh-folder-selection) |
479 | 503 |
480 (defcustom mh-default-folder-must-exist-flag t | 504 (defcustom mh-default-folder-must-exist-flag t |
481 "*Non-nil means guessed folder name must exist to be used. | 505 "*Non-nil means guessed folder name must exist to be used. |
482 If the derived folder does not exist, and this option is on, then the last | 506 |
483 folder name used is suggested. This is useful if you get mail from various | 507 If the derived folder does not exist, and this option is on, then |
484 people for whom you have an alias, but file them all in the same project | 508 the last folder name used is suggested. This is useful if you get |
485 folder. | 509 mail from various people for whom you have an alias, but file |
486 | 510 them all in the same project folder. |
487 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more | 511 |
488 information." | 512 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' |
513 for more information." | |
489 :type 'boolean | 514 :type 'boolean |
490 :group 'mh-folder-selection) | 515 :group 'mh-folder-selection) |
491 | 516 |
492 (defcustom mh-default-folder-prefix "" | 517 (defcustom mh-default-folder-prefix "" |
493 "*Prefix used for folder names generated from aliases. | 518 "*Prefix used for folder names generated from aliases. |
494 The prefix is used to prevent clutter in your mail directory. | 519 The prefix is used to prevent clutter in your mail directory. |
495 | 520 |
496 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' for more | 521 See `mh-prompt-for-refile-folder' and `mh-folder-from-address' |
497 information." | 522 for more information." |
498 :type 'string | 523 :type 'string |
499 :group 'mh-folder-selection) | 524 :group 'mh-folder-selection) |
500 | 525 |
501 | 526 |
502 | 527 |
503 ;;; Identities (:group 'mh-identity) | 528 ;;; Identities (:group 'mh-identity) |
504 | 529 |
505 (defcustom mh-identity-list nil | 530 (defcustom mh-identity-list nil |
506 "*List of identities. | 531 "*List of identities. |
507 | 532 |
508 To customize this option, click on the `INS' button and enter a label such as | 533 To customize this option, click on the `INS' button and enter a label |
509 `Home' or `Work'. Then click on the `INS' button with the label `Add at least | 534 such as `Home' or `Work'. Then click on the `INS' button with the |
510 one item below'. Then choose one of the items in the `Value Menu'. | 535 label `Add at least one item below'. Then choose one of the items in |
511 | 536 the `Value Menu'. |
512 You can specify an alternate `From:' header field using the `From Field' menu | 537 |
513 item. You must include a valid email address. A standard format is `First Last | 538 You can specify an alternate `From:' header field using the `From |
514 <login@@host.domain>'. If you use an initial with a period, then you must | 539 Field' menu item. You must include a valid email address. A standard |
515 quote your name as in `\"First I. Last\" <login@@host.domain>'. People usually | 540 format is `First Last <login@@host.domain>'. If you use an initial |
516 list the name of the company where they work using the `Organization Field' | 541 with a period, then you must quote your name as in `\"First I. Last\" |
517 menu item. Set any arbitrary header field and value in the `Other Field' menu | 542 <login@@host.domain>'. People usually list the name of the company |
518 item. Unless the header field is a standard one, precede the name of your | 543 where they work using the `Organization Field' menu item. Set any |
544 arbitrary header field and value in the `Other Field' menu item. | |
545 Unless the header field is a standard one, precede the name of your | |
519 field's label with `X-', as in `X-Fruit-of-the-Day:'. The value of | 546 field's label with `X-', as in `X-Fruit-of-the-Day:'. The value of |
520 `Attribution Verb' overrides the setting of | 547 `Attribution Verb' overrides the setting of |
521 `mh-extract-from-attribution-verb'. Set your signature with the `Signature' | 548 `mh-extract-from-attribution-verb'. Set your signature with the |
522 menu item. You can specify the contents of `mh-signature-file-name', a file, | 549 `Signature' menu item. You can specify the contents of |
523 or a function. Specify a different key to sign or encrypt messages with the | 550 `mh-signature-file-name', a file, or a function. Specify a different |
524 `GPG Key ID' menu item. | 551 key to sign or encrypt messages with the `GPG Key ID' menu item. |
525 | 552 |
526 You can select the identities you have added via the menu called `Identity' in | 553 You can select the identities you have added via the menu called |
527 the MH-Letter buffer. You can also use \\[mh-insert-identity]. To clear the | 554 `Identity' in the MH-Letter buffer. You can also use |
528 fields and signature added by the identity, select the `None' identity. | 555 \\[mh-insert-identity]. To clear the fields and signature added by the |
529 | 556 identity, select the `None' identity. |
530 The `Identity' menu contains two other items to save you from having to set | 557 |
531 the identity on every message. The menu item `Set Default for Session' can be | 558 The `Identity' menu contains two other items to save you from having |
532 used to set the default identity to the current identity until you exit Emacs. | 559 to set the identity on every message. The menu item `Set Default for |
533 The menu item `Save as Default' sets the option `mh-identity-default' to the | 560 Session' can be used to set the default identity to the current |
534 current identity setting. You can also customize the `mh-identity-default' | 561 identity until you exit Emacs. The menu item `Save as Default' sets |
535 option in the usual fashion." | 562 the option `mh-identity-default' to the current identity setting. You |
563 can also customize the `mh-identity-default' option in the usual | |
564 fashion." | |
536 :type '(repeat (list :tag "" | 565 :type '(repeat (list :tag "" |
537 (string :tag "Label") | 566 (string :tag "Label") |
538 (repeat :tag "Add at least one item below" | 567 (repeat :tag "Add at least one item below" |
539 (choice | 568 (choice |
540 (cons :tag "From Field" | 569 (cons :tag "From Field" |
565 :group 'mh-identity) | 594 :group 'mh-identity) |
566 | 595 |
567 (defcustom mh-auto-fields-list nil | 596 (defcustom mh-auto-fields-list nil |
568 "List of recipients for which header lines are automatically inserted. | 597 "List of recipients for which header lines are automatically inserted. |
569 | 598 |
570 This option can be used to set the identity depending on the recipient. To | 599 This option can be used to set the identity depending on the |
571 customize this option, click on the `INS' button and enter a regular | 600 recipient. To customize this option, click on the `INS' button and |
572 expression for the recipient's address. Click on the `INS' button with the | 601 enter a regular expression for the recipient's address. Click on the |
573 `Add at least one item below' label. Then choose one of the items in the | 602 `INS' button with the `Add at least one item below' label. Then choose |
574 `Value Menu'. | 603 one of the items in the `Value Menu'. |
575 | 604 |
576 The `Identity' menu item is used to select an identity from those configured | 605 The `Identity' menu item is used to select an identity from those |
577 in `mh-identity-list'. All of the information for that identity will be added | 606 configured in `mh-identity-list'. All of the information for that |
578 if the recipient matches. The `Fcc Field' menu item is used to select a folder | 607 identity will be added if the recipient matches. The `Fcc Field' menu |
579 that is used in the `Fcc:' header. When you send the message, MH will put a | 608 item is used to select a folder that is used in the `Fcc:' header. |
580 copy of your message in this folder. The `Mail-Followup-To Field' menu item is | 609 When you send the message, MH will put a copy of your message in this |
581 used to insert an `Mail-Followup-To:' header field with the recipients you | 610 folder. The `Mail-Followup-To Field' menu item is used to insert an |
582 provide. If the recipient's mail user agent supports this header field (as nmh | 611 `Mail-Followup-To:' header field with the recipients you provide. If |
583 does), then their replies will go to the addresses listed. This is useful if | 612 the recipient's mail user agent supports this header field (as nmh |
584 their replies go both to the list and to you and you don't have a mechanism to | 613 does), then their replies will go to the addresses listed. This is |
585 suppress duplicates. If you reply to someone not on the list, you must either | 614 useful if their replies go both to the list and to you and you don't |
586 remove the `Mail-Followup-To:' field, or ensure the recipient is also listed | 615 have a mechanism to suppress duplicates. If you reply to someone not |
587 there so that he receives replies to your reply. Other header fields may be | 616 on the list, you must either remove the `Mail-Followup-To:' field, or |
588 added using the `Other Field' menu item. | 617 ensure the recipient is also listed there so that he receives replies |
589 | 618 to your reply. Other header fields may be added using the `Other |
590 These fields can only be added after the recipient is known. Once the header | 619 Field' menu item. |
591 contains one or more recipients, run the \\[mh-insert-auto-fields] command or | 620 |
592 choose the `Identity -> Insert Auto Fields' menu item to insert these fields | 621 These fields can only be added after the recipient is known. Once the |
593 manually. However, you can just send the message and the fields will be added | 622 header contains one or more recipients, run the |
594 automatically. You are given a chance to see these fields and to confirm them | 623 \\[mh-insert-auto-fields] command or choose the `Identity -> Insert |
595 before the message is actually sent. You can do away with this confirmation by | 624 Auto Fields' menu item to insert these fields manually. However, you |
596 turning off the option `mh-auto-fields-prompt-flag'. | 625 can just send the message and the fields will be added automatically. |
597 | 626 You are given a chance to see these fields and to confirm them before |
598 You should avoid using the same header field in `mh-auto-fields-list' and | 627 the message is actually sent. You can do away with this confirmation |
599 `mh-identity-list' definitions that may apply to the same message as the | 628 by turning off the option `mh-auto-fields-prompt-flag'. |
600 result is undefined." | 629 |
630 You should avoid using the same header field in `mh-auto-fields-list' | |
631 and `mh-identity-list' definitions that may apply to the same message | |
632 as the result is undefined." | |
601 :type `(repeat | 633 :type `(repeat |
602 (list :tag "" | 634 (list :tag "" |
603 (string :tag "Recipient") | 635 (string :tag "Recipient") |
604 (repeat :tag "Add at least one item below" | 636 (repeat :tag "Add at least one item below" |
605 (choice | 637 (choice |
643 (":attribution-verb" . mh-identity-handler-attribution-verb) | 675 (":attribution-verb" . mh-identity-handler-attribution-verb) |
644 (":signature" . mh-identity-handler-signature) | 676 (":signature" . mh-identity-handler-signature) |
645 (":pgg-default-user-id" . mh-identity-handler-gpg-identity)) | 677 (":pgg-default-user-id" . mh-identity-handler-gpg-identity)) |
646 "Handler functions for fields in `mh-identity-list'. | 678 "Handler functions for fields in `mh-identity-list'. |
647 | 679 |
648 This option is used to change the way that fields, signatures, and | 680 This option is used to change the way that fields, signatures, |
649 attributions in `mh-identity-list' are added. To customize | 681 and attributions in `mh-identity-list' are added. To customize |
650 `mh-identity-handlers', replace the name of an existing handler function | 682 `mh-identity-handlers', replace the name of an existing handler |
651 associated with the field you want to change with the name of a function you | 683 function associated with the field you want to change with the |
652 have written. You can also click on an `INS' button and insert a field of your | 684 name of a function you have written. You can also click on an |
653 choice and the name of the function you have written to handle it. | 685 `INS' button and insert a field of your choice and the name of |
686 the function you have written to handle it. | |
654 | 687 |
655 The `Field' field can be any field that you've used in your | 688 The `Field' field can be any field that you've used in your |
656 `mh-identity-list'. The special fields `:attribution-verb', `:signature', or | 689 `mh-identity-list'. The special fields `:attribution-verb', |
657 `:pgg-default-user-id' are used for the `mh-identity-list' choices | 690 `:signature', or `:pgg-default-user-id' are used for the |
658 `Attribution Verb', `Signature', and `GPG Key ID' respectively. | 691 `mh-identity-list' choices `Attribution Verb', `Signature', and |
659 | 692 `GPG Key ID' respectively. |
660 The handler associated with the `:default' field is used when no other field | 693 |
661 matches. | 694 The handler associated with the `:default' field is used when no |
662 | 695 other field matches. |
663 The handler functions are passed two or three arguments: the FIELD itself (for | 696 |
664 example, `From'), or one of the special fields (for example, `:signature'), | 697 The handler functions are passed two or three arguments: the |
665 and the ACTION `'remove' or `'add'. If the action is `'add', an additional | 698 FIELD itself (for example, `From'), or one of the special |
666 argument containing the VALUE for the field is given." | 699 fields (for example, `:signature'), and the ACTION `'remove' or |
700 `'add'. If the action is `'add', an additional argument | |
701 containing the VALUE for the field is given." | |
667 :type '(repeat (cons (string :tag "Field") function)) | 702 :type '(repeat (cons (string :tag "Field") function)) |
668 :group 'mh-identity) | 703 :group 'mh-identity) |
669 | 704 |
670 | 705 |
671 | 706 |
672 ;;; Incorporating Your Mail (:group 'mh-inc) | 707 ;;; Incorporating Your Mail (:group 'mh-inc) |
673 | 708 |
674 (defcustom mh-inc-prog "inc" | 709 (defcustom mh-inc-prog "inc" |
675 "*Program to incorporate new mail into a folder. | 710 "*Program to incorporate new mail into a folder. |
676 | 711 |
677 This program generates a one-line summary for each of the new messages. Unless | 712 This program generates a one-line summary for each of the new |
678 it is an absolute pathname, the file is assumed to be in the `mh-progs' | 713 messages. Unless it is an absolute pathname, the file is assumed |
679 directory. You may also link a file to `inc' that uses a different format. | 714 to be in the `mh-progs' directory. You may also link a file to |
680 You'll then need to modify several scan line format variables appropriately." | 715 `inc' that uses a different format. You'll then need to modify |
716 several scan line format variables appropriately." | |
681 :type 'string | 717 :type 'string |
682 :group 'mh-inc) | 718 :group 'mh-inc) |
683 | 719 |
684 (defcustom mh-inc-spool-list nil | 720 (defcustom mh-inc-spool-list nil |
685 "*Alternate spool files. | 721 "*Alternate spool files. |
686 | 722 |
687 You can use the `mh-inc-spool-list' variable to direct MH-E to retrieve mail | 723 You can use the `mh-inc-spool-list' variable to direct MH-E to |
688 from arbitrary spool files other than your system mailbox, file it in folders | 724 retrieve mail from arbitrary spool files other than your system |
689 other than your `+inbox', and assign key bindings to incorporate this mail. | 725 mailbox, file it in folders other than your `+inbox', and assign |
690 | 726 key bindings to incorporate this mail. |
691 Suppose you are subscribed to the `mh-e-devel' mailing list and you use | 727 |
692 `procmail' to filter this mail into `~/mail/mh-e' with the following recipe in | 728 Suppose you are subscribed to the `mh-e-devel' mailing list and |
693 `.procmailrc': | 729 you use `procmail' to filter this mail into `~/mail/mh-e' with |
730 the following recipe in `.procmailrc': | |
694 | 731 |
695 MAILDIR=$HOME/mail | 732 MAILDIR=$HOME/mail |
696 :0: | 733 :0: |
697 * ^From mh-e-devel-admin@stop.mail-abuse.org | 734 * ^From mh-e-devel-admin@stop.mail-abuse.org |
698 mh-e | 735 mh-e |
699 | 736 |
700 In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m' | 737 In order to incorporate `~/mail/mh-e' into `+mh-e' with an `I m' |
701 \(`mh-inc-spool-mh-e'\) command, customize this option, and click on the `INS' | 738 \(`mh-inc-spool-mh-e'\) command, customize this option, and click |
702 button. Enter a `Spool File' of `~/mail/mh-e', a `Folder' of `mh-e', and a | 739 on the `INS' button. Enter a `Spool File' of `~/mail/mh-e', a |
703 `Key Binding' of `m'. | 740 `Folder' of `mh-e', and a `Key Binding' of `m'. |
704 | 741 |
705 You can use `xbuffy' to automate the incorporation of this mail using the | 742 You can use `xbuffy' to automate the incorporation of this mail |
706 `gnudoit' command in the `gnuserv' package as follows: | 743 using the `gnudoit' command in the `gnuserv' package as follows: |
707 | 744 |
708 box ~/mail/mh-e | 745 box ~/mail/mh-e |
709 title mh-e | 746 title mh-e |
710 origMode | 747 origMode |
711 polltime 10 | 748 polltime 10 |
721 | 758 |
722 ;;; Searching (:group 'mh-index) | 759 ;;; Searching (:group 'mh-index) |
723 | 760 |
724 (defcustom mh-index-program nil | 761 (defcustom mh-index-program nil |
725 "Indexing program that MH-E shall use. | 762 "Indexing program that MH-E shall use. |
726 The default setting of this option is `Auto-detect' which means that MH-E will | 763 |
727 automatically choose one of swish++, swish-e, mairix, namazu, pick and grep in | 764 The default setting of this option is `Auto-detect' which means |
728 that order. If, for example, you have both swish++ and mairix installed and | 765 that MH-E will automatically choose one of swish++, swish-e, |
729 you want to use mairix, then you can set this option to `mairix'. | 766 mairix, namazu, pick and grep in that order. If, for example, you |
730 | 767 have both swish++ and mairix installed and you want to use |
731 More information about setting up an indexing program to use with MH-E can be | 768 mairix, then you can set this option to `mairix'. |
732 found in the documentation of `mh-index-search'." | 769 |
770 More information about setting up an indexing program to use with | |
771 MH-E can be found in the documentation of `mh-index-search'." | |
733 :type '(choice (const :tag "Auto-detect" nil) | 772 :type '(choice (const :tag "Auto-detect" nil) |
734 (const :tag "swish++" swish++) | 773 (const :tag "swish++" swish++) |
735 (const :tag "swish-e" swish) | 774 (const :tag "swish-e" swish) |
736 (const :tag "mairix" mairix) | 775 (const :tag "mairix" mairix) |
737 (const :tag "namazu" namazu) | 776 (const :tag "namazu" namazu) |
750 (defvar mh-junk-function-alist | 789 (defvar mh-junk-function-alist |
751 '((spamassassin mh-spamassassin-blacklist mh-spamassassin-whitelist) | 790 '((spamassassin mh-spamassassin-blacklist mh-spamassassin-whitelist) |
752 (bogofilter mh-bogofilter-blacklist mh-bogofilter-whitelist) | 791 (bogofilter mh-bogofilter-blacklist mh-bogofilter-whitelist) |
753 (spamprobe mh-spamprobe-blacklist mh-spamprobe-whitelist)) | 792 (spamprobe mh-spamprobe-blacklist mh-spamprobe-whitelist)) |
754 "Available choices of spam programs to use. | 793 "Available choices of spam programs to use. |
755 This is an alist. For each element there are functions that blacklist a message | 794 |
756 as spam and whitelist a message incorrectly classified as spam.") | 795 This is an alist. For each element there are functions that |
796 blacklist a message as spam and whitelist a message incorrectly | |
797 classified as spam.") | |
757 | 798 |
758 (defun mh-junk-choose (symbol value) | 799 (defun mh-junk-choose (symbol value) |
759 "Choose spam program to use. | 800 "Choose spam program to use. |
760 The function is always called with SYMBOL bound to `mh-junk-program' and VALUE | 801 |
761 bound to the new value of `mh-junk-program'. The function sets the variable | 802 The function is always called with SYMBOL bound to |
803 `mh-junk-program' and VALUE bound to the new value of | |
804 `mh-junk-program'. The function sets the variable | |
762 `mh-junk-choice' in addition to `mh-junk-program'." | 805 `mh-junk-choice' in addition to `mh-junk-program'." |
763 (set symbol value) | 806 (set symbol value) |
764 (setq mh-junk-choice | 807 (setq mh-junk-choice |
765 (or value | 808 (or value |
766 (loop for element in mh-junk-function-alist | 809 (loop for element in mh-junk-function-alist |
768 finally return (car element))))) | 811 finally return (car element))))) |
769 | 812 |
770 ;; User customizable variables | 813 ;; User customizable variables |
771 (defcustom mh-junk-background nil | 814 (defcustom mh-junk-background nil |
772 "If on, spam programs are run in background. | 815 "If on, spam programs are run in background. |
773 By default, the programs are run in the foreground, but this can be slow when | 816 |
774 junking large numbers of messages. If you have enough memory or don't junk | 817 By default, the programs are run in the foreground, but this can |
775 that many messages at the same time, you might try turning on this option." | 818 be slow when junking large numbers of messages. If you have |
819 enough memory or don't junk that many messages at the same time, | |
820 you might try turning on this option." | |
776 :type '(choice (const :tag "Off" nil) | 821 :type '(choice (const :tag "Off" nil) |
777 (const :tag "On" 0)) | 822 (const :tag "On" 0)) |
778 :group 'mh-junk) | 823 :group 'mh-junk) |
779 | 824 |
780 (defcustom mh-junk-disposition nil | 825 (defcustom mh-junk-disposition nil |
784 :group 'mh-junk) | 829 :group 'mh-junk) |
785 | 830 |
786 (defcustom mh-junk-program nil | 831 (defcustom mh-junk-program nil |
787 "Spam program that MH-E should use. | 832 "Spam program that MH-E should use. |
788 | 833 |
789 The default setting of this option is \"Auto-detect\" which means that MH-E | 834 The default setting of this option is \"Auto-detect\" which means |
790 will automatically choose one of SpamAssassin, bogofilter, or SpamProbe in | 835 that MH-E will automatically choose one of SpamAssassin, |
791 that order. If, for example, you have both SpamAssassin and bogofilter | 836 bogofilter, or SpamProbe in that order. If, for example, you have |
792 installed and you want to use bogofilter, then you can set this option to | 837 both SpamAssassin and bogofilter installed and you want to use |
793 \"Bogofilter\"." | 838 bogofilter, then you can set this option to \"Bogofilter\"." |
794 :type '(choice (const :tag "Auto-detect" nil) | 839 :type '(choice (const :tag "Auto-detect" nil) |
795 (const :tag "SpamAssassin" spamassassin) | 840 (const :tag "SpamAssassin" spamassassin) |
796 (const :tag "Bogofilter" bogofilter) | 841 (const :tag "Bogofilter" bogofilter) |
797 (const :tag "SpamProbe" spamprobe)) | 842 (const :tag "SpamProbe" spamprobe)) |
798 :set 'mh-junk-choose | 843 :set 'mh-junk-choose |
802 | 847 |
803 ;;; Editing a Draft (:group 'mh-letter) | 848 ;;; Editing a Draft (:group 'mh-letter) |
804 | 849 |
805 (defcustom mh-compose-insertion (if (locate-library "mml") 'mml 'mh) | 850 (defcustom mh-compose-insertion (if (locate-library "mml") 'mml 'mh) |
806 "Type of tags used when composing MIME messages. | 851 "Type of tags used when composing MIME messages. |
807 In addition to MH-style directives, MH-E also supports MML (MIME Meta | 852 |
808 Language) tags. (see Info node `(emacs-mime)Composing'). This option can be | 853 In addition to MH-style directives, MH-E also supports MML (MIME |
809 used to choose between them. By default, this option is set to \"MML\" if it | 854 Meta Language) tags. (see Info node `(emacs-mime)Composing'). |
810 is supported since it provides a lot more functionality. This option can also | 855 This option can be used to choose between them. By default, this |
811 be set to \"MH\" if MH-style directives are preferred." | 856 option is set to \"MML\" if it is supported since it provides a |
857 lot more functionality. This option can also be set to \"MH\" if | |
858 MH-style directives are preferred." | |
812 :type '(choice (const :tag "MML" mml) | 859 :type '(choice (const :tag "MML" mml) |
813 (const :tag "MH" mh)) | 860 (const :tag "MH" mh)) |
814 :group 'mh-letter) | 861 :group 'mh-letter) |
815 | 862 |
816 (defcustom mh-compose-skipped-header-fields | 863 (defcustom mh-compose-skipped-header-fields |
825 :type 'boolean | 872 :type 'boolean |
826 :group 'mh-letter) | 873 :group 'mh-letter) |
827 | 874 |
828 (defcustom mh-delete-yanked-msg-window-flag nil | 875 (defcustom mh-delete-yanked-msg-window-flag nil |
829 "*Non-nil means delete any window displaying the message. | 876 "*Non-nil means delete any window displaying the message. |
830 This deletes the window containing the original message after yanking it with | 877 |
831 \\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make more room on your screen for | 878 This deletes the window containing the original message after |
832 your reply." | 879 yanking it with \\<mh-letter-mode-map>\\[mh-yank-cur-msg] to make |
880 more room on your screen for your reply." | |
833 :type 'boolean | 881 :type 'boolean |
834 :group 'mh-letter) | 882 :group 'mh-letter) |
835 | 883 |
836 (defcustom mh-extract-from-attribution-verb "wrote:" | 884 (defcustom mh-extract-from-attribution-verb "wrote:" |
837 "*Verb to use for attribution when a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. | 885 "*Verb to use for attribution when a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. |
838 The attribution consists of the sender's name and email address followed by | 886 |
839 the content of this option. This option can be set to \"wrote:\", \"a | 887 The attribution consists of the sender's name and email address |
840 écrit:\", and \"schrieb:\". You can also use the \"Custom String\" menu item | 888 followed by the content of this option. This option can be set to |
841 to enter your own verb." | 889 \"wrote:\", \"a écrit:\", and \"schrieb:\". You can also use the |
890 \"Custom String\" menu item to enter your own verb." | |
842 :type '(choice (const "wrote:") | 891 :type '(choice (const "wrote:") |
843 (const "a écrit:") | 892 (const "a écrit:") |
844 (const "schrieb:") | 893 (const "schrieb:") |
845 (string :tag "Custom String")) | 894 (string :tag "Custom String")) |
846 :group 'mh-letter) | 895 :group 'mh-letter) |
847 | 896 |
848 (defcustom mh-ins-buf-prefix "> " | 897 (defcustom mh-ins-buf-prefix "> " |
849 "*String to put before each line of a yanked or inserted message. | 898 "*String to put before each line of a yanked or inserted message. |
850 The prefix \"> \" is the default setting of this option. I suggest that you | 899 |
851 not modify this option since it is used by many mailers and news readers: | 900 The prefix \"> \" is the default setting of this option. I |
852 messages are far easier to read if several included messages have all been | 901 suggest that you not modify this option since it is used by many |
853 indented by the same string. | 902 mailers and news readers: messages are far easier to read if |
854 | 903 several included messages have all been indented by the same |
855 This prefix is not inserted if you use one of the supercite flavors of | 904 string. |
856 `mh-yank-behavior' or you have added a `mail-citation-hook'." | 905 |
906 This prefix is not inserted if you use one of the supercite | |
907 flavors of `mh-yank-behavior' or you have added a | |
908 `mail-citation-hook'." | |
857 :type 'string | 909 :type 'string |
858 :group 'mh-letter) | 910 :group 'mh-letter) |
859 | 911 |
860 (defcustom mh-letter-complete-function 'ispell-complete-word | 912 (defcustom mh-letter-complete-function 'ispell-complete-word |
861 "*Function to call when completing outside of address or folder fields. | 913 "*Function to call when completing outside of address or folder fields. |
862 In the body of the message, \\<mh-letter-mode-map>\\[mh-letter-complete] runs | 914 |
863 this function, which is set to \"ispell-complete-word\" by default." | 915 In the body of the message, |
916 \\<mh-letter-mode-map>\\[mh-letter-complete] runs this function, | |
917 which is set to \"ispell-complete-word\" by default." | |
864 :type '(choice function (const nil)) | 918 :type '(choice function (const nil)) |
865 :group 'mh-letter) | 919 :group 'mh-letter) |
866 | 920 |
867 (defcustom mh-letter-fill-column 72 | 921 (defcustom mh-letter-fill-column 72 |
868 "*Fill column to use in MH Letter mode. | 922 "*Fill column to use in MH Letter mode. |
869 By default, this option is 72 to allow others to quote your message without | 923 |
870 line wrapping." | 924 By default, this option is 72 to allow others to quote your |
925 message without line wrapping." | |
871 :type 'integer | 926 :type 'integer |
872 :group 'mh-letter) | 927 :group 'mh-letter) |
873 | 928 |
874 (defcustom mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none") | 929 (defcustom mh-mml-method-default (if mh-pgp-support-flag "pgpmime" "none") |
875 "Default method to use in security tags. | 930 "Default method to use in security tags. |
876 This option is used to select between a variety of mail security mechanisms. | 931 |
877 The default is \"PGP (MIME)\" if it is supported\; otherwise, the default is | 932 This option is used to select between a variety of mail security |
878 \"None\". Other mechanisms include vanilla \"PGP\" and \"S/MIME\". | 933 mechanisms. The default is \"PGP (MIME)\" if it is supported\; |
879 | 934 otherwise, the default is \"None\". Other mechanisms include |
880 The `pgg' customization group may have some settings which may interest you | 935 vanilla \"PGP\" and \"S/MIME\". |
881 \(see Info node `(pgg)'). | 936 |
882 | 937 The `pgg' customization group may have some settings which may |
883 In particular, I set the option `pgg-encrypt-for-me' to t so that all messages | 938 interest you \(see Info node `(pgg)'). |
884 I encrypt are encrypted with my public key as well. If you keep a copy of all | 939 |
885 of your outgoing mail with a \"Fcc:\" header field, this setting is vital so | 940 In particular, I set the option `pgg-encrypt-for-me' to t so that all |
886 that you can read the mail you write!" | 941 messages I encrypt are encrypted with my public key as well. If you |
942 keep a copy of all of your outgoing mail with a \"Fcc:\" header field, | |
943 this setting is vital so that you can read the mail you write!" | |
887 :type '(choice (const :tag "PGP (MIME)" "pgpmime") | 944 :type '(choice (const :tag "PGP (MIME)" "pgpmime") |
888 (const :tag "PGP" "pgp") | 945 (const :tag "PGP" "pgp") |
889 (const :tag "S/MIME" "smime") | 946 (const :tag "S/MIME" "smime") |
890 (const :tag "None" "none")) | 947 (const :tag "None" "none")) |
891 :group 'mh-letter) | 948 :group 'mh-letter) |
912 :type 'file | 969 :type 'file |
913 :group 'mh-letter) | 970 :group 'mh-letter) |
914 | 971 |
915 (defcustom mh-signature-separator-flag t | 972 (defcustom mh-signature-separator-flag t |
916 "*Non-nil means a signature separator should be inserted. | 973 "*Non-nil means a signature separator should be inserted. |
917 It is not recommended that you change this option since various mail user | 974 |
918 agents, including MH-E, use the separator to present the signature | 975 It is not recommended that you change this option since various |
919 differently, and to suppress the signature when replying or yanking a letter | 976 mail user agents, including MH-E, use the separator to present |
920 into a draft." | 977 the signature differently, and to suppress the signature when |
978 replying or yanking a letter into a draft." | |
921 :type 'boolean | 979 :type 'boolean |
922 :group 'mh-letter) | 980 :group 'mh-letter) |
923 | 981 |
924 (defcustom mh-x-face-file "~/.face" | 982 (defcustom mh-x-face-file "~/.face" |
925 "*File containing face header field to insert in outgoing mail. | 983 "*File containing face header field to insert in outgoing mail. |
926 | 984 |
927 If the file starts with either of the strings \"X-Face:\", \"Face:\" or | 985 If the file starts with either of the strings \"X-Face:\", \"Face:\" |
928 \"X-Image-URL:\" then the contents are added to the message header verbatim. | 986 or \"X-Image-URL:\" then the contents are added to the message header |
929 Otherwise it is assumed that the file contains the value of the \"X-Face:\" | 987 verbatim. Otherwise it is assumed that the file contains the value of |
930 header field. | 988 the \"X-Face:\" header field. |
931 | 989 |
932 The \"X-Face:\" header field, which is a low-resolution, black | 990 The \"X-Face:\" header field, which is a low-resolution, black and |
933 and white image, can be generated using the \"compface\" command | 991 white image, can be generated using the \"compface\" command (see URL |
934 \(see URL `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z'). | 992 `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.Z'). The |
935 The \"Online X-Face Converter\" is a useful resource for quick | 993 \"Online X-Face Converter\" is a useful resource for quick conversion |
936 conversion of images into \"X-Face:\" header fields (see URL | 994 of images into \"X-Face:\" header fields (see URL |
937 `http://www.dairiki.org/xface/'). | 995 `http://www.dairiki.org/xface/'). |
938 | 996 |
939 Use the \"make-face\" script to convert a JPEG image to the | 997 Use the \"make-face\" script to convert a JPEG image to the higher |
940 higher resolution, color, \"Face:\" header field (see URL | 998 resolution, color, \"Face:\" header field (see URL |
941 `http://quimby.gnus.org/circus/face/make-face'). | 999 `http://quimby.gnus.org/circus/face/make-face'). |
942 | 1000 |
943 The URL of any image can be used for the \"X-Image-URL:\" field and no | 1001 The URL of any image can be used for the \"X-Image-URL:\" field and no |
944 processing of the image is required. | 1002 processing of the image is required. |
945 | 1003 |
946 To prevent the setting of any of these header fields, either set | 1004 To prevent the setting of any of these header fields, either set |
947 `mh-x-face-file' to nil, or simply ensure that the file defined by this option | 1005 `mh-x-face-file' to nil, or simply ensure that the file defined by |
948 doesn't exist." | 1006 this option doesn't exist." |
949 :type 'file | 1007 :type 'file |
950 :group 'mh-letter) | 1008 :group 'mh-letter) |
951 | 1009 |
952 (defcustom mh-yank-behavior 'attribution | 1010 (defcustom mh-yank-behavior 'attribution |
953 "*Controls which part of a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. | 1011 "*Controls which part of a message is yanked by \\<mh-letter-mode-map>\\[mh-yank-cur-msg]. |
954 | 1012 |
955 To include the entire message, including the entire header, use \"Body and | 1013 To include the entire message, including the entire header, use \"Body |
956 Header\". Use \"Body\" to yank just the body without the header. To yank only | 1014 and Header\". Use \"Body\" to yank just the body without the header. |
957 the portion of the message following the point, set this option to \"Below | 1015 To yank only the portion of the message following the point, set this |
958 Point\". | 1016 option to \"Below Point\". |
959 | 1017 |
960 Choose \"Invoke supercite\" to pass the entire message and header through | 1018 Choose \"Invoke supercite\" to pass the entire message and header |
961 supercite. | 1019 through supercite. |
962 | 1020 |
963 If the \"Body With Attribution\" setting is used, then the message minus the | 1021 If the \"Body With Attribution\" setting is used, then the message |
964 header is yanked and a simple attribution line is added at the top using the | 1022 minus the header is yanked and a simple attribution line is added at |
965 value of the `mh-extract-from-attribution-verb' option. This is the default. | 1023 the top using the value of the `mh-extract-from-attribution-verb' |
966 | 1024 option. This is the default. |
967 If the \"Invoke supercite\" or \"Body With Attribution\" settings are used, | 1025 |
968 the \"-noformat\" argument is passed to the \"repl\" program to override a | 1026 If the \"Invoke supercite\" or \"Body With Attribution\" settings are |
969 \"-filter\" or \"-format\" argument. These settings also have | 1027 used, the \"-noformat\" argument is passed to the \"repl\" program to |
970 \"Automatically\" variants that perform the action automatically when you | 1028 override a \"-filter\" or \"-format\" argument. These settings also |
971 reply so that you don't need to use \\[mh-yank-cur-msg] at all. Note that this | 1029 have \"Automatically\" variants that perform the action automatically |
972 automatic action is only performed if the show buffer matches the message | 1030 when you reply so that you don't need to use \\[mh-yank-cur-msg] at |
973 being replied to. People who use the automatic variants tend to turn on the | 1031 all. Note that this automatic action is only performed if the show |
974 `mh-delete-yanked-msg-window-flag' option as well so that the show window is | 1032 buffer matches the message being replied to. People who use the |
975 never displayed. | 1033 automatic variants tend to turn on the |
976 | 1034 `mh-delete-yanked-msg-window-flag' option as well so that the show |
977 If the show buffer has a region, the `mh-yank-behavior' option is ignored | 1035 window is never displayed. |
978 unless its value is one of Attribution variants in which case the attribution | 1036 |
979 is added to the yanked region. | 1037 If the show buffer has a region, the `mh-yank-behavior' option is |
1038 ignored unless its value is one of Attribution variants in which case | |
1039 the attribution is added to the yanked region. | |
980 | 1040 |
981 If this option is set to one of the supercite flavors, the hook | 1041 If this option is set to one of the supercite flavors, the hook |
982 `mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not inserted." | 1042 `mail-citation-hook' is ignored and `mh-ins-buf-prefix' is not |
1043 inserted." | |
983 :type '(choice (const :tag "Body and Header" t) | 1044 :type '(choice (const :tag "Body and Header" t) |
984 (const :tag "Body" body) | 1045 (const :tag "Body" body) |
985 (const :tag "Below Point" nil) | 1046 (const :tag "Below Point" nil) |
986 (const :tag "Invoke supercite" supercite) | 1047 (const :tag "Invoke supercite" supercite) |
987 (const :tag "Invoke supercite, Automatically" autosupercite) | 1048 (const :tag "Invoke supercite, Automatically" autosupercite) |
994 | 1055 |
995 ;;; Ranges (:group 'mh-ranges) | 1056 ;;; Ranges (:group 'mh-ranges) |
996 | 1057 |
997 (defcustom mh-interpret-number-as-range-flag t | 1058 (defcustom mh-interpret-number-as-range-flag t |
998 "*Non-nil means interpret a number as a range. | 1059 "*Non-nil means interpret a number as a range. |
999 Since one of the most frequent ranges used is \"last:N\", MH-E will interpret | 1060 |
1000 input such as \"200\" as \"last:200\" if this option is on (which is the | 1061 Since one of the most frequent ranges used is \"last:N\", MH-E |
1001 default). If you need to scan just the message 200, then use the range | 1062 will interpret input such as \"200\" as \"last:200\" if this |
1002 \"200:200\"." | 1063 option is on (which is the default). If you need to scan just the |
1064 message 200, then use the range \"200:200\"." | |
1003 :type 'boolean | 1065 :type 'boolean |
1004 :group 'mh-ranges) | 1066 :group 'mh-ranges) |
1005 | 1067 |
1006 | 1068 |
1007 | 1069 |
1010 ;; Forward definition to avoid compiler and runtime error. | 1072 ;; Forward definition to avoid compiler and runtime error. |
1011 (defvar mh-scan-format-file t) | 1073 (defvar mh-scan-format-file t) |
1012 | 1074 |
1013 (defun mh-adaptive-cmd-note-flag-check (symbol value) | 1075 (defun mh-adaptive-cmd-note-flag-check (symbol value) |
1014 "Check if desired setting is legal. | 1076 "Check if desired setting is legal. |
1015 Throw an error if user tries to turn on `mh-adaptive-cmd-note-flag' when | 1077 Throw an error if user tries to turn on |
1016 `mh-scan-format-file' isn't t. Otherwise, set SYMBOL to VALUE." | 1078 `mh-adaptive-cmd-note-flag' when `mh-scan-format-file' isn't t. |
1079 Otherwise, set SYMBOL to VALUE." | |
1017 (if (and value | 1080 (if (and value |
1018 (not (eq mh-scan-format-file t))) | 1081 (not (eq mh-scan-format-file t))) |
1019 (error "%s %s" "Can't turn on unless mh-scan-format-file" | 1082 (error "%s %s" "Can't turn on unless mh-scan-format-file" |
1020 "is set to \"Use MH-E scan Format\"") | 1083 "is set to \"Use MH-E scan Format\"") |
1021 (set-default symbol value))) | 1084 (set-default symbol value))) |
1022 | 1085 |
1023 (defun mh-scan-format-file-check (symbol value) | 1086 (defun mh-scan-format-file-check (symbol value) |
1024 "Check if desired setting is legal. | 1087 "Check if desired setting is legal. |
1025 Throw an error if user tries to set `mh-scan-format-file' to anything but t | 1088 Throw an error if user tries to set `mh-scan-format-file' to |
1026 when `mh-adaptive-cmd-note-flag' is on. Otherwise, set SYMBOL to VALUE." | 1089 anything but t when `mh-adaptive-cmd-note-flag' is on. Otherwise, |
1090 set SYMBOL to VALUE." | |
1027 (if (and (not (eq value t)) | 1091 (if (and (not (eq value t)) |
1028 (eq mh-adaptive-cmd-note-flag t)) | 1092 (eq mh-adaptive-cmd-note-flag t)) |
1029 (error "%s %s" "You must turn off mh-adaptive-cmd-note-flag" | 1093 (error "%s %s" "You must turn off mh-adaptive-cmd-note-flag" |
1030 "unless you use \"Use MH-E scan Format\"") | 1094 "unless you use \"Use MH-E scan Format\"") |
1031 (set-default symbol value))) | 1095 (set-default symbol value))) |
1032 | 1096 |
1033 (defcustom mh-adaptive-cmd-note-flag t | 1097 (defcustom mh-adaptive-cmd-note-flag t |
1034 "*Non-nil means that the message number width is determined dynamically. | 1098 "*Non-nil means that the message number width is determined dynamically. |
1035 If you've created your own format to handle long message numbers, you'll be | 1099 |
1036 pleased to know you no longer need it since MH-E adapts its internal format | 1100 If you've created your own format to handle long message numbers, |
1037 based upon the largest message number if this option is on (the default). | 1101 you'll be pleased to know you no longer need it since MH-E adapts its |
1038 This option may only be turned on when `mh-scan-format-file' is set to \"Use | 1102 internal format based upon the largest message number if this option |
1039 MH-E scan Format\". | 1103 is on (the default). This option may only be turned on when |
1040 | 1104 `mh-scan-format-file' is set to \"Use MH-E scan Format\". |
1041 If you prefer fixed-width message numbers, turn off this option and call | 1105 |
1042 `mh-set-cmd-note' with the width specified by your format file | 1106 If you prefer fixed-width message numbers, turn off this option and |
1043 \(see `mh-scan-format-file'). For example, the default width is 4, so you would | 1107 call `mh-set-cmd-note' with the width specified by your format file |
1044 use \"(mh-set-cmd-note 4)\"." | 1108 \(see `mh-scan-format-file'). For example, the default width is 4, so |
1109 you would use \"(mh-set-cmd-note 4)\"." | |
1045 :type 'boolean | 1110 :type 'boolean |
1046 :group 'mh-scan-line-formats | 1111 :group 'mh-scan-line-formats |
1047 :set 'mh-adaptive-cmd-note-flag-check) | 1112 :set 'mh-adaptive-cmd-note-flag-check) |
1048 | 1113 |
1049 (defcustom mh-scan-format-file t | 1114 (defcustom mh-scan-format-file t |
1050 "Specifies the format file to pass to the scan program. | 1115 "Specifies the format file to pass to the scan program. |
1051 | 1116 |
1052 The default setting for this option is \"Use MH-E scan Format\". This means | 1117 The default setting for this option is \"Use MH-E scan Format\". This |
1053 that the format string will be taken from the either `mh-scan-format-mh' or | 1118 means that the format string will be taken from the either |
1054 `mh-scan-format-nmh' depending on whether MH or nmh (or GNU mailutils) is in | 1119 `mh-scan-format-mh' or `mh-scan-format-nmh' depending on whether MH or |
1055 use. This setting also enables you to turn on the `mh-adaptive-cmd-note-flag' | 1120 nmh (or GNU mailutils) is in use. This setting also enables you to |
1056 option. | 1121 turn on the `mh-adaptive-cmd-note-flag' option. |
1057 | 1122 |
1058 You can also set this option to \"Use Default scan Format\" to get the | 1123 You can also set this option to \"Use Default scan Format\" to get the |
1059 same output as you would get if you ran \"scan\" from the shell. If you have a | 1124 same output as you would get if you ran \"scan\" from the shell. If |
1060 format file that you want MH-E to use but not MH, you can set this option to | 1125 you have a format file that you want MH-E to use but not MH, you can |
1061 \"Specify a scan Format File\" and enter the name of your format file. | 1126 set this option to \"Specify a scan Format File\" and enter the name |
1062 | 1127 of your format file. |
1063 If you change the format of the scan lines you'll need to tell MH-E how to | 1128 |
1064 parse the new format. As you will see, quite a lot of variables are involved | 1129 If you change the format of the scan lines you'll need to tell MH-E |
1065 to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to obtain a list of these | 1130 how to parse the new format. As you will see, quite a lot of variables |
1066 variables. You will also have to call `mh-set-cmd-note' if your notations are | 1131 are involved to do that. Use \"\\[apropos] RET mh-scan.*regexp\" to |
1067 not in column 4 (columns in Emacs start with 0)." | 1132 obtain a list of these variables. You will also have to call |
1133 `mh-set-cmd-note' if your notations are not in column 4 (columns in | |
1134 Emacs start with 0)." | |
1068 :type '(choice (const :tag "Use MH-E scan Format" t) | 1135 :type '(choice (const :tag "Use MH-E scan Format" t) |
1069 (const :tag "Use Default scan Format" nil) | 1136 (const :tag "Use Default scan Format" nil) |
1070 (file :tag "Specify a scan Format File")) | 1137 (file :tag "Specify a scan Format File")) |
1071 :group 'mh-scan-line-formats | 1138 :group 'mh-scan-line-formats |
1072 :set 'mh-scan-format-file-check) | 1139 :set 'mh-scan-format-file-check) |
1073 | 1140 |
1074 (defcustom mh-scan-prog "scan" | 1141 (defcustom mh-scan-prog "scan" |
1075 "*Program used to scan messages. | 1142 "*Program used to scan messages. |
1076 The name of the program that generates a listing of one line per message is | 1143 |
1077 held in this option. Unless this variable contains an absolute pathname, it is | 1144 The name of the program that generates a listing of one line per |
1078 assumed to be in the `mh-progs' directory. You may link another program to | 1145 message is held in this option. Unless this variable contains an |
1079 `scan' (see \"mh-profile(5)\") to produce a different type of listing." | 1146 absolute pathname, it is assumed to be in the `mh-progs' |
1147 directory. You may link another program to `scan' (see | |
1148 \"mh-profile(5)\") to produce a different type of listing." | |
1080 :type 'string | 1149 :type 'string |
1081 :group 'mh-scan-line-formats) | 1150 :group 'mh-scan-line-formats) |
1082 (make-variable-buffer-local 'mh-scan-prog) | 1151 (make-variable-buffer-local 'mh-scan-prog) |
1083 | 1152 |
1084 | 1153 |
1086 ;;; Sending Mail (:group 'mh-sending-mail) | 1155 ;;; Sending Mail (:group 'mh-sending-mail) |
1087 | 1156 |
1088 (defcustom mh-compose-forward-as-mime-flag t | 1157 (defcustom mh-compose-forward-as-mime-flag t |
1089 "*Non-nil means that messages are forwarded as attachments. | 1158 "*Non-nil means that messages are forwarded as attachments. |
1090 | 1159 |
1091 By default, this option is on which means that the forwarded messages are | 1160 By default, this option is on which means that the forwarded |
1092 included as attachments. If you would prefer to forward your messages verbatim | 1161 messages are included as attachments. If you would prefer to |
1093 \(as text, inline), then turn off this option. Forwarding messages verbatim | 1162 forward your messages verbatim (as text, inline), then turn off |
1094 works well for short, textual messages, but your recipient won't be able to | 1163 this option. Forwarding messages verbatim works well for short, |
1095 view any non-textual attachments that were in the forwarded message. Be aware | 1164 textual messages, but your recipient won't be able to view any |
1096 that if you have \"forw: -mime\" in your MH profile, then forwarded messages | 1165 non-textual attachments that were in the forwarded message. Be |
1097 will always be included as attachments regardless of the settings of this | 1166 aware that if you have \"forw: -mime\" in your MH profile, then |
1098 option." | 1167 forwarded messages will always be included as attachments |
1168 regardless of the settings of this option." | |
1099 :type 'boolean | 1169 :type 'boolean |
1100 :group 'mh-sending-mail) | 1170 :group 'mh-sending-mail) |
1101 | 1171 |
1102 (defcustom mh-compose-letter-function nil | 1172 (defcustom mh-compose-letter-function nil |
1103 "Invoked when starting a new draft. | 1173 "Invoked when starting a new draft. |
1104 | 1174 |
1105 However, it is the last function called before you edit your message. The | 1175 However, it is the last function called before you edit your |
1106 consequence of this is that you can write a function to write and send the | 1176 message. The consequence of this is that you can write a function |
1107 message for you. This function is passed three arguments: the contents of the | 1177 to write and send the message for you. This function is passed |
1108 TO, SUBJECT, and CC header fields." | 1178 three arguments: the contents of the TO, SUBJECT, and CC header |
1179 fields." | |
1109 :type '(choice (const nil) function) | 1180 :type '(choice (const nil) function) |
1110 :group 'mh-sending-mail) | 1181 :group 'mh-sending-mail) |
1111 | 1182 |
1112 (defcustom mh-compose-prompt-flag nil | 1183 (defcustom mh-compose-prompt-flag nil |
1113 "*Non-nil means prompt for header fields when composing a new draft." | 1184 "*Non-nil means prompt for header fields when composing a new draft." |
1115 :group 'mh-sending-mail) | 1186 :group 'mh-sending-mail) |
1116 | 1187 |
1117 (defcustom mh-forward-subject-format "%s: %s" | 1188 (defcustom mh-forward-subject-format "%s: %s" |
1118 "*Format string for forwarded message subject. | 1189 "*Format string for forwarded message subject. |
1119 | 1190 |
1120 This option is a string which includes two escapes (\"%s\"). The first \"%s\" | 1191 This option is a string which includes two escapes (\"%s\"). The |
1121 is replaced with the sender of the original message, and the second one is | 1192 first \"%s\" is replaced with the sender of the original message, |
1122 replaced with the original \"Subject:\"." | 1193 and the second one is replaced with the original \"Subject:\"." |
1123 :type 'string | 1194 :type 'string |
1124 :group 'mh-sending-mail) | 1195 :group 'mh-sending-mail) |
1125 | 1196 |
1126 (defcustom mh-insert-x-mailer-flag t | 1197 (defcustom mh-insert-x-mailer-flag t |
1127 "*Non-nil means append an \"X-Mailer:\" header field to the header. | 1198 "*Non-nil means append an \"X-Mailer:\" header field to the header. |
1128 | 1199 |
1129 This header field includes the version of MH-E and Emacs that you are using. | 1200 This header field includes the version of MH-E and Emacs that you |
1130 If you don't want to participate in our marketing, you can turn this option | 1201 are using. If you don't want to participate in our marketing, you |
1131 off." | 1202 can turn this option off." |
1132 :type 'boolean | 1203 :type 'boolean |
1133 :group 'mh-sending-mail) | 1204 :group 'mh-sending-mail) |
1134 | 1205 |
1135 (defcustom mh-redist-full-contents-flag nil | 1206 (defcustom mh-redist-full-contents-flag nil |
1136 "*Non-nil means the \"dist\" command needs entire letter for redistribution. | 1207 "*Non-nil means the \"dist\" command needs entire letter for redistribution. |
1137 | 1208 |
1138 This option must be turned on if \"dist\" requires the whole letter for | 1209 This option must be turned on if \"dist\" requires the whole |
1139 redistribution, which is the case if \"send\" is compiled with the BERK option | 1210 letter for redistribution, which is the case if \"send\" is |
1140 \(which many people abhor). If you find that MH will not allow you to | 1211 compiled with the BERK option (which many people abhor). If you |
1141 redistribute a message that has been redistributed before, turn off this | 1212 find that MH will not allow you to redistribute a message that |
1142 option." | 1213 has been redistributed before, turn off this option." |
1143 :type 'boolean | 1214 :type 'boolean |
1144 :group 'mh-sending-mail) | 1215 :group 'mh-sending-mail) |
1145 | 1216 |
1146 (defcustom mh-reply-default-reply-to nil | 1217 (defcustom mh-reply-default-reply-to nil |
1147 "*Sets the person or persons to whom a reply will be sent. | 1218 "*Sets the person or persons to whom a reply will be sent. |
1148 | 1219 |
1149 This option is set to \"Prompt\" by default so that you are prompted for the | 1220 This option is set to \"Prompt\" by default so that you are |
1150 recipient of a reply. If you find that most of the time that you specify | 1221 prompted for the recipient of a reply. If you find that most of |
1151 \"cc\" when you reply to a message, set this option to \"cc\". Other choices | 1222 the time that you specify \"cc\" when you reply to a message, set |
1152 include \"from\", \"to\", or \"all\". You can always edit the recipients in | 1223 this option to \"cc\". Other choices include \"from\", \"to\", or |
1153 the draft." | 1224 \"all\". You can always edit the recipients in the draft." |
1154 :type '(choice (const :tag "Prompt" nil) | 1225 :type '(choice (const :tag "Prompt" nil) |
1155 (const "from") | 1226 (const "from") |
1156 (const "to") | 1227 (const "to") |
1157 (const "cc") | 1228 (const "cc") |
1158 (const "all")) | 1229 (const "all")) |
1159 :group 'mh-sending-mail) | 1230 :group 'mh-sending-mail) |
1160 | 1231 |
1161 (defcustom mh-reply-show-message-flag t | 1232 (defcustom mh-reply-show-message-flag t |
1162 "*Non-nil means the MH-Show buffer is displayed when replying. | 1233 "*Non-nil means the MH-Show buffer is displayed when replying. |
1163 | 1234 |
1164 If you include the message automatically, you can hide the MH-Show | 1235 If you include the message automatically, you can hide the |
1165 buffer by turning off this option. | 1236 MH-Show buffer by turning off this option. |
1166 | 1237 |
1167 See also `mh-reply'." | 1238 See also `mh-reply'." |
1168 :type 'boolean | 1239 :type 'boolean |
1169 :group 'mh-sending-mail) | 1240 :group 'mh-sending-mail) |
1170 | 1241 |
1177 ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX | 1248 ;; specified by setting `mh-unpropagated-sequences' appropriately." XXX |
1178 | 1249 |
1179 (defcustom mh-refile-preserves-sequences-flag t | 1250 (defcustom mh-refile-preserves-sequences-flag t |
1180 "*Non-nil means that sequences are preserved when messages are refiled. | 1251 "*Non-nil means that sequences are preserved when messages are refiled. |
1181 | 1252 |
1182 If a message is in any sequence (except \"Previous-Sequence:\" and \"cur\") | 1253 If a message is in any sequence (except \"Previous-Sequence:\" |
1183 when it is refiled, then it will still be in those sequences in the | 1254 and \"cur\") when it is refiled, then it will still be in those |
1184 destination folder. If this behavior is not desired, then turn off this | 1255 sequences in the destination folder. If this behavior is not |
1185 option." | 1256 desired, then turn off this option." |
1186 :type 'boolean | 1257 :type 'boolean |
1187 :group 'mh-sequences) | 1258 :group 'mh-sequences) |
1188 | 1259 |
1189 (defcustom mh-tick-seq 'tick | 1260 (defcustom mh-tick-seq 'tick |
1190 "The name of the MH sequence for ticked messages. | 1261 "The name of the MH sequence for ticked messages. |
1191 | 1262 |
1192 You can customize this option if you already use the \"tick\" sequence for | 1263 You can customize this option if you already use the \"tick\" |
1193 your own use. You can also disable all of the ticking functions by choosing | 1264 sequence for your own use. You can also disable all of the |
1194 the \"Disable Ticking\" item but there isn't much advantage to that." | 1265 ticking functions by choosing the \"Disable Ticking\" item but |
1266 there isn't much advantage to that." | |
1195 :type '(choice (const :tag "Disable Ticking" nil) | 1267 :type '(choice (const :tag "Disable Ticking" nil) |
1196 symbol) | 1268 symbol) |
1197 :group 'mh-sequences) | 1269 :group 'mh-sequences) |
1198 | 1270 |
1199 (defcustom mh-update-sequences-after-mh-show-flag t | 1271 (defcustom mh-update-sequences-after-mh-show-flag t |
1200 "*Non-nil means flush MH sequences to disk after message is shown. | 1272 "*Non-nil means flush MH sequences to disk after message is shown. |
1201 | 1273 |
1202 Three sequences are maintained internally by MH-E and pushed out to MH when a | 1274 Three sequences are maintained internally by MH-E and pushed out |
1203 message is shown. They include the sequence specified by your | 1275 to MH when a message is shown. They include the sequence |
1204 \"Unseen-Sequence:\" profile entry, \"cur\", and the sequence listed by the | 1276 specified by your \"Unseen-Sequence:\" profile entry, \"cur\", |
1205 option `mh-tick-seq' which is \"tick\" by default. If you do not like this | 1277 and the sequence listed by the option `mh-tick-seq' which is |
1206 behavior, turn off this option. You can then update the state manually with | 1278 \"tick\" by default. If you do not like this behavior, turn off |
1207 the `\\[mh-execute-commands]', `\\[mh-quit]', or `\\[mh-update-sequences]' | 1279 this option. You can then update the state manually with the |
1208 commands." | 1280 `\\[mh-execute-commands]', `\\[mh-quit]', or |
1281 `\\[mh-update-sequences]' commands." | |
1209 :type 'boolean | 1282 :type 'boolean |
1210 :group 'mh-sequences) | 1283 :group 'mh-sequences) |
1211 | 1284 |
1212 | 1285 |
1213 | 1286 |
1214 ;;; Reading Your Mail (:group 'mh-show) | 1287 ;;; Reading Your Mail (:group 'mh-show) |
1215 | 1288 |
1216 (defcustom mh-bury-show-buffer-flag t | 1289 (defcustom mh-bury-show-buffer-flag t |
1217 "*Non-nil means show buffer is buried. | 1290 "*Non-nil means show buffer is buried. |
1218 | 1291 |
1219 One advantage of not burying the show buffer is that one can delete the show | 1292 One advantage of not burying the show buffer is that one can |
1220 buffer more easily in an electric buffer list because of its proximity to its | 1293 delete the show buffer more easily in an electric buffer list |
1221 associated MH-Folder buffer. Try running \\[electric-buffer-list] to see what | 1294 because of its proximity to its associated MH-Folder buffer. Try |
1222 I mean." | 1295 running \\[electric-buffer-list] to see what I mean." |
1223 :type 'boolean | 1296 :type 'boolean |
1224 :group 'mh-show) | 1297 :group 'mh-show) |
1225 | 1298 |
1226 (defcustom mh-clean-message-header-flag t | 1299 (defcustom mh-clean-message-header-flag t |
1227 "*Non-nil means remove extraneous header fields. | 1300 "*Non-nil means remove extraneous header fields. |
1232 :group 'mh-show) | 1305 :group 'mh-show) |
1233 | 1306 |
1234 (defcustom mh-decode-mime-flag (not (not (locate-library "mm-decode"))) | 1307 (defcustom mh-decode-mime-flag (not (not (locate-library "mm-decode"))) |
1235 "*Non-nil means attachments are handled\\<mh-folder-mode-map>. | 1308 "*Non-nil means attachments are handled\\<mh-folder-mode-map>. |
1236 | 1309 |
1237 MH-E can handle attachments as well if the Gnus `mm-decode' library is | 1310 MH-E can handle attachments as well if the Gnus `mm-decode' |
1238 present. If so, this option will be on. Otherwise, you'll see the MIME body | 1311 library is present. If so, this option will be on. Otherwise, |
1239 parts rather than text or attachments. There isn't much point in turning off | 1312 you'll see the MIME body parts rather than text or attachments. |
1240 this option; however, you can inspect it if it appears that the body parts are | 1313 There isn't much point in turning off this option; however, you |
1241 not being interpreted correctly or toggle it with the command | 1314 can inspect it if it appears that the body parts are not being |
1315 interpreted correctly or toggle it with the command | |
1242 \\[mh-toggle-mh-decode-mime-flag] to view the raw message. | 1316 \\[mh-toggle-mh-decode-mime-flag] to view the raw message. |
1243 | 1317 |
1244 This option also controls the display of quoted-printable messages and other | 1318 This option also controls the display of quoted-printable |
1245 graphical widgets. See the options `mh-graphical-smileys-flag' and | 1319 messages and other graphical widgets. See the options |
1246 `mh-graphical-emphasis-flag'." | 1320 `mh-graphical-smileys-flag' and `mh-graphical-emphasis-flag'." |
1247 :type 'boolean | 1321 :type 'boolean |
1248 :group 'mh-show) | 1322 :group 'mh-show) |
1249 | 1323 |
1250 (defcustom mh-display-buttons-for-alternatives-flag nil | 1324 (defcustom mh-display-buttons-for-alternatives-flag nil |
1251 "*Non-nil means display buttons for all alternative attachments. | 1325 "*Non-nil means display buttons for all alternative attachments. |
1252 | 1326 |
1253 Sometimes, a mail program will produce multiple alternatives of the attachment | 1327 Sometimes, a mail program will produce multiple alternatives of |
1254 in increasing degree of faithfulness to the original content. By default, only | 1328 the attachment in increasing degree of faithfulness to the |
1255 the preferred alternative is displayed. If this option is on, then the | 1329 original content. By default, only the preferred alternative is |
1256 preferred part is shown inline and buttons are shown for each of the other | 1330 displayed. If this option is on, then the preferred part is shown |
1257 alternatives." | 1331 inline and buttons are shown for each of the other alternatives." |
1258 :type 'boolean | 1332 :type 'boolean |
1259 :group 'mh-show) | 1333 :group 'mh-show) |
1260 | 1334 |
1261 (defcustom mh-display-buttons-for-inline-parts-flag nil | 1335 (defcustom mh-display-buttons-for-inline-parts-flag nil |
1262 "*Non-nil means display buttons for all inline attachments\\<mh-folder-mode-map>. | 1336 "*Non-nil means display buttons for all inline attachments\\<mh-folder-mode-map>. |
1263 | 1337 |
1264 The sender can request that attachments should be viewed inline so that they | 1338 The sender can request that attachments should be viewed inline so |
1265 do not really appear like an attachment at all to the reader. Most of the | 1339 that they do not really appear like an attachment at all to the |
1266 time, this is desirable, so by default MH-E suppresses the buttons for inline | 1340 reader. Most of the time, this is desirable, so by default MH-E |
1267 attachments. On the other hand, you may receive code or HTML which the sender | 1341 suppresses the buttons for inline attachments. On the other hand, you |
1268 has added to his message as inline attachments so that you can read them in | 1342 may receive code or HTML which the sender has added to his message as |
1269 MH-E. In this case, it is useful to see the buttons so that you know you don't | 1343 inline attachments so that you can read them in MH-E. In this case, it |
1270 have to cut and paste the code into a file; you can simply save the | 1344 is useful to see the buttons so that you know you don't have to cut |
1271 attachment. | 1345 and paste the code into a file; you can simply save the attachment. |
1272 | 1346 |
1273 If you want to make the buttons visible for inline attachments, you can use | 1347 If you want to make the buttons visible for inline attachments, you |
1274 the command \\[mh-toggle-mime-buttons] to toggle the visibility of these | 1348 can use the command \\[mh-toggle-mime-buttons] to toggle the |
1275 buttons. You can turn on these buttons permanently by turning on this option. | 1349 visibility of these buttons. You can turn on these buttons permanently |
1350 by turning on this option. | |
1276 | 1351 |
1277 MH-E cannot display all attachments inline however. It can display | 1352 MH-E cannot display all attachments inline however. It can display |
1278 text (including HTML) and images." | 1353 text (including HTML) and images." |
1279 :type 'boolean | 1354 :type 'boolean |
1280 :group 'mh-show) | 1355 :group 'mh-show) |
1281 | 1356 |
1282 (defcustom mh-do-not-confirm-flag nil | 1357 (defcustom mh-do-not-confirm-flag nil |
1283 "*Non-nil means non-reversible commands do not prompt for confirmation. | 1358 "*Non-nil means non-reversible commands do not prompt for confirmation. |
1284 | 1359 |
1285 Commands such as `mh-pack-folder' prompt to confirm whether to process | 1360 Commands such as `mh-pack-folder' prompt to confirm whether to |
1286 outstanding moves and deletes or not before continuing. Turning on this option | 1361 process outstanding moves and deletes or not before continuing. |
1287 means that these actions will be performed--which is usually desired but | 1362 Turning on this option means that these actions will be |
1288 cannot be retracted--without question." | 1363 performed--which is usually desired but cannot be |
1364 retracted--without question." | |
1289 :type 'boolean | 1365 :type 'boolean |
1290 :group 'mh-show) | 1366 :group 'mh-show) |
1291 | 1367 |
1292 (defcustom mh-fetch-x-image-url nil | 1368 (defcustom mh-fetch-x-image-url nil |
1293 "*Control fetching of \"X-Image-URL:\" header field image. | 1369 "*Control fetching of \"X-Image-URL:\" header field image. |
1294 | 1370 |
1295 Ths option controls the fetching of the \"X-Image-URL:\" header field image | 1371 Ths option controls the fetching of the \"X-Image-URL:\" header |
1296 with the following values: | 1372 field image with the following values: |
1297 | 1373 |
1298 Ask Before Fetching | 1374 Ask Before Fetching |
1299 You are prompted before the image is fetched. MH-E will remember | 1375 You are prompted before the image is fetched. MH-E will |
1300 your reply and will either use the already fetched image the next | 1376 remember your reply and will either use the already fetched |
1301 time the same URL is encountered or silently skip it if you didn't | 1377 image the next time the same URL is encountered or silently |
1302 fetch it the first time. This is a good setting. | 1378 skip it if you didn't fetch it the first time. This is a |
1379 good setting. | |
1303 | 1380 |
1304 Never Fetch | 1381 Never Fetch |
1305 Images are never fetched and only displayed if they are already | 1382 Images are never fetched and only displayed if they are |
1306 present in the cache. This is the default. | 1383 already present in the cache. This is the default. |
1307 | 1384 |
1308 There isn't a value of \"Always Fetch\" for privacy and DOS (denial of | 1385 There isn't a value of \"Always Fetch\" for privacy and DOS (denial of |
1309 service) reasons. For example, fetching a URL can tip off a spammer that | 1386 service) reasons. For example, fetching a URL can tip off a spammer |
1310 you've read his email (which is why you shouldn't blindly answer yes if you've | 1387 that you've read his email (which is why you shouldn't blindly answer |
1311 set this option to \"Ask Before Fetching\"). Someone may also flood your | 1388 yes if you've set this option to \"Ask Before Fetching\"). Someone may |
1312 network and fill your disk drive by sending a torrent of messages, each | 1389 also flood your network and fill your disk drive by sending a torrent |
1313 specifying a unique URL to a very large file. | 1390 of messages, each specifying a unique URL to a very large file. |
1314 | 1391 |
1315 The cache of images is found in the directory \".mhe-x-image-cache\" within | 1392 The cache of images is found in the directory \".mhe-x-image-cache\" |
1316 your MH directory. You can add your own face to the \"From:\" field too. See | 1393 within your MH directory. You can add your own face to the \"From:\" |
1317 Info node `(mh-e)Picture'. | 1394 field too. See Info node `(mh-e)Picture'. |
1318 | 1395 |
1319 This setting only has effect if the option `mh-show-use-xface-flag' is turned | 1396 This setting only has effect if the option `mh-show-use-xface-flag' is |
1320 on." | 1397 turned on." |
1321 | 1398 |
1322 :type '(choice (const :tag "Ask Before Fetching" ask) | 1399 :type '(choice (const :tag "Ask Before Fetching" ask) |
1323 (const :tag "Never Fetch" nil)) | 1400 (const :tag "Never Fetch" nil)) |
1324 :group 'mh-show) | 1401 :group 'mh-show) |
1325 | 1402 |
1326 (defcustom mh-graphical-smileys-flag t | 1403 (defcustom mh-graphical-smileys-flag t |
1327 "*Non-nil means graphical smileys are displayed. | 1404 "*Non-nil means graphical smileys are displayed. |
1328 | 1405 |
1329 It is a long standing custom to inject body language using a cornucopia of | 1406 It is a long standing custom to inject body language using a |
1330 punctuation, also known as the \"smileys\". MH-E can render these as graphical | 1407 cornucopia of punctuation, also known as the \"smileys\". MH-E |
1331 widgets if this option is turned on, which it is by default. Smileys include | 1408 can render these as graphical widgets if this option is turned |
1332 patterns such as :-) and ;-). | 1409 on, which it is by default. Smileys include patterns such as :-) |
1333 | 1410 and ;-). |
1334 This option is disabled if the option `mh-decode-mime-flag' is turned off." | 1411 |
1412 This option is disabled if the option `mh-decode-mime-flag' is | |
1413 turned off." | |
1335 :type 'boolean | 1414 :type 'boolean |
1336 :group 'mh-show) | 1415 :group 'mh-show) |
1337 | 1416 |
1338 (defcustom mh-graphical-emphasis-flag t | 1417 (defcustom mh-graphical-emphasis-flag t |
1339 "*Non-nil means graphical emphasis is displayed. | 1418 "*Non-nil means graphical emphasis is displayed. |
1340 | 1419 |
1341 A few typesetting features are indicated in ASCII text with certain | 1420 A few typesetting features are indicated in ASCII text with |
1342 characters. If your terminal supports it, MH-E can render these typesetting | 1421 certain characters. If your terminal supports it, MH-E can render |
1343 directives naturally if this option is turned on, which it is by default. For | 1422 these typesetting directives naturally if this option is turned |
1344 example, _underline_ will be underlined, *bold* will appear in bold, /italics/ | 1423 on, which it is by default. For example, _underline_ will be |
1345 will appear in italics, and so on. See the option `gnus-emphasis-alist' for | 1424 underlined, *bold* will appear in bold, /italics/ will appear in |
1346 the whole list. | 1425 italics, and so on. See the option `gnus-emphasis-alist' for the |
1347 | 1426 whole list. |
1348 This option is disabled if the option `mh-decode-mime-flag' is turned off." | 1427 |
1428 This option is disabled if the option `mh-decode-mime-flag' is | |
1429 turned off." | |
1349 :type 'boolean | 1430 :type 'boolean |
1350 :group 'mh-show) | 1431 :group 'mh-show) |
1351 | 1432 |
1352 (defcustom mh-highlight-citation-style 'gnus | 1433 (defcustom mh-highlight-citation-style 'gnus |
1353 "Style for highlighting citations. | 1434 "Style for highlighting citations. |
1354 | 1435 |
1355 If the sender of the message has cited other messages in his message, then | 1436 If the sender of the message has cited other messages in his |
1356 MH-E will highlight these citations to emphasize the sender's actual response. | 1437 message, then MH-E will highlight these citations to emphasize |
1357 This option can be customized to change the highlighting style. The | 1438 the sender's actual response. This option can be customized to |
1358 \"Multicolor\" method uses a different color for each indentation while the | 1439 change the highlighting style. The \"Multicolor\" method uses a |
1359 \"Monochrome\" method highlights all citations in red. To disable highlighting | 1440 different color for each indentation while the \"Monochrome\" |
1441 method highlights all citations in red. To disable highlighting | |
1360 of citations entirely, choose \"None\"." | 1442 of citations entirely, choose \"None\"." |
1361 :type '(choice (const :tag "Multicolor" gnus) | 1443 :type '(choice (const :tag "Multicolor" gnus) |
1362 (const :tag "Monochrome" font-lock) | 1444 (const :tag "Monochrome" font-lock) |
1363 (const :tag "None" nil)) | 1445 (const :tag "None" nil)) |
1364 :group 'mh-show) | 1446 :group 'mh-show) |
1536 "X-pgp:" | 1618 "X-pgp:" |
1537 "X-submission-address:" | 1619 "X-submission-address:" |
1538 "X400-" ; X400 | 1620 "X400-" ; X400 |
1539 "Xref:") | 1621 "Xref:") |
1540 "List of default header fields that are not to be shown. | 1622 "List of default header fields that are not to be shown. |
1541 Do not alter this variable directly. Instead, add entries from here that you | 1623 |
1542 would like to be displayed in `mh-invisible-header-fields-default' | 1624 Do not alter this variable directly. Instead, add entries from |
1543 and add entries to hide in `mh-invisible-header-fields'.") | 1625 here that you would like to be displayed in |
1626 `mh-invisible-header-fields-default' and add entries to hide in | |
1627 `mh-invisible-header-fields'.") | |
1544 | 1628 |
1545 (defvar mh-invisible-header-fields-compiled nil | 1629 (defvar mh-invisible-header-fields-compiled nil |
1546 "*Regexp matching lines in a message header that are not to be shown. | 1630 "*Regexp matching lines in a message header that are not to be shown. |
1547 Do not alter this variable directly. Instead, customize | 1631 Do not alter this variable directly. Instead, customize |
1548 `mh-invisible-header-fields-default' checking for fields normally | 1632 `mh-invisible-header-fields-default' checking for fields normally |
1549 hidden that you wish to display, and add extra entries to hide in | 1633 hidden that you wish to display, and add extra entries to hide in |
1550 `mh-invisible-header-fields'.") | 1634 `mh-invisible-header-fields'.") |
1551 | 1635 |
1552 (defun mh-invisible-headers () | 1636 (defun mh-invisible-headers () |
1553 "Make or remake the variable `mh-invisible-header-fields-compiled'. | 1637 "Make or remake the variable `mh-invisible-header-fields-compiled'. |
1554 Done using `mh-invisible-header-fields-internal' as input, from which entries | 1638 Done using `mh-invisible-header-fields-internal' as input, from |
1555 from `mh-invisible-header-fields-default' are removed and entries | 1639 which entries from `mh-invisible-header-fields-default' are |
1556 from `mh-invisible-header-fields' are added." | 1640 removed and entries from `mh-invisible-header-fields' are added." |
1557 (let ((fields mh-invisible-header-fields-internal)) | 1641 (let ((fields mh-invisible-header-fields-internal)) |
1558 (when mh-invisible-header-fields-default | 1642 (when mh-invisible-header-fields-default |
1559 ;; Remove entries from `mh-invisible-header-fields-default' | 1643 ;; Remove entries from `mh-invisible-header-fields-default' |
1560 (setq fields | 1644 (setq fields |
1561 (loop for x in fields | 1645 (loop for x in fields |
1575 (setq mh-invisible-header-fields-compiled nil)))) | 1659 (setq mh-invisible-header-fields-compiled nil)))) |
1576 | 1660 |
1577 (defcustom mh-invisible-header-fields-default nil | 1661 (defcustom mh-invisible-header-fields-default nil |
1578 "*List of hidden header fields. | 1662 "*List of hidden header fields. |
1579 | 1663 |
1580 The header fields listed in this option are hidden, although you can check off | 1664 The header fields listed in this option are hidden, although you |
1581 any field that you would like to see. | 1665 can check off any field that you would like to see. |
1582 | 1666 |
1583 Header fields that you would like to hide that aren't listed can be added to | 1667 Header fields that you would like to hide that aren't listed can |
1584 the option `mh-invisible-header-fields'. | 1668 be added to the option `mh-invisible-header-fields'. |
1585 | 1669 |
1586 See also `mh-clean-message-header-flag'." | 1670 See also `mh-clean-message-header-flag'." |
1587 :type `(set ,@(mapcar (lambda (x) `(const ,x)) | 1671 :type `(set ,@(mapcar (lambda (x) `(const ,x)) |
1588 mh-invisible-header-fields-internal)) | 1672 mh-invisible-header-fields-internal)) |
1589 :set (lambda (symbol value) | 1673 :set (lambda (symbol value) |
1593 | 1677 |
1594 (defcustom mh-invisible-header-fields nil | 1678 (defcustom mh-invisible-header-fields nil |
1595 "*Additional header fields to hide. | 1679 "*Additional header fields to hide. |
1596 | 1680 |
1597 Header fields that you would like to hide that aren't listed in | 1681 Header fields that you would like to hide that aren't listed in |
1598 `mh-invisible-header-fields-default' can be added to this option with a couple | 1682 `mh-invisible-header-fields-default' can be added to this option |
1599 of caveats. Regular expressions are not allowed. Unique fields should have a | 1683 with a couple of caveats. Regular expressions are not allowed. |
1600 `:' suffix; otherwise, the element can be used to render invisible an entire | 1684 Unique fields should have a `:' suffix; otherwise, the element |
1601 class of fields that start with the same prefix. If you think a header field | 1685 can be used to render invisible an entire class of fields that |
1602 should be generally ignored, report a bug (see URL | 1686 start with the same prefix. If you think a header field should be |
1687 generally ignored, report a bug (see URL | |
1603 `https://sourceforge.net/tracker/?group_id=13357&atid=113357'). | 1688 `https://sourceforge.net/tracker/?group_id=13357&atid=113357'). |
1604 | 1689 |
1605 See also `mh-clean-message-header-flag'." | 1690 See also `mh-clean-message-header-flag'." |
1606 | 1691 |
1607 :type '(repeat (string :tag "Header field")) | 1692 :type '(repeat (string :tag "Header field")) |
1611 :group 'mh-show) | 1696 :group 'mh-show) |
1612 | 1697 |
1613 (defcustom mh-lpr-command-format "lpr -J '%s'" | 1698 (defcustom mh-lpr-command-format "lpr -J '%s'" |
1614 "*Command used to print\\<mh-folder-mode-map>. | 1699 "*Command used to print\\<mh-folder-mode-map>. |
1615 | 1700 |
1616 This option contains the Unix command line which performs the actual printing | 1701 This option contains the Unix command line which performs the |
1617 for the \\[mh-print-msg] command. The string can contain one escape, \"%s\", | 1702 actual printing for the \\[mh-print-msg] command. The string can |
1618 which is replaced by the name of the folder and the message number and is | 1703 contain one escape, \"%s\", which is replaced by the name of the |
1619 useful for print job names. I use \"mpage -h'%s' -b Letter -H1of -mlrtb -P\" | 1704 folder and the message number and is useful for print job names. |
1620 which produces a nice header and adds a bit of margin so the text fits within | 1705 I use \"mpage -h'%s' -b Letter -H1of -mlrtb -P\" which produces a |
1621 my printer's margins. | 1706 nice header and adds a bit of margin so the text fits within my |
1707 printer's margins. | |
1622 | 1708 |
1623 This options is not used by the commands \\[mh-ps-print-msg] or | 1709 This options is not used by the commands \\[mh-ps-print-msg] or |
1624 \\[mh-ps-print-msg-file]." | 1710 \\[mh-ps-print-msg-file]." |
1625 :type 'string | 1711 :type 'string |
1626 :group 'mh-show) | 1712 :group 'mh-show) |
1627 | 1713 |
1628 (defcustom mh-max-inline-image-height nil | 1714 (defcustom mh-max-inline-image-height nil |
1629 "*Maximum inline image height if \"Content-Disposition:\" is not present. | 1715 "*Maximum inline image height if \"Content-Disposition:\" is not present. |
1630 | 1716 |
1631 Some older mail programs do not insert this needed plumbing to tell | 1717 Some older mail programs do not insert this needed plumbing to |
1632 MH-E whether to display the attachments inline or not. If this is the | 1718 tell MH-E whether to display the attachments inline or not. If |
1633 case, MH-E will display these images inline if they are smaller than | 1719 this is the case, MH-E will display these images inline if they |
1634 the window. However, you might want to allow larger images to be | 1720 are smaller than the window. However, you might want to allow |
1635 displayed inline. To do this, you can change the options | 1721 larger images to be displayed inline. To do this, you can change |
1636 `mh-max-inline-image-width' and `mh-max-inline-image-height' from their | 1722 the options `mh-max-inline-image-width' and |
1637 default value of zero to a large number. The size of your screen is a | 1723 `mh-max-inline-image-height' from their default value of zero to |
1638 good choice for these numbers." | 1724 a large number. The size of your screen is a good choice for |
1725 these numbers." | |
1639 :type '(choice (const nil) integer) | 1726 :type '(choice (const nil) integer) |
1640 :group 'mh-show) | 1727 :group 'mh-show) |
1641 | 1728 |
1642 (defcustom mh-max-inline-image-width nil | 1729 (defcustom mh-max-inline-image-width nil |
1643 "*Maximum inline image width if \"Content-Disposition:\" is not present. | 1730 "*Maximum inline image width if \"Content-Disposition:\" is not present. |
1644 | 1731 |
1645 Some older mail programs do not insert this needed plumbing to tell | 1732 Some older mail programs do not insert this needed plumbing to |
1646 MH-E whether to display the attachments inline or not. If this is the | 1733 tell MH-E whether to display the attachments inline or not. If |
1647 case, MH-E will display these images inline if they are smaller than | 1734 this is the case, MH-E will display these images inline if they |
1648 the window. However, you might want to allow larger images to be | 1735 are smaller than the window. However, you might want to allow |
1649 displayed inline. To do this, you can change the options | 1736 larger images to be displayed inline. To do this, you can change |
1650 `mh-max-inline-image-width' and `mh-max-inline-image-height' from their | 1737 the options `mh-max-inline-image-width' and |
1651 default value of zero to a large number. The size of your screen is a | 1738 `mh-max-inline-image-height' from their default value of zero to |
1652 good choice for these numbers." | 1739 a large number. The size of your screen is a good choice for |
1740 these numbers." | |
1653 :type '(choice (const nil) integer) | 1741 :type '(choice (const nil) integer) |
1654 :group 'mh-show) | 1742 :group 'mh-show) |
1655 | 1743 |
1656 (defcustom mh-mhl-format-file nil | 1744 (defcustom mh-mhl-format-file nil |
1657 "*Specifies the format file to pass to the \"mhl\" program. | 1745 "*Specifies the format file to pass to the \"mhl\" program. |
1658 | 1746 |
1659 Normally MH-E takes care of displaying messages itself (rather than calling an | 1747 Normally MH-E takes care of displaying messages itself (rather than |
1660 MH program to do the work). If you'd rather have \"mhl\" display the | 1748 calling an MH program to do the work). If you'd rather have \"mhl\" |
1661 message (within MH-E), change this option from its default value of \"Use | 1749 display the message (within MH-E), change this option from its default |
1662 Default mhl Format (Printing Only)\". | 1750 value of \"Use Default mhl Format (Printing Only)\". |
1663 | 1751 |
1664 You can set this option to \"Use Default mhl Format\" to get the same output | 1752 You can set this option to \"Use Default mhl Format\" to get the same |
1665 as you would get if you ran \"mhl\" from the shell. | 1753 output as you would get if you ran \"mhl\" from the shell. |
1666 | 1754 |
1667 If you have a format file that you want MH-E to use, you can set this option | 1755 If you have a format file that you want MH-E to use, you can set this |
1668 to \"Specify an mhl Format File\" and enter the name of your format file. Your | 1756 option to \"Specify an mhl Format File\" and enter the name of your |
1669 format file should specify a non-zero value for \"overflowoffset\" to allow | 1757 format file. Your format file should specify a non-zero value for |
1670 MH-E to parse the header. Note that \"mhl\" is always used for printing and | 1758 \"overflowoffset\" to allow MH-E to parse the header. Note that |
1671 forwarding; in this case, the value of this option is consulted if you have | 1759 \"mhl\" is always used for printing and forwarding; in this case, the |
1672 specified a format file." | 1760 value of this option is consulted if you have specified a format |
1761 file." | |
1673 :type '(choice (const :tag "Use Default mhl Format (Printing Only)" nil) | 1762 :type '(choice (const :tag "Use Default mhl Format (Printing Only)" nil) |
1674 (const :tag "Use Default mhl Format" t) | 1763 (const :tag "Use Default mhl Format" t) |
1675 (file :tag "Specify an mhl Format File")) | 1764 (file :tag "Specify an mhl Format File")) |
1676 :group 'mh-show) | 1765 :group 'mh-show) |
1677 | 1766 |
1678 (defcustom mh-mime-save-parts-default-directory t | 1767 (defcustom mh-mime-save-parts-default-directory t |
1679 "Default directory to use for \\<mh-folder-mode-map>\\[mh-mime-save-parts]. | 1768 "Default directory to use for \\<mh-folder-mode-map>\\[mh-mime-save-parts]. |
1680 | 1769 |
1681 The default value for this option is \"Prompt Always\" so that you are always | 1770 The default value for this option is \"Prompt Always\" so that |
1682 prompted for the directory in which to save the attachments. However, if you | 1771 you are always prompted for the directory in which to save the |
1683 usually use the same directory within a session, then you can set this option | 1772 attachments. However, if you usually use the same directory |
1684 to \"Prompt the First Time\" to avoid the prompt each time. you can make this | 1773 within a session, then you can set this option to \"Prompt the |
1685 directory permanent by choosing \"Directory\" and entering the directory's | 1774 First Time\" to avoid the prompt each time. you can make this |
1686 name." | 1775 directory permanent by choosing \"Directory\" and entering the |
1776 directory's name." | |
1687 :type '(choice (const :tag "Prompt the First Time" nil) | 1777 :type '(choice (const :tag "Prompt the First Time" nil) |
1688 (const :tag "Prompt Always" t) | 1778 (const :tag "Prompt Always" t) |
1689 directory) | 1779 directory) |
1690 :group 'mh-show) | 1780 :group 'mh-show) |
1691 | 1781 |
1692 (defcustom mh-print-background-flag nil | 1782 (defcustom mh-print-background-flag nil |
1693 "*Non-nil means messages should be printed in the background\\<mh-folder-mode-map>. | 1783 "*Non-nil means messages should be printed in the background\\<mh-folder-mode-map>. |
1694 | 1784 |
1695 Normally messages are printed in the foreground. If this is slow on your | 1785 Normally messages are printed in the foreground. If this is slow on |
1696 system, you may elect to turn off this option to print in the background. | 1786 your system, you may elect to turn off this option to print in the |
1697 | 1787 background. |
1698 WARNING: If you do this, do not delete the message until it is printed or else | 1788 |
1699 the output may be truncated. | 1789 WARNING: If you do this, do not delete the message until it is printed |
1790 or else the output may be truncated. | |
1700 | 1791 |
1701 This option is not used by the commands \\[mh-ps-print-msg] or | 1792 This option is not used by the commands \\[mh-ps-print-msg] or |
1702 \\[mh-ps-print-msg-file]." | 1793 \\[mh-ps-print-msg-file]." |
1703 :type 'boolean | 1794 :type 'boolean |
1704 :group 'mh-show) | 1795 :group 'mh-show) |
1705 | 1796 |
1706 (defcustom mh-show-maximum-size 0 | 1797 (defcustom mh-show-maximum-size 0 |
1707 "*Maximum size of message (in bytes) to display automatically. | 1798 "*Maximum size of message (in bytes) to display automatically. |
1708 | 1799 |
1709 This option provides an opportunity to skip over large messages which may be | 1800 This option provides an opportunity to skip over large messages |
1710 slow to load. The default value of 0 means that all message are shown | 1801 which may be slow to load. The default value of 0 means that all |
1711 regardless of size." | 1802 message are shown regardless of size." |
1712 :type 'integer | 1803 :type 'integer |
1713 :group 'mh-show) | 1804 :group 'mh-show) |
1714 | 1805 |
1715 (defcustom mh-show-use-goto-addr-flag (and (boundp 'goto-address-highlight-p) | 1806 (defcustom mh-show-use-goto-addr-flag (and (boundp 'goto-address-highlight-p) |
1716 goto-address-highlight-p) | 1807 goto-address-highlight-p) |
1717 "*Non-nil means highlight URLs and email addresses\\<goto-address-highlight-keymap>. | 1808 "*Non-nil means highlight URLs and email addresses\\<goto-address-highlight-keymap>. |
1718 | 1809 |
1719 To send a message using the highlighted email address or to view the web page | 1810 To send a message using the highlighted email address or to view |
1720 for the highlighted URL, use the middle mouse button or | 1811 the web page for the highlighted URL, use the middle mouse button |
1721 \\[goto-address-at-point]. | 1812 or \\[goto-address-at-point]. |
1722 | 1813 |
1723 See Info node `(mh-e)Sending Mail' to see how to configure Emacs to send the | 1814 See Info node `(mh-e)Sending Mail' to see how to configure Emacs |
1724 message using MH-E. | 1815 to send the message using MH-E. |
1725 | 1816 |
1726 The default value of this option comes from the value of | 1817 The default value of this option comes from the value of |
1727 `goto-address-highlight-p'." | 1818 `goto-address-highlight-p'." |
1728 :type 'boolean | 1819 :type 'boolean |
1729 :group 'mh-show) | 1820 :group 'mh-show) |
1730 | 1821 |
1731 (defcustom mh-show-use-xface-flag (>= emacs-major-version 21) | 1822 (defcustom mh-show-use-xface-flag (>= emacs-major-version 21) |
1732 "*Non-nil means display face images in MH-show buffers. | 1823 "*Non-nil means display face images in MH-show buffers. |
1733 | 1824 |
1734 MH-E can display the content of \"Face:\", \"X-Face:\", and \"X-Image-URL:\" | 1825 MH-E can display the content of \"Face:\", \"X-Face:\", and |
1735 header fields. If any of these fields occur in the header of your message, the | 1826 \"X-Image-URL:\" header fields. If any of these fields occur in the |
1736 sender's face will appear in the \"From:\" header field. If more than one of | 1827 header of your message, the sender's face will appear in the \"From:\" |
1737 these fields appear, then the first field found in the order \"Face:\", | 1828 header field. If more than one of these fields appear, then the first |
1738 \"X-Face:\", and \"X-Image-URL:\" will be used. | 1829 field found in the order \"Face:\", \"X-Face:\", and \"X-Image-URL:\" |
1739 | 1830 will be used. |
1740 The option `mh-show-use-xface-flag' is used to turn this feature on and off. | 1831 |
1741 This feature will be turned on by default if your system supports it. | 1832 The option `mh-show-use-xface-flag' is used to turn this feature on |
1742 | 1833 and off. This feature will be turned on by default if your system |
1743 The first header field used, if present, is the Gnus-specific \"Face:\" field. | 1834 supports it. |
1744 The \"Face:\" field appeared in GNU Emacs 21 and XEmacs. For more information, | 1835 |
1745 see URL `http://quimby.gnus.org/circus/face/'. Next is the traditional | 1836 The first header field used, if present, is the Gnus-specific |
1837 \"Face:\" field. The \"Face:\" field appeared in GNU Emacs 21 and | |
1838 XEmacs. For more information, see URL | |
1839 `http://quimby.gnus.org/circus/face/'. Next is the traditional | |
1746 \"X-Face:\" header field. The display of this field requires the | 1840 \"X-Face:\" header field. The display of this field requires the |
1747 \"uncompface\" program (see URL | 1841 \"uncompface\" program (see URL |
1748 `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent versions | 1842 `ftp://ftp.cs.indiana.edu/pub/faces/compface/compface.tar.z'). Recent |
1749 of XEmacs have internal support for \"X-Face:\" images. If your version of | 1843 versions of XEmacs have internal support for \"X-Face:\" images. If |
1750 XEmacs does not, then you'll need both \"uncompface\" and the x-face | 1844 your version of XEmacs does not, then you'll need both \"uncompface\" |
1751 package (see URL `ftp://ftp.jpl.org/pub/elisp/'). | 1845 and the x-face package (see URL `ftp://ftp.jpl.org/pub/elisp/'). |
1752 | 1846 |
1753 Finally, MH-E will display images referenced by the \"X-Image-URL:\" header | 1847 Finally, MH-E will display images referenced by the \"X-Image-URL:\" |
1754 field if neither the \"Face:\" nor the \"X-Face:\" fields are present. The | 1848 header field if neither the \"Face:\" nor the \"X-Face:\" fields are |
1755 display of the images requires \"wget\" (see URL | 1849 present. The display of the images requires \"wget\" (see URL |
1756 `http://www.gnu.org/software/wget/wget.html'), \"fetch\", or \"curl\" to fetch | 1850 `http://www.gnu.org/software/wget/wget.html'), \"fetch\", or \"curl\" |
1757 the image and the \"convert\" program from the ImageMagick suite (see URL | 1851 to fetch the image and the \"convert\" program from the ImageMagick |
1758 `http://www.imagemagick.org/'). Of the three header fields this is the most | 1852 suite (see URL `http://www.imagemagick.org/'). Of the three header |
1759 efficient in terms of network usage since the image doesn't need to be | 1853 fields this is the most efficient in terms of network usage since the |
1760 transmitted with every single mail. | 1854 image doesn't need to be transmitted with every single mail. |
1761 | 1855 |
1762 The option `mh-fetch-x-image-url' controls the fetching of the | 1856 The option `mh-fetch-x-image-url' controls the fetching of the |
1763 \"X-Image-URL:\" header field image." | 1857 \"X-Image-URL:\" header field image." |
1764 :type 'boolean | 1858 :type 'boolean |
1765 :group 'mh-show) | 1859 :group 'mh-show) |
1766 | 1860 |
1767 (defcustom mh-store-default-directory nil | 1861 (defcustom mh-store-default-directory nil |
1768 "*Default directory for \\<mh-folder-mode-map>\\[mh-store-msg]. | 1862 "*Default directory for \\<mh-folder-mode-map>\\[mh-store-msg]. |
1769 | 1863 |
1770 If you would like to change the initial default directory, customize this | 1864 If you would like to change the initial default directory, |
1771 option, change the value from `Current' to `Directory', and then enter the | 1865 customize this option, change the value from `Current' to |
1772 name of the directory for storing the content of these messages." | 1866 `Directory', and then enter the name of the directory for storing |
1867 the content of these messages." | |
1773 :type '(choice (const :tag "Current" nil) | 1868 :type '(choice (const :tag "Current" nil) |
1774 directory) | 1869 directory) |
1775 :group 'mh-show) | 1870 :group 'mh-show) |
1776 | 1871 |
1777 (defcustom mh-summary-height nil | 1872 (defcustom mh-summary-height nil |
1778 "*Number of lines in MH-Folder buffer (including the mode line). | 1873 "*Number of lines in MH-Folder buffer (including the mode line). |
1779 | 1874 |
1780 The default value of this option is \"Automatic\" which means that the | 1875 The default value of this option is \"Automatic\" which means |
1781 MH-Folder buffer will maintain the same proportional size if the frame is | 1876 that the MH-Folder buffer will maintain the same proportional |
1782 resized. If you'd prefer a fixed height, then choose the \"Fixed Size\" option | 1877 size if the frame is resized. If you'd prefer a fixed height, |
1783 and enter the number of lines you'd like to see." | 1878 then choose the \"Fixed Size\" option and enter the number of |
1879 lines you'd like to see." | |
1784 :type '(choice (const :tag "Automatic" nil) | 1880 :type '(choice (const :tag "Automatic" nil) |
1785 (integer :tag "Fixed Size")) | 1881 (integer :tag "Fixed Size")) |
1786 :group 'mh-show) | 1882 :group 'mh-show) |
1787 | 1883 |
1788 | 1884 |
1800 ;;; Threading (:group 'mh-thread) | 1896 ;;; Threading (:group 'mh-thread) |
1801 | 1897 |
1802 (defcustom mh-show-threads-flag nil | 1898 (defcustom mh-show-threads-flag nil |
1803 "*Non-nil means new folders start in threaded mode. | 1899 "*Non-nil means new folders start in threaded mode. |
1804 | 1900 |
1805 Threading large number of messages can be time consuming so this option is | 1901 Threading large number of messages can be time consuming so this |
1806 turned off by default. If you turn this option on, then threading will be done | 1902 option is turned off by default. If you turn this option on, then |
1807 only if the number of messages being threaded is less than `mh-large-folder'." | 1903 threading will be done only if the number of messages being |
1904 threaded is less than `mh-large-folder'." | |
1808 :type 'boolean | 1905 :type 'boolean |
1809 :group 'mh-thread) | 1906 :group 'mh-thread) |
1810 | 1907 |
1811 | 1908 |
1812 | 1909 |
1814 | 1911 |
1815 (defcustom mh-tool-bar-search-function 'mh-search-folder | 1912 (defcustom mh-tool-bar-search-function 'mh-search-folder |
1816 "*Function called by the tool bar search button. | 1913 "*Function called by the tool bar search button. |
1817 | 1914 |
1818 Available functions include `mh-search-folder', the default, and | 1915 Available functions include `mh-search-folder', the default, and |
1819 `mh-index-search'. You can also choose \"Other Function\" from the \"Value | 1916 `mh-index-search'. You can also choose \"Other Function\" from |
1820 Menu\" and enter a function of your own choosing." | 1917 the \"Value Menu\" and enter a function of your own choosing." |
1821 :type '(choice (const mh-search-folder) | 1918 :type '(choice (const mh-search-folder) |
1822 (const mh-index-search) | 1919 (const mh-index-search) |
1823 (function :tag "Other Function")) | 1920 (function :tag "Other Function")) |
1824 :group 'mh-tool-bar) | 1921 :group 'mh-tool-bar) |
1825 | 1922 |
1847 (info "(mh-e)Editing Drafts") | 1944 (info "(mh-e)Editing Drafts") |
1848 (delete-other-windows)) | 1945 (delete-other-windows)) |
1849 | 1946 |
1850 (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) | 1947 (defmacro mh-tool-bar-reply-generator (function recipient folder-buffer-flag) |
1851 "Generate FUNCTION that replies to RECIPIENT. | 1948 "Generate FUNCTION that replies to RECIPIENT. |
1852 If FOLDER-BUFFER-FLAG is nil then the function generated | 1949 If FOLDER-BUFFER-FLAG is nil then the function generated... |
1853 When INCLUDE-FLAG is non-nil, include message body being replied to." | 1950 When INCLUDE-FLAG is non-nil, include message body being replied to." |
1854 `(defun ,function (&optional arg) | 1951 `(defun ,function (&optional arg) |
1855 ,(format "Reply to \"%s\".\nWhen ARG is non-nil include message in reply." | 1952 ,(format "Reply to \"%s\".\nWhen ARG is non-nil include message in reply." |
1856 recipient) | 1953 recipient) |
1857 (interactive "P") | 1954 (interactive "P") |
1868 ;; XEmacs has a couple of extra customizations... | 1965 ;; XEmacs has a couple of extra customizations... |
1869 (mh-do-in-xemacs | 1966 (mh-do-in-xemacs |
1870 (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag | 1967 (defcustom mh-xemacs-use-tool-bar-flag mh-xemacs-has-tool-bar-flag |
1871 "*If non-nil, use tool bar. | 1968 "*If non-nil, use tool bar. |
1872 | 1969 |
1873 This option controls whether to show the MH-E icons at all. By default, this | 1970 This option controls whether to show the MH-E icons at all. By |
1874 option is turned on if the window system supports tool bars. If your system | 1971 default, this option is turned on if the window system supports |
1875 doesn't support tool bars, then you won't be able to turn on this option." | 1972 tool bars. If your system doesn't support tool bars, then you |
1973 won't be able to turn on this option." | |
1876 :type 'boolean | 1974 :type 'boolean |
1877 :group 'mh-tool-bar | 1975 :group 'mh-tool-bar |
1878 :set (lambda (symbol value) | 1976 :set (lambda (symbol value) |
1879 (if (and (eq value t) | 1977 (if (and (eq value t) |
1880 (not mh-xemacs-has-tool-bar-flag)) | 1978 (not mh-xemacs-has-tool-bar-flag)) |
1882 (set-default symbol value))) | 1980 (set-default symbol value))) |
1883 | 1981 |
1884 (defcustom mh-xemacs-tool-bar-position nil | 1982 (defcustom mh-xemacs-tool-bar-position nil |
1885 "*Tool bar location. | 1983 "*Tool bar location. |
1886 | 1984 |
1887 This option controls the placement of the tool bar along the four edges of the | 1985 This option controls the placement of the tool bar along the four |
1888 frame. You can choose from one of \"Same As Default Tool Bar\", \"Top\", | 1986 edges of the frame. You can choose from one of \"Same As Default |
1889 \"Bottom\", \"Left\", or \"Right\". If this variable is set to anything other | 1987 Tool Bar\", \"Top\", \"Bottom\", \"Left\", or \"Right\". If this |
1890 than \"Same As Default Tool Bar\" and the default tool bar is in a different | 1988 variable is set to anything other than \"Same As Default Tool |
1891 location, then two tool bars will be displayed: the MH-E tool bar and the | 1989 Bar\" and the default tool bar is in a different location, then |
1990 two tool bars will be displayed: the MH-E tool bar and the | |
1892 default tool bar." | 1991 default tool bar." |
1893 :type '(radio (const :tag "Same As Default Tool Bar" :value nil) | 1992 :type '(radio (const :tag "Same As Default Tool Bar" :value nil) |
1894 (const :tag "Top" :value top) | 1993 (const :tag "Top" :value top) |
1895 (const :tag "Bottom" :value bottom) | 1994 (const :tag "Bottom" :value bottom) |
1896 (const :tag "Left" :value left) | 1995 (const :tag "Left" :value left) |
1905 (eq major-mode mode)) | 2004 (eq major-mode mode)) |
1906 return t)) | 2005 return t)) |
1907 | 2006 |
1908 (defmacro mh-tool-bar-define (defaults &rest buttons) | 2007 (defmacro mh-tool-bar-define (defaults &rest buttons) |
1909 "Define a tool bar for MH-E. | 2008 "Define a tool bar for MH-E. |
1910 DEFAULTS is the list of buttons that are present by default. It is a list of | 2009 DEFAULTS is the list of buttons that are present by default. It |
1911 lists where the sublists are of the following form: | 2010 is a list of lists where the sublists are of the following form: |
1912 | 2011 |
1913 (:KEYWORD FUNC1 FUNC2 FUNC3 ...) | 2012 (:KEYWORD FUNC1 FUNC2 FUNC3 ...) |
1914 | 2013 |
1915 Here :KEYWORD is one of :folder or :letter. If it is :folder then the default | 2014 Here :KEYWORD is one of :folder or :letter. If it is :folder then |
1916 buttons in the folder and show mode buffers are being specified. If it is | 2015 the default buttons in the folder and show mode buffers are being |
1917 :letter then the default buttons in the letter mode are listed. FUNC1, FUNC2, | 2016 specified. If it is :letter then the default buttons in the |
1918 FUNC3, ... are the names of the functions that the buttons would execute. | 2017 letter mode are listed. FUNC1, FUNC2, FUNC3, ... are the names of |
1919 | 2018 the functions that the buttons would execute. |
1920 Each element of BUTTONS is a list consisting of four mandatory items and one | 2019 |
1921 optional item as follows: | 2020 Each element of BUTTONS is a list consisting of four mandatory |
2021 items and one optional item as follows: | |
1922 | 2022 |
1923 (FUNCTION MODES ICON DOC &optional ENABLE-EXPR) | 2023 (FUNCTION MODES ICON DOC &optional ENABLE-EXPR) |
1924 | 2024 |
1925 where, | 2025 where, |
1926 | 2026 |
1927 FUNCTION is the name of the function that will be executed when the button | 2027 FUNCTION is the name of the function that will be executed when |
1928 is clicked. | 2028 the button is clicked. |
1929 | 2029 |
1930 MODES is a list of symbols. List elements must be from `folder', `letter' and | 2030 MODES is a list of symbols. List elements must be from `folder', |
1931 `sequence'. If `folder' is present then the button is available in the | 2031 `letter' and `sequence'. If `folder' is present then the button is |
1932 folder and show buffer. If the name of FUNCTION is of the form \"mh-foo\", | 2032 available in the folder and show buffer. If the name of FUNCTION is |
1933 where foo is some arbitrary string, then we check if the function | 2033 of the form \"mh-foo\", where foo is some arbitrary string, then we |
1934 `mh-show-foo' exists. If it exists then that function is used in the show | 2034 check if the function `mh-show-foo' exists. If it exists then that |
1935 buffer. Otherwise the original function `mh-foo' is used in the show buffer | 2035 function is used in the show buffer. Otherwise the original function |
1936 as well. Presence of `sequence' is handled similar to the above. The only | 2036 `mh-foo' is used in the show buffer as well. Presence of `sequence' |
1937 difference is that the button is shown only when the folder is narrowed to a | 2037 is handled similar to the above. The only difference is that the |
1938 sequence. If `letter' is present in MODES, then the button is available | 2038 button is shown only when the folder is narrowed to a sequence. If |
1939 during draft editing and runs FUNCTION when clicked. | 2039 `letter' is present in MODES, then the button is available during |
2040 draft editing and runs FUNCTION when clicked. | |
1940 | 2041 |
1941 ICON is the icon that is drawn in the button. | 2042 ICON is the icon that is drawn in the button. |
1942 | 2043 |
1943 DOC is the documentation for the button. It is used in tool-tips and in | 2044 DOC is the documentation for the button. It is used in tool-tips and |
1944 providing other help to the user. GNU Emacs uses only the first line of the | 2045 in providing other help to the user. GNU Emacs uses only the first |
1945 string. So the DOC should be formatted such that the first line is useful and | 2046 line of the string. So the DOC should be formatted such that the |
1946 complete without the rest of the string. | 2047 first line is useful and complete without the rest of the string. |
1947 | 2048 |
1948 Optional item ENABLE-EXPR is an arbitrary lisp expression. If it evaluates | 2049 Optional item ENABLE-EXPR is an arbitrary lisp expression. If it |
1949 to nil, then the button is deactivated, otherwise it is active. If is in't | 2050 evaluates to nil, then the button is deactivated, otherwise it is |
1950 present then the button is always active." | 2051 active. If is in't present then the button is always active." |
1951 ;; The following variable names have been carefully chosen to make code | 2052 ;; The following variable names have been carefully chosen to make code |
1952 ;; generation easier. Modifying the names should be done carefully. | 2053 ;; generation easier. Modifying the names should be done carefully. |
1953 (let (folder-buttons folder-docs folder-button-setter sequence-button-setter | 2054 (let (folder-buttons folder-docs folder-button-setter sequence-button-setter |
1954 show-buttons show-button-setter show-seq-button-setter | 2055 show-buttons show-button-setter show-seq-button-setter |
1955 letter-buttons letter-docs letter-button-setter | 2056 letter-buttons letter-docs letter-button-setter |
2235 ;;; Hooks (:group 'mh-hooks + group where hook described) | 2336 ;;; Hooks (:group 'mh-hooks + group where hook described) |
2236 | 2337 |
2237 (defcustom mh-after-commands-processed-hook nil | 2338 (defcustom mh-after-commands-processed-hook nil |
2238 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding requests. | 2339 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] after performing outstanding requests. |
2239 | 2340 |
2240 Variables that are useful in this hook include `mh-folders-changed', | 2341 Variables that are useful in this hook include |
2241 which lists which folders were affected by deletes and refiles. This | 2342 `mh-folders-changed', which lists which folders were affected by |
2242 list will always include the current folder, which is also available | 2343 deletes and refiles. This list will always include the current |
2243 in `mh-current-folder'." | 2344 folder, which is also available in `mh-current-folder'." |
2244 :type 'hook | 2345 :type 'hook |
2245 :group 'mh-hooks | 2346 :group 'mh-hooks |
2246 :group 'mh-folder) | 2347 :group 'mh-folder) |
2247 | 2348 |
2248 (defcustom mh-alias-reloaded-hook nil | 2349 (defcustom mh-alias-reloaded-hook nil |
2252 :group 'mh-alias) | 2353 :group 'mh-alias) |
2253 | 2354 |
2254 (defcustom mh-before-commands-processed-hook nil | 2355 (defcustom mh-before-commands-processed-hook nil |
2255 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding requests. | 2356 "Hook run by \\<mh-folder-mode-map>\\[mh-execute-commands] before performing outstanding requests. |
2256 | 2357 |
2257 Variables that are useful in this hook include `mh-delete-list' and | 2358 Variables that are useful in this hook include `mh-delete-list' |
2258 `mh-refile-list' which can be used to see which changes will be made | 2359 and `mh-refile-list' which can be used to see which changes will |
2259 to the current folder, `mh-current-folder'." | 2360 be made to the current folder, `mh-current-folder'." |
2260 :type 'hook | 2361 :type 'hook |
2261 :group 'mh-hooks | 2362 :group 'mh-hooks |
2262 :group 'mh-folder) | 2363 :group 'mh-folder) |
2263 | 2364 |
2264 (defcustom mh-before-quit-hook nil | 2365 (defcustom mh-before-quit-hook nil |
2265 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] before quitting MH-E. | 2366 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] before quitting MH-E. |
2266 | 2367 |
2267 This hook is called before the quit occurs, so you might use it to | 2368 This hook is called before the quit occurs, so you might use it |
2268 perform any MH-E operations; you could perform some query and abort | 2369 to perform any MH-E operations; you could perform some query and |
2269 the quit or call `mh-execute-commands', for example. | 2370 abort the quit or call `mh-execute-commands', for example. |
2270 | 2371 |
2271 See also `mh-quit-hook'." | 2372 See also `mh-quit-hook'." |
2272 :type 'hook | 2373 :type 'hook |
2273 :group 'mh-hooks | 2374 :group 'mh-hooks |
2274 :group 'mh-folder) | 2375 :group 'mh-folder) |
2275 | 2376 |
2276 (defcustom mh-before-send-letter-hook nil | 2377 (defcustom mh-before-send-letter-hook nil |
2277 "Hook run at the beginning of the \\<mh-letter-mode-map>\\[mh-send-letter] command. | 2378 "Hook run at the beginning of the \\<mh-letter-mode-map>\\[mh-send-letter] command. |
2278 | 2379 |
2279 For example, if you want to check your spelling in your message before | 2380 For example, if you want to check your spelling in your message |
2280 sending, add the `ispell-message' function." | 2381 before sending, add the `ispell-message' function." |
2281 :type 'hook | 2382 :type 'hook |
2282 :options '(ispell-message) | 2383 :options '(ispell-message) |
2283 :group 'mh-hooks | 2384 :group 'mh-hooks |
2284 :group 'mh-letter) | 2385 :group 'mh-letter) |
2285 | 2386 |
2286 (defcustom mh-delete-msg-hook nil | 2387 (defcustom mh-delete-msg-hook nil |
2287 "Hook run by \\<mh-letter-mode-map>\\[mh-delete-msg] after marking each message for deletion. | 2388 "Hook run by \\<mh-letter-mode-map>\\[mh-delete-msg] after marking each message for deletion. |
2288 | 2389 |
2289 For example, a past maintainer of MH-E used this once when he kept | 2390 For example, a past maintainer of MH-E used this once when he |
2290 statistics on his mail usage." | 2391 kept statistics on his mail usage." |
2291 :type 'hook | 2392 :type 'hook |
2292 :group 'mh-hooks | 2393 :group 'mh-hooks |
2293 :group 'mh-show) | 2394 :group 'mh-show) |
2294 | 2395 |
2295 (defcustom mh-find-path-hook nil | 2396 (defcustom mh-find-path-hook nil |
2296 "Hook run by `mh-find-path' after reading the user's MH profile. | 2397 "Hook run by `mh-find-path' after reading the user's MH profile. |
2297 | 2398 |
2298 This hook can be used the change the value of the variables that | 2399 This hook can be used the change the value of the variables that |
2299 `mh-find-path' sets if you need to run with different values between | 2400 `mh-find-path' sets if you need to run with different values |
2300 MH and MH-E." | 2401 between MH and MH-E." |
2301 :type 'hook | 2402 :type 'hook |
2302 :group 'mh-hooks | 2403 :group 'mh-hooks |
2303 :group 'mh-e) | 2404 :group 'mh-e) |
2304 | 2405 |
2305 (defcustom mh-folder-mode-hook nil | 2406 (defcustom mh-folder-mode-hook nil |
2321 :group 'mh-inc) | 2422 :group 'mh-inc) |
2322 | 2423 |
2323 (defcustom mh-insert-signature-hook nil | 2424 (defcustom mh-insert-signature-hook nil |
2324 "Hook run by \\<mh-letter-mode-map>\\[mh-insert-signature] after signature has been inserted. | 2425 "Hook run by \\<mh-letter-mode-map>\\[mh-insert-signature] after signature has been inserted. |
2325 | 2426 |
2326 Hook functions may access the actual name of the file or the function | 2427 Hook functions may access the actual name of the file or the |
2327 used to insert the signature with `mh-signature-file-name'." | 2428 function used to insert the signature with |
2429 `mh-signature-file-name'." | |
2328 :type 'hook | 2430 :type 'hook |
2329 :group 'mh-hooks | 2431 :group 'mh-hooks |
2330 :group 'mh-letter) | 2432 :group 'mh-letter) |
2331 | 2433 |
2332 (defcustom mh-kill-folder-suppress-prompt-hooks '(mh-index-p) | 2434 (defcustom mh-kill-folder-suppress-prompt-hooks '(mh-index-p) |
2333 "Abnormal hook run at the beginning of \\<mh-folder-mode-map>\\[mh-kill-folder]. | 2435 "Abnormal hook run at the beginning of \\<mh-folder-mode-map>\\[mh-kill-folder]. |
2334 | 2436 |
2335 The hook functions are called with no arguments and should return a | 2437 The hook functions are called with no arguments and should return |
2336 non-nil value to suppress the normal prompt when you remove a folder. | 2438 a non-nil value to suppress the normal prompt when you remove a |
2337 This is useful for folders that are easily regenerated. | 2439 folder. This is useful for folders that are easily regenerated. |
2338 | 2440 |
2339 The default value of `mh-index-p' suppresses the prompt on folders | 2441 The default value of `mh-index-p' suppresses the prompt on |
2340 generated by an index search. | 2442 folders generated by an index search. |
2341 | 2443 |
2342 WARNING: Use this hook with care. If there is a bug in your hook which | 2444 WARNING: Use this hook with care. If there is a bug in your hook |
2343 returns t on \"+inbox\" and you hit \\[mh-kill-folder] by accident in | 2445 which returns t on \"+inbox\" and you hit \\[mh-kill-folder] by |
2344 the \"+inbox\" folder, you will not be happy." | 2446 accident in the \"+inbox\" folder, you will not be happy." |
2345 :type 'hook | 2447 :type 'hook |
2346 :group 'mh-hooks | 2448 :group 'mh-hooks |
2347 :group 'mh-folder) | 2449 :group 'mh-folder) |
2348 | 2450 |
2349 (defcustom mh-letter-mode-hook nil | 2451 (defcustom mh-letter-mode-hook nil |
2350 "Hook run by `mh-letter-mode' on a new letter. | 2452 "Hook run by `mh-letter-mode' on a new letter. |
2351 | 2453 |
2352 This hook allows you to do some processing before editing a letter. | 2454 This hook allows you to do some processing before editing a |
2353 For example, you may wish to modify the header after \"repl\" has done | 2455 letter. For example, you may wish to modify the header after |
2354 its work, or you may have a complicated \"components\" file and need | 2456 \"repl\" has done its work, or you may have a complicated |
2355 to tell MH-E where the cursor should go." | 2457 \"components\" file and need to tell MH-E where the cursor should |
2458 go." | |
2356 :type 'hook | 2459 :type 'hook |
2357 :group 'mh-hooks | 2460 :group 'mh-hooks |
2358 :group 'mh-sending-mail) | 2461 :group 'mh-sending-mail) |
2359 | 2462 |
2360 (defcustom mh-mh-to-mime-hook nil | 2463 (defcustom mh-mh-to-mime-hook nil |
2364 :group 'mh-letter) | 2467 :group 'mh-letter) |
2365 | 2468 |
2366 (defcustom mh-pick-mode-hook nil | 2469 (defcustom mh-pick-mode-hook nil |
2367 "Hook run upon entry to `mh-pick-mode'\\<mh-folder-mode-map>. | 2470 "Hook run upon entry to `mh-pick-mode'\\<mh-folder-mode-map>. |
2368 | 2471 |
2369 If you find that you do the same thing over and over when editing the | 2472 If you find that you do the same thing over and over when editing |
2370 search template, you may wish to bind some shortcuts to keys. This can | 2473 the search template, you may wish to bind some shortcuts to keys. |
2371 be done with this hook which is called when \\[mh-search-folder] is | 2474 This can be done with this hook which is called when |
2372 run on a new pattern." | 2475 \\[mh-search-folder] is run on a new pattern." |
2373 :type 'hook | 2476 :type 'hook |
2374 :group 'mh-hooks | 2477 :group 'mh-hooks |
2375 :group 'mh-index) | 2478 :group 'mh-index) |
2376 | 2479 |
2377 (defcustom mh-quit-hook nil | 2480 (defcustom mh-quit-hook nil |
2378 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] after quitting MH-E. | 2481 "Hook run by \\<mh-folder-mode-map>\\[mh-quit] after quitting MH-E. |
2379 | 2482 |
2380 This hook is not run in an MH-E context, so you might use it to modify | 2483 This hook is not run in an MH-E context, so you might use it to |
2381 the window setup. | 2484 modify the window setup. |
2382 | 2485 |
2383 See also `mh-before-quit-hook'." | 2486 See also `mh-before-quit-hook'." |
2384 :type 'hook | 2487 :type 'hook |
2385 :group 'mh-hooks | 2488 :group 'mh-hooks |
2386 :group 'mh-folder) | 2489 :group 'mh-folder) |
2392 :group 'mh-folder) | 2495 :group 'mh-folder) |
2393 | 2496 |
2394 (defcustom mh-show-hook nil | 2497 (defcustom mh-show-hook nil |
2395 "Hook run after \\<mh-folder-mode-map>\\[mh-show] shows a message. | 2498 "Hook run after \\<mh-folder-mode-map>\\[mh-show] shows a message. |
2396 | 2499 |
2397 It is the last thing called after messages are displayed. It's used to | 2500 It is the last thing called after messages are displayed. It's |
2398 affect the behavior of MH-E in general or when `mh-show-mode-hook' is | 2501 used to affect the behavior of MH-E in general or when |
2399 too early." | 2502 `mh-show-mode-hook' is too early." |
2400 :type 'hook | 2503 :type 'hook |
2401 :group 'mh-hooks | 2504 :group 'mh-hooks |
2402 :group 'mh-show) | 2505 :group 'mh-show) |
2403 | 2506 |
2404 (defcustom mh-show-mode-hook nil | 2507 (defcustom mh-show-mode-hook nil |
2405 "Hook run upon entry to `mh-show-mode'. | 2508 "Hook run upon entry to `mh-show-mode'. |
2406 | 2509 |
2407 This hook is called early on in the process of the message display. It | 2510 This hook is called early on in the process of the message |
2408 is usually used to perform some action on the message's content." | 2511 display. It is usually used to perform some action on the |
2512 message's content." | |
2409 :type 'hook | 2513 :type 'hook |
2410 :group 'mh-hooks | 2514 :group 'mh-hooks |
2411 :group 'mh-show) | 2515 :group 'mh-show) |
2412 | 2516 |
2413 (defcustom mh-unseen-updated-hook nil | 2517 (defcustom mh-unseen-updated-hook nil |
2414 "Hook run after the unseen sequence has been updated. | 2518 "Hook run after the unseen sequence has been updated. |
2415 | 2519 |
2416 The variable `mh-seen-list' can be used by this hook to obtain the | 2520 The variable `mh-seen-list' can be used by this hook to obtain |
2417 list of messages which were removed from the unseen sequence." | 2521 the list of messages which were removed from the unseen |
2522 sequence." | |
2418 :type 'hook | 2523 :type 'hook |
2419 :group 'mh-hooks | 2524 :group 'mh-hooks |
2420 :group 'mh-sequences) | 2525 :group 'mh-sequences) |
2421 | 2526 |
2422 | 2527 |
2691 "Face used to highlight a good PGG signature." | 2796 "Face used to highlight a good PGG signature." |
2692 :group 'mh-show-faces) | 2797 :group 'mh-show-faces) |
2693 | 2798 |
2694 (defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown | 2799 (defvar mh-show-pgg-unknown-face 'mh-show-pgg-unknown |
2695 "Face used to highlight a PGG signature whose status is unknown. | 2800 "Face used to highlight a PGG signature whose status is unknown. |
2696 This face is also used for a signature when the signer is untrusted.") | 2801 This face is also used for a signature when the signer is |
2802 untrusted.") | |
2697 (defface mh-show-pgg-unknown | 2803 (defface mh-show-pgg-unknown |
2698 '((t | 2804 '((t |
2699 (:bold t :foreground "DarkGoldenrod2"))) | 2805 (:bold t :foreground "DarkGoldenrod2"))) |
2700 "Face used to highlight a PGG signature whose status is unknown. | 2806 "Face used to highlight a PGG signature whose status is unknown. |
2701 This face is also used for a signature when the signer is untrusted." | 2807 This face is also used for a signature when the signer is untrusted." |