Subject: bug#36310: 12.1.2; TeX-complete-symbol in math mode results in error for unique completion

From: Gustavo Barros <[email-masked]>
Date: Thu, 20 Jun 2019 12:08:58 -0300

The use of 'TeX-complete-symbol' ("C-M-i") in math mode results in error 
when
the completion is unique.

Steps to reproduce:

#+begin_src bash
emacs -Q
#+end_src

Setup minimal environment:

M-x package-initialize RET
M-x toggle-debug-on-error RET
M-x LaTeX-mode RET

Then type:

$$ "C-b" \Right "C-M-i"

The completion is actually executed, but triggers an error, whose 
backtrace is:

#+begin_verbatim
Debugger entered--Lisp error: (wrong-type-argument stringp (if 
TeX-insert-braces "{}"))
regexp-quote((if TeX-insert-braces "{}"))
TeX-complete-symbol()
funcall-interactively(TeX-complete-symbol)
call-interactively(TeX-complete-symbol nil nil)
command-execute(TeX-complete-symbol)
#+end_verbatim

The error is only triggered if the completion case is unique. If there are
multiple candidates, the "*Completions*" buffer will popup normally.

The issue affects, as far as I can tell, any symbol in 'LaTeX-math-default'
(probably 'LaTeX-math-list' too, but mine is nil) in the same 
circumstances.

Best,
Gustavo Barros

Emacs : GNU Emacs 26.2 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.30)
of 2019-04-19
Package: 12.1.2

current state:
==============
(setq
AUCTeX-date "2019-02-08"
window-system 'x
LaTeX-version "2e"
TeX-style-path '("~/.emacs.d/auctex"
"/home/gustavo/.emacs.d/elpa/auctex-12.1.2/style"
"/home/gustavo/.emacs.d/auctex/auto"
"/home/gustavo/.emacs.d/auctex/style" "auto" "style")
TeX-auto-save nil
TeX-parse-self nil
TeX-master t
TeX-command-list '(("TeX"
"%(PDF)%(tex) %(file-line-error) %`%(extraopts) %S%(PDFout)%(mode)%' %t"
TeX-run-TeX nil
(plain-tex-mode ams-tex-mode texinfo-mode) :help
"Run plain TeX")
("LaTeX" "%`%l%(mode)%' %T" TeX-run-TeX nil
(latex-mode doctex-mode) :help "Run LaTeX")
("Makeinfo" "makeinfo %(extraopts) %t" TeX-run-compile nil
(texinfo-mode) :help "Run Makeinfo with Info output")
("Makeinfo HTML" "makeinfo %(extraopts) --html %t"
TeX-run-compile nil (texinfo-mode) :help
"Run Makeinfo with HTML output")
("AmSTeX" "amstex %(PDFout) %`%(extraopts) %S%(mode)%' %t"
TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX")
("ConTeXt"
"%(cntxcom) --once --texutil %(extraopts) %(execopts)%t"
TeX-run-TeX nil (context-mode) :help "Run ConTeXt once")
("ConTeXt Full" "%(cntxcom) %(extraopts) %(execopts)%t"
TeX-run-TeX nil (context-mode) :help
"Run ConTeXt until completion")
("BibTeX" "bibtex %s" TeX-run-BibTeX nil t :help
"Run BibTeX")
("Biber" "biber %s" TeX-run-Biber nil t :help "Run Biber")
("View" "%V" TeX-run-discard-or-function t t :help
"Run Viewer")
("Print" "%p" TeX-run-command t t :help "Print the file")
("Queue" "%q" TeX-run-background nil t :help
"View the printer queue" :visible TeX-queue-command)
("File" "%(o?)dvips %d -o %f " TeX-run-dvips t t :help
"Generate PostScript file")
("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil t :help
"Convert DVI file to PostScript")
("Dvipdfmx" "dvipdfmx %d" TeX-run-dvipdfmx nil t :help
"Convert DVI file to PDF with dvipdfmx")
("Ps2pdf" "ps2pdf %f" TeX-run-ps2pdf nil t :help
"Convert PostScript file to PDF")
("Glossaries" "makeglossaries %s" TeX-run-command nil t
:help "Run makeglossaries to create glossary file")
("Index" "makeindex %s" TeX-run-index nil t :help
"Run makeindex to create index file")
("upMendex" "upmendex %s" TeX-run-index t t :help
"Run upmendex to create index file")
("Xindy" "texindy %s" TeX-run-command nil t :help
"Run xindy to create index file")
("Check" "lacheck %s" TeX-run-compile nil (latex-mode)
:help "Check LaTeX file for correctness")
("ChkTeX" "chktex -v6 %s" TeX-run-compile nil (latex-mode)
:help "Check LaTeX file for common mistakes")
("Spell" "(TeX-ispell-document \"\")" TeX-run-function nil
t :help "Spell-check the document")
("Clean" "TeX-clean" TeX-run-function nil t :help
"Delete generated intermediate files")
("Clean All" "(TeX-clean t)" TeX-run-function nil t :help
"Delete generated intermediate and output files")
("Other" "" TeX-run-command t t :help
"Run an arbitrary command")
)
)