Subject: bug#10429: 23.3; Many "user variables" in man.el aren't defined accordingly

From: Samuel Bronson <[email-masked]>
Date: Tue, 03 Jan 2012 17:56:32 -0500

I was looking to customize the flags that the Emacs `man' command passes
to the system's man(1) command to include --nh (so that automatic
hyphenation won't interfere with my searching), so when I spotted
`Man-switches' in the doc-string for Man-mode, I thought "that looks
just like what I need" and immediately went to customize it.

Imagine my surprise when, instead of a normal customize widget, I saw
this one:

,----
| Man-switches: [Hide Value] ""
|    [State]: NO CUSTOMIZATION DATA; not intended to be customized.
|    Switches passed to the man command, as a single string. [Hide Rest]   
|    
|    If you want to be able to see all the manpages for a subject you type,
|    make -a one of the switches, if your `man' program supports it.
`----

(I'm not actually sure how I managed to open the buffer, since I can't
get customize-variable to accept that variable name anymore, but that's
not what this bug report is about.)

So I looked at the source, and I found the following:

,----[ portion of man.el ]
| (defcustom Man-header-file-path
|   '("/usr/include" "/usr/local/include")
|   "C Header file search path used in Man."
|   :type '(repeat string)
|   :group 'man)
| 
| (defvar manual-program "man"
|   "The name of the program that produces man pages.")
| 
| (defvar Man-untabify-command "pr"
|   "Command used for untabifying.")
| 
| (defvar Man-untabify-command-args (list "-t" "-e")
|   "List of arguments to be passed to `Man-untabify-command' (which see).")
| 
| (defvar Man-sed-command "sed"
|   "Command used for processing sed scripts.")
| 
| (defvar Man-awk-command "awk"
|   "Command used for processing awk scripts.")
| 
| (defvar Man-mode-hook nil
|   "Hook run when Man mode is enabled.")
| 
| (defvar Man-cooked-hook nil
|   "Hook run after removing backspaces but before `Man-mode' processing.")
| 
| (defvar Man-name-regexp "[-a-zA-Z0-9_+][-a-zA-Z0-9_.:+]*"
|   "Regular expression describing the name of a manpage (without section).")
| 
| (defvar Man-section-regexp "[0-9][a-zA-Z0-9+]*\\|[LNln]"
|   "Regular expression describing a manpage section within parentheses.")
| 
| (defvar Man-page-header-regexp
|   (if (and (string-match "-solaris2\\." system-configuration)
| 	   (not (string-match "-solaris2\\.[123435]$" system-configuration)))
|       (concat "^[-A-Za-z0-9_].*[ \t]\\(" Man-name-regexp
| 	      "(\\(" Man-section-regexp "\\))\\)$")
|     (concat "^[ \t]*\\(" Man-name-regexp
| 	    "(\\(" Man-section-regexp "\\))\\).*\\1"))
|   "Regular expression describing the heading of a page.")
| 
| (defvar Man-heading-regexp "^\\([A-Z][A-Z0-9 /-]+\\)$"
|   "Regular expression describing a manpage heading entry.")
| 
| (defvar Man-see-also-regexp "SEE ALSO"
|   "Regular expression for SEE ALSO heading (or your equivalent).
| This regexp should not start with a `^' character.")
| 
| ;; This used to have leading space [ \t]*, but was removed because it
| ;; causes false page splits on an occasional NAME with leading space
| ;; inside a manpage.  And `Man-heading-regexp' doesn't have [ \t]* anyway.
| (defvar Man-first-heading-regexp "^NAME$\\|^[ \t]*No manual entry fo.*$"
|   "Regular expression describing first heading on a manpage.
| This regular expression should start with a `^' character.")
| 
| (defvar Man-reference-regexp
|   (concat "\\(" Man-name-regexp "\\)[ \t]*(\\(" Man-section-regexp "\\))")
|   "Regular expression describing a reference to another manpage.")
| 
| (defvar Man-apropos-regexp
|   (concat "\\\[\\(" Man-name-regexp "\\)\\\][ \t]*(\\(" Man-section-regexp "\\))")
|   "Regular expression describing a reference to manpages in \"man -k output\".")
| 
| (defvar Man-synopsis-regexp "SYNOPSIS"
|   "Regular expression for SYNOPSIS heading (or your equivalent).
| This regexp should not start with a `^' character.")
| 
| (defvar Man-files-regexp "FILES\\>"
|   ;; Add \> so as not to match mount(8)'s FILESYSTEM INDEPENDENT MOUNT OPTIONS.
|   "Regular expression for FILES heading (or your equivalent).
| This regexp should not start with a `^' character.")
| 
| (defvar Man-include-regexp "#[ \t]*include[ \t]*"
|   "Regular expression describing the #include (directive of cpp).")
| 
| (defvar Man-file-name-regexp "[^<>\", \t\n]+"
|   "Regular expression describing <> in #include line (directive of cpp).")
| 
| (defvar Man-normal-file-prefix-regexp "[/~$]"
|   "Regular expression describing a file path appeared in FILES section.")
| 
| (defvar Man-header-regexp
|   (concat "\\(" Man-include-regexp "\\)"
|           "[<\"]"
|           "\\(" Man-file-name-regexp "\\)"
|           "[>\"]")
|   "Regular expression describing references to header files.")
| 
| (defvar Man-normal-file-regexp
|   (concat Man-normal-file-prefix-regexp Man-file-name-regexp)
|   "Regular expression describing references to normal files.")
| 
| ;; This includes the section as an optional part to catch hyphenated
| ;; references to manpages.
| (defvar Man-hyphenated-reference-regexp
|   (concat "\\(" Man-name-regexp "\\)\\((\\(" Man-section-regexp "\\))\\)?")
|   "Regular expression describing a reference in the SEE ALSO section.")
| 
| (defvar Man-switches ""
|   "Switches passed to the man command, as a single string.
| 
| If you want to be able to see all the manpages for a subject you type,
| make -a one of the switches, if your `man' program supports it.")
| 
| (defvar Man-specified-section-option
|   (if (string-match "-solaris[0-9.]*$" system-configuration)
|       "-s"
|     "")
|   "Option that indicates a specified a manual section name.")
| 
| (defvar Man-support-local-filenames 'auto-detect
|   "Internal cache for the value of the function `Man-support-local-filenames'.
| `auto-detect' means the value is not yet determined.
| Otherwise, the value is whatever the function
| `Man-support-local-filenames' should return.")
| 
| ;; ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
| ;; end user variables
`----

The way I'm reading this, that's fully 26 (supposed) user variables that
are neither defined with `defcustom' nor even given doc-strings
beginning with "*", and which therefore require the user to write elisp
code in order to use them. (And I think there are a couple more further
up, too.)

Perhaps it would not provide much real benefit to expose all of the
regular expressions through customize (especially with the way many of
the bigger ones are built up from smaller pieces). Everything else,
however, would probably work quite nicely.

(Though I suppose there's no point in quibbling about those when we
already have stuff like `Man-filter-list' in customize, is there? :-)

-- junk from emacs; probably only the version is actually useful?

In GNU Emacs 23.3.1 (i486-pc-linux-gnu, X toolkit, Xaw3d scroll bars)
 of 2011-10-25 on murphy, modified by Debian
configured using `configure  '--build' 'i486-linux-gnu' '--build' 'i486-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/emacs23:/etc/emacs:/usr/local/share/emacs/23.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/23.3/site-lisp:/usr/share/emacs/site-lisp' '--with-crt-dir=/usr/lib/i386-linux-gnu' '--with-x=yes' '--with-x-toolkit=lucid' '--with-toolkit-scroll-bars' '--without-gconf' 'build_alias=i486-linux-gnu' 'CFLAGS=-DDEBIAN -g -O2''

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: en_US.UTF-8
  value of $XMODIFIERS: nil
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Emacs-Lisp

Minor modes in effect:
  shell-dirtrack-mode: t
  diff-auto-refine-mode: t
  dir-locals-mode: t
  xterm-mouse-mode: t
  show-paren-mode: t
  recentf-mode: t
  yas/global-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC 
O B ESC O B ESC O B ESC O B ESC [ 4 ~ ESC [ 6 ~ ESC 
[ 6 ~ ESC [ 6 ~ ESC [ 6 ~ ESC [ 6 ~ ESC [ 6 ~ ESC O 
B ESC O B ESC O B ESC O B ESC O B ESC O B ESC O B ESC 
O B ESC [ 4 ~ ESC O A ESC O A ESC O A ESC O A ESC [ 
5 ~ ESC [ 5 ~ ESC [ 5 ~ ESC [ 5 ~ ESC [ 5 ~ ESC [ 5 
~ ESC O A ESC O A ESC O A ESC O A ESC O A ESC O A ESC 
O A ESC O A ESC O A ESC O A ESC [ 4 ~ ESC O B ESC O 
B ESC O B ESC O B ESC O B ESC O A ESC O A ESC O A ESC 
O A ESC O A ESC O A ESC O A ESC O B ESC O B ESC O B 
ESC O B ESC O B ESC O B ESC O B ESC O B ESC [ 4 ~ ESC 
O A ESC [ 4 ~ ESC O B ESC [ 4 ~ ESC O A ESC O A ESC 
O A ESC O A ESC O A ESC O A ESC O A ESC O A ESC O A 
ESC O B ESC O B ESC O A ESC O A ESC O A ESC O B ESC 
O B ESC O B ESC x c DEL r e p o r TAB e m TAB TAB 
RET

Recent messages:
bash man page formatted
uncompressing man.el.gz...done
Note: file is write protected
Mark saved where search started [4 times]
Quit
Creating customization items...
Creating customization items ...done
Resetting customization items...done
Creating customization setup...done
Type C-x 4 C-o RET to restore the other window.

Load-path shadows:
/home/naesten/system/emacs/dist/elpa/w3-4.0.46/ssl hides /usr/share/emacs23/site-lisp/wl/ssl
/usr/share/emacs/site-lisp/maxima/smart-complete hides /usr/share/emacs23/site-lisp/maxima/smart-complete
/usr/share/emacs/site-lisp/maxima/maxima-font-lock hides /usr/share/emacs23/site-lisp/maxima/maxima-font-lock
/usr/share/emacs/site-lisp/maxima/sshell hides /usr/share/emacs23/site-lisp/maxima/sshell
/usr/share/emacs/site-lisp/maxima/maxima hides /usr/share/emacs23/site-lisp/maxima/maxima
/usr/share/emacs/site-lisp/maxima/emaxima hides /usr/share/emacs23/site-lisp/maxima/emaxima
/usr/share/emacs/site-lisp/maxima/bookmode hides /usr/share/emacs23/site-lisp/maxima/bookmode
/usr/share/emacs23/site-lisp/css-mode/css-mode hides /usr/share/emacs/site-lisp/css-mode/css-mode
/usr/share/emacs/23.3/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs/23.3/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs/23.3/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs/23.3/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs/23.3/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs/23.3/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs/23.3/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs/23.3/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs/23.3/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs/23.3/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs/23.3/site-lisp/auctex/tex-fptex hides /usr/share/emacs/site-lisp/auctex/tex-fptex
/usr/share/emacs/23.3/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs/23.3/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs/23.3/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp
/usr/share/emacs/23.3/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs/23.3/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs/23.3/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs/23.3/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs/23.3/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs23/site-lisp/debian-el/preseed hides /usr/share/emacs/site-lisp/debian-el/preseed
/usr/share/emacs23/site-lisp/debian-el/gnus-BTS hides /usr/share/emacs/site-lisp/debian-el/gnus-BTS
/usr/share/emacs23/site-lisp/debian-el/debian-el hides /usr/share/emacs/site-lisp/debian-el/debian-el
/usr/share/emacs23/site-lisp/debian-el/debian-bug hides /usr/share/emacs/site-lisp/debian-el/debian-bug
/usr/share/emacs23/site-lisp/debian-el/deb-view hides /usr/share/emacs/site-lisp/debian-el/deb-view
/usr/share/emacs23/site-lisp/debian-el/apt-utils hides /usr/share/emacs/site-lisp/debian-el/apt-utils
/usr/share/emacs23/site-lisp/debian-el/apt-sources hides /usr/share/emacs/site-lisp/debian-el/apt-sources
/usr/share/emacs23/site-lisp/debian-el/debian-el-loaddefs hides /usr/share/emacs/site-lisp/debian-el/debian-el-loaddefs
/usr/share/emacs23/site-lisp/html-helper-mode/hhm-config hides /usr/share/emacs/site-lisp/html-helper-mode/hhm-config
/usr/share/emacs23/site-lisp/html-helper-mode/visual-basic-mode hides /usr/share/emacs/site-lisp/html-helper-mode/visual-basic-mode
/usr/share/emacs23/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/site-lisp/html-helper-mode/tempo
/usr/share/emacs23/site-lisp/html-helper-mode/html-helper-mode hides /usr/share/emacs/site-lisp/html-helper-mode/html-helper-mode
/usr/share/emacs23/site-lisp/mailcrypt/mc-toplev hides /usr/share/emacs/site-lisp/mailcrypt/mc-toplev
/usr/share/emacs23/site-lisp/mailcrypt/mc-remail hides /usr/share/emacs/site-lisp/mailcrypt/mc-remail
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp6 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp6
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp5 hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp5
/usr/share/emacs23/site-lisp/mailcrypt/mc-pgp hides /usr/share/emacs/site-lisp/mailcrypt/mc-pgp
/usr/share/emacs23/site-lisp/mailcrypt/mc-gpg hides /usr/share/emacs/site-lisp/mailcrypt/mc-gpg
/usr/share/emacs23/site-lisp/mailcrypt/mailcrypt hides /usr/share/emacs/site-lisp/mailcrypt/mailcrypt
/usr/share/emacs23/site-lisp/mailcrypt/expect hides /usr/share/emacs/site-lisp/mailcrypt/expect
/usr/share/emacs23/site-lisp/mailcrypt/mc-setversion hides /usr/share/emacs/site-lisp/mailcrypt/mc-setversion
/usr/share/emacs23/site-lisp/psgml/psgml-html hides /usr/share/emacs/site-lisp/psgml/psgml-html
/usr/share/emacs23/site-lisp/psgml/psgml-init hides /usr/share/emacs/site-lisp/psgml/psgml-init
/usr/share/emacs23/site-lisp/psgml/psgml hides /usr/share/emacs/site-lisp/psgml/psgml
/usr/share/emacs23/site-lisp/psgml/psgml-sysdep hides /usr/share/emacs/site-lisp/psgml/psgml-sysdep
/usr/share/emacs23/site-lisp/psgml/psgml-parse hides /usr/share/emacs/site-lisp/psgml/psgml-parse
/usr/share/emacs23/site-lisp/psgml/psgml-other hides /usr/share/emacs/site-lisp/psgml/psgml-other
/usr/share/emacs23/site-lisp/psgml/psgml-info hides /usr/share/emacs/site-lisp/psgml/psgml-info
/usr/share/emacs23/site-lisp/psgml/psgml-ids hides /usr/share/emacs/site-lisp/psgml/psgml-ids
/usr/share/emacs23/site-lisp/psgml/psgml-edit hides /usr/share/emacs/site-lisp/psgml/psgml-edit
/usr/share/emacs23/site-lisp/psgml/psgml-dtd hides /usr/share/emacs/site-lisp/psgml/psgml-dtd
/usr/share/emacs23/site-lisp/psgml/psgml-charent hides /usr/share/emacs/site-lisp/psgml/psgml-charent
/usr/share/emacs23/site-lisp/psgml/psgml-api hides /usr/share/emacs/site-lisp/psgml/psgml-api
/usr/local/share/emacs/site-lisp/haskell-indent hides /usr/share/emacs/23.3/site-lisp/haskell-mode/haskell-indent
/usr/share/emacs/site-lisp/autoconf/autotest-mode hides /usr/share/emacs/site-lisp/autotest-mode
/usr/share/emacs/23.3/site-lisp/cscope/xcscope hides /usr/share/emacs/site-lisp/xcscope
/usr/share/emacs/23.3/site-lisp/debian-startup hides /usr/share/emacs/site-lisp/debian-startup
/usr/share/emacs23/site-lisp/semi/pgg-pgp5 hides /usr/share/emacs/23.3/lisp/pgg-pgp5
/usr/share/emacs23/site-lisp/flim/hex-util hides /usr/share/emacs/23.3/lisp/hex-util
/usr/share/emacs23/site-lisp/semi/pgg-parse hides /usr/share/emacs/23.3/lisp/pgg-parse
/usr/share/emacs23/site-lisp/semi/pgg hides /usr/share/emacs/23.3/lisp/pgg
/usr/share/emacs23/site-lisp/flim/md4 hides /usr/share/emacs/23.3/lisp/md4
/usr/share/emacs23/site-lisp/semi/pgg-pgp hides /usr/share/emacs/23.3/lisp/pgg-pgp
/usr/share/emacs23/site-lisp/html-helper-mode/tempo hides /usr/share/emacs/23.3/lisp/tempo
/usr/share/emacs23/site-lisp/semi/pgg-gpg hides /usr/share/emacs/23.3/lisp/pgg-gpg
/usr/share/emacs23/site-lisp/semi/pgg-def hides /usr/share/emacs/23.3/lisp/pgg-def
/usr/share/emacs23/site-lisp/flim/sha1 hides /usr/share/emacs/23.3/lisp/sha1
/usr/share/emacs23/site-lisp/css-mode/css-mode hides /usr/share/emacs/23.3/lisp/textmodes/css-mode
/usr/share/emacs23/site-lisp/dictionaries-common/flyspell hides /usr/share/emacs/23.3/lisp/textmodes/flyspell
/usr/share/emacs/site-lisp/rst hides /usr/share/emacs/23.3/lisp/textmodes/rst
/usr/share/emacs23/site-lisp/dictionaries-common/ispell hides /usr/share/emacs/23.3/lisp/textmodes/ispell
/usr/share/emacs23/site-lisp/ruby1.8-elisp/ruby-mode hides /usr/share/emacs/23.3/lisp/progmodes/ruby-mode
/usr/share/emacs23/site-lisp/flim/ntlm hides /usr/share/emacs/23.3/lisp/net/ntlm
/usr/share/emacs23/site-lisp/flim/sasl hides /usr/share/emacs/23.3/lisp/net/sasl
/usr/share/emacs23/site-lisp/flim/sasl-cram hides /usr/share/emacs/23.3/lisp/net/sasl-cram
/usr/share/emacs23/site-lisp/flim/sasl-digest hides /usr/share/emacs/23.3/lisp/net/sasl-digest
/usr/share/emacs23/site-lisp/flim/sasl-ntlm hides /usr/share/emacs/23.3/lisp/net/sasl-ntlm
/usr/share/emacs23/site-lisp/flim/hmac-def hides /usr/share/emacs/23.3/lisp/net/hmac-def
/usr/share/emacs23/site-lisp/flim/hmac-md5 hides /usr/share/emacs/23.3/lisp/net/hmac-md5
/usr/share/emacs23/site-lisp/wl/rfc2368 hides /usr/share/emacs/23.3/lisp/mail/rfc2368
/usr/share/emacs/23.3/lisp/t-mouse hides /home/naesten/system/emacs/dist/elisp/t-mouse
/usr/share/emacs23/site-lisp/emacs-goodies-el/markdown-mode hides /home/naesten/system/emacs/dist/elisp/markdown-mode/markdown-mode

Features:
(shadow emacsbug info-look magit-bisect magit-key-mode magit log-edit
pcvs-util shell gnus-msg gnus-art mm-uu mml2015 epg-config mm-view smime
dig gnus-sum nnoo gnus-group gnus-undo nnmail mail-source format-spec
gnus-start gnus-spec gnus-int gnus-range gnus-win gnus gnus-ems
mail-extr sort bzr-revlog dvc-revlog bzr-revision tabify man dict
mule-diag boxquote mailcrypt message ecomplete rfc822 mml mml-sec
password-cache mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev nnheader gnus-util netrc gmm-utils mailheader canlock
hashcash mail-utils reporter slime-presentation-streams slime-asdf
slime-compiler-notes-tree slime-fancy slime-fontifying-fu
slime-package-fu slime-references slime-scratch slime-presentations
slime-fuzzy slime-fancy-inspector slime-c-p-c slime-editing-commands
slime-autodoc slime-parse slime-repl slime hyperspec lazy-lock python-21
python readme-debian texmathp flyspell ispell tex-bar latex tex-style
tex-buf toolbar-x font-latex tex make-mode tmm electric filladapt
inform-mode vc-bzr sha1 sha1-el hex-util bzr-dvc bzr apropos
multi-isearch thingatpt conf-mode newcomment imenu debian-bug rfc2047
rfc2045 ietf-drums qp debian-changelog-mode tla smerge-mode dvc-state
dvc-config time-date diff sendmail tla-gnus dvc-gnus dvc-cmenu dvc-about
dvc-version apt-utils browse-url help-mode view vc-git xgit-dvc xgit
cus-edit xgit-annotate rect dvc-annotate xgit-log dvc-revlist dvc-diff
uniquify warnings dvc-fileinfo bzr-core tla-core pp tla-autoconf
tla-defs dvc-log vc vc-dispatcher dvc-unified dvc-tips dired-x dired-aux
dired ffap add-log diff-mode ediff-merg ediff-diff ediff-wind ediff-help
ediff-util ediff-mult ediff-init ediff xdarcs-core xgit-core xhg-core
xmtn-minimal sh-script executable byte-opt bytecomp byte-compile unsafep
xcscope arc-mode archive-mode asm-mode my-asm slime-autoloads proof-site
pg-vars dvc-autoloads dvc-core dvc-lisp dvc-buffers dvc-ui dvc-register
dvc-utils dvc-emacs ewoc dvc-defs dvc-site jka-compr dir-locals cc-mode
cc-fonts cc-menus cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs
eproject esh-var esh-io esh-cmd esh-ext esh-proc esh-arg eldoc
esh-groups eshell esh-module esh-mode esh-util elisp-depend
ps-print-bg-fixup wgrep grep compile comint ring edebug xt-mouse paren
recentf tree-widget wid-edit cus-start cus-load
find-file-in-git-repo-autoloads gist-autoloads synonyms-autoloads info
wgrep-autoloads yasnippet-bundle-autoloads yasnippet-bundle
dropdown-list yasnippet edmacro kmacro easymenu assoc package derived
find-func w3m-load psgml-init mmm-auto mmm-vars mmm-compat regexp-opt cl
cl-19 mailcrypt-init emacs-goodies-el emacs-goodies-custom
emacs-goodies-loaddefs easy-mmode dpkg-dev-el dpkg-dev-el-loaddefs tempo
url url-proxy url-privacy url-expand url-methods url-history url-cookie
url-util url-parse url-vars mm-util mail-prsvr mailcap xml-parse
doxymacs develock advice help-fns advice-preload debian-el
debian-el-loaddefs cmake-mode bbdb-autoloads preview-latex tex-site
auto-loads tooltip ediff-hook vc-hooks lisp-float-type mwheel x-win
x-dnd font-setting tool-bar dnd fontset image fringe lisp-mode register
page menu-bar rfn-eshadow timer select scroll-bar mldrag 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 loaddefs button
minibuffer faces cus-face files text-properties overlay md5 base64
format env code-pages mule custom widget hashtable-print-readable
backquote make-network-process dbusbind font-render-setting x-toolkit x
multi-tty emacs)

-- 
Hi! I'm a .signature virus! Copy me into your ~/.signature to help me spread!