Subject: bug#58772: closed (Re: bug#58772: CC Mode 5.35.1 (C/*l); CC Mode fails to fontify source_y in Fx_translate_coordinates)

From: [email-masked] (GNU bug Tracking System)
Date: Sat, 29 Oct 2022 10:19:01 +0000

Your bug report

#58772: CC Mode 5.35.1 (C/*l); CC Mode fails to fontify source_y in Fx_translate_coordinates

which was filed against the cc-mode package, has been closed.

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

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

Subject: Re: bug#58772: CC Mode 5.35.1 (C/*l); CC Mode fails to fontify source_y in Fx_translate_coordinates
From: Alan Mackenzie <[email-masked]>
To: Po Lu <[email-masked]>
Cc: [email-masked]
Date: Sat, 29 Oct 2022 10:18:17 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello, Po.

On Sat, Oct 29, 2022 at 08:36:18 +0800, Po Lu wrote:
> Alan Mackenzie <[email-masked]> writes:

> > This was an unintended consequence of some recent changes.  Sorry.

> > I can't explain in any reasonable way what was wrong, but I think the
> > attached patch should fix it.  Would you please do the usual with the
> > patch, and let me know whether or not the bug really is fixed, and
> > whether anything else untoward is caused by it.  Thanks!

> Should be fixed, but I haven't used it enough to say whether or not it
> causes any regressions elsewhere.

Thanks for trying it out!  Despite the uncertainty, I'm closing this bug
with this post anyway.  If there are any regressions, we can always open
it again, or open a new bug.

> Thanks.

-- 
Alan Mackenzie (Nuremberg, Germany).

Subject: CC Mode 5.35.1 (C/*l); CC Mode fails to fontify source_y in Fx_translate_coordinates
From: Po Lu <[email-masked]>
To: [email-masked]
Date: Tue, 25 Oct 2022 18:37:10 +0800
List-Id: <debbugs-submit.debbugs.gnu.org>

Package: cc-mode

Go to src/xfns.c in the Emacs 29 source code.  Somewhere around line
7935, there will be the following function definition:

DEFUN ("x-translate-coordinates", Fx_translate_coordinates,
       Sx_translate_coordinates,
       1, 5, 0, doc: /* Translate coordinates from FRAME.
Translate the given coordinates SOURCE-X and SOURCE-Y from
SOURCE-WINDOW's coordinate space to that of DEST-WINDOW, on FRAME.

If SOURCE-X and SOURCE-Y are nil, use 0 instead.

FRAME can either be a terminal or a frame.  If nil, it defaults to the
selected frame.  SOURCE-WINDOW must be an X window ID, 0 (which means
to use the root window), or nil, which means to use FRAME's inner
window.  DEST-WINDOW must be another X window ID, or nil (which means
to use the root window).

Return a list of (X Y CHILD) if the given coordinates are on the same
screen, or nil otherwise, where X and Y are the coordinates in
DEST-WINDOW's coordinate space, and CHILD is the window ID of any
mapped child in DEST-WINDOW at those coordinates, or nil if there is
no such window.  */)
  (Lisp_Object frame, Lisp_Object source_window,
   Lisp_Object dest_window, Lisp_Object source_x,
   Lisp_Object source_y)
{

In that function definition, "Lisp_Object source_y" is not fontified.
This did not happen in Emacs 28.

Emacs  : GNU Emacs 29.0.50 (build 1, x86_64-pc-linux-gnu)
 of 2022-10-17
Package: CC Mode 5.35.1 (C/*l)
Buffer Style: GNU
c-emacs-features: (pps-extended-state col-0-paren posix-char-classes gen-string-delim gen-comment-delim syntax-properties category-properties 1-bit)

current state:
==============
(setq
 c-basic-offset 2
 c-comment-only-line-offset '(0 . 0)
 c-indent-comment-alist '((anchored-comment column . 0) (end-block space . 1) (cpp-end-block space . 2))
 c-indent-comments-syntactically-p nil
 c-block-comment-prefix ""
 c-comment-prefix-regexp '((pike-mode . "//+!?\\|\\**") (awk-mode . "#+") (other . "//+\\|\\**"))
 c-doc-comment-style '((java-mode . javadoc) (pike-mode . autodoc) (c-mode . gtkdoc) (c++-mode . gtkdoc))
 c-cleanup-list '(scope-operator)
 c-hanging-braces-alist '((substatement-open before after) (arglist-cont-nonempty))
 c-hanging-colons-alist nil
 c-hanging-semi&comma-criteria '(c-semi&comma-inside-parenlist)
 c-backslash-column 48
 c-backslash-max-column 72
 c-special-indent-hook '(t c-gnu-impose-minimum)
 c-label-minimum-indentation 1
 c-offsets-alist '((inexpr-class . +)
		   (inexpr-statement . +)
		   (lambda-intro-cont . +)
		   (inlambda . 0)
		   (template-args-cont c-lineup-template-args +)
		   (incomposition . +)
		   (inmodule . +)
		   (innamespace . +)
		   (inextern-lang . +)
		   (composition-close . 0)
		   (module-close . 0)
		   (namespace-close . 0)
		   (extern-lang-close . 0)
		   (composition-open . 0)
		   (module-open . 0)
		   (namespace-open . 0)
		   (extern-lang-open . 0)
		   (objc-method-call-cont c-lineup-ObjC-method-call-colons c-lineup-ObjC-method-call +)
		   (objc-method-args-cont . c-lineup-ObjC-method-args)
		   (objc-method-intro . [0])
		   (friend . 0)
		   (cpp-define-intro c-lineup-cpp-define +)
		   (cpp-macro-cont . +)
		   (cpp-macro . [0])
		   (inclass . +)
		   (stream-op . c-lineup-streamop)
		   (arglist-cont-nonempty c-lineup-gcc-asm-reg c-lineup-arglist)
		   (arglist-cont c-lineup-gcc-asm-reg 0)
		   (comment-intro c-lineup-knr-region-comment c-lineup-comment)
		   (catch-clause . 0)
		   (else-clause . 0)
		   (do-while-closure . 0)
		   (access-label . -)
		   (case-label . 0)
		   (substatement . +)
		   (statement-case-intro . +)
		   (statement . 0)
		   (brace-entry-open . 0)
		   (brace-list-entry . 0)
		   (brace-list-close . 0)
		   (block-close . 0)
		   (block-open . 0)
		   (inher-cont . c-lineup-multi-inher)
		   (inher-intro . +)
		   (member-init-cont . c-lineup-multi-inher)
		   (member-init-intro . +)
		   (annotation-var-cont . +)
		   (annotation-top-cont . 0)
		   (topmost-intro . 0)
		   (knr-argdecl . 0)
		   (func-decl-cont . +)
		   (inline-close . 0)
		   (class-close . 0)
		   (class-open . 0)
		   (defun-block-intro . +)
		   (defun-close . 0)
		   (defun-open . 0)
		   (c . c-lineup-C-comments)
		   (string . c-lineup-dont-change)
		   (topmost-intro-cont first c-lineup-topmost-intro-cont c-lineup-gnu-DEFUN-intro-cont)
		   (brace-list-intro first c-lineup-2nd-brace-entry-in-arglist c-lineup-class-decl-init-+ +)
		   (brace-list-open . +)
		   (inline-open . 0)
		   (arglist-close . c-lineup-arglist)
		   (arglist-intro . c-lineup-arglist-intro-after-paren)
		   (statement-cont . +)
		   (statement-case-open . +)
		   (label . 0)
		   (substatement-label . 0)
		   (substatement-open . +)
		   (knr-argdecl-intro . 5)
		   (statement-block-intro . +)
		   )
 c-buffer-is-cc-mode 'c-mode
 c-tab-always-indent t
 c-syntactic-indentation t
 c-syntactic-indentation-in-macros t
 c-ignore-auto-fill '(string cpp code)
 c-auto-align-backslashes t
 c-backspace-function 'backward-delete-char-untabify
 c-delete-function 'delete-char
 c-electric-pound-behavior nil
 c-default-style '((java-mode . "java") (awk-mode . "awk") (other . "gnu"))
 c-enable-xemacs-performance-kludge-p nil
 c-old-style-variable-behavior nil
 defun-prompt-regexp nil
 tab-width 8
 comment-column 32
 parse-sexp-ignore-comments t
 parse-sexp-lookup-properties t
 auto-fill-function nil
 comment-multi-line t
 comment-start-skip "\\(?://+\\|/\\*+\\)\\s *"
 fill-prefix nil
 fill-column 70
 paragraph-start "[ 	]*\\(//+\\|\\**\\)[ 	]*$\\|^\f"
 adaptive-fill-mode t
 adaptive-fill-regexp "[ 	]*\\(//+\\|\\**\\)[ 	]*\\([ 	]*\\([-–!|#%;>*·•‣⁃◦]+[ 	]*\\)*\\)"
 )