I've got this correspondent who I don't dare tell to get a real MUA
(he's my boss), so I whipped this little function up:
(defun sjt/fix-takagi ()
(interactive)
(save-excursion
(let ((vm-frame-per-edit nil))
(vm-edit-message))
(goto-char (point-min))
(search-forward "\nFrom: ")
(beginning-of-line)
(insert "MIME-Version: 1.0")
(insert "Content-Type: text/plain; charset=ISO-2022-JP\n")
(goto-char (point-min))
(while (search-forward "\033$@" nil t)
(replace-match "\033$B" nil t))
(goto-char (point-min))
(while (search-forward "\033(J" nil t)
(replace-match "\033(B" nil t))
(vm-edit-message-end)))
I execute it using M-x sjt/fix-takagi RET, in a VM frame containing a
Summary window at top, a Presentation window, and a BBDB window at
bottom. Point is on Takagi's most recent message in the Summary
window.
Somehow after the function is executed, point ends up in the BBDB
window. Also sometimes it closes the Presentation window, and
sometimes it doesn't. (I'm not sure what determines when this
happens.) Either way, point is always left in the BBDB window.
P.S. Kyle doesn't want anybody to know about this function. Policy
is to yell at correspondents, not to knuckle under. So don't tell
anyone. ;-)
Emacs : XEmacs 21.2 (beta45) "Thelxepeia" [Lucid] (i586-pc-linux, Mule) of Mon
Apr 2 2001 on turnbull
Package: VM 6.88
current state:
==============
(setq
vm-arrived-message-hook nil
vm-arrived-messages-hook nil
vm-auto-center-summary nil
vm-auto-decode-mime-messages t
vm-auto-displayed-mime-content-type-exceptions '("text/html")
vm-auto-displayed-mime-content-types '("text" "multipart")
vm-auto-folder-case-fold-search t
vm-auto-get-new-mail t
vm-auto-next-message t
vm-berkeley-mail-compatibility nil
vm-check-folder-types t
vm-circular-folders nil
vm-confirm-new-folders t
vm-confirm-quit 0
vm-convert-folder-types t
vm-crash-box "~/.crash.INBOX"
vm-crash-box-suffix nil
vm-default-From_-folder-type 'From_
vm-default-folder-type 'From_
vm-delete-after-archiving nil
vm-delete-after-bursting nil
vm-delete-after-saving nil
vm-delete-empty-folders t
vm-digest-burst-type "guess"
vm-digest-identifier-header-format "X-Digest: %s\n"
vm-digest-center-preamble t
vm-digest-preamble-format "\"%s\" (%F)"
vm-digest-send-type "mime"
vm-display-buffer-hook nil
vm-display-using-mime t
vm-edit-message-hook nil
vm-edit-message-mode 'text-mode
vm-fill-paragraphs-containing-long-lines nil
vm-flush-interval 90
vm-folder-directory "~/VM/"
vm-folder-read-only nil
vm-folders-summary-database "~/.vm.folders.db"
vm-folders-summary-directories '("~/")
vm-folders-summary-format " %12f %4t total, %n new, %u unread, %s spooled\n"
vm-follow-summary-cursor t
vm-forward-message-hook nil
vm-forwarded-headers nil
vm-forwarding-digest-type "mime"
vm-forwarding-subject-format "forwarded message from %F"
vm-frame-parameter-alist '((folder (height 40 width 90)))
vm-frame-per-completion t
vm-frame-per-composition t
vm-frame-per-edit t
vm-frame-per-folder t
vm-frame-per-folders-summary nil
vm-frame-per-help nil
vm-frame-per-summary nil
vm-highlight-url-face 'bold-italic
vm-highlighted-header-regexp nil
vm-honor-page-delimiters nil
vm-image-directory "/playpen/gnu/plat/lib/xemacs/xemacs-packages/etc/vm/"
vm-imap-bytes-per-session nil
vm-imap-expunge-after-retrieving t
vm-imap-max-message-size nil
vm-imap-messages-per-session nil
vm-imap-session-preauth-hook nil
vm-in-reply-to-format "%i"
vm-included-text-attribution-format "%F writes:\n"
vm-included-text-discard-header-regexp nil
vm-included-text-headers nil
vm-included-text-prefix " > "
vm-index-file-suffix nil
vm-init-file "~/.vm"
vm-infer-mime-types nil
vm-invisible-header-regexp nil
vm-jump-to-new-messages t
vm-jump-to-unread-messages t
vm-keep-crash-boxes nil
vm-keep-sent-messages 1
vm-lynx-program "lynx"
vm-mail-header-from nil
vm-mail-header-insert-date t
vm-mail-header-insert-message-id t
vm-mail-hook nil
vm-make-crash-box-name nil
vm-make-spool-file-name nil
vm-mail-check-interval 300
vm-mail-mode-hook nil
vm-mail-send-hook nil
vm-mime-7bit-composition-charset "us-ascii"
vm-mime-8bit-composition-charset "iso-8859-1"
vm-mime-8bit-text-transfer-encoding 'quoted-printable
vm-mime-alternative-select-method 'best-internal
vm-mime-attachment-auto-type-alist '(("\\.jpe?g$" .
"image/jpeg")
("\\.gif$" . "image/gif")
("\\.png$" . "image/png")
("\\.tiff?$" . "image/tiff")
("\\.html?$" . "text/html")
("\\.au$" . "audio/basic")
("\\.mpe?g$" . "video/mpeg")
("\\.ps$" . "application/postscript"))
vm-mime-attachment-save-directory nil
vm-mime-avoid-folding-content-type t
vm-mime-base64-decoder-program nil
vm-mime-base64-decoder-switches nil
vm-mime-base64-encoder-program nil
vm-mime-base64-encoder-switches nil
vm-mime-button-face 'gui-button-face
vm-mime-button-format-alist '(("text" . "%-35.35(%d, %c%) [%k to
%a]")
("multipart/alternative" .
"%-35.35(%d%) [%k to %a]")
("multipart/digest" .
"%-35.35(%d, %n message%s%) [%k to %a]")
("multipart" .
"%-35.35(%d, %n part%s%) [%k to %a]")
("message/partial" .
"%-35.35(%d, part %N (of %T)%) [%k to %a]")
("message/external-body" .
"%-35.35(%d%) [%k to %a (%x)]")
("message" . "%-35.35(%d%) [%k to %a]")
("audio" . "%-35.35(%d%) [%k to %a]")
("video" . "%-35.35(%d%) [%k to %a]")
("image" . "%-35.35(%d%) [%k to %a]")
("application/octet-stream" .
"%-35.35(%d, %f%) [%k to %a]")
)
vm-mime-charset-font-alist nil
vm-mime-confirm-delete t
vm-mime-decode-for-preview t
vm-mime-default-face-charset-exceptions nil
vm-mime-default-face-charsets '("us-ascii" "iso-8859-1")
vm-mime-delete-after-saving nil
vm-mime-delete-viewer-processes t
vm-mime-digest-discard-header-regexp nil
vm-mime-digest-headers '("Resent-" "From:" "Sender:"
"To:" "Cc:" "Subject:"
"Date:" "Message-ID:" "Keywords:"
"MIME-Version:"
"Content-")
vm-mime-display-function nil
vm-mime-external-content-types-alist '(("video" "xanim")
("audio/x-pn-realaudio"
"/playpen/proprietary/rvplayer5.0/rvplayer")
)
vm-mime-ignore-mime-version t
vm-mime-internal-content-type-exceptions '("text/html")
vm-mime-internal-content-types t
vm-mime-max-message-size nil
vm-mime-qp-decoder-program nil
vm-mime-qp-decoder-switches nil
vm-mime-qp-encoder-program nil
vm-mime-qp-encoder-switches nil
vm-mime-type-converter-alist nil
vm-mime-uuencode-decoder-program "uudecode"
vm-mime-uuencode-decoder-switches nil
vm-mode-hook nil
vm-mode-hooks nil
vm-mosaic-program "Mosaic"
vm-mosaic-program-switches nil
vm-move-after-deleting t
vm-move-after-undeleting nil
vm-move-after-killing nil
vm-move-messages-physically nil
vm-movemail-program "movemail"
vm-mutable-frames t
vm-mutable-windows t
vm-netscape-program "netscape"
vm-netscape-program-switches nil
vm-page-continuation-glyph "...press SPACE to see more..."
vm-paragraph-fill-column 70
vm-pop-bytes-per-session nil
vm-pop-expunge-after-retrieving t
vm-pop-max-message-size nil
vm-pop-messages-per-session nil
vm-pop-md5-program "md5"
vm-popup-menu-on-mouse-3 t
vm-preferences-file "~/.vm.preferences"
vm-preview-lines nil
vm-preview-read-messages nil
vm-primary-inbox "~/VM/INBOX"
vm-quit-hook '(vm-expunge-folder)
vm-recognize-imap-maildrops "^imap:[^:]+:[^:]+:[^:]+:[^:]+:[^:]+:[^:]+"
vm-recognize-pop-maildrops "^[^:]+:[^:]+:[^:]+:[^:]+:[^:]+"
vm-reply-hook nil
vm-reply-ignored-reply-tos '("tlug\\|taira")
vm-reply-subject-prefix nil
vm-resend-bounced-discard-header-regexp nil
vm-resend-bounced-headers '("MIME-Version:" "Content-"
"From:" "Sender:"
"Reply-To:" "To:" "Cc:" "Subject:"
"Newsgroups:"
"In-Reply-To:" "References:" "Keywords:"
"X-")
vm-resend-bounced-message-hook nil
vm-resend-discard-header-regexp "\\(\\(X400-\\)?Received:\\|Resent-\\)"
vm-resend-headers nil
vm-resend-message-hook nil
vm-retrieved-spooled-mail-hook nil
vm-rfc1153-digest-discard-header-regexp "\\(X400-\\)?Received:"
vm-rfc1153-digest-headers '("Resent-" "Date:" "From:"
"Sender:" "To:" "Cc:"
"Subject:" "Message-ID:" "Keywords:")
vm-rfc934-digest-discard-header-regexp nil
vm-rfc934-digest-headers '("Resent-" "From:" "Sender:"
"To:" "Cc:" "Subject:"
"Date:" "Message-ID:" "Keywords:")
vm-search-using-regexps nil
vm-select-message-hook '(bbdb/vm-update-record
sjt-vm-clean-tlug-subjects-function)
vm-select-new-message-hook nil
vm-select-unread-message-hook nil
vm-send-digest-hook nil
vm-send-using-mime t
vm-skip-deleted-messages t
vm-skip-read-messages nil
vm-spool-file-suffixes nil
vm-spooled-mail-waiting-hook nil
vm-startup-with-summary t
vm-strip-reply-headers nil
vm-subject-significant-chars nil
vm-summary-format "%n %*%a %-17.17F %-3.3m %2d %4l/%-5c %I\"%s\"\n"
vm-summary-highlight-face 'bold
vm-summary-mode-hook nil
vm-summary-mode-hooks nil
vm-summary-redo-hook nil
vm-summary-show-threads nil
vm-summary-thread-indent-level 2
vm-summary-uninteresting-senders nil
vm-summary-uninteresting-senders-arrow "To: "
vm-tale-is-an-idiot t
vm-temp-file-directory "/tmp"
vm-thread-using-subject t
vm-toolbar-pixmap-directory
"/playpen/gnu/plat/lib/xemacs/xemacs-packages/etc/vm/"
vm-trust-From_-with-Content-Length nil
vm-undisplay-buffer-hook nil
vm-unforwarded-header-regexp "only-drop-this-header"
vm-url-browser 'w3-fetch-other-frame
vm-url-retrieval-methods '(lynx wget url-w3)
vm-url-search-limit 12000
vm-use-menus '(folder motion send mark label sort virtual undo dispose emacs
nil help)
vm-use-toolbar '(next previous delete/undelete autofile file reply compose
print visit quit nil help)
vm-virtual-folder-alist nil
vm-virtual-mirror t
vm-visible-headers '("From:" "Sender:" "To:"
"Apparently-To:" "Cc:"
"Message-ID:" "Subject:" "Date:"
"X-TLUG-serial:"
"X-Mailer:")
vm-visit-folder-hook nil
vm-visit-when-saving 0
vm-warp-mouse-to-new-frame nil
vm-wget-program "wget"
vm-window-configuration-file "~/.vm.windows"
features '(reporter emacsbug vm-edit leim-canna-initialized canna poem
poem-xm pces pces-xfc pces-20 broken pces-xm poe-xemacs timer
overlay poe pym static apel-ver product efs-dired efs-x19\.15
efs-fnh efs-ovwrt efs-netrc efs-defun efs edmacro passwd shell
comint ring rfc822 vm-thread vm-mark facemenu enriched
mail-abbrevs sendmail vm-reply vm-sort vm-delete vm-minibuf
vm-macro vm-virtual font disp-table highlight-headers vm-mime
bbdb-xemacs bbdb-com bbdb-hooks vm-page vm-save vm-toolbar
vm-summary tapestry vm-motion vm-undo vm-message vm-menu vm-folder
vm-misc vm-mouse vm-window bbdb-vm vm-autoload vm-vars vm-version
vm vm-startup env dired-faces dired-xemacs dired info psgml-xemacs
sgml-mode psgml cc-mode cc-cmds cc-align cc-engine cc-langs
cc-styles cc-vars cc-menus imenu cc-defs efs-cu desktop gnuserv
font-lock filladapt bbdb-w3 bbdb-sc supercite regi bbdb-reportmail
advice advice-preload reportmail mail-extr bbdb-gnus gnus gnus-ems
gnus-xmas wid-edit gnus-util message messagexmas cus-face mml
mm-decode mm-encode mailcap mm-bodies uudecode mail-parse rfc2045
rfc2047 qp rfc2231 ietf-drums time-date parse-time nnheader
nnheaderxm mail-utils mailheader mm-util mail-prsvr bbdb t
timezone footnote tex-site dotxemacs-init xemacs-devel-autoloads
xemacs-base-autoloads w3-autoloads vm-autoloads
view-process-autoloads vc-autoloads tm-autoloads time-autoloads
textools-autoloads text-modes-autoloads texinfo-autoloads
supercite-autoloads strokes-autoloads speedbar-autoloads
slider-autoloads skk-autoloads sh-script-autoloads
reftex-autoloads psgml-autoloads prog-modes-autoloads
pcl-cvs-autoloads pc-autoloads os-utils-autoloads
net-utils-autoloads mule-base-autoloads misc-games-autoloads
mine-autoloads mailcrypt-autoloads mail-lib-autoloads
leim-autoloads ispell-autoloads igrep-autoloads
hm--html-menus-autoloads gnus-autoloads gnuplot-mode-autoloads
gnats-autoloads games-autoloads fsf-compat-autoloads
frame-icon-autoloads forms-autoloads footnote-autoloads
eudc-autoloads eterm-autoloads egg-its-autoloads efs-autoloads
edit-utils-autoloads ediff-autoloads edict-autoloads
edebug-autoloads dired-autoloads crisp-autoloads cookie-autoloads
cc-mode-autoloads calendar-autoloads calc-autoloads
c-support-autoloads bbdb-autoloads auctex-autoloads apel-autoloads
lisp-autoloads vc-hooks efs-dump loadhist auto-show fontl-hooks
x-iso8859-1 canna-leim slovenian czech romanian ccl mule-help
code-cmds gutter-items menubar-items x-menubar mode-motion mouse
itimer auto-save lisp-mode easymenu iso8859-1 page buff-menu
lib-complete cus-file derived frame text-props obsolete cus-start
custom widget cl-extra mini-cl cl cl-19 packages backquote
very-early-lisp CANNA file-coding mule lucid-scrollbars cut-buffer
lucid-menubars athena-dialogs x c-balloon-help tty-frames tty
toolbar native-sound scrollbar unix-processes multicast
network-streams subprocesses modules menubar berkeley-db md5
xemacs xim gutter tiff png gif jpeg xface xpm xbm lisp-float-type
linux dialog devices window-system base64)
)
--
University of Tsukuba Tennodai 1-1-1 Tsukuba 305-8573 JAPAN
Institute of Policy and Planning Sciences Tel/fax: +81 (298) 53-5091
_________________ _________________ _________________ _________________
What are those straight lines for? "XEmacs rules."