From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: "Drew Adams" Newsgroups: gmane.emacs.bugs Subject: bug#13755: 24.3.50; regression: incorrect font-lock highlighting Date: Sun, 10 Mar 2013 10:16:29 -0700 Message-ID: <6C56799F093249A69F5385DEB6E6FB5E@us.oracle.com> References: <37407E4E6385422185BDB9337946D9F4@us.oracle.com><3B433F0584F243B1B28BE401BBC91E41@us.oracle.com> NNTP-Posting-Host: plane.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit X-Trace: ger.gmane.org 1362935842 20400 80.91.229.3 (10 Mar 2013 17:17:22 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Sun, 10 Mar 2013 17:17:22 +0000 (UTC) Cc: 13755@debbugs.gnu.org To: "'Stefan Monnier'" Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Sun Mar 10 18:17:45 2013 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by plane.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1UEjsT-0002zN-S4 for geb-bug-gnu-emacs@m.gmane.org; Sun, 10 Mar 2013 18:17:42 +0100 Original-Received: from localhost ([::1]:39153 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UEjs7-0005Xj-Ew for geb-bug-gnu-emacs@m.gmane.org; Sun, 10 Mar 2013 13:17:19 -0400 Original-Received: from eggs.gnu.org ([208.118.235.92]:47695) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UEjs3-0005XY-7I for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2013 13:17:17 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UEjs0-0000et-Ve for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2013 13:17:15 -0400 Original-Received: from debbugs.gnu.org ([140.186.70.43]:40118) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UEjs0-0000ej-S0 for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2013 13:17:12 -0400 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.72) (envelope-from ) id 1UEjso-00018N-4J for bug-gnu-emacs@gnu.org; Sun, 10 Mar 2013 13:18:02 -0400 X-Loop: help-debbugs@gnu.org Resent-From: "Drew Adams" Original-Sender: debbugs-submit-bounces@debbugs.gnu.org Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Sun, 10 Mar 2013 17:18:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 13755 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 13755-submit@debbugs.gnu.org id=B13755.13629358664334 (code B ref 13755); Sun, 10 Mar 2013 17:18:02 +0000 Original-Received: (at 13755) by debbugs.gnu.org; 10 Mar 2013 17:17:46 +0000 Original-Received: from localhost ([127.0.0.1]:44225 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UEjsW-00017q-SX for submit@debbugs.gnu.org; Sun, 10 Mar 2013 13:17:45 -0400 Original-Received: from userp1040.oracle.com ([156.151.31.81]:50246) by debbugs.gnu.org with esmtp (Exim 4.72) (envelope-from ) id 1UEjsT-00017b-3C for 13755@debbugs.gnu.org; Sun, 10 Mar 2013 13:17:42 -0400 Original-Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.1/Sentrion-MTA-4.3.1) with ESMTP id r2AHGibp020651 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Sun, 10 Mar 2013 17:16:45 GMT Original-Received: from acsmt358.oracle.com (acsmt358.oracle.com [141.146.40.158]) by ucsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id r2AHGiIw017791 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Sun, 10 Mar 2013 17:16:44 GMT Original-Received: from abhmt107.oracle.com (abhmt107.oracle.com [141.146.116.59]) by acsmt358.oracle.com (8.12.11.20060308/8.12.11) with ESMTP id r2AHGhEE018112; Sun, 10 Mar 2013 12:16:43 -0500 Original-Received: from dradamslap1 (/71.202.147.44) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Sun, 10 Mar 2013 10:16:43 -0700 X-Mailer: Microsoft Office Outlook 11 In-Reply-To: X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157 Thread-Index: Ac4dUbjIGiavq4ZFREqopARN3jE6jAAUySqA X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.13 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-Received-From: 140.186.70.43 X-BeenThere: bug-gnu-emacs@gnu.org List-Id: "Bug reports for GNU Emacs, the Swiss army knife of text editors" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Original-Sender: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Xref: news.gmane.org gmane.emacs.bugs:72296 Archived-At: > > "\\>[ \t'\(]*\\(\\sw+\\)?") > ^^^ > There's your bug: you should use \\_>. > > > ("(\\(icicle-condition-case-no-debug\\)\\>" > ^^^ > Same here. Actually, \\_> does NOT work for older Emacs versions (e.g. 20). And \\>, instead of \\_>, DOES work - for all versions, even for the latest build. It's not clear to me why that is so, given that you suggested changing it, and given that hyphen has `symbol', not `word' syntax in Emacs-Lisp mode. Can you explain this? > > "\\_>[ \t'\(]*\\(\\sw+\\)?") > ^^^^ > and this needs to be \\(?:\\sw\\|\\s_\\). I now have the following, which seems to work for all Emacs versions (20 through latest 24 trunk build): (font-lock-add-keywords 'emacs-lisp-mode `((,(concat "(" (regexp-opt '("icicle-define-add-to-alist-command" "icicle-define-bookmark-command" "icicle-define-bookmark-other-window-command" "icicle-define-command" "icicle-define-file-command" "icicle-define-search-bookmark-command" "icicle-define-sort-command") t) "\\>[ \t'\(]*\\(\\(\\sw\\|\\s_\\)+\\)?") (1 font-lock-keyword-face) ,(list (if (string-match "\\(?:\\)" "") 2 3) 'font-lock-function-name-face nil t)) ("(\\(icicle-condition-case-no-debug\\)\\>" 1 font-lock-keyword-face) ("(\\(icicle-user-error\\)\\>" 1 font-lock-warning-face))) (FWIW, back in 2006 I used "\\s-+\\(\\sw\\(\\sw\\|\\s_\\)+\\)", but I changed that to "\\>[ \t'\(]*\\(\\sw+\\)?" - I do not recall just why, wrt the last part. IOW, I purposely changed to use just \\sw.) Please help me understand more. Just what changed wrt font-locking of Lisp code between the Emacs builds of Feb 15 and Feb 17? What is the change that makes such code changes necessary? I've searched NEWS and looked at font-lock.el, but so far I do not understand what you have changed in Emacs that broke the regexp that worked previously (across all Emacs versions): "\\>[ \t'\(]*\\(\\sw+\\)?". I would like to understand why `word' syntax worked here before, even though hyphen has and had then `symbol', not `word' syntax. I would like to understand just what has changed in Emacs. Was there, e.g., a bug before, which made `-' sometimes be treated as a word constituent? What is behind this change? Thx.