From 7e90ce557b73b0a0634aedcadd1234c9266e6574 Mon Sep 17 00:00:00 2001 From: Bruno Haible Date: Thu, 2 Oct 2025 22:50:11 +0200 Subject: [PATCH] Restore syntax highlighting in Emacs 30 or newer. Reported by Sab Pyrope in and by Julien Palard in . It's a regression in Emacs 30, in commit 17e26cf57e18c5df2172a7049591d89fc53b3fb6 . * gettext-tools/emacs/HACKING: Document how to bisect Emacs regressions. * gettext-tools/emacs/po-mode.el (po-mode-version-string): Bump to 2.31. (po-mode): Invoke run-mode-hooks instead of run-hooks. * NEWS: Mention the fix. --- NEWS | 5 ++++- gettext-tools/emacs/HACKING | 37 ++++++++++++++++++++++++++++++++++ gettext-tools/emacs/po-mode.el | 4 ++-- 3 files changed, 43 insertions(+), 3 deletions(-) diff --git a/NEWS b/NEWS index 235284577..518b2a957 100644 --- a/NEWS +++ b/NEWS @@ -1,4 +1,4 @@ -Version 0.27 - September 2025 +Version 0.27 - October 2025 # Programming languages support: * OCaml: @@ -21,6 +21,9 @@ Version 0.27 - September 2025 po_message_sticky_flags_iterator, po_flag_next, po_flag_iterator_free can be used to manipulate or inspect the sticky flags of a messsage. +# Emacs PO mode: + Restore syntax highlighting in Emacs version 30 or newer. + Version 0.26 - July 2025 # Programming languages support: diff --git a/gettext-tools/emacs/HACKING b/gettext-tools/emacs/HACKING index 8ee4330a5..d02a3be7d 100644 --- a/gettext-tools/emacs/HACKING +++ b/gettext-tools/emacs/HACKING @@ -1,3 +1,6 @@ +WARNING +======= + This directory gets automatically mirrored at https://github.com/emacsmirror/po-mode/ @@ -10,3 +13,37 @@ https://github.com/melpa/melpa/blob/master/README.md ): (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/")) Therefore, don't make untested changes in this directory! + + +Testing +======= + +Testing changes done in this directory: + +/some/bin/emacs -q -l `pwd`/start-po.el -l `pwd`/po-mode.el ~/clisp.de.po + + +Fixing bugs due to regressions in Emacs +======================================= + +* Look in the Emacs NEWS file. + +* Bisect from one release to the next. Example: + +version=20230801; git checkout deb8b933bce29f99c90f5f305d0d1b75c6d27527 OK + +version=20250223; git checkout 8334a9bd73f01a714ba352a49b1f040264ed4eac KO + +Commands: + +- Build: +./autogen.sh; mkdir bb$version; cd bb$version; PKG_CONFIG_PATH=/arch/x86_64-linux-gnu/gnu/lib/pkgconfig ../configure --host=x86_64-pc-linux-gnu --prefix=/arch/x86_64-linux-gnu/gnu-inst-emacs-nox/$version CPPFLAGS=-Wall --disable-silent-rules --without-x --without-toolkit-scroll-bars --with-gif=ifavailable --with-gnutls=ifavailable && make && make install + +- Test that version: +/arch/x86_64-linux-gnu/gnu-inst-emacs-nox/$version/bin/emacs -q -l /GETTEXT/gettext/gettext-tools/emacs/start-po.el -l /GETTEXT/gettext/gettext-tools/emacs/po-mode.el ~/clisp.de.po + +- Cleanup the build: +cd .. +rm -f build-aux/config.guess build-aux/config.sub build-aux/install-sh exec/config.guess exec/config.h.in exec/config.sub exec/install-sh lisp/loaddefs.el `find lisp -name '*.elc'`; git diff | patch -p1 -R + +- Select new version to test, and loop. diff --git a/gettext-tools/emacs/po-mode.el b/gettext-tools/emacs/po-mode.el index 2cde7af14..80fede9dd 100644 --- a/gettext-tools/emacs/po-mode.el +++ b/gettext-tools/emacs/po-mode.el @@ -62,7 +62,7 @@ ;;; Code: -(defconst po-mode-version-string "2.30" "\ +(defconst po-mode-version-string "2.31" "\ Version number of this version of po-mode.el.") ;;; Emacs portability matters - part I. @@ -1002,7 +1002,7 @@ all reachable through 'M-x customize', in group 'Emacs.Editing.I18n.Po'." (add-hook 'write-contents-functions 'po-replace-revision-date) - (run-hooks 'po-mode-hook) + (run-mode-hooks 'po-mode-hook) (message (_"You may type 'h' or '?' for a short PO mode reminder."))) (defvar po-subedit-mode-map -- 2.47.3