Subject: bug#24901: Patch to add support for curly quotes to electric-pair-mode

From: Reuben Thomas <[email-masked]>
Date: Tue, 08 Nov 2016 12:00:02 +0000

The attached patch adds support for curly quotes to electric-pair-mode.

(I am separately working on a patch for smart-quotes-mode, which is not
part of Emacs.)

If this is considered an acceptable patch, I’d be happy to add support
for other text quote styles (German, French &c.) before installing the
patch.

>From 634d6fdf40574b7de1eb304f27567bdda201bab1 Mon Sep 17 00:00:00 2001
From: Reuben Thomas <[email-masked]>
Date: Tue, 8 Nov 2016 11:53:20 +0000
Subject: [PATCH] Add support for curly quotation marks to electric-pair-mode

* lisp/elec-pair.el (electric-pair-pairs, electric-pair-text-pairs): add
entries for left/right single/double quotation marks. Note that this is
safe for single quotation marks, unlike with the ASCII apostrophe,
since, although the right quotation mark can be used as an apostrophe,
it is the left quotation mark that is typed to get a pair.
---
 lisp/elec-pair.el | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/elec-pair.el b/lisp/elec-pair.el
index 1162920..3658601 100644
--- a/lisp/elec-pair.el
+++ b/lisp/elec-pair.el
@@ -28,7 +28,9 @@
 ;;; Electric pairing.
 
 (defcustom electric-pair-pairs
-  '((?\" . ?\"))
+  '((?\" . ?\")
+    (#x201c . #x201d)               ; LEFT/RIGHT SINGLE QUOTATION MARK
+    (#x2018 . #x2019))              ; LEFT/RIGHT DOUBLE QUOTATION MARK
   "Alist of pairs that should be used regardless of major mode.
 
 Pairs of delimiters in this list are a fallback in case they have
@@ -42,7 +44,9 @@ electric-pair-pairs
 
 ;;;###autoload
 (defcustom electric-pair-text-pairs
-  '((?\" . ?\" ))
+  '((?\" . ?\" )
+    (#x201c . #x201d)               ; LEFT/RIGHT SINGLE QUOTATION MARK
+    (#x2018 . #x2019))              ; LEFT/RIGHT DOUBLE QUOTATION MARK
   "Alist of pairs that should always be used in comments and strings.
 
 Pairs of delimiters in this list are a fallback in case they have
-- 
2.7.4

In GNU Emacs 25.1.50.9 (x86_64-pc-linux-gnu, GTK+ Version 3.18.9)
 of 2016-10-15 built on skwd
Repository revision: 4eb4463abf1db904f9e8cdc35156a66f8a10125c
Windowing system distributor 'The X.Org Foundation', version 11.0.11804000
System Description:	Ubuntu 16.04.1 LTS

Configured features:
XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND DBUS GCONF GSETTINGS NOTIFY
ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB
TOOLKIT_SCROLL_BARS GTK3 X11

Important settings:
  value of $LC_MONETARY: en_GB.utf8
  value of $LC_NUMERIC: en_GB.utf8
  value of $LC_TIME: en_GB.utf8
  value of $LANG: en_GB.UTF-8
  value of $XMODIFIERS: @im=local
  locale-coding-system: utf-8-unix

Major mode: Org

Minor modes in effect:
  magit-auto-revert-mode: t
  global-git-commit-mode: t
  TeX-PDF-mode: t
  TeX-source-correlate-mode: t
  window-margin-mode: t
  buffer-face-mode: t
  flyspell-mode: t
  goto-address-mode: t
  smart-quotes-mode: t
  org-indent-mode: t
  show-paren-mode: t
  savehist-mode: t
  recentf-mode: t
  minibuffer-electric-default-mode: t
  global-auto-revert-mode: t
  auto-revert-mode: t
  electric-pair-mode: t
  desktop-save-mode: t
  global-whitespace-mode: t
  diff-auto-refine-mode: t
  global-undo-tree-mode: t
  undo-tree-mode: t
  helm-mode: t
  shell-dirtrack-mode: t
  helm-autoresize-mode: t
  async-bytecomp-package-mode: t
  dtrt-indent-mode: t
  tooltip-mode: t
  global-eldoc-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  visual-line-mode: t
  transient-mark-mode: t

Recent messages:
Loading /home/rrt/.emacs.d/elpa/async-20161103.1036/async.el (source)...done
Package ‘cmake-mode-3.6.2’ deleted.
Package ‘async-20161031.1718’ deleted.
Package menu: Operation finished [Upgraded 2]
user-error: No operations specified
Saving file /home/rrt/Notes/Programming.org...
Wrote /home/rrt/.emacs.d/undo-tree/.!home!rrt!Notes!Programming.org.~undo-tree~
Wrote /home/rrt/Notes/Programming.org
Mark set [2 times]
Mark saved where search started

Load-path shadows:
/home/rrt/.emacs.d/elpa/dash-20161106.410/dash hides /home/rrt/.emacs.d/elpa/dash-20161102.334/dash
/home/rrt/.emacs.d/elpa/dash-20161106.410/dash-autoloads hides /home/rrt/.emacs.d/elpa/dash-20161102.334/dash-autoloads
/home/rrt/.emacs.d/elpa/dash-20161106.410/dash-pkg hides /home/rrt/.emacs.d/elpa/dash-20161102.334/dash-pkg
/home/rrt/.emacs.d/elpa/yaml-mode-0.0.13/yaml-mode hides /home/rrt/.emacs.d/elpa/yaml-mode-0.0.12/yaml-mode
/home/rrt/.emacs.d/elpa/yaml-mode-0.0.13/yaml-mode-autoloads hides /home/rrt/.emacs.d/elpa/yaml-mode-0.0.12/yaml-mode-autoloads
/home/rrt/.emacs.d/elpa/yaml-mode-0.0.13/yaml-mode-pkg hides /home/rrt/.emacs.d/elpa/yaml-mode-0.0.12/yaml-mode-pkg
/home/rrt/.emacs.d/elpa/sws-mode-20150317.1245/sws-mode hides /home/rrt/.emacs.d/el-get/jade-mode/sws-mode
/home/rrt/.emacs.d/elpa/async-20161103.1036/async-pkg hides /home/rrt/.emacs.d/el-get/emacs-async/async-pkg
/home/rrt/.emacs.d/elpa/async-20161103.1036/dired-async hides /home/rrt/.emacs.d/el-get/emacs-async/dired-async
/home/rrt/.emacs.d/elpa/async-20161103.1036/smtpmail-async hides /home/rrt/.emacs.d/el-get/emacs-async/smtpmail-async
/home/rrt/.emacs.d/elpa/async-20161103.1036/async-bytecomp hides /home/rrt/.emacs.d/el-get/emacs-async/async-bytecomp
/home/rrt/.emacs.d/elpa/async-20161103.1036/async hides /home/rrt/.emacs.d/el-get/emacs-async/async
/home/rrt/.emacs.d/elpa/cmake-mode-3.6.3/cmake-mode hides /usr/local/share/emacs/25.1.50/site-lisp/cmake-data/cmake-mode
/home/rrt/.local/share/emacs/site-lisp/whitespace hides /usr/local/share/emacs/25.1.50/lisp/whitespace
/home/rrt/.emacs.d/el-get/cperl-mode/cperl-mode hides /usr/local/share/emacs/25.1.50/lisp/progmodes/cperl-mode
/home/rrt/.emacs.d/elpa/org-20161102/org hides /usr/local/share/emacs/25.1.50/lisp/org/org
/home/rrt/.emacs.d/elpa/org-20161102/org-mouse hides /usr/local/share/emacs/25.1.50/lisp/org/org-mouse
/home/rrt/.emacs.d/elpa/org-20161102/ob-ruby hides /usr/local/share/emacs/25.1.50/lisp/org/ob-ruby
/home/rrt/.emacs.d/elpa/org-20161102/ob-asymptote hides /usr/local/share/emacs/25.1.50/lisp/org/ob-asymptote
/home/rrt/.emacs.d/elpa/org-20161102/ox-man hides /usr/local/share/emacs/25.1.50/lisp/org/ox-man
/home/rrt/.emacs.d/elpa/org-20161102/ob-eval hides /usr/local/share/emacs/25.1.50/lisp/org/ob-eval
/home/rrt/.emacs.d/elpa/org-20161102/org-footnote hides /usr/local/share/emacs/25.1.50/lisp/org/org-footnote
/home/rrt/.emacs.d/elpa/org-20161102/ob-shen hides /usr/local/share/emacs/25.1.50/lisp/org/ob-shen
/home/rrt/.emacs.d/elpa/org-20161102/ob-lisp hides /usr/local/share/emacs/25.1.50/lisp/org/ob-lisp
/home/rrt/.emacs.d/elpa/org-20161102/ob-C hides /usr/local/share/emacs/25.1.50/lisp/org/ob-C
/home/rrt/.emacs.d/elpa/org-20161102/ob-sass hides /usr/local/share/emacs/25.1.50/lisp/org/ob-sass
/home/rrt/.emacs.d/elpa/org-20161102/ob-css hides /usr/local/share/emacs/25.1.50/lisp/org/ob-css
/home/rrt/.emacs.d/elpa/org-20161102/ob-sqlite hides /usr/local/share/emacs/25.1.50/lisp/org/ob-sqlite
/home/rrt/.emacs.d/elpa/org-20161102/org-loaddefs hides /usr/local/share/emacs/25.1.50/lisp/org/org-loaddefs
/home/rrt/.emacs.d/elpa/org-20161102/ob-org hides /usr/local/share/emacs/25.1.50/lisp/org/ob-org
/home/rrt/.emacs.d/elpa/org-20161102/ox-org hides /usr/local/share/emacs/25.1.50/lisp/org/ox-org
/home/rrt/.emacs.d/elpa/org-20161102/ob-ditaa hides /usr/local/share/emacs/25.1.50/lisp/org/ob-ditaa
/home/rrt/.emacs.d/elpa/org-20161102/ob-screen hides /usr/local/share/emacs/25.1.50/lisp/org/ob-screen
/home/rrt/.emacs.d/elpa/org-20161102/ob-io hides /usr/local/share/emacs/25.1.50/lisp/org/ob-io
/home/rrt/.emacs.d/elpa/org-20161102/ob-fortran hides /usr/local/share/emacs/25.1.50/lisp/org/ob-fortran
/home/rrt/.emacs.d/elpa/org-20161102/org-list hides /usr/local/share/emacs/25.1.50/lisp/org/org-list
/home/rrt/.emacs.d/elpa/org-20161102/org-macro hides /usr/local/share/emacs/25.1.50/lisp/org/org-macro
/home/rrt/.emacs.d/elpa/org-20161102/ob-latex hides /usr/local/share/emacs/25.1.50/lisp/org/ob-latex
/home/rrt/.emacs.d/elpa/org-20161102/ox-ascii hides /usr/local/share/emacs/25.1.50/lisp/org/ox-ascii
/home/rrt/.emacs.d/elpa/org-20161102/org-install hides /usr/local/share/emacs/25.1.50/lisp/org/org-install
/home/rrt/.emacs.d/elpa/org-20161102/ob-picolisp hides /usr/local/share/emacs/25.1.50/lisp/org/ob-picolisp
/home/rrt/.emacs.d/elpa/org-20161102/ob-R hides /usr/local/share/emacs/25.1.50/lisp/org/ob-R
/home/rrt/.emacs.d/elpa/org-20161102/ox-latex hides /usr/local/share/emacs/25.1.50/lisp/org/ox-latex
/home/rrt/.emacs.d/elpa/org-20161102/org-eshell hides /usr/local/share/emacs/25.1.50/lisp/org/org-eshell
/home/rrt/.emacs.d/elpa/org-20161102/ox-odt hides /usr/local/share/emacs/25.1.50/lisp/org/ox-odt
/home/rrt/.emacs.d/elpa/org-20161102/ob-keys hides /usr/local/share/emacs/25.1.50/lisp/org/ob-keys
/home/rrt/.emacs.d/elpa/org-20161102/ob-ref hides /usr/local/share/emacs/25.1.50/lisp/org/ob-ref
/home/rrt/.emacs.d/elpa/org-20161102/org-datetree hides /usr/local/share/emacs/25.1.50/lisp/org/org-datetree
/home/rrt/.emacs.d/elpa/org-20161102/ob-exp hides /usr/local/share/emacs/25.1.50/lisp/org/ob-exp
/home/rrt/.emacs.d/elpa/org-20161102/ox-beamer hides /usr/local/share/emacs/25.1.50/lisp/org/ox-beamer
/home/rrt/.emacs.d/elpa/org-20161102/ob-emacs-lisp hides /usr/local/share/emacs/25.1.50/lisp/org/ob-emacs-lisp
/home/rrt/.emacs.d/elpa/org-20161102/ob-matlab hides /usr/local/share/emacs/25.1.50/lisp/org/ob-matlab
/home/rrt/.emacs.d/elpa/org-20161102/ob hides /usr/local/share/emacs/25.1.50/lisp/org/ob
/home/rrt/.emacs.d/elpa/org-20161102/org-indent hides /usr/local/share/emacs/25.1.50/lisp/org/org-indent
/home/rrt/.emacs.d/elpa/org-20161102/ob-perl hides /usr/local/share/emacs/25.1.50/lisp/org/ob-perl
/home/rrt/.emacs.d/elpa/org-20161102/org-habit hides /usr/local/share/emacs/25.1.50/lisp/org/org-habit
/home/rrt/.emacs.d/elpa/org-20161102/org-entities hides /usr/local/share/emacs/25.1.50/lisp/org/org-entities
/home/rrt/.emacs.d/elpa/org-20161102/org-rmail hides /usr/local/share/emacs/25.1.50/lisp/org/org-rmail
/home/rrt/.emacs.d/elpa/org-20161102/ox-md hides /usr/local/share/emacs/25.1.50/lisp/org/ox-md
/home/rrt/.emacs.d/elpa/org-20161102/ob-clojure hides /usr/local/share/emacs/25.1.50/lisp/org/ob-clojure
/home/rrt/.emacs.d/elpa/org-20161102/ob-makefile hides /usr/local/share/emacs/25.1.50/lisp/org/ob-makefile
/home/rrt/.emacs.d/elpa/org-20161102/ob-plantuml hides /usr/local/share/emacs/25.1.50/lisp/org/ob-plantuml
/home/rrt/.emacs.d/elpa/org-20161102/org-table hides /usr/local/share/emacs/25.1.50/lisp/org/org-table
/home/rrt/.emacs.d/elpa/org-20161102/org-mobile hides /usr/local/share/emacs/25.1.50/lisp/org/org-mobile
/home/rrt/.emacs.d/elpa/org-20161102/org-mhe hides /usr/local/share/emacs/25.1.50/lisp/org/org-mhe
/home/rrt/.emacs.d/elpa/org-20161102/ob-lob hides /usr/local/share/emacs/25.1.50/lisp/org/ob-lob
/home/rrt/.emacs.d/elpa/org-20161102/org-capture hides /usr/local/share/emacs/25.1.50/lisp/org/org-capture
/home/rrt/.emacs.d/elpa/org-20161102/org-version hides /usr/local/share/emacs/25.1.50/lisp/org/org-version
/home/rrt/.emacs.d/elpa/org-20161102/ob-core hides /usr/local/share/emacs/25.1.50/lisp/org/ob-core
/home/rrt/.emacs.d/elpa/org-20161102/ob-table hides /usr/local/share/emacs/25.1.50/lisp/org/ob-table
/home/rrt/.emacs.d/elpa/org-20161102/org-faces hides /usr/local/share/emacs/25.1.50/lisp/org/org-faces
/home/rrt/.emacs.d/elpa/org-20161102/org-compat hides /usr/local/share/emacs/25.1.50/lisp/org/org-compat
/home/rrt/.emacs.d/elpa/org-20161102/ox-publish hides /usr/local/share/emacs/25.1.50/lisp/org/ox-publish
/home/rrt/.emacs.d/elpa/org-20161102/org-agenda hides /usr/local/share/emacs/25.1.50/lisp/org/org-agenda
/home/rrt/.emacs.d/elpa/org-20161102/ob-maxima hides /usr/local/share/emacs/25.1.50/lisp/org/ob-maxima
/home/rrt/.emacs.d/elpa/org-20161102/ob-dot hides /usr/local/share/emacs/25.1.50/lisp/org/ob-dot
/home/rrt/.emacs.d/elpa/org-20161102/ob-python hides /usr/local/share/emacs/25.1.50/lisp/org/ob-python
/home/rrt/.emacs.d/elpa/org-20161102/org-crypt hides /usr/local/share/emacs/25.1.50/lisp/org/org-crypt
/home/rrt/.emacs.d/elpa/org-20161102/org-protocol hides /usr/local/share/emacs/25.1.50/lisp/org/org-protocol
/home/rrt/.emacs.d/elpa/org-20161102/ob-scheme hides /usr/local/share/emacs/25.1.50/lisp/org/ob-scheme
/home/rrt/.emacs.d/elpa/org-20161102/ob-awk hides /usr/local/share/emacs/25.1.50/lisp/org/ob-awk
/home/rrt/.emacs.d/elpa/org-20161102/org-w3m hides /usr/local/share/emacs/25.1.50/lisp/org/org-w3m
/home/rrt/.emacs.d/elpa/org-20161102/org-bbdb hides /usr/local/share/emacs/25.1.50/lisp/org/org-bbdb
/home/rrt/.emacs.d/elpa/org-20161102/ox-html hides /usr/local/share/emacs/25.1.50/lisp/org/ox-html
/home/rrt/.emacs.d/elpa/org-20161102/org-gnus hides /usr/local/share/emacs/25.1.50/lisp/org/org-gnus
/home/rrt/.emacs.d/elpa/org-20161102/ob-js hides /usr/local/share/emacs/25.1.50/lisp/org/ob-js
/home/rrt/.emacs.d/elpa/org-20161102/ob-mscgen hides /usr/local/share/emacs/25.1.50/lisp/org/ob-mscgen
/home/rrt/.emacs.d/elpa/org-20161102/ob-ocaml hides /usr/local/share/emacs/25.1.50/lisp/org/ob-ocaml
/home/rrt/.emacs.d/elpa/org-20161102/ox-icalendar hides /usr/local/share/emacs/25.1.50/lisp/org/ox-icalendar
/home/rrt/.emacs.d/elpa/org-20161102/ob-gnuplot hides /usr/local/share/emacs/25.1.50/lisp/org/ob-gnuplot
/home/rrt/.emacs.d/elpa/org-20161102/org-irc hides /usr/local/share/emacs/25.1.50/lisp/org/org-irc
/home/rrt/.emacs.d/elpa/org-20161102/ob-haskell hides /usr/local/share/emacs/25.1.50/lisp/org/ob-haskell
/home/rrt/.emacs.d/elpa/org-20161102/org-docview hides /usr/local/share/emacs/25.1.50/lisp/org/org-docview
/home/rrt/.emacs.d/elpa/org-20161102/org-clock hides /usr/local/share/emacs/25.1.50/lisp/org/org-clock
/home/rrt/.emacs.d/elpa/org-20161102/ob-lilypond hides /usr/local/share/emacs/25.1.50/lisp/org/ob-lilypond
/home/rrt/.emacs.d/elpa/org-20161102/org-ctags hides /usr/local/share/emacs/25.1.50/lisp/org/org-ctags
/home/rrt/.emacs.d/elpa/org-20161102/ox hides /usr/local/share/emacs/25.1.50/lisp/org/ox
/home/rrt/.emacs.d/elpa/org-20161102/org-bibtex hides /usr/local/share/emacs/25.1.50/lisp/org/org-bibtex
/home/rrt/.emacs.d/elpa/org-20161102/org-element hides /usr/local/share/emacs/25.1.50/lisp/org/org-element
/home/rrt/.emacs.d/elpa/org-20161102/org-id hides /usr/local/share/emacs/25.1.50/lisp/org/org-id
/home/rrt/.emacs.d/elpa/org-20161102/org-archive hides /usr/local/share/emacs/25.1.50/lisp/org/org-archive
/home/rrt/.emacs.d/elpa/org-20161102/ob-octave hides /usr/local/share/emacs/25.1.50/lisp/org/ob-octave
/home/rrt/.emacs.d/elpa/org-20161102/ob-calc hides /usr/local/share/emacs/25.1.50/lisp/org/ob-calc
/home/rrt/.emacs.d/elpa/org-20161102/org-attach hides /usr/local/share/emacs/25.1.50/lisp/org/org-attach
/home/rrt/.emacs.d/elpa/org-20161102/org-src hides /usr/local/share/emacs/25.1.50/lisp/org/org-src
/home/rrt/.emacs.d/elpa/org-20161102/ob-comint hides /usr/local/share/emacs/25.1.50/lisp/org/ob-comint
/home/rrt/.emacs.d/elpa/org-20161102/ob-ledger hides /usr/local/share/emacs/25.1.50/lisp/org/ob-ledger
/home/rrt/.emacs.d/elpa/org-20161102/org-plot hides /usr/local/share/emacs/25.1.50/lisp/org/org-plot
/home/rrt/.emacs.d/elpa/org-20161102/ob-tangle hides /usr/local/share/emacs/25.1.50/lisp/org/ob-tangle
/home/rrt/.emacs.d/elpa/org-20161102/org-info hides /usr/local/share/emacs/25.1.50/lisp/org/org-info
/home/rrt/.emacs.d/elpa/org-20161102/org-macs hides /usr/local/share/emacs/25.1.50/lisp/org/org-macs
/home/rrt/.emacs.d/elpa/org-20161102/org-pcomplete hides /usr/local/share/emacs/25.1.50/lisp/org/org-pcomplete
/home/rrt/.emacs.d/elpa/org-20161102/ob-scala hides /usr/local/share/emacs/25.1.50/lisp/org/ob-scala
/home/rrt/.emacs.d/elpa/org-20161102/ob-sql hides /usr/local/share/emacs/25.1.50/lisp/org/ob-sql
/home/rrt/.emacs.d/elpa/org-20161102/org-timer hides /usr/local/share/emacs/25.1.50/lisp/org/org-timer
/home/rrt/.emacs.d/elpa/org-20161102/org-inlinetask hides /usr/local/share/emacs/25.1.50/lisp/org/org-inlinetask
/home/rrt/.emacs.d/elpa/org-20161102/ob-java hides /usr/local/share/emacs/25.1.50/lisp/org/ob-java
/home/rrt/.emacs.d/elpa/org-20161102/org-feed hides /usr/local/share/emacs/25.1.50/lisp/org/org-feed
/home/rrt/.emacs.d/elpa/org-20161102/org-colview hides /usr/local/share/emacs/25.1.50/lisp/org/org-colview
/home/rrt/.emacs.d/elpa/org-20161102/ox-texinfo hides /usr/local/share/emacs/25.1.50/lisp/org/ox-texinfo

Features:
(shadow sort emacsbug tar-mode cc-mode cc-fonts cc-guess cc-menus
cc-cmds cc-styles cc-align cc-engine cc-vars cc-defs geiser-mode
geiser-xref geiser-compile geiser-debug geiser-chicken geiser-racket
geiser-guile geiser geiser-repl geiser-image geiser-company geiser-doc
geiser-menu geiser-edit geiser-completion geiser-autodoc geiser-eval
geiser-connection tq geiser-syntax geiser-log geiser-popup view
geiser-impl geiser-custom geiser-base quack cmuscheme scheme git-rebase
find-dired ido tcl linum magit-blame magit-stash magit-bisect
magit-remote magit-commit magit-sequence magit magit-apply magit-wip
magit-log magit-diff smerge-mode magit-core magit-autorevert
magit-process magit-popup magit-mode magit-git magit-section magit-utils
git-commit log-edit pcvs-util with-editor warnings term disp-table ehelp
esh-var esh-io esh-cmd esh-opt esh-ext esh-proc esh-arg esh-groups
eshell esh-module esh-mode esh-util dash make-mode debug mail-extr rect
mm-archive message sendmail rfc822 mml mml-sec mailabbrev gmm-utils
mailheader mm-decode mm-bodies mm-encode url-handlers mail-utils
network-stream nsm starttls url-http tls gnutls mail-parse rfc2231
url-gw url-cache url-auth epg ibuf-ext ibuffer grep image-file eieio-opt
tex-buf latex tex-ispell tex-style tex-info tex dbus crm texinfo
css-mode imenu debian-bug rfc2047 rfc2045 ietf-drums
debian-changelog-mode add-log debian-control-mode conf-mode nxml-uchnm
rng-xsd xsd-regexp rng-cmpct rng-nxml rng-valid nxml-mode nxml-outln
nxml-rap nxml-glyph cperl-mode cus-edit misearch multi-isearch winner
helm-command helm-elisp helm-eval edebug sh-script smie executable
sgml-mode adaptive-wrap markdown-mode vc-dispatcher vc-bzr python json
map window-margin face-remap flyspell ispell goto-addr smart-quotes
org-indent org-rmail org-mhe org-irc org-info org-gnus org-docview
doc-view subr-x jka-compr image-mode org-bibtex bibtex org-bbdb org-w3m
flymake paredit server ox-odt rng-loc rng-uri rng-parse rng-match rng-dt
rng-util rng-pttrn nxml-parse nxml-ns nxml-enc xmltok nxml-util ox-latex
ox-icalendar ox-html table ox-ascii ox-publish ox tramp-cache tramp-sh
yasnippet paren savehist recentf tree-widget wid-edit minibuf-eldef
autorevert filenotify elec-pair desktop frameset cus-start cus-load
iimage org-element avl-tree org 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 go-mode find-file forth-mode etags xref
project info-look speedbar sb-image ezimage dframe whitespace
bug-reference-github bug-reference vc-git diff-mode undo-tree diff
helm-fuzzier helm-mode helm-files rx image-dired tramp tramp-compat
tramp-loaddefs trampver ucs-normalize shell pcomplete format-spec
dired-x dired-aux ffap thingatpt helm-buffers helm-elscreen helm-tags
helm-bookmark helm-adaptive helm-info bookmark helm-locate helm-grep
helm-regexp helm-external helm-net browse-url xml url url-proxy
url-privacy url-expand url-methods url-history url-cookie url-domsuf
url-util url-parse auth-source gnus-util mm-util help-fns mail-prsvr
password-cache url-vars mailcap helm-utils helm-help helm-types helm
derived helm-source eieio-compat helm-multi-match helm-lib helm-config
helm-easymenu async-bytecomp async locate finder-inf tex-site
go-mode-autoloads info edmacro kmacro windows revive init-paredit
dtrt-indent csv init-eldoc eldoc-extension advice compile comint
ansi-color ring easy-mmode .loaddefs eieio eieio-core cl-macs el-get
el-get-autoloading el-get-list-packages el-get-dependencies el-get-build
el-get-status pp el-get-methods el-get-fossil el-get-svn el-get-pacman
el-get-github-zip el-get-github-tar el-get-http-zip el-get-http-tar
el-get-hg el-get-go el-get-git-svn el-get-fink el-get-emacswiki
el-get-http el-get-notify el-get-emacsmirror el-get-github el-get-git
el-get-elpa package epg-config seq byte-opt el-get-darcs el-get-cvs
el-get-bzr el-get-brew el-get-builtin el-get-apt-get el-get-recipes
el-get-byte-compile el-get-custom cl-seq el-get-core autoload lisp-mnt
bytecomp byte-compile cl-extra help-mode easymenu cconv cl gv
cl-loaddefs pcase cl-lib dired debian-el debian-el-loaddefs org-install
dpkg-dev-el dpkg-dev-el-loaddefs devhelp user-site-loaddefs time-date
mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks
lisp-float-type mwheel x-win term/common-win x-dnd tool-bar dnd fontset
image regexp-opt fringe tabulated-list newcomment elisp-mode lisp-mode
prog-mode register page menu-bar rfn-eshadow timer select scroll-bar
mouse jit-lock font-lock syntax facemenu font-core frame cl-generic cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech
european ethiopic indian cyrillic chinese charscript case-table epa-hook
jka-cmpr-hook help simple abbrev minibuffer cl-preloaded nadvice
loaddefs button faces cus-face macroexp files text-properties overlay
sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote dbusbind inotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)

Memory information:
((conses 16 1956381 334151)
 (symbols 48 69739 0)
 (miscs 40 2682 2920)
 (strings 32 330663 59534)
 (string-bytes 1 11356699)
 (vectors 16 110223)
 (vector-slots 8 2416485 101906)
 (floats 8 848 1188)
 (intervals 56 125662 1627)
 (buffers 976 176)
 (heap 1024 138492 299965))

-- 
http://rrt.sc3d.org/