Subject: bug#21764: 25.0.50; bibtex-set-dialect not called for bibtex buffers

From: Grégoire Jadi <[email-masked]>
Date: Thu, 12 Nov 2015 15:39:28 +0100

Hi,

Below a patch that fixes this bug and with regression tests.

Comments welcome.

PS: I've signed the FSF paperwork my number is #793656

From 85abad38ea1f45ad92794803ddd39e6196cc9582 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Gr=C3=A9goire=20Jadi?= <[email-masked]>
Date: Thu, 12 Nov 2015 15:29:20 +0100
Subject: [PATCH] Ensure `bibtex-set-dialect' is executed in bibtex buffers

Call `bibtex-set-dialect' at least once in bibtex buffers even if they are
not associated with a file (Bug#21764).
* lisp/textmodes/bibtex.el (bibtex-mode): Call `bibtex-set-dialect'.
* test/automated/bibtex-tests.el: Add regression tests.
---
 lisp/textmodes/bibtex.el       |  1 +
 test/automated/bibtex-tests.el | 57 ++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 58 insertions(+)
 create mode 100644 test/automated/bibtex-tests.el

diff --git a/lisp/textmodes/bibtex.el b/lisp/textmodes/bibtex.el
index df8066e..4400354 100644
--- a/lisp/textmodes/bibtex.el
+++ b/lisp/textmodes/bibtex.el
@@ -3405,6 +3405,7 @@ bibtex-mode
   (set (make-local-variable 'syntax-propertize-function)
        (syntax-propertize-via-font-lock
         bibtex-font-lock-syntactic-keywords))
+  (bibtex-set-dialect nil t)
   ;; Allow `bibtex-dialect' as a file-local variable.
   (add-hook 'hack-local-variables-hook 'bibtex-set-dialect nil t))
 
diff --git a/test/automated/bibtex-tests.el b/test/automated/bibtex-tests.el
new file mode 100644
index 0000000..33f53a0
--- /dev/null
+++ b/test/automated/bibtex-tests.el
@@ -0,0 +1,57 @@
+;;; bibtex-tests.el --- Test suite for bibtex.
+
+;; Copyright (C) 2013-2015 Free Software Foundation, Inc.
+
+;; Keywords: bibtex
+
+;; This file is part of GNU Emacs.
+
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs.  If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;;; Code:
+
+(require 'ert)
+(require 'bibtex)
+
+(ert-deftest bibtex-test-set-dialect ()
+  "Tests if `bibtex-set-dialect' is executed."
+  (with-temp-buffer
+    (insert "@article{someID,
+  author = {some author},
+  title = {some title},
+}")
+    (bibtex-mode)
+    (should-not (null bibtex-dialect))
+    (should-not (null bibtex-entry-type))
+    (should-not (null bibtex-entry-head))
+    (should-not (null bibtex-reference-key))
+    (should-not (null bibtex-entry-head))
+    (should-not (null bibtex-entry-maybe-empty-head))
+    (should-not (null bibtex-any-valid-entry-type))))
+
+(ert-deftest bibtex-test-parse-buffers-stealthily ()
+  "Tests if `bibtex-parse-buffers-stealthily' can be executed."
+  (with-temp-buffer
+    (insert "@article{someID,
+  author = {some author},
+  title = {some title},
+}")
+    (bibtex-mode)
+    (should (progn (bibtex-parse-buffers-stealthily) t))))
+
+(provide 'bibtex-tests)
+
+;;; bibtex-tests.el ends here
-- 
1.9.1

-- 
Grégoire Jadi