From: Carsten Dominik <dominik@science.uva.nl>
To: chgreg692000@yahoo.com
Cc: emacs-orgmode@gnu.org
Subject: Re: org-mode + xemacs + patch
Date: Tue, 9 May 2006 16:58:30 +0200 [thread overview]
Message-ID: <30cf789d7cbc5c3caf7b6eea1a1e08f8@science.uva.nl> (raw)
In-Reply-To: <7uejz3tgzd.fsf@horizonsemi.com>
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
next prev parent reply other threads:[~2006-05-09 14:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2006-05-09 14:23 org-mode + xemacs + patch chgreg692000
2006-05-09 14:58 ` Carsten Dominik [this message]
2006-05-10 7:40 ` chgreg692000
2006-05-11 9:44 ` Carsten Dominik
2006-05-10 10:49 ` Carsten Dominik
[not found] ` <7u3bfit8ov.fsf@horizonsemi.com>
2006-05-10 11:50 ` Carsten Dominik
2006-05-11 3:58 ` Carsten Dominik
2006-05-11 8:18 ` chgreg692000
2006-05-11 9:01 ` Carsten Dominik
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.orgmode.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=30cf789d7cbc5c3caf7b6eea1a1e08f8@science.uva.nl \
--to=dominik@science.uva.nl \
--cc=chgreg692000@yahoo.com \
--cc=emacs-orgmode@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).