From mboxrd@z Thu Jan 1 00:00:00 1970 From: Carsten Dominik Subject: Re: org-mode + xemacs + patch Date: Tue, 9 May 2006 16:58:30 +0200 Message-ID: <30cf789d7cbc5c3caf7b6eea1a1e08f8@science.uva.nl> References: <7uejz3tgzd.fsf@horizonsemi.com> Mime-Version: 1.0 (Apple Message framework v623) Content-Type: text/plain; charset=US-ASCII; format=flowed Content-Transfer-Encoding: 7bit Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1FdTfd-0001aR-GN for emacs-orgmode@gnu.org; Tue, 09 May 2006 10:58:41 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1FdTfc-0001aF-CY for emacs-orgmode@gnu.org; Tue, 09 May 2006 10:58:40 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1FdTfc-0001aC-9C for emacs-orgmode@gnu.org; Tue, 09 May 2006 10:58:40 -0400 Received: from [146.50.4.51] (helo=imap.science.uva.nl) by monty-python.gnu.org with esmtp (Exim 4.52) id 1FdTgg-0005jz-SJ for emacs-orgmode@gnu.org; Tue, 09 May 2006 10:59:47 -0400 In-Reply-To: <7uejz3tgzd.fsf@horizonsemi.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: chgreg692000@yahoo.com Cc: emacs-orgmode@gnu.org Hi Greg, thank you very much, I will take a look at your patch. Can you give us a few examples on how you use the lisp expression in actual tables? What kind of applications do you have in mind? - Carsten On May 9, 2006, at 16:23, chgreg692000@yahoo.com wrote: > > Hi all, > > I've started to use wonderful org-mode in xemacs and found couple of > minor bugs: > > 1. Cycling headline on first line of the buffer gives "Before first > heading" error. > 2. org-insert-todo-heading uses outline-previous-heading that is not > defined in xemacs outline mode. > 3. Popup menu still shows outline menu and not org-mode menu. > > Attached patch (against org-mode 4.27) fixes these bugs and (hopefully) > don't break anything in emacs version. > > Patch also contains addon/enhancement to table editor. Only thing i > missed for org-mode tables is to use plain elisp for formulas. I added > ugly hack to achieve this. Now i can use '(elisp expression) as > formula. > > Regards, > > Greg Chernov > > --- org-orig.el 2006-05-09 10:51:58.000000000 +0300 > +++ org.el 2006-05-09 10:48:33.000000000 +0300 > @@ -2394,11 +2394,32 @@ > The following commands are available: > > \\{org-mode-map}" > + > + ;; Get rid of Outline menus, they are not needed > + ;; Need to do this here because define-derived-mode sets up > + ;; the keymap so late. > + (if (featurep 'xemacs) > + (progn > + (if org-noutline-p > + (progn > + (easy-menu-remove outline-mode-menu-heading) > + (easy-menu-remove outline-mode-menu-show) > + (easy-menu-remove outline-mode-menu-hide)) > + (delete-menu-item '("Headings")) > + (delete-menu-item '("Show")) > + (delete-menu-item '("Hide")) > + (set-menubar-dirty-flag))) > + (define-key org-mode-map [menu-bar headings] 'undefined) > + (define-key org-mode-map [menu-bar hide] 'undefined) > + (define-key org-mode-map [menu-bar show] 'undefined)) > + > (easy-menu-add org-org-menu) > (easy-menu-add org-tbl-menu) > (org-install-agenda-files-menu) > (if org-descriptive-links (org-add-to-invisibility-spec > '(org-link))) > (org-add-to-invisibility-spec '(org-cwidth)) > + (when (featurep 'xemacs) > + (set (make-local-variable 'line-move-ignore-invisible) t)) > (setq outline-regexp "\\*+") > ;;(setq outline-regexp "\\(?:\\*+\\|[ > \t]*\\(?:[-+*]\\|[0-9]+[.)]\\) \\)") > (setq outline-level 'org-outline-level) > @@ -2427,19 +2448,7 @@ > (= (point-min) (point-max))) > (insert " -*- mode: org -*-\n\n")) > > - ;; Get rid of Outline menus, they are not needed > - ;; Need to do this here because define-derived-mode sets up > - ;; the keymap so late. > - (if (featurep 'xemacs) > - (progn > - (delete-menu-item '("Headings")) > - (delete-menu-item '("Show")) > - (delete-menu-item '("Hide")) > - (set-menubar-dirty-flag)) > - (define-key org-mode-map [menu-bar headings] 'undefined) > - (define-key org-mode-map [menu-bar hide] 'undefined) > - (define-key org-mode-map [menu-bar show] 'undefined)) > - > + > (unless org-inhibit-startup > (if org-startup-align-all-tables > (org-table-map-tables 'org-table-align)) > @@ -2926,7 +2935,8 @@ > (get-char-property (1- (point)) 'invisible)) > (beginning-of-line 2)) (setq eol (point))) > (outline-end-of-heading) (setq eoh (point)) > - (org-end-of-subtree t) (setq eos (point)) > + ;;(org-end-of-subtree t) (setq eos (point)) > + (outline-end-of-subtree) (setq eos (point)) > (outline-next-heading)) > ;; Find out what to do next and set `this-command' > (cond > @@ -3190,7 +3200,9 @@ > (org-insert-heading) > (save-excursion > (org-back-to-heading) > - (outline-previous-heading) > + (if org-noutline-p > + (outline-previous-heading) > + (outline-previous-visible-heading 1)) > (looking-at org-todo-line-regexp)) > (if (or arg > (not (match-beginning 2)) > @@ -7917,9 +7929,9 @@ > (set-window-configuration org-window-config-before-follow-link) > (save-excursion (set-buffer b) (goto-char p) > (bibtex-url))) > - (recenter 0))) ; Move entry start to beginning of window > + (recenter 0)) ; Move entry start to beginning of window > ;; return t to indicate that the search is done. > - t) > + t)) > > ;; Finally add the functions to the right hooks. > (add-hook 'org-create-file-search-functions > 'org-create-file-search-in-bibtex) > @@ -10403,7 +10415,8 @@ > (unless x (error "Invalid field specifier \"%s\"" > (match-string 0 form))) > (if (equal x "") (setq x "0")) > - (setq form (replace-match (concat "(" x ")") t t form))) > + ;;(setq form (replace-match (concat "(" x ")") t t form))) > + (setq form (replace-match x t t form))) > ;; Insert ranges in current column > (while (string-match "\\&[-I0-9]+" form) > (setq form (replace-match > @@ -10411,8 +10424,10 @@ > (org-table-get-vertical-vector (match-string 0 form) > nil n0)) > t t form))) > - (setq ev (calc-eval (cons form modes) > - (if org-table-formula-numbers-only 'num))) > + (if (string-match "^'(.*)$" form) > + (setq ev (eval (eval (read form)))) > + (setq ev (calc-eval (cons form modes) > + (if org-table-formula-numbers-only 'num)))) > > (when org-table-formula-debug > (with-output-to-temp-buffer "*Help*" > @@ -12999,6 +13014,9 @@ > (define-key org-mode-map "\C-c\C-x\M-w" 'org-copy-special) > (define-key org-mode-map "\C-c\C-x\C-y" 'org-paste-special) > > +(when (featurep 'xemacs) > + (define-key org-mode-map 'button3 'popup-mode-menu)) > + > (defsubst org-table-p () (org-at-table-p)) > > (defun org-self-insert-command (N) > @@ -13772,7 +13790,8 @@ > Only visible heading lines are considered, unless INVISIBLE-OK is > non-nil." > (if org-noutline-p > (outline-back-to-heading invisible-ok) > - (if (and (memq (char-before) '(?\n ?\r)) > + (if (and (or (memq (char-before) '(?\n ?\r)) > + (point-min)) > (looking-at outline-regexp)) > t > (if (re-search-backward (concat (if invisible-ok > "\\([\r\n]\\|^\\)" "^") > @@ -13899,7 +13918,7 @@ > (save-excursion > (org-back-to-heading t) > (outline-flag-region > - (1- (point)) > + (max 1 (1- (point))) > (save-excursion > (re-search-forward (concat "[\r\n]\\(" outline-regexp "\\)") > nil 'move) > (or (match-beginning 1) (point-max))) > _______________________________________________ > Emacs-orgmode mailing list > Emacs-orgmode@gnu.org > http://lists.gnu.org/mailman/listinfo/emacs-orgmode > -- Carsten Dominik Sterrenkundig Instituut "Anton Pannekoek" Universiteit van Amsterdam Kruislaan 403 NL-1098SJ Amsterdam phone: +31 20 525 7477