Subject: bug#22983: closed (Re: bug#22983: syntax-ppss returns wrong result.)

From: [email-masked] (GNU bug Tracking System)
Date: Sun, 01 Oct 2017 16:32:02 +0000

Your bug report

#22983: syntax-ppss returns wrong result.

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].

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

Subject: Re: bug#22983: syntax-ppss returns wrong result.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: 1 Oct 2017 16:31:03 -0000
List-Id: <debbugs-submit.debbugs.gnu.org>

The bug has been fixed by patches to the emacs-26 branch.

-- 
Alan Mackenzie (Nuremberg, Germany).

Subject: syntax-ppss returns wrong result.
From: Alan Mackenzie <[email-masked]>
To: [email-masked]
Date: Fri, 11 Mar 2016 15:15:12 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Emacs.

The fundamental contract in syntax-ppss is that (syntax-ppss POS)
returns the same value as (parse-partial-sexp (point-min) POS) (with the
exception of elements 2 and 6).  This is currently not always the case.

In the master branch, emacs -Q and visit xdisp.c with C-x C-f.  Follow
this recipe:

    M-: (syntax-ppss-flush-cache 1)
    M-: (setq ppss-0 (syntax-ppss 40000))
    M-<
    C-s #include " <CR>
    M->
    C-x n n
    M-: (setq ppss-1 (syntax-ppss 40000))
    M-: (setq parse (parse-partial-sexp (point-min) 40000))

At this point, `ppss-1' and `parse' should match (apart from elements 2
and 6).  What we actually have is:

    ppss-1: (2 39992 nil nil nil nil 2 nil nil (39975 39992))
    parse:  (0 nil 15674 34 nil nil 0 nil 15675 nil)

.

-- 
Alan Mackenzie (Nuremberg, Germany).