emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/textmodes/org.el


From: Carsten Dominik
Subject: [Emacs-diffs] Changes to emacs/lisp/textmodes/org.el
Date: Tue, 30 Aug 2005 08:06:16 -0400

Index: emacs/lisp/textmodes/org.el
diff -c emacs/lisp/textmodes/org.el:1.33 emacs/lisp/textmodes/org.el:1.34
*** emacs/lisp/textmodes/org.el:1.33    Sat Aug  6 17:41:14 2005
--- emacs/lisp/textmodes/org.el Tue Aug 30 12:06:14 2005
***************
*** 1,12 ****
! ;; org.el --- Outline-based notes management and organizer
  ;; Carstens outline-mode for keeping track of everything.
! 
! ;; Copyright (C) 2004, 2005 Free Software Foundation, Inc.
  ;;
  ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
  ;; Keywords: outlines, hypermedia, calendar
  ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
! ;; Version: 3.14
  ;;
  ;; This file is part of GNU Emacs.
  ;;
--- 1,11 ----
! ;;; org.el --- Outline-based notes management and organizer
  ;; Carstens outline-mode for keeping track of everything.
! ;; Copyright (c) 2004, 2005 Free Software Foundation
  ;;
  ;; Author: Carsten Dominik <dominik at science dot uva dot nl>
  ;; Keywords: outlines, hypermedia, calendar
  ;; Homepage: http://www.astro.uva.nl/~dominik/Tools/org/
! ;; Version: 3.15
  ;;
  ;; This file is part of GNU Emacs.
  ;;
***************
*** 81,86 ****
--- 80,92 ----
  ;;
  ;; Changes:
  ;; -------
+ ;; Version 3.15
+ ;;    - QUOTE keyword at the beginning of an entry causes fixed-width export
+ ;;      of unmodified entry text. `C-c :' toggles this keyword.
+ ;;    - New face `org-special-keyword' which is used for COMMENT, QUOTE,
+ ;;      DEADLINE and SCHEDULED, and priority cookies.  Default is only a weak
+ ;;      color, to reduce the amount of aggressive color in the buffer.
+ ;;
  ;; Version 3.14
  ;;    - Formulas for individual fields in table.
  ;;    - Automatic recalculation in calculating tables.
***************
*** 189,195 ****
  
  ;;; Customization variables
  
! (defvar org-version "3.14"
    "The version number of the file org.el.")
  (defun org-version ()
    (interactive)
--- 195,201 ----
  
  ;;; Customization variables
  
! (defvar org-version "3.15"
    "The version number of the file org.el.")
  (defun org-version ()
    (interactive)
***************
*** 388,393 ****
--- 394,408 ----
    :group 'org-keywords
    :type 'string)
  
+ (defcustom org-quote-string "QUOTE"
+   "Entries starting with this keyword will be exported in fixed-width font.
+ Quoting applies only to the text in the entry following the headline, and does
+ not extend beyond the next headline, even if that is lower level.
+ An entry can be toggled between QUOTE and normal with
+ \\[org-toggle-fixed-width-section]"
+   :group 'org-keywords
+   :type 'string)
+ 
  (defcustom org-after-todo-state-change-hook nil
    "Hook which is run after the state of a TODO item was changed.
  The new state (a string with a todo keyword, or nil) is available in the
***************
*** 1593,1598 ****
--- 1608,1621 ----
    "Face used for level 8 headlines."
    :group 'org-faces)
  
+ (defface org-special-keyword ;; font-lock-string-face
+   '((((type tty) (class color)) (:foreground "green"))
+     (((class color) (background light)) (:foreground "RosyBrown"))
+     (((class color) (background dark)) (:foreground "LightSalmon"))
+     (t (:italic t)))
+   "Face used for level 8 headlines."
+   :group 'org-faces)
+ 
  (defface org-warning ;; font-lock-warning-face
    '((((type tty) (class color)) (:foreground "red"))
      (((class color) (background light)) (:foreground "Red" :bold t))
***************
*** 1919,1935 ****
          '(org-activate-dates (0 'org-link))
          (list (concat "^\\*+[ \t]*" org-not-done-regexp)
                '(1 'org-warning t))
!         (list (concat "\\[#[A-Z]\\]") '(0 'org-warning t))
!         (list (concat "\\<" org-deadline-string) '(0 'org-warning t))
!         (list (concat "\\<" org-scheduled-string) '(0 'org-warning t))
          ;; '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'bold))
          ;; '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'italic))
          ;; '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'underline))
!         (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>")
!               '(1 'org-warning t))
          '("^#.*" (0 'font-lock-comment-face t))
          (if org-fontify-done-headline
              (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
--- 1942,1963 ----
          '(org-activate-dates (0 'org-link))
          (list (concat "^\\*+[ \t]*" org-not-done-regexp)
                '(1 'org-warning t))
!         (list (concat "\\[#[A-Z]\\]") '(0 'org-special-keyword t))
! ;       (list (concat "\\<" org-deadline-string) '(0 'org-warning t))
! ;       (list (concat "\\<" org-scheduled-string) '(0 'org-warning t))
!         (list (concat "\\<" org-deadline-string) '(0 'org-special-keyword t))
!         (list (concat "\\<" org-scheduled-string) '(0 'org-special-keyword t))
          ;; '("\\(\\s-\\|^\\)\\(\\*\\([a-zA-Z]+\\)\\*\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'bold))
          ;; '("\\(\\s-\\|^\\)\\(/\\([a-zA-Z]+\\)/\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'italic))
          ;; '("\\(\\s-\\|^\\)\\(_\\([a-zA-Z]+\\)_\\)\\([^a-zA-Z*]\\|$\\)"
          ;; (3 'underline))
! ;       (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string "\\)\\>")
! ;             '(1 'org-warning t))
!         (list (concat "^\\*+[ \t]*\\<\\(" org-comment-string 
!                       "\\|" org-quote-string "\\)\\>")
!               '(1 'org-special-keyword t))
          '("^#.*" (0 'font-lock-comment-face t))
          (if org-fontify-done-headline
              (list (concat "^[*]+ +\\<\\(" org-done-string "\\)\\(.*\\)\\>")
***************
*** 2216,2222 ****
        (shrink-window-if-larger-than-buffer (get-buffer-window "*Help*"))
        (setq buffer-read-only nil)
        (erase-buffer)
!       (insert-buffer buf)
        (let ((org-startup-truncated t)
              (org-startup-folded t)
              (org-startup-with-deadline-check nil))
--- 2244,2250 ----
        (shrink-window-if-larger-than-buffer (get-buffer-window "*Help*"))
        (setq buffer-read-only nil)
        (erase-buffer)
!       (insert-buffer-substring buf)
        (let ((org-startup-truncated t)
              (org-startup-folded t)
              (org-startup-with-deadline-check nil))
***************
*** 4013,4019 ****
           (get-text-property (point) 'org-marker))
        (org-agenda-show)))
  
! (defvar org-disable-diary nil)          ;Dynamically-scoped param.
  
  (defun org-get-entries-from-diary (date)
    "Get the (Emacs Calendar) diary entries for DATE."
--- 4041,4047 ----
           (get-text-property (point) 'org-marker))
        (org-agenda-show)))
  
! (defvar org-disable-agenda-to-diary nil)          ;Dynamically-scoped param.
  
  (defun org-get-entries-from-diary (date)
    "Get the (Emacs Calendar) diary entries for DATE."
***************
*** 4021,4028 ****
         (diary-display-hook '(fancy-diary-display))
         (list-diary-entries-hook
          (cons 'org-diary-default-entry list-diary-entries-hook))
         entries
!        (org-disable-diary t))
      (save-excursion
        (save-window-excursion
        (list-diary-entries date 1)))
--- 4049,4058 ----
         (diary-display-hook '(fancy-diary-display))
         (list-diary-entries-hook
          (cons 'org-diary-default-entry list-diary-entries-hook))
+        (diary-file-name-prefix-function nil) ; turn this feature off
+        (diary-modify-entry-list-string-function 
'org-modify-diary-entry-string)
         entries
!        (org-disable-agenda-to-diary t))
      (save-excursion
        (save-window-excursion
        (list-diary-entries date 1)))
***************
*** 4076,4110 ****
    (if (re-search-forward "^Org-mode dummy\n?" nil t)
        (replace-match "")))
  
! ;; Advise the add-to-diary-list function to allow org to jump to
! ;; diary entries. Wrapped into eval-after-load to avoid loading
! ;; advice unnecessarily
  (eval-after-load "diary-lib"
!   '(defadvice add-to-diary-list (before org-mark-diary-entry activate)
!      "Make the position visible."
!      (if (and org-disable-diary  ;; called from org-agenda
!             (stringp string)
!             (buffer-file-name))
!        (add-text-properties
!         0 (length string)
!         (list 'mouse-face 'highlight
!               'keymap org-agenda-keymap
!               'help-echo
!               (format
!                "mouse-2 or RET jump to diary file %s"
!                (abbreviate-file-name (buffer-file-name)))
!               'org-agenda-diary-link t
!               'org-marker (org-agenda-new-marker (point-at-bol)))
!         string))))
  
  (defun org-diary-default-entry ()
    "Add a dummy entry to the diary.
  Needed to avoid empty dates which mess up holiday display."
    ;; Catch the error if dealing with the new add-to-diary-alist
!   (condition-case nil
!       (add-to-diary-list original-date "Org-mode dummy" "")
!     (error
!      (add-to-diary-list original-date  "Org-mode dummy" "" nil))))
  
  (defun org-add-file (&optional file)
    "Add current file to the list of files in variable `org-agenda-files'.
--- 4106,4148 ----
    (if (re-search-forward "^Org-mode dummy\n?" nil t)
        (replace-match "")))
  
! ;; Make sure entries from the diary have the right text properties.
  (eval-after-load "diary-lib"
!   '(if (boundp 'diary-modify-entry-list-string-function)
!        ;; We can rely on the hook, nothing to do
!        nil
!      ;; Hook not avaiable, must use advice to make this work
!      (defadvice add-to-diary-list (before org-mark-diary-entry activate)
!        "Make the position visible."
!        (if (and org-disable-agenda-to-diary  ;; called from org-agenda
!               (stringp string)
!               (buffer-file-name))
!          (setq string (org-modify-diary-entry-string string))))))
! 
! (defun org-modify-diary-entry-string (string)
!   "Add text properties to string, allowing org-mode to act on it."
!   (add-text-properties
!    0 (length string)
!    (list 'mouse-face 'highlight
!        'keymap org-agenda-keymap
!        'help-echo
!        (format
!         "mouse-2 or RET jump to diary file %s"
!         (abbreviate-file-name (buffer-file-name)))
!        'org-agenda-diary-link t
!        'org-marker (org-agenda-new-marker (point-at-bol)))
!    string)
!   string)
  
  (defun org-diary-default-entry ()
    "Add a dummy entry to the diary.
  Needed to avoid empty dates which mess up holiday display."
    ;; Catch the error if dealing with the new add-to-diary-alist
!   (when org-disable-agenda-to-diary
!     (condition-case nil
!       (add-to-diary-list original-date "Org-mode dummy" "")
!       (error
!        (add-to-diary-list original-date  "Org-mode dummy" "" nil)))))
  
  (defun org-add-file (&optional file)
    "Add current file to the list of files in variable `org-agenda-files'.
***************
*** 4238,4248 ****
         file rtn results)
      ;; If this is called during org-agenda, don't return any entries to
      ;; the calendar.  Org Agenda will list these entries itself.
!     (if org-disable-diary (setq files nil))
      (while (setq file (pop files))
        (setq rtn (apply 'org-agenda-get-day-entries file date args))
        (setq results (append results rtn)))
!     (concat (org-finalize-agenda-entries results) "\n")))
  
  (defun org-agenda-get-day-entries (file date &rest args)
    "Does the work for `org-diary' and `org-agenda'.
--- 4276,4287 ----
         file rtn results)
      ;; If this is called during org-agenda, don't return any entries to
      ;; the calendar.  Org Agenda will list these entries itself.
!     (if org-disable-agenda-to-diary (setq files nil))
      (while (setq file (pop files))
        (setq rtn (apply 'org-agenda-get-day-entries file date args))
        (setq results (append results rtn)))
!     (if results
!       (concat (org-finalize-agenda-entries results) "\n"))))
  
  (defun org-agenda-get-day-entries (file date &rest args)
    "Does the work for `org-diary' and `org-agenda'.
***************
*** 6270,6276 ****
        (progn
          (if (and org-table-copy-increment
                   (string-match "^[0-9]+$" txt))
!             (setq txt (format "%d" (+ (string-to-int txt) 1))))
          (insert txt)
          (org-table-maybe-recalculate-line)
          (org-table-align))
--- 6309,6315 ----
        (progn
          (if (and org-table-copy-increment
                   (string-match "^[0-9]+$" txt))
!             (setq txt (format "%d" (+ (string-to-number txt) 1))))
          (insert txt)
          (org-table-maybe-recalculate-line)
          (org-table-align))
***************
*** 6997,7005 ****
       (t n))))
  
  (defun org-table-get-vertical-vector (desc &optional tbeg col)
!   "Get a calc vector from a column, according to descriptor DESC.
! Optional arguments TBEG and COL can give the beginning of the table
! and the current column, to avoid unnecessary parsing."
    (save-excursion
      (or tbeg (setq tbeg (org-table-begin)))
      (or col (setq col (org-table-current-column)))
--- 7036,7044 ----
       (t n))))
  
  (defun org-table-get-vertical-vector (desc &optional tbeg col)
!   "Get a calc vector from a column, accorting to desctiptor DESC. 
! Optional arguments TBEG and COL can give the beginning of the table and
! the current column, to avoid unnecessary parsing."
    (save-excursion
      (or tbeg (setq tbeg (org-table-begin)))
      (or col (setq col (org-table-current-column)))
***************
*** 7047,7053 ****
                     l ",") "]"))
         ((string-match "\\([0-9]+\\)" desc)
        (beginning-of-line 1)
!       (when (re-search-backward org-table-dataline-regexp tbeg t
                                  (string-to-number (match-string 0 desc)))
          (org-table-goto-column col)
          (org-trim (org-table-get-field))))))))
--- 7086,7092 ----
                     l ",") "]"))
         ((string-match "\\([0-9]+\\)" desc)
        (beginning-of-line 1)
!       (when (re-search-backward org-table-dataline-regexp tbeg t 
                                  (string-to-number (match-string 0 desc)))
          (org-table-goto-column col)
          (org-trim (org-table-get-field))))))))
***************
*** 7143,7149 ****
  ACTION can be `remove', `insert', `swap'.  For `swap', two column numbers are
  expected, for the other action only a single column number is needed."
    (let ((list (org-table-get-stored-formulas))
!       (nmax (length (org-split-string
                       (buffer-substring (point-at-bol) (point-at-eol))
                       "|")))
        col col1 col2 scol si sc1 sc2)
--- 7182,7188 ----
  ACTION can be `remove', `insert', `swap'.  For `swap', two column numbers are
  expected, for the other action only a single column number is needed."
    (let ((list (org-table-get-stored-formulas))
!       (nmax (length (org-split-string 
                       (buffer-substring (point-at-bol) (point-at-eol))
                       "|")))
        col col1 col2 scol si sc1 sc2)
***************
*** 7222,7228 ****
              fields (org-split-string (match-string 2) " *| *"))
        (save-excursion
          (beginning-of-line (if (equal c "_") 2 0))
!         (setq line (org-current-line) col 1)
          (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
               (setq fields1 (org-split-string (match-string 1) " *| *"))))
        (while (and fields1 (setq field (pop fields)))
--- 7261,7267 ----
              fields (org-split-string (match-string 2) " *| *"))
        (save-excursion
          (beginning-of-line (if (equal c "_") 2 0))
!         (setq line (org-current-line) col 1)    
          (and (looking-at "^[ \t]*|[^|]*\\(|.*\\)")
               (setq fields1 (org-split-string (match-string 1) " *| *"))))
        (while (and fields1 (setq field (pop fields)))
***************
*** 7440,7446 ****
        ;; Insert the references to fields in same row
        (while (string-match "\\$\\([0-9]+\\)?" form)
        (setq n (if (match-beginning 1)
!                   (string-to-int (match-string 1 form))
                  n0)
              x (nth (1- n) fields))
        (unless x (error "Invalid field specifier \"%s\""
--- 7479,7485 ----
        ;; Insert the references to fields in same row
        (while (string-match "\\$\\([0-9]+\\)?" form)
        (setq n (if (match-beginning 1)
!                   (string-to-number (match-string 1 form))
                  n0)
              x (nth (1- n) fields))
        (unless x (error "Invalid field specifier \"%s\""
***************
*** 7539,7545 ****
        (setq eql eqlnum)
        (while (setq entry (pop eql))
          (goto-line org-last-recalc-line)
!         (org-table-goto-column (string-to-int (car entry)) nil 'force)
          (org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore))))
      (goto-line thisline)
      (org-table-goto-column thiscol)
--- 7578,7584 ----
        (setq eql eqlnum)
        (while (setq entry (pop eql))
          (goto-line org-last-recalc-line)
!         (org-table-goto-column (string-to-number (car entry)) nil 'force)
          (org-table-eval-formula nil (cdr entry) 'noalign 'nocst 'nostore))))
      (goto-line thisline)
      (org-table-goto-column thiscol)
***************
*** 7622,7628 ****
      (set (make-local-variable 'org-pos) pos)
      (set (make-local-variable 'org-window-configuration) wc)
      (use-local-map org-edit-formulas-map)
!     (setq s "# Edit formulas and finish with `C-c C-c'.
  # Use `C-u C-c C-c' to also appy them immediately to the entire table.
  # Use `C-c ?' to get information about $name at point.
  # To cancel editing, press `C-c C-q'.\n")
--- 7661,7667 ----
      (set (make-local-variable 'org-pos) pos)
      (set (make-local-variable 'org-window-configuration) wc)
      (use-local-map org-edit-formulas-map)
!     (setq s "# Edit formulas and finish with `C-c C-c'. 
  # Use `C-u C-c C-c' to also appy them immediately to the entire table.
  # Use `C-c ?' to get information about $name at point.
  # To cancel editing, press `C-c C-q'.\n")
***************
*** 7660,7666 ****
        (switch-to-buffer-other-window (marker-buffer pos))
        (goto-char pos)
        (goto-char (org-table-begin))
!       (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|")
                             (org-table-end) t)
          (progn
            (goto-char (match-beginning 1))
--- 7699,7705 ----
        (switch-to-buffer-other-window (marker-buffer pos))
        (goto-char pos)
        (goto-char (org-table-begin))
!       (if (re-search-forward (concat "^[ \t]*| *! *.*?| *\\(" var "\\) *|") 
                             (org-table-end) t)
          (progn
            (goto-char (match-beginning 1))
***************
*** 7715,7721 ****
      (org-table-store-formulas eql)
      (move-marker pos nil)
      (kill-buffer "*Edit Formulas*")
!     (if arg
        (org-table-recalculate 'all)
        (message "New formulas installed - press C-u C-c C-c to apply."))))
  
--- 7754,7760 ----
      (org-table-store-formulas eql)
      (move-marker pos nil)
      (kill-buffer "*Edit Formulas*")
!     (if arg 
        (org-table-recalculate 'all)
        (message "New formulas installed - press C-u C-c C-c to apply."))))
  
***************
*** 7801,7807 ****
            (and c (setq minor-mode-map-alist
                         (cons c (delq c minor-mode-map-alist)))))
          (set (make-local-variable (quote org-table-may-need-update)) t)
!         (make-local-hook (quote before-change-functions))
          (add-hook 'before-change-functions 'org-before-change-function
                    nil 'local)
          (set (make-local-variable 'org-old-auto-fill-inhibit-regexp)
--- 7840,7846 ----
            (and c (setq minor-mode-map-alist
                         (cons c (delq c minor-mode-map-alist)))))
          (set (make-local-variable (quote org-table-may-need-update)) t)
!         (make-local-hook (quote before-change-functions)) ; needed for XEmacs
          (add-hook 'before-change-functions 'org-before-change-function
                    nil 'local)
          (set (make-local-variable 'org-old-auto-fill-inhibit-regexp)
***************
*** 8620,8633 ****
      (insert s)))
  
  (defun org-toggle-fixed-width-section (arg)
!   "Toggle the fixed-width indicator at the beginning of lines in the region.
! If there is no active region, only acts on the current line.
! If the first non-white character in the first line of the region is a
! vertical bar \"|\", then the command removes the bar from all lines in
! the region.  If the first character is not a bar, the command adds a
! bar to all lines, in the column given by the beginning of the region.
! 
! If there is a numerical prefix ARG, create ARG new lines starting with \"|\"."
    (interactive "P")
    (let* ((cc 0)
         (regionp (org-region-active-p))
--- 8659,8671 ----
      (insert s)))
  
  (defun org-toggle-fixed-width-section (arg)
!   "Toggle the fixed-width export.
! If there is no active region, the QUOTE keyword at the current headline is
! inserted or removed.  When present, it causes the text between this headline
! and the next to be exported as fixed-width text, and unmodified.
! If there is an active region, this command adds or removes a colon as the
! first character of this line.  If the first character of a line is a colon,
! this line is also exported in fixed-width font."
    (interactive "P")
    (let* ((cc 0)
         (regionp (org-region-active-p))
***************
*** 8636,8658 ****
         (nlines (or arg (if (and beg end) (count-lines beg end) 1)))
         (re "[ \t]*\\(:\\)")
         off)
!     (save-excursion
!       (goto-char beg)
!       (setq cc (current-column))
!       (beginning-of-line 1)
!       (setq off (looking-at re))
!       (while (> nlines 0)
!       (setq nlines (1- nlines))
!       (beginning-of-line 1)
!       (cond
!        (arg
!         (move-to-column cc t)
!         (insert ":\n")
!         (forward-line -1))
!        ((and off (looking-at re))
!         (replace-match "" t t nil 1))
!        ((not off) (move-to-column cc t) (insert ":")))
!       (forward-line 1)))))
  
  (defun org-export-as-html-and-open (arg)
    "Export the outline as HTML and immediately open it with a browser.
--- 8674,8706 ----
         (nlines (or arg (if (and beg end) (count-lines beg end) 1)))
         (re "[ \t]*\\(:\\)")
         off)
!     (if regionp
!       (save-excursion
!         (goto-char beg)
!         (setq cc (current-column))
!         (beginning-of-line 1)
!         (setq off (looking-at re))
!         (while (> nlines 0)
!           (setq nlines (1- nlines))
!           (beginning-of-line 1)
!           (cond
!            (arg
!             (move-to-column cc t)
!             (insert ":\n")
!             (forward-line -1))
!            ((and off (looking-at re))
!             (replace-match "" t t nil 1))
!            ((not off) (move-to-column cc t) (insert ":")))
!           (forward-line 1)))
!       (save-excursion
!       (org-back-to-heading)
!       (if (looking-at (concat outline-regexp
!                               "\\( +\\<" org-quote-string "\\>\\)"))
!           (replace-match "" t t nil 1)
!         (if (looking-at outline-regexp)
!             (progn
!               (goto-char (match-end 0))
!               (insert " " org-quote-string))))))))  
  
  (defun org-export-as-html-and-open (arg)
    "Export the outline as HTML and immediately open it with a browser.
***************
*** 8681,8708 ****
    (setq-default org-deadline-line-regexp org-deadline-line-regexp)
    (setq-default org-done-string org-done-string)
    (let* ((region-p (org-region-active-p))
!        (region
!         (buffer-substring
!          (if region-p (region-beginning) (point-min))
!          (if region-p (region-end) (point-max))))
!        (all_lines
!         (org-skip-comments (org-split-string region "[\r\n]")))
!        (lines (org-export-find-first-heading-line all_lines))
!        (level 0) (line "") (origline "") txt todo
!        (umax nil)
!        (filename (concat (file-name-sans-extension (buffer-file-name))
!                          ".html"))
!        (buffer (find-file-noselect filename))
!        (levels-open (make-vector org-level-max nil))
!        (date  (format-time-string "%Y/%m/%d" (current-time)))
         (time  (format-time-string "%X" (current-time)))
!        (author      user-full-name)
         (title       (buffer-name))
!        (options     nil)
         (email       user-mail-address)
!        (language    org-export-default-language)
         (text        nil)
!        (lang-words  nil)
         (head-count  0) cnt
         (start       0)
         table-open type
--- 8729,8758 ----
    (setq-default org-deadline-line-regexp org-deadline-line-regexp)
    (setq-default org-done-string org-done-string)
    (let* ((region-p (org-region-active-p))
!          (region
!           (buffer-substring
!            (if region-p (region-beginning) (point-min))
!            (if region-p (region-end) (point-max))))
!          (all_lines
!           (org-skip-comments (org-split-string region "[\r\n]")))
!          (lines (org-export-find-first-heading-line all_lines))
!          (level 0) (line "") (origline "") txt todo
!          (umax nil)
!          (filename (concat (file-name-sans-extension (buffer-file-name))
!                            ".html"))
!          (buffer (find-file-noselect filename))
!          (levels-open (make-vector org-level-max nil))
!        (date (format-time-string "%Y/%m/%d" (current-time)))
         (time  (format-time-string "%X" (current-time)))
!          (author      user-full-name)
         (title       (buffer-name))
!          (options     nil)
!        (quote-re    (concat "^\\*+[ \t]*" org-quote-string "\\>"))
!        (inquote     nil)
         (email       user-mail-address)
!          (language    org-export-default-language)
         (text        nil)
!          (lang-words  nil)
         (head-count  0) cnt
         (start       0)
         table-open type
***************
*** 8716,8737 ****
      ;; Search for the export key lines
      (org-parse-key-lines)
      (setq lang-words (or (assoc language org-export-language-setup)
!                        (assoc "en" org-export-language-setup)))
  
      ;; Switch to the output buffer
      (if (or hidden (not org-export-html-show-new-buffer))
!       (set-buffer buffer)
        (switch-to-buffer-other-window buffer))
      (erase-buffer)
      (fundamental-mode)
      (let ((case-fold-search nil))
        (if options (org-parse-export-options options))
        (setq umax (if arg (prefix-numeric-value arg)
!                  org-export-headline-levels))
  
        ;; File header
        (insert (format
!              "<html lang=\"%s\"><head>
  <title>%s</title>
  <meta http-equiv=\"Content-Type\" content=\"text/html\">
  <meta name=generator content=\"Org-mode\">
--- 8766,8787 ----
      ;; Search for the export key lines
      (org-parse-key-lines)
      (setq lang-words (or (assoc language org-export-language-setup)
!                          (assoc "en" org-export-language-setup)))
  
      ;; Switch to the output buffer
      (if (or hidden (not org-export-html-show-new-buffer))
!         (set-buffer buffer)
        (switch-to-buffer-other-window buffer))
      (erase-buffer)
      (fundamental-mode)
      (let ((case-fold-search nil))
        (if options (org-parse-export-options options))
        (setq umax (if arg (prefix-numeric-value arg)
!                    org-export-headline-levels))
  
        ;; File header
        (insert (format
!                "<html lang=\"%s\"><head>
  <title>%s</title>
  <meta http-equiv=\"Content-Type\" content=\"text/html\">
  <meta name=generator content=\"Org-mode\">
***************
*** 8739,8753 ****
  <meta name=author content=\"%s\">
  </head><body>
  "
!        language (org-html-expand title) date time author))
        (if title     (insert (concat "<H1 align=\"center\">"
                                    (org-html-expand title) "</H1>\n")))
        (if author    (insert (concat (nth 1 lang-words) ": " author "\n")))
        (if email         (insert (concat "<a href=\"mailto:"; email "\">&lt;"
!                                 email "&gt;</a>\n")))
        (if (or author email) (insert "<br>\n"))
        (if (and date time) (insert (concat (nth 2 lang-words) ": "
!                                         date " " time "<br>\n")))
        (if text      (insert (concat "<p>\n" (org-html-expand text))))
        (if org-export-with-toc
          (progn
--- 8789,8803 ----
  <meta name=author content=\"%s\">
  </head><body>
  "
!              language (org-html-expand title) date time author))
        (if title     (insert (concat "<H1 align=\"center\">"
                                    (org-html-expand title) "</H1>\n")))
        (if author    (insert (concat (nth 1 lang-words) ": " author "\n")))
        (if email         (insert (concat "<a href=\"mailto:"; email "\">&lt;"
!                                   email "&gt;</a>\n")))
        (if (or author email) (insert "<br>\n"))
        (if (and date time) (insert (concat (nth 2 lang-words) ": "
!                                           date " " time "<br>\n")))
        (if text      (insert (concat "<p>\n" (org-html-expand text))))
        (if org-export-with-toc
          (progn
***************
*** 8802,8925 ****
            ))
        (setq head-count 0)
        (org-init-section-numbers)
        (while (setq line (pop lines) origline line)
!       ;; Protect the links
!       (setq start 0)
!       (while (string-match org-link-maybe-angles-regexp line start)
!         (setq start (match-end 0))
!         (setq line (replace-match
!                     (concat "\000" (match-string 1 line) "\000")
!                     t t line)))
! 
!       ;; replace "<" and ">" by "&lt;" and "&gt;"
!       ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
!       (setq line (org-html-expand line))
! 
!       ;; Verbatim lines
!       (if (and org-export-with-fixed-width
!                (string-match "^[ \t]*:\\(.*\\)" line))
            (progn
!             (let ((l (match-string 1 line)))
!               (while (string-match " " l)
!                 (setq l (replace-match "&nbsp;" t t l)))
!               (insert "\n<span style='font-family:Courier'>"
!                       l "</span>"
!                       (if (and lines
!                                (not (string-match "^[ \t]+\\(:.*\\)"
!                                                   (car lines))))
!                           "<br>\n" "\n"))))
          (setq start 0)
!         (while (string-match org-protected-link-regexp line start)
!           (setq start (- (match-end 0) 2))
!           (setq type (match-string 1 line))
!           (cond
!            ((member type '("http" "https" "ftp" "mailto" "news"))
!             ;; standard URL
!             (setq line (replace-match
! ;                          "<a href=\"\\1:\\2\">&lt;\\1:\\2&gt;</a>"
!                         "<a href=\"\\1:\\2\">\\1:\\2</a>"
!                         nil nil line)))
!            ((string= type "file")
!             ;; FILE link
!             (let* ((filename (match-string 2 line))
!                    (abs-p (file-name-absolute-p filename))
!                    (thefile (if abs-p (expand-file-name filename) filename))
!                    (thefile (save-match-data
!                               (if (string-match ":[0-9]+$" thefile)
!                                   (replace-match "" t t thefile)
!                                 thefile)))
!                    (file-is-image-p
!                     (save-match-data
!                       (string-match (org-image-file-name-regexp) thefile))))
                (setq line (replace-match
!                           (if (and org-export-html-inline-images
!                                    file-is-image-p)
!                               (concat "<img src=\"" thefile "\"/>")
!                             (concat "<a href=\"" thefile "\">\\1:\\2</a>"))
!                           nil nil line))))
! 
!            ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell"))
!             (setq line (replace-match
!                         "<i>&lt;\\1:\\2&gt;</i>" nil nil line)))))
! 
!         ;; TODO items
!         (if (and (string-match org-todo-line-regexp line)
!                  (match-beginning 2))
!             (if (equal (match-string 2 line) org-done-string)
                  (setq line (replace-match
!                             "<span style='color:green'>\\2</span>"
!                             nil nil line 2))
!               (setq line (replace-match "<span style='color:red'>\\2</span>"
!                                         nil nil line 2))))
  
!         ;; DEADLINES
!         (if (string-match org-deadline-line-regexp line)
!             (progn
!             (if (save-match-data
!                   (string-match "<a href"
!                                 (substring line 0 (match-beginning 0))))
!                 nil  ; Don't do the replacement - it is inside a link
!               (setq line (replace-match "<span style='color:red'>\\&</span>"
!                                         nil nil line 1)))))
  
!         (cond
!          ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
!           ;; This is a headline
!           (setq level (- (match-end 1) (match-beginning 1))
!                 txt (match-string 2 line))
!           (if (<= level umax) (setq head-count (+ head-count 1)))
!           (org-html-level-start level txt umax
!                                 (and org-export-with-toc (<= level umax))
!                                 head-count))
! 
!          ((and org-export-with-tables
!                (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
!           (if (not table-open)
!               ;; New table starts
!               (setq table-open t table-buffer nil table-orig-buffer nil))
!           ;; Accumulate lines
!           (setq table-buffer (cons line table-buffer)
!                 table-orig-buffer (cons origline table-orig-buffer))
!           (when (or (not lines)
!                     (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
!                                        (car lines))))
!             (setq table-open nil
!                   table-buffer (nreverse table-buffer)
!                   table-orig-buffer (nreverse table-orig-buffer))
!             (insert (org-format-table-html table-buffer table-orig-buffer))))
!          (t
!           ;; Normal lines
!           ;; Lines starting with "-", and empty lines make new paragraph.
!           ;; FIXME: Should we add + and *?
!           (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>"))
!           (insert line (if org-export-preserve-breaks "<br>\n" "\n"))))
!         ))
!       (if org-export-html-with-timestamp
!         (insert org-export-html-html-helper-timestamp))
!       (insert "</body>\n</html>\n")
!       (normal-mode)
!       (save-buffer)
!       (goto-char (point-min)))))
  
  (defun org-format-table-html (lines olines)
    "Find out which HTML converter to use and return the HTML code."
--- 8852,8992 ----
            ))
        (setq head-count 0)
        (org-init-section-numbers)
+ 
        (while (setq line (pop lines) origline line)
!       ;; end of quote?
!       (when (and inquote (string-match "^\\*+" line))
!         (insert "</pre>\n")
!         (setq inquote nil))
!       ;; inquote
!       (if inquote
            (progn
!             (insert line "\n")
!             (setq line (org-html-expand line))) ;;????? FIXME: not needed?
! 
!         ;; Protect the links
          (setq start 0)
!         (while (string-match org-link-maybe-angles-regexp line start)
!           (setq start (match-end 0))
!           (setq line (replace-match
!                       (concat "\000" (match-string 1 line) "\000")
!                       t t line)))
! 
!         ;; replace "<" and ">" by "&lt;" and "&gt;"
!         ;; handle @<..> HTML tags (replace "@&gt;..&lt;" by "<..>")
!         (setq line (org-html-expand line))
! 
!         ;; Verbatim lines
!         (if (and org-export-with-fixed-width
!                  (string-match "^[ \t]*:\\(.*\\)" line))
!             (progn
!               (let ((l (match-string 1 line)))
!                 (while (string-match " " l)
!                   (setq l (replace-match "&nbsp;" t t l)))
!                 (insert "\n<span style='font-family:Courier'>"
!                         l "</span>"
!                         (if (and lines
!                                  (not (string-match "^[ \t]+\\(:.*\\)"
!                                                     (car lines))))
!                             "<br>\n" "\n"))))
! 
!           (setq start 0)
!           (while (string-match org-protected-link-regexp line start)
!             (setq start (- (match-end 0) 2))
!             (setq type (match-string 1 line))
!             (cond
!              ((member type '("http" "https" "ftp" "mailto" "news"))
!               ;; standard URL
                (setq line (replace-match
!                                       ;                          "<a 
href=\"\\1:\\2\">&lt;\\1:\\2&gt;</a>"
!                           "<a href=\"\\1:\\2\">\\1:\\2</a>"
!                           nil nil line)))
!              ((string= type "file")
!               ;; FILE link
!               (let* ((filename (match-string 2 line))
!                      (abs-p (file-name-absolute-p filename))
!                      (thefile (if abs-p (expand-file-name filename) filename))
!                      (thefile (save-match-data
!                                 (if (string-match ":[0-9]+$" thefile)
!                                     (replace-match "" t t thefile)
!                                   thefile)))
!                      (file-is-image-p
!                       (save-match-data
!                         (string-match (org-image-file-name-regexp) thefile))))
                  (setq line (replace-match
!                             (if (and org-export-html-inline-images
!                                      file-is-image-p)
!                                 (concat "<img src=\"" thefile "\"/>")
!                               (concat "<a href=\"" thefile "\">\\1:\\2</a>"))
!                             nil nil line))))
  
!              ((member type '("bbdb" "vm" "wl" "rmail" "gnus" "shell"))
!               (setq line (replace-match
!                           "<i>&lt;\\1:\\2&gt;</i>" nil nil line)))))
  
!           ;; TODO items
!           (if (and (string-match org-todo-line-regexp line)
!                    (match-beginning 2))
!               (if (equal (match-string 2 line) org-done-string)
!                   (setq line (replace-match
!                               "<span style='color:green'>\\2</span>"
!                               nil nil line 2))
!                 (setq line (replace-match "<span style='color:red'>\\2</span>"
!                                           nil nil line 2))))
! 
!           ;; DEADLINES
!           (if (string-match org-deadline-line-regexp line)
!               (progn
!                 (if (save-match-data
!                       (string-match "<a href"
!                                     (substring line 0 (match-beginning 0))))
!                     nil     ; Don't do the replacement - it is inside a link
!                   (setq line (replace-match "<span 
style='color:red'>\\&</span>"
!                                             nil nil line 1)))))
! 
! 
!           (cond
!            ((string-match "^\\(\\*+\\)[ \t]*\\(.*\\)" line)
!             ;; This is a headline
!             (setq level (- (match-end 1) (match-beginning 1))
!                   txt (match-string 2 line))
!             (if (<= level umax) (setq head-count (+ head-count 1)))
!             (org-html-level-start level txt umax
!                                   (and org-export-with-toc (<= level umax))
!                                   head-count)
!             ;; QUOTES
!             (when (string-match quote-re line)
!               (insert "<pre>")
!               (setq inquote t)))
! 
!            ((and org-export-with-tables
!                  (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)" line))
!             (if (not table-open)
!                 ;; New table starts
!                 (setq table-open t table-buffer nil table-orig-buffer nil))
!             ;; Accumulate lines
!             (setq table-buffer (cons line table-buffer)
!                   table-orig-buffer (cons origline table-orig-buffer))
!             (when (or (not lines)
!                       (not (string-match "^\\([ \t]*\\)\\(|\\|\\+-+\\+\\)"
!                                          (car lines))))
!               (setq table-open nil
!                     table-buffer (nreverse table-buffer)
!                     table-orig-buffer (nreverse table-orig-buffer))
!               (insert (org-format-table-html table-buffer 
table-orig-buffer))))
!            (t
!             ;; Normal lines
!             ;; Lines starting with "-", and empty lines make new paragraph.
!             ;; FIXME: Should we add + and *?
!             (if (string-match "^ *-\\|^[ \t]*$" line) (insert "<p>"))
!             (insert line (if org-export-preserve-breaks "<br>\n" "\n"))))
!           )))
!       (if org-export-html-with-timestamp
!           (insert org-export-html-html-helper-timestamp))
!       (insert "</body>\n</html>\n")
!       (normal-mode)
!       (save-buffer)
!       (goto-char (point-min)))))
  
  (defun org-format-table-html (lines olines)
    "Find out which HTML converter to use and return the HTML code."
***************
*** 9229,9235 ****
        (if (string-match "\\`[A-Z]\\'" number-string)
            (aset org-section-numbers i
                  (- (string-to-char number-string) ?A -1))
!           (aset org-section-numbers i (string-to-int number-string)))
        (pop numbers))
        (setq i (1- i)))))
  
--- 9296,9302 ----
        (if (string-match "\\`[A-Z]\\'" number-string)
            (aset org-section-numbers i
                  (- (string-to-char number-string) ?A -1))
!           (aset org-section-numbers i (string-to-number number-string)))
        (pop numbers))
        (setq i (1- i)))))
  
***************
*** 9998,10011 ****
     "\\):[ \t]*"
     (if org-noutline-p "\\(.+\\)" "\\([^\n\r]+\\)")))
  
! ;; Advise the bookmark-jump function to make jump position visible
! ;; Wrapped into eval-after-load to avoid loading advice unnecessarily
  (eval-after-load "bookmark"
!   '(defadvice bookmark-jump (after org-make-visible activate)
!      "Make the position visible."
!      (and (eq major-mode 'org-mode)
!         (org-invisible-p)
!         (org-show-hierarchy-above))))
  
  ;;; Finish up
  
--- 10065,10087 ----
     "\\):[ \t]*"
     (if org-noutline-p "\\(.+\\)" "\\([^\n\r]+\\)")))
  
! ;; Make `bookmark-jump' show the jump location if it was hidden.
  (eval-after-load "bookmark"
!   '(if (boundp 'bookmark-after-jump-hook)
!        ;; We can use the hook
!        (add-hook 'bookmark-after-jump-hook 'org-bookmark-jump-unhide)
!      ;; Hook not available, use advice
!      (defadvice bookmark-jump (after org-make-visible activate)
!        "Make the position visible."
!        (org-bookmark-jump-unhide))))
! 
! (defun org-bookmark-jump-unhide ()
!   "Unhide the current position, to show the bookmark location."
!   (and (eq major-mode 'org-mode)
!        (or (org-invisible-p)
!          (save-excursion (goto-char (max (point-min) (1- (point))))
!                          (org-invisible-p)))
!        (org-show-hierarchy-above)))
  
  ;;; Finish up
  




reply via email to

[Prev in Thread] Current Thread [Next in Thread]