From mboxrd@z Thu Jan 1 00:00:00 1970 From: Nicolas Goaziou Subject: Re: [PATCH] Fix verbatim block fontification to end blocks on headlines Date: Thu, 12 Dec 2019 09:40:43 +0100 Message-ID: <87y2viq6lw.fsf@nicolasgoaziou.fr> References: Mime-Version: 1.0 Content-Type: text/plain Return-path: Received: from eggs.gnu.org ([2001:470:142:3::10]:54146) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ifK1s-0004WS-S0 for emacs-orgmode@gnu.org; Thu, 12 Dec 2019 03:41:02 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ifK1q-0003lx-Ii for emacs-orgmode@gnu.org; Thu, 12 Dec 2019 03:41:00 -0500 Received: from relay10.mail.gandi.net ([217.70.178.230]:52619) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1ifK1n-0003dG-QU for emacs-orgmode@gnu.org; Thu, 12 Dec 2019 03:40:56 -0500 In-Reply-To: (Tom Gillespie's message of "Wed, 11 Dec 2019 19:35:50 -0800") 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" To: Tom Gillespie Cc: emacs-orgmode@gnu.org Hello, Tom Gillespie writes: > This patch is a change to how org fontifies verbatim source blocks re: [1]. > Hopefully it answers Nicolas's question from that thread. Best! OK. Now I see what you meant. Thank you. > (when (re-search-forward > - (concat "^[ \t]*#\\+end" (match-string 4) "\\>.*") > + (concat "\\(^\\*\\|^[ \t]*#\\+end" (match-string 4) "\\>.*\\)") I haven't tested it, but I think this will not produce the expected result: #+begin_example *bold* #+end_example I.e., headlines are asterisks at column 0 /followed by a space/. > nil t) ;; on purpose, we look further than LIMIT > ;; We do have a matching #+end line > (setq beg-of-endline (match-beginning 0) > @@ -5326,10 +5326,11 @@ by a #." > (add-text-properties > beg (if whole-blockline bol-after-beginline end-of-beginline) > '(face org-block-begin-line)) > - (add-text-properties > - beg-of-endline > - (min (point-max) (if whole-blockline (min (point-max) (1+ end-of-endline)) end-of-endline)) > - '(face org-block-end-line)) > + (when (not (string= (match-string 1) "*")) `when' + `not' -> `unless' > + (add-text-properties > + beg-of-endline > + (min (point-max) (if whole-blockline (min (point-max) (1+ end-of-endline)) end-of-endline)) > + '(face org-block-end-line))) Arguably, I think (min (point-max) (1+ end-of-endline)) could be replaced, for clarity, by (let (... (beg-of-next-line (line-beginning-position 2)) ...) ... (add-text-properties beg-of-endline (min (point-max) (if whole-blockline beg-of-next-line end-of-endline)))) I'm also not convinced that the (min (point-max) ...) left is necessary. Could you send an updated patch (on top of maint)? Regards, -- Nicolas Goaziou