annotate lisp/mh-e/mh-init.el @ 68289:be0164ac55f8

(thumbs-buffer): New variable. Make it buffer local. (thumbs-find-image): Move image name and number from buffer name to mode name. Set thumbs-buffer. Preserve point so that large images remain visible. (thumbs-file-alist): Construct list in thumbs-buffer and reverse order. (thumbs-show-image-num): Get image from thumbs-file-alist. Set mode name. (thumbs-next-image, thumbs-previous-image): Make them work.
author Nick Roberts <nickrob@snap.net.nz>
date Fri, 20 Jan 2006 04:43:02 +0000
parents 3e14f7a3572e
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
67681
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
1 ;;; mh-init.el --- MH-E initialization
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
2
67969
3ca8b2234237 * mh-customize.el: Sync docstrings with manual for faces and sort them
Bill Wohler <wohler@newt.com>
parents: 67760
diff changeset
3 ;; Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
4
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
5 ;; Author: Peter S. Galbraith <psg@debian.org>
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
6 ;; Maintainer: Bill Wohler <wohler@newt.com>
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
7 ;; Keywords: mail
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
8 ;; See: mh-e.el
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
9
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
11
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
15 ;; any later version.
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
16
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
20 ;; GNU General Public License for more details.
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
21
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
23 ;; along with GNU Emacs; see the file COPYING. If not, write to the
64085
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62847
diff changeset
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 62847
diff changeset
25 ;; Boston, MA 02110-1301, USA.
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
26
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
27 ;;; Commentary:
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
28
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
29 ;; Sets up the MH variant (currently nmh, MH, or GNU mailutils).
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
30 ;;
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
31 ;; Users may customize `mh-variant' to switch between available variants.
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
32 ;; Available MH variants are returned by the function `mh-variants'.
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
33 ;; Developers may check which variant is currently in use with the
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
34 ;; variable `mh-variant-in-use' or the function `mh-variant-p'.
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
35 ;;
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
36 ;; Also contains code that is used at load or initialization time only.
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
37
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
38 ;;; Change Log:
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
39
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
40 ;;; Code:
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
41
68199
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
42 ;;(message "> mh-init")
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
43 (eval-when-compile (require 'mh-acros))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
44 (mh-require-cl)
68135
03bac2d0a4aa * Makefile (MH_E_SRC): Add mh-buffers.el.
Bill Wohler <wohler@newt.com>
parents: 68127
diff changeset
45 (require 'mh-buffers)
68199
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
46 (require 'mh-exec)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
47 ;;(message "< mh-init")
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
48
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
49 (defvar mh-sys-path
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
50 '("/usr/local/nmh/bin" ; nmh default
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
51 "/usr/local/bin/mh/"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
52 "/usr/local/mh/"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
53 "/usr/bin/mh/" ; Ultrix 4.2, Linux
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
54 "/usr/new/mh/" ; Ultrix < 4.2
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
55 "/usr/contrib/mh/bin/" ; BSDI
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
56 "/usr/pkg/bin/" ; NetBSD
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
57 "/usr/local/bin/"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
58 "/usr/local/bin/mu-mh/" ; GNU mailutils - default
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
59 "/usr/bin/mu-mh/") ; GNU mailutils - packaged
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
60 "List of directories to search for variants of the MH variant.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
61 The list `exec-path' is searched in addition to this list.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
62 There's no need for users to modify this list. Instead add extra
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
63 directories to the customizable variable `mh-path'.")
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
64
67681
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
65 ;; Set for local environment:
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
66 ;; mh-progs and mh-lib used to be set in paths.el, which tried to
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
67 ;; figure out at build time which of several possible directories MH
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
68 ;; was installed into. But if you installed MH after building Emacs,
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
69 ;; this would almost certainly be wrong, so now we do it at run time.
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
70
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
71 (defvar mh-flists-present-flag nil
67760
9c3504ae6060 Follow MH-E Developers Guide conventions. Use `' quotes for Help
Bill Wohler <wohler@newt.com>
parents: 67758
diff changeset
72 "Non-nil means that we have \"flists\".")
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
73
67449
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
74 (defvar mh-variants nil
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
75 "List describing known MH variants.
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
76 Do not access this variable directly as it may not have yet been initialized.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
77 Use the function `mh-variants' instead.")
67449
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
78
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
79 ;;;###mh-autoload
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
80 (defun mh-variants ()
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
81 "Return a list of installed variants of MH on the system.
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
82 This function looks for MH in `mh-sys-path', `mh-path' and
67758
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
83 `exec-path'. The format of the list of variants that is returned
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
84 is described by the variable `mh-variants'."
67449
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
85 (if mh-variants
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
86 mh-variants
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
87 (let ((list-unique))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
88 ;; Make a unique list of directories, keeping the given order.
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
89 ;; We don't want the same MH variant to be listed multiple times.
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
90 (loop for dir in (append mh-path mh-sys-path exec-path) do
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
91 (setq dir (file-chase-links (directory-file-name dir)))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
92 (add-to-list 'list-unique dir))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
93 (loop for dir in (nreverse list-unique) do
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
94 (when (and dir (file-directory-p dir) (file-readable-p dir))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
95 (let ((variant (mh-variant-info dir)))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
96 (if variant
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
97 (add-to-list 'mh-variants variant)))))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
98 mh-variants)))
315e71e95246 * mh-customize.el (mh-path): Move here from mh-init.el.
Bill Wohler <wohler@newt.com>
parents: 67245
diff changeset
99
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
100 (defun mh-variant-info (dir)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
101 "Return MH variant found in DIR, or nil if none present."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
102 (save-excursion
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
103 (let ((tmp-buffer (get-buffer-create mh-temp-buffer)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
104 (set-buffer tmp-buffer)
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
105 (cond
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
106 ((mh-variant-mh-info dir))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
107 ((mh-variant-nmh-info dir))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
108 ((mh-variant-mu-mh-info dir))))))
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
109
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
110 (defun mh-variant-mh-info (dir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
111 "Return info for MH variant in DIR assuming a temporary buffer is setup."
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
112 ;; MH does not have the -version option.
67760
9c3504ae6060 Follow MH-E Developers Guide conventions. Use `' quotes for Help
Bill Wohler <wohler@newt.com>
parents: 67758
diff changeset
113 ;; Its version number is included in the output of "-help" as:
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
114 ;;
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
115 ;; version: MH 6.8.4 #2[UCI] (burrito) of Fri Jan 15 20:01:39 EST 1999
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
116 ;; options: [ATHENA] [BIND] [DUMB] [LIBLOCKFILE] [LOCALE] [MAILGROUP] [MHE]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
117 ;; [MHRC] [MIME] [MORE='"/usr/bin/sensible-pager"'] [NLINK_HACK]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
118 ;; [NORUSERPASS] [OVERHEAD] [POP] [POPSERVICE='"pop-3"'] [RENAME]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
119 ;; [RFC1342] [RPATHS] [RPOP] [SENDMTS] [SMTP] [SOCKETS]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
120 ;; [SPRINTFTYPE=int] [SVR4] [SYS5] [SYS5DIR] [TERMINFO]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
121 ;; [TYPESIG=void] [UNISTD] [UTK] [VSPRINTF]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
122 (let ((mhparam (expand-file-name "mhparam" dir)))
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
123 (when (mh-file-command-p mhparam)
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
124 (erase-buffer)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
125 (call-process mhparam nil '(t nil) nil "-help")
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
126 (goto-char (point-min))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
127 (when (search-forward-regexp "version: MH \\(\\S +\\)" nil t)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
128 (let ((version (format "MH %s" (match-string 1))))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
129 (erase-buffer)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
130 (call-process mhparam nil '(t nil) nil "libdir")
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
131 (goto-char (point-min))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
132 (when (search-forward-regexp "^.*$" nil t)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
133 (let ((libdir (match-string 0)))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
134 `(,version
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
135 (variant mh)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
136 (mh-lib-progs ,libdir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
137 (mh-lib ,libdir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
138 (mh-progs ,dir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
139 (flists nil)))))))))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
140
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
141 (defun mh-variant-mu-mh-info (dir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
142 "Return info for GNU mailutils variant in DIR.
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
143 This assumes that a temporary buffer is setup."
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
144 ;; 'mhparam -version' output:
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
145 ;; mhparam (GNU mailutils 0.3.2)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
146 (let ((mhparam (expand-file-name "mhparam" dir)))
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
147 (when (mh-file-command-p mhparam)
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
148 (erase-buffer)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
149 (call-process mhparam nil '(t nil) nil "-version")
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
150 (goto-char (point-min))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
151 (when (search-forward-regexp "mhparam (\\(GNU [Mm]ailutils \\S +\\))"
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
152 nil t)
68114
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
153 (let ((version (match-string 1))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
154 (mh-progs dir))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
155 `(,version
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
156 (variant mu-mh)
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
157 (mh-lib-progs ,(mh-profile-component "libdir"))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
158 (mh-lib ,(mh-profile-component "etcdir"))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
159 (mh-progs ,dir)
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
160 (flists ,(file-exists-p
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
161 (expand-file-name "flists" dir)))))))))
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
162
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
163 (defun mh-variant-nmh-info (dir)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
164 "Return info for nmh variant in DIR assuming a temporary buffer is setup."
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
165 ;; `mhparam -version' outputs:
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
166 ;; mhparam -- nmh-1.1-RC1 [compiled on chaak at Fri Jun 20 11:03:28 PDT 2003]
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
167 (let ((mhparam (expand-file-name "mhparam" dir)))
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
168 (when (mh-file-command-p mhparam)
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
169 (erase-buffer)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
170 (call-process mhparam nil '(t nil) nil "-version")
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
171 (goto-char (point-min))
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
172 (when (search-forward-regexp "mhparam -- nmh-\\(\\S +\\)" nil t)
68114
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
173 (let ((version (format "nmh %s" (match-string 1)))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
174 (mh-progs dir))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
175 `(,version
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
176 (variant nmh)
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
177 (mh-lib-progs ,(mh-profile-component "libdir"))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
178 (mh-lib ,(mh-profile-component "etcdir"))
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
179 (mh-progs ,dir)
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
180 (flists ,(file-exists-p
86ac787740e6 (mh-variant-mu-mh-info, mh-variant-nmh-info): Applied patch from
Bill Wohler <wohler@newt.com>
parents: 68105
diff changeset
181 (expand-file-name "flists" dir)))))))))
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
182
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
183 (defun mh-file-command-p (file)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
184 "Return t if file FILE is the name of a executable regular file."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
185 (and (file-regular-p file) (file-executable-p file)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
186
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
187 (defvar mh-variant-in-use nil
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
188 "The MH variant currently in use; a string with variant and version number.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
189 This differs from `mh-variant' when the latter is set to
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
190 \"autodetect\".")
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
191
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
192 ;;;###mh-autoload
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
193 (defun mh-variant-set (variant)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
194 "Set the MH variant to VARIANT.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
195 Sets `mh-progs', `mh-lib', `mh-lib-progs' and
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
196 `mh-flists-present-flag'.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
197 If the VARIANT is \"autodetect\", then first try nmh, then MH and
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
198 finally GNU mailutils."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
199 (interactive
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
200 (list (completing-read
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
201 "MH variant: "
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
202 (mapcar (lambda (x) (list (car x))) (mh-variants))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
203 nil t)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
204 (let ((valid-list (mapcar (lambda (x) (car x)) (mh-variants))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
205 (cond
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
206 ((eq variant 'none))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
207 ((eq variant 'autodetect)
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
208 (cond
68127
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
209 ((mh-variant-set-variant 'nmh)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
210 (message "%s installed as MH variant" mh-variant-in-use))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
211 ((mh-variant-set-variant 'mh)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
212 (message "%s installed as MH variant" mh-variant-in-use))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
213 ((mh-variant-set-variant 'mu-mh)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
214 (message "%s installed as MH variant" mh-variant-in-use))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
215 (t
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
216 (message "No MH variant found on the system"))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
217 ((member variant valid-list)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
218 (when (not (mh-variant-set-variant variant))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
219 (message "Warning: %s variant not found. Autodetecting..." variant)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
220 (mh-variant-set 'autodetect)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
221 (t
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
222 (message "Unknown variant; use %s"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
223 (mapconcat '(lambda (x) (format "%s" (car x)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
224 (mh-variants) " or "))))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
225
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
226 (defun mh-variant-set-variant (variant)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
227 "Setup the system variables for the MH variant named VARIANT.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
228 If VARIANT is a string, use that key in the alist returned by the
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
229 function `mh-variants'.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
230 If VARIANT is a symbol, select the first entry that matches that
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
231 variant."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
232 (cond
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
233 ((stringp variant) ;e.g. "nmh 1.1-RC1"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
234 (when (assoc variant (mh-variants))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
235 (let* ((alist (cdr (assoc variant (mh-variants))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
236 (lib-progs (cadr (assoc 'mh-lib-progs alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
237 (lib (cadr (assoc 'mh-lib alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
238 (progs (cadr (assoc 'mh-progs alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
239 (flists (cadr (assoc 'flists alist))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
240 ;;(set-default mh-variant variant)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
241 (setq mh-x-mailer-string nil
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
242 mh-flists-present-flag flists
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
243 mh-lib-progs lib-progs
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
244 mh-lib lib
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
245 mh-progs progs
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
246 mh-variant-in-use variant))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
247 ((symbolp variant) ;e.g. 'nmh (pick the first match)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
248 (loop for variant-list in (mh-variants)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
249 when (eq variant (cadr (assoc 'variant (cdr variant-list))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
250 return (let* ((version (car variant-list))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
251 (alist (cdr variant-list))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
252 (lib-progs (cadr (assoc 'mh-lib-progs alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
253 (lib (cadr (assoc 'mh-lib alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
254 (progs (cadr (assoc 'mh-progs alist)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
255 (flists (cadr (assoc 'flists alist))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
256 ;;(set-default mh-variant flavor)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
257 (setq mh-x-mailer-string nil
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
258 mh-flists-present-flag flists
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
259 mh-lib-progs lib-progs
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
260 mh-lib lib
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
261 mh-progs progs
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
262 mh-variant-in-use version)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
263 t)))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
264
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
265 ;;;###mh-autoload
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
266 (defun mh-variant-p (&rest variants)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
267 "Return t if variant is any of VARIANTS.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
268 Currently known variants are 'MH, 'nmh, and 'mu-mh."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
269 (let ((variant-in-use
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
270 (cadr (assoc 'variant (assoc mh-variant-in-use (mh-variants))))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
271 (not (null (member variant-in-use variants)))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
272
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
273
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
274
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
275 ;;; Read MH Profile
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
276
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
277 (defvar mh-find-path-run nil
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
278 "Non-nil if `mh-find-path' has been run already.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
279 Do not access this variable; `mh-find-path' already uses it to
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
280 avoid running more than once.")
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
281
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
282 (defun mh-find-path ()
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
283 "Set variables from user's MH profile.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
284
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
285 This function sets `mh-user-path' from your \"Path:\" MH profile
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
286 component (but defaults to \"Mail\" if one isn't present),
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
287 `mh-draft-folder' from \"Draft-Folder:\", `mh-unseen-seq' from
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
288 \"Unseen-Sequence:\", `mh-previous-seq' from
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
289 \"Previous-Sequence:\", and `mh-inbox' from \"Inbox:\" (defaults
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
290 to \"+inbox\").
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
291
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
292 The hook `mh-find-path-hook' is run after these variables have
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
293 been set. This hook can be used the change the value of these
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
294 variables if you need to run with different values between MH and
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
295 MH-E."
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
296 (unless mh-find-path-run
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
297 ;; Sanity checks.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
298 (if (and (getenv "MH")
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
299 (not (file-readable-p (getenv "MH"))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
300 (error "MH environment variable contains unreadable file %s"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
301 (getenv "MH")))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
302 (if (null (mh-variants))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
303 (error "Install MH and run install-mh before running MH-E"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
304 (let ((profile "~/.mh_profile"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
305 (if (not (file-readable-p profile))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
306 (error "Run install-mh before running MH-E")))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
307 ;; Read MH profile.
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
308 (setq mh-user-path (mh-profile-component "Path"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
309 (if (not mh-user-path)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
310 (setq mh-user-path "Mail"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
311 (setq mh-user-path
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
312 (file-name-as-directory
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
313 (expand-file-name mh-user-path (expand-file-name "~"))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
314 (unless mh-x-image-cache-directory
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
315 (setq mh-x-image-cache-directory
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
316 (expand-file-name ".mhe-x-image-cache" mh-user-path)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
317 (setq mh-draft-folder (mh-profile-component "Draft-Folder"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
318 (if mh-draft-folder
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
319 (progn
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
320 (if (not (mh-folder-name-p mh-draft-folder))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
321 (setq mh-draft-folder (format "+%s" mh-draft-folder)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
322 (if (not (file-exists-p (mh-expand-file-name mh-draft-folder)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
323 (error
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
324 "Draft folder \"%s\" not found; create it and try again"
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
325 (mh-expand-file-name mh-draft-folder)))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
326 (setq mh-inbox (mh-profile-component "Inbox"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
327 (cond ((not mh-inbox)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
328 (setq mh-inbox "+inbox"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
329 ((not (mh-folder-name-p mh-inbox))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
330 (setq mh-inbox (format "+%s" mh-inbox))))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
331 (setq mh-unseen-seq (mh-profile-component "Unseen-Sequence"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
332 (if mh-unseen-seq
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
333 (setq mh-unseen-seq (intern mh-unseen-seq))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
334 (setq mh-unseen-seq 'unseen)) ;old MH default?
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
335 (setq mh-previous-seq (mh-profile-component "Previous-Sequence"))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
336 (if mh-previous-seq
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
337 (setq mh-previous-seq (intern mh-previous-seq)))
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
338 (run-hooks 'mh-find-path-hook)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
339 (mh-collect-folder-names)
40429cab94e1 * mh-index.el (mh-index-search): Checking mh-find-path-run is
Bill Wohler <wohler@newt.com>
parents: 68114
diff changeset
340 (setq mh-find-path-run t)))
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
341
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
342
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
343
68199
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
344 ;;; MH profile
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
345
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
346 (defun mh-profile-component (component)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
347 "Return COMPONENT value from mhparam, or nil if unset."
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
348 (save-excursion
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
349 (mh-exec-cmd-quiet nil "mhparam" "-components" component)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
350 (mh-profile-component-value component)))
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
351
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
352 (defun mh-profile-component-value (component)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
353 "Find and return the value of COMPONENT in the current buffer.
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
354 Returns nil if the component is not in the buffer."
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
355 (let ((case-fold-search t))
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
356 (goto-char (point-min))
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
357 (cond ((not (re-search-forward (format "^%s:" component) nil t)) nil)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
358 ((looking-at "[\t ]*$") nil)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
359 (t
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
360 (re-search-forward "[\t ]*\\([^\t \n].*\\)$" nil t)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
361 (let ((start (match-beginning 1)))
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
362 (end-of-line)
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
363 (buffer-substring start (point)))))))
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
364
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
365
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
366
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
367 ;;; MH-E images
5012e59a73c7 * mh-comp.el (mh-pgp-support-flag): Move here from mh-utils.el; needed
Bill Wohler <wohler@newt.com>
parents: 68135
diff changeset
368
68105
5772368fe15e * mh-funcs.el:
Bill Wohler <wohler@newt.com>
parents: 68096
diff changeset
369 ;; Shush compiler.
5772368fe15e * mh-funcs.el:
Bill Wohler <wohler@newt.com>
parents: 68096
diff changeset
370 (eval-when-compile (defvar image-load-path))
68096
57c4e7929f99 * mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents: 68013
diff changeset
371
66113
bfb1c3364c23 * mh-init.el (mh-image-load-path-called-flag): New variable which
Satyaki Das <satyaki@theforce.stanford.edu>
parents: 66087
diff changeset
372 (defvar mh-image-load-path-called-flag nil)
bfb1c3364c23 * mh-init.el (mh-image-load-path-called-flag): New variable which
Satyaki Das <satyaki@theforce.stanford.edu>
parents: 66087
diff changeset
373
65980
4520ae2624f2 * mh-init.el (mh-image-load-path): New function that adds the path to
Bill Wohler <wohler@newt.com>
parents: 64085
diff changeset
374 ;;;###mh-autoload
4520ae2624f2 * mh-init.el (mh-image-load-path): New function that adds the path to
Bill Wohler <wohler@newt.com>
parents: 64085
diff changeset
375 (defun mh-image-load-path ()
4520ae2624f2 * mh-init.el (mh-image-load-path): New function that adds the path to
Bill Wohler <wohler@newt.com>
parents: 64085
diff changeset
376 "Ensure that the MH-E images are accessible by `find-image'.
67758
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
377 Images for MH-E are found in ../../etc/images relative to the
67760
9c3504ae6060 Follow MH-E Developers Guide conventions. Use `' quotes for Help
Bill Wohler <wohler@newt.com>
parents: 67758
diff changeset
378 files in \"lisp/mh-e\". If `image-load-path' exists (since Emacs
67758
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
379 22), then the images directory is added to it if isn't already
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
380 there. Otherwise, the images directory is added to the
6b063593fdad Follow Emacs coding conventions. Use default setting of
Bill Wohler <wohler@newt.com>
parents: 67681
diff changeset
381 `load-path' if it isn't already there."
66113
bfb1c3364c23 * mh-init.el (mh-image-load-path-called-flag): New variable which
Satyaki Das <satyaki@theforce.stanford.edu>
parents: 66087
diff changeset
382 (unless mh-image-load-path-called-flag
66136
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
383 (let (mh-library-name mh-image-load-path)
66113
bfb1c3364c23 * mh-init.el (mh-image-load-path-called-flag): New variable which
Satyaki Das <satyaki@theforce.stanford.edu>
parents: 66087
diff changeset
384 ;; First, find mh-e in the load-path.
66136
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
385 (setq mh-library-name (locate-library "mh-e"))
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
386 (if (not mh-library-name)
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
387 (error "Can not find MH-E in load-path"))
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
388 (setq mh-image-load-path
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
389 (expand-file-name (concat (file-name-directory mh-library-name)
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
390 "../../etc/images")))
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
391 (if (not (file-exists-p mh-image-load-path))
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
392 (error "Can not find image directory %s" mh-image-load-path))
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
393 (if (boundp 'image-load-path)
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
394 (add-to-list 'image-load-path mh-image-load-path)
aacff8293f4b (mh-image-load-path): Use locate-library to find MH-E. This simplified
Bill Wohler <wohler@newt.com>
parents: 66128
diff changeset
395 (add-to-list 'load-path mh-image-load-path)))
66113
bfb1c3364c23 * mh-init.el (mh-image-load-path-called-flag): New variable which
Satyaki Das <satyaki@theforce.stanford.edu>
parents: 66087
diff changeset
396 (setq mh-image-load-path-called-flag t)))
65980
4520ae2624f2 * mh-init.el (mh-image-load-path): New function that adds the path to
Bill Wohler <wohler@newt.com>
parents: 64085
diff changeset
397
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
398
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
399
68096
57c4e7929f99 * mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents: 68013
diff changeset
400 ;;; Support routines for mh-customize.el
57c4e7929f99 * mh-alias.el (mh-alias-gecos-name): Use replace-regexp-in-string
Bill Wohler <wohler@newt.com>
parents: 68013
diff changeset
401
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
402 (defvar mh-min-colors-defined-flag (and (not mh-xemacs-flag)
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
403 (>= emacs-major-version 22))
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
404 "Non-nil means defface supports min-colors display requirement.")
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
405
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
406 (defun mh-defface-compat (spec)
67245
4b8cea82e2d9 (mh-defface-compat): Checkdoc fix.
Bill Wohler <wohler@newt.com>
parents: 66716
diff changeset
407 "Convert SPEC for defface if necessary to run on older platforms.
67988
7882fc7df359 * mh-alias.el (mh-alias-grab-from-field): Remove leading * from
Bill Wohler <wohler@newt.com>
parents: 67969
diff changeset
408 Modifies SPEC in place and returns it. See `defface' for the spec definition.
66716
25ad3e63f2a1 * mh-customize.el (mh-min-colors-defined-flag, mh-defface-compat):
Bill Wohler <wohler@newt.com>
parents: 66136
diff changeset
409
68000
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
410 When `mh-min-colors-defined-flag' is nil, this function finds
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
411 display entries with \"min-colors\" requirements and either
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
412 removes the \"min-colors\" requirement or strips the display
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
413 entirely if the display does not support the number of specified
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
414 colors."
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
415 (if mh-min-colors-defined-flag
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
416 spec
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
417 (let ((cells (display-color-cells))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
418 new-spec)
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
419 ;; Remove entries with min-colors, or delete them if we have fewer colors
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
420 ;; than they specify.
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
421 (loop for entry in (reverse spec) do
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
422 (let ((requirement (if (eq (car entry) t)
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
423 nil
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
424 (assoc 'min-colors (car entry)))))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
425 (if requirement
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
426 (when (>= cells (nth 1 requirement))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
427 (setq new-spec (cons (cons (delq requirement (car entry))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
428 (cdr entry))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
429 new-spec)))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
430 (setq new-spec (cons entry new-spec)))))
830e95c83d49 * mh-customize.el (mh-folder-msg-number): Snow is actually off-white
Bill Wohler <wohler@newt.com>
parents: 67988
diff changeset
431 new-spec)))
67245
4b8cea82e2d9 (mh-defface-compat): Checkdoc fix.
Bill Wohler <wohler@newt.com>
parents: 66716
diff changeset
432
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
433 (provide 'mh-init)
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
434
67681
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
435 ;; Local Variables:
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
436 ;; indent-tabs-mode: nil
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
437 ;; sentence-end-double-space: nil
3a8785724cca * mh-acros.el:
Bill Wohler <wohler@newt.com>
parents: 67449
diff changeset
438 ;; End:
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
439
56677
5aafbbdd005f Add arch taglines
Miles Bader <miles@gnu.org>
parents: 56676
diff changeset
440 ;; arch-tag: e8372aeb-d803-42b1-9c95-3c93ad22f63c
56676
db6d7638a259 Upgraded to MH-E version 7.4.80.
Bill Wohler <wohler@newt.com>
parents:
diff changeset
441 ;;; mh-init.el ends here