annotate lisp/mail/vms-pmail.el @ 72550:666bd542be19

(get_window_cursor_type): Replace BOX cursor on images with a hollow box cursor if image is larger than 32x32 (or the default frame font if that is bigger). Replace any other cursor on images with hollow box cursor, as redisplay doesn't support bar and hbar cursors on images.
author Kim F. Storm <storm@cua.dk>
date Sun, 27 Aug 2006 22:23:07 +0000
parents 067115a6e738
children 401ef839523a c5406394f567
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 30285
diff changeset
1 ;;; vms-pmail.el --- use Emacs as the editor within VMS mail
2232
4f9d60f7de9d Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1190
diff changeset
2
68648
067115a6e738 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64754
diff changeset
3 ;; Copyright (C) 1992, 2002, 2003, 2004, 2005,
067115a6e738 Update years in copyright notice; nfc.
Thien-Thi Nguyen <ttn@gnuvola.org>
parents: 64754
diff changeset
4 ;; 2006 Free Software Foundation, Inc.
1190
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
5
18013
e35b7126595f Comment change.
Richard M. Stallman <rms@gnu.org>
parents: 14169
diff changeset
6 ;; Author: Roland B Roberts <roberts@panix.com>
30285
0ff2877c9bbe Change maintainer to FSF.
Gerd Moellmann <gerd@gnu.org>
parents: 18383
diff changeset
7 ;; Maintainer: FSF
2247
2c7997f249eb Add or correct keywords
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 2232
diff changeset
8 ;; Keywords: vms
1190
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
9
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
10 ;; This file is part of GNU Emacs.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
11
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
12 ;; GNU Emacs is free software; you can redistribute it and/or modify
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
13 ;; it under the terms of the GNU General Public License as published by
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
14 ;; the Free Software Foundation; either version 2, or (at your option)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
15 ;; any later version.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
16
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
17 ;; GNU Emacs is distributed in the hope that it will be useful,
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
18 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
19 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
20 ;; GNU General Public License for more details.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
21
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
22 ;; You should have received a copy of the GNU General Public License
14169
83f275dcd93a Update FSF's address.
Erik Naggum <erik@naggum.no>
parents: 2247
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: 52401
diff changeset
24 ;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
18a818a2ee7c Update FSF's address.
Lute Kamstra <lute@gnu.org>
parents: 52401
diff changeset
25 ;; Boston, MA 02110-1301, USA.
1190
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
26
38412
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 30285
diff changeset
27 ;;; Commentary:
253f761ad37b Some fixes to follow coding conventions in files maintained by FSF.
Pavel Janík <Pavel@Janik.cz>
parents: 30285
diff changeset
28
1190
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
29 ;;; Code:
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
30
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
31 ;;;
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
32 ;;; Quick hack to use emacs as mail editor. There are a *bunch* of
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
33 ;;; changes scattered throughout emacs to make this work, namely:
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
34 ;;; (1) mod to sysdep.c to allow emacs to attach to a process other
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
35 ;;; than the one that originally spawned it.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
36 ;;; (2) mod to kepteditor.com to define the logical emacs_parent_pid
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
37 ;;; which is what sysdep.c looks for, and define the logical
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
38 ;;; emacs_command_args which contains the command line
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
39 ;;; (3) mod to re-parse command line arguments from emacs_command_args
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
40 ;;; then execute them as though emacs were just starting up.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
41 ;;;
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
42 (defun vms-pmail-save-and-exit ()
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
43 "Save current buffer and exit emacs.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
44 If this emacs cannot be suspended, you will be prompted about modified
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
45 buffers other than the mail buffer. BEWARE --- suspending emacs without
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
46 saving your mail buffer causes mail to abort the send (potentially useful
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
47 since the mail buffer is still here)."
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
48 (interactive)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
49 (basic-save-buffer)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
50 (if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
51 (progn
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
52 (save-some-buffers)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
53 (kill-emacs 1))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
54 (kill-buffer (current-buffer))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
55 (suspend-emacs)))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
56
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
57 (defun vms-pmail-abort ()
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
58 "Mark buffer as unmodified and exit emacs.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
59 When the editor is exited without saving its buffer, VMS mail does not
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
60 send a message. If you have other modified buffers you will be
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
61 prompted for what to do with them."
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
62 (interactive)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
63 (if (not (yes-or-no-p "Really abort mail? "))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
64 (ding)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
65 (not-modified)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
66 (if (vms-system-info "LOGICAL" "DONT_SUSPEND_EMACS")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
67 (progn
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
68 (save-some-buffers)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
69 (kill-emacs 1))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
70 (kill-buffer (current-buffer))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
71 (suspend-emacs))))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
72
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
73 (defun vms-pmail-setup ()
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
74 "Set up file assuming use by VMS MAIL utility.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
75 The buffer is put into text-mode, auto-save is turned off and the
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
76 following bindings are established.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
77
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
78 \\[vms-pmail-save-and-exit] vms-pmail-save-and-exit
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
79 \\[vms-pmail-abort] vms-pmail-abort
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
80
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
81 All other emacs commands are still available."
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
82 (interactive)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
83 (auto-save-mode -1)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
84 (text-mode)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
85 (let ((default (vms-system-info "LOGICAL" "SYS$SCRATCH"))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
86 (directory (file-name-directory (buffer-file-name)))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
87 (filename (file-name-nondirectory (buffer-file-name))))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
88 (if (string= directory "SYS$SCRATCH:")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
89 (progn
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
90 (cd default)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
91 (setq buffer-file-name (concat default filename))))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
92 (use-local-map (copy-keymap (current-local-map)))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
93 (local-set-key "\C-c\C-c" 'vms-pmail-save-and-exit)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
94 (local-set-key "\C-c\C-g" 'vms-pmail-abort)))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
95
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
96 (defun indicate-mail-reply-text ()
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
97 "Prepares received mail for re-sending by placing >'s on each line."
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
98 (interactive)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
99 (goto-char (point-min))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
100 (while (not (eobp))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
101 (insert ">")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
102 (beginning-of-line)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
103 (forward-line 1))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
104 (set-buffer-modified-p nil)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
105 (goto-char (point-min)))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
106
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
107 (defun insert-signature ()
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
108 "Moves to the end of the buffer and inserts a \"signature\" file.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
109 First try the file indicated by environment variable MAIL$TRAILER.
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
110 If that fails, try the file \"~/.signature\".
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
111 If neither file exists, fails quietly."
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
112 (interactive)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
113 (end-of-buffer)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
114 (newline)
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
115 (if (vms-system-info "LOGICAL" "MAIL$TRAILER")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
116 (if (file-attributes (vms-system-info "LOGICAL" "MAIL$TRAILER"))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
117 (insert-file-contents (vms-system-info "LOGICAL" "MAIL$TRAILER"))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
118 (if (file-attributes "~/.signature")
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
119 (insert-file-contents "~/.signature")))))
747b98b6d825 Initial revision
Richard M. Stallman <rms@gnu.org>
parents:
diff changeset
120
18383
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 18013
diff changeset
121 (provide 'vms-pmail)
11218164bc54 Add provide call.
Richard M. Stallman <rms@gnu.org>
parents: 18013
diff changeset
122
52401
695cf19ef79e Add arch taglines
Miles Bader <miles@gnu.org>
parents: 38412
diff changeset
123 ;;; arch-tag: 336850fc-7812-4663-8e4d-b9c13f47dce1
2232
4f9d60f7de9d Add standard library headers.
Eric S. Raymond <esr@snark.thyrsus.com>
parents: 1190
diff changeset
124 ;;; vms-pmail.el ends here