From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!.POSTED!not-for-mail From: npostavs@users.sourceforge.net Newsgroups: gmane.emacs.bugs Subject: bug#24542: 25.1.50; The symbol `@' and sexp scanning Date: Mon, 02 Jan 2017 15:37:28 -0500 Message-ID: <87zij95hbr.fsf@users.sourceforge.net> References: <8760pj27wm.fsf@web.de> <87o9zptn3r.fsf@web.de> NNTP-Posting-Host: blaine.gmane.org Mime-Version: 1.0 Content-Type: text/plain X-Trace: blaine.gmane.org 1483389442 6799 195.159.176.226 (2 Jan 2017 20:37:22 GMT) X-Complaints-To: usenet@blaine.gmane.org NNTP-Posting-Date: Mon, 2 Jan 2017 20:37:22 +0000 (UTC) User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/25.1 (gnu/linux) Cc: 24542@debbugs.gnu.org To: Michael Heerdegen Original-X-From: bug-gnu-emacs-bounces+geb-bug-gnu-emacs=m.gmane.org@gnu.org Mon Jan 02 21:37:18 2017 Return-path: Envelope-to: geb-bug-gnu-emacs@m.gmane.org Original-Received: from lists.gnu.org ([208.118.235.17]) by blaine.gmane.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cO9Lw-0000I3-Ly for geb-bug-gnu-emacs@m.gmane.org; Mon, 02 Jan 2017 21:37:08 +0100 Original-Received: from localhost ([::1]:58932 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cO9M0-00076G-KB for geb-bug-gnu-emacs@m.gmane.org; Mon, 02 Jan 2017 15:37:12 -0500 Original-Received: from eggs.gnu.org ([2001:4830:134:3::10]:38104) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1cO9Lv-00075R-3d for bug-gnu-emacs@gnu.org; Mon, 02 Jan 2017 15:37:08 -0500 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1cO9Lq-0008N0-0j for bug-gnu-emacs@gnu.org; Mon, 02 Jan 2017 15:37:06 -0500 Original-Received: from debbugs.gnu.org ([208.118.235.43]:52532) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1cO9Lp-0008Mw-TL for bug-gnu-emacs@gnu.org; Mon, 02 Jan 2017 15:37:01 -0500 Original-Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1cO9Lp-00005O-Kf for bug-gnu-emacs@gnu.org; Mon, 02 Jan 2017 15:37:01 -0500 X-Loop: help-debbugs@gnu.org Resent-From: npostavs@users.sourceforge.net Original-Sender: "Debbugs-submit" Resent-CC: bug-gnu-emacs@gnu.org Resent-Date: Mon, 02 Jan 2017 20:37:01 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 24542 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: Original-Received: via spool by 24542-submit@debbugs.gnu.org id=B24542.148338939232755 (code B ref 24542); Mon, 02 Jan 2017 20:37:01 +0000 Original-Received: (at 24542) by debbugs.gnu.org; 2 Jan 2017 20:36:32 +0000 Original-Received: from localhost ([127.0.0.1]:39698 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cO9LM-0008WF-AT for submit@debbugs.gnu.org; Mon, 02 Jan 2017 15:36:32 -0500 Original-Received: from mail-io0-f177.google.com ([209.85.223.177]:33560) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1cO9LK-0008W1-Sx for 24542@debbugs.gnu.org; Mon, 02 Jan 2017 15:36:31 -0500 Original-Received: by mail-io0-f177.google.com with SMTP id d9so418032332ioe.0 for <24542@debbugs.gnu.org>; Mon, 02 Jan 2017 12:36:30 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=sender:from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version; bh=nQakAXh7HTG64AtVGrQ1M7wh/Z4yQov/PYSOckoMhrc=; b=YbaFkn++G1MclUkIs3gvcSvi3sNYJMbM8G8B0Pg9hJe/7HARbn3j9JYVvA1wRYl3bX HmFjBXgo3bNCU0sTdbPdGGjWyC41CQMrVzJAKilYiDnZI8X6UtR1Os4f9nwlyQKRwWhA Vit3io/D+HrZ7WpJ5HYt8eCxVGQptI666KPXRA7R/WxXnGb+KAkg5Rdn0/chQv94ah7w jJKaVR02sksoz6uCPgKTdwhsB3qPlhFDNbiG8JJPTcQK5Iain4keBVxmB3xXDP5bYnL6 PTbOlqGcN40EfCiQUa+Q3GnV5kn1rKd+97s+ky+JFms+czJlQ6HYokKHpDHvmcqJ0Uyv H6Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:sender:from:to:cc:subject:references:date :in-reply-to:message-id:user-agent:mime-version; bh=nQakAXh7HTG64AtVGrQ1M7wh/Z4yQov/PYSOckoMhrc=; b=MHM7LiMuA/8/GyaZZNRB7vmk6I5gTwaODoLP27aTNm83BhBaBJetHyv3lTNhfNXFKq UtiULVaJYPodU7uo6T4eFfvrcgIyp9h/4pW75jQgedq/D8NHvY4zYYw8MXhGqyKJ9Khy p2nItSA9DMuzcgAuQJz9zLhkhgwzkgTBdpuVChvTGRj8RvJ5Zo6a9VmAvP2sMoFqPZ3+ WqImRY+kHlcaZqaOR124n6/ysecpvaBTKDwPVsAl4vhUyRZiVv15kgDWTRCJKzKBf0mw D27Fi4DwxHm0aSA6Ie3OEBjtdCGv//fepwmksdDCgPasnxf+gsN5wSuuGrigm2053En7 t/vQ== X-Gm-Message-State: AIkVDXKs0ZP/nm6pLLTALSp/7fmBrdX0FQNuc+EfA+CBUExyysshKNPpy1gm/DwezqKekQ== X-Received: by 10.107.154.14 with SMTP id c14mr44154554ioe.0.1483389385274; Mon, 02 Jan 2017 12:36:25 -0800 (PST) Original-Received: from zony ([45.2.7.65]) by smtp.googlemail.com with ESMTPSA id 96sm18751892ioh.27.2017.01.02.12.36.24 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Mon, 02 Jan 2017 12:36:24 -0800 (PST) In-Reply-To: <87o9zptn3r.fsf@web.de> (Michael Heerdegen's message of "Mon, 02 Jan 2017 17:58:48 +0100") X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 208.118.235.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" Xref: news.gmane.org gmane.emacs.bugs:127682 Archived-At: Michael Heerdegen writes: > Michael Heerdegen writes: > >> insert >> >> (eq element '@) >> >> in an elisp mode buffer (e.g. scratch). Put point at the quote or the >> "@". Eval >> >> (goto-char (scan-sexps (point) 1)) >> >> and you get an error like: >> >> >> Debugger entered--Lisp error: (scan-error "Containing expression ends >> prematurely" 15 16) > > It seems that you can replace the symbol `@' in this recipe with any > symbol whose name has the form "@+", i.e. `@@' or `@@@' or... When the > symbol contains only one character different from "@", it doesn't seem > to happen. `@' has the prefix syntax flag, the elisp manual says `(elisp) Syntax Flags': * `p' identifies an additional prefix character for Lisp syntax. These characters are treated as whitespace when they appear between ^^^^^^^^^^^^^^^^^^^^^ expressions. When they appear within an expression, they are handled according to their usual syntax classes. So (eq element '@) acts the same as (eq element ' ). This could be changed with something the following patch, but I'm not sure if it's the right thing for non-Lisp languages... diff --git i/src/syntax.c w/src/syntax.c index 0ee1c74..253d3fb 100644 --- i/src/syntax.c +++ w/src/syntax.c @@ -2681,7 +2681,16 @@ scan_lists (EMACS_INT from, EMACS_INT count, EMACS_INT depth, bool sexpflag) } if (prefix) - continue; + { + int next_c = FETCH_CHAR_AS_MULTIBYTE (from_byte); + int next_syntax = SYNTAX_WITH_FLAGS (next_c); + bool next_prefix = SYNTAX_FLAGS_PREFIX (next_syntax); + enum syntaxcode next_code = syntax_multibyte (next_c, multibyte_symbol_p); + if (next_prefix + || next_code == Ssymbol + || next_code == Sword) + continue; + } switch (code) {