Mercurial > emacs
comparison man/mh-e.texi @ 37802:953a442c9130
Avoid overfull hboxes wherever possible.
author | Eli Zaretskii <eliz@gnu.org> |
---|---|
date | Fri, 18 May 2001 11:26:06 +0000 |
parents | 8c99f1078bb9 |
children | 1a52bb462cc9 |
comparison
equal
deleted
inserted
replaced
37801:6c6c8f8b2d4c | 37802:953a442c9130 |
---|---|
1 \input texinfo @c -*-texinfo-*- | 1 \input texinfo @c -*-texinfo-*- |
2 @c $Id: mh-e.texi,v 1.8 2001/02/19 19:13:47 wohler Exp $ | 2 @c $Id: mh-e.texi,v 1.9 2001/02/23 12:31:08 gerd Exp $ |
3 @c %**start of header | 3 @c %**start of header |
4 @setfilename ../info/mh-e | 4 @setfilename ../info/mh-e |
5 @settitle mh-e | 5 @settitle mh-e |
6 @c %**end of header | 6 @c %**end of header |
7 | 7 |
387 | 387 |
388 | 388 |
389 | 389 |
390 | 390 |
391 | 391 |
392 -----Emacs: *scratch* (Lisp Interaction)--All--------------------- | 392 -----Emacs: *scratch* (Lisp Interaction)--All------------------- |
393 To: wohler | 393 To: wohler |
394 cc: | 394 cc: |
395 Subject: Test | 395 Subject: Test |
396 -------- | 396 -------- |
397 This is a test message to get the wheels churning...# | 397 This is a test message to get the wheels churning...# |
398 | 398 |
399 | 399 |
400 --**-@{draft@} (MH-Letter)--All---------------------------------------- | 400 --**-@{draft@} (MH-Letter)--All------------------------------------- |
401 | 401 |
402 @end cartouche | 402 @end cartouche |
403 @i{mh-e message composition window} | 403 @i{mh-e message composition window} |
404 @end group | 404 @end group |
405 @end example | 405 @end example |
449 @key{RET} to read your message. You should see something like: | 449 @key{RET} to read your message. You should see something like: |
450 | 450 |
451 @example | 451 @example |
452 @group | 452 @group |
453 @cartouche | 453 @cartouche |
454 3 24Aug root received fax files on Wed Aug 24 11:00:13 PDT 1994 | 454 3 24Aug root received fax files on Wed Aug 24 11:00:13 PDT 1994 |
455 # 4+ 24Aug To:wohler Test<<This is a test message to get the wheels chu | 455 # 4+ 24Aug To:wohler Test<<This is a test message to get the wheels chu |
456 | 456 |
457 --%%-@{+inbox@} 4 msgs (1-4) (MH-Folder Show)--Bot--------------------- | 457 --%%-@{+inbox@} 4 msgs (1-4) (MH-Folder Show)--Bot------------------ |
458 To: wohler | 458 To: wohler |
459 Subject: Test | 459 Subject: Test |
460 Date: Wed, 24 Aug 1994 13:01:13 -0700 | 460 Date: Wed, 24 Aug 1994 13:01:13 -0700 |
461 From: Bill Wohler <wohler@@newt.com> | 461 From: Bill Wohler <wohler@@newt.com> |
462 | 462 |
464 | 464 |
465 | 465 |
466 | 466 |
467 | 467 |
468 | 468 |
469 -----@{show-+inbox@} 4 (MH-Show)--Bot---------------------------------- | 469 -----@{show-+inbox@} 4 (MH-Show)--Bot------------------------------- |
470 | 470 |
471 @end cartouche | 471 @end cartouche |
472 @i{After incorporating new messages} | 472 @i{After incorporating new messages} |
473 @end group | 473 @end group |
474 @end example | 474 @end example |
500 In-reply-to: Bill Wohler's message of Wed, 24 Aug 1994 13:01:13 -0700 | 500 In-reply-to: Bill Wohler's message of Wed, 24 Aug 1994 13:01:13 -0700 |
501 <199408242001.NAA00505@@newt.com> | 501 <199408242001.NAA00505@@newt.com> |
502 -------- | 502 -------- |
503 # | 503 # |
504 | 504 |
505 --**-@{draft@} (MH-Letter)--All---------------------------------------- | 505 --**-@{draft@} (MH-Letter)--All------------------------------------- |
506 To: wohler | 506 To: wohler |
507 Subject: Test | 507 Subject: Test |
508 Date: Wed, 24 Aug 1994 13:01:13 -0700 | 508 Date: Wed, 24 Aug 1994 13:01:13 -0700 |
509 From: Bill Wohler <wohler@@newt.com> | 509 From: Bill Wohler <wohler@@newt.com> |
510 | 510 |
511 This is a test message to get the wheels churning... | 511 This is a test message to get the wheels churning... |
512 | 512 |
513 -----@{show-+inbox@} 4 (MH-Show)--Bot---------------------------------- | 513 -----@{show-+inbox@} 4 (MH-Show)--Bot------------------------------- |
514 Composing a reply...done | 514 Composing a reply...done |
515 @end cartouche | 515 @end cartouche |
516 @i{Composition window during reply} | 516 @i{Composition window during reply} |
517 @end group | 517 @end group |
518 @end example | 518 @end example |
1766 | 1766 |
1767 | 1767 |
1768 | 1768 |
1769 | 1769 |
1770 | 1770 |
1771 --**-Emacs: pick-pattern (MH-Pick)------All---------------------------- | 1771 --**-Emacs: pick-pattern (MH-Pick)------All-------------------------- |
1772 | 1772 |
1773 @end cartouche | 1773 @end cartouche |
1774 @i{Pick window} | 1774 @i{Pick window} |
1775 @end group | 1775 @end group |
1776 @end example | 1776 @end example |
2392 which will display the folder name and the message number, respectively, | 2392 which will display the folder name and the message number, respectively, |
2393 somewhere in the string in that order. The default value of | 2393 somewhere in the string in that order. The default value of |
2394 @samp{"@{show-%s@} %d"} yields a mode line of | 2394 @samp{"@{show-%s@} %d"} yields a mode line of |
2395 | 2395 |
2396 @example | 2396 @example |
2397 -----@{show-+inbox@} 4 (MH-Show)--Bot---------------------------------- | 2397 -----@{show-+inbox@} 4 (MH-Show)--Bot-------------------------------- |
2398 @end example | 2398 @end example |
2399 | 2399 |
2400 @node Customizing Moving Around, , Customizing Viewing, Customizing Reading | 2400 @node Customizing Moving Around, , Customizing Viewing, Customizing Reading |
2401 @subsection Moving Around | 2401 @subsection Moving Around |
2402 | 2402 |
2452 | 2452 |
2453 @item mh-redist-full-contents | 2453 @item mh-redist-full-contents |
2454 @code{send} requires entire message (default: @code{nil}). | 2454 @code{send} requires entire message (default: @code{nil}). |
2455 | 2455 |
2456 @item mh-new-draft-cleaned-headers | 2456 @item mh-new-draft-cleaned-headers |
2457 Remove these header fields from re-edited draft (default: | 2457 Remove these header fields from re-edited draft. The default is: |
2458 @samp{"^Date:\\| ^Received:\\| ^Message-Id:\\| ^From:\\| ^Sender:\\| | 2458 @example |
2459 ^Delivery-Date:\\| ^Return-Path:"}). | 2459 "^Date:\\| ^Received:\\| ^Message-Id:\\| ^From:\\| |
2460 ^Sender:\\| ^Delivery-Date:\\| ^Return-Path:". | |
2461 @end example | |
2460 @end table | 2462 @end table |
2461 | 2463 |
2462 @cindex @code{comp} | 2464 @cindex @code{comp} |
2463 @cindex MH commands, @code{comp} | 2465 @cindex MH commands, @code{comp} |
2464 @vindex @code{mh-comp-formfile} | 2466 @vindex @code{mh-comp-formfile} |
2777 | 2779 |
2778 Emacs macros can be used to insert enriched text directives like | 2780 Emacs macros can be used to insert enriched text directives like |
2779 @samp{<bold>}. The following code will make, for example, @kbd{C-c t | 2781 @samp{<bold>}. The following code will make, for example, @kbd{C-c t |
2780 b} insert the @samp{<bold>} directive. | 2782 b} insert the @samp{<bold>} directive. |
2781 | 2783 |
2782 @lisp | 2784 @smallexample |
2783 @group | 2785 @group |
2784 @i{Emacs macros for entering enriched text} | 2786 @i{Emacs macros for entering enriched text} |
2785 | 2787 |
2786 (defvar enriched-text-types '(("b" . "bold") ("i" . "italic") ("f" . "fixed") | 2788 (defvar enriched-text-types '(("b" . "bold") ("i" . "italic") |
2787 ("s" . "smaller") ("B" . "bigger") | 2789 ("f" . "fixed") ("s" . "smaller") |
2788 ("u" . "underline") ("c" . "center")) | 2790 ("B" . "bigger") ("u" . "underline") |
2791 ("c" . "center")) | |
2789 "Alist of (final-character . directive) choices for add-enriched-text. | 2792 "Alist of (final-character . directive) choices for add-enriched-text. |
2790 Additional types can be found in RFC 1563.") | 2793 Additional types can be found in RFC 1563.") |
2791 | 2794 |
2792 (defun add-enriched-text (begin end) | 2795 (defun add-enriched-text (begin end) |
2793 "Add enriched text directives around region. | 2796 "Add enriched text directives around region. |
2803 (goto-char (point-min)) ; @r{move to beginning of text} | 2806 (goto-char (point-min)) ; @r{move to beginning of text} |
2804 (insert "<" type ">") ; @r{insert beginning directive} | 2807 (insert "<" type ">") ; @r{insert beginning directive} |
2805 (goto-char (point-max)) ; @r{move to end of text} | 2808 (goto-char (point-max)) ; @r{move to end of text} |
2806 (insert "</" type ">")))) ; @r{insert terminating directive} | 2809 (insert "</" type ">")))) ; @r{insert terminating directive} |
2807 @end group | 2810 @end group |
2808 @end lisp | 2811 @end smallexample |
2809 | 2812 |
2810 To use the function @code{add-enriched-text}, first create keybindings | 2813 To use the function @code{add-enriched-text}, first create keybindings |
2811 for it (@pxref{Customizing Sending}). Then, set the mark with | 2814 for it (@pxref{Customizing Sending}). Then, set the mark with |
2812 @kbd{C-@@} or @kbd{C-SPC}, type in the text to be highlighted, and type | 2815 @kbd{C-@@} or @kbd{C-SPC}, type in the text to be highlighted, and type |
2813 @kbd{C-c t b}. This adds @samp{<bold>} where you set the mark and | 2816 @kbd{C-c t b}. This adds @samp{<bold>} where you set the mark and |
3022 @end iftex | 3025 @end iftex |
3023 | 3026 |
3024 @vindex @code{mh-default-folder-for-message-function}, example | 3027 @vindex @code{mh-default-folder-for-message-function}, example |
3025 @vindex @code{mh-user-path}, example | 3028 @vindex @code{mh-user-path}, example |
3026 | 3029 |
3027 @lisp | 3030 @smallexample |
3028 @group | 3031 @group |
3029 @i{Creating useful default folder for refiling via mh-default-folder-for-message-function} | 3032 @i{Creating useful default folder for refiling via mh-default-folder-for-message-function} |
3030 | 3033 |
3031 (defun my-mh-folder-from-address () | 3034 (defun my-mh-folder-from-address () |
3032 "Determine folder name from address. | 3035 "Determine folder name from address. |
3033 Takes the address in the From: header field, and returns its corresponding | 3036 Takes the address in the From: header field, and returns its |
3034 alias from the user's personal aliases file. Returns @code{nil} if the address | 3037 corresponding alias from the user's personal aliases file. Returns |
3035 was not found." | 3038 @code{nil} if the address was not found." |
3036 (require 'rfc822) ; @r{for the rfc822 functions} | 3039 (require 'rfc822) ; @r{for the rfc822 functions} |
3037 (search-forward-regexp "^From: \\(.*\\)") ; @r{grab header field contents} | 3040 (search-forward-regexp "^From: \\(.*\\)") ; @r{grab header field contents} |
3038 (save-excursion ; @r{save state} | 3041 (save-excursion ; @r{save state} |
3039 (let ((addr (car (rfc822-addresses ; @r{get address} | 3042 (let ((addr (car (rfc822-addresses ; @r{get address} |
3040 (buffer-substring (match-beginning 1) | 3043 (buffer-substring (match-beginning 1) |
3048 mh-user-path)) | 3051 mh-user-path)) |
3049 (goto-char (point-min)) ; @r{grab aliases file and go to start} | 3052 (goto-char (point-min)) ; @r{grab aliases file and go to start} |
3050 (setq folder | 3053 (setq folder |
3051 ;; @r{Search for the given address, even commented-out} | 3054 ;; @r{Search for the given address, even commented-out} |
3052 ;; @r{addresses are found!} | 3055 ;; @r{addresses are found!} |
3053 ;; @r{The function search-forward-regexp sets values that are} | 3056 ;; @r{The function search-forward-regexp sets values that} |
3054 ;; @r{later used by match-beginning and match-end.} | 3057 ;; @r{are later used by match-beginning and match-end.} |
3055 (if (search-forward-regexp (format "^;*\\(.*\\):.*%s" | 3058 (if (search-forward-regexp (format "^;*\\(.*\\):.*%s" |
3056 addr) nil t) | 3059 addr) nil t) |
3057 ;; @r{NOTE WELL: this is what the return value looks like.} | 3060 ;; @r{NOTE WELL: this is what the return value looks} |
3058 ;; @r{You can modify the format string to match your own} | 3061 ;; @r{like. You can modify the format string to match} |
3059 ;; @r{Mail hierarchy.} | 3062 ;; @r{your own Mail hierarchy.} |
3060 (format "+%s" (buffer-substring (match-beginning 1) | 3063 (format "+%s" (buffer-substring |
3061 (match-end 1)))))) | 3064 (match-beginning 1) |
3065 (match-end 1)))))) | |
3062 (kill-buffer buffer)) ; @r{get rid of our temporary buffer} | 3066 (kill-buffer buffer)) ; @r{get rid of our temporary buffer} |
3063 folder))) ; @r{function's return value} | 3067 folder))) ; @r{function's return value} |
3064 | 3068 |
3065 (setq mh-default-folder-for-message-function 'my-mh-folder-from-address) | 3069 (setq mh-default-folder-for-message-function 'my-mh-folder-from-address) |
3066 @end group | 3070 @end group |
3067 @end lisp | 3071 @end smallexample |
3068 | 3072 |
3069 @vindex @code{mh-refile-msg-hook} | 3073 @vindex @code{mh-refile-msg-hook} |
3070 | 3074 |
3071 The hook @code{mh-refile-msg-hook} is called after a message is marked | 3075 The hook @code{mh-refile-msg-hook} is called after a message is marked |
3072 to be refiled. | 3076 to be refiled. |
3367 | 3371 |
3368 The version of mh-e in the current version of Emacs should be up to | 3372 The version of mh-e in the current version of Emacs should be up to |
3369 date. It is most likely to be more up to date than the copy that comes | 3373 date. It is most likely to be more up to date than the copy that comes |
3370 with the MH distribution in @file{miscellany/mh-e}. | 3374 with the MH distribution in @file{miscellany/mh-e}. |
3371 | 3375 |
3372 New mh-e releases will appear at | 3376 @c intentionally wordy to avoid overfull hbox |
3377 New mh-e releases are almost available for downloading at | |
3373 @uref{https://sourceforge.net/project/showfiles.php?group_id=13357, | 3378 @uref{https://sourceforge.net/project/showfiles.php?group_id=13357, |
3374 SourceForge} before they appear in an Emacs release. You can read the | 3379 SourceForge} before they appear in an Emacs release. You can read the |
3375 release notes on that page to determine if the given release of mh-e | 3380 release notes on that page to determine if the given release of mh-e |
3376 is already installed in your version of Emacs. | 3381 is already installed in your version of Emacs. |
3377 | 3382 |
3378 If you go this route, I suggest that you extract the files from | 3383 If you go this route, I suggest that you extract the files from |
3379 @file{mh-e-@var{m.n}.tgz} in the following fashion: | 3384 @file{mh-e-@var{m.n}.tgz} in the following fashion: |
3380 | 3385 |
3381 @example | 3386 @smallexample |
3382 @group | 3387 @group |
3383 % @kbd{cd} # @r{Start in your home directory} | 3388 % @kbd{cd} # @r{Start in your home directory} |
3384 % @kbd{mkdir lib lib/emacs} # @r{Create directory for mh-e} | 3389 % @kbd{mkdir lib lib/emacs} # @r{Create directory for mh-e} |
3385 % @kbd{cd lib/emacs} | 3390 % @kbd{cd lib/emacs} |
3386 % @kbd{zcat @var{path/to/}mh-e-@var{m.n}.tgz | tar xvf -} # @r{Extract files} | 3391 % @kbd{zcat @var{path/to/}mh-e-@var{m.n}.tgz | tar xvf -} # @r{Extract files} |
3387 @end group | 3392 @end group |
3388 @end example | 3393 @end smallexample |
3389 | 3394 |
3390 @cindex @file{.emacs} | 3395 @cindex @file{.emacs} |
3391 @cindex files, @file{.emacs} | 3396 @cindex files, @file{.emacs} |
3392 | 3397 |
3393 To use these new files, add the following to @file{~/.emacs}: | 3398 To use these new files, add the following to @file{~/.emacs}: |