emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
* Bug: Broken fontification of code blocks [7.5 (release_7.5.525.gd6fb5)]
@ 2011-07-01  0:22 Oleksandr Manzyuk
  2011-07-01 18:33 ` Eric Schulte
  0 siblings, 1 reply; 2+ messages in thread
From: Oleksandr Manzyuk @ 2011-07-01  0:22 UTC (permalink / raw)
  To: emacs-orgmode

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))
 )

^ permalink raw reply	[flat|nested] 2+ messages in thread

* Re: Bug: Broken fontification of code blocks [7.5 (release_7.5.525.gd6fb5)]
  2011-07-01  0:22 Bug: Broken fontification of code blocks [7.5 (release_7.5.525.gd6fb5)] Oleksandr Manzyuk
@ 2011-07-01 18:33 ` Eric Schulte
  0 siblings, 0 replies; 2+ messages in thread
From: Eric Schulte @ 2011-07-01 18:33 UTC (permalink / raw)
  To: Oleksandr Manzyuk; +Cc: emacs-orgmode

Hi Oleksandr,

[...]
>
> 2.  Edit the following minimal example:
>
> #+begin_src
> (defun id (x) x)
> #+end_src
>

The behavior you describe below is the desired behavior, not a bug.  A
language is a desired property of a code block, if you want a simple
example block please use the example syntax.

#+begin_example
#+end_example

Best -- Eric

-- 
Eric Schulte
http://cs.unm.edu/~eschulte/

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2011-07-01 18:33 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2011-07-01  0:22 Bug: Broken fontification of code blocks [7.5 (release_7.5.525.gd6fb5)] Oleksandr Manzyuk
2011-07-01 18:33 ` Eric Schulte

Code repositories for project(s) associated with this 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).