GNU bug report logs - #20513
11.88.5; TeX-view-program-list generated in wrong format by Customize

Previous Next

Package: auctex;

Reported by: Дарио Ѓорѓевски <gjorgjevski.dario <at> yandex.com>

Date: Wed, 6 May 2015 15:53:01 UTC

Severity: normal

Found in version 11.88.5

Done: Mosè Giordano <mose <at> gnu.org>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 20513 in the body.
You can then email your comments to 20513 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Wed, 06 May 2015 15:53:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Дарио Ѓорѓевски <gjorgjevski.dario <at> yandex.com>:
New bug report received and forwarded. Copy sent to bug-auctex <at> gnu.org. (Wed, 06 May 2015 15:53:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>
To: bug-auctex <at> gnu.org
Subject: 11.88.5; TeX-view-program-list generated in wrong format by Customize
Date: Wed, 06 May 2015 10:42:58 +0200
Remember to cover the basics, that is, what you expected to happen and
what in fact did happen.

Be sure to consult the FAQ section in the manual before submitting
a bug report.  In addition check if the bug is reproducable with an
up-to-date version of AUCTeX.  So please upgrade to the version
available from http://www.gnu.org/software/auctex/ if your
installation is older than the one available from the web site.

If the bug is triggered by a specific (La)TeX file, you should try
to produce a minimal sample file showing the problem and include it
in your report.

Your report will be posted for the auctex package at the GNU bug
tracker.  Visit http://debbugs.gnu.org/cgi/pkgreport.cgi?pkg=auctex
to browse existing AUCTeX bugs.
------------------------------------------------------------------------

Consider the following customization of the TeX-view-program-list
variable: http://i.imgur.com/xP6Cx5k.png
The generated Lisp expression looks like so:
'(("SumatraPDF"
   (("SumatraPDF.exe"
     (mode-io-correlate " -forward-search %b %n")
     " %o"))
   "SumatraPDF.exe"))

This causes TeX-view-command-raw (tex.el, line 1354) to go into an
*infinite loop*. I do not know why the infinite loop occurs, however, I
know that changing

(dolist (elt car spec)
to
(dolist (elt (car spec))

solves the issue. This is because there are double parens around the
command line. Changing them manually to a single pair of parens solves
the problem, too.

Emacs  : GNU Emacs 25.0.50.1 (x86_64-w64-mingw32)
 of 2015-04-24 on CAB8
Package: 11.88.5

current state:
==============
(setq
 AUCTeX-date "2015-05-01"
 window-system 'w32
 LaTeX-version "2e"
 TeX-style-path '("~/.emacs.d/auctex" "c:/Users/gjorg_000/.emacs.d/elpa/auctex-11.88.5/style"
                  "c:/Users/gjorg_000/.emacs.d/auctex/auto" "c:/Users/gjorg_000/.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" "%(PDF)amstex %(extraopts) %`%S%(PDFout)%(mode)%' %t" TeX-run-TeX nil (ams-tex-mode) :help "Run AMSTeX")
                    ("ConTeXt" "texexec --once --texutil %(extraopts) %(execopts)%t" TeX-run-TeX nil (context-mode) :help
                     "Run ConTeXt once")
                    ("ConTeXt Full" "texexec %(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-command t t :help "Generate PostScript file")
                    ("Index" "makeindex %s" TeX-run-command nil t :help "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"))
 )




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 06:40:03 GMT) Full text and rfc822 format available.

Message #8 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>
Cc: 20513 <at> debbugs.gnu.org
Subject: Re: bug#20513: 11.88.5;
 TeX-view-program-list generated in wrong format by Customize
Date: Thu, 07 May 2015 08:39:43 +0200
Дарио Ѓорѓевски <gjorgjevski.dario <at> yandex.com> writes:

Hi!

> Consider the following customization of the TeX-view-program-list
> variable: http://i.imgur.com/xP6Cx5k.png
> The generated Lisp expression looks like so:
> '(("SumatraPDF"
>    (("SumatraPDF.exe"
>      (mode-io-correlate " -forward-search %b %n")
>      " %o"))
>    "SumatraPDF.exe"))
>
> This causes TeX-view-command-raw (tex.el, line 1354) to go into an
> *infinite loop*. I do not know why the infinite loop occurs, however,
> I know that changing
>
> (dolist (elt car spec)
> to
> (dolist (elt (car spec))
>
> solves the issue.

The former line looks strange, indeed.  However, it seems you are
looking at a different tex.el than the one that ships with ELPA AUCTeX
11.88.5.  In there, the `TeX-view-command-raw' definition is:

--8<---------------cut here---------------start------------->8---
(defun TeX-view-command-raw ()
  "Choose a viewer and return its unexpanded command string."
  (let ((selection TeX-view-program-selection)
        entry viewer item executable spec command)
    ;; Find the appropriate viewer.
    (while (and (setq entry (pop selection)) (not viewer))
      (when (TeX-view-match-predicate (car entry))
        (setq viewer (cadr entry))))
    (unless viewer
      (error "No matching viewer found"))
    (setq item (assoc viewer (append TeX-view-program-list
                                     TeX-view-program-list-builtin))
          ;; Get the command line or function spec.
          spec (cadr item)
          ;; Get the name of the executable(s) associated to the viewer.
          executable (nth 2 item))
    ;; Check the executable exists.
    (unless (or (null executable)
                (cond
                 ((stringp executable)
                  (executable-find (TeX-command-expand executable nil)))
                 ((listp executable)
                  (catch 'notfound
                    (dolist (exec executable t)
                      (unless (executable-find (TeX-command-expand exec nil))
                        (throw 'notfound nil)))))))
      (error (format "Cannot find %S viewer.  \
Select another one in `TeX-view-program-selection'" viewer)))
    (cond ((functionp spec)
           ;; Converting the function call to a string is ugly, but
           ;; the backend currently only supports strings.
           (prin1-to-string spec))
          ((stringp spec)
           spec)
          ((null spec)
           (error
            (format "Unknown %S viewer. \
Check the `TeX-view-program-selection' variable" viewer)))
          (t
           ;; Build the unexpanded command line.  Pieces with predicates are
           ;; only added if the predicate is evaluated positively.
           (dolist (elt spec)
             (cond ((stringp elt)
                    (setq command (concat command elt)))
                   ((listp elt)
                    (when (TeX-view-match-predicate (car elt))
                      (setq command (concat command (cadr elt)))))))
           command))))
--8<---------------cut here---------------end--------------->8---

So as you can see, no (dolist (elt car spec) ...) anywhere.

Have a look at `M-x list-load-path-shadows' to check if there's some
older, outdated auctex version around which messes with 11.88.5.

Bye,
Tassilo




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 08:10:02 GMT) Full text and rfc822 format available.

Message #11 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: Mosè Giordano <mose <at> gnu.org>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513 <at> debbugs.gnu.org
Subject: Re: bug#20513: 11.88.5; TeX-view-program-list generated in wrong
 format by Customize
Date: Thu, 7 May 2015 10:08:23 +0200
Hi Tassilo,

2015-05-07 8:39 GMT+02:00 Tassilo Horn <tsdh <at> gnu.org>:
> Дарио Ѓорѓевски <gjorgjevski.dario <at> yandex.com> writes:
>
> Hi!
>
>> Consider the following customization of the TeX-view-program-list
>> variable: http://i.imgur.com/xP6Cx5k.png
>> The generated Lisp expression looks like so:
>> '(("SumatraPDF"
>>    (("SumatraPDF.exe"
>>      (mode-io-correlate " -forward-search %b %n")
>>      " %o"))
>>    "SumatraPDF.exe"))
>>
>> This causes TeX-view-command-raw (tex.el, line 1354) to go into an
>> *infinite loop*. I do not know why the infinite loop occurs, however,
>> I know that changing
>>
>> (dolist (elt car spec)
>> to
>> (dolist (elt (car spec))
>>
>> solves the issue.
>
> The former line looks strange, indeed.  However, it seems you are
> looking at a different tex.el than the one that ships with ELPA AUCTeX
> 11.88.5.

I agree, but I confirm `TeX-view-program-list' is built in the wrong
way when changed with customize interface, as reported by Дарио.  It
worked as expected before commit

  * 59ccf34 (2014-11-28)  Check the viewer executable exists before opening it.

where the customization type of the variable was changed from an alist
to a repeated list, but the command part of the type hasn't been
modified.  How should it be fixed?

Bye,
Mosè




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 08:52:01 GMT) Full text and rfc822 format available.

Message #14 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Mosè Giordano <mose <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513 <at> debbugs.gnu.org
Subject: Re: bug#20513: 11.88.5;
 TeX-view-program-list generated in wrong format by Customize
Date: Thu, 07 May 2015 10:51:47 +0200
Mosè Giordano <mose <at> gnu.org> writes:

> I agree, but I confirm `TeX-view-program-list' is built in the wrong
> way when changed with customize interface, as reported by Дарио.  It
> worked as expected before commit
>
>   * 59ccf34 (2014-11-28)  Check the viewer executable exists before opening it.
>
> where the customization type of the variable was changed from an alist
> to a repeated list, but the command part of the type hasn't been
> modified.  How should it be fixed?

I think the problem is that the command part is a group of a choice
where one choice is a list again.  A group is a list, and list is a
list, so command parts will result in ((stuff)) where it should be just
(stuff).  So can't you simply remove the outer

  (group :tag "Command parts"

and that's it?

Bye,
Tassilo




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 08:57:02 GMT) Full text and rfc822 format available.

Message #17 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: Mosè Giordano <mose <at> gnu.org>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513 <20513 <at> debbugs.gnu.org>
Subject: Re: bug#20513: 11.88.5; TeX-view-program-list generated in wrong
 format by Customize
Date: Thu, 7 May 2015 10:55:45 +0200
2015-05-07 10:51 GMT+02:00 Tassilo Horn <tsdh <at> gnu.org>:
> Mosè Giordano <mose <at> gnu.org> writes:
>
>> I agree, but I confirm `TeX-view-program-list' is built in the wrong
>> way when changed with customize interface, as reported by Дарио.  It
>> worked as expected before commit
>>
>>   * 59ccf34 (2014-11-28)  Check the viewer executable exists before opening it.
>>
>> where the customization type of the variable was changed from an alist
>> to a repeated list, but the command part of the type hasn't been
>> modified.  How should it be fixed?
>
> I think the problem is that the command part is a group of a choice
> where one choice is a list again.  A group is a list, and list is a
> list, so command parts will result in ((stuff)) where it should be just
> (stuff).  So can't you simply remove the outer
>
>   (group :tag "Command parts"
>
> and that's it?

That's what I thought, but why it used to work when the type was an
alist?  Back then, also using command parts resulted in (stuff)
instead of ((stuff)).  What am I missing?

Bye,
Mosè




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 09:01:07 GMT) Full text and rfc822 format available.

Message #20 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: Tassilo Horn <tsdh <at> gnu.org>
To: Mosè Giordano <mose <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513 <20513 <at> debbugs.gnu.org>
Subject: Re: bug#20513: 11.88.5;
 TeX-view-program-list generated in wrong format by Customize
Date: Thu, 07 May 2015 11:00:32 +0200
Mosè Giordano <mose <at> gnu.org> writes:

>> I think the problem is that the command part is a group of a choice
>> where one choice is a list again.  A group is a list, and list is a
>> list, so command parts will result in ((stuff)) where it should be
>> just (stuff).  So can't you simply remove the outer
>>
>>   (group :tag "Command parts"
>>
>> and that's it?
>
> That's what I thought, but why it used to work when the type was an
> alist?  Back then, also using command parts resulted in (stuff)
> instead of ((stuff)).  What am I missing?

alist does (cons key value), so if key is "Foo" and value is ((stuff)),
you get an alist entry (Foo (stuff)).

Bye,
Tassilo




Information forwarded to bug-auctex <at> gnu.org:
bug#20513; Package auctex. (Thu, 07 May 2015 09:08:02 GMT) Full text and rfc822 format available.

Message #23 received at 20513 <at> debbugs.gnu.org (full text, mbox):

From: David Kastrup <dak <at> gnu.org>
To: Tassilo Horn <tsdh <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513 <at> debbugs.gnu.org,
 Mosè Giordano <mose <at> gnu.org>
Subject: Re: bug#20513: 11.88.5;
 TeX-view-program-list generated in wrong format by Customize
Date: Thu, 07 May 2015 11:03:41 +0200
Tassilo Horn <tsdh <at> gnu.org> writes:

> Mosè Giordano <mose <at> gnu.org> writes:
>
>> I agree, but I confirm `TeX-view-program-list' is built in the wrong
>> way when changed with customize interface, as reported by Дарио.  It
>> worked as expected before commit
>>
>>   * 59ccf34 (2014-11-28) Check the viewer executable exists before
>> opening it.
>>
>> where the customization type of the variable was changed from an alist
>> to a repeated list, but the command part of the type hasn't been
>> modified.  How should it be fixed?
>
> I think the problem is that the command part is a group of a choice
> where one choice is a list again.  A group is a list, and list is a
> list, so command parts will result in ((stuff)) where it should be just
> (stuff).  So can't you simply remove the outer
>
>   (group :tag "Command parts"
>
> and that's it?

I seem to remember that there is some option in the customization
definition where some group will be folded into the surrounding list.

Ah yes, (info "(elisp) Splicing into Lists").

File: elisp.info,  Node: Splicing into Lists,  Next: Type Keywords,  Prev: Composite Types,  Up: Customization Types

14.4.3 Splicing into Lists
--------------------------

The ‘:inline’ feature lets you splice a variable number of elements into
the middle of a ‘list’ or ‘vector’ customization type.  You use it by
adding ‘:inline t’ to a type specification which is contained in a
‘list’ or ‘vector’ specification.

   Normally, each entry in a ‘list’ or ‘vector’ type specification
describes a single element type.  But when an entry contains ‘:inline
t’, the value it matches is merged directly into the containing
sequence.  For example, if the entry matches a list with three elements,
those become three elements of the overall sequence.  This is analogous
to ‘,@’ in a backquote construct (*note Backquote::).

-- 
David Kastrup




Reply sent to Mosè Giordano <mose <at> gnu.org>:
You have taken responsibility. (Thu, 07 May 2015 10:38:02 GMT) Full text and rfc822 format available.

Notification sent to Дарио Ѓорѓевски <gjorgjevski.dario <at> yandex.com>:
bug acknowledged by developer. (Thu, 07 May 2015 10:38:02 GMT) Full text and rfc822 format available.

Message #28 received at 20513-close <at> debbugs.gnu.org (full text, mbox):

From: Mosè Giordano <mose <at> gnu.org>
To: David Kastrup <dak <at> gnu.org>
Cc: Дарио Ѓорѓевски
 <gjorgjevski.dario <at> yandex.com>, 20513-close <at> debbugs.gnu.org,
 Tassilo Horn <tsdh <at> gnu.org>
Subject: Re: bug#20513: 11.88.5; TeX-view-program-list generated in wrong
 format by Customize
Date: Thu, 7 May 2015 12:36:35 +0200
2015-05-07 11:03 GMT+02:00 David Kastrup <dak <at> gnu.org>:
> Tassilo Horn <tsdh <at> gnu.org> writes:
>
>> Mosè Giordano <mose <at> gnu.org> writes:
>>
>>> I agree, but I confirm `TeX-view-program-list' is built in the wrong
>>> way when changed with customize interface, as reported by Дарио.  It
>>> worked as expected before commit
>>>
>>>   * 59ccf34 (2014-11-28) Check the viewer executable exists before
>>> opening it.
>>>
>>> where the customization type of the variable was changed from an alist
>>> to a repeated list, but the command part of the type hasn't been
>>> modified.  How should it be fixed?
>>
>> I think the problem is that the command part is a group of a choice
>> where one choice is a list again.  A group is a list, and list is a
>> list, so command parts will result in ((stuff)) where it should be just
>> (stuff).  So can't you simply remove the outer
>>
>>   (group :tag "Command parts"
>>
>> and that's it?
>
> I seem to remember that there is some option in the customization
> definition where some group will be folded into the surrounding list.
>
> Ah yes, (info "(elisp) Splicing into Lists").
>
> File: elisp.info,  Node: Splicing into Lists,  Next: Type Keywords,  Prev: Composite Types,  Up: Customization Types
>
> 14.4.3 Splicing into Lists
> --------------------------
>
> The ‘:inline’ feature lets you splice a variable number of elements into
> the middle of a ‘list’ or ‘vector’ customization type.  You use it by
> adding ‘:inline t’ to a type specification which is contained in a
> ‘list’ or ‘vector’ specification.
>
>    Normally, each entry in a ‘list’ or ‘vector’ type specification
> describes a single element type.  But when an entry contains ‘:inline
> t’, the value it matches is merged directly into the containing
> sequence.  For example, if the entry matches a list with three elements,
> those become three elements of the overall sequence.  This is analogous
> to ‘,@’ in a backquote construct (*note Backquote::).

Thanks to both, the bug should be fixed now.

Bye,
Mosè




bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Thu, 04 Jun 2015 11:24:04 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 12 days ago.

Previous Next


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