Subject: bug#24542: closed (Re: bug#24542: 25.1.50; The symbol `@' and sexp scanning)

From: [email-masked] (GNU bug Tracking System)
Date: Fri, 12 Apr 2024 17:30:04 +0000

Your bug report

#24542: 25.1.50; The symbol `@' and sexp scanning

which was filed against the emacs package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
24542: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24542
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#24542: 25.1.50; The symbol `@' and sexp scanning
From: Stefan Monnier <[email-masked]>
To: Michael Heerdegen <[email-masked]>
Cc: [email-masked]
Date: Fri, 12 Apr 2024 13:29:16 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

>>  (defvar emacs-lisp-mode-syntax-table
>>    (let ((table (make-syntax-table lisp-data-mode-syntax-table)))
>> -    ;; These are redundant, now.
>> -    ;;(modify-syntax-entry ?\[ "(]  " table)
>> -    ;;(modify-syntax-entry ?\] ")[  " table)
>> +    ;; `syntax-propertize'. takes care of `,@'.
>> +    (modify-syntax-entry ?@ "_" table)
>>      table)
>>    "Syntax table used in `emacs-lisp-mode'.")
>
> This seems to give good results for me - so far at least.

Thanks, pushed to `master`, closing.

        Stefan

Subject: 25.1.50; The symbol `@' and sexp scanning
From: Michael Heerdegen <[email-masked]>
To: [email-masked]
Date: Sun, 25 Sep 2016 19:42:17 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Hi,

the following breaks my "el-search" package when searching in
"skeleton.el".  It assumes that calling `scan-sexps' works at the start
of any sexp.

Recipe: in emacs -Q,

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)
  scan-sexps(13 1)
  (goto-char (scan-sexps (point) 1))
  eval((goto-char (scan-sexps (point) 1)) nil)
  eval-expression((goto-char (scan-sexps (point) 1)) nil)
  funcall-interactively(eval-expression (goto-char (scan-sexps (point) 1)) nil)
  call-interactively(eval-expression nil nil)
  command-execute(eval-expression)

I think `scan-sexps' should not error.  FWIW, if I add one more sexp to
the list after "'@" (different from "'@"), there is no error.

TIA,

Michael.

In GNU Emacs 25.1.50.2 (x86_64-pc-linux-gnu, GTK+ Version 3.21.5)
 of 2016-09-23 built on drachen
Repository revision: 14c36d76df035faa127580d706a0564f4e496991
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:	Debian GNU/Linux testing (stretch)

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GSETTINGS NOTIFY
LIBXML2 FREETYPE XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_ALL: de_DE.utf8
  value of $LC_COLLATE: C
  value of $LC_TIME: C
  value of $LANG: de_DE.utf8
  locale-coding-system: utf-8-unix

Major mode: Emacs-Lisp