GNU bug report logs - #78798
bibtex-font-lock-url-regexp should re-eval after setting bibtex-generate-url-list

Previous Next

Package: emacs;

Reported by: MAN ONE <pRoMMMModE <at> outlook.com>

Date: Sun, 15 Jun 2025 12:09:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Full log


View this message in rfc822 format

From: Eli Zaretskii <eliz <at> gnu.org>
To: MAN ONE <pRoMMMModE <at> outlook.com>
Cc: 78798 <at> debbugs.gnu.org, winkler <at> gnu.org, monnier <at> iro.umontreal.ca
Subject: bug#78798: bibtex-font-lock-url-regexp should re-eval after setting bibtex-generate-url-list
Date: Sat, 19 Jul 2025 10:47:37 +0300
> From: MAN ONE <pRoMMMModE <at> outlook.com>
> CC: "78798 <at> debbugs.gnu.org" <78798 <at> debbugs.gnu.org>, Eli Zaretskii
> 	<eliz <at> gnu.org>, "monnier <at> iro.umontreal.ca" <monnier <at> iro.umontreal.ca>
> Date: Wed, 9 Jul 2025 03:43:40 +0000
> 
> Perhaps this one is better?

Roland?

> =============================
> --- a/lisp/textmodes/bibtex.el
> +++ b/lisp/textmodes/bibtex.el
> @@ -39,7 +39,14 @@
>  ;;; Code:
>  
>  (require 'iso8601)
> -
> +(eval-and-compile
> +  (defun bibtex--generate-url-list (symbol value)
> +    "Set the default value of `bibtex-generate-url-list' and populate `bibtex-font-lock-url-regexp'."
> +    (set-default symbol value)
> +    (setq bibtex-font-lock-url-regexp
> +          (concat "^[ \t]*"           ; Assume that field names begin at the beginning of a line.
> +                  (regexp-opt (delete-dups (mapcar #'caar value)) 'paren)
> +                  "[ \t\n]*=[ \t\n]*"))))
>  
>  ;; User Options:
>  
> @@ -1495,7 +1502,8 @@ bibtex-generate-url-list
>                                 (choice (string :tag "Replacement")
>  				       (integer :tag "Sub-match")
>                                         (function :tag "Filter")))))))
> -  :risky t)
> +  :risky t
> +  :set 'bibtex--generate-url-list)
>  
>  (defcustom bibtex-cite-matcher-alist
>    '(("\\\\cite[ \t\n]*{\\([^}]+\\)}" . 1))
> @@ -1838,12 +1846,10 @@ bibtex-font-lock-keywords
>                bibtex-cite-matcher-alist))
>    "Default expressions to highlight in BibTeX mode.")
>  
> -(defvar bibtex-font-lock-url-regexp
> -  ;; Assume that field names begin at the beginning of a line.
> -  (concat "^[ \t]*"
> -          (regexp-opt (delete-dups (mapcar #'caar bibtex-generate-url-list)) t)
> -          "[ \t\n]*=[ \t\n]*")
> -  "Regexp for `bibtex-font-lock-url' derived from `bibtex-generate-url-list'.")
> +(defvar bibtex-font-lock-url-regexp nil
> +  "Regexp for `bibtex-font-lock-url'.
> +Auto-generated from `bibtex-generate-url-list'.
> +To change its value, customize `bibtex-generate-url-list'.")
>  
>  (defvar bibtex-string-empty-key nil
>    "If non-nil, `bibtex-parse-string' accepts empty key.")
> =====================================
> 
> In bibtex.el there are muliple variable like `bibtex-font-lock-url-regexp`, defined 
> as nil then populated by other customizables, honestly I don't know if it's 
> good or not but it certainly takes a non-trivial patch to remove those variables.
> 




This bug report was last modified 21 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.