Subject: bug#45510: closed (Re: bug#45510: 12.3.1; Evince synctex integration hangs when filename contains question mark)

From: [email-masked] (GNU bug Tracking System)
Date: Tue, 29 Dec 2020 16:48:01 +0000

Your bug report

#45510: 12.3.1; Evince synctex integration hangs when filename contains question mark

which was filed against the auctex package, has been closed.

The explanation is attached below, along with your original report.
If you require more details, please reply to [email-masked].

-- 
45510: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=45510
GNU Bug Tracking System
Contact [email-masked] with problems

Subject: Re: bug#45510: 12.3.1; Evince synctex integration hangs when filename contains question mark
From: Tassilo Horn <[email-masked]>
To: Hans-Peter Deifel <[email-masked]>
Cc: [email-masked], [email-masked]
Date: Tue, 29 Dec 2020 17:44:46 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hans-Peter Deifel <[email-masked]> writes:

Hi Hans-Peter,

> When enabling `TeX-source-correlate-mode', using Evince as viewer and
> typing `C-c C-a' in a TeX buffer where the filename contains a
> question mark renders Emacs unresponsive until some time-out. Not even
> C-g C-g C-g works.

C-g worked for me.  But anyway, the bug should be fixed and I've done so
just now.  I'll release 13.0.1 anytime soon, and it'll be included in
there.

Thanks for the report (which I'm closing now)!
  Tassilo

Subject: 12.3.1; Evince synctex integration hangs when filename contains question mark
From: Hans-Peter Deifel <[email-masked]>
To: [email-masked]
Date: Mon, 28 Dec 2020 11:17:03 +0100
List-Id: <debbugs-submit.debbugs.gnu.org>

Hello,

When enabling `TeX-source-correlate-mode', using Evince as viewer and
typing `C-c C-a' in a TeX buffer where the filename contains a question
mark renders Emacs unresponsive until some time-out. Not even C-g C-g
C-g works.

This bug seems to be caused by insufficient escaping of the ? character
when Evince's FindDocument dbus method is called in
TeX-evince-sync-view-1. Emacs passes the `?' literally in the URI
argument of FindDocument and Evince expects it to be properly escaped.

TeX-evince-sync-view-1 uses `url-encode-url' on the filename, which
unfortunately doesn't replace the question mark character specifically:

  (url-encode-url "/foo?/bar.pdf") => "/foo?/bar.pdf"

See also https://gitlab.gnome.org/GNOME/evince/-/issues/1483 for an
explanation by a developer of Evince.

Cheers,
HP

Emacs  : GNU Emacs 27.1 (build 1, x86_64-redhat-linux-gnu, GTK+ Version 3.24.22, cairo version 1.16.0)
 of 2020-08-21
Package: 12.3.1

current state:
==============
(setq
 AUCTeX-date "2020-10-22"
 window-system 'x
 LaTeX-version "2e"
 TeX-style-path '("~/.emacs.d/auctex" "/home/hpd/.emacs.d/straight/build/auctex/style"
		  "/home/hpd/.emacs.d/auctex/auto" "/home/hpd/.emacs.d/auctex/style" "auto"
		  "style")
 TeX-auto-save t
 TeX-parse-self t
 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
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode
		      context-mode)
		     :help "Run BibTeX")
		    ("Biber" "biber %s" TeX-run-Biber nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :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
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Generate PostScript file")
		    ("Dvips" "%(o?)dvips %d -o %f " TeX-run-dvips nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Convert DVI file to PostScript")
		    ("Dvipdfmx" "dvipdfmx %d" TeX-run-dvipdfmx nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Convert DVI file to PDF with dvipdfmx")
		    ("Ps2pdf" "ps2pdf %f" TeX-run-ps2pdf nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Convert PostScript file to PDF")
		    ("Glossaries" "makeglossaries %s" TeX-run-command nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Run makeglossaries to create glossary\n     file")
		    ("Index" "makeindex %s" TeX-run-index nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Run makeindex to create index file")
		    ("upMendex" "upmendex %s" TeX-run-index t
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :help
		     "Run upmendex to create index file")
		    ("Xindy" "texindy %s" TeX-run-command nil
		     (plain-tex-mode latex-mode doctex-mode ams-tex-mode texinfo-mode) :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"))
 )