Mercurial > emacs
comparison lisp/textmodes/org.el @ 70132:f8b9335f0cad
* org.el (org-deadline-announce): Face removed.
(org-level-faces, org-n-levels): Converted to constant.
(org-compatible-face): New function.
(org-hide, org-level-1, org-level-2, org-level-3, org-level-4)
(org-level-5, org-level-6, org-level-7, org-level-8)
(org-special-keyword, org-warning, org-headline-done,
org-link)
(org-date, org-tag, org-todo, org-done, org-table,
org-formula)
(org-scheduled-today, org-scheduled-previously,
org-time-grid):
Face definition revised for better color tty support.
(org-bold-re, org-italic-re, org-underline-re): New constants.
(org-set-font-lock-defaults): Use the new constants.
(org-agenda-highlight-todo): New function.
(org-agenda-todo): Fixed bug with point at end of line.
(org-agenda-change-all-lines, org-finalize-agenda-entries):
Fontify TODO keywords.
(org-insert-link): Preserve relative path in ../ links.
(org-export-as-html): Convert links pointing to .org files
into
links that will work beteen the exported HTML files.
(org-todo-list): Fix bug when arg=0.
(org-insert-heading): More fine-tuning.
author | Carsten Dominik <dominik@science.uva.nl> |
---|---|
date | Thu, 20 Apr 2006 11:44:52 +0000 |
parents | 28d6f65fa9e6 |
children | 52f45f5f80a6 |
comparison
equal
deleted
inserted
replaced
70131:12bbeecf7714 | 70132:f8b9335f0cad |
---|---|
3 ;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. | 3 ;; Copyright (C) 2004, 2005, 2006 Free Software Foundation, Inc. |
4 ;; | 4 ;; |
5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl> | 5 ;; Author: Carsten Dominik <dominik at science dot uva dot nl> |
6 ;; Keywords: outlines, hypermedia, calendar, wp | 6 ;; Keywords: outlines, hypermedia, calendar, wp |
7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ | 7 ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/ |
8 ;; Version: 4.24 | 8 ;; Version: 4.25 |
9 ;; | 9 ;; |
10 ;; This file is part of GNU Emacs. | 10 ;; This file is part of GNU Emacs. |
11 ;; | 11 ;; |
12 ;; GNU Emacs is free software; you can redistribute it and/or modify | 12 ;; GNU Emacs is free software; you can redistribute it and/or modify |
13 ;; it under the terms of the GNU General Public License as published by | 13 ;; it under the terms of the GNU General Public License as published by |
79 ;; excellent reference card made by Philip Rooke. This card can be found | 79 ;; excellent reference card made by Philip Rooke. This card can be found |
80 ;; in the etc/ directory of Emacs 22. | 80 ;; in the etc/ directory of Emacs 22. |
81 ;; | 81 ;; |
82 ;; Changes since version 4.00: | 82 ;; Changes since version 4.00: |
83 ;; --------------------------- | 83 ;; --------------------------- |
84 ;; Version 4.25 | |
85 ;; - Revision of the font-lock faces section, with better tty support. | |
86 ;; - TODO keywords in Agenda buffer are fontified. | |
87 ;; - Export converts links between .org files to links between .html files. | |
88 ;; - Better support for bold/italic/underline emphasis. | |
89 ;; | |
84 ;; Version 4.24 | 90 ;; Version 4.24 |
85 ;; - Bug fixes. | 91 ;; - Bug fixes. |
86 ;; | 92 ;; |
87 ;; Version 4.23 | 93 ;; Version 4.23 |
88 ;; - Bug fixes. | 94 ;; - Bug fixes. |
180 (defvar calc-embedded-open-formula) ; defined by the calc package | 186 (defvar calc-embedded-open-formula) ; defined by the calc package |
181 (defvar font-lock-unfontify-region-function) ; defined by font-lock.el | 187 (defvar font-lock-unfontify-region-function) ; defined by font-lock.el |
182 | 188 |
183 ;;; Customization variables | 189 ;;; Customization variables |
184 | 190 |
185 (defvar org-version "4.24" | 191 (defvar org-version "4.25" |
186 "The version number of the file org.el.") | 192 "The version number of the file org.el.") |
187 (defun org-version () | 193 (defun org-version () |
188 (interactive) | 194 (interactive) |
189 (message "Org-mode version %s" org-version)) | 195 (message "Org-mode version %s" org-version)) |
190 | 196 |
191 ;; The following constant is for compatibility with different versions | 197 ;; The following constant is for compatibility with different versions |
192 ;; of outline.el. | 198 ;; of outline.el. |
193 (defconst org-noutline-p (featurep 'noutline) | 199 (defconst org-noutline-p (featurep 'noutline) |
194 "Are we using the new outline mode?") | 200 "Are we using the new outline mode?") |
195 (defconst org-xemacs-p (featurep 'xemacs)) | 201 (defconst org-xemacs-p (featurep 'xemacs)) ;; FIXME: used by external code? |
196 (defconst org-format-transports-properties-p | 202 (defconst org-format-transports-properties-p |
197 (let ((x "a")) | 203 (let ((x "a")) |
198 (add-text-properties 0 1 '(test t) x) | 204 (add-text-properties 0 1 '(test t) x) |
199 (get-text-property 0 'test (format "%s" x))) | 205 (get-text-property 0 'test (format "%s" x))) |
200 "Does format transport text properties?") | 206 "Does format transport text properties?") |
1827 As the value of this option simply gets inserted into the HTML <head> header, | 1833 As the value of this option simply gets inserted into the HTML <head> header, |
1828 you can \"misuse\" it to add arbitrary text to the header." | 1834 you can \"misuse\" it to add arbitrary text to the header." |
1829 :group 'org-export-html | 1835 :group 'org-export-html |
1830 :type 'string) | 1836 :type 'string) |
1831 | 1837 |
1838 (defcustom org-export-html-link-org-files-as-html t | |
1839 "Non-nil means, make file links to `file.org' point to `file.html'. | |
1840 When org-mode is exporting an org-mode file to HTML, links to | |
1841 non-html files are directly put into a href tag in HTML. | |
1842 However, links to other Org-mode files (recognized by the | |
1843 extension `.org.) should become links to the corresponding html | |
1844 file, assuming that the linked org-mode file will also be | |
1845 converted to HTML. | |
1846 When nil, the links still point to the plain `.org' file." | |
1847 :group 'org-export-html | |
1848 :type 'boolean) | |
1849 | |
1832 (defcustom org-export-html-inline-images t | 1850 (defcustom org-export-html-inline-images t |
1833 "Non-nil means, inline images into exported HTML pages. | 1851 "Non-nil means, inline images into exported HTML pages. |
1834 The link will still be to the original location of the image file. | 1852 The link will still be to the original location of the image file. |
1835 So if you are moving the page, lets say to your public HTML site, | 1853 So if you are moving the page, lets say to your public HTML site, |
1836 you will have to move the image and maybe change the link." | 1854 you will have to move the image and maybe change the link." |
1940 (defgroup org-faces nil | 1958 (defgroup org-faces nil |
1941 "Faces in Org-mode." | 1959 "Faces in Org-mode." |
1942 :tag "Org Faces" | 1960 :tag "Org Faces" |
1943 :group 'org-font-lock) | 1961 :group 'org-font-lock) |
1944 | 1962 |
1963 (defun org-compatible-face (specs) | |
1964 "Make a compatible face specification. | |
1965 XEmacs and Emacs 21 do not know about the `min-colors' attribute. | |
1966 For them we convert a (min-colors 8) entry to a `tty' entry and move it | |
1967 to the top of the list. The `min-colors' attribute will be removed from | |
1968 any other entries, and any resulting duplicates will be removed entirely." | |
1969 (if (or (featurep 'xemacs) (< emacs-major-version 22)) | |
1970 (let (r e a) | |
1971 (while (setq e (pop specs)) | |
1972 (cond | |
1973 ((memq (car e) '(t default)) (push e r)) | |
1974 ((setq a (member '(min-colors 8) (car e))) | |
1975 (nconc r (list (cons (cons '(type tty) (delq (car a) (car e))) | |
1976 (cdr e))))) | |
1977 ((setq a (assq 'min-colors (car e))) | |
1978 (setq e (cons (delq a (car e)) (cdr e))) | |
1979 (or (assoc (car e) r) (push e r))) | |
1980 (t (or (assoc (car e) r) (push e r))))) | |
1981 (nreverse r)) | |
1982 specs)) | |
1983 | |
1945 (defface org-hide | 1984 (defface org-hide |
1946 '( | 1985 '((((background light)) (:foreground "white")) |
1947 (((type tty) (class color)) (:foreground "white")) | 1986 (((background dark)) (:foreground "black"))) |
1948 (((class color) (background light)) (:foreground "white")) | 1987 "Face used to hide leading stars in headlines. |
1949 (((class color) (background dark)) (:foreground "black")) | 1988 The forground color of this face should be equal to the background |
1950 (t (:inverse-video nil))) | 1989 color of the frame." |
1990 :group 'org-faces) | |
1991 | |
1992 (defface org-level-1 ;; font-lock-function-name-face | |
1993 (org-compatible-face | |
1994 '((((class color) (min-colors 88) (background light)) (:foreground "Blue1")) | |
1995 (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) | |
1996 (((class color) (min-colors 16) (background light)) (:foreground "Blue")) | |
1997 (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) | |
1998 (((class color) (min-colors 8)) (:foreground "blue" :bold t)) | |
1999 (t (:bold t)))) | |
1951 "Face used for level 1 headlines." | 2000 "Face used for level 1 headlines." |
1952 :group 'org-faces) | 2001 :group 'org-faces) |
1953 | 2002 |
1954 (defface org-level-1 ;; font-lock-function-name-face | |
1955 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
1956 (((class color) (background light)) (:foreground "Blue")) | |
1957 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
1958 (t (:inverse-video t :bold t))) | |
1959 "Face used for level 1 headlines." | |
1960 :group 'org-faces) | |
1961 | |
1962 (defface org-level-2 ;; font-lock-variable-name-face | 2003 (defface org-level-2 ;; font-lock-variable-name-face |
1963 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | 2004 (org-compatible-face |
1964 (((class color) (background light)) (:foreground "DarkGoldenrod")) | 2005 '((((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod")) |
1965 (((class color) (background dark)) (:foreground "LightGoldenrod")) | 2006 (((class color) (min-colors 16) (background dark)) (:foreground "LightGoldenrod")) |
1966 (t (:bold t :italic t))) | 2007 (((class color) (min-colors 8) (background light)) (:foreground "yellow")) |
2008 (((class color) (min-colors 8) (background dark)) (:foreground "yellow" :bold t)) | |
2009 (t (:bold t)))) | |
1967 "Face used for level 2 headlines." | 2010 "Face used for level 2 headlines." |
1968 :group 'org-faces) | 2011 :group 'org-faces) |
1969 | 2012 |
1970 (defface org-level-3 ;; font-lock-keyword-face | 2013 (defface org-level-3 ;; font-lock-keyword-face |
1971 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | 2014 (org-compatible-face |
1972 (((class color) (background light)) (:foreground "Purple")) | 2015 '((((class color) (min-colors 88) (background light)) (:foreground "Purple")) |
1973 (((class color) (background dark)) (:foreground "Cyan")) | 2016 (((class color) (min-colors 88) (background dark)) (:foreground "Cyan1")) |
1974 (t (:bold t))) | 2017 (((class color) (min-colors 16) (background light)) (:foreground "Purple")) |
2018 (((class color) (min-colors 16) (background dark)) (:foreground "Cyan")) | |
2019 (((class color) (min-colors 8) (background light)) (:foreground "purple" :bold t)) | |
2020 (((class color) (min-colors 8) (background dark)) (:foreground "cyan" :bold t)) | |
2021 (t (:bold t)))) | |
1975 "Face used for level 3 headlines." | 2022 "Face used for level 3 headlines." |
1976 :group 'org-faces) | 2023 :group 'org-faces) |
1977 | 2024 |
1978 (defface org-level-4 ;; font-lock-comment-face | 2025 (defface org-level-4 ;; font-lock-comment-face |
1979 '((((type tty pc) (class color) (background light)) (:foreground "red")) | 2026 (org-compatible-face |
1980 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | 2027 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick")) |
1981 (((class color) (background light)) (:foreground "Firebrick")) | 2028 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1")) |
1982 (((class color) (background dark)) (:foreground "chocolate1")) | 2029 (((class color) (min-colors 16) (background light)) (:foreground "red")) |
1983 (t (:bold t :italic t))) | 2030 (((class color) (min-colors 16) (background dark)) (:foreground "red1")) |
2031 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t)) | |
2032 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t)) | |
2033 (t (:bold t)))) | |
1984 "Face used for level 4 headlines." | 2034 "Face used for level 4 headlines." |
1985 :group 'org-faces) | 2035 :group 'org-faces) |
1986 | 2036 |
1987 (defface org-level-5 ;; font-lock-type-face | 2037 (defface org-level-5 ;; font-lock-type-face |
1988 '((((type tty) (class color)) (:foreground "green")) | 2038 (org-compatible-face |
1989 (((class color) (background light)) (:foreground "ForestGreen")) | 2039 '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen")) |
1990 (((class color) (background dark)) (:foreground "PaleGreen")) | 2040 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen")) |
1991 (t (:bold t :underline t))) | 2041 (((class color) (min-colors 8)) (:foreground "green")))) |
1992 "Face used for level 5 headlines." | 2042 "Face used for level 5 headlines." |
1993 :group 'org-faces) | 2043 :group 'org-faces) |
1994 | 2044 |
1995 (defface org-level-6 ;; font-lock-constant-face | 2045 (defface org-level-6 ;; font-lock-constant-face |
1996 '((((type tty) (class color)) (:foreground "magenta")) | 2046 (org-compatible-face |
1997 (((class color) (background light)) (:foreground "CadetBlue")) | 2047 '((((class color) (min-colors 16) (background light)) (:foreground "CadetBlue")) |
1998 (((class color) (background dark)) (:foreground "Aquamarine")) | 2048 (((class color) (min-colors 16) (background dark)) (:foreground "Aquamarine")) |
1999 (t (:bold t :underline t))) | 2049 (((class color) (min-colors 8)) (:foreground "magenta")))) |
2000 "Face used for level 6 headlines." | 2050 "Face used for level 6 headlines." |
2001 :group 'org-faces) | 2051 :group 'org-faces) |
2002 | 2052 |
2003 (defface org-level-7 ;; font-lock-builtin-face | 2053 (defface org-level-7 ;; font-lock-builtin-face |
2004 '((((type tty) (class color)) (:foreground "blue" :weight light)) | 2054 (org-compatible-face |
2005 (((class color) (background light)) (:foreground "Orchid")) | 2055 '((((class color) (min-colors 16) (background light)) (:foreground "Orchid")) |
2006 (((class color) (background dark)) (:foreground "LightSteelBlue")) | 2056 (((class color) (min-colors 16) (background dark)) (:foreground "LightSteelBlue")) |
2007 (t (:bold t))) | 2057 (((class color) (min-colors 8)) (:foreground "blue")))) ;; FIXME: for dark bg? |
2008 "Face used for level 7 headlines." | 2058 "Face used for level 7 headlines." |
2009 :group 'org-faces) | 2059 :group 'org-faces) |
2010 | 2060 |
2011 (defface org-level-8 ;; font-lock-string-face | 2061 (defface org-level-8 ;; font-lock-string-face |
2012 '((((type tty) (class color)) (:foreground "green")) | 2062 (org-compatible-face |
2013 (((class color) (background light)) (:foreground "RosyBrown")) | 2063 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) |
2014 (((class color) (background dark)) (:foreground "LightSalmon")) | 2064 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) |
2015 (t (:italic t))) | 2065 (((class color) (min-colors 8)) (:foreground "green")))) |
2016 "Face used for level 8 headlines." | 2066 "Face used for level 8 headlines." |
2017 :group 'org-faces) | 2067 :group 'org-faces) |
2018 | 2068 |
2019 (defface org-special-keyword ;; font-lock-string-face | 2069 (defface org-special-keyword ;; font-lock-string-face |
2020 '((((type tty) (class color)) (:foreground "green")) | 2070 (org-compatible-face |
2021 (((class color) (background light)) (:foreground "RosyBrown")) | 2071 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) |
2022 (((class color) (background dark)) (:foreground "LightSalmon")) | 2072 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) |
2023 (t (:italic t))) | 2073 (t (:italic t)))) |
2024 "Face used for special keywords." | 2074 "Face used for special keywords." |
2025 :group 'org-faces) | 2075 :group 'org-faces) |
2026 | 2076 |
2027 (defface org-warning ;; font-lock-warning-face | 2077 (defface org-warning ;; font-lock-warning-face |
2028 '((((type tty) (class color)) (:foreground "red")) | 2078 (org-compatible-face |
2029 (((class color) (background light)) (:foreground "Red" :bold t)) | 2079 '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold t)) |
2030 (((class color) (background dark)) (:foreground "Red1" :bold t)) | 2080 (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold t)) |
2031 ; (((class color) (background dark)) (:foreground "Pink" :bold t)) | 2081 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t)) |
2032 (t (:inverse-video t :bold t))) | 2082 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t)) |
2083 (t (:bold t)))) | |
2033 "Face for deadlines and TODO keywords." | 2084 "Face for deadlines and TODO keywords." |
2034 :group 'org-faces) | 2085 :group 'org-faces) |
2035 | 2086 |
2036 (defface org-headline-done ;; font-lock-string-face | 2087 (defface org-headline-done ;; font-lock-string-face |
2037 '((((type tty) (class color)) (:foreground "green")) | 2088 (org-compatible-face |
2038 (((class color) (background light)) (:foreground "RosyBrown")) | 2089 '((((class color) (min-colors 16) (background light)) (:foreground "RosyBrown")) |
2039 (((class color) (background dark)) (:foreground "LightSalmon")) | 2090 (((class color) (min-colors 16) (background dark)) (:foreground "LightSalmon")) |
2040 (t (:italic t))) | 2091 (((class color) (min-colors 8) (background light)) (:bold nil)))) |
2041 "Face used to indicate that a headline is DONE. See also the variable | 2092 "Face used to indicate that a headline is DONE. |
2042 `org-fontify-done-headline'." | 2093 This face is only used if `org-fontify-done-headline' is set." |
2043 :group 'org-faces) | 2094 :group 'org-faces) |
2044 | 2095 |
2045 ;; Inheritance does not work for xemacs. So we just copy... | 2096 (defface org-link |
2046 | 2097 '((((class color) (background light)) (:foreground "Purple" :underline t)) |
2047 (defface org-deadline-announce | 2098 (((class color) (background dark)) (:foreground "Cyan" :underline t)) |
2048 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | 2099 (t (:underline t))) |
2049 (((class color) (background light)) (:foreground "Blue")) | 2100 "Face for links." |
2050 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
2051 (t (:inverse-video t :bold t))) | |
2052 "Face for upcoming deadlines." | |
2053 :group 'org-faces) | 2101 :group 'org-faces) |
2054 | 2102 |
2103 (defface org-date | |
2104 '((((class color) (background light)) (:foreground "Purple" :underline t)) | |
2105 (((class color) (background dark)) (:foreground "Cyan" :underline t)) | |
2106 (t (:underline t))) | |
2107 "Face for links." | |
2108 :group 'org-faces) | |
2109 | |
2110 (defface org-tag | |
2111 '((t (:bold t))) | |
2112 "Face for tags." | |
2113 :group 'org-faces) | |
2114 | |
2115 (defface org-todo ;; font-lock-warning-face | |
2116 (org-compatible-face | |
2117 '((((class color) (min-colors 16) (background light)) (:foreground "Red1" :bold t)) | |
2118 (((class color) (min-colors 16) (background dark)) (:foreground "Pink" :bold t)) | |
2119 (((class color) (min-colors 8) (background light)) (:foreground "red" :bold t)) | |
2120 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t)) | |
2121 (t (:inverse-video t :bold t)))) | |
2122 "Face for TODO keywords." | |
2123 :group 'org-faces) | |
2124 | |
2125 (defface org-done ;; font-lock-type-face | |
2126 (org-compatible-face | |
2127 '((((class color) (min-colors 16) (background light)) (:foreground "ForestGreen")) | |
2128 (((class color) (min-colors 16) (background dark)) (:foreground "PaleGreen")) | |
2129 (((class color) (min-colors 8)) (:foreground "green")) | |
2130 (t (:bold t)))) | |
2131 "Face used for DONE." | |
2132 :group 'org-faces) | |
2133 | |
2134 (defface org-table ;; font-lock-function-name-face | |
2135 (org-compatible-face | |
2136 '((((class color) (min-colors 88) (background light)) (:foreground "Blue1")) | |
2137 (((class color) (min-colors 88) (background dark)) (:foreground "LightSkyBlue")) | |
2138 (((class color) (min-colors 16) (background light)) (:foreground "Blue")) | |
2139 (((class color) (min-colors 16) (background dark)) (:foreground "LightSkyBlue")) | |
2140 (((class color) (min-colors 8) (background light)) (:foreground "blue")) | |
2141 (((class color) (min-colors 8) (background dark))))) | |
2142 "Face used for tables." | |
2143 :group 'org-faces) | |
2144 | |
2145 (defface org-formula | |
2146 (org-compatible-face | |
2147 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick")) | |
2148 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1")) | |
2149 (((class color) (min-colors 8) (background light)) (:foreground "red")) | |
2150 (((class color) (min-colors 8) (background dark)) (:foreground "red")) | |
2151 (t (:bold t :italic t)))) | |
2152 "Face for formulas." | |
2153 :group 'org-faces) | |
2154 | |
2055 (defface org-scheduled-today | 2155 (defface org-scheduled-today |
2056 '((((type tty) (class color)) (:foreground "green")) | 2156 (org-compatible-face |
2057 (((class color) (background light)) (:foreground "DarkGreen")) | 2157 '((((class color) (min-colors 88) (background light)) (:foreground "DarkGreen")) |
2058 (((class color) (background dark)) (:foreground "PaleGreen")) | 2158 (((class color) (min-colors 88) (background dark)) (:foreground "PaleGreen")) |
2059 (t (:bold t :underline t))) | 2159 (((class color) (min-colors 8)) (:foreground "green")) |
2160 (t (:bold t :italic t)))) | |
2060 "Face for items scheduled for a certain day." | 2161 "Face for items scheduled for a certain day." |
2061 :group 'org-faces) | 2162 :group 'org-faces) |
2062 | 2163 |
2063 (defface org-scheduled-previously | 2164 (defface org-scheduled-previously |
2064 '((((type tty pc) (class color) (background light)) (:foreground "red")) | 2165 (org-compatible-face |
2065 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | 2166 '((((class color) (min-colors 88) (background light)) (:foreground "Firebrick")) |
2066 (((class color) (background light)) (:foreground "Firebrick")) | 2167 (((class color) (min-colors 88) (background dark)) (:foreground "chocolate1")) |
2067 (((class color) (background dark)) (:foreground "chocolate1")) | 2168 (((class color) (min-colors 8) (background light)) (:foreground "red")) |
2068 (t (:bold t :italic t))) | 2169 (((class color) (min-colors 8) (background dark)) (:foreground "red" :bold t)) |
2170 (t (:bold t)))) | |
2069 "Face for items scheduled previously, and not yet done." | 2171 "Face for items scheduled previously, and not yet done." |
2070 :group 'org-faces) | 2172 :group 'org-faces) |
2071 | 2173 |
2072 (defface org-formula | |
2073 '((((type tty pc) (class color) (background light)) (:foreground "red")) | |
2074 (((type tty pc) (class color) (background dark)) (:foreground "red1")) | |
2075 (((class color) (background light)) (:foreground "Firebrick")) | |
2076 (((class color) (background dark)) (:foreground "chocolate1")) | |
2077 (t (:bold t :italic t))) | |
2078 "Face for formulas." | |
2079 :group 'org-faces) | |
2080 | |
2081 (defface org-link | |
2082 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
2083 (((class color) (background light)) (:foreground "Purple" :underline t)) | |
2084 (((class color) (background dark)) (:foreground "Cyan" :underline t)) | |
2085 (t (:bold t))) | |
2086 "Face for links." | |
2087 :group 'org-faces) | |
2088 | |
2089 (defface org-date | |
2090 '((((type tty) (class color)) (:foreground "cyan" :weight bold)) | |
2091 (((class color) (background light)) (:foreground "Purple" :underline t)) | |
2092 (((class color) (background dark)) (:foreground "Cyan" :underline t)) | |
2093 (t (:bold t))) | |
2094 "Face for links." | |
2095 :group 'org-faces) | |
2096 | |
2097 (defface org-tag | |
2098 '((((type tty) (class color)) (:weight bold)) | |
2099 (((class color) (background light)) (:weight bold)) | |
2100 (((class color) (background dark)) (:weight bold)) | |
2101 (t (:bold t))) | |
2102 "Face for tags." | |
2103 :group 'org-faces) | |
2104 | |
2105 (defface org-todo ;; font-lock-warning-face | |
2106 '((((type tty) (class color)) (:foreground "red")) | |
2107 (((class color) (background light)) (:foreground "Red" :bold t)) | |
2108 (((class color) (background dark)) (:foreground "Red1" :bold t)) | |
2109 ; (((class color) (background dark)) (:foreground "Pink" :bold t)) | |
2110 (t (:inverse-video t :bold t))) | |
2111 "Face for TODO keywords." | |
2112 :group 'org-faces) | |
2113 | |
2114 (defface org-done ;; font-lock-type-face | |
2115 '((((type tty) (class color)) (:foreground "green")) | |
2116 (((class color) (background light)) (:foreground "ForestGreen" :bold t)) | |
2117 (((class color) (background dark)) (:foreground "PaleGreen" :bold t)) | |
2118 (t (:bold t :underline t))) | |
2119 "Face used for DONE." | |
2120 :group 'org-faces) | |
2121 | |
2122 (defface org-table ;; font-lock-function-name-face | |
2123 '((((type tty) (class color)) (:foreground "blue" :weight bold)) | |
2124 (((class color) (background light)) (:foreground "Blue")) | |
2125 (((class color) (background dark)) (:foreground "LightSkyBlue")) | |
2126 (t (:inverse-video t :bold t))) | |
2127 "Face used for tables." | |
2128 :group 'org-faces) | |
2129 | |
2130 (defface org-time-grid ;; font-lock-variable-name-face | 2174 (defface org-time-grid ;; font-lock-variable-name-face |
2131 '((((type tty) (class color)) (:foreground "yellow" :weight light)) | 2175 (org-compatible-face |
2132 (((class color) (background light)) (:foreground "DarkGoldenrod")) | 2176 '((((class color) (min-colors 16) (background light)) (:foreground "DarkGoldenrod")) |
2133 (((class color) (background dark)) (:foreground "LightGoldenrod")) | 2177 (((class color) (min-colors 16) (background dark)) (:foreground "LightGoldenrod")) |
2134 (t (:bold t :italic t))) | 2178 (((class color) (min-colors 8)) (:foreground "yellow" :weight light)))) ; FIXME: turn off??? |
2135 "Face used for time grids." | 2179 "Face used for time grids." |
2136 :group 'org-faces) | 2180 :group 'org-faces) |
2137 | 2181 |
2138 (defvar org-level-faces | 2182 (defconst org-level-faces |
2139 '(org-level-1 org-level-2 org-level-3 org-level-4 | 2183 '(org-level-1 org-level-2 org-level-3 org-level-4 |
2140 org-level-5 org-level-6 org-level-7 org-level-8 | 2184 org-level-5 org-level-6 org-level-7 org-level-8 |
2141 )) | 2185 )) |
2142 (defvar org-n-levels (length org-level-faces)) | 2186 (defconst org-n-levels (length org-level-faces)) |
2143 | 2187 |
2188 (defconst org-bold-re | |
2189 (if (featurep 'xemacs) | |
2190 "\\([ ]\\|^\\)\\(\\*\\(\\w[a-zA-Z0-9-_ ]*?\\w\\)\\*\\)\\([ ,.]\\|$\\)" | |
2191 "\\([ ]\\|^\\)\\(\\*\\(\\w[[:word:] -_]*?\\w\\)\\*\\)\\([ ,.]\\|$\\)") | |
2192 "Regular expression for bold emphasis.") | |
2193 (defconst org-italic-re | |
2194 (if (featurep 'xemacs) | |
2195 "\\([ ]\\|^\\)\\(/\\(\\w[a-zA-Z0-9-_ ]*?\\w\\)/\\)\\([ ,.]\\|$\\)" | |
2196 "\\([ ]\\|^\\)\\(/\\(\\w[[:word:] -_]*?\\w\\)/\\)\\([ ,.]\\|$\\)") | |
2197 "Regular expression for italic emphasis.") | |
2198 (defconst org-underline-re | |
2199 (if (featurep 'xemacs) | |
2200 "\\([ ]\\|^\\)\\(_\\(\\w[a-zA-Z0-9-_ ]*?\\w\\)_\\)\\([ ,.]\\|$\\)" | |
2201 "\\([ ]\\|^\\)\\(_\\(\\w[[:word:] -_]*?\\w\\)_\\)\\([ ,.]\\|$\\)") | |
2202 "Regular expression for underline emphasis.") | |
2144 | 2203 |
2145 ;; Variables for pre-computed regular expressions, all buffer local | 2204 ;; Variables for pre-computed regular expressions, all buffer local |
2146 (defvar org-done-string nil | 2205 (defvar org-done-string nil |
2147 "The last string in `org-todo-keywords', indicating an item is DONE.") | 2206 "The last string in `org-todo-keywords', indicating an item is DONE.") |
2148 (make-variable-buffer-local 'org-done-string) | 2207 (make-variable-buffer-local 'org-done-string) |
2213 kwds (append kwds (org-split-string value splitre)))) | 2272 kwds (append kwds (org-split-string value splitre)))) |
2214 ((equal key "TYP_TODO") | 2273 ((equal key "TYP_TODO") |
2215 (setq int 'type | 2274 (setq int 'type |
2216 kwds (append kwds (org-split-string value splitre)))) | 2275 kwds (append kwds (org-split-string value splitre)))) |
2217 ((equal key "STARTUP") | 2276 ((equal key "STARTUP") |
2277 (debug) | |
2218 (let ((opts (org-split-string value splitre)) | 2278 (let ((opts (org-split-string value splitre)) |
2219 (set '(("fold" org-startup-folded t) | 2279 (set '(("fold" org-startup-folded t) |
2220 ("overview" org-startup-folded t) | 2280 ("overview" org-startup-folded t) |
2221 ("nofold" org-startup-folded nil) | 2281 ("nofold" org-startup-folded nil) |
2222 ("showall" org-startup-folded nil) | 2282 ("showall" org-startup-folded nil) |
2726 '(1 'org-todo t)) | 2786 '(1 'org-todo t)) |
2727 (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t)) | 2787 (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t)) |
2728 (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) | 2788 (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t)) |
2729 (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) | 2789 (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t)) |
2730 (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t)) | 2790 (list (concat "\\<" org-closed-string) '(0 'org-special-keyword t)) |
2731 (if em '("\\(\\W\\|^\\)\\(\\*\\w+\\*\\)\\(\\W\\|$\\)" 2 'bold prepend)) | 2791 ; (if em '("\\(\\W\\|^\\)\\(\\*\\w+\\*\\)\\(\\W\\|$\\)" 2 'bold prepend)) |
2732 (if em '("\\(\\W\\|^\\)\\(/\\w+/\\)\\(\\W\\|$\\)" 2 'italic prepend)) | 2792 ; (if em '("\\(\\W\\|^\\)\\(/\\w+/\\)\\(\\W\\|$\\)" 2 'italic prepend)) |
2733 (if em '("\\(\\W\\|^\\)\\(_\\w+_\\)\\(\\W\\|$\\)" 2 'underline prepend)) | 2793 ; (if em '("\\(\\W\\|^\\)\\(_\\w+_\\)\\(\\W\\|$\\)" 2 'underline prepend)) |
2794 (if em (list org-bold-re 2 ''bold 'prepend)) | |
2795 (if em (list org-italic-re 2 ''italic 'prepend)) | |
2796 (if em (list org-underline-re 2 ''underline 'prepend)) | |
2734 (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string | 2797 (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string |
2735 "\\|" org-quote-string "\\)\\>") | 2798 "\\|" org-quote-string "\\)\\>") |
2736 '(1 'org-special-keyword t)) | 2799 '(1 'org-special-keyword t)) |
2737 '("^#.*" (0 'font-lock-comment-face t)) | 2800 '("^#.*" (0 'font-lock-comment-face t)) |
2738 (if org-fontify-done-headline | 2801 (if org-fontify-done-headline |
3107 (condition-case nil | 3170 (condition-case nil |
3108 (org-back-to-heading) | 3171 (org-back-to-heading) |
3109 (error (outline-next-heading))) | 3172 (error (outline-next-heading))) |
3110 (prog1 (match-string 0) | 3173 (prog1 (match-string 0) |
3111 (funcall outline-level))))) | 3174 (funcall outline-level))))) |
3112 (if (and (bolp) | 3175 (cond |
3113 (save-excursion (backward-char 1) (not (org-invisible-p)))) | 3176 ((and (org-on-heading-p) (bolp) |
3114 (open-line 1) | 3177 (save-excursion (backward-char 1) (not (org-invisible-p)))) |
3115 (newline)) | 3178 (open-line 1)) |
3179 ((bolp) nil) | |
3180 (t (newline))) | |
3116 (insert head) | 3181 (insert head) |
3117 (if (looking-at "[ \t]*") | 3182 (just-one-space) |
3118 (replace-match " ")) | |
3119 (run-hooks 'org-insert-heading-hook)))) | 3183 (run-hooks 'org-insert-heading-hook)))) |
3120 | 3184 |
3121 (defun org-insert-item () | 3185 (defun org-insert-item () |
3122 "Insert a new item at the current level. | 3186 "Insert a new item at the current level. |
3123 Return t when things worked, nil when we are not in an item." | 3187 Return t when things worked, nil when we are not in an item." |
3126 (progn | 3190 (progn |
3127 (org-beginning-of-item) | 3191 (org-beginning-of-item) |
3128 (org-at-item-p) | 3192 (org-at-item-p) |
3129 t) | 3193 t) |
3130 (error nil))) | 3194 (error nil))) |
3131 (unless (bolp) (newline)) | 3195 (let* ((bul (match-string 0)) |
3132 (insert (match-string 0)) | 3196 (eow (save-excursion (beginning-of-line 1) (looking-at "[ \t]*") |
3197 (match-end 0))) | |
3198 (eowcol (save-excursion (goto-char eow) (current-column)))) | |
3199 (cond | |
3200 ((and (org-at-item-p) (<= (point) eow)) | |
3201 ;; before the bullet | |
3202 (beginning-of-line 1) | |
3203 (open-line 1)) | |
3204 ((<= (point) eow) | |
3205 (beginning-of-line 1)) | |
3206 (t (newline))) | |
3207 (insert bul) | |
3208 (just-one-space)) | |
3133 (org-maybe-renumber-ordered-list) | 3209 (org-maybe-renumber-ordered-list) |
3134 t)) | 3210 t)) |
3135 | 3211 |
3136 (defun org-insert-todo-heading (arg) | 3212 (defun org-insert-todo-heading (arg) |
3137 "Insert a new heading with the same level and TODO state as current heading. | 3213 "Insert a new heading with the same level and TODO state as current heading. |
5333 (win (selected-window)) | 5409 (win (selected-window)) |
5334 (kwds org-todo-keywords) | 5410 (kwds org-todo-keywords) |
5335 (completion-ignore-case t) | 5411 (completion-ignore-case t) |
5336 (org-select-this-todo-keyword | 5412 (org-select-this-todo-keyword |
5337 (if (stringp arg) arg | 5413 (if (stringp arg) arg |
5338 (and arg (integerp arg) (nth (1- arg) org-todo-keywords)))) | 5414 (and arg (integerp arg) (> arg 0) |
5415 (nth (1- arg) org-todo-keywords)))) | |
5339 rtn rtnall files file pos) | 5416 rtn rtnall files file pos) |
5340 (when (equal arg '(4)) | 5417 (when (equal arg '(4)) |
5341 (setq org-select-this-todo-keyword | 5418 (setq org-select-this-todo-keyword |
5342 (completing-read "Keyword: " (mapcar 'list org-todo-keywords) | 5419 (completing-read "Keyword: " (mapcar 'list org-todo-keywords) |
5343 nil t))) | 5420 nil t))) |
5933 | 6010 |
5934 (defun org-agenda-get-todos () | 6011 (defun org-agenda-get-todos () |
5935 "Return the TODO information for agenda display." | 6012 "Return the TODO information for agenda display." |
5936 (let* ((props (list 'face nil | 6013 (let* ((props (list 'face nil |
5937 'done-face 'org-done | 6014 'done-face 'org-done |
6015 'org-not-done-regexp org-not-done-regexp | |
5938 'mouse-face 'highlight | 6016 'mouse-face 'highlight |
5939 'keymap org-agenda-keymap | 6017 'keymap org-agenda-keymap |
5940 'help-echo | 6018 'help-echo |
5941 (format "mouse-2 or RET jump to org file %s" | 6019 (format "mouse-2 or RET jump to org file %s" |
5942 (abbreviate-file-name buffer-file-name)))) | 6020 (abbreviate-file-name buffer-file-name)))) |
5973 "No heading for this item in buffer or region.") | 6051 "No heading for this item in buffer or region.") |
5974 | 6052 |
5975 (defun org-agenda-get-timestamps () | 6053 (defun org-agenda-get-timestamps () |
5976 "Return the date stamp information for agenda display." | 6054 "Return the date stamp information for agenda display." |
5977 (let* ((props (list 'face nil | 6055 (let* ((props (list 'face nil |
6056 'org-not-done-regexp org-not-done-regexp | |
5978 'mouse-face 'highlight | 6057 'mouse-face 'highlight |
5979 'keymap org-agenda-keymap | 6058 'keymap org-agenda-keymap |
5980 'help-echo | 6059 'help-echo |
5981 (format "mouse-2 or RET jump to org file %s" | 6060 (format "mouse-2 or RET jump to org file %s" |
5982 (abbreviate-file-name buffer-file-name)))) | 6061 (abbreviate-file-name buffer-file-name)))) |
6038 (nreverse ee))) | 6117 (nreverse ee))) |
6039 | 6118 |
6040 (defun org-agenda-get-closed () | 6119 (defun org-agenda-get-closed () |
6041 "Return the logged TODO entries for agenda display." | 6120 "Return the logged TODO entries for agenda display." |
6042 (let* ((props (list 'mouse-face 'highlight | 6121 (let* ((props (list 'mouse-face 'highlight |
6122 'org-not-done-regexp org-not-done-regexp | |
6043 'keymap org-agenda-keymap | 6123 'keymap org-agenda-keymap |
6044 'help-echo | 6124 'help-echo |
6045 (format "mouse-2 or RET jump to org file %s" | 6125 (format "mouse-2 or RET jump to org file %s" |
6046 (abbreviate-file-name buffer-file-name)))) | 6126 (abbreviate-file-name buffer-file-name)))) |
6047 (regexp (concat | 6127 (regexp (concat |
6089 | 6169 |
6090 (defun org-agenda-get-deadlines () | 6170 (defun org-agenda-get-deadlines () |
6091 "Return the deadline information for agenda display." | 6171 "Return the deadline information for agenda display." |
6092 (let* ((wdays org-deadline-warning-days) | 6172 (let* ((wdays org-deadline-warning-days) |
6093 (props (list 'mouse-face 'highlight | 6173 (props (list 'mouse-face 'highlight |
6174 'org-not-done-regexp org-not-done-regexp | |
6094 'keymap org-agenda-keymap | 6175 'keymap org-agenda-keymap |
6095 'help-echo | 6176 'help-echo |
6096 (format "mouse-2 or RET jump to org file %s" | 6177 (format "mouse-2 or RET jump to org file %s" |
6097 (abbreviate-file-name buffer-file-name)))) | 6178 (abbreviate-file-name buffer-file-name)))) |
6098 (regexp org-deadline-time-regexp) | 6179 (regexp org-deadline-time-regexp) |
6144 ee)) | 6225 ee)) |
6145 | 6226 |
6146 (defun org-agenda-get-scheduled () | 6227 (defun org-agenda-get-scheduled () |
6147 "Return the scheduled information for agenda display." | 6228 "Return the scheduled information for agenda display." |
6148 (let* ((props (list 'face 'org-scheduled-previously | 6229 (let* ((props (list 'face 'org-scheduled-previously |
6230 'org-not-done-regexp org-not-done-regexp | |
6149 'undone-face 'org-scheduled-previously | 6231 'undone-face 'org-scheduled-previously |
6150 'done-face 'org-done | 6232 'done-face 'org-done |
6151 'mouse-face 'highlight | 6233 'mouse-face 'highlight |
6152 'keymap org-agenda-keymap | 6234 'keymap org-agenda-keymap |
6153 'help-echo | 6235 'help-echo |
6193 ee)) | 6275 ee)) |
6194 | 6276 |
6195 (defun org-agenda-get-blocks () | 6277 (defun org-agenda-get-blocks () |
6196 "Return the date-range information for agenda display." | 6278 "Return the date-range information for agenda display." |
6197 (let* ((props (list 'face nil | 6279 (let* ((props (list 'face nil |
6280 'org-not-done-regexp org-not-done-regexp | |
6198 'mouse-face 'highlight | 6281 'mouse-face 'highlight |
6199 'keymap org-agenda-keymap | 6282 'keymap org-agenda-keymap |
6200 'help-echo | 6283 'help-echo |
6201 (format "mouse-2 or RET jump to org file %s" | 6284 (format "mouse-2 or RET jump to org file %s" |
6202 (abbreviate-file-name buffer-file-name)))) | 6285 (abbreviate-file-name buffer-file-name)))) |
6428 (int-to-string t0)))) | 6511 (int-to-string t0)))) |
6429 (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0))))) | 6512 (if string (concat (substring t1 -4 -2) ":" (substring t1 -2)) t0))))) |
6430 | 6513 |
6431 (defun org-finalize-agenda-entries (list) | 6514 (defun org-finalize-agenda-entries (list) |
6432 "Sort and concatenate the agenda items." | 6515 "Sort and concatenate the agenda items." |
6516 (setq list (mapcar 'org-agenda-highlight-todo list)) | |
6433 (mapconcat 'identity (sort list 'org-entries-lessp) "\n")) | 6517 (mapconcat 'identity (sort list 'org-entries-lessp) "\n")) |
6518 | |
6519 (defun org-agenda-highlight-todo (x) | |
6520 (let (re) | |
6521 (if (eq x 'line) | |
6522 (save-excursion | |
6523 (beginning-of-line 1) | |
6524 (setq re (get-text-property (point) 'org-not-done-regexp)) | |
6525 (goto-char (+ (point) (get-text-property (point) 'prefix-length))) | |
6526 (and (looking-at (concat "[ \t]*" re)) | |
6527 (add-text-properties (match-beginning 0) (match-end 0) | |
6528 '(face org-todo)))) | |
6529 (setq re (get-text-property 0 'org-not-done-regexp x)) | |
6530 (and re (string-match re x) | |
6531 (add-text-properties (match-beginning 0) (match-end 0) | |
6532 '(face org-todo) x)) | |
6533 x))) | |
6434 | 6534 |
6435 (defsubst org-cmp-priority (a b) | 6535 (defsubst org-cmp-priority (a b) |
6436 "Compare the priorities of string A and B." | 6536 "Compare the priorities of string A and B." |
6437 (let ((pa (or (get-text-property 1 'priority a) 0)) | 6537 (let ((pa (or (get-text-property 1 'priority a) 0)) |
6438 (pb (or (get-text-property 1 'priority b) 0))) | 6538 (pb (or (get-text-property 1 'priority b) 0))) |
6580 (org-show-hidden-entry) | 6680 (org-show-hidden-entry) |
6581 (save-excursion | 6681 (save-excursion |
6582 (and (outline-next-heading) | 6682 (and (outline-next-heading) |
6583 (org-flag-heading nil))) ; show the next heading | 6683 (org-flag-heading nil))) ; show the next heading |
6584 (org-todo arg) | 6684 (org-todo arg) |
6585 (forward-char 1) | 6685 (and (bolp) (forward-char 1)) |
6586 (setq newhead (org-get-heading)) | 6686 (setq newhead (org-get-heading)) |
6587 (save-excursion | 6687 (save-excursion |
6588 (org-back-to-heading) | 6688 (org-back-to-heading) |
6589 (move-marker org-last-heading-marker (point)))) | 6689 (move-marker org-last-heading-marker (point)))) |
6590 (beginning-of-line 1) | 6690 (beginning-of-line 1) |
6620 (if (looking-at ".*") | 6720 (if (looking-at ".*") |
6621 (progn | 6721 (progn |
6622 (replace-match new t t) | 6722 (replace-match new t t) |
6623 (beginning-of-line 1) | 6723 (beginning-of-line 1) |
6624 (add-text-properties (point-at-bol) (point-at-eol) props) | 6724 (add-text-properties (point-at-bol) (point-at-eol) props) |
6625 (if fixface | 6725 (when fixface |
6626 (add-text-properties | 6726 (add-text-properties |
6627 (point-at-bol) (point-at-eol) | 6727 (point-at-bol) (point-at-eol) |
6628 (list 'face | 6728 (list 'face |
6629 (if org-last-todo-state-is-todo | 6729 (if org-last-todo-state-is-todo |
6630 undone-face done-face)))) | 6730 undone-face done-face))) |
6731 (org-agenda-highlight-todo 'line)) | |
6631 (beginning-of-line 1)) | 6732 (beginning-of-line 1)) |
6632 (error "Line update did not work"))) | 6733 (error "Line update did not work"))) |
6633 (beginning-of-line 0))))) | 6734 (beginning-of-line 0))))) |
6634 | 6735 |
6635 (defun org-agenda-priority-up () | 6736 (defun org-agenda-priority-up () |
7802 (if (stringp command) | 7903 (if (stringp command) |
7803 (setq cmd command) | 7904 (setq cmd command) |
7804 (setq cmd 'emacs)))) | 7905 (setq cmd 'emacs)))) |
7805 (cond | 7906 (cond |
7806 ((and (stringp cmd) (not (string-match "^\\s-*$" cmd))) | 7907 ((and (stringp cmd) (not (string-match "^\\s-*$" cmd))) |
7807 (setq cmd (format cmd (concat "\"" file "\""))) | 7908 ; (setq cmd (format cmd (concat "\"" file "\""))) |
7909 ;; FIXME: normalize use of quotes | |
7910 (if (string-match "['\"]%s['\"]" cmd) | |
7911 (setq cmd (replace-match "'%s'" t t cmd))) | |
7912 (setq cmd (format cmd file)) | |
7808 (save-window-excursion | 7913 (save-window-excursion |
7809 (shell-command (concat cmd " &")))) | 7914 (shell-command (concat cmd " &")))) |
7810 ((or (stringp cmd) | 7915 ((or (stringp cmd) |
7811 (eq cmd 'emacs)) | 7916 (eq cmd 'emacs)) |
7812 (unless (equal (file-truename file) (file-truename (or buffer-file-name ""))) | 7917 (unless (equal (file-truename file) (file-truename (or buffer-file-name ""))) |
8196 (org-link-unescape | 8301 (org-link-unescape |
8197 (org-match-string-no-properties 1))))) | 8302 (org-match-string-no-properties 1))))) |
8198 (complete-file | 8303 (complete-file |
8199 ;; Completing read for file names. | 8304 ;; Completing read for file names. |
8200 (setq file (read-file-name "File: ")) | 8305 (setq file (read-file-name "File: ")) |
8201 (let ((pwd (file-name-as-directory (expand-file-name ".")))) | 8306 (let ((pwd (file-name-as-directory (expand-file-name "."))) |
8307 (pwd1 (file-name-as-directory (abbreviate-file-name | |
8308 (expand-file-name "."))))) | |
8202 (cond | 8309 (cond |
8203 ((equal complete-file '(16)) | 8310 ((equal complete-file '(16)) |
8204 (setq link (org-make-link | 8311 (setq link (org-make-link |
8205 "file:" | 8312 "file:" |
8206 (abbreviate-file-name (expand-file-name file))))) | 8313 (abbreviate-file-name (expand-file-name file))))) |
8314 ((string-match (concat "^" (regexp-quote pwd1) "\\(.+\\)") file) | |
8315 (setq link (org-make-link "file:" (match-string 1 file)))) | |
8207 ((string-match (concat "^" (regexp-quote pwd) "\\(.+\\)") | 8316 ((string-match (concat "^" (regexp-quote pwd) "\\(.+\\)") |
8208 (expand-file-name file)) | 8317 (expand-file-name file)) |
8209 (setq link (org-make-link | 8318 (setq link (org-make-link |
8210 "file:" (match-string 1 (expand-file-name file))))) | 8319 "file:" (match-string 1 (expand-file-name file))))) |
8211 (t (setq link (org-make-link "file:" file)))))) | 8320 (t (setq link (org-make-link "file:" file)))))) |
11794 (setq rpl (concat "<a href=\"" link "\">" desc "</a>"))) | 11903 (setq rpl (concat "<a href=\"" link "\">" desc "</a>"))) |
11795 ((string= type "file") | 11904 ((string= type "file") |
11796 ;; FILE link | 11905 ;; FILE link |
11797 (let* ((filename path) | 11906 (let* ((filename path) |
11798 (abs-p (file-name-absolute-p filename)) | 11907 (abs-p (file-name-absolute-p filename)) |
11799 (thefile (if abs-p (expand-file-name filename) filename)) | 11908 thefile file-is-image-p search) |
11800 (thefile (save-match-data | 11909 (save-match-data |
11801 (if (string-match ":[0-9]+$" thefile) | 11910 (if (string-match "::\\(.*\\)" filename) |
11802 (replace-match "" t t thefile) | 11911 (setq search (match-string 1 filename) |
11803 thefile))) | 11912 filename (replace-match "" nil nil filename))) |
11804 (file-is-image-p | 11913 (setq file-is-image-p |
11805 (save-match-data | 11914 (string-match (org-image-file-name-regexp) filename)) |
11806 (string-match (org-image-file-name-regexp) thefile)))) | 11915 (setq thefile (if abs-p (expand-file-name filename) filename)) |
11916 (when (and org-export-html-link-org-files-as-html | |
11917 (string-match "\\.org$" thefile)) | |
11918 (setq thefile (concat (substring thefile 0 | |
11919 (match-beginning 0)) | |
11920 ".html")) | |
11921 (if (and search | |
11922 ;; make sure this is can be used as target search | |
11923 (not (string-match "^[0-9]*$" search)) | |
11924 (not (string-match "^\\*" search)) | |
11925 (not (string-match "^/.*/$" search))) | |
11926 (setq thefile (concat thefile "#" | |
11927 (org-solidify-link-text | |
11928 (org-link-unescape search))))))) | |
11807 (setq rpl (if (and org-export-html-inline-images | 11929 (setq rpl (if (and org-export-html-inline-images |
11808 file-is-image-p) | 11930 file-is-image-p) |
11809 (concat "<img src=\"" thefile "\"/>") | 11931 (concat "<img src=\"" thefile "\"/>") |
11810 (concat "<a href=\"" thefile "\">" desc "</a>"))))) | 11932 (concat "<a href=\"" thefile "\">" desc "</a>"))))) |
11811 ((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell")) | 11933 ((member type '("bbdb" "vm" "wl" "mhe" "rmail" "gnus" "shell")) |
12154 t t string))) | 12276 t t string))) |
12155 (while (string-match "\\\\\\([_^]\\)" string) | 12277 (while (string-match "\\\\\\([_^]\\)" string) |
12156 (setq string (replace-match (match-string 1 string) t t string)))) | 12278 (setq string (replace-match (match-string 1 string) t t string)))) |
12157 string) | 12279 string) |
12158 | 12280 |
12281 ;(defun org-export-html-convert-emphasize (string) | |
12282 ; (let (c (s 0)) | |
12283 ; (while (string-match "\\(\\W\\|^\\)\\([*/_]\\)\\(\\w+\\)\\2\\(\\W\\|$\\)" string s) | |
12284 ; (setq c (cdr (assoc (match-string 2 string) | |
12285 ; '(("*" . "b") ("/" . "i") ("_" . "u")))) | |
12286 ; s (+ (match-end 0) 3) | |
12287 ; string (replace-match | |
12288 ; (concat "\\1<" c ">\\3</" c ">\\4") t nil string))) | |
12289 ; string)) | |
12290 | |
12159 (defun org-export-html-convert-emphasize (string) | 12291 (defun org-export-html-convert-emphasize (string) |
12160 (let (c (s 0)) | 12292 (while (string-match org-italic-re string) |
12161 (while (string-match "\\(\\W\\|^\\)\\([*/_]\\)\\(\\w+\\)\\2\\(\\W\\|$\\)" string s) | 12293 (setq string (replace-match "\\1<i>\\3</i>\\4" t nil string))) |
12162 (setq c (cdr (assoc (match-string 2 string) | 12294 (while (string-match org-bold-re string) |
12163 '(("*" . "b") ("/" . "i") ("_" . "u")))) | 12295 (setq string (replace-match "\\1<b>\\3</b>\\4" t nil string))) |
12164 s (+ (match-end 0) 3) | 12296 (while (string-match org-underline-re string) |
12165 string (replace-match | 12297 (setq string (replace-match "\\1<u>\\3</u>\\4" t nil string))) |
12166 (concat "\\1<" c ">\\3</" c ">\\4") t nil string))) | 12298 string) |
12167 string)) | |
12168 | 12299 |
12169 (defun org-parse-key-lines () | 12300 (defun org-parse-key-lines () |
12170 "Find the special key lines with the information for exporters." | 12301 "Find the special key lines with the information for exporters." |
12171 (save-excursion | 12302 (save-excursion |
12172 (goto-char 0) | 12303 (goto-char 0) |