From mboxrd@z Thu Jan 1 00:00:00 1970 From: Oleksandr Manzyuk Subject: Bug: Broken fontification of code blocks [7.5 (release_7.5.525.gd6fb5)] Date: Fri, 1 Jul 2011 01:22:58 +0100 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Return-path: Received: from eggs.gnu.org ([140.186.70.92]:58371) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcRVe-00016h-5H for emacs-orgmode@gnu.org; Thu, 30 Jun 2011 20:23:04 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1QcRVc-0005tw-Ae for emacs-orgmode@gnu.org; Thu, 30 Jun 2011 20:23:01 -0400 Received: from mail-iy0-f169.google.com ([209.85.210.169]:60439) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1QcRVc-0005tm-2W for emacs-orgmode@gnu.org; Thu, 30 Jun 2011 20:23:00 -0400 Received: by iyl8 with SMTP id 8so3114129iyl.0 for ; Thu, 30 Jun 2011 17:22:58 -0700 (PDT) List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: emacs-orgmode@gnu.org Remember to cover the basics, that is, what you expected to happen and what in fact did happen. You don't know how to make a good report? See http://orgmode.org/manual/Feedback.html#Feedback Your bug report will be posted to the Org-mode mailing list. ------------------------------------------------------------------------ How to reproduce: 1. Launch Emacs with the following minimal =.emacs= (adjust the path to `org-mode' if necessary): (add-to-list 'load-path "~/.emacs.d/site-lisp/org-mode/lisp") (add-to-list 'load-path "~/.emacs.d/site-lisp/org-mode/contrib/lisp") (require 'org-install) (add-to-list 'auto-mode-alist '("\\.org$" . org-mode)) (setq org-src-fontify-natively t) 2. Edit the following minimal example: #+begin_src (defun id (x) x) #+end_src It is expected that the text between #+begin_src and #+end_src be fontified (in my case, using the reverse video mode of Emacs with the default color theme, it should be grey70). This doesn't happen, the text is white. If I change the first line to #+begin_src emacs-lisp the interior of the code block is properly fontified according to the mode. If I remove `emacs-lisp', the text becomes white again. I think I've nailed down the problem. The following patch works for me (although I didn't test it thoroughly): diff --git a/lisp/org.el b/lisp/org.el index 3162cc3..2f79298 100644 --- a/lisp/org.el +++ b/lisp/org.el @@ -5166,7 +5166,7 @@ will be prompted for." "Fontify #+ lines and blocks, in the correct ways." (let ((case-fold-search t)) (if (re-search-forward - "^\\([ \t]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ \t]*\\(\\([^ \t\n]*\\)[ \t]*\\(.*\\)\\)\\)" + "^\\([ \t]*#\\+\\(\\([a-zA-Z]+:?\\| \\|$\\)\\(_\\([a-zA-Z]+\\)\\)?\\)[ \t]*\\(\\([^ \t\n]+\\)?[ \t]*\\(.*\\)\\)\\)" limit t) (let ((beg (match-beginning 0)) (block-start (match-end 0)) The problem is that with the old regexp, if no language is specified, the 7th group still matches and becomes "", the empty string, not nil, and therefore the condition (and lang org-src-fontify-natively) always succeeds provided that `org-src-fontify-natively' is set to t. Emacs : GNU Emacs 23.2.1 (x86_64-pc-linux-gnu, GTK+ Version 2.20.1) of 2010-09-02 on pluot, modified by Debian Package: Org-mode version 7.5 (release_7.5.525.gd6fb5) current state: ============== (setq org-export-latex-after-initial-vars-hook '(org-beamer-after-initial-vars) org-speed-command-hook '(org-speed-command-default-hook org-babel-speed-command-hook) org-src-fontify-natively t org-metaup-hook '(org-babel-load-in-session-maybe) org-after-todo-state-change-hook '(org-clock-out-if-current) org-export-blocks-postblock-hook '(org-exp-res/src-name-cleanup) org-export-latex-format-toc-function 'org-export-latex-format-toc-default org-tab-first-hook '(org-hide-block-toggle-maybe org-src-native-tab-command-maybe org-babel-hide-result-toggle-maybe) org-src-mode-hook '(org-src-babel-configure-edit-buffer org-src-mode-configure-edit-buffer) org-confirm-shell-link-function 'yes-or-no-p org-export-first-hook '(org-beamer-initialize-open-trackers) org-agenda-before-write-hook '(org-agenda-add-entry-text) org-babel-pre-tangle-hook '(save-buffer) org-cycle-hook '(org-cycle-hide-archived-subtrees org-cycle-hide-drawers org-cycle-show-empty-lines org-optimize-window-after-visibility-change) org-export-preprocess-before-normalizing-links-hook '(org-remove-file-link-modifiers) org-mode-hook '((lambda nil (org-add-hook (quote change-major-mode-hook) (quote org-show-block-all) (quote append) (quote local)) ) (lambda nil (org-add-hook (quote change-major-mode-hook) (quote org-babel-show-result-all) (quote append) (quote local)) ) org-babel-result-hide-spec org-babel-hide-all-hashes) org-ctrl-c-ctrl-c-hook '(org-babel-hash-at-point org-babel-execute-safely-maybe) org-confirm-elisp-link-function 'yes-or-no-p org-export-interblocks '((lob org-babel-exp-lob-one-liners) (src org-babel-exp-inline-src-blocks)) org-occur-hook '(org-first-headline-recenter) org-export-preprocess-before-selecting-backend-code-hook '(org-beamer-select-beamer-code) org-export-latex-final-hook '(org-beamer-amend-header org-beamer-fix-toc org-beamer-auto-fragile-frames org-beamer-place-default-actions-for-lists) org-metadown-hook '(org-babel-pop-to-session-maybe) org-export-blocks '((src org-babel-exp-src-block nil) (comment org-export-blocks-format-comment t) (ditaa org-export-blocks-format-ditaa nil) (dot org-export-blocks-format-dot nil)) )