emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

vc making coding system nil, latexenc not protecting


From: Karl Berry
Subject: vc making coding system nil, latexenc not protecting
Date: Mon, 24 Sep 2007 08:37:04 -0500

Nate Eldredge (cc'd) reported a bug in emacs-22.1 when checking out
(C-x v v) an LaTeX file from RCS (exact recipe below); namely, getting
(wrong-type-argument arrayp nil)

There seem to be two problems, one in latexenc.el and one somewhere in VC.

The first is just a matter of defensive programming.  Nate tracked down
the error to the call of coding-system-base near the end of
lisp/international/latexenc.el:
                  (coding-system-base   ;Disregard the EOL part of the CS.
                   (with-current-buffer latexenc-main-buffer
                     (or coding-system-for-write buffer-file-coding-system))))

Both coding-system-for-write and buffer-file-coding-system are nil, and
thus coding-system-base throws the error.  It seems it would be
desirable to avoid the call and hence the error in this case -- if I
take out the call, for testing, everything goes through fine.  Or else
to change coding-system-base to be a no-op if its arg is nil.  I don't
know which would be better.


The second question is why both those variables are nil in the first
place.  After visiting the file, but before running CTRL-x v v,
buffer-file-coding-system is undecided-unix.  So somewhere within
vc-next-action it got set to nil.  I could not find where.  (Aside: too
bad edebug doesn't have watchpoints.)  Help?  coding-system-for-write is
always nil in this scenario, so it's not a factor.


Thanks for any help, and to Nate for his sleuthing.

Karl

Here is the recipe to reproduce the error; put the attached
template.tex,v file in the current directory first.

$ co template.tex   # with co -l, the error does not happen
$ emacs-22.1 -Q template.tex
CTRL-x v v
(observe arrayp error)

Attachment: template.tex,v
Description: Binary data


reply via email to

[Prev in Thread] Current Thread [Next in Thread]