Subject: bug#15186: closed (Re: bug#15186: 24.3; verify-visited-file-modtime fail with tramp when the optional argument is omitted)

From: [email-masked] (GNU bug Tracking System)
Date: Mon, 26 Aug 2013 07:09:03 +0000

Your bug report

#15186: 24.3; verify-visited-file-modtime fail with tramp when the optional argument is omitted

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

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

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

Subject: Re: bug#15186: 24.3; verify-visited-file-modtime fail with tramp when the optional argument is omitted
From: Michael Albinus <[email-masked]>
To: Rémi Vanicat <[email-masked]>
Cc: [email-masked]
Date: Mon, 26 Aug 2013 09:08:39 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

"Rémi Vanicat" <[email-masked]> writes:

Hi Rémi,

> With the following command:
> (defun foo ()
>   (interactive)
>   (verify-visited-file-modtime))
>  
> Let's open some file with tramp and sudo:
>
> C-xC-f /sudo::/etc/passwd 
>
> then M-x foo will failed with 
> "byte-code: Wrong type argument: stringp, nil"

Thanks for the report!

I've fixed this in the trunk. You could test the following patch (line
numbers to be adapted):

--8<---------------cut here---------------start------------->8---
=== modified file 'lisp/net/tramp-sh.el'
--- lisp/net/tramp-sh.el        2013-08-17 10:20:15 +0000
+++ lisp/net/tramp-sh.el        2013-08-26 06:57:32 +0000
@@ -1234,14 +1234,14 @@
 
 ;; This function makes the same assumption as
 ;; `tramp-sh-handle-set-visited-file-modtime'.
-(defun tramp-sh-handle-verify-visited-file-modtime (buf)
+(defun tramp-sh-handle-verify-visited-file-modtime (&optional buf)
   "Like `verify-visited-file-modtime' for Tramp files.
 At the time `verify-visited-file-modtime' calls this function, we
 already know that the buffer is visiting a file and that
 `visited-file-modtime' does not return 0.  Do not call this
 function directly, unless those two cases are already taken care
 of."
-  (with-current-buffer buf
+  (with-current-buffer (or buf (current-buffer))
     (let ((f (buffer-file-name)))
       ;; There is no file visiting the buffer, or the buffer has no
       ;; recorded last modification time, or there is no established
--8<---------------cut here---------------end--------------->8---

Best regards, Michael.

Subject: 24.3; verify-visited-file-modtime fail with tramp when the optional argument is omitted
From: "Rémi Vanicat" <[email-masked]>
To: [email-masked]
Date: Sun, 25 Aug 2013 12:35:12 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

With the following command:
(defun foo ()
  (interactive)
  (verify-visited-file-modtime))
 
Let's open some file with tramp and sudo:

C-xC-f /sudo::/etc/passwd 

then M-x foo will failed with 
"byte-code: Wrong type argument: stringp, nil"

apparently, tramp doesn't know that when the argument of
verify-visited-file-modtime is nil, it should use the current-buffer.

using:

(defun foo ()
  (interactive)
  (verify-visited-file-modtime (current-buffer)))

will work as expected.

the backtrack (with some tramp function loaded from source) is:
  tramp-sh-handle-verify-visited-file-modtime(nil)
  apply(tramp-sh-handle-verify-visited-file-modtime nil)
  tramp-sh-file-name-handler(verify-visited-file-modtime nil)
  apply(tramp-sh-file-name-handler verify-visited-file-modtime nil)
  (catch (quote suppress) (apply foreign operation args))
  (catch (quote non-essential) (catch (quote suppress) (apply foreign operation args)))
  (setq result (catch (quote non-essential) (catch (quote suppress) (apply foreign operation args))))
  (let ((sf (symbol-function foreign)) result) (if (and (listp sf) (eq (car sf) (quote autoload))) (progn (let ((default-directory (tramp-compat-temporary-file-directory))) (load (cadr sf) (quote noerror) (quote nomessage))))) (setq result (catch (quote non-essential) (catch (quote suppress) (apply foreign operation args)))) (cond ((eq result (quote non-essential)) (tramp-message v 5 "Non-essential received in operation %s" (append (list operation) args)) (tramp-run-real-handler operation args)) ((eq result (quote suppress)) (let (tramp-message-show-message) (tramp-message v 1 "Suppress received in operation %s" (append (list operation) args)) (tramp-cleanup v) (tramp-run-real-handler operation args))) (t result)))
  (lambda nil (let ((sf (symbol-function foreign)) result) (if (and (listp sf) (eq (car sf) (quote autoload))) (progn (let ((default-directory (tramp-compat-temporary-file-directory))) (load (cadr sf) (quote noerror) (quote nomessage))))) (setq result (catch (quote non-essential) (catch (quote suppress) (apply foreign operation args)))) (cond ((eq result (quote non-essential)) (tramp-message v 5 "Non-essential received in operation %s" (append (list operation) args)) (tramp-run-real-handler operation args)) ((eq result (quote suppress)) (let (tramp-message-show-message) (tramp-message v 1 "Suppress received in operation %s" (append (list operation) args)) (tramp-cleanup v) (tramp-run-real-handler operation args))) (t result))))()
  funcall((lambda nil (let ((sf (symbol-function foreign)) result) (if (and (listp sf) (eq (car sf) (quote autoload))) (progn (let ((default-directory (tramp-compat-temporary-file-directory))) (load (cadr sf) (quote noerror) (quote nomessage))))) (setq result (catch (quote non-essential) (catch (quote suppress) (apply foreign operation args)))) (cond ((eq result (quote non-essential)) (tramp-message v 5 "Non-essential received in operation %s" (append (list operation) args)) (tramp-run-real-handler operation args)) ((eq result (quote suppress)) (let (tramp-message-show-message) (tramp-message v 1 "Suppress received in operation %s" (append (list operation) args)) (tramp-cleanup v) (tramp-run-real-handler operation args))) (t result)))))
  (if debug-on-error (funcall body) (condition-case err (funcall body) ((debug quit) (let (tramp-message-show-message) (tramp-message v 1 "Interrupt received in operation %s" (append (list operation) args))) (signal (car err) (cdr err))) (error (cond ((and completion (zerop (length localname)) (memq operation (quote ...))) t) ((and completion (zerop (length localname)) (memq operation (quote ...))) filename) (t (signal (car err) (cdr err)))))))
  (let ((body (function (lambda nil (let ((sf ...) result) (if (and ... ...) (progn ...)) (setq result (catch ... ...)) (cond (... ... ...) (... ...) (t result))))))) (if debug-on-error (funcall body) (condition-case err (funcall body) ((debug quit) (let (tramp-message-show-message) (tramp-message v 1 "Interrupt received in operation %s" (append (list operation) args))) (signal (car err) (cdr err))) (error (cond ((and completion (zerop ...) (memq operation ...)) t) ((and completion (zerop ...) (memq operation ...)) filename) (t (signal (car err) (cdr err))))))))
  (if foreign (let ((body (function (lambda nil (let (... result) (if ... ...) (setq result ...) (cond ... ... ...)))))) (if debug-on-error (funcall body) (condition-case err (funcall body) ((debug quit) (let (tramp-message-show-message) (tramp-message v 1 "Interrupt received in operation %s" (append ... args))) (signal (car err) (cdr err))) (error (cond ((and completion ... ...) t) ((and completion ... ...) filename) (t (signal ... ...))))))) (tramp-run-real-handler operation args))
  (let* ((v (tramp-dissect-file-name filename)) (method (tramp-file-name-method v)) (user (tramp-file-name-user v)) (host (tramp-file-name-host v)) (localname (tramp-file-name-localname v)) (hop (tramp-file-name-hop v))) (if foreign (let ((body (function (lambda nil (let ... ... ... ...))))) (if debug-on-error (funcall body) (condition-case err (funcall body) ((debug quit) (let (tramp-message-show-message) (tramp-message v 1 "Interrupt received in operation %s" ...)) (signal (car err) (cdr err))) (error (cond (... t) (... filename) (t ...)))))) (tramp-run-real-handler operation args)))
  (let* ((filename (tramp-replace-environment-variables (apply (quote tramp-file-name-for-operation) operation args))) (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (let* ((v (tramp-dissect-file-name filename)) (method (tramp-file-name-method v)) (user (tramp-file-name-user v)) (host (tramp-file-name-host v)) (localname (tramp-file-name-localname v)) (hop (tramp-file-name-hop v))) (if foreign (let ((body (function (lambda nil ...)))) (if debug-on-error (funcall body) (condition-case err (funcall body) ((debug quit) (let ... ...) (signal ... ...)) (error (cond ... ... ...))))) (tramp-run-real-handler operation args))))
  (progn (let* ((filename (tramp-replace-environment-variables (apply (quote tramp-file-name-for-operation) operation args))) (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (let* ((v (tramp-dissect-file-name filename)) (method (tramp-file-name-method v)) (user (tramp-file-name-user v)) (host (tramp-file-name-host v)) (localname (tramp-file-name-localname v)) (hop (tramp-file-name-hop v))) (if foreign (let ((body (function ...))) (if debug-on-error (funcall body) (condition-case err (funcall body) (... ... ...) (error ...)))) (tramp-run-real-handler operation args)))))
  (unwind-protect (progn (let* ((filename (tramp-replace-environment-variables (apply (quote tramp-file-name-for-operation) operation args))) (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (let* ((v (tramp-dissect-file-name filename)) (method (tramp-file-name-method v)) (user (tramp-file-name-user v)) (host (tramp-file-name-host v)) (localname (tramp-file-name-localname v)) (hop (tramp-file-name-hop v))) (if foreign (let ((body ...)) (if debug-on-error (funcall body) (condition-case err ... ... ...))) (tramp-run-real-handler operation args))))) (set-match-data save-match-data-internal (quote evaporate)))
  (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let* ((filename (tramp-replace-environment-variables (apply ... operation args))) (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (let* ((v (tramp-dissect-file-name filename)) (method (tramp-file-name-method v)) (user (tramp-file-name-user v)) (host (tramp-file-name-host v)) (localname (tramp-file-name-localname v)) (hop (tramp-file-name-hop v))) (if foreign (let (...) (if debug-on-error ... ...)) (tramp-run-real-handler operation args))))) (set-match-data save-match-data-internal (quote evaporate))))
  (if tramp-mode (let ((save-match-data-internal (match-data))) (unwind-protect (progn (let* ((filename (tramp-replace-environment-variables ...)) (completion (tramp-completion-mode-p)) (foreign (tramp-find-foreign-file-name-handler filename))) (let* ((v ...) (method ...) (user ...) (host ...) (localname ...) (hop ...)) (if foreign (let ... ...) (tramp-run-real-handler operation args))))) (set-match-data save-match-data-internal (quote evaporate)))) (tramp-run-real-handler operation args))
  tramp-file-name-handler(verify-visited-file-modtime nil)
  verify-visited-file-modtime()
  foo()
  call-interactively(foo record nil)
  command-execute(foo record)
  execute-extended-command(nil "foo")
  call-interactively(execute-extended-command nil nil)

In GNU Emacs 24.3.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.2)
 of 2013-06-25 on sochi, modified by Debian
Windowing system distributor `The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux unstable (sid)

Configured using:
 `configure '--build' 'x86_64-linux-gnu' '--build' 'x86_64-linux-gnu'
 '--prefix=/usr' '--sharedstatedir=/var/lib' '--libexecdir=/usr/lib'
 '--localstatedir=/var/lib' '--infodir=/usr/share/info'
 '--mandir=/usr/share/man' '--with-pop=yes'
 '--enable-locallisppath=/etc/emacs24:/etc/emacs:/usr/local/share/emacs/24.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3/site-lisp:/usr/share/emacs/site-lisp'
 '--with-crt-dir=/usr/lib/x86_64-linux-gnu' '--with-x=yes'
 '--with-x-toolkit=gtk3' '--with-toolkit-scroll-bars'
 'build_alias=x86_64-linux-gnu' 'CFLAGS=-g -O2 -fstack-protector
 --param=ssp-buffer-size=4 -Wformat -Werror=format-security -Wall'
 'LDFLAGS=-Wl,-z,relro' 'CPPFLAGS=-D_FORTIFY_SOURCE=2''

Important settings:
  value of $LANG: fr_FR.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  global-magit-wip-save-mode: t
  magit-wip-save-mode: t
  diff-auto-refine-mode: t
  paredit-mode: t
  erc-services-mode: t
  erc-networks-mode: t
  show-paren-mode: t
  recentf-mode: t
  yas/global-mode: t
  yas/minor-mode: t
  shell-dirtrack-mode: t
  eldoc-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
C-x C-f l a m n <tab> <backspace> <backspace> n <tab> 
e l <tab> m a g <tab> <return> <return> C-x g b b <return> 
F F C-x o <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <return> C-s r e v e r t C-w C-s 
C-s <down> <down> <down> <down> <down> <down> <down> 
<down> <down> <down> <up> <up> <up> <up> C-a C-e <M-left> 
C-a C-k C-k <tab> <down> <down> <down> <down> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <right> <right> <right> <right> <right> 
<right> <right> <left> C-_ C-_ C-_ <down> <down> <down> 
<down> <down> C-e <left> <left> SPC ( c u r r <M-tab> 
b u <M-tab> C-x C-s n <C-left> <C-left> <C-left> <C-left> 
<C-left> <C-left> C-SPC <C-right> <C-right> <C-right> 
<C-right> M-w <down> <up> <left> C-h f <return> <menu> 
r e p SPC o SPC r SPC e m <tab> <return>

Recent messages:
Loading vc-git...done
Mark saved where search started
Undo! [3 times]
Saving file /home/moi/lang/elisp/magit/magit.el...
Add 2013 to copyright? (y or n)  n
Wrote /home/moi/lang/elisp/magit/magit.el
Wrote /home/moi/lang/elisp/magit/magit.el (wip)
Mark set
Type "q" in help window to restore its previous buffer.
Making completion list... [2 times]

Load-path shadows:
/home/moi/.emacs.d/moi/custom hides /home/moi/.emacs.d/custom
/home/moi/.emacs.d/src/magit/magit-blame hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-blame
/home/moi/.emacs.d/src/magit/magit-wip hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-wip
/home/moi/.emacs.d/src/magit/magit-topgit hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-topgit
/home/moi/.emacs.d/src/magit/magit-key-mode hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-key-mode
/home/moi/.emacs.d/src/magit/magit hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit
/home/moi/.emacs.d/src/magit/magit-stgit hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-stgit
/home/moi/.emacs.d/src/magit/magit-bisect hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-bisect
/home/moi/.emacs.d/src/magit/magit-svn hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-svn
/home/moi/.emacs.d/src/magit/magit-pkg hides /home/moi/.emacs.d/elpa/magit-1.2.0/magit-pkg
/home/moi/.emacs.d/elpa/yasnippet-0.8.0/yasnippet hides /usr/share/emacs/site-lisp/yasnippet/yasnippet
/home/moi/.emacs.d/src/tiny-tools/lisp/other/folding hides /usr/share/emacs24/site-lisp/emacs-goodies-el/folding
/home/moi/.emacs.d/src/magit/magit-bisect hides /usr/share/emacs/24.3/site-lisp/magit/magit-bisect
/home/moi/.emacs.d/src/magit/magit-wip hides /usr/share/emacs/24.3/site-lisp/magit/magit-wip
/home/moi/.emacs.d/src/magit/magit-key-mode hides /usr/share/emacs/24.3/site-lisp/magit/magit-key-mode
/home/moi/.emacs.d/src/magit/magit-blame hides /usr/share/emacs/24.3/site-lisp/magit/magit-blame
/home/moi/.emacs.d/src/magit/magit-svn hides /usr/share/emacs/24.3/site-lisp/magit/magit-svn
/home/moi/.emacs.d/src/magit/magit-stgit hides /usr/share/emacs/24.3/site-lisp/magit/magit-stgit
/home/moi/.emacs.d/elpa/magit-1.2.0/rebase-mode hides /usr/share/emacs/24.3/site-lisp/magit/rebase-mode
/home/moi/.emacs.d/src/magit/magit hides /usr/share/emacs/24.3/site-lisp/magit/magit
/home/moi/.emacs.d/src/magit/magit-topgit hides /usr/share/emacs/24.3/site-lisp/magit/magit-topgit
/usr/share/emacs24/site-lisp/coq/coq-db hides /usr/share/emacs/24.3/site-lisp/proofgeneral/coq/coq-db
/usr/share/emacs24/site-lisp/coq/coq hides /usr/share/emacs/24.3/site-lisp/proofgeneral/coq/coq
/usr/share/emacs24/site-lisp/coq/coq-syntax hides /usr/share/emacs/24.3/site-lisp/proofgeneral/coq/coq-syntax
/usr/share/emacs/24.3/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs24/site-lisp/quilt-el/quilt hides /usr/share/emacs/site-lisp/quilt
/usr/share/emacs24/site-lisp/flim/md4 hides /usr/share/emacs/24.3/lisp/md4
/usr/share/emacs24/site-lisp/flim/hex-util hides /usr/share/emacs/24.3/lisp/hex-util
/home/moi/.emacs.d/moi/custom hides /usr/share/emacs/24.3/lisp/custom
/usr/share/emacs24/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/24.3/lisp/textmodes/flyspell
/usr/share/emacs24/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/24.3/lisp/textmodes/ispell
/home/moi/.emacs.d/elpa/ruby-mode-1.1/ruby-mode hides /usr/share/emacs/24.3/lisp/progmodes/ruby-mode
/home/moi/lang/elisp/org-mode/lisp/ob-lilypond hides /usr/share/emacs/24.3/lisp/org/ob-lilypond
/home/moi/lang/elisp/org-mode/lisp/org-colview hides /usr/share/emacs/24.3/lisp/org/org-colview
/home/moi/lang/elisp/org-mode/lisp/org-ctags hides /usr/share/emacs/24.3/lisp/org/org-ctags
/home/moi/lang/elisp/org-mode/lisp/ob-tangle hides /usr/share/emacs/24.3/lisp/org/ob-tangle
/home/moi/lang/elisp/org-mode/lisp/ob-table hides /usr/share/emacs/24.3/lisp/org/ob-table
/home/moi/lang/elisp/org-mode/lisp/org-indent hides /usr/share/emacs/24.3/lisp/org/org-indent
/home/moi/lang/elisp/org-mode/lisp/ob-C hides /usr/share/emacs/24.3/lisp/org/ob-C
/home/moi/lang/elisp/org-mode/lisp/ob-ruby hides /usr/share/emacs/24.3/lisp/org/ob-ruby
/home/moi/lang/elisp/org-mode/lisp/org-w3m hides /usr/share/emacs/24.3/lisp/org/org-w3m
/home/moi/lang/elisp/org-mode/lisp/ob-maxima hides /usr/share/emacs/24.3/lisp/org/ob-maxima
/home/moi/lang/elisp/org-mode/lisp/org-list hides /usr/share/emacs/24.3/lisp/org/org-list
/home/moi/lang/elisp/org-mode/lisp/ob-awk hides /usr/share/emacs/24.3/lisp/org/ob-awk
/home/moi/lang/elisp/org-mode/lisp/ob-keys hides /usr/share/emacs/24.3/lisp/org/ob-keys
/home/moi/lang/elisp/org-mode/lisp/org-id hides /usr/share/emacs/24.3/lisp/org/org-id
/home/moi/lang/elisp/org-mode/lisp/ob-io hides /usr/share/emacs/24.3/lisp/org/ob-io
/home/moi/lang/elisp/org-mode/lisp/ob-clojure hides /usr/share/emacs/24.3/lisp/org/ob-clojure
/home/moi/lang/elisp/org-mode/lisp/org-bibtex hides /usr/share/emacs/24.3/lisp/org/org-bibtex
/home/moi/lang/elisp/org-mode/lisp/ob-picolisp hides /usr/share/emacs/24.3/lisp/org/ob-picolisp
/home/moi/lang/elisp/org-mode/lisp/ob-exp hides /usr/share/emacs/24.3/lisp/org/ob-exp
/home/moi/lang/elisp/org-mode/lisp/org-timer hides /usr/share/emacs/24.3/lisp/org/org-timer
/home/moi/lang/elisp/org-mode/lisp/ob-mscgen hides /usr/share/emacs/24.3/lisp/org/ob-mscgen
/home/moi/lang/elisp/org-mode/lisp/org-mobile hides /usr/share/emacs/24.3/lisp/org/org-mobile
/home/moi/lang/elisp/org-mode/lisp/org-element hides /usr/share/emacs/24.3/lisp/org/org-element
/home/moi/lang/elisp/org-mode/lisp/org-agenda hides /usr/share/emacs/24.3/lisp/org/org-agenda
/home/moi/lang/elisp/org-mode/lisp/ob-sqlite hides /usr/share/emacs/24.3/lisp/org/ob-sqlite
/home/moi/lang/elisp/org-mode/lisp/ob-shen hides /usr/share/emacs/24.3/lisp/org/ob-shen
/home/moi/lang/elisp/org-mode/lisp/org-docview hides /usr/share/emacs/24.3/lisp/org/org-docview
/home/moi/lang/elisp/org-mode/lisp/ob-scheme hides /usr/share/emacs/24.3/lisp/org/ob-scheme
/home/moi/lang/elisp/org-mode/lisp/org-macs hides /usr/share/emacs/24.3/lisp/org/org-macs
/home/moi/lang/elisp/org-mode/lisp/ob-fortran hides /usr/share/emacs/24.3/lisp/org/ob-fortran
/home/moi/lang/elisp/org-mode/lisp/org-inlinetask hides /usr/share/emacs/24.3/lisp/org/org-inlinetask
/home/moi/lang/elisp/org-mode/lisp/ob-js hides /usr/share/emacs/24.3/lisp/org/ob-js
/home/moi/lang/elisp/org-mode/lisp/ob-perl hides /usr/share/emacs/24.3/lisp/org/ob-perl
/home/moi/lang/elisp/org-mode/lisp/ob-plantuml hides /usr/share/emacs/24.3/lisp/org/ob-plantuml
/home/moi/lang/elisp/org-mode/lisp/org-archive hides /usr/share/emacs/24.3/lisp/org/org-archive
/home/moi/lang/elisp/org-mode/lisp/ob-dot hides /usr/share/emacs/24.3/lisp/org/ob-dot
/home/moi/lang/elisp/org-mode/lisp/org-habit hides /usr/share/emacs/24.3/lisp/org/org-habit
/home/moi/lang/elisp/org-mode/lisp/ob-R hides /usr/share/emacs/24.3/lisp/org/ob-R
/home/moi/lang/elisp/org-mode/lisp/org-info hides /usr/share/emacs/24.3/lisp/org/org-info
/home/moi/lang/elisp/org-mode/lisp/org-feed hides /usr/share/emacs/24.3/lisp/org/org-feed
/home/moi/lang/elisp/org-mode/lisp/org-pcomplete hides /usr/share/emacs/24.3/lisp/org/org-pcomplete
/home/moi/lang/elisp/org-mode/lisp/org-faces hides /usr/share/emacs/24.3/lisp/org/org-faces
/home/moi/lang/elisp/org-mode/lisp/ob-gnuplot hides /usr/share/emacs/24.3/lisp/org/ob-gnuplot
/home/moi/lang/elisp/org-mode/lisp/org-table hides /usr/share/emacs/24.3/lisp/org/org-table
/home/moi/lang/elisp/org-mode/lisp/org-protocol hides /usr/share/emacs/24.3/lisp/org/org-protocol
/home/moi/lang/elisp/org-mode/lisp/ob-sql hides /usr/share/emacs/24.3/lisp/org/ob-sql
/home/moi/lang/elisp/org-mode/lisp/ob-emacs-lisp hides /usr/share/emacs/24.3/lisp/org/ob-emacs-lisp
/home/moi/lang/elisp/org-mode/lisp/ob-lisp hides /usr/share/emacs/24.3/lisp/org/ob-lisp
/home/moi/lang/elisp/org-mode/lisp/ob-css hides /usr/share/emacs/24.3/lisp/org/ob-css
/home/moi/lang/elisp/org-mode/lisp/org-crypt hides /usr/share/emacs/24.3/lisp/org/org-crypt
/home/moi/lang/elisp/org-mode/lisp/ob-ditaa hides /usr/share/emacs/24.3/lisp/org/ob-ditaa
/home/moi/lang/elisp/org-mode/lisp/ob-ledger hides /usr/share/emacs/24.3/lisp/org/ob-ledger
/home/moi/lang/elisp/org-mode/lisp/org-eshell hides /usr/share/emacs/24.3/lisp/org/org-eshell
/home/moi/lang/elisp/org-mode/lisp/org-datetree hides /usr/share/emacs/24.3/lisp/org/org-datetree
/home/moi/lang/elisp/org-mode/lisp/org-clock hides /usr/share/emacs/24.3/lisp/org/org-clock
/home/moi/lang/elisp/org-mode/lisp/ob-asymptote hides /usr/share/emacs/24.3/lisp/org/ob-asymptote
/home/moi/lang/elisp/org-mode/lisp/org-mhe hides /usr/share/emacs/24.3/lisp/org/org-mhe
/home/moi/lang/elisp/org-mode/lisp/ob-calc hides /usr/share/emacs/24.3/lisp/org/ob-calc
/home/moi/lang/elisp/org-mode/lisp/org-src hides /usr/share/emacs/24.3/lisp/org/org-src
/home/moi/lang/elisp/org-mode/lisp/org hides /usr/share/emacs/24.3/lisp/org/org
/home/moi/lang/elisp/org-mode/lisp/org-install hides /usr/share/emacs/24.3/lisp/org/org-install
/home/moi/lang/elisp/org-mode/lisp/ob-comint hides /usr/share/emacs/24.3/lisp/org/ob-comint
/home/moi/lang/elisp/org-mode/lisp/ob-octave hides /usr/share/emacs/24.3/lisp/org/ob-octave
/home/moi/lang/elisp/org-mode/lisp/ob-python hides /usr/share/emacs/24.3/lisp/org/ob-python
/home/moi/lang/elisp/org-mode/lisp/ob-ref hides /usr/share/emacs/24.3/lisp/org/ob-ref
/home/moi/lang/elisp/org-mode/lisp/ob-screen hides /usr/share/emacs/24.3/lisp/org/ob-screen
/home/moi/lang/elisp/org-mode/lisp/org-gnus hides /usr/share/emacs/24.3/lisp/org/org-gnus
/home/moi/lang/elisp/org-mode/lisp/ob-java hides /usr/share/emacs/24.3/lisp/org/ob-java
/home/moi/lang/elisp/org-mode/lisp/ob-sh hides /usr/share/emacs/24.3/lisp/org/ob-sh
/home/moi/lang/elisp/org-mode/lisp/ob-eval hides /usr/share/emacs/24.3/lisp/org/ob-eval
/home/moi/lang/elisp/org-mode/lisp/ob-latex hides /usr/share/emacs/24.3/lisp/org/ob-latex
/home/moi/lang/elisp/org-mode/lisp/ob hides /usr/share/emacs/24.3/lisp/org/ob
/home/moi/lang/elisp/org-mode/lisp/org-irc hides /usr/share/emacs/24.3/lisp/org/org-irc
/home/moi/lang/elisp/org-mode/lisp/ob-haskell hides /usr/share/emacs/24.3/lisp/org/ob-haskell
/home/moi/lang/elisp/org-mode/lisp/org-rmail hides /usr/share/emacs/24.3/lisp/org/org-rmail
/home/moi/lang/elisp/org-mode/lisp/org-footnote hides /usr/share/emacs/24.3/lisp/org/org-footnote
/home/moi/lang/elisp/org-mode/lisp/ob-scala hides /usr/share/emacs/24.3/lisp/org/ob-scala
/home/moi/lang/elisp/org-mode/lisp/ob-lob hides /usr/share/emacs/24.3/lisp/org/ob-lob
/home/moi/lang/elisp/org-mode/lisp/org-loaddefs hides /usr/share/emacs/24.3/lisp/org/org-loaddefs
/home/moi/lang/elisp/org-mode/lisp/ob-matlab hides /usr/share/emacs/24.3/lisp/org/ob-matlab
/home/moi/lang/elisp/org-mode/lisp/org-capture hides /usr/share/emacs/24.3/lisp/org/org-capture
/home/moi/lang/elisp/org-mode/lisp/org-plot hides /usr/share/emacs/24.3/lisp/org/org-plot
/home/moi/lang/elisp/org-mode/lisp/org-version hides /usr/share/emacs/24.3/lisp/org/org-version
/home/moi/lang/elisp/org-mode/lisp/org-entities hides /usr/share/emacs/24.3/lisp/org/org-entities
/home/moi/lang/elisp/org-mode/lisp/org-attach hides /usr/share/emacs/24.3/lisp/org/org-attach
/home/moi/lang/elisp/org-mode/lisp/org-bbdb hides /usr/share/emacs/24.3/lisp/org/org-bbdb
/home/moi/lang/elisp/org-mode/lisp/org-compat hides /usr/share/emacs/24.3/lisp/org/org-compat
/home/moi/lang/elisp/org-mode/lisp/ob-ocaml hides /usr/share/emacs/24.3/lisp/org/ob-ocaml
/home/moi/lang/elisp/org-mode/lisp/org-mouse hides /usr/share/emacs/24.3/lisp/org/org-mouse
/home/moi/lang/elisp/org-mode/lisp/ob-org hides /usr/share/emacs/24.3/lisp/org/ob-org
/home/moi/lang/elisp/org-mode/lisp/ob-sass hides /usr/share/emacs/24.3/lisp/org/ob-sass
/usr/share/emacs24/site-lisp/flim/sasl hides /usr/share/emacs/24.3/lisp/net/sasl
/usr/share/emacs24/site-lisp/flim/ntlm hides /usr/share/emacs/24.3/lisp/net/ntlm
/usr/share/emacs24/site-lisp/flim/sasl-cram hides /usr/share/emacs/24.3/lisp/net/sasl-cram
/usr/share/emacs24/site-lisp/flim/sasl-digest hides /usr/share/emacs/24.3/lisp/net/sasl-digest
/usr/share/emacs24/site-lisp/flim/hmac-def hides /usr/share/emacs/24.3/lisp/net/hmac-def
/usr/share/emacs24/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/24.3/lisp/net/sasl-ntlm
/usr/share/emacs24/site-lisp/flim/hmac-md5 hides /usr/share/emacs/24.3/lisp/net/hmac-md5
/home/moi/.emacs.d/src/magit/.dir-locals hides /usr/share/emacs/24.3/lisp/gnus/.dir-locals
/home/moi/.emacs.d/elpa/cl-lib-0.2/cl-lib hides /usr/share/emacs/24.3/lisp/emacs-lisp/cl-lib
/usr/share/emacs24/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs24/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs24/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs24/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs24/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs24/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs24/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs24/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs24/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs24/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs24/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs24/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs24/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs
/usr/share/emacs24/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs24/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs24/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs24/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs24/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs24/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs24/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs24/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite

Features:
(shadow sort flyspell guess-lang mail-extr emacsbug sendmail time-stamp
copyright misearch multi-isearch vc-git rinari jump inflections findr
ruby-compilation which-func imenu inf-ruby ruby-electric ruby-mode
help-mode magit-wip magit-cherry magit-bisect magit-key-mode magit view
iswitchb esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg
esh-groups eshell esh-module esh-mode esh-util ediff-merg ediff-diff
ediff-wind ediff-help ediff-util ediff-mult ediff-init ediff grep epa
epg diff-mode git-commit-mode magit-compat git-annex dired-aux dired
paredit org-config org-contacts ob-sqlite ob-sh ob-ruby ob-python
ob-octave ob-latex ob-gnuplot ob-dot ob-ditaa ob-R ical-for-org
ob-ledger rx org-caldav icalendar diary-lib diary-loaddefs org-id
ox-latex ox-icalendar ox-html table ox-ascii ox-publish ox org-element
url-http tls url url-proxy url-privacy url-expand url-methods
url-history url-auth url-cookie url-domsuf url-gw url-dav url-handlers
url-util xml org-gnus spam spam-stat gnus-uu yenc gnus-msg gnus-art
mm-uu mml2015 epg-config mm-view mml-smime smime dig mailcap
erc-services erc-networks erc-goodies erc erc-backend erc-compat pp
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match rng-dt
rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap nxml-util
nxml-glyph nxml-enc xmltok ispell jka-compr iso-transl ethan-wspace
show-wspace server hippie-exp paren tramp-cache tramp-sh tramp
tramp-compat tramp-loaddefs windmove recentf tree-widget uniquify ffap
url-parse auth-source eieio password-cache url-vars saveplace
android-mode-autoloads el-autoyas-autoloads magit-autoloads info
mocker-autoloads el-x-autoloads cl-lib-autoloads paredit-autoloads
r-autoyas-autoloads rinari-autoloads jump-autoloads
inflections-autoloads findr-autoloads ruby-compilation-autoloads
inf-ruby-autoloads ruby-electric-autoloads ruby-mode-autoloads
ttrss-autoloads finder-inf vala-mode-autoloads yas-jit-autoloads
yasnippet-autoloads yasnippet-bundle-autoloads yasnippet-bundle
dropdown-list package org byte-opt warnings bytecomp byte-compile cconv
org-macro org-footnote org-pcomplete org-list org-faces org-entities
noutline outline org-version ob-emacs-lisp ob ob-tangle org-src ob-ref
ob-lob ob-table ob-keys ob-exp ob-comint ob-core ob-eval org-compat
org-macs org-loaddefs find-func cal-menu calendar cal-loaddefs gnus-sum
nnoo gnus-group gnus-undo nnmail mail-source gnus-start gnus-spec
gnus-int gnus-range message format-spec rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums
mailabbrev gmm-utils mailheader gnus-win gnus gnus-ems nnheader
gnus-util mail-utils mm-util mail-prsvr wid-edit debian-el
debian-el-loaddefs yasnippet derived edmacro kmacro cl-macs gv assoc
w3m-load slime-autoloads proof-site proof-autoloads pg-vars mmm-auto
mmm-vars mmm-compat cl 50magit ido ess-toolbar ess-mouse mouseme
thingatpt browse-url ess-menu ess-swv ess-noweb ess-noweb-font-lock-mode
ess-bugs-l essd-els ess-sas-d ess-sas-l ess-sas-a shell pcomplete
ess-arc-d ess-vst-d ess-xls-d ess-lsp-l ess-sta-d ess-sta-l cc-vars
cc-defs make-regexp ess-sp6-d ess-sp5-d ess-sp3-d ess-julia ess-r-d
compile ess-tracebug ess-roxy advice cl-lib advice-preload hideshow
ess-help ess-developer ess-r-args eldoc help-fns ess-s-l ess ess-inf
comint ansi-color ring ess-mode ess-noweb-mode ess-utils ess-custom
executable easymenu ess-compat ess-site jabber-autoloads
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
dpkg-dev-el dpkg-dev-el-loaddefs devhelp preview-latex tex-site
auto-loads time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel
x-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list
newcomment lisp-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
dbusbind dynamic-setting system-font-setting font-render-setting
move-toolbar gtk x-toolkit x multi-tty emacs)

-- 
Rémi Vanicat