]> git.eshelyaron.com Git - emacs.git/commitdiff
Allow bibtex-unify-case-function as file-local variable
authorRoland Winkler <winkler@gnu.org>
Wed, 2 Dec 2020 15:47:14 +0000 (09:47 -0600)
committerRoland Winkler <winkler@gnu.org>
Wed, 2 Dec 2020 15:47:14 +0000 (09:47 -0600)
* lisp/textmodes/bibtex.el (bibtex-unify-case-function):
Renamed from bibtex-unify-case-convert.  Add :safe attribute.
* etc/NEWS: Update accordingly.

etc/NEWS
lisp/textmodes/bibtex.el

index 5408ea996fd6e3032b9a4755b6b323bbc5a35ab8..c9da296278661a7e6d956b77a10e50de6717db29 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1355,7 +1355,7 @@ completions with more information in completion prefix and suffix.
 *** User option 'completions-format' supports a new value 'one-column'.
 
 ---
-*** New user option 'bibtex-unify-case-convert'.
+*** New user option 'bibtex-unify-case-function'.
 This new option allows the user to customize how case is converted
 when unifying entries.
 
index c9e21e58f629fc7aa0a90424dbcdbadd7028431b..001941f96c192b82b4ada84738de7f8b022f620d 100644 (file)
@@ -88,16 +88,6 @@ If this is a function, call it to generate the initial field text."
                  (const :tag "Default" t))
   :risky t)
 
-(defcustom bibtex-unify-case-convert #'identity
-  "Function called when unifying case on entry and field names.
-It is called with one argument, the entry or field name."
-  :version "28.1"
-  :type '(choice (const :tag "Same case as in `bibtex-field-alist'" identity)
-                (const :tag "Downcase" downcase)
-                (const :tag "Capitalize" capitalize)
-                (const :tag "Upcase" upcase)
-                 (function :tag "Conversion function")))
-
 (defcustom bibtex-user-optional-fields
   '(("annote" "Personal annotation (ignored)"))
   "List of optional fields the user wants to have always present.
@@ -133,7 +123,7 @@ last-comma          Add or delete comma on end of last field in entry,
 delimiters          Change delimiters according to variables
                       `bibtex-field-delimiters' and `bibtex-entry-delimiters'.
 unify-case          Change case of entry and field names according to
-                      `bibtex-unify-case-convert'.
+                      `bibtex-unify-case-function'.
 braces              Enclose parts of field entries by braces according to
                       `bibtex-field-braces-alist'.
 strings             Replace parts of field entries by string constants
@@ -193,6 +183,17 @@ Space characters in REGEXP will be replaced by \"[ \\t\\n]+\"."
                        (regexp :tag "From regexp")
                        (regexp :tag "To string constant"))))
 
+(defcustom bibtex-unify-case-function #'identity
+  "Function for unifying case of entry and field names.
+It is called with one argument, the entry or field name."
+  :version "28.1"
+  :type '(choice (const :tag "Same case as in `bibtex-field-alist'" identity)
+                (const :tag "Downcase" downcase)
+                (const :tag "Capitalize" capitalize)
+                (const :tag "Upcase" upcase)
+                 (function :tag "Conversion function"))
+  :safe (lambda (x) (memq x '(upcase downcase capitalize identity))))
+
 (defcustom bibtex-clean-entry-hook nil
   "List of functions to call when entry has been cleaned.
 Functions are called with point inside the cleaned entry, and the buffer
@@ -2357,7 +2358,7 @@ Formats current entry according to variable `bibtex-entry-format'."
                 ;; unify case of entry type
                 (when (memq 'unify-case format)
                   (delete-region beg-type end-type)
-                  (insert (funcall bibtex-unify-case-convert (car entry-list))))
+                  (insert (funcall bibtex-unify-case-function (car entry-list))))
 
                 ;; update left entry delimiter
                 (when (memq 'delimiters format)
@@ -2566,7 +2567,7 @@ Formats current entry according to variable `bibtex-entry-format'."
                            (curname (buffer-substring beg-name end-name)))
                        (delete-region beg-name end-name)
                        (goto-char beg-name)
-                       (insert (funcall bibtex-unify-case-convert
+                       (insert (funcall bibtex-unify-case-function
                                         (or fname curname)))))
 
                     ;; update point