Mercurial > emacs
view lisp/org/org-mac-message.el @ 99613:785924da433d
(Splitting Windows, Deleting Windows)
(Selecting Windows, Cyclic Window Ordering)
(Buffers and Windows, Displaying Buffers, Choosing Window)
(Dedicated Windows, Window Point, Window Start and End)
(Textual Scrolling, Vertical Scrolling, Horizontal Scrolling)
(Size of Window, Resizing Windows, Window Configurations)
(Window Parameters): Avoid @var at beginning of sentences and
reword accordingly.
author | Martin Rudalics <rudalics@gmx.at> |
---|---|
date | Sun, 16 Nov 2008 10:15:30 +0000 |
parents | e3acb52d33e1 |
children | 621e15919df0 |
line wrap: on
line source
;;; org-mac-message.el --- Support for links to Apple Mail messages from within Org-mode ;; Copyright (C) 2008 Free Software Foundation, Inc. ;; Author: John Wiegley <johnw@gnu.org> ;; Version: 6.12a ;; Keywords: outlines, hypermedia, calendar, wp ;; This file is part of GNU Emacs. ;; GNU Emacs is free software: you can redistribute it and/or modify ;; it under the terms of the GNU General Public License as published by ;; the Free Software Foundation, either version 3 of the License, or ;; (at your option) any later version. ;; GNU Emacs is distributed in the hope that it will be useful, ;; but WITHOUT ANY WARRANTY; without even the implied warranty of ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;; GNU General Public License for more details. ;; You should have received a copy of the GNU General Public License ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. ;;; Commentary: ;; This file implements links to Apple Mail messages from within Org-mode. ;; Org-mode does not load this module by default - if you would actually like ;; this to happen then configure the variable `org-modules'. ;;; Code: (require 'org) (org-add-link-type "message" 'org-mac-message-open) ;; In mac.c, removed in Emacs 23. (declare-function do-applescript "org-mac-message" (script)) (unless (fboundp 'do-applescript) ;; Need to fake this using shell-command-to-string (defun do-applescript (script) (let (start cmd return) (while (string-match "\n" script) (setq script (replace-match "\r" t t script))) (while (string-match "'" script start) (setq start (+ 2 (match-beginning 0)) script (replace-match "\\'" t t script))) (setq cmd (concat "osascript -e '" script "'")) (setq return (shell-command-to-string cmd)) (concat "\"" (org-trim return) "\"")))) (defun org-mac-message-open (message-id) "Visit the message with the given MESSAGE-ID. This will use the command `open' with the message URL." (start-process (concat "open message:" message-id) nil "open" (concat "message://<" (substring message-id 2) ">"))) (defun org-mac-message-insert-link () "Insert a link to the messages currently selected in Apple Mail. This will use applescript to get the message-id and the subject of the active mail in AppleMail and make a link out of it." (interactive) (insert (org-mac-message-get-link))) (defun org-mac-message-get-link () "Insert a link to the messages currently selected in Apple Mail. This will use applescript to get the message-id and the subject of the active mail in AppleMail and make a link out of it." (let ((subject (do-applescript "tell application \"Mail\" set theMessages to selection subject of beginning of theMessages end tell")) (message-id (do-applescript "tell application \"Mail\" set theMessages to selection message id of beginning of theMessages end tell"))) (org-make-link-string (concat "message://" (substring message-id 1 (1- (length message-id)))) (substring subject 1 (1- (length subject)))))) (provide 'org-mac-message) ;; arch-tag: 3806d0c1-abe1-4db6-9c31-f3ed7d4a9b32 ;;; org-mac-message.el ends here