Package: debian-el
Version: 29.5-1
Severity: normal
Tags: patch

The deb-view-control-coding function and the entry added to
file-coding-system-alist for it signal an error when trying to view a
manpage that contains the string "control" with WoMan.  The following
recipe reproduces this in both emacs22 and emacs-snapshot (assuming
debhelper is installed for the dh_gencontrol manpage):

$ emacs22 -q
M-x toggle-debug-on-error 
M-x woman RET dh_gencontrol

This gives the following backtrace:

,----
| Debugger entered--Lisp error: (wrong-type-argument stringp nil)
|   string-match("\\.deb-INFO!\\./control\\'" nil)
|   deb-view-control-coding((insert-file-contents 
("/usr/share/man/man1/dh_gencontrol.1" . #<buffer *WoMan 1 dh_gencontrol*>) nil 
nil nil nil))
|   find-operation-coding-system(insert-file-contents 
("/usr/share/man/man1/dh_gencontrol.1" . #<buffer *WoMan 1 dh_gencontrol*>) nil 
nil nil nil)
|   decode-coding-inserted-region(1 4778 "/usr/share/man/man1/dh_gencontrol.1" 
nil nil nil nil)
|   jka-compr-insert-file-contents("/usr/share/man/man1/dh_gencontrol.1.gz" nil 
nil nil nil)
|   apply(jka-compr-insert-file-contents 
("/usr/share/man/man1/dh_gencontrol.1.gz" nil nil nil nil))
|   jka-compr-handler(insert-file-contents 
"/usr/share/man/man1/dh_gencontrol.1.gz" nil nil nil nil)
|   insert-file-contents("/usr/share/man/man1/dh_gencontrol.1.gz" nil)
|   woman-insert-file-contents("/usr/share/man/man1/dh_gencontrol.1.gz" t)
|   woman-really-find-file("/usr/share/man/man1/dh_gencontrol.1.gz" t "*WoMan 1 
dh_gencontrol*")
|   woman-find-file("/usr/share/man/man1/dh_gencontrol.1.gz")
|   woman(nil nil)
|   call-interactively(woman)
|   execute-extended-command(nil)
|   call-interactively(execute-extended-command)
`----

The following patch should fix this issue:

--8<---------------cut here---------------start------------->8---
--- debian-el.el~       2009-02-23 19:52:59.250583535 +0100
+++ debian-el.el        2009-04-10 15:37:18.902785993 +0200
@@ -91,7 +91,8 @@
   (and (eq (car arg-list) 'insert-file-contents) ;; first arg
        (consp (cadr arg-list)) ;; second arg like ("./control" . BUFFER)
        (let ((buffer (cdr (cadr arg-list))))
-         (and (string-match "\\.deb-INFO!\\./control\\'"
+         (and (buffer-file-name buffer)
+             (string-match "\\.deb-INFO!\\./control\\'"
                             (buffer-file-name buffer))
               'utf-8))))
 
--8<---------------cut here---------------end--------------->8---


-- System Information:
Debian Release: squeeze/sid
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: i386 (x86_64)

Kernel: Linux 2.6.28.9-amd64 (SMP w/2 CPU cores)
Locale: LANG=de_DE.UTF-8, LC_CTYPE=de_DE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash

Versions of packages debian-el depends on:
ii  binutils                    2.19.1-1     The GNU assembler, linker and bina
ii  emacs-snapshot [emacsen]    1:20090329-2 The GNU Emacs editor (development 
ii  emacs21 [emacsen]           21.4a+1-5.6  The GNU Emacs editor
ii  emacs22-gtk [emacsen]       22.3+1-1     The GNU Emacs editor (with GTK use
ii  reportbug                   4.0          reports bugs in the Debian distrib

Versions of packages debian-el recommends:
pn  dlocate                      <none>      (no description available)
ii  groff-base                   1.18.1.1-22 GNU troff text-formatting system (
ii  wget                         1.11.4-2    retrieves files from the web

Versions of packages debian-el suggests:
pn  gnus                          <none>     (no description available)

-- no debconf information



-- 
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]

Reply via email to