annotate lisp/mail/rfc2368.el @ 30408:e3e2c9051c5f

Got rid of all byte-compiler warnings on Emacs. Add to the menu when the file is loaded, not in ada-mode-hook. Add -toolbar to the default ddd command Switches moved from ada-prj-default-comp-cmd and ada-prj-default-make-cmd to ada-prj-default-comp-opt (ada-add-ada-menu): Remove the map and name parameters Add the Ada Reference Manual to the menu (ada-check-current): rewritten as a call to ada-compile-current (ada-compile): Removed. (ada-compile-application, ada-compile-current, ada-check-current): Set the compilation-search-path so that compile.el automatically finds the sources in src_dir. Automatic scrollong of the compilation buffer. C-uC-cC-c asks for confirmation before compiling (ada-compile-current): New parameter, prj-field (ada-complete-identifier): Load the .ali file before doing processing (ada-find-ali-file-in-dir): prepend build_dir to obj_dir to conform to gnatmake's behavior. (ada-find-file-in-dir): New function (ada-find-references): Set the environment variables for gnatfind (ada-find-src-file-in-dir): New function. (ada-first-non-nil): Removed (ada-gdb-application): Add support for jdb, the java debugger. (ada-get-ada-file-name): Load the original-file first if not done yet. (ada-get-all-references): Handles the new ali syntax (parent types are found between <>). (ada-initialize-runtime-library): New function (ada-mode-hook): Always load a project file when a file is opened, so that the casing exceptions are correctly read. (ada-operator-re): Add all missing operators ("abs", "rem", "**"). (ada-parse-prj-file): Use find-file-noselect instead of find-file to open the project file, since the latter does not work with speedbar Get default values before loading the prj file, or the default executable file name is wrong. Use the absolute value of src_dir to initialize ada-search-directories and compilation-search-path,... Add the standard runtime library to the search path for find-file. (ada-prj-default-debugger): Was missing an opening '{' (ada-prj-default-bind-opt, ada-prj-default-link-opt): New variables. (ada-prj-default-gnatmake-opt): New variable (ada-prj-find-prj-file): Handles non-file buffers For non-Ada buffers, the project file is the default one Save the windows configuration before displaying the menu. (ada-prj-src-dir, ada-prj-obj-dir, ada-prj-comp-opt,...): Removed (ada-read-identifier): Fix xrefs on operators (for "mod", "and", ...) regexp-quote identifiers names to support operators +, -,... in regexps. (ada-remote): New function. (ada-run-application): Erase the output buffer before starting the run Support remote execution of the application. Use call-process, or the arguments are incorrectly parsed (ada-set-default-project-file): Reread the content of the active project file, not the one from the current buffer When a project file is set as the default project, all directories are automatically associated with it. (ada-set-environment): New function (ada-treat-cmd-string): New special variable ${current} (ada-treat-cmd-string): Revised. The substitution is now done for any ${...} substring (ada-xref-current): If no body was found, compiles the spec instead. Setup ADA_{SOURCE,OBJECTS}_PATH before running the compiler to get rid of command line length limitations. (ada-xref-get-project-field): New function (ada-xref-project-files): New variable (ada-xref-runtime-library-specs-path) (ada-xref-runtime-library-ali-path): New variables (ada-xref-set-default-prj-values): Default run command now does a cd to the build directory. New field: main_unit Provide a default file name even if the current buffer has no prj file.
author Gerd Moellmann <gerd@gnu.org>
date Mon, 24 Jul 2000 11:13:11 +0000
parents afc8a292184c
children 0d8b17d428b5
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
28496
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
1 ;;; rfc2368.el --- support for rfc2368
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
2
28520
afc8a292184c Correct author's email address.
Gerd Moellmann <gerd@gnu.org>
parents: 28500
diff changeset
3 ;; Author: Sen Nagata <sen@eccosys.com>
28496
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
4 ;; Keywords: mail
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
5
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
6 ;; Copyright (C) 1998, 2000 Free Software Foundation, Inc.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
7
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
8 ;; This file is part of GNU Emacs.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
9
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
10 ;; GNU Emacs is free software; you can redistribute it and/or modify
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
11 ;; it under the terms of the GNU General Public License as published by
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
12 ;; the Free Software Foundation; either version 2, or (at your option)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
13 ;; any later version.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
14
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
15 ;; GNU Emacs is distributed in the hope that it will be useful,
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
16 ;; but WITHOUT ANY WARRANTY; without even the implied warranty of
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
17 ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
18 ;; GNU General Public License for more details.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
19
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
20 ;; You should have received a copy of the GNU General Public License
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
21 ;; along with GNU Emacs; see the file COPYING. If not, write to the
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
22 ;; Free Software Foundation, Inc., 59 Temple Place - Suite 330,
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
23 ;; Boston, MA 02111-1307, USA.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
24
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
25 ;;; Commentary:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
26 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
27 ;; notes:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
28 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
29 ;; -repeat after me: "the colon is not part of the header name..."
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
30 ;; -if w3 becomes part of emacs, then it may make sense to have this
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
31 ;; file depend on w3 -- the maintainer of w3 says merging w/ Emacs
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
32 ;; is planned!
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
33 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
34 ;; historical note:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
35 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
36 ;; this is intended as a replacement for mailto.el
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
37 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
38 ;; acknowledgements:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
39 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
40 ;; the functions that deal w/ unhexifying in this file were basically
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
41 ;; taken from w3 -- i hope to replace them w/ something else soon OR
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
42 ;; perhaps if w3 becomes a part of emacs soon, use the functions from w3.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
43
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
44 ;;; History:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
45 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
46 ;; 0.3:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
47 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
48 ;; added the constant rfc2368-version
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
49 ;; implemented first potential fix for a bug in rfc2368-mailto-regexp
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
50 ;; implemented first potential fix for a bug in rfc2368-parse-mailto
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
51 ;; (both bugs reported by Kenichi OKADA)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
52 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
53 ;; 0.2:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
54 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
55 ;; started to use checkdoc
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
56 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
57 ;; 0.1:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
58 ;;
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
59 ;; initial implementation
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
60
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
61 ;;; Code:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
62
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
63 ;; only an approximation?
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
64 ;; see rfc 1738
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
65 (defconst rfc2368-mailto-regexp
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
66 "^\\(mailto:\\)\\([^?]+\\)*\\(\\?\\(.*\\)\\)*"
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
67 "Regular expression to match and aid in parsing a mailto url.")
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
68
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
69 ;; describes 'mailto:'
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
70 (defconst rfc2368-mailto-scheme-index 1
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
71 "Describes the 'mailto:' portion of the url.")
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
72 ;; i'm going to call this part the 'prequery'
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
73 (defconst rfc2368-mailto-prequery-index 2
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
74 "Describes the portion of the url between 'mailto:' and '?'.")
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
75 ;; i'm going to call this part the 'query'
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
76 (defconst rfc2368-mailto-query-index 4
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
77 "Describes the portion of the url after '?'.")
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
78
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
79 ;; for dealing w/ unhexifying strings, my preferred approach is to use
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
80 ;; a 'string-replace-match-using-function' which can perform a
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
81 ;; string-replace-match and compute the replacement text based on a
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
82 ;; passed function -- however, emacs doesn't seem to have such a
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
83 ;; function yet :-(
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
84
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
85 ;; for the moment a rip-off of url-unhex (w3/url.el)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
86 (defun rfc2368-unhexify-char (char)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
87 "Unhexify CHAR -- e.g. %20 -> <SPC>."
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
88 (if (> char ?9)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
89 (if (>= char ?a)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
90 (+ 10 (- char ?a))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
91 (+ 10 (- char ?A)))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
92 (- char ?0)))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
93
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
94 ;; for the moment a rip-off of url-unhex-string (w3/url.el) (slightly modified)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
95 (defun rfc2368-unhexify-string (string)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
96 "Unhexify STRING -- e.g. 'hello%20there' -> 'hello there'."
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
97 (let ((case-fold-search t)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
98 (result ""))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
99 (while (string-match "%[0-9a-f][0-9a-f]" string)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
100 (let* ((start (match-beginning 0))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
101 (hex-code (+ (* 16
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
102 (rfc2368-unhexify-char (elt string (+ start 1))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
103 (rfc2368-unhexify-char (elt string (+ start 2))))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
104 (setq result (concat
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
105 result (substring string 0 start)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
106 (char-to-string hex-code))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
107 string (substring string (match-end 0)))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
108 ;; it seems clearer to do things this way than to just return:
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
109 ;; (concat result string)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
110 (setq result (concat result string))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
111 result))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
112
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
113 (defun rfc2368-parse-mailto-url (mailto-url)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
114 "Parse MAILTO-URL, and return an alist of header-name, header-value pairs.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
115 MAILTO-URL should be a RFC 2368 (mailto) compliant url. A cons cell w/ a
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
116 key of 'Body' is a special case and is considered a header for this purpose.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
117 The returned alist is intended for use w/ the `compose-mail' interface.
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
118 Note: make sure MAILTO-URL has been 'unhtmlized' (e.g. &amp; -> &), before
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
119 calling this function."
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
120 (let ((case-fold-search t)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
121 prequery query headers-alist)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
122
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
123 (if (string-match rfc2368-mailto-regexp mailto-url)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
124 (progn
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
125
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
126 (setq prequery
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
127 (match-string rfc2368-mailto-prequery-index mailto-url))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
128
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
129 (setq query
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
130 (match-string rfc2368-mailto-query-index mailto-url))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
131
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
132 ;; build alist of header name-value pairs
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
133 (if (not (null query))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
134 (setq headers-alist
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
135 (mapcar
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
136 (lambda (x)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
137 (let* ((temp-list (split-string x "="))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
138 (header-name (car temp-list))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
139 (header-value (cadr temp-list)))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
140 ;; return ("Header-Name" . "header-value")
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
141 (cons
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
142 (capitalize (rfc2368-unhexify-string header-name))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
143 (rfc2368-unhexify-string header-value))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
144 (split-string query "&"))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
145
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
146 ;; deal w/ multiple 'To' recipients
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
147 (if prequery
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
148 (progn
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
149 (if (assoc "To" headers-alist)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
150 (let* ((our-cons-cell
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
151 (assoc "To" headers-alist))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
152 (our-cdr
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
153 (cdr our-cons-cell)))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
154 (setcdr our-cons-cell (concat our-cdr ", " prequery)))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
155 (setq headers-alist
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
156 (cons (cons "To" prequery) headers-alist)))))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
157
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
158 headers-alist)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
159
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
160 (error "Failed to match a mailto: url"))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
161 ))
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
162
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
163 (provide 'rfc2368)
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
164
92a9591b21a2 *** empty log message ***
Gerd Moellmann <gerd@gnu.org>
parents:
diff changeset
165 ;;; rfc2368.el ends here