+2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * configure.in (AC_CHECK_FUNCS):
+ Add getpwent, endpwent, getgrent, endgrent. (Bug#7900)
+
+2012-04-16 Glenn Morris <rgm@gnu.org>
+
+ * configure.in (NS_HAVE_NSINTEGER): Remove unnecessary variable.
+
+ * configure.in: Remove X libs workaround for old autoconf.
+
+2012-04-12 Ken Brown <kbrown@cornell.edu>
+
+ * configure.in: Warn that Cygwin 1.5 is unsupported. (Bug#10398)
+
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * configure.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
+
+2012-04-10 Glenn Morris <rgm@gnu.org>
+
+ * configure.in: Conditionally generate admin/unidata/Makefile.
+
+2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * info/dir, Makefile.in (INFO_FILES): Add emacs-gnutls manual.
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (leim): Check cd return value. Pass fewer variables.
+ (install-leim): Check cd return value. Pass $MFLAGS.
+ (install-strip): Pass $MFLAGS.
+
+ * configure.in: Require makeinfo >= 4.7. (Bug#10910)
+ Eg org.texi has been using 4.7 functions for some time.
+
+2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Check pkg-config exit status when configuring (Bug#10626).
+ * configure.in (PKG_CHECK_MODULES): Do not assume that pkg-config
+ works; check its exit status. Problem reported by Jordi Gutiérrez
+ Hermoso in
+ <http://lists.gnu.org/archive/html/emacs-devel/2012-01/msg00787.html>.
+
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * README, configure.in (AC_INIT): Bump version to 24.1.50.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * lib/makefile.w32-in (gnulib, all): Don't depend on stamp_BLD.
+
2012-03-04 Paul Eggert <eggert@cs.ucla.edu>
configure: fix ncurses 'configure' issue on Solaris 10 (Bug#10677)
2010-03-12 Eli Zaretskii <eliz@gnu.org>
- These changes remove termcap.c from the build on Posix platforms.
+ These changes remove termcap.c from the build on POSIX platforms.
* configure.in <AC_CHECK_HEADERS>: Remove termcap.h.
* configure: Regenerated.
# DIST: make most of the changes to this file you might want, so try
# DIST: that first.
-# Copyright (C) 1992-2012 Free Software Foundation, Inc.
+# Copyright (C) 1992-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# system, it is inappropriate to imply that it is part of Emacs.
infodir=@infodir@
INFO_FILES=ada-mode auth autotype calc ccmode cl dbus dired-x ebrowse \
- ede ediff edt eieio efaq eintr elisp emacs emacs-mime epa erc \
- ert eshell eudc flymake forms gnus idlwave info mairix-el \
- message mh-e newsticker nxml-mode org pcl-cvs pgg rcirc \
- reftex remember sasl sc semantic ses sieve smtpmail speedbar \
- tramp url vip viper widget woman
+ ede ediff edt eieio efaq eintr elisp emacs emacs-gnutls \
+ emacs-mime epa erc ert eshell eudc flymake forms gnus \
+ idlwave info mairix-el message mh-e newsticker nxml-mode \
+ org pcl-cvs pgg rcirc reftex remember sasl sc semantic ses \
+ sieve smtpmail speedbar tramp url vip viper widget woman
# If no makeinfo was found and configured --without-makeinfo, "no"; else "yes".
HAVE_MAKEINFO=@HAVE_MAKEINFO@
# running more than 1 process in the leim directory, especially for
# the $TIT files there.
leim: src Makefile FRC
- (export PARALLEL; PARALLEL=0; cd $@; $(MAKE) all $(MFLAGS) \
- CC='${CC}' CFLAGS='${CFLAGS}' CPPFLAGS='${CPPFLAGS}' \
- LDFLAGS='${LDFLAGS}' MAKE='${MAKE}')
+ cd leim && PARALLEL=0 $(MAKE) all $(MFLAGS)
lib-src src: lib
### `install-arch-indep'. People who extracted LEIM files after they
### installed Emacs itself can install only LEIM files by this target.
install-leim: leim/Makefile mkdir
- cd leim; $(MAKE) install
+ cd leim && $(MAKE) $(MFLAGS) install
### Build Emacs and install it, stripping binaries while installing them.
install-strip:
- $(MAKE) INSTALL_STRIP=-s install
+ $(MAKE) $(MFLAGS) INSTALL_STRIP=-s install
### Build all the directories we're going to install Emacs in. Since
### we may be creating several layers of directories (for example,
See the end of the file for license conditions.
-This directory tree holds version 24.0.94 of GNU Emacs, the extensible,
+This directory tree holds version 24.1.50 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
+2012-04-10 Glenn Morris <rgm@gnu.org>
+
+ * bzrmerge.el (bzrmerge-skip-regexp): Add "from trunk".
+
+ * unidata/Makefile.in: Add FSF copyright.
+ Make it use autoconf features, and work for out-of-tree builds.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * unidata/README:
+ * unidata/copyright.html:
+ * unidata/BidiMirroring.txt:
+ * unidata/UnicodeData.txt: Update for the latest version 6.1 of
+ the Unicode Standard.
+
2012-02-16 Kenichi Handa <handa@m17n.org>
* unidata/unidata-gen.el (unidata-prop-alist): Change the default
fixit.texi cyd
fortran-xtra.texi rgm
frames.texi cyd
-glossary.texi
+glossary.texi rgm
help.texi cyd
indent.texi cyd
killing.texi cyd
misc.texi cyd
modes.texi cyd
msdog.texi rgm (can't actually test any of it though)
- It was not obvious to me that the following is true (it could well be though):
-
- Emacs on Windows automatically determines your default printer and
- sets the variable `printer-name' to that printer's name.
-
msdog-xtra.texi rgm (can't actually test any of it though)
-mule.texi
+mule.texi rgm (not 100% sure about "Fontsets")
m-x.texi cyd
package.texi cyd
picture-xtra.texi rgm
abbrevs.texi rgm
advice.texi cyd
-anti.texi
-back.texi
+anti.texi rgm
+back.texi rgm
backups.texi cyd
buffers.texi cyd
commands.texi cyd
control.texi cyd
customize.texi cyd
debugging.texi cyd
-display.texi
-edebug.texi
+display.texi cyd
+edebug.texi rgm
elisp.texi
errors.texi rgm
eval.texi cyd
package.texi rgm
positions.texi cyd
processes.texi
-searching.texi
+searching.texi rgm
sequences.texi cyd
streams.texi cyd
strings.texi cyd
;;; bzrmerge.el --- help merge one Emacs bzr branch to another
-;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
-;; Keywords:
+;; Keywords: maint
;; GNU Emacs is free software: you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
(require 'cl)) ; assert
(defvar bzrmerge-skip-regexp
- "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version"
+ "back[- ]?port\\|merge\\|sync\\|re-?generate\\|bump version\\|from trunk"
"Regexp matching logs of revisions that might be skipped.
`bzrmerge-missing' will ask you if it should skip any matches.")
--- /dev/null
+Prior to 2012/04, the Emacs repository used to contain many more tags.
+Apparently these date from ye olden days, when tags were common
+to several GNU projects. So many of them had no relevance to Emacs,
+and hence were removed. See:
+
+http://lists.gnu.org/archive/html/emacs-devel/2012-04/msg00042.html
+
+(UPDATE: It seems tag deletion is basically impossible in bzr, so all
+these tags came back.)
+
+In the unlikely event that you need them, the removed tags were:
+
+tag revision
+
+amigados-merge 14846
+before-thomas-posix1996 16843
+gcc-2_8_1-980401 20893
+gcc-2_8_1-980402 21795
+gcc-2_8_1-980407 20893
+gcc-2_8_1-980412 20893
+gcc-2_8_1-980413 20893
+gcc-2_8_1-980419 21502
+gcc-2_8_1-980426 21502
+gcc-2_8_1-980502 21795
+gcc-2_8_1-980513 21795
+gcc-2_8_1-980525 22147
+gcc-2_8_1-980529 22147
+gcc-2_8_1-980608 22147
+gcc-2_8_1-980609 22147
+gcc-2_8_1-980627 22478
+gcc-2_8_1-980705 22478
+gcc-2_8_1-980718 22478
+gcc-2_8_1-980811 22971
+gcc-2_8_1-980813 23005
+gcc-2_8_1-980928 23338
+gcc-2_8_1-980929 23338
+gcc-2_8_1-RELEASE 20893
+gcc_2_8_1-980315 20893
+gcc_2_8_1-980929 23338
+glibc-2_0_2 16843
+gnumach-release-1-1 17693
+gnumach-release-1-1-1 17693
+gnumach-release-1-1-2 18209
+gnumach-release-1-1-3 18209
+hurd-release-0-2 18209
+jimb-sync-Nov-3-1992 1552
+libc20x-97031 16843
+libc20x-970306 16843
+libc20x-970316 16843
+libc20x-970318 16843
+libc20x-970319 16843
+libc20x-970404 16843
+libc-1-90 15360
+libc-1-91 15451
+libc-1-92 15463
+libc-1-93 15702
+libc-950402 11085
+libc-950411 11255
+libc-950722 12418
+libc-950723 12418
+libc-950922 12859
+libc-951016 12859
+libc-951018 13231
+libc-951029 13231
+libc-951031 13231
+libc-951101 13231
+libc-951102 13231
+libc-951103 13231
+libc-951104 13231
+libc-951105 13231
+libc-951106 13231
+libc-951107 13231
+libc-951108 13231
+libc-951109 13231
+libc-951110 13231
+libc-951111 13231
+libc-951112 13231
+libc-951113 13231
+libc-951114 13231
+libc-951115 13231
+libc-951116 13231
+libc-951117 13231
+libc-951118 13231
+libc-951119 13231
+libc-951120 13231
+libc-951121 13231
+libc-951122 13231
+libc-951123 13231
+libc-951124 13231
+libc-951125 13231
+libc-951126 13231
+libc-951127 13231
+libc-951128 13231
+libc-951129 13231
+libc-951130 13231
+libc-951201 13679
+libc-951202 13679
+libc-951203 13679
+libc-951204 13679
+libc-951206 13686
+libc-951208 13693
+libc-951209 13693
+libc-951210 13693
+libc-951211 13693
+libc-951212 13704
+libc-951213 13704
+libc-951214 13730
+libc-951215 13730
+libc-951216 13741
+libc-951217 13741
+libc-951218 13741
+libc-951219 13741
+libc-951220 13741
+libc-951221 13741
+libc-951222 13741
+libc-951223 13741
+libc-951224 13741
+libc-951225 13741
+libc-951226 13741
+libc-951227 13741
+libc-951228 13741
+libc-951229 13741
+libc-951230 13741
+libc-951231 13741
+libc-960101 13741
+libc-960102 13741
+libc-960103 13741
+libc-960104 13741
+libc-960105 13741
+libc-960106 13741
+libc-960107 13741
+libc-960108 13741
+libc-960109 13741
+libc-960110 13741
+libc-960111 13741
+libc-960112 13741
+libc-960113 13741
+libc-960114 13741
+libc-960115 13741
+libc-960116 14192
+libc-960117 14192
+libc-960118 14213
+libc-960119 14213
+libc-960120 14213
+libc-960121 14213
+libc-960122 14213
+libc-960123 14213
+libc-960124 14213
+libc-960125 14213
+libc-960126 14213
+libc-960127 14213
+libc-960128 14213
+libc-960129 14213
+libc-960130 14213
+libc-960131 14213
+libc-960201 14449
+libc-960202 14449
+libc-960203 14473
+libc-960204 14473
+libc-960205 14473
+libc-960206 14473
+libc-960207 14473
+libc-960208 14473
+libc-960209 14473
+libc-960210 14473
+libc-960211 14540
+libc-960212 14548
+libc-960213 14562
+libc-960214 14562
+libc-960215 14562
+libc-960216 14562
+libc-960217 14562
+libc-960218 14562
+libc-960219 14562
+libc-960220 14562
+libc-960221 14562
+libc-960222 14562
+libc-960223 14562
+libc-960224 14562
+libc-960225 14562
+libc-960226 14562
+libc-960227 14562
+libc-960228 14562
+libc-960229 14562
+libc-960302 14724
+libc-960303 14724
+libc-960304 14724
+libc-960305 14753
+libc-960306 14764
+libc-960307 14764
+libc-960308 14764
+libc-960309 14764
+libc-960310 14764
+libc-960311 14764
+libc-960312 14764
+libc-960313 14764
+libc-960314 14764
+libc-960315 14809
+libc-960316 14809
+libc-960317 14809
+libc-960318 14809
+libc-960319 14809
+libc-960320 14809
+libc-960321 14809
+libc-960322 14855
+libc-960323 14855
+libc-960324 14855
+libc-960325 14855
+libc-960326 14855
+libc-960327 14855
+libc-960328 14855
+libc-960329 14912
+libc-960330 14912
+libc-960331 14912
+libc-960401 14912
+libc-960402 14912
+libc-960403 14912
+libc-960404 14912
+libc-960405 14912
+libc-960406 14912
+libc-960407 14912
+libc-960408 14912
+libc-960409 14962
+libc-960410 14962
+libc-960411 14962
+libc-960412 14962
+libc-960413 15014
+libc-960414 15014
+libc-960415 15014
+libc-960416 15014
+libc-960417 15014
+libc-960418 15014
+libc-960419 15014
+libc-960420 15014
+libc-960421 15014
+libc-960422 15014
+libc-960423 15014
+libc-960424 15014
+libc-960425 15014
+libc-960426 15014
+libc-960427 15014
+libc-960428 15014
+libc-960429 15014
+libc-960430 15014
+libc-960501 15014
+libc-960502 15014
+libc-960503 15014
+libc-960504 15014
+libc-960505 15014
+libc-960506 15014
+libc-960507 15014
+libc-960508 15014
+libc-960509 15014
+libc-960510 15014
+libc-960511 15014
+libc-960512 15014
+libc-960513 15014
+libc-960514 15014
+libc-960515 15014
+libc-960516 15014
+libc-960517 15014
+libc-960518 15014
+libc-960519 15014
+libc-960520 15014
+libc-960521 15261
+libc-960522 15278
+libc-960523 15278
+libc-960524 15278
+libc-960525 15287
+libc-960526 15287
+libc-960527 15287
+libc-960528 15287
+libc-960529 15287
+libc-960530 15287
+libc-960531 15287
+libc-960601 15287
+libc-960602 15287
+libc-960603 15287
+libc-960604 15319
+libc-960605 15334
+libc-960606 15334
+libc-960607 15334
+libc-960608 15360
+libc-960609 15360
+libc-960610 15360
+libc-960611 15360
+libc-960612 15360
+libc-960613 15360
+libc-960614 15360
+libc-960615 15360
+libc-960616 15360
+libc-960617 15360
+libc-960618 15360
+libc-960619 15451
+libc-960620 15451
+libc-960621 15463
+libc-960622 15463
+libc-960623 15463
+libc-960624 15463
+libc-960625 15463
+libc-960626 15463
+libc-960627 15463
+libc-960628 15463
+libc-960629 15554
+libc-960630 15554
+libc-960701 15554
+libc-960702 15554
+libc-960703 15554
+libc-960704 15554
+libc-960705 15554
+libc-960706 15554
+libc-960707 15554
+libc-960708 15620
+libc-960709 15620
+libc-960710 15620
+libc-960711 15620
+libc-960712 15620
+libc-960713 15620
+libc-960714 15620
+libc-960715 15673
+libc-960716 15702
+libc-960717 15702
+libc-960718 15702
+libc-960719 15702
+libc-960720 15702
+libc-960721 15702
+libc-960722 15702
+libc-960723 15702
+libc-960724 15702
+libc-960725 15702
+libc-960726 15702
+libc-960727 15702
+libc-960728 15702
+libc-960729 15702
+libc-960730 15702
+libc-960731 15702
+libc-960801 15702
+libc-960802 15702
+libc-960803 15702
+libc-960804 15702
+libc-960805 15702
+libc-960806 15702
+libc-960807 15702
+libc-960808 15702
+libc-960809 15702
+libc-960810 15702
+libc-960811 15702
+libc-960812 15702
+libc-960813 15702
+libc-960814 15702
+libc-960815 15702
+libc-960816 15702
+libc-960817 15702
+libc-960818 15702
+libc-960819 15702
+libc-960820 15702
+libc-960821 15702
+libc-960822 15702
+libc-960823 15702
+libc-960824 15702
+libc-960825 15702
+libc-960826 15702
+libc-960827 15702
+libc-960828 15702
+libc-960829 15702
+libc-960830 15702
+libc-960831 15702
+libc-960901 15702
+libc-960902 15702
+libc-960903 15702
+libc-960904 15702
+libc-960905 15702
+libc-960906 15702
+libc-960907 15702
+libc-960908 15702
+libc-960909 15702
+libc-960910 15702
+libc-960911 15702
+libc-960912 15702
+libc-960913 16178
+libc-960918 16190
+libc-960919 16190
+libc-960920 16190
+libc-960921 16190
+libc-960922 16190
+libc-960923 16190
+libc-960925 16307
+libc-960926 16307
+libc-960927 16307
+libc-960928 16307
+libc-960929 16307
+libc-961001 16307
+libc-961004 16307
+libc-961005 16307
+libc-961006 16307
+libc-961007 16307
+libc-961008 16307
+libc-961009 16307
+libc-961010 16307
+libc-961011 16307
+libc-961012 16307
+libc-961013 16307
+libc-961014 16307
+libc-961015 16307
+libc-961016 16307
+libc-961017 16307
+libc-961018 16307
+libc-961019 16307
+libc-961020 16307
+libc-961021 16307
+libc-961022 16307
+libc-961023 16307
+libc-961024 16307
+libc-961025 16307
+libc-961026 16307
+libc-961027 16307
+libc-961028 16307
+libc-961029 16482
+libc-961030 16482
+libc-961031 16482
+libc-961101 16482
+libc-961102 16482
+libc-961103 16482
+libc-961104 16482
+libc-961105 16482
+libc-961106 16482
+libc-961107 16482
+libc-961108 16540
+libc-961109 16540
+libc-961110 16540
+libc-961111 16540
+libc-961114 16576
+libc-961115 16576
+libc-961116 16576
+libc-961117 16576
+libc-961118 16576
+libc-961119 16576
+libc-961120 16601
+libc-961121 16602
+libc-961203 16607
+libc-961204 16607
+libc-961205 16607
+libc-961206 16607
+libc-961207 16607
+libc-961208 16638
+libc-961209 16638
+libc-961210 16638
+libc-961211 16664
+libc-961212 16664
+libc-961213 16664
+libc-961214 16664
+libc-961215 16664
+libc-961216 16664
+libc-961217 16664
+libc-961218 16664
+libc-961219 16664
+libc-961220 16664
+libc-961221 16664
+libc-961222 16664
+libc-961223 16664
+libc-961224 16664
+libc-961225 16664
+libc-961226 16664
+libc-961227 16664
+libc-961228 16664
+libc-961229 16664
+libc-961230 16664
+libc-961231 16664
+libc-970101 16802
+libc-970102 16802
+libc-970103 16802
+libc-970104 16821
+libc-970105 16833
+libc-970106 16833
+libc-970107 16833
+libc-970108 16843
+libc-970109 16843
+libc-970110 16843
+libc-970111 16843
+libc-970112 16843
+libc-970113 16843
+libc-970114 16843
+libc-970115 16843
+libc-970116 16843
+libc-970117 16843
+libc-970118 16843
+libc-970119 16843
+libc-970120 16843
+libc-970121 16843
+libc-970122 16843
+libc-970123 16843
+libc-970124 16843
+libc-970125 16843
+libc-970126 16843
+libc-970127 16843
+libc-970128 16843
+libc-970129 16843
+libc-970130 16843
+libc-970131 16843
+libc-970201 16843
+libc-970202 16843
+libc-970203 16843
+libc-970204 16843
+libc-970205 16843
+libc-970206 16843
+libc-970207 16843
+libc-970208 16843
+libc-970209 16843
+libc-970210 16843
+libc-970211 16843
+libc-970212 16843
+libc-970213 16843
+libc-970214 16843
+libc-970215 16843
+libc-970216 16843
+libc-970217 16843
+libc-970218 16843
+libc-970219 16843
+libc-970220 16843
+libc-970221 16843
+libc-970222 16843
+libc-970223 16843
+libc-970224 16843
+libc-970225 16843
+libc-970226 16843
+libc-970227 16843
+libc-970228 16843
+libc-970301 16843
+libc-970302 16843
+libc-970303 16843
+libc-970304 16843
+libc-970305 16843
+libc-970306 16843
+libc-970307 16843
+libc-970308 16843
+libc-970309 16843
+libc-970310 16843
+libc-970311 16843
+libc-970312 16843
+libc-970313 16843
+libc-970314 16843
+libc-970315 16843
+libc-970316 16843
+libc-970317 16843
+libc-970318 16843
+libc-970319 16843
+libc-970320 16843
+libc-970321 16843
+libc-970322 16843
+libc-970323 16843
+libc-970324 16843
+libc-970325 17242
+libc-970326 17242
+libc-970327 17242
+libc-970328 17242
+libc-970329 17242
+libc-970330 17242
+libc-970331 17242
+libc-970401 17242
+libc-970402 17242
+libc-970403 17242
+libc-970404 17242
+libc-970405 17242
+libc-970406 17242
+libc-970407 17242
+libc-970408 17242
+libc-970409 17242
+libc-970410 17242
+libc-970411 17242
+libc-970412 17404
+libc-970413 17404
+libc-970414 17404
+libc-970415 17404
+libc-970416 17404
+libc-970417 17404
+libc-970418 17500
+libc-970419 17500
+libc-970420 17500
+libc-970421 17500
+libc-970422 17500
+libc-970423 17500
+libc-970424 17500
+libc-970425 17500
+libc-970426 17500
+libc-970427 17500
+libc-970428 17500
+libc-970429 17500
+libc-970430 17500
+libc-970501 17500
+libc-970502 17500
+libc-970503 17500
+libc-970504 17500
+libc-970505 17500
+libc-970506 17675
+libc-970507 17675
+libc-970508 17693
+libc-970509 17693
+libc-970510 17693
+libc-970511 17693
+libc-970512 17693
+libc-970513 17693
+libc-970514 17693
+libc-970515 17693
+libc-970516 17693
+libc-970517 17693
+libc-970518 17693
+libc-970519 17693
+libc-970520 17693
+libc-970521 17693
+libc-970522 17693
+libc-970523 17693
+libc-970524 17693
+libc-970525 17693
+libc-970526 17693
+libc-970527 17693
+libc-970528 17693
+libc-970529 17693
+libc-970530 17693
+libc-970531 17693
+libc-970601 17693
+libc-970602 17693
+libc-970603 17693
+libc-970604 17693
+libc-970605 17693
+libc-970606 18148
+libc-970607 18148
+libc-970608 18164
+libc-970609 18174
+libc-970610 18209
+libc-970611 18209
+libc-970612 18209
+libc-970613 18209
+libc-970614 18209
+libc-970615 18209
+libc-970616 18209
+libc-970617 18209
+libc-970618 18209
+libc-970619 18209
+libc-970620 18209
+libc-970621 18209
+libc-970622 18209
+libc-970624 18421
+libc-970625 18421
+libc-970626 18421
+libc-970627 18421
+libc-970628 18473
+libc-970629 18473
+libc-970630 18473
+libc-970701 18473
+libc-970702 18473
+libc-970703 18473
+libc-970704 18473
+libc-970705 18473
+libc-970707 18663
+libc-970708 18663
+libc-970709 18663
+libc-970710 18663
+libc-970713 18663
+libc-970715 18780
+libc-970717 18824
+libc-970718 18824
+libc-970719 18824
+libc-970720 18824
+libc-970721 18889
+libc-970722 18889
+libc-970723 18889
+libc-970724 18889
+libc-970725 18889
+libc-970726 18889
+libc-970727 19000
+libc-970728 19000
+libc-970729 19030
+libc-970730 19030
+libc-970731 19030
+libc-970801 19030
+libc-970802 19074
+libc-970803 19074
+libc-970804 19074
+libc-970805 19074
+libc-970806 19074
+libc-970807 19074
+libc-970808 19074
+libc-970809 19074
+libc-970810 19074
+libc-970811 19074
+libc-970812 19074
+libc-970813 19074
+libc-970814 19074
+libc-970815 19074
+libc-970816 19074
+libc-970817 19074
+libc-970818 19074
+libc-970819 19074
+libc-970820 19074
+libc-970821 19074
+libc-970822 19074
+libc-970823 19472
+libc-970824 19472
+libc-970825 19472
+libc-970826 19472
+libc-970827 19541
+libc-970828 19541
+libc-970829 19541
+libc-970830 19541
+libc-970831 19541
+libc-970901 19541
+libc-970902 19541
+libc-970903 19541
+libc-970904 19541
+libc-970905 19541
+libc-970906 19766
+libc-970907 19766
+libc-970908 19766
+libc-970911 19861
+libc-970912 19861
+libc-970913 19861
+libc-970914 19861
+libc-970915 19861
+libc-970916 19861
+libc-970917 19861
+libc-970918 19861
+libc-970919 19861
+libc-970920 19861
+libc-970921 19861
+libc-970922 19861
+libc-970923 19861
+libc-970924 19861
+libc-970925 19861
+libc-970926 19861
+libc-970927 19861
+libc-970928 19861
+libc-970929 19861
+libc-970930 19861
+libc-971001 19861
+libc-971018 19861
+libc-971019 19861
+libc-971020 19861
+libc-971021 19861
+libc-971022 19861
+libc-971023 19861
+libc-971024 19861
+libc-971025 19861
+libc-971026 19861
+libc-971027 19861
+libc-971028 19861
+libc-971029 19861
+libc-971030 19861
+libc-971031 19861
+libc-971101 19861
+libc-971102 19861
+libc-971103 19861
+libc-971104 19861
+libc-971105 19861
+libc-971106 19861
+libc-971107 19861
+libc-971108 19861
+libc-971109 19861
+libc-971110 19861
+libc-971111 19861
+libc-971112 19861
+libc-971113 19861
+libc-971114 19861
+libc-971115 19861
+libc-971116 19861
+libc-971117 19861
+libc-971118 19861
+libc-971120 19861
+libc-971121 19861
+libc-971122 19861
+libc-971123 19861
+libc-971124 19861
+libc-971125 19861
+libc-971126 19861
+libc-971127 19861
+libc-971128 19861
+libc-971129 19861
+libc-971130 19861
+libc-971201 19861
+libc-971203 19861
+libc-971204 19861
+libc-971205 19861
+libc-971206 19861
+libc-971207 19861
+libc-971208 19861
+libc-971209 19861
+libc-971210 19861
+libc-971211 19861
+libc-971212 19861
+libc-971213 19861
+libc-971214 19861
+libc-971217 19861
+libc-971218 19861
+libc-971219 19861
+libc-971220 19861
+libc-971221 19861
+libc-971222 19861
+libc-971223 19861
+libc-971224 19861
+libc-971225 19861
+libc-971226 19861
+libc-971227 19861
+libc-971228 19861
+libc-971229 19861
+libc-971230 19861
+libc-971231 19861
+libc-980103 19861
+libc-980104 19861
+libc-980105 19861
+libc-980106 19861
+libc-980107 19861
+libc-980108 19861
+libc-980109 19861
+libc-980110 19861
+libc-980111 19861
+libc-980112 19861
+libc-980114 19861
+libc-980115 19861
+libc-980116 19861
+libc-980117 19861
+libc-980118 19861
+libc-980119 19861
+libc-980120 19861
+libc-980121 19861
+libc-980122 19861
+libc-980123 19861
+libc-980124 19861
+libc-980125 19861
+libc-980126 19861
+libc-980127 19861
+libc-980128 19861
+libc-980129 20797
+libc-980130 20797
+libc-980212 20832
+libc-980213 20832
+libc-980214 20893
+libc-980215 20893
+libc-980216 20893
+libc-980217 20893
+libc-980218 20893
+libc-980219 20893
+libc-980220 20893
+libc-980221 20893
+libc-980222 20893
+libc-980223 20893
+libc-980224 20893
+libc-980225 20893
+libc-980226 20893
+libc-980227 20893
+libc-980228 20893
+libc-980301 20893
+libc-980302 20893
+libc-980303 20893
+libc-980304 20893
+libc-980306 20893
+libc-980307 20893
+libc-980308 20893
+libc-980309 20893
+libc-980310 20893
+libc-980311 20893
+libc-980312 20893
+libc-980313 20893
+libc-980314 20893
+libc-980315 20893
+libc-980316 20893
+libc-980317 20893
+libc-980318 20893
+libc-980319 20893
+libc-980320 20893
+libc-980321 20893
+libc-980322 20893
+libc-980323 20893
+libc-980324 20893
+libc-980325 20893
+libc-980326 20893
+libc-980327 20893
+libc-980328 20893
+libc-980329 20893
+libc-980330 20893
+libc-980331 20893
+libc-980401 20893
+libc-980402 20893
+libc-980403 20893
+libc-980404 20893
+libc-980405 20893
+libc-980406 20893
+libc-980407 20893
+libc-980408 20893
+libc-980409 20893
+libc-980410 20893
+libc-980411 20893
+libc-980412 20893
+libc-980413 20893
+libc-980414 20893
+libc-980428 20893
+libc-980429 20893
+libc-980430 20893
+libc-980501 20893
+libc-980502 20893
+libc-980503 20893
+libc-980504 20893
+libc-980505 20893
+libc-980506 20893
+libc-980507 20893
+libc-980508 20893
+libc-980509 20893
+libc-980510 20893
+libc-980512 20893
+libc-980513 20893
+libc-980514 20893
+libc-980515 20893
+libc-980516 20893
+libc-980517 20893
+libc-980518 20893
+libc-980519 20893
+libc-980520 20893
+libc-980521 20893
+libc-980522 20893
+libc-980523 20893
+libc-980524 20893
+libc-980525 20893
+libc-980526 20893
+libc-980527 20893
+libc-980528 20893
+libc-980529 20893
+libc-980530 20893
+libc-980531 20893
+libc-980601 20893
+libc-980602 20893
+libc-980603 20893
+libc-980604 20893
+libc-980605 20893
+libc-980606 20893
+libc-980607 20893
+libc-980608 20893
+libc-980609 20893
+libc-980610 20893
+libc-980611 20893
+libc-980612 20893
+libc-980613 20893
+libc-980614 22478
+libc-980615 22478
+libc-980616 22478
+libc-980617 22478
+libc-980618 22478
+libc-980619 22478
+libc-980620 22478
+libc-980621 22478
+libc-980622 22478
+libc-980623 22478
+libc-980624 22478
+libc-980625 22478
+libc-980626 22478
+libc-980627 22478
+libc-980628 22478
+libc-980629 22478
+libc-980630 22478
+libc-980701 22478
+libc-980702 22478
+libc-980703 22478
+libc-980704 22478
+libc-980705 22478
+libc-980706 22478
+libc-980707 22478
+libc-980708 22478
+libc-980709 22478
+libc-980710 22478
+libc-980711 22478
+libc-980712 22478
+libc-980713 22478
+libc-980714 22478
+libc-980715 22478
+libc-980716 22478
+libc-980717 22478
+libc-980718 22478
+libc-980719 22478
+libc-980720 22787
+libc_1_09 10803
+make-3-72-9 10364
+make-3-72-10 10364
+make-3-72-11 10364
+make-3-72-12 10364
+make-3-72-13 10364
+make-3-73 10364
+make-3-73-1 10364
+make-3-73-2 10364
+make-3-73-3 11789
+make-3-74 11789
+make-3-74-1 12800
+make-3-74-2 12800
+make-3-74-3 14458
+make-3-74-4 14846
+make-3-74-5 15594
+make-3-74-6 15594
+make-3-74-7 15594
+make-3-75 15594
+make-3-75-1 18912
+make-3-75-91 18912
+make-3-75-92 19342
+make-3-75-93 21502
+make-3-76 19768
+make-3-76-1 19768
+release-0-0 15702
+release-0-1 15702
+release-1-0 17404
+Release_5_25 24283
+root-libc-2_0_x-branch 16843
-# BidiMirroring-6.0.0.txt
-# Date: 2010-06-21, 12:09:00 PDT [KW]
+# BidiMirroring-6.1.0.txt
+# Date: 2011-12-20, 19:31:00 GMT [KW, LI]
#
# Bidi_Mirroring_Glyph Property
#
# This file is an informative contributory data file in the
# Unicode Character Database.
#
-# Copyright (c) 1991-2010 Unicode, Inc.
+# Copyright (c) 1991-2011 Unicode, Inc.
# For terms of use, see http://www.unicode.org/terms_of_use.html
#
-# This data file lists characters that have the Bidi_Mirrored=True property
+# This data file lists characters that have the Bidi_Mirrored=Yes property
# value, for which there is another Unicode character that typically has a glyph
# that is the mirror image of the original character's glyph.
#
-# The repertoire covered by the file is Unicode 6.0.0.
+# The repertoire covered by the file is Unicode 6.1.0.
#
# The file contains a list of lines with mappings from one code point
# to another one for character-based mirroring.
# variable-length hexadecimal value with 4 to 6 digits.
# A comment indicates where the characters are "BEST FIT" mirroring.
#
-# Code points for which Bidi_Mirrored=True, but for which no appropriate
+# Code points for which Bidi_Mirrored=Yes, but for which no appropriate
# characters exist with mirrored glyphs, are
# listed as comments at the end of the file.
#
+# Note: (2011-12-19) There is an inconsistency between the
+# following statement about the default value
+# of the Bidi_Mirroring_Glyph property and the
+# value of the @missing line for Bidi_Mirroring_Glyph in
+# PropertyValueAliases.txt. This inconsistency was discovered too
+# late in the release process to be resolved by
+# the UTC. The inconsistency will be resolved in a future revision.
+#
# Formally, the default value of the Bidi_Mirroring_Glyph property
# for each code point is the code point itself, unless a mapping to
# some other character is specified in this data file. When a code
# at http://www.unicode.org/unicode/reports/tr9/
#
# This file was originally created by Markus Scherer.
-# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler.
+# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
+# and for Unicode 6.1 by Ken Whistler and Laurentiu Iancu.
#
# ############################################################
+#
+# Property: Bidi_Mirroring_Glyph
+#
0028; 0029 # LEFT PARENTHESIS
0029; 0028 # RIGHT PARENTHESIS
27C6; 27C5 # RIGHT S-SHAPED BAG DELIMITER
27C8; 27C9 # REVERSE SOLIDUS PRECEDING SUBSET
27C9; 27C8 # SUPERSET PRECEDING SOLIDUS
+27CB; 27CD # MATHEMATICAL RISING DIAGONAL
+27CD; 27CB # MATHEMATICAL FALLING DIAGONAL
27D5; 27D6 # LEFT OUTER JOIN
27D6; 27D5 # RIGHT OUTER JOIN
27DD; 27DE # LONG RIGHT TACK
# Makefile -- Makefile to generate character property tables.
+
+# Copyright (C) 2012 Free Software Foundation, Inc.
+
# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)
# Registration Number H13PRO009
# You should have received a copy of the GNU General Public License
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+SHELL = /bin/sh
+
+srcdir = @srcdir@
+abs_builddir = @abs_builddir@
+top_srcdir = @top_srcdir@
+abs_top_builddir = @abs_top_builddir@
-EMACS = ../../src/emacs
-DSTDIR = ../../lisp/international
-RUNEMACS = ${EMACS} -Q -batch
+EMACS = ${abs_top_builddir}/src/emacs
+DSTDIR = ${top_srcdir}/lisp/international
+emacs = ${EMACS} -batch --no-site-file --no-site-lisp
all: ${DSTDIR}/charprop.el
.el.elc:
- ${RUNEMACS} -batch -f batch-byte-compile $<
+ ${emacs} -f batch-byte-compile $<
-unidata.txt: UnicodeData.txt
- sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < UnicodeData.txt > $@
+unidata.txt: ${srcdir}/UnicodeData.txt
+ sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@
-${DSTDIR}/charprop.el: unidata-gen.elc unidata.txt
- ELC=`/bin/pwd`/unidata-gen.elc; \
- DATADIR=`/bin/pwd`; \
- DATA=unidata.txt; \
- cd ${DSTDIR}; \
- ${RUNEMACS} -batch --load $${ELC} -f unidata-gen-files $${DATADIR} $${DATA}
+${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
+ cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \
+ -f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt
+
+## Like the above, but generate in PWD rather than lisp/international.
+charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
+ ${emacs} -l ${srcdir}/unidata-gen \
+ -f unidata-gen-files ${srcdir} unidata.txt
install: charprop.el
cp charprop.el ${DSTDIR}
if test -f charprop.el; then \
rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
fi
- rm -f charprop.el unidata-gen.elc unidata.txt
+ rm -f charprop.el ${srcdir}/unidata-gen.elc unidata.txt
+
+distclean: clean
+ -rm -f ./Makefile
+
+maintainer-clean: distclean
The file `UnicodeData.txt' in this directory is a copy of
-<http://www.unicode.org/Public/UNIDATA/UnicodeData.txt> on 2009.10.1,
+<http://www.unicode.org/Public/UNIDATA/UnicodeData.txt> on 2012.04.07,
and is a part of the Unicode Character Database governed by the "UCD
Terms of Use" shown in the file `copyright.html'.
00A4;CURRENCY SIGN;Sc;0;ET;;;;;N;;;;;
00A5;YEN SIGN;Sc;0;ET;;;;;N;;;;;
00A6;BROKEN BAR;So;0;ON;;;;;N;BROKEN VERTICAL BAR;;;;
-00A7;SECTION SIGN;So;0;ON;;;;;N;;;;;
+00A7;SECTION SIGN;Po;0;ON;;;;;N;;;;;
00A8;DIAERESIS;Sk;0;ON;<compat> 0020 0308;;;;N;SPACING DIAERESIS;;;;
00A9;COPYRIGHT SIGN;So;0;ON;;;;;N;;;;;
-00AA;FEMININE ORDINAL INDICATOR;Ll;0;L;<super> 0061;;;;N;;;;;
+00AA;FEMININE ORDINAL INDICATOR;Lo;0;L;<super> 0061;;;;N;;;;;
00AB;LEFT-POINTING DOUBLE ANGLE QUOTATION MARK;Pi;0;ON;;;;;Y;LEFT POINTING GUILLEMET;;;;
00AC;NOT SIGN;Sm;0;ON;;;;;N;;;;;
00AD;SOFT HYPHEN;Cf;0;BN;;;;;N;;;;;
00B3;SUPERSCRIPT THREE;No;0;EN;<super> 0033;;3;3;N;SUPERSCRIPT DIGIT THREE;;;;
00B4;ACUTE ACCENT;Sk;0;ON;<compat> 0020 0301;;;;N;SPACING ACUTE;;;;
00B5;MICRO SIGN;Ll;0;L;<compat> 03BC;;;;N;;;039C;;039C
-00B6;PILCROW SIGN;So;0;ON;;;;;N;PARAGRAPH SIGN;;;;
+00B6;PILCROW SIGN;Po;0;ON;;;;;N;PARAGRAPH SIGN;;;;
00B7;MIDDLE DOT;Po;0;ON;;;;;N;;;;;
00B8;CEDILLA;Sk;0;ON;<compat> 0020 0327;;;;N;SPACING CEDILLA;;;;
00B9;SUPERSCRIPT ONE;No;0;EN;<super> 0031;;1;1;N;SUPERSCRIPT DIGIT ONE;;;;
-00BA;MASCULINE ORDINAL INDICATOR;Ll;0;L;<super> 006F;;;;N;;;;;
+00BA;MASCULINE ORDINAL INDICATOR;Lo;0;L;<super> 006F;;;;N;;;;;
00BB;RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK;Pf;0;ON;;;;;Y;RIGHT POINTING GUILLEMET;;;;
00BC;VULGAR FRACTION ONE QUARTER;No;0;ON;<fraction> 0031 2044 0034;;;1/4;N;FRACTION ONE QUARTER;;;;
00BD;VULGAR FRACTION ONE HALF;No;0;ON;<fraction> 0031 2044 0032;;;1/2;N;FRACTION ONE HALF;;;;
0263;LATIN SMALL LETTER GAMMA;Ll;0;L;;;;;N;;;0194;;0194
0264;LATIN SMALL LETTER RAMS HORN;Ll;0;L;;;;;N;LATIN SMALL LETTER BABY GAMMA;;;;
0265;LATIN SMALL LETTER TURNED H;Ll;0;L;;;;;N;;;A78D;;A78D
-0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;;;
+0266;LATIN SMALL LETTER H WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER H HOOK;;A7AA;;A7AA
0267;LATIN SMALL LETTER HENG WITH HOOK;Ll;0;L;;;;;N;LATIN SMALL LETTER HENG HOOK;;;;
0268;LATIN SMALL LETTER I WITH STROKE;Ll;0;L;;;;;N;LATIN SMALL LETTER BARRED I;;0197;;0197
0269;LATIN SMALL LETTER IOTA;Ll;0;L;;;;;N;;;0196;;0196
0587;ARMENIAN SMALL LIGATURE ECH YIWN;Ll;0;L;<compat> 0565 0582;;;;N;;;;;
0589;ARMENIAN FULL STOP;Po;0;L;;;;;N;ARMENIAN PERIOD;;;;
058A;ARMENIAN HYPHEN;Pd;0;ON;;;;;N;;;;;
+058F;ARMENIAN DRAM SIGN;Sc;0;ET;;;;;N;;;;;
0591;HEBREW ACCENT ETNAHTA;Mn;220;NSM;;;;;N;;;;;
0592;HEBREW ACCENT SEGOL;Mn;230;NSM;;;;;N;;;;;
0593;HEBREW ACCENT SHALSHELET;Mn;230;NSM;;;;;N;;;;;
0601;ARABIC SIGN SANAH;Cf;0;AN;;;;;N;;;;;
0602;ARABIC FOOTNOTE MARKER;Cf;0;AN;;;;;N;;;;;
0603;ARABIC SIGN SAFHA;Cf;0;AN;;;;;N;;;;;
+0604;ARABIC SIGN SAMVAT;Cf;0;AN;;;;;N;;;;;
0606;ARABIC-INDIC CUBE ROOT;Sm;0;ON;;;;;N;;;;;
0607;ARABIC-INDIC FOURTH ROOT;Sm;0;ON;;;;;N;;;;;
0608;ARABIC RAY;Sm;0;AL;;;;;N;;;;;
070B;SYRIAC HARKLEAN OBELUS;Po;0;AL;;;;;N;;;;;
070C;SYRIAC HARKLEAN METOBELUS;Po;0;AL;;;;;N;;;;;
070D;SYRIAC HARKLEAN ASTERISCUS;Po;0;AL;;;;;N;;;;;
-070F;SYRIAC ABBREVIATION MARK;Cf;0;AN;;;;;N;;;;;
+070F;SYRIAC ABBREVIATION MARK;Cf;0;AL;;;;;N;;;;;
0710;SYRIAC LETTER ALAPH;Lo;0;AL;;;;;N;;;;;
0711;SYRIAC LETTER SUPERSCRIPT ALAPH;Mn;36;NSM;;;;;N;;;;;
0712;SYRIAC LETTER BETH;Lo;0;AL;;;;;N;;;;;
085A;MANDAIC VOCALIZATION MARK;Mn;220;NSM;;;;;N;;;;;
085B;MANDAIC GEMINATION MARK;Mn;220;NSM;;;;;N;;;;;
085E;MANDAIC PUNCTUATION;Po;0;R;;;;;N;;;;;
+08A0;ARABIC LETTER BEH WITH SMALL V BELOW;Lo;0;AL;;;;;N;;;;;
+08A2;ARABIC LETTER JEEM WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A3;ARABIC LETTER TAH WITH TWO DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A4;ARABIC LETTER FEH WITH DOT BELOW AND THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A5;ARABIC LETTER QAF WITH DOT BELOW;Lo;0;AL;;;;;N;;;;;
+08A6;ARABIC LETTER LAM WITH DOUBLE BAR;Lo;0;AL;;;;;N;;;;;
+08A7;ARABIC LETTER MEEM WITH THREE DOTS ABOVE;Lo;0;AL;;;;;N;;;;;
+08A8;ARABIC LETTER YEH WITH TWO DOTS BELOW AND HAMZA ABOVE;Lo;0;AL;;;;;N;;;;;
+08A9;ARABIC LETTER YEH WITH TWO DOTS BELOW AND DOT ABOVE;Lo;0;AL;;;;;N;;;;;
+08AA;ARABIC LETTER REH WITH LOOP;Lo;0;AL;;;;;N;;;;;
+08AB;ARABIC LETTER WAW WITH DOT WITHIN;Lo;0;AL;;;;;N;;;;;
+08AC;ARABIC LETTER ROHINGYA YEH;Lo;0;AL;;;;;N;;;;;
+08E4;ARABIC CURLY FATHA;Mn;230;NSM;;;;;N;;;;;
+08E5;ARABIC CURLY DAMMA;Mn;230;NSM;;;;;N;;;;;
+08E6;ARABIC CURLY KASRA;Mn;220;NSM;;;;;N;;;;;
+08E7;ARABIC CURLY FATHATAN;Mn;230;NSM;;;;;N;;;;;
+08E8;ARABIC CURLY DAMMATAN;Mn;230;NSM;;;;;N;;;;;
+08E9;ARABIC CURLY KASRATAN;Mn;220;NSM;;;;;N;;;;;
+08EA;ARABIC TONE ONE DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+08EB;ARABIC TONE TWO DOTS ABOVE;Mn;230;NSM;;;;;N;;;;;
+08EC;ARABIC TONE LOOP ABOVE;Mn;230;NSM;;;;;N;;;;;
+08ED;ARABIC TONE ONE DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+08EE;ARABIC TONE TWO DOTS BELOW;Mn;220;NSM;;;;;N;;;;;
+08EF;ARABIC TONE LOOP BELOW;Mn;220;NSM;;;;;N;;;;;
+08F0;ARABIC OPEN FATHATAN;Mn;27;NSM;;;;;N;;;;;
+08F1;ARABIC OPEN DAMMATAN;Mn;28;NSM;;;;;N;;;;;
+08F2;ARABIC OPEN KASRATAN;Mn;29;NSM;;;;;N;;;;;
+08F3;ARABIC SMALL HIGH WAW;Mn;230;NSM;;;;;N;;;;;
+08F4;ARABIC FATHA WITH RING;Mn;230;NSM;;;;;N;;;;;
+08F5;ARABIC FATHA WITH DOT ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F6;ARABIC KASRA WITH DOT BELOW;Mn;220;NSM;;;;;N;;;;;
+08F7;ARABIC LEFT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F8;ARABIC RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08F9;ARABIC LEFT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+08FA;ARABIC RIGHT ARROWHEAD BELOW;Mn;220;NSM;;;;;N;;;;;
+08FB;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE;Mn;230;NSM;;;;;N;;;;;
+08FC;ARABIC DOUBLE RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FD;ARABIC RIGHT ARROWHEAD ABOVE WITH DOT;Mn;230;NSM;;;;;N;;;;;
+08FE;ARABIC DAMMA WITH DOT;Mn;230;NSM;;;;;N;;;;;
0900;DEVANAGARI SIGN INVERTED CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0901;DEVANAGARI SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0902;DEVANAGARI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
0AED;GUJARATI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
0AEE;GUJARATI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
0AEF;GUJARATI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+0AF0;GUJARATI ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
0AF1;GUJARATI RUPEE SIGN;Sc;0;ET;;;;;N;;;;;
0B01;ORIYA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
0B02;ORIYA SIGN ANUSVARA;Mc;0;L;;;;;N;;;;;
0ED9;LAO DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
0EDC;LAO HO NO;Lo;0;L;<compat> 0EAB 0E99;;;;N;;;;;
0EDD;LAO HO MO;Lo;0;L;<compat> 0EAB 0EA1;;;;N;;;;;
+0EDE;LAO LETTER KHMU GO;Lo;0;L;;;;;N;;;;;
+0EDF;LAO LETTER KHMU NYO;Lo;0;L;;;;;N;;;;;
0F00;TIBETAN SYLLABLE OM;Lo;0;L;;;;;N;;;;;
0F01;TIBETAN MARK GTER YIG MGO TRUNCATED A;So;0;L;;;;;N;;;;;
0F02;TIBETAN MARK GTER YIG MGO -UM RNAM BCAD MA;So;0;L;;;;;N;;;;;
0F11;TIBETAN MARK RIN CHEN SPUNGS SHAD;Po;0;L;;;;;N;TIBETAN RINCHANPHUNGSHAD;;;;
0F12;TIBETAN MARK RGYA GRAM SHAD;Po;0;L;;;;;N;;;;;
0F13;TIBETAN MARK CARET -DZUD RTAGS ME LONG CAN;So;0;L;;;;;N;;;;;
-0F14;TIBETAN MARK GTER TSHEG;So;0;L;;;;;N;TIBETAN COMMA;;;;
+0F14;TIBETAN MARK GTER TSHEG;Po;0;L;;;;;N;TIBETAN COMMA;;;;
0F15;TIBETAN LOGOTYPE SIGN CHAD RTAGS;So;0;L;;;;;N;;;;;
0F16;TIBETAN LOGOTYPE SIGN LHAG RTAGS;So;0;L;;;;;N;;;;;
0F17;TIBETAN ASTROLOGICAL SIGN SGRA GCAN -CHAR RTAGS;So;0;L;;;;;N;;;;;
10C3;GEORGIAN CAPITAL LETTER WE;Lu;0;L;;;;;N;;;;2D23;
10C4;GEORGIAN CAPITAL LETTER HAR;Lu;0;L;;;;;N;;;;2D24;
10C5;GEORGIAN CAPITAL LETTER HOE;Lu;0;L;;;;;N;;;;2D25;
+10C7;GEORGIAN CAPITAL LETTER YN;Lu;0;L;;;;;N;;;;2D27;
+10CD;GEORGIAN CAPITAL LETTER AEN;Lu;0;L;;;;;N;;;;2D2D;
10D0;GEORGIAN LETTER AN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER AN;;;;
10D1;GEORGIAN LETTER BAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER BAN;;;;
10D2;GEORGIAN LETTER GAN;Lo;0;L;;;;;N;GEORGIAN SMALL LETTER GAN;;;;
10FA;GEORGIAN LETTER AIN;Lo;0;L;;;;;N;;;;;
10FB;GEORGIAN PARAGRAPH SEPARATOR;Po;0;L;;;;;N;;;;;
10FC;MODIFIER LETTER GEORGIAN NAR;Lm;0;L;<super> 10DC;;;;N;;;;;
+10FD;GEORGIAN LETTER AEN;Lo;0;L;;;;;N;;;;;
+10FE;GEORGIAN LETTER HARD SIGN;Lo;0;L;;;;;N;;;;;
+10FF;GEORGIAN LETTER LABIAL SIGN;Lo;0;L;;;;;N;;;;;
1100;HANGUL CHOSEONG KIYEOK;Lo;0;L;;;;;N;;;;;
1101;HANGUL CHOSEONG SSANGKIYEOK;Lo;0;L;;;;;N;;;;;
1102;HANGUL CHOSEONG NIEUN;Lo;0;L;;;;;N;;;;;
135D;ETHIOPIC COMBINING GEMINATION AND VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
135E;ETHIOPIC COMBINING VOWEL LENGTH MARK;Mn;230;NSM;;;;;N;;;;;
135F;ETHIOPIC COMBINING GEMINATION MARK;Mn;230;NSM;;;;;N;;;;;
-1360;ETHIOPIC SECTION MARK;So;0;L;;;;;N;;;;;
+1360;ETHIOPIC SECTION MARK;Po;0;L;;;;;N;;;;;
1361;ETHIOPIC WORDSPACE;Po;0;L;;;;;N;;;;;
1362;ETHIOPIC FULL STOP;Po;0;L;;;;;N;;;;;
1363;ETHIOPIC COMMA;Po;0;L;;;;;N;;;;;
17B1;KHMER INDEPENDENT VOWEL QOO TYPE ONE;Lo;0;L;;;;;N;;;;;
17B2;KHMER INDEPENDENT VOWEL QOO TYPE TWO;Lo;0;L;;;;;N;;;;;
17B3;KHMER INDEPENDENT VOWEL QAU;Lo;0;L;;;;;N;;;;;
-17B4;KHMER VOWEL INHERENT AQ;Cf;0;L;;;;;N;;;;;
-17B5;KHMER VOWEL INHERENT AA;Cf;0;L;;;;;N;;;;;
+17B4;KHMER VOWEL INHERENT AQ;Mn;0;NSM;;;;;N;;;;;
+17B5;KHMER VOWEL INHERENT AA;Mn;0;NSM;;;;;N;;;;;
17B6;KHMER VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
17B7;KHMER VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
17B8;KHMER VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
1BA8;SUNDANESE VOWEL SIGN PAMEPET;Mn;0;NSM;;;;;N;;;;;
1BA9;SUNDANESE VOWEL SIGN PANEULEUNG;Mn;0;NSM;;;;;N;;;;;
1BAA;SUNDANESE SIGN PAMAAEH;Mc;9;L;;;;;N;;;;;
+1BAB;SUNDANESE SIGN VIRAMA;Mn;9;NSM;;;;;N;;;;;
+1BAC;SUNDANESE CONSONANT SIGN PASANGAN MA;Mc;0;L;;;;;N;;;;;
+1BAD;SUNDANESE CONSONANT SIGN PASANGAN WA;Mc;0;L;;;;;N;;;;;
1BAE;SUNDANESE LETTER KHA;Lo;0;L;;;;;N;;;;;
1BAF;SUNDANESE LETTER SYA;Lo;0;L;;;;;N;;;;;
1BB0;SUNDANESE DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
1BB7;SUNDANESE DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
1BB8;SUNDANESE DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
1BB9;SUNDANESE DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+1BBA;SUNDANESE AVAGRAHA;Lo;0;L;;;;;N;;;;;
+1BBB;SUNDANESE LETTER REU;Lo;0;L;;;;;N;;;;;
+1BBC;SUNDANESE LETTER LEU;Lo;0;L;;;;;N;;;;;
+1BBD;SUNDANESE LETTER BHA;Lo;0;L;;;;;N;;;;;
+1BBE;SUNDANESE LETTER FINAL K;Lo;0;L;;;;;N;;;;;
+1BBF;SUNDANESE LETTER FINAL M;Lo;0;L;;;;;N;;;;;
1BC0;BATAK LETTER A;Lo;0;L;;;;;N;;;;;
1BC1;BATAK LETTER SIMALUNGUN A;Lo;0;L;;;;;N;;;;;
1BC2;BATAK LETTER HA;Lo;0;L;;;;;N;;;;;
1C7D;OL CHIKI AHAD;Lm;0;L;;;;;N;;;;;
1C7E;OL CHIKI PUNCTUATION MUCAAD;Po;0;L;;;;;N;;;;;
1C7F;OL CHIKI PUNCTUATION DOUBLE MUCAAD;Po;0;L;;;;;N;;;;;
+1CC0;SUNDANESE PUNCTUATION BINDU SURYA;Po;0;L;;;;;N;;;;;
+1CC1;SUNDANESE PUNCTUATION BINDU PANGLONG;Po;0;L;;;;;N;;;;;
+1CC2;SUNDANESE PUNCTUATION BINDU PURNAMA;Po;0;L;;;;;N;;;;;
+1CC3;SUNDANESE PUNCTUATION BINDU CAKRA;Po;0;L;;;;;N;;;;;
+1CC4;SUNDANESE PUNCTUATION BINDU LEU SATANGA;Po;0;L;;;;;N;;;;;
+1CC5;SUNDANESE PUNCTUATION BINDU KA SATANGA;Po;0;L;;;;;N;;;;;
+1CC6;SUNDANESE PUNCTUATION BINDU DA SATANGA;Po;0;L;;;;;N;;;;;
+1CC7;SUNDANESE PUNCTUATION BINDU BA SATANGA;Po;0;L;;;;;N;;;;;
1CD0;VEDIC TONE KARSHANA;Mn;230;NSM;;;;;N;;;;;
1CD1;VEDIC TONE SHARA;Mn;230;NSM;;;;;N;;;;;
1CD2;VEDIC TONE PRENKHA;Mn;230;NSM;;;;;N;;;;;
1CF0;VEDIC SIGN RTHANG LONG ANUSVARA;Lo;0;L;;;;;N;;;;;
1CF1;VEDIC SIGN ANUSVARA UBHAYATO MUKHA;Lo;0;L;;;;;N;;;;;
1CF2;VEDIC SIGN ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
+1CF3;VEDIC SIGN ROTATED ARDHAVISARGA;Mc;0;L;;;;;N;;;;;
+1CF4;VEDIC TONE CANDRA ABOVE;Mn;230;NSM;;;;;N;;;;;
+1CF5;VEDIC SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+1CF6;VEDIC SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
1D00;LATIN LETTER SMALL CAPITAL A;Ll;0;L;;;;;N;;;;;
1D01;LATIN LETTER SMALL CAPITAL AE;Ll;0;L;;;;;N;;;;;
1D02;LATIN SMALL LETTER TURNED AE;Ll;0;L;;;;;N;;;;;
1D5F;MODIFIER LETTER SMALL DELTA;Lm;0;L;<super> 03B4;;;;N;;;;;
1D60;MODIFIER LETTER SMALL GREEK PHI;Lm;0;L;<super> 03C6;;;;N;;;;;
1D61;MODIFIER LETTER SMALL CHI;Lm;0;L;<super> 03C7;;;;N;;;;;
-1D62;LATIN SUBSCRIPT SMALL LETTER I;Ll;0;L;<sub> 0069;;;;N;;;;;
-1D63;LATIN SUBSCRIPT SMALL LETTER R;Ll;0;L;<sub> 0072;;;;N;;;;;
-1D64;LATIN SUBSCRIPT SMALL LETTER U;Ll;0;L;<sub> 0075;;;;N;;;;;
-1D65;LATIN SUBSCRIPT SMALL LETTER V;Ll;0;L;<sub> 0076;;;;N;;;;;
-1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Ll;0;L;<sub> 03B2;;;;N;;;;;
-1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Ll;0;L;<sub> 03B3;;;;N;;;;;
-1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Ll;0;L;<sub> 03C1;;;;N;;;;;
-1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Ll;0;L;<sub> 03C6;;;;N;;;;;
-1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Ll;0;L;<sub> 03C7;;;;N;;;;;
+1D62;LATIN SUBSCRIPT SMALL LETTER I;Lm;0;L;<sub> 0069;;;;N;;;;;
+1D63;LATIN SUBSCRIPT SMALL LETTER R;Lm;0;L;<sub> 0072;;;;N;;;;;
+1D64;LATIN SUBSCRIPT SMALL LETTER U;Lm;0;L;<sub> 0075;;;;N;;;;;
+1D65;LATIN SUBSCRIPT SMALL LETTER V;Lm;0;L;<sub> 0076;;;;N;;;;;
+1D66;GREEK SUBSCRIPT SMALL LETTER BETA;Lm;0;L;<sub> 03B2;;;;N;;;;;
+1D67;GREEK SUBSCRIPT SMALL LETTER GAMMA;Lm;0;L;<sub> 03B3;;;;N;;;;;
+1D68;GREEK SUBSCRIPT SMALL LETTER RHO;Lm;0;L;<sub> 03C1;;;;N;;;;;
+1D69;GREEK SUBSCRIPT SMALL LETTER PHI;Lm;0;L;<sub> 03C6;;;;N;;;;;
+1D6A;GREEK SUBSCRIPT SMALL LETTER CHI;Lm;0;L;<sub> 03C7;;;;N;;;;;
1D6B;LATIN SMALL LETTER UE;Ll;0;L;;;;;N;;;;;
1D6C;LATIN SMALL LETTER B WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
1D6D;LATIN SMALL LETTER D WITH MIDDLE TILDE;Ll;0;L;;;;;N;;;;;
27C8;REVERSE SOLIDUS PRECEDING SUBSET;Sm;0;ON;;;;;Y;;;;;
27C9;SUPERSET PRECEDING SOLIDUS;Sm;0;ON;;;;;Y;;;;;
27CA;VERTICAL BAR WITH HORIZONTAL STROKE;Sm;0;ON;;;;;N;;;;;
+27CB;MATHEMATICAL RISING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
27CC;LONG DIVISION;Sm;0;ON;;;;;Y;;;;;
+27CD;MATHEMATICAL FALLING DIAGONAL;Sm;0;ON;;;;;Y;;;;;
27CE;SQUARED LOGICAL AND;Sm;0;ON;;;;;N;;;;;
27CF;SQUARED LOGICAL OR;Sm;0;ON;;;;;N;;;;;
27D0;WHITE DIAMOND WITH CENTRED DOT;Sm;0;ON;;;;;N;;;;;
2C79;LATIN SMALL LETTER TURNED R WITH TAIL;Ll;0;L;;;;;N;;;;;
2C7A;LATIN SMALL LETTER O WITH LOW RING INSIDE;Ll;0;L;;;;;N;;;;;
2C7B;LATIN LETTER SMALL CAPITAL TURNED E;Ll;0;L;;;;;N;;;;;
-2C7C;LATIN SUBSCRIPT SMALL LETTER J;Ll;0;L;<sub> 006A;;;;N;;;;;
+2C7C;LATIN SUBSCRIPT SMALL LETTER J;Lm;0;L;<sub> 006A;;;;N;;;;;
2C7D;MODIFIER LETTER CAPITAL V;Lm;0;L;<super> 0056;;;;N;;;;;
2C7E;LATIN CAPITAL LETTER S WITH SWASH TAIL;Lu;0;L;;;;;N;;;;023F;
2C7F;LATIN CAPITAL LETTER Z WITH SWASH TAIL;Lu;0;L;;;;;N;;;;0240;
2CEF;COPTIC COMBINING NI ABOVE;Mn;230;NSM;;;;;N;;;;;
2CF0;COPTIC COMBINING SPIRITUS ASPER;Mn;230;NSM;;;;;N;;;;;
2CF1;COPTIC COMBINING SPIRITUS LENIS;Mn;230;NSM;;;;;N;;;;;
+2CF2;COPTIC CAPITAL LETTER BOHAIRIC KHEI;Lu;0;L;;;;;N;;;;2CF3;
+2CF3;COPTIC SMALL LETTER BOHAIRIC KHEI;Ll;0;L;;;;;N;;;2CF2;;2CF2
2CF9;COPTIC OLD NUBIAN FULL STOP;Po;0;ON;;;;;N;;;;;
2CFA;COPTIC OLD NUBIAN DIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
2CFB;COPTIC OLD NUBIAN INDIRECT QUESTION MARK;Po;0;ON;;;;;N;;;;;
2D23;GEORGIAN SMALL LETTER WE;Ll;0;L;;;;;N;;;10C3;;10C3
2D24;GEORGIAN SMALL LETTER HAR;Ll;0;L;;;;;N;;;10C4;;10C4
2D25;GEORGIAN SMALL LETTER HOE;Ll;0;L;;;;;N;;;10C5;;10C5
+2D27;GEORGIAN SMALL LETTER YN;Ll;0;L;;;;;N;;;10C7;;10C7
+2D2D;GEORGIAN SMALL LETTER AEN;Ll;0;L;;;;;N;;;10CD;;10CD
2D30;TIFINAGH LETTER YA;Lo;0;L;;;;;N;;;;;
2D31;TIFINAGH LETTER YAB;Lo;0;L;;;;;N;;;;;
2D32;TIFINAGH LETTER YABH;Lo;0;L;;;;;N;;;;;
2D63;TIFINAGH LETTER YAZ;Lo;0;L;;;;;N;;;;;
2D64;TIFINAGH LETTER TAWELLEMET YAZ;Lo;0;L;;;;;N;;;;;
2D65;TIFINAGH LETTER YAZZ;Lo;0;L;;;;;N;;;;;
+2D66;TIFINAGH LETTER YE;Lo;0;L;;;;;N;;;;;
+2D67;TIFINAGH LETTER YO;Lo;0;L;;;;;N;;;;;
2D6F;TIFINAGH MODIFIER LETTER LABIALIZATION MARK;Lm;0;L;<super> 2D61;;;;N;;;;;
2D70;TIFINAGH SEPARATOR MARK;Po;0;L;;;;;N;;;;;
2D7F;TIFINAGH CONSONANT JOINER;Mn;9;NSM;;;;;N;;;;;
2E2F;VERTICAL TILDE;Lm;0;ON;;;;;N;;;;;
2E30;RING POINT;Po;0;ON;;;;;N;;;;;
2E31;WORD SEPARATOR MIDDLE DOT;Po;0;ON;;;;;N;;;;;
+2E32;TURNED COMMA;Po;0;ON;;;;;N;;;;;
+2E33;RAISED DOT;Po;0;ON;;;;;N;;;;;
+2E34;RAISED COMMA;Po;0;ON;;;;;N;;;;;
+2E35;TURNED SEMICOLON;Po;0;ON;;;;;N;;;;;
+2E36;DAGGER WITH LEFT GUARD;Po;0;ON;;;;;N;;;;;
+2E37;DAGGER WITH RIGHT GUARD;Po;0;ON;;;;;N;;;;;
+2E38;TURNED DAGGER;Po;0;ON;;;;;N;;;;;
+2E39;TOP HALF SECTION SIGN;Po;0;ON;;;;;N;;;;;
+2E3A;TWO-EM DASH;Pd;0;ON;;;;;N;;;;;
+2E3B;THREE-EM DASH;Pd;0;ON;;;;;N;;;;;
2E80;CJK RADICAL REPEAT;So;0;ON;;;;;N;;;;;
2E81;CJK RADICAL CLIFF;So;0;ON;;;;;N;;;;;
2E82;CJK RADICAL SECOND ONE;So;0;ON;;;;;N;;;;;
302B;IDEOGRAPHIC RISING TONE MARK;Mn;228;NSM;;;;;N;;;;;
302C;IDEOGRAPHIC DEPARTING TONE MARK;Mn;232;NSM;;;;;N;;;;;
302D;IDEOGRAPHIC ENTERING TONE MARK;Mn;222;NSM;;;;;N;;;;;
-302E;HANGUL SINGLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
-302F;HANGUL DOUBLE DOT TONE MARK;Mn;224;NSM;;;;;N;;;;;
+302E;HANGUL SINGLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
+302F;HANGUL DOUBLE DOT TONE MARK;Mc;224;L;;;;;N;;;;;
3030;WAVY DASH;Pd;0;ON;;;;;N;;;;;
3031;VERTICAL KANA REPEAT MARK;Lm;0;L;;;;;N;;;;;
3032;VERTICAL KANA REPEAT WITH VOICED SOUND MARK;Lm;0;L;;;;;N;;;;;
3245;CIRCLED IDEOGRAPH KINDERGARTEN;So;0;L;<circle> 5E7C;;;;N;;;;;
3246;CIRCLED IDEOGRAPH SCHOOL;So;0;L;<circle> 6587;;;;N;;;;;
3247;CIRCLED IDEOGRAPH KOTO;So;0;L;<circle> 7B8F;;;;N;;;;;
-3248;CIRCLED NUMBER TEN ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
-324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;So;0;L;;;;;N;;;;;
+3248;CIRCLED NUMBER TEN ON BLACK SQUARE;No;0;L;;;;10;N;;;;;
+3249;CIRCLED NUMBER TWENTY ON BLACK SQUARE;No;0;L;;;;20;N;;;;;
+324A;CIRCLED NUMBER THIRTY ON BLACK SQUARE;No;0;L;;;;30;N;;;;;
+324B;CIRCLED NUMBER FORTY ON BLACK SQUARE;No;0;L;;;;40;N;;;;;
+324C;CIRCLED NUMBER FIFTY ON BLACK SQUARE;No;0;L;;;;50;N;;;;;
+324D;CIRCLED NUMBER SIXTY ON BLACK SQUARE;No;0;L;;;;60;N;;;;;
+324E;CIRCLED NUMBER SEVENTY ON BLACK SQUARE;No;0;L;;;;70;N;;;;;
+324F;CIRCLED NUMBER EIGHTY ON BLACK SQUARE;No;0;L;;;;80;N;;;;;
3250;PARTNERSHIP SIGN;So;0;ON;<square> 0050 0054 0045;;;;N;;;;;
3251;CIRCLED NUMBER TWENTY ONE;No;0;ON;<circle> 0032 0031;;;21;N;;;;;
3252;CIRCLED NUMBER TWENTY TWO;No;0;ON;<circle> 0032 0032;;;22;N;;;;;
4DFE;HEXAGRAM FOR AFTER COMPLETION;So;0;ON;;;;;N;;;;;
4DFF;HEXAGRAM FOR BEFORE COMPLETION;So;0;ON;;;;;N;;;;;
4E00;<CJK Ideograph, First>;Lo;0;L;;;;;N;;;;;
-9FCB;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
+9FCC;<CJK Ideograph, Last>;Lo;0;L;;;;;N;;;;;
A000;YI SYLLABLE IT;Lo;0;L;;;;;N;;;;;
A001;YI SYLLABLE IX;Lo;0;L;;;;;N;;;;;
A002;YI SYLLABLE I;Lo;0;L;;;;;N;;;;;
A671;COMBINING CYRILLIC HUNDRED MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
A672;COMBINING CYRILLIC THOUSAND MILLIONS SIGN;Me;0;NSM;;;;;N;;;;;
A673;SLAVONIC ASTERISK;Po;0;ON;;;;;N;;;;;
+A674;COMBINING CYRILLIC LETTER UKRAINIAN IE;Mn;230;NSM;;;;;N;;;;;
+A675;COMBINING CYRILLIC LETTER I;Mn;230;NSM;;;;;N;;;;;
+A676;COMBINING CYRILLIC LETTER YI;Mn;230;NSM;;;;;N;;;;;
+A677;COMBINING CYRILLIC LETTER U;Mn;230;NSM;;;;;N;;;;;
+A678;COMBINING CYRILLIC LETTER HARD SIGN;Mn;230;NSM;;;;;N;;;;;
+A679;COMBINING CYRILLIC LETTER YERU;Mn;230;NSM;;;;;N;;;;;
+A67A;COMBINING CYRILLIC LETTER SOFT SIGN;Mn;230;NSM;;;;;N;;;;;
+A67B;COMBINING CYRILLIC LETTER OMEGA;Mn;230;NSM;;;;;N;;;;;
A67C;COMBINING CYRILLIC KAVYKA;Mn;230;NSM;;;;;N;;;;;
A67D;COMBINING CYRILLIC PAYEROK;Mn;230;NSM;;;;;N;;;;;
A67E;CYRILLIC KAVYKA;Po;0;ON;;;;;N;;;;;
A695;CYRILLIC SMALL LETTER HWE;Ll;0;L;;;;;N;;;A694;;A694
A696;CYRILLIC CAPITAL LETTER SHWE;Lu;0;L;;;;;N;;;;A697;
A697;CYRILLIC SMALL LETTER SHWE;Ll;0;L;;;;;N;;;A696;;A696
+A69F;COMBINING CYRILLIC LETTER IOTIFIED E;Mn;230;NSM;;;;;N;;;;;
A6A0;BAMUM LETTER A;Lo;0;L;;;;;N;;;;;
A6A1;BAMUM LETTER KA;Lo;0;L;;;;;N;;;;;
A6A2;BAMUM LETTER U;Lo;0;L;;;;;N;;;;;
A78E;LATIN SMALL LETTER L WITH RETROFLEX HOOK AND BELT;Ll;0;L;;;;;N;;;;;
A790;LATIN CAPITAL LETTER N WITH DESCENDER;Lu;0;L;;;;;N;;;;A791;
A791;LATIN SMALL LETTER N WITH DESCENDER;Ll;0;L;;;;;N;;;A790;;A790
+A792;LATIN CAPITAL LETTER C WITH BAR;Lu;0;L;;;;;N;;;;A793;
+A793;LATIN SMALL LETTER C WITH BAR;Ll;0;L;;;;;N;;;A792;;A792
A7A0;LATIN CAPITAL LETTER G WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A1;
A7A1;LATIN SMALL LETTER G WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A0;;A7A0
A7A2;LATIN CAPITAL LETTER K WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A3;
A7A7;LATIN SMALL LETTER R WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A6;;A7A6
A7A8;LATIN CAPITAL LETTER S WITH OBLIQUE STROKE;Lu;0;L;;;;;N;;;;A7A9;
A7A9;LATIN SMALL LETTER S WITH OBLIQUE STROKE;Ll;0;L;;;;;N;;;A7A8;;A7A8
+A7AA;LATIN CAPITAL LETTER H WITH HOOK;Lu;0;L;;;;;N;;;;0266;
+A7F8;MODIFIER LETTER CAPITAL H WITH STROKE;Lm;0;L;<super> 0126;;;;N;;;;;
+A7F9;MODIFIER LETTER SMALL LIGATURE OE;Lm;0;L;<super> 0153;;;;N;;;;;
A7FA;LATIN LETTER SMALL CAPITAL TURNED M;Ll;0;L;;;;;N;;;;;
A7FB;LATIN EPIGRAPHIC LETTER REVERSED F;Lo;0;L;;;;;N;;;;;
A7FC;LATIN EPIGRAPHIC LETTER REVERSED P;Lo;0;L;;;;;N;;;;;
AADD;TAI VIET SYMBOL SAM;Lm;0;L;;;;;N;;;;;
AADE;TAI VIET SYMBOL HO HOI;Po;0;L;;;;;N;;;;;
AADF;TAI VIET SYMBOL KOI KOI;Po;0;L;;;;;N;;;;;
+AAE0;MEETEI MAYEK LETTER E;Lo;0;L;;;;;N;;;;;
+AAE1;MEETEI MAYEK LETTER O;Lo;0;L;;;;;N;;;;;
+AAE2;MEETEI MAYEK LETTER CHA;Lo;0;L;;;;;N;;;;;
+AAE3;MEETEI MAYEK LETTER NYA;Lo;0;L;;;;;N;;;;;
+AAE4;MEETEI MAYEK LETTER TTA;Lo;0;L;;;;;N;;;;;
+AAE5;MEETEI MAYEK LETTER TTHA;Lo;0;L;;;;;N;;;;;
+AAE6;MEETEI MAYEK LETTER DDA;Lo;0;L;;;;;N;;;;;
+AAE7;MEETEI MAYEK LETTER DDHA;Lo;0;L;;;;;N;;;;;
+AAE8;MEETEI MAYEK LETTER NNA;Lo;0;L;;;;;N;;;;;
+AAE9;MEETEI MAYEK LETTER SHA;Lo;0;L;;;;;N;;;;;
+AAEA;MEETEI MAYEK LETTER SSA;Lo;0;L;;;;;N;;;;;
+AAEB;MEETEI MAYEK VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+AAEC;MEETEI MAYEK VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+AAED;MEETEI MAYEK VOWEL SIGN AAI;Mn;0;NSM;;;;;N;;;;;
+AAEE;MEETEI MAYEK VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+AAEF;MEETEI MAYEK VOWEL SIGN AAU;Mc;0;L;;;;;N;;;;;
+AAF0;MEETEI MAYEK CHEIKHAN;Po;0;L;;;;;N;;;;;
+AAF1;MEETEI MAYEK AHANG KHUDAM;Po;0;L;;;;;N;;;;;
+AAF2;MEETEI MAYEK ANJI;Lo;0;L;;;;;N;;;;;
+AAF3;MEETEI MAYEK SYLLABLE REPETITION MARK;Lm;0;L;;;;;N;;;;;
+AAF4;MEETEI MAYEK WORD REPETITION MARK;Lm;0;L;;;;;N;;;;;
+AAF5;MEETEI MAYEK VOWEL SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+AAF6;MEETEI MAYEK VIRAMA;Mn;9;NSM;;;;;N;;;;;
AB01;ETHIOPIC SYLLABLE TTHU;Lo;0;L;;;;;N;;;;;
AB02;ETHIOPIC SYLLABLE TTHI;Lo;0;L;;;;;N;;;;;
AB03;ETHIOPIC SYLLABLE TTHAA;Lo;0;L;;;;;N;;;;;
FA2B;CJK COMPATIBILITY IDEOGRAPH-FA2B;Lo;0;L;98FC;;;;N;;;;;
FA2C;CJK COMPATIBILITY IDEOGRAPH-FA2C;Lo;0;L;9928;;;;N;;;;;
FA2D;CJK COMPATIBILITY IDEOGRAPH-FA2D;Lo;0;L;9DB4;;;;N;;;;;
+FA2E;CJK COMPATIBILITY IDEOGRAPH-FA2E;Lo;0;L;90DE;;;;N;;;;;
+FA2F;CJK COMPATIBILITY IDEOGRAPH-FA2F;Lo;0;L;96B7;;;;N;;;;;
FA30;CJK COMPATIBILITY IDEOGRAPH-FA30;Lo;0;L;4FAE;;;;N;;;;;
FA31;CJK COMPATIBILITY IDEOGRAPH-FA31;Lo;0;L;50E7;;;;N;;;;;
FA32;CJK COMPATIBILITY IDEOGRAPH-FA32;Lo;0;L;514D;;;;N;;;;;
100FA;LINEAR B IDEOGRAM VESSEL B305;Lo;0;L;;;;;N;;;;;
10100;AEGEAN WORD SEPARATOR LINE;Po;0;L;;;;;N;;;;;
10101;AEGEAN WORD SEPARATOR DOT;Po;0;ON;;;;;N;;;;;
-10102;AEGEAN CHECK MARK;So;0;L;;;;;N;;;;;
+10102;AEGEAN CHECK MARK;Po;0;L;;;;;N;;;;;
10107;AEGEAN NUMBER ONE;No;0;L;;;;1;N;;;;;
10108;AEGEAN NUMBER TWO;No;0;L;;;;2;N;;;;;
10109;AEGEAN NUMBER THREE;No;0;L;;;;3;N;;;;;
10938;LYDIAN LETTER NN;Lo;0;R;;;;;N;;;;;
10939;LYDIAN LETTER C;Lo;0;R;;;;;N;;;;;
1093F;LYDIAN TRIANGULAR MARK;Po;0;R;;;;;N;;;;;
+10980;MEROITIC HIEROGLYPHIC LETTER A;Lo;0;R;;;;;N;;;;;
+10981;MEROITIC HIEROGLYPHIC LETTER E;Lo;0;R;;;;;N;;;;;
+10982;MEROITIC HIEROGLYPHIC LETTER I;Lo;0;R;;;;;N;;;;;
+10983;MEROITIC HIEROGLYPHIC LETTER O;Lo;0;R;;;;;N;;;;;
+10984;MEROITIC HIEROGLYPHIC LETTER YA;Lo;0;R;;;;;N;;;;;
+10985;MEROITIC HIEROGLYPHIC LETTER WA;Lo;0;R;;;;;N;;;;;
+10986;MEROITIC HIEROGLYPHIC LETTER BA;Lo;0;R;;;;;N;;;;;
+10987;MEROITIC HIEROGLYPHIC LETTER BA-2;Lo;0;R;;;;;N;;;;;
+10988;MEROITIC HIEROGLYPHIC LETTER PA;Lo;0;R;;;;;N;;;;;
+10989;MEROITIC HIEROGLYPHIC LETTER MA;Lo;0;R;;;;;N;;;;;
+1098A;MEROITIC HIEROGLYPHIC LETTER NA;Lo;0;R;;;;;N;;;;;
+1098B;MEROITIC HIEROGLYPHIC LETTER NA-2;Lo;0;R;;;;;N;;;;;
+1098C;MEROITIC HIEROGLYPHIC LETTER NE;Lo;0;R;;;;;N;;;;;
+1098D;MEROITIC HIEROGLYPHIC LETTER NE-2;Lo;0;R;;;;;N;;;;;
+1098E;MEROITIC HIEROGLYPHIC LETTER RA;Lo;0;R;;;;;N;;;;;
+1098F;MEROITIC HIEROGLYPHIC LETTER RA-2;Lo;0;R;;;;;N;;;;;
+10990;MEROITIC HIEROGLYPHIC LETTER LA;Lo;0;R;;;;;N;;;;;
+10991;MEROITIC HIEROGLYPHIC LETTER KHA;Lo;0;R;;;;;N;;;;;
+10992;MEROITIC HIEROGLYPHIC LETTER HHA;Lo;0;R;;;;;N;;;;;
+10993;MEROITIC HIEROGLYPHIC LETTER SA;Lo;0;R;;;;;N;;;;;
+10994;MEROITIC HIEROGLYPHIC LETTER SA-2;Lo;0;R;;;;;N;;;;;
+10995;MEROITIC HIEROGLYPHIC LETTER SE;Lo;0;R;;;;;N;;;;;
+10996;MEROITIC HIEROGLYPHIC LETTER KA;Lo;0;R;;;;;N;;;;;
+10997;MEROITIC HIEROGLYPHIC LETTER QA;Lo;0;R;;;;;N;;;;;
+10998;MEROITIC HIEROGLYPHIC LETTER TA;Lo;0;R;;;;;N;;;;;
+10999;MEROITIC HIEROGLYPHIC LETTER TA-2;Lo;0;R;;;;;N;;;;;
+1099A;MEROITIC HIEROGLYPHIC LETTER TE;Lo;0;R;;;;;N;;;;;
+1099B;MEROITIC HIEROGLYPHIC LETTER TE-2;Lo;0;R;;;;;N;;;;;
+1099C;MEROITIC HIEROGLYPHIC LETTER TO;Lo;0;R;;;;;N;;;;;
+1099D;MEROITIC HIEROGLYPHIC LETTER DA;Lo;0;R;;;;;N;;;;;
+1099E;MEROITIC HIEROGLYPHIC SYMBOL VIDJ;Lo;0;R;;;;;N;;;;;
+1099F;MEROITIC HIEROGLYPHIC SYMBOL VIDJ-2;Lo;0;R;;;;;N;;;;;
+109A0;MEROITIC CURSIVE LETTER A;Lo;0;R;;;;;N;;;;;
+109A1;MEROITIC CURSIVE LETTER E;Lo;0;R;;;;;N;;;;;
+109A2;MEROITIC CURSIVE LETTER I;Lo;0;R;;;;;N;;;;;
+109A3;MEROITIC CURSIVE LETTER O;Lo;0;R;;;;;N;;;;;
+109A4;MEROITIC CURSIVE LETTER YA;Lo;0;R;;;;;N;;;;;
+109A5;MEROITIC CURSIVE LETTER WA;Lo;0;R;;;;;N;;;;;
+109A6;MEROITIC CURSIVE LETTER BA;Lo;0;R;;;;;N;;;;;
+109A7;MEROITIC CURSIVE LETTER PA;Lo;0;R;;;;;N;;;;;
+109A8;MEROITIC CURSIVE LETTER MA;Lo;0;R;;;;;N;;;;;
+109A9;MEROITIC CURSIVE LETTER NA;Lo;0;R;;;;;N;;;;;
+109AA;MEROITIC CURSIVE LETTER NE;Lo;0;R;;;;;N;;;;;
+109AB;MEROITIC CURSIVE LETTER RA;Lo;0;R;;;;;N;;;;;
+109AC;MEROITIC CURSIVE LETTER LA;Lo;0;R;;;;;N;;;;;
+109AD;MEROITIC CURSIVE LETTER KHA;Lo;0;R;;;;;N;;;;;
+109AE;MEROITIC CURSIVE LETTER HHA;Lo;0;R;;;;;N;;;;;
+109AF;MEROITIC CURSIVE LETTER SA;Lo;0;R;;;;;N;;;;;
+109B0;MEROITIC CURSIVE LETTER ARCHAIC SA;Lo;0;R;;;;;N;;;;;
+109B1;MEROITIC CURSIVE LETTER SE;Lo;0;R;;;;;N;;;;;
+109B2;MEROITIC CURSIVE LETTER KA;Lo;0;R;;;;;N;;;;;
+109B3;MEROITIC CURSIVE LETTER QA;Lo;0;R;;;;;N;;;;;
+109B4;MEROITIC CURSIVE LETTER TA;Lo;0;R;;;;;N;;;;;
+109B5;MEROITIC CURSIVE LETTER TE;Lo;0;R;;;;;N;;;;;
+109B6;MEROITIC CURSIVE LETTER TO;Lo;0;R;;;;;N;;;;;
+109B7;MEROITIC CURSIVE LETTER DA;Lo;0;R;;;;;N;;;;;
+109BE;MEROITIC CURSIVE LOGOGRAM RMT;Lo;0;R;;;;;N;;;;;
+109BF;MEROITIC CURSIVE LOGOGRAM IMN;Lo;0;R;;;;;N;;;;;
10A00;KHAROSHTHI LETTER A;Lo;0;R;;;;;N;;;;;
10A01;KHAROSHTHI VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
10A02;KHAROSHTHI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
110BF;KAITHI DOUBLE SECTION MARK;Po;0;L;;;;;N;;;;;
110C0;KAITHI DANDA;Po;0;L;;;;;N;;;;;
110C1;KAITHI DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+110D0;SORA SOMPENG LETTER SAH;Lo;0;L;;;;;N;;;;;
+110D1;SORA SOMPENG LETTER TAH;Lo;0;L;;;;;N;;;;;
+110D2;SORA SOMPENG LETTER BAH;Lo;0;L;;;;;N;;;;;
+110D3;SORA SOMPENG LETTER CAH;Lo;0;L;;;;;N;;;;;
+110D4;SORA SOMPENG LETTER DAH;Lo;0;L;;;;;N;;;;;
+110D5;SORA SOMPENG LETTER GAH;Lo;0;L;;;;;N;;;;;
+110D6;SORA SOMPENG LETTER MAH;Lo;0;L;;;;;N;;;;;
+110D7;SORA SOMPENG LETTER NGAH;Lo;0;L;;;;;N;;;;;
+110D8;SORA SOMPENG LETTER LAH;Lo;0;L;;;;;N;;;;;
+110D9;SORA SOMPENG LETTER NAH;Lo;0;L;;;;;N;;;;;
+110DA;SORA SOMPENG LETTER VAH;Lo;0;L;;;;;N;;;;;
+110DB;SORA SOMPENG LETTER PAH;Lo;0;L;;;;;N;;;;;
+110DC;SORA SOMPENG LETTER YAH;Lo;0;L;;;;;N;;;;;
+110DD;SORA SOMPENG LETTER RAH;Lo;0;L;;;;;N;;;;;
+110DE;SORA SOMPENG LETTER HAH;Lo;0;L;;;;;N;;;;;
+110DF;SORA SOMPENG LETTER KAH;Lo;0;L;;;;;N;;;;;
+110E0;SORA SOMPENG LETTER JAH;Lo;0;L;;;;;N;;;;;
+110E1;SORA SOMPENG LETTER NYAH;Lo;0;L;;;;;N;;;;;
+110E2;SORA SOMPENG LETTER AH;Lo;0;L;;;;;N;;;;;
+110E3;SORA SOMPENG LETTER EEH;Lo;0;L;;;;;N;;;;;
+110E4;SORA SOMPENG LETTER IH;Lo;0;L;;;;;N;;;;;
+110E5;SORA SOMPENG LETTER UH;Lo;0;L;;;;;N;;;;;
+110E6;SORA SOMPENG LETTER OH;Lo;0;L;;;;;N;;;;;
+110E7;SORA SOMPENG LETTER EH;Lo;0;L;;;;;N;;;;;
+110E8;SORA SOMPENG LETTER MAE;Lo;0;L;;;;;N;;;;;
+110F0;SORA SOMPENG DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+110F1;SORA SOMPENG DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+110F2;SORA SOMPENG DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+110F3;SORA SOMPENG DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+110F4;SORA SOMPENG DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+110F5;SORA SOMPENG DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+110F6;SORA SOMPENG DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+110F7;SORA SOMPENG DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+110F8;SORA SOMPENG DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+110F9;SORA SOMPENG DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11100;CHAKMA SIGN CANDRABINDU;Mn;230;NSM;;;;;N;;;;;
+11101;CHAKMA SIGN ANUSVARA;Mn;230;NSM;;;;;N;;;;;
+11102;CHAKMA SIGN VISARGA;Mn;230;NSM;;;;;N;;;;;
+11103;CHAKMA LETTER AA;Lo;0;L;;;;;N;;;;;
+11104;CHAKMA LETTER I;Lo;0;L;;;;;N;;;;;
+11105;CHAKMA LETTER U;Lo;0;L;;;;;N;;;;;
+11106;CHAKMA LETTER E;Lo;0;L;;;;;N;;;;;
+11107;CHAKMA LETTER KAA;Lo;0;L;;;;;N;;;;;
+11108;CHAKMA LETTER KHAA;Lo;0;L;;;;;N;;;;;
+11109;CHAKMA LETTER GAA;Lo;0;L;;;;;N;;;;;
+1110A;CHAKMA LETTER GHAA;Lo;0;L;;;;;N;;;;;
+1110B;CHAKMA LETTER NGAA;Lo;0;L;;;;;N;;;;;
+1110C;CHAKMA LETTER CAA;Lo;0;L;;;;;N;;;;;
+1110D;CHAKMA LETTER CHAA;Lo;0;L;;;;;N;;;;;
+1110E;CHAKMA LETTER JAA;Lo;0;L;;;;;N;;;;;
+1110F;CHAKMA LETTER JHAA;Lo;0;L;;;;;N;;;;;
+11110;CHAKMA LETTER NYAA;Lo;0;L;;;;;N;;;;;
+11111;CHAKMA LETTER TTAA;Lo;0;L;;;;;N;;;;;
+11112;CHAKMA LETTER TTHAA;Lo;0;L;;;;;N;;;;;
+11113;CHAKMA LETTER DDAA;Lo;0;L;;;;;N;;;;;
+11114;CHAKMA LETTER DDHAA;Lo;0;L;;;;;N;;;;;
+11115;CHAKMA LETTER NNAA;Lo;0;L;;;;;N;;;;;
+11116;CHAKMA LETTER TAA;Lo;0;L;;;;;N;;;;;
+11117;CHAKMA LETTER THAA;Lo;0;L;;;;;N;;;;;
+11118;CHAKMA LETTER DAA;Lo;0;L;;;;;N;;;;;
+11119;CHAKMA LETTER DHAA;Lo;0;L;;;;;N;;;;;
+1111A;CHAKMA LETTER NAA;Lo;0;L;;;;;N;;;;;
+1111B;CHAKMA LETTER PAA;Lo;0;L;;;;;N;;;;;
+1111C;CHAKMA LETTER PHAA;Lo;0;L;;;;;N;;;;;
+1111D;CHAKMA LETTER BAA;Lo;0;L;;;;;N;;;;;
+1111E;CHAKMA LETTER BHAA;Lo;0;L;;;;;N;;;;;
+1111F;CHAKMA LETTER MAA;Lo;0;L;;;;;N;;;;;
+11120;CHAKMA LETTER YYAA;Lo;0;L;;;;;N;;;;;
+11121;CHAKMA LETTER YAA;Lo;0;L;;;;;N;;;;;
+11122;CHAKMA LETTER RAA;Lo;0;L;;;;;N;;;;;
+11123;CHAKMA LETTER LAA;Lo;0;L;;;;;N;;;;;
+11124;CHAKMA LETTER WAA;Lo;0;L;;;;;N;;;;;
+11125;CHAKMA LETTER SAA;Lo;0;L;;;;;N;;;;;
+11126;CHAKMA LETTER HAA;Lo;0;L;;;;;N;;;;;
+11127;CHAKMA VOWEL SIGN A;Mn;0;NSM;;;;;N;;;;;
+11128;CHAKMA VOWEL SIGN I;Mn;0;NSM;;;;;N;;;;;
+11129;CHAKMA VOWEL SIGN II;Mn;0;NSM;;;;;N;;;;;
+1112A;CHAKMA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+1112B;CHAKMA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+1112C;CHAKMA VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+1112D;CHAKMA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+1112E;CHAKMA VOWEL SIGN O;Mn;0;NSM;11131 11127;;;;N;;;;;
+1112F;CHAKMA VOWEL SIGN AU;Mn;0;NSM;11132 11127;;;;N;;;;;
+11130;CHAKMA VOWEL SIGN OI;Mn;0;NSM;;;;;N;;;;;
+11131;CHAKMA O MARK;Mn;0;NSM;;;;;N;;;;;
+11132;CHAKMA AU MARK;Mn;0;NSM;;;;;N;;;;;
+11133;CHAKMA VIRAMA;Mn;9;NSM;;;;;N;;;;;
+11134;CHAKMA MAAYYAA;Mn;9;NSM;;;;;N;;;;;
+11136;CHAKMA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+11137;CHAKMA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+11138;CHAKMA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+11139;CHAKMA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+1113A;CHAKMA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+1113B;CHAKMA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+1113C;CHAKMA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+1113D;CHAKMA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+1113E;CHAKMA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+1113F;CHAKMA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11140;CHAKMA SECTION MARK;Po;0;L;;;;;N;;;;;
+11141;CHAKMA DANDA;Po;0;L;;;;;N;;;;;
+11142;CHAKMA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+11143;CHAKMA QUESTION MARK;Po;0;L;;;;;N;;;;;
+11180;SHARADA SIGN CANDRABINDU;Mn;0;NSM;;;;;N;;;;;
+11181;SHARADA SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+11182;SHARADA SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+11183;SHARADA LETTER A;Lo;0;L;;;;;N;;;;;
+11184;SHARADA LETTER AA;Lo;0;L;;;;;N;;;;;
+11185;SHARADA LETTER I;Lo;0;L;;;;;N;;;;;
+11186;SHARADA LETTER II;Lo;0;L;;;;;N;;;;;
+11187;SHARADA LETTER U;Lo;0;L;;;;;N;;;;;
+11188;SHARADA LETTER UU;Lo;0;L;;;;;N;;;;;
+11189;SHARADA LETTER VOCALIC R;Lo;0;L;;;;;N;;;;;
+1118A;SHARADA LETTER VOCALIC RR;Lo;0;L;;;;;N;;;;;
+1118B;SHARADA LETTER VOCALIC L;Lo;0;L;;;;;N;;;;;
+1118C;SHARADA LETTER VOCALIC LL;Lo;0;L;;;;;N;;;;;
+1118D;SHARADA LETTER E;Lo;0;L;;;;;N;;;;;
+1118E;SHARADA LETTER AI;Lo;0;L;;;;;N;;;;;
+1118F;SHARADA LETTER O;Lo;0;L;;;;;N;;;;;
+11190;SHARADA LETTER AU;Lo;0;L;;;;;N;;;;;
+11191;SHARADA LETTER KA;Lo;0;L;;;;;N;;;;;
+11192;SHARADA LETTER KHA;Lo;0;L;;;;;N;;;;;
+11193;SHARADA LETTER GA;Lo;0;L;;;;;N;;;;;
+11194;SHARADA LETTER GHA;Lo;0;L;;;;;N;;;;;
+11195;SHARADA LETTER NGA;Lo;0;L;;;;;N;;;;;
+11196;SHARADA LETTER CA;Lo;0;L;;;;;N;;;;;
+11197;SHARADA LETTER CHA;Lo;0;L;;;;;N;;;;;
+11198;SHARADA LETTER JA;Lo;0;L;;;;;N;;;;;
+11199;SHARADA LETTER JHA;Lo;0;L;;;;;N;;;;;
+1119A;SHARADA LETTER NYA;Lo;0;L;;;;;N;;;;;
+1119B;SHARADA LETTER TTA;Lo;0;L;;;;;N;;;;;
+1119C;SHARADA LETTER TTHA;Lo;0;L;;;;;N;;;;;
+1119D;SHARADA LETTER DDA;Lo;0;L;;;;;N;;;;;
+1119E;SHARADA LETTER DDHA;Lo;0;L;;;;;N;;;;;
+1119F;SHARADA LETTER NNA;Lo;0;L;;;;;N;;;;;
+111A0;SHARADA LETTER TA;Lo;0;L;;;;;N;;;;;
+111A1;SHARADA LETTER THA;Lo;0;L;;;;;N;;;;;
+111A2;SHARADA LETTER DA;Lo;0;L;;;;;N;;;;;
+111A3;SHARADA LETTER DHA;Lo;0;L;;;;;N;;;;;
+111A4;SHARADA LETTER NA;Lo;0;L;;;;;N;;;;;
+111A5;SHARADA LETTER PA;Lo;0;L;;;;;N;;;;;
+111A6;SHARADA LETTER PHA;Lo;0;L;;;;;N;;;;;
+111A7;SHARADA LETTER BA;Lo;0;L;;;;;N;;;;;
+111A8;SHARADA LETTER BHA;Lo;0;L;;;;;N;;;;;
+111A9;SHARADA LETTER MA;Lo;0;L;;;;;N;;;;;
+111AA;SHARADA LETTER YA;Lo;0;L;;;;;N;;;;;
+111AB;SHARADA LETTER RA;Lo;0;L;;;;;N;;;;;
+111AC;SHARADA LETTER LA;Lo;0;L;;;;;N;;;;;
+111AD;SHARADA LETTER LLA;Lo;0;L;;;;;N;;;;;
+111AE;SHARADA LETTER VA;Lo;0;L;;;;;N;;;;;
+111AF;SHARADA LETTER SHA;Lo;0;L;;;;;N;;;;;
+111B0;SHARADA LETTER SSA;Lo;0;L;;;;;N;;;;;
+111B1;SHARADA LETTER SA;Lo;0;L;;;;;N;;;;;
+111B2;SHARADA LETTER HA;Lo;0;L;;;;;N;;;;;
+111B3;SHARADA VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+111B4;SHARADA VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+111B5;SHARADA VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+111B6;SHARADA VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+111B7;SHARADA VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+111B8;SHARADA VOWEL SIGN VOCALIC R;Mn;0;NSM;;;;;N;;;;;
+111B9;SHARADA VOWEL SIGN VOCALIC RR;Mn;0;NSM;;;;;N;;;;;
+111BA;SHARADA VOWEL SIGN VOCALIC L;Mn;0;NSM;;;;;N;;;;;
+111BB;SHARADA VOWEL SIGN VOCALIC LL;Mn;0;NSM;;;;;N;;;;;
+111BC;SHARADA VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+111BD;SHARADA VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+111BE;SHARADA VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+111BF;SHARADA VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+111C0;SHARADA SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+111C1;SHARADA SIGN AVAGRAHA;Lo;0;L;;;;;N;;;;;
+111C2;SHARADA SIGN JIHVAMULIYA;Lo;0;L;;;;;N;;;;;
+111C3;SHARADA SIGN UPADHMANIYA;Lo;0;L;;;;;N;;;;;
+111C4;SHARADA OM;Lo;0;L;;;;;N;;;;;
+111C5;SHARADA DANDA;Po;0;L;;;;;N;;;;;
+111C6;SHARADA DOUBLE DANDA;Po;0;L;;;;;N;;;;;
+111C7;SHARADA ABBREVIATION SIGN;Po;0;L;;;;;N;;;;;
+111C8;SHARADA SEPARATOR;Po;0;L;;;;;N;;;;;
+111D0;SHARADA DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+111D1;SHARADA DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+111D2;SHARADA DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+111D3;SHARADA DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+111D4;SHARADA DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+111D5;SHARADA DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+111D6;SHARADA DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+111D7;SHARADA DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+111D8;SHARADA DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+111D9;SHARADA DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
+11680;TAKRI LETTER A;Lo;0;L;;;;;N;;;;;
+11681;TAKRI LETTER AA;Lo;0;L;;;;;N;;;;;
+11682;TAKRI LETTER I;Lo;0;L;;;;;N;;;;;
+11683;TAKRI LETTER II;Lo;0;L;;;;;N;;;;;
+11684;TAKRI LETTER U;Lo;0;L;;;;;N;;;;;
+11685;TAKRI LETTER UU;Lo;0;L;;;;;N;;;;;
+11686;TAKRI LETTER E;Lo;0;L;;;;;N;;;;;
+11687;TAKRI LETTER AI;Lo;0;L;;;;;N;;;;;
+11688;TAKRI LETTER O;Lo;0;L;;;;;N;;;;;
+11689;TAKRI LETTER AU;Lo;0;L;;;;;N;;;;;
+1168A;TAKRI LETTER KA;Lo;0;L;;;;;N;;;;;
+1168B;TAKRI LETTER KHA;Lo;0;L;;;;;N;;;;;
+1168C;TAKRI LETTER GA;Lo;0;L;;;;;N;;;;;
+1168D;TAKRI LETTER GHA;Lo;0;L;;;;;N;;;;;
+1168E;TAKRI LETTER NGA;Lo;0;L;;;;;N;;;;;
+1168F;TAKRI LETTER CA;Lo;0;L;;;;;N;;;;;
+11690;TAKRI LETTER CHA;Lo;0;L;;;;;N;;;;;
+11691;TAKRI LETTER JA;Lo;0;L;;;;;N;;;;;
+11692;TAKRI LETTER JHA;Lo;0;L;;;;;N;;;;;
+11693;TAKRI LETTER NYA;Lo;0;L;;;;;N;;;;;
+11694;TAKRI LETTER TTA;Lo;0;L;;;;;N;;;;;
+11695;TAKRI LETTER TTHA;Lo;0;L;;;;;N;;;;;
+11696;TAKRI LETTER DDA;Lo;0;L;;;;;N;;;;;
+11697;TAKRI LETTER DDHA;Lo;0;L;;;;;N;;;;;
+11698;TAKRI LETTER NNA;Lo;0;L;;;;;N;;;;;
+11699;TAKRI LETTER TA;Lo;0;L;;;;;N;;;;;
+1169A;TAKRI LETTER THA;Lo;0;L;;;;;N;;;;;
+1169B;TAKRI LETTER DA;Lo;0;L;;;;;N;;;;;
+1169C;TAKRI LETTER DHA;Lo;0;L;;;;;N;;;;;
+1169D;TAKRI LETTER NA;Lo;0;L;;;;;N;;;;;
+1169E;TAKRI LETTER PA;Lo;0;L;;;;;N;;;;;
+1169F;TAKRI LETTER PHA;Lo;0;L;;;;;N;;;;;
+116A0;TAKRI LETTER BA;Lo;0;L;;;;;N;;;;;
+116A1;TAKRI LETTER BHA;Lo;0;L;;;;;N;;;;;
+116A2;TAKRI LETTER MA;Lo;0;L;;;;;N;;;;;
+116A3;TAKRI LETTER YA;Lo;0;L;;;;;N;;;;;
+116A4;TAKRI LETTER RA;Lo;0;L;;;;;N;;;;;
+116A5;TAKRI LETTER LA;Lo;0;L;;;;;N;;;;;
+116A6;TAKRI LETTER VA;Lo;0;L;;;;;N;;;;;
+116A7;TAKRI LETTER SHA;Lo;0;L;;;;;N;;;;;
+116A8;TAKRI LETTER SA;Lo;0;L;;;;;N;;;;;
+116A9;TAKRI LETTER HA;Lo;0;L;;;;;N;;;;;
+116AA;TAKRI LETTER RRA;Lo;0;L;;;;;N;;;;;
+116AB;TAKRI SIGN ANUSVARA;Mn;0;NSM;;;;;N;;;;;
+116AC;TAKRI SIGN VISARGA;Mc;0;L;;;;;N;;;;;
+116AD;TAKRI VOWEL SIGN AA;Mn;0;NSM;;;;;N;;;;;
+116AE;TAKRI VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+116AF;TAKRI VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+116B0;TAKRI VOWEL SIGN U;Mn;0;NSM;;;;;N;;;;;
+116B1;TAKRI VOWEL SIGN UU;Mn;0;NSM;;;;;N;;;;;
+116B2;TAKRI VOWEL SIGN E;Mn;0;NSM;;;;;N;;;;;
+116B3;TAKRI VOWEL SIGN AI;Mn;0;NSM;;;;;N;;;;;
+116B4;TAKRI VOWEL SIGN O;Mn;0;NSM;;;;;N;;;;;
+116B5;TAKRI VOWEL SIGN AU;Mn;0;NSM;;;;;N;;;;;
+116B6;TAKRI SIGN VIRAMA;Mc;9;L;;;;;N;;;;;
+116B7;TAKRI SIGN NUKTA;Mn;7;NSM;;;;;N;;;;;
+116C0;TAKRI DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
+116C1;TAKRI DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
+116C2;TAKRI DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
+116C3;TAKRI DIGIT THREE;Nd;0;L;;3;3;3;N;;;;;
+116C4;TAKRI DIGIT FOUR;Nd;0;L;;4;4;4;N;;;;;
+116C5;TAKRI DIGIT FIVE;Nd;0;L;;5;5;5;N;;;;;
+116C6;TAKRI DIGIT SIX;Nd;0;L;;6;6;6;N;;;;;
+116C7;TAKRI DIGIT SEVEN;Nd;0;L;;7;7;7;N;;;;;
+116C8;TAKRI DIGIT EIGHT;Nd;0;L;;8;8;8;N;;;;;
+116C9;TAKRI DIGIT NINE;Nd;0;L;;9;9;9;N;;;;;
12000;CUNEIFORM SIGN A;Lo;0;L;;;;;N;;;;;
12001;CUNEIFORM SIGN A TIMES A;Lo;0;L;;;;;N;;;;;
12002;CUNEIFORM SIGN A TIMES BAD;Lo;0;L;;;;;N;;;;;
16A36;BAMUM LETTER PHASE-F KPA;Lo;0;L;;;;;N;;;;;
16A37;BAMUM LETTER PHASE-F SAMBA;Lo;0;L;;;;;N;;;;;
16A38;BAMUM LETTER PHASE-F VUEQ;Lo;0;L;;;;;N;;;;;
+16F00;MIAO LETTER PA;Lo;0;L;;;;;N;;;;;
+16F01;MIAO LETTER BA;Lo;0;L;;;;;N;;;;;
+16F02;MIAO LETTER YI PA;Lo;0;L;;;;;N;;;;;
+16F03;MIAO LETTER PLA;Lo;0;L;;;;;N;;;;;
+16F04;MIAO LETTER MA;Lo;0;L;;;;;N;;;;;
+16F05;MIAO LETTER MHA;Lo;0;L;;;;;N;;;;;
+16F06;MIAO LETTER ARCHAIC MA;Lo;0;L;;;;;N;;;;;
+16F07;MIAO LETTER FA;Lo;0;L;;;;;N;;;;;
+16F08;MIAO LETTER VA;Lo;0;L;;;;;N;;;;;
+16F09;MIAO LETTER VFA;Lo;0;L;;;;;N;;;;;
+16F0A;MIAO LETTER TA;Lo;0;L;;;;;N;;;;;
+16F0B;MIAO LETTER DA;Lo;0;L;;;;;N;;;;;
+16F0C;MIAO LETTER YI TTA;Lo;0;L;;;;;N;;;;;
+16F0D;MIAO LETTER YI TA;Lo;0;L;;;;;N;;;;;
+16F0E;MIAO LETTER TTA;Lo;0;L;;;;;N;;;;;
+16F0F;MIAO LETTER DDA;Lo;0;L;;;;;N;;;;;
+16F10;MIAO LETTER NA;Lo;0;L;;;;;N;;;;;
+16F11;MIAO LETTER NHA;Lo;0;L;;;;;N;;;;;
+16F12;MIAO LETTER YI NNA;Lo;0;L;;;;;N;;;;;
+16F13;MIAO LETTER ARCHAIC NA;Lo;0;L;;;;;N;;;;;
+16F14;MIAO LETTER NNA;Lo;0;L;;;;;N;;;;;
+16F15;MIAO LETTER NNHA;Lo;0;L;;;;;N;;;;;
+16F16;MIAO LETTER LA;Lo;0;L;;;;;N;;;;;
+16F17;MIAO LETTER LYA;Lo;0;L;;;;;N;;;;;
+16F18;MIAO LETTER LHA;Lo;0;L;;;;;N;;;;;
+16F19;MIAO LETTER LHYA;Lo;0;L;;;;;N;;;;;
+16F1A;MIAO LETTER TLHA;Lo;0;L;;;;;N;;;;;
+16F1B;MIAO LETTER DLHA;Lo;0;L;;;;;N;;;;;
+16F1C;MIAO LETTER TLHYA;Lo;0;L;;;;;N;;;;;
+16F1D;MIAO LETTER DLHYA;Lo;0;L;;;;;N;;;;;
+16F1E;MIAO LETTER KA;Lo;0;L;;;;;N;;;;;
+16F1F;MIAO LETTER GA;Lo;0;L;;;;;N;;;;;
+16F20;MIAO LETTER YI KA;Lo;0;L;;;;;N;;;;;
+16F21;MIAO LETTER QA;Lo;0;L;;;;;N;;;;;
+16F22;MIAO LETTER QGA;Lo;0;L;;;;;N;;;;;
+16F23;MIAO LETTER NGA;Lo;0;L;;;;;N;;;;;
+16F24;MIAO LETTER NGHA;Lo;0;L;;;;;N;;;;;
+16F25;MIAO LETTER ARCHAIC NGA;Lo;0;L;;;;;N;;;;;
+16F26;MIAO LETTER HA;Lo;0;L;;;;;N;;;;;
+16F27;MIAO LETTER XA;Lo;0;L;;;;;N;;;;;
+16F28;MIAO LETTER GHA;Lo;0;L;;;;;N;;;;;
+16F29;MIAO LETTER GHHA;Lo;0;L;;;;;N;;;;;
+16F2A;MIAO LETTER TSSA;Lo;0;L;;;;;N;;;;;
+16F2B;MIAO LETTER DZZA;Lo;0;L;;;;;N;;;;;
+16F2C;MIAO LETTER NYA;Lo;0;L;;;;;N;;;;;
+16F2D;MIAO LETTER NYHA;Lo;0;L;;;;;N;;;;;
+16F2E;MIAO LETTER TSHA;Lo;0;L;;;;;N;;;;;
+16F2F;MIAO LETTER DZHA;Lo;0;L;;;;;N;;;;;
+16F30;MIAO LETTER YI TSHA;Lo;0;L;;;;;N;;;;;
+16F31;MIAO LETTER YI DZHA;Lo;0;L;;;;;N;;;;;
+16F32;MIAO LETTER REFORMED TSHA;Lo;0;L;;;;;N;;;;;
+16F33;MIAO LETTER SHA;Lo;0;L;;;;;N;;;;;
+16F34;MIAO LETTER SSA;Lo;0;L;;;;;N;;;;;
+16F35;MIAO LETTER ZHA;Lo;0;L;;;;;N;;;;;
+16F36;MIAO LETTER ZSHA;Lo;0;L;;;;;N;;;;;
+16F37;MIAO LETTER TSA;Lo;0;L;;;;;N;;;;;
+16F38;MIAO LETTER DZA;Lo;0;L;;;;;N;;;;;
+16F39;MIAO LETTER YI TSA;Lo;0;L;;;;;N;;;;;
+16F3A;MIAO LETTER SA;Lo;0;L;;;;;N;;;;;
+16F3B;MIAO LETTER ZA;Lo;0;L;;;;;N;;;;;
+16F3C;MIAO LETTER ZSA;Lo;0;L;;;;;N;;;;;
+16F3D;MIAO LETTER ZZA;Lo;0;L;;;;;N;;;;;
+16F3E;MIAO LETTER ZZSA;Lo;0;L;;;;;N;;;;;
+16F3F;MIAO LETTER ARCHAIC ZZA;Lo;0;L;;;;;N;;;;;
+16F40;MIAO LETTER ZZYA;Lo;0;L;;;;;N;;;;;
+16F41;MIAO LETTER ZZSYA;Lo;0;L;;;;;N;;;;;
+16F42;MIAO LETTER WA;Lo;0;L;;;;;N;;;;;
+16F43;MIAO LETTER AH;Lo;0;L;;;;;N;;;;;
+16F44;MIAO LETTER HHA;Lo;0;L;;;;;N;;;;;
+16F50;MIAO LETTER NASALIZATION;Lo;0;L;;;;;N;;;;;
+16F51;MIAO SIGN ASPIRATION;Mc;0;L;;;;;N;;;;;
+16F52;MIAO SIGN REFORMED VOICING;Mc;0;L;;;;;N;;;;;
+16F53;MIAO SIGN REFORMED ASPIRATION;Mc;0;L;;;;;N;;;;;
+16F54;MIAO VOWEL SIGN A;Mc;0;L;;;;;N;;;;;
+16F55;MIAO VOWEL SIGN AA;Mc;0;L;;;;;N;;;;;
+16F56;MIAO VOWEL SIGN AHH;Mc;0;L;;;;;N;;;;;
+16F57;MIAO VOWEL SIGN AN;Mc;0;L;;;;;N;;;;;
+16F58;MIAO VOWEL SIGN ANG;Mc;0;L;;;;;N;;;;;
+16F59;MIAO VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
+16F5A;MIAO VOWEL SIGN OO;Mc;0;L;;;;;N;;;;;
+16F5B;MIAO VOWEL SIGN WO;Mc;0;L;;;;;N;;;;;
+16F5C;MIAO VOWEL SIGN W;Mc;0;L;;;;;N;;;;;
+16F5D;MIAO VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
+16F5E;MIAO VOWEL SIGN EN;Mc;0;L;;;;;N;;;;;
+16F5F;MIAO VOWEL SIGN ENG;Mc;0;L;;;;;N;;;;;
+16F60;MIAO VOWEL SIGN OEY;Mc;0;L;;;;;N;;;;;
+16F61;MIAO VOWEL SIGN I;Mc;0;L;;;;;N;;;;;
+16F62;MIAO VOWEL SIGN IA;Mc;0;L;;;;;N;;;;;
+16F63;MIAO VOWEL SIGN IAN;Mc;0;L;;;;;N;;;;;
+16F64;MIAO VOWEL SIGN IANG;Mc;0;L;;;;;N;;;;;
+16F65;MIAO VOWEL SIGN IO;Mc;0;L;;;;;N;;;;;
+16F66;MIAO VOWEL SIGN IE;Mc;0;L;;;;;N;;;;;
+16F67;MIAO VOWEL SIGN II;Mc;0;L;;;;;N;;;;;
+16F68;MIAO VOWEL SIGN IU;Mc;0;L;;;;;N;;;;;
+16F69;MIAO VOWEL SIGN ING;Mc;0;L;;;;;N;;;;;
+16F6A;MIAO VOWEL SIGN U;Mc;0;L;;;;;N;;;;;
+16F6B;MIAO VOWEL SIGN UA;Mc;0;L;;;;;N;;;;;
+16F6C;MIAO VOWEL SIGN UAN;Mc;0;L;;;;;N;;;;;
+16F6D;MIAO VOWEL SIGN UANG;Mc;0;L;;;;;N;;;;;
+16F6E;MIAO VOWEL SIGN UU;Mc;0;L;;;;;N;;;;;
+16F6F;MIAO VOWEL SIGN UEI;Mc;0;L;;;;;N;;;;;
+16F70;MIAO VOWEL SIGN UNG;Mc;0;L;;;;;N;;;;;
+16F71;MIAO VOWEL SIGN Y;Mc;0;L;;;;;N;;;;;
+16F72;MIAO VOWEL SIGN YI;Mc;0;L;;;;;N;;;;;
+16F73;MIAO VOWEL SIGN AE;Mc;0;L;;;;;N;;;;;
+16F74;MIAO VOWEL SIGN AEE;Mc;0;L;;;;;N;;;;;
+16F75;MIAO VOWEL SIGN ERR;Mc;0;L;;;;;N;;;;;
+16F76;MIAO VOWEL SIGN ROUNDED ERR;Mc;0;L;;;;;N;;;;;
+16F77;MIAO VOWEL SIGN ER;Mc;0;L;;;;;N;;;;;
+16F78;MIAO VOWEL SIGN ROUNDED ER;Mc;0;L;;;;;N;;;;;
+16F79;MIAO VOWEL SIGN AI;Mc;0;L;;;;;N;;;;;
+16F7A;MIAO VOWEL SIGN EI;Mc;0;L;;;;;N;;;;;
+16F7B;MIAO VOWEL SIGN AU;Mc;0;L;;;;;N;;;;;
+16F7C;MIAO VOWEL SIGN OU;Mc;0;L;;;;;N;;;;;
+16F7D;MIAO VOWEL SIGN N;Mc;0;L;;;;;N;;;;;
+16F7E;MIAO VOWEL SIGN NG;Mc;0;L;;;;;N;;;;;
+16F8F;MIAO TONE RIGHT;Mn;0;NSM;;;;;N;;;;;
+16F90;MIAO TONE TOP RIGHT;Mn;0;NSM;;;;;N;;;;;
+16F91;MIAO TONE ABOVE;Mn;0;NSM;;;;;N;;;;;
+16F92;MIAO TONE BELOW;Mn;0;NSM;;;;;N;;;;;
+16F93;MIAO LETTER TONE-2;Lm;0;L;;;;;N;;;;;
+16F94;MIAO LETTER TONE-3;Lm;0;L;;;;;N;;;;;
+16F95;MIAO LETTER TONE-4;Lm;0;L;;;;;N;;;;;
+16F96;MIAO LETTER TONE-5;Lm;0;L;;;;;N;;;;;
+16F97;MIAO LETTER TONE-6;Lm;0;L;;;;;N;;;;;
+16F98;MIAO LETTER TONE-7;Lm;0;L;;;;;N;;;;;
+16F99;MIAO LETTER TONE-8;Lm;0;L;;;;;N;;;;;
+16F9A;MIAO LETTER REFORMED TONE-1;Lm;0;L;;;;;N;;;;;
+16F9B;MIAO LETTER REFORMED TONE-2;Lm;0;L;;;;;N;;;;;
+16F9C;MIAO LETTER REFORMED TONE-4;Lm;0;L;;;;;N;;;;;
+16F9D;MIAO LETTER REFORMED TONE-5;Lm;0;L;;;;;N;;;;;
+16F9E;MIAO LETTER REFORMED TONE-6;Lm;0;L;;;;;N;;;;;
+16F9F;MIAO LETTER REFORMED TONE-8;Lm;0;L;;;;;N;;;;;
1B000;KATAKANA LETTER ARCHAIC E;Lo;0;L;;;;;N;;;;;
1B001;HIRAGANA LETTER ARCHAIC YE;Lo;0;L;;;;;N;;;;;
1D000;BYZANTINE MUSICAL SYMBOL PSILI;So;0;L;;;;;N;;;;;
1D7FD;MATHEMATICAL MONOSPACE DIGIT SEVEN;Nd;0;EN;<font> 0037;7;7;7;N;;;;;
1D7FE;MATHEMATICAL MONOSPACE DIGIT EIGHT;Nd;0;EN;<font> 0038;8;8;8;N;;;;;
1D7FF;MATHEMATICAL MONOSPACE DIGIT NINE;Nd;0;EN;<font> 0039;9;9;9;N;;;;;
+1EE00;ARABIC MATHEMATICAL ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
+1EE01;ARABIC MATHEMATICAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE02;ARABIC MATHEMATICAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE03;ARABIC MATHEMATICAL DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EE05;ARABIC MATHEMATICAL WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EE06;ARABIC MATHEMATICAL ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EE07;ARABIC MATHEMATICAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE08;ARABIC MATHEMATICAL TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE09;ARABIC MATHEMATICAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE0A;ARABIC MATHEMATICAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE0B;ARABIC MATHEMATICAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE0C;ARABIC MATHEMATICAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE0D;ARABIC MATHEMATICAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE0E;ARABIC MATHEMATICAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE0F;ARABIC MATHEMATICAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE10;ARABIC MATHEMATICAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE11;ARABIC MATHEMATICAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE12;ARABIC MATHEMATICAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE13;ARABIC MATHEMATICAL REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EE14;ARABIC MATHEMATICAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE15;ARABIC MATHEMATICAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE16;ARABIC MATHEMATICAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE17;ARABIC MATHEMATICAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE18;ARABIC MATHEMATICAL THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EE19;ARABIC MATHEMATICAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE1A;ARABIC MATHEMATICAL ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE1B;ARABIC MATHEMATICAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE1C;ARABIC MATHEMATICAL DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
+1EE1D;ARABIC MATHEMATICAL DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
+1EE1E;ARABIC MATHEMATICAL DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
+1EE1F;ARABIC MATHEMATICAL DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
+1EE21;ARABIC MATHEMATICAL INITIAL BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE22;ARABIC MATHEMATICAL INITIAL JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE24;ARABIC MATHEMATICAL INITIAL HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE27;ARABIC MATHEMATICAL INITIAL HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE29;ARABIC MATHEMATICAL INITIAL YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE2A;ARABIC MATHEMATICAL INITIAL KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE2B;ARABIC MATHEMATICAL INITIAL LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE2C;ARABIC MATHEMATICAL INITIAL MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE2D;ARABIC MATHEMATICAL INITIAL NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE2E;ARABIC MATHEMATICAL INITIAL SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE2F;ARABIC MATHEMATICAL INITIAL AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE30;ARABIC MATHEMATICAL INITIAL FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE31;ARABIC MATHEMATICAL INITIAL SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE32;ARABIC MATHEMATICAL INITIAL QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE34;ARABIC MATHEMATICAL INITIAL SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE35;ARABIC MATHEMATICAL INITIAL TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE36;ARABIC MATHEMATICAL INITIAL THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE37;ARABIC MATHEMATICAL INITIAL KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE39;ARABIC MATHEMATICAL INITIAL DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE3B;ARABIC MATHEMATICAL INITIAL GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE42;ARABIC MATHEMATICAL TAILED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE47;ARABIC MATHEMATICAL TAILED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE49;ARABIC MATHEMATICAL TAILED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE4B;ARABIC MATHEMATICAL TAILED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE4D;ARABIC MATHEMATICAL TAILED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE4E;ARABIC MATHEMATICAL TAILED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE4F;ARABIC MATHEMATICAL TAILED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE51;ARABIC MATHEMATICAL TAILED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE52;ARABIC MATHEMATICAL TAILED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE54;ARABIC MATHEMATICAL TAILED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE57;ARABIC MATHEMATICAL TAILED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE59;ARABIC MATHEMATICAL TAILED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE5B;ARABIC MATHEMATICAL TAILED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE5D;ARABIC MATHEMATICAL TAILED DOTLESS NOON;Lo;0;AL;<font> 06BA;;;;N;;;;;
+1EE5F;ARABIC MATHEMATICAL TAILED DOTLESS QAF;Lo;0;AL;<font> 066F;;;;N;;;;;
+1EE61;ARABIC MATHEMATICAL STRETCHED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE62;ARABIC MATHEMATICAL STRETCHED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE64;ARABIC MATHEMATICAL STRETCHED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE67;ARABIC MATHEMATICAL STRETCHED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE68;ARABIC MATHEMATICAL STRETCHED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE69;ARABIC MATHEMATICAL STRETCHED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE6A;ARABIC MATHEMATICAL STRETCHED KAF;Lo;0;AL;<font> 0643;;;;N;;;;;
+1EE6C;ARABIC MATHEMATICAL STRETCHED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE6D;ARABIC MATHEMATICAL STRETCHED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE6E;ARABIC MATHEMATICAL STRETCHED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE6F;ARABIC MATHEMATICAL STRETCHED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE70;ARABIC MATHEMATICAL STRETCHED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE71;ARABIC MATHEMATICAL STRETCHED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE72;ARABIC MATHEMATICAL STRETCHED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE74;ARABIC MATHEMATICAL STRETCHED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE75;ARABIC MATHEMATICAL STRETCHED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE76;ARABIC MATHEMATICAL STRETCHED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE77;ARABIC MATHEMATICAL STRETCHED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE79;ARABIC MATHEMATICAL STRETCHED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE7A;ARABIC MATHEMATICAL STRETCHED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE7B;ARABIC MATHEMATICAL STRETCHED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EE7C;ARABIC MATHEMATICAL STRETCHED DOTLESS BEH;Lo;0;AL;<font> 066E;;;;N;;;;;
+1EE7E;ARABIC MATHEMATICAL STRETCHED DOTLESS FEH;Lo;0;AL;<font> 06A1;;;;N;;;;;
+1EE80;ARABIC MATHEMATICAL LOOPED ALEF;Lo;0;AL;<font> 0627;;;;N;;;;;
+1EE81;ARABIC MATHEMATICAL LOOPED BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EE82;ARABIC MATHEMATICAL LOOPED JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EE83;ARABIC MATHEMATICAL LOOPED DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EE84;ARABIC MATHEMATICAL LOOPED HEH;Lo;0;AL;<font> 0647;;;;N;;;;;
+1EE85;ARABIC MATHEMATICAL LOOPED WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EE86;ARABIC MATHEMATICAL LOOPED ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EE87;ARABIC MATHEMATICAL LOOPED HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EE88;ARABIC MATHEMATICAL LOOPED TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EE89;ARABIC MATHEMATICAL LOOPED YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EE8B;ARABIC MATHEMATICAL LOOPED LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EE8C;ARABIC MATHEMATICAL LOOPED MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EE8D;ARABIC MATHEMATICAL LOOPED NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EE8E;ARABIC MATHEMATICAL LOOPED SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EE8F;ARABIC MATHEMATICAL LOOPED AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EE90;ARABIC MATHEMATICAL LOOPED FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EE91;ARABIC MATHEMATICAL LOOPED SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EE92;ARABIC MATHEMATICAL LOOPED QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EE93;ARABIC MATHEMATICAL LOOPED REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EE94;ARABIC MATHEMATICAL LOOPED SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EE95;ARABIC MATHEMATICAL LOOPED TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EE96;ARABIC MATHEMATICAL LOOPED THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EE97;ARABIC MATHEMATICAL LOOPED KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EE98;ARABIC MATHEMATICAL LOOPED THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EE99;ARABIC MATHEMATICAL LOOPED DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EE9A;ARABIC MATHEMATICAL LOOPED ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EE9B;ARABIC MATHEMATICAL LOOPED GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EEA1;ARABIC MATHEMATICAL DOUBLE-STRUCK BEH;Lo;0;AL;<font> 0628;;;;N;;;;;
+1EEA2;ARABIC MATHEMATICAL DOUBLE-STRUCK JEEM;Lo;0;AL;<font> 062C;;;;N;;;;;
+1EEA3;ARABIC MATHEMATICAL DOUBLE-STRUCK DAL;Lo;0;AL;<font> 062F;;;;N;;;;;
+1EEA5;ARABIC MATHEMATICAL DOUBLE-STRUCK WAW;Lo;0;AL;<font> 0648;;;;N;;;;;
+1EEA6;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAIN;Lo;0;AL;<font> 0632;;;;N;;;;;
+1EEA7;ARABIC MATHEMATICAL DOUBLE-STRUCK HAH;Lo;0;AL;<font> 062D;;;;N;;;;;
+1EEA8;ARABIC MATHEMATICAL DOUBLE-STRUCK TAH;Lo;0;AL;<font> 0637;;;;N;;;;;
+1EEA9;ARABIC MATHEMATICAL DOUBLE-STRUCK YEH;Lo;0;AL;<font> 064A;;;;N;;;;;
+1EEAB;ARABIC MATHEMATICAL DOUBLE-STRUCK LAM;Lo;0;AL;<font> 0644;;;;N;;;;;
+1EEAC;ARABIC MATHEMATICAL DOUBLE-STRUCK MEEM;Lo;0;AL;<font> 0645;;;;N;;;;;
+1EEAD;ARABIC MATHEMATICAL DOUBLE-STRUCK NOON;Lo;0;AL;<font> 0646;;;;N;;;;;
+1EEAE;ARABIC MATHEMATICAL DOUBLE-STRUCK SEEN;Lo;0;AL;<font> 0633;;;;N;;;;;
+1EEAF;ARABIC MATHEMATICAL DOUBLE-STRUCK AIN;Lo;0;AL;<font> 0639;;;;N;;;;;
+1EEB0;ARABIC MATHEMATICAL DOUBLE-STRUCK FEH;Lo;0;AL;<font> 0641;;;;N;;;;;
+1EEB1;ARABIC MATHEMATICAL DOUBLE-STRUCK SAD;Lo;0;AL;<font> 0635;;;;N;;;;;
+1EEB2;ARABIC MATHEMATICAL DOUBLE-STRUCK QAF;Lo;0;AL;<font> 0642;;;;N;;;;;
+1EEB3;ARABIC MATHEMATICAL DOUBLE-STRUCK REH;Lo;0;AL;<font> 0631;;;;N;;;;;
+1EEB4;ARABIC MATHEMATICAL DOUBLE-STRUCK SHEEN;Lo;0;AL;<font> 0634;;;;N;;;;;
+1EEB5;ARABIC MATHEMATICAL DOUBLE-STRUCK TEH;Lo;0;AL;<font> 062A;;;;N;;;;;
+1EEB6;ARABIC MATHEMATICAL DOUBLE-STRUCK THEH;Lo;0;AL;<font> 062B;;;;N;;;;;
+1EEB7;ARABIC MATHEMATICAL DOUBLE-STRUCK KHAH;Lo;0;AL;<font> 062E;;;;N;;;;;
+1EEB8;ARABIC MATHEMATICAL DOUBLE-STRUCK THAL;Lo;0;AL;<font> 0630;;;;N;;;;;
+1EEB9;ARABIC MATHEMATICAL DOUBLE-STRUCK DAD;Lo;0;AL;<font> 0636;;;;N;;;;;
+1EEBA;ARABIC MATHEMATICAL DOUBLE-STRUCK ZAH;Lo;0;AL;<font> 0638;;;;N;;;;;
+1EEBB;ARABIC MATHEMATICAL DOUBLE-STRUCK GHAIN;Lo;0;AL;<font> 063A;;;;N;;;;;
+1EEF0;ARABIC MATHEMATICAL OPERATOR MEEM WITH HAH WITH TATWEEL;Sm;0;ON;;;;;N;;;;;
+1EEF1;ARABIC MATHEMATICAL OPERATOR HAH WITH DAL;Sm;0;ON;;;;;N;;;;;
1F000;MAHJONG TILE EAST WIND;So;0;ON;;;;;N;;;;;
1F001;MAHJONG TILE SOUTH WIND;So;0;ON;;;;;N;;;;;
1F002;MAHJONG TILE WEST WIND;So;0;ON;;;;;N;;;;;
1F167;NEGATIVE CIRCLED LATIN CAPITAL LETTER X;So;0;L;;;;;N;;;;;
1F168;NEGATIVE CIRCLED LATIN CAPITAL LETTER Y;So;0;L;;;;;N;;;;;
1F169;NEGATIVE CIRCLED LATIN CAPITAL LETTER Z;So;0;L;;;;;N;;;;;
+1F16A;RAISED MC SIGN;So;0;ON;<super> 004D 0043;;;;N;;;;;
+1F16B;RAISED MD SIGN;So;0;ON;<super> 004D 0044;;;;N;;;;;
1F170;NEGATIVE SQUARED LATIN CAPITAL LETTER A;So;0;L;;;;;N;;;;;
1F171;NEGATIVE SQUARED LATIN CAPITAL LETTER B;So;0;L;;;;;N;;;;;
1F172;NEGATIVE SQUARED LATIN CAPITAL LETTER C;So;0;L;;;;;N;;;;;
1F489;SYRINGE;So;0;ON;;;;;N;;;;;
1F48A;PILL;So;0;ON;;;;;N;;;;;
1F48B;KISS MARK;So;0;ON;;;;;N;;;;;
-1F48C;LOVE LETTER;So;0;L;;;;;N;;;;;
+1F48C;LOVE LETTER;So;0;ON;;;;;N;;;;;
1F48D;RING;So;0;ON;;;;;N;;;;;
1F48E;GEM STONE;So;0;ON;;;;;N;;;;;
1F48F;KISS;So;0;ON;;;;;N;;;;;
1F521;INPUT SYMBOL FOR LATIN SMALL LETTERS;So;0;ON;;;;;N;;;;;
1F522;INPUT SYMBOL FOR NUMBERS;So;0;ON;;;;;N;;;;;
1F523;INPUT SYMBOL FOR SYMBOLS;So;0;ON;;;;;N;;;;;
-1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;L;;;;;N;;;;;
+1F524;INPUT SYMBOL FOR LATIN LETTERS;So;0;ON;;;;;N;;;;;
1F525;FIRE;So;0;ON;;;;;N;;;;;
1F526;ELECTRIC TORCH;So;0;ON;;;;;N;;;;;
1F527;WRENCH;So;0;ON;;;;;N;;;;;
1F53B;DOWN-POINTING RED TRIANGLE;So;0;ON;;;;;N;;;;;
1F53C;UP-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
1F53D;DOWN-POINTING SMALL RED TRIANGLE;So;0;ON;;;;;N;;;;;
+1F540;CIRCLED CROSS POMMEE;So;0;ON;;;;;N;;;;;
+1F541;CROSS POMMEE WITH HALF-CIRCLE BELOW;So;0;ON;;;;;N;;;;;
+1F542;CROSS POMMEE;So;0;ON;;;;;N;;;;;
+1F543;NOTCHED LEFT SEMICIRCLE WITH THREE DOTS;So;0;ON;;;;;N;;;;;
1F550;CLOCK FACE ONE OCLOCK;So;0;ON;;;;;N;;;;;
1F551;CLOCK FACE TWO OCLOCK;So;0;ON;;;;;N;;;;;
1F552;CLOCK FACE THREE OCLOCK;So;0;ON;;;;;N;;;;;
1F5FD;STATUE OF LIBERTY;So;0;ON;;;;;N;;;;;
1F5FE;SILHOUETTE OF JAPAN;So;0;ON;;;;;N;;;;;
1F5FF;MOYAI;So;0;ON;;;;;N;;;;;
+1F600;GRINNING FACE;So;0;ON;;;;;N;;;;;
1F601;GRINNING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
1F602;FACE WITH TEARS OF JOY;So;0;ON;;;;;N;;;;;
1F603;SMILING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
1F60E;SMILING FACE WITH SUNGLASSES;So;0;ON;;;;;N;;;;;
1F60F;SMIRKING FACE;So;0;ON;;;;;N;;;;;
1F610;NEUTRAL FACE;So;0;ON;;;;;N;;;;;
+1F611;EXPRESSIONLESS FACE;So;0;ON;;;;;N;;;;;
1F612;UNAMUSED FACE;So;0;ON;;;;;N;;;;;
1F613;FACE WITH COLD SWEAT;So;0;ON;;;;;N;;;;;
1F614;PENSIVE FACE;So;0;ON;;;;;N;;;;;
+1F615;CONFUSED FACE;So;0;ON;;;;;N;;;;;
1F616;CONFOUNDED FACE;So;0;ON;;;;;N;;;;;
+1F617;KISSING FACE;So;0;ON;;;;;N;;;;;
1F618;FACE THROWING A KISS;So;0;ON;;;;;N;;;;;
+1F619;KISSING FACE WITH SMILING EYES;So;0;ON;;;;;N;;;;;
1F61A;KISSING FACE WITH CLOSED EYES;So;0;ON;;;;;N;;;;;
+1F61B;FACE WITH STUCK-OUT TONGUE;So;0;ON;;;;;N;;;;;
1F61C;FACE WITH STUCK-OUT TONGUE AND WINKING EYE;So;0;ON;;;;;N;;;;;
1F61D;FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES;So;0;ON;;;;;N;;;;;
1F61E;DISAPPOINTED FACE;So;0;ON;;;;;N;;;;;
+1F61F;WORRIED FACE;So;0;ON;;;;;N;;;;;
1F620;ANGRY FACE;So;0;ON;;;;;N;;;;;
1F621;POUTING FACE;So;0;ON;;;;;N;;;;;
1F622;CRYING FACE;So;0;ON;;;;;N;;;;;
1F623;PERSEVERING FACE;So;0;ON;;;;;N;;;;;
1F624;FACE WITH LOOK OF TRIUMPH;So;0;ON;;;;;N;;;;;
1F625;DISAPPOINTED BUT RELIEVED FACE;So;0;ON;;;;;N;;;;;
+1F626;FROWNING FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+1F627;ANGUISHED FACE;So;0;ON;;;;;N;;;;;
1F628;FEARFUL FACE;So;0;ON;;;;;N;;;;;
1F629;WEARY FACE;So;0;ON;;;;;N;;;;;
1F62A;SLEEPY FACE;So;0;ON;;;;;N;;;;;
1F62B;TIRED FACE;So;0;ON;;;;;N;;;;;
+1F62C;GRIMACING FACE;So;0;ON;;;;;N;;;;;
1F62D;LOUDLY CRYING FACE;So;0;ON;;;;;N;;;;;
+1F62E;FACE WITH OPEN MOUTH;So;0;ON;;;;;N;;;;;
+1F62F;HUSHED FACE;So;0;ON;;;;;N;;;;;
1F630;FACE WITH OPEN MOUTH AND COLD SWEAT;So;0;ON;;;;;N;;;;;
1F631;FACE SCREAMING IN FEAR;So;0;ON;;;;;N;;;;;
1F632;ASTONISHED FACE;So;0;ON;;;;;N;;;;;
1F633;FLUSHED FACE;So;0;ON;;;;;N;;;;;
+1F634;SLEEPING FACE;So;0;ON;;;;;N;;;;;
1F635;DIZZY FACE;So;0;ON;;;;;N;;;;;
1F636;FACE WITHOUT MOUTH;So;0;ON;;;;;N;;;;;
1F637;FACE WITH MEDICAL MASK;So;0;ON;;;;;N;;;;;
<meta name="VI60_defaultClientScript" content="JavaScript">
-<meta name="GENERATOR" content="Microsoft FrontPage 6.0">
+<meta name="GENERATOR" content="Microsoft FrontPage 5.0">
<meta name="keywords" content="Unicode Standard, copyright">
<body text="#330000">
-
-
-<form action="http://www.unicode.org/webscripts/POST">
-
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td valign="top" class="navColCell"><a href="#4">Waiver of Damages</a></td>
</tr>
<tr>
- <td valign="top" class="navColCell"><a href="#5">Trademarks</a></td>
+ <td valign="top" class="navColCell"><a href="#5">Trademarks & Logos</a></td>
</tr>
<tr>
<td valign="top" class="navColCell"><a href="#7">Miscellaneous</a></td>
</tr>
<tr>
<td valign="top" class="navColCell">
- <a href="http://www.unicode.org/policies/logo_policy.html">The
- Unicode® Consortium Trademarks and Logo Policy</a></td>
+ <a href="http://www.unicode.org/policies/logo_policy.html">Trademark Policy</a></td>
</tr>
<tr>
<td valign="top" class="navColCell">
<a href="http://www.unicode.org/policies/privacy_policy.html">
Unicode Privacy Policy</a>. For trademark usage, see
<a href="http://www.unicode.org/policies/logo_policy.html">the
- Unicode Consortium® Trademarks and Logo Policy</a>.</p>
+ Unicode® Consortium Name and Trademark Usage Policy</a>.</p>
<table class="sidebar" align="right" width="50%" id="table1">
<tr>
<td class="sidebar">Carefully read the following legal agreement
("Agreement"). Use or copying of the software and/or codes
provided with this agreement (The "Software") constitutes your
- acceptance of these terms</td>
+ acceptance of these terms. If you have any questions about these terms of use, please <a href="http://www.unicode.org/contacts.html">contact the Unicode Consortium</a>.</td>
</tr>
</table>
<ol type="A">
<li><u><a name="1"></a>Unicode Copyright.</u>
<ol>
- <li>Copyright © 1991-2006 Unicode, Inc. All rights reserved.</li>
+ <li>Copyright © 1991-2012 Unicode, Inc. All rights reserved.</li>
<li>Certain documents and files on this website contain a legend
indicating that "Modification is permitted." Any person is
hereby authorized, without fee, to modify such documents and
to the use of the particular set of data files known as the
"Unicode Character Database" can be found in <a href="#Exhibit1">
Exhibit 1</a>.</li>
- <li>Each version of the Unicode Standard has further specifications of rights and restrictions
- of use. For the book editions, these are found on the back of
- the
- <a href="http://www.unicode.org/versions/Unicode4.0.0/Title.pdf">
- title page</a>. For the online edition, certain files (such as
- the PDF files for book chapters and code charts) carry specific
- restrictions. All other files are covered under these general
- Terms of Use. To request a permission to reproduce any
- part of the Unicode Standard, please
- <a href="http://www.unicode.org/contacts.html">contact the
- Unicode Consortium</a>.</li>
+ <li>Each version of the Unicode Standard has further
+ specifications of rights and restrictions of use. For the book
+ editions (Unicode 5.0 and earlier), these are found on the back
+ of the
+ <a href="http://www.unicode.org/versions/Unicode5.0.0/Title.pdf">title page</a>.
+ The online code charts carry specific restrictions. All other files, including online documentation of the core specification for Unicode 6.0 and later, are covered under these general Terms of Use.</li>
<li>No license is granted to "mirror" the Unicode website where
a fee is charged for access to the "mirror" site.</li>
<li>Modification is not permitted with respect to this document.
the following: loss of use, data or profits, in connection with
the use, modification or distribution of this information or its
derivatives.</li>
- <li><u><a name="5"></a>Trademarks.</u>
- <ol>
- <li>Unicode and the Unicode logo are registered trademarks of
- Unicode, Inc. </li>
- <li>This site contains product names and corporate names of
- other companies. All product names and company names and logos
- mentioned herein are the trademarks or registered trademarks of
- their respective owners. Other products and corporate names
- mentioned herein which are trademarks of a third party are used
- only for explanation and for the owners' benefit and with no
- intent to infringe.</li>
- <li>Use of third party products or information referred to
- herein is at the user’s risk.</li>
+ <li><u><a name="5"></a>Trademarks & Logos.</u>
+ <ol>
+ <li>The Unicode Word Mark and the Unicode Logo are trademarks of Unicode, Inc. “The Unicode Consortium” and “Unicode, Inc.” are trade names of Unicode, Inc. Use of the information and materials found on this website indicates your acknowledgement of Unicode, Inc.’s exclusive worldwide rights in the Unicode Word Mark, the Unicode Logo, and the Unicode trade names.</li>
+<li><a href="http://www.unicode.org/policies/logo_policy.html">The Unicode Consortium Name and Trademark Usage Policy</a> (“Trademark Policy”) are incorporated herein by reference and you agree to abide by the provisions of the Trademark Policy, which may be changed from time to time in the sole discretion of Unicode, Inc.</li>
+<li>All third party trademarks referenced herein are the property of their respective owners.
+</li>
</ol>
</li>
<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>,
and
-<a title="http://www.unicode.org/cldr/data/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
-http://www.unicode.org/cldr/data/ </a>. Unicode Software includes any source code
-published in the Unicode Standard or under the directories
-<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
+<a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
+http://www.unicode.org/cldr/data/</a>. Unicode Data Files do not include PDF online code charts under the directory <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>. Software includes any source code
+published in the Unicode Standard or under the directories <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>,
and
-<a title="http://www.unicode.org/cldr/data/" onclick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
-http://www.unicode.org/cldr/data/.</a></p>
+<a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
+http://www.unicode.org/cldr/data/</a>.</p>
<p>NOTICE TO USER: Carefully read the following legal agreement. BY DOWNLOADING, INSTALLING, COPYING OR OTHERWISE USING UNICODE INC.'S DATA FILES ("DATA FILES"), AND/OR SOFTWARE ("SOFTWARE"), YOU UNEQUIVOCALLY ACCEPT, AND AGREE TO BE BOUND BY, ALL OF THE TERMS AND CONDITIONS OF THIS AGREEMENT. IF YOU DO NOT AGREE, DO NOT DOWNLOAD, INSTALL, COPY, DISTRIBUTE OR USE THE DATA FILES OR SOFTWARE.</p>
<p>COPYRIGHT AND PERMISSION NOTICE</p>
-<p>Copyright © 1991-2005 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
+<p>Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p>
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and
<hr width="80%">
-<p>Unicode and the Unicode logo are trademarks of Unicode, Inc., and may be registered in some jurisdictions. All other trademarks and registered trademarks mentioned herein are the property of their respective owners.</p>
+<p>Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United States and other countries. All third party trademarks referenced herein are the property of their respective owners.</p>
</blockquote>
</tr>
</table>
-
-</form>
-
-
-
</body>
-
-
-
</html>
C_SWITCH_MACHINE = @C_SWITCH_MACHINE@
C_SWITCH_SYSTEM = @C_SWITCH_SYSTEM@
C_SWITCH_X_SITE = @C_SWITCH_X_SITE@
-C_SWITCH_X_SYSTEM = @C_SWITCH_X_SYSTEM@
C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@
DBUS_CFLAGS = @DBUS_CFLAGS@
DBUS_LIBS = @DBUS_LIBS@
GNULIB_WCTOMB = @GNULIB_WCTOMB@
GNULIB_WRITE = @GNULIB_WRITE@
GNULIB__EXIT = @GNULIB__EXIT@
+GNUSTEP_CFLAGS = @GNUSTEP_CFLAGS@
GNU_OBJC_CFLAGS = @GNU_OBJC_CFLAGS@
GREP = @GREP@
GSETTINGS_CFLAGS = @GSETTINGS_CFLAGS@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.65 for emacs 24.0.94.
+# Generated by GNU Autoconf 2.65 for emacs 24.1.50.
#
#
# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
# Identity of this package.
PACKAGE_NAME='emacs'
PACKAGE_TARNAME='emacs'
-PACKAGE_VERSION='24.0.94'
-PACKAGE_STRING='emacs 24.0.94'
+PACKAGE_VERSION='24.1.50'
+PACKAGE_STRING='emacs 24.1.50'
PACKAGE_BUGREPORT=''
PACKAGE_URL=''
S_FILE
M_FILE
X_TOOLKIT_TYPE
-C_SWITCH_X_SYSTEM
+GNUSTEP_CFLAGS
C_SWITCH_X_SITE
LD_SWITCH_X_SITE
gameuser
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures emacs 24.0.94 to adapt to many kinds of systems.
+\`configure' configures emacs 24.1.50 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of emacs 24.0.94:";;
+ short | recursive ) echo "Configuration of emacs 24.1.50:";;
esac
cat <<\_ACEOF
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-emacs configure 24.0.94
+emacs configure 24.1.50
generated by GNU Autoconf 2.65
Copyright (C) 2009 Free Software Foundation, Inc.
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by emacs $as_me 24.0.94, which was
+It was created by emacs $as_me 24.1.50, which was
generated by GNU Autoconf 2.65. Invocation command line was
$ $0 $@
# Define the identity of the package.
PACKAGE='emacs'
- VERSION='24.0.94'
+ VERSION='24.1.50'
cat >>confdefs.h <<_ACEOF
-## Need makeinfo >= 4.6 (?) to build the manuals.
+## Need makeinfo >= 4.7 (?) to build the manuals.
# Extract the first word of "makeinfo", so it can be a program name with args.
set dummy makeinfo; ac_word=$2
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ac_word" >&5
if test "$MAKEINFO" != "no" && \
- test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[6-9]|4\.[1-5][0-9]+)'`" = x; then
+ test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[^0-9]*([1-4][0-9]+|[5-9]|4\.[7-9]|4\.[1-6][0-9]+)'`" = x; then
MAKEINFO=no
fi
if test "x${with_makeinfo}" = "xno"; then
HAVE_MAKEINFO=no
elif test ! -e $srcdir/info/emacs; then
- as_fn_error "You do not seem to have makeinfo >= 4.6, and your
+ as_fn_error "You do not seem to have makeinfo >= 4.7, and your
source tree does not seem to have pre-built manuals in the \`info' directory.
Either install a suitable version of makeinfo, or re-run configure
with the \`--without-makeinfo' option to build without the manuals. " "$LINENO" 5
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $ALSA_MODULES" >&5
$as_echo_n "checking for $ALSA_MODULES... " >&6; }
- if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "$ALSA_MODULES" 2>&5 &&
+ ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES" 2>&5` &&
+ ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_CFLAGS" >&5
-$as_echo_n "checking ALSA_CFLAGS... " >&6; }
- ALSA_CFLAGS=`$PKG_CONFIG --cflags "$ALSA_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_CFLAGS" >&5
-$as_echo "$ALSA_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking ALSA_LIBS" >&5
-$as_echo_n "checking ALSA_LIBS... " >&6; }
- ALSA_LIBS=`$PKG_CONFIG --libs "$ALSA_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ALSA_LIBS" >&5
-$as_echo "$ALSA_LIBS" >&6; }
+ ALSA_CFLAGS=`$as_echo "$ALSA_CFLAGS" | sed -e 's,///*,/,g'`
+ ALSA_LIBS=`$as_echo "$ALSA_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$ALSA_CFLAGS' LIBS='$ALSA_LIBS'" >&5
+$as_echo "yes CFLAGS='$ALSA_CFLAGS' LIBS='$ALSA_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $RSVG_MODULE" >&5
$as_echo_n "checking for $RSVG_MODULE... " >&6; }
- if $PKG_CONFIG --exists "$RSVG_MODULE" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "$RSVG_MODULE" 2>&5 &&
+ RSVG_CFLAGS=`$PKG_CONFIG --cflags "$RSVG_MODULE" 2>&5` &&
+ RSVG_LIBS=`$PKG_CONFIG --libs "$RSVG_MODULE" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_CFLAGS" >&5
-$as_echo_n "checking RSVG_CFLAGS... " >&6; }
- RSVG_CFLAGS=`$PKG_CONFIG --cflags "$RSVG_MODULE"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_CFLAGS" >&5
-$as_echo "$RSVG_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking RSVG_LIBS" >&5
-$as_echo_n "checking RSVG_LIBS... " >&6; }
- RSVG_LIBS=`$PKG_CONFIG --libs "$RSVG_MODULE"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $RSVG_LIBS" >&5
-$as_echo "$RSVG_LIBS" >&6; }
+ RSVG_CFLAGS=`$as_echo "$RSVG_CFLAGS" | sed -e 's,///*,/,g'`
+ RSVG_LIBS=`$as_echo "$RSVG_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$RSVG_CFLAGS' LIBS='$RSVG_LIBS'" >&5
+$as_echo "yes CFLAGS='$RSVG_CFLAGS' LIBS='$RSVG_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $IMAGEMAGICK_MODULE" >&5
$as_echo_n "checking for $IMAGEMAGICK_MODULE... " >&6; }
- if $PKG_CONFIG --exists "$IMAGEMAGICK_MODULE" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "$IMAGEMAGICK_MODULE" 2>&5 &&
+ IMAGEMAGICK_CFLAGS=`$PKG_CONFIG --cflags "$IMAGEMAGICK_MODULE" 2>&5` &&
+ IMAGEMAGICK_LIBS=`$PKG_CONFIG --libs "$IMAGEMAGICK_MODULE" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking IMAGEMAGICK_CFLAGS" >&5
-$as_echo_n "checking IMAGEMAGICK_CFLAGS... " >&6; }
- IMAGEMAGICK_CFLAGS=`$PKG_CONFIG --cflags "$IMAGEMAGICK_MODULE"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK_CFLAGS" >&5
-$as_echo "$IMAGEMAGICK_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking IMAGEMAGICK_LIBS" >&5
-$as_echo_n "checking IMAGEMAGICK_LIBS... " >&6; }
- IMAGEMAGICK_LIBS=`$PKG_CONFIG --libs "$IMAGEMAGICK_MODULE"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $IMAGEMAGICK_LIBS" >&5
-$as_echo "$IMAGEMAGICK_LIBS" >&6; }
+ IMAGEMAGICK_CFLAGS=`$as_echo "$IMAGEMAGICK_CFLAGS" | sed -e 's,///*,/,g'`
+ IMAGEMAGICK_LIBS=`$as_echo "$IMAGEMAGICK_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$IMAGEMAGICK_CFLAGS' LIBS='$IMAGEMAGICK_LIBS'" >&5
+$as_echo "yes CFLAGS='$IMAGEMAGICK_CFLAGS' LIBS='$IMAGEMAGICK_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5
$as_echo_n "checking for $GTK_MODULES... " >&6; }
- if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5 &&
+ GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES" 2>&5` &&
+ GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5
-$as_echo_n "checking GTK_CFLAGS... " >&6; }
- GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5
-$as_echo "$GTK_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5
-$as_echo_n "checking GTK_LIBS... " >&6; }
- GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5
-$as_echo "$GTK_LIBS" >&6; }
+ GTK_CFLAGS=`$as_echo "$GTK_CFLAGS" | sed -e 's,///*,/,g'`
+ GTK_LIBS=`$as_echo "$GTK_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$GTK_CFLAGS' LIBS='$GTK_LIBS'" >&5
+$as_echo "yes CFLAGS='$GTK_CFLAGS' LIBS='$GTK_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for $GTK_MODULES" >&5
$as_echo_n "checking for $GTK_MODULES... " >&6; }
- if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "$GTK_MODULES" 2>&5 &&
+ GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES" 2>&5` &&
+ GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_CFLAGS" >&5
-$as_echo_n "checking GTK_CFLAGS... " >&6; }
- GTK_CFLAGS=`$PKG_CONFIG --cflags "$GTK_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_CFLAGS" >&5
-$as_echo "$GTK_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GTK_LIBS" >&5
-$as_echo_n "checking GTK_LIBS... " >&6; }
- GTK_LIBS=`$PKG_CONFIG --libs "$GTK_MODULES"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GTK_LIBS" >&5
-$as_echo "$GTK_LIBS" >&6; }
+ GTK_CFLAGS=`$as_echo "$GTK_CFLAGS" | sed -e 's,///*,/,g'`
+ GTK_LIBS=`$as_echo "$GTK_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$GTK_CFLAGS' LIBS='$GTK_LIBS'" >&5
+$as_echo "yes CFLAGS='$GTK_CFLAGS' LIBS='$GTK_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for dbus-1 >= 1.0" >&5
$as_echo_n "checking for dbus-1 >= 1.0... " >&6; }
- if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "dbus-1 >= 1.0" 2>&5 &&
+ DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0" 2>&5` &&
+ DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_CFLAGS" >&5
-$as_echo_n "checking DBUS_CFLAGS... " >&6; }
- DBUS_CFLAGS=`$PKG_CONFIG --cflags "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_CFLAGS" >&5
-$as_echo "$DBUS_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking DBUS_LIBS" >&5
-$as_echo_n "checking DBUS_LIBS... " >&6; }
- DBUS_LIBS=`$PKG_CONFIG --libs "dbus-1 >= 1.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $DBUS_LIBS" >&5
-$as_echo "$DBUS_LIBS" >&6; }
+ DBUS_CFLAGS=`$as_echo "$DBUS_CFLAGS" | sed -e 's,///*,/,g'`
+ DBUS_LIBS=`$as_echo "$DBUS_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$DBUS_CFLAGS' LIBS='$DBUS_LIBS'" >&5
+$as_echo "yes CFLAGS='$DBUS_CFLAGS' LIBS='$DBUS_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gio-2.0 >= 2.26" >&5
$as_echo_n "checking for gio-2.0 >= 2.26... " >&6; }
- if $PKG_CONFIG --exists "gio-2.0 >= 2.26" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "gio-2.0 >= 2.26" 2>&5 &&
+ GSETTINGS_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26" 2>&5` &&
+ GSETTINGS_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GSETTINGS_CFLAGS" >&5
-$as_echo_n "checking GSETTINGS_CFLAGS... " >&6; }
- GSETTINGS_CFLAGS=`$PKG_CONFIG --cflags "gio-2.0 >= 2.26"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSETTINGS_CFLAGS" >&5
-$as_echo "$GSETTINGS_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GSETTINGS_LIBS" >&5
-$as_echo_n "checking GSETTINGS_LIBS... " >&6; }
- GSETTINGS_LIBS=`$PKG_CONFIG --libs "gio-2.0 >= 2.26"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GSETTINGS_LIBS" >&5
-$as_echo "$GSETTINGS_LIBS" >&6; }
+ GSETTINGS_CFLAGS=`$as_echo "$GSETTINGS_CFLAGS" | sed -e 's,///*,/,g'`
+ GSETTINGS_LIBS=`$as_echo "$GSETTINGS_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$GSETTINGS_CFLAGS' LIBS='$GSETTINGS_LIBS'" >&5
+$as_echo "yes CFLAGS='$GSETTINGS_CFLAGS' LIBS='$GSETTINGS_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gconf-2.0 >= 2.13" >&5
$as_echo_n "checking for gconf-2.0 >= 2.13... " >&6; }
- if $PKG_CONFIG --exists "gconf-2.0 >= 2.13" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "gconf-2.0 >= 2.13" 2>&5 &&
+ GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.13" 2>&5` &&
+ GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.13" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_CFLAGS" >&5
-$as_echo_n "checking GCONF_CFLAGS... " >&6; }
- GCONF_CFLAGS=`$PKG_CONFIG --cflags "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_CFLAGS" >&5
-$as_echo "$GCONF_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking GCONF_LIBS" >&5
-$as_echo_n "checking GCONF_LIBS... " >&6; }
- GCONF_LIBS=`$PKG_CONFIG --libs "gconf-2.0 >= 2.13"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $GCONF_LIBS" >&5
-$as_echo "$GCONF_LIBS" >&6; }
+ GCONF_CFLAGS=`$as_echo "$GCONF_CFLAGS" | sed -e 's,///*,/,g'`
+ GCONF_LIBS=`$as_echo "$GCONF_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$GCONF_CFLAGS' LIBS='$GCONF_LIBS'" >&5
+$as_echo "yes CFLAGS='$GCONF_CFLAGS' LIBS='$GCONF_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for gnutls >= 2.6.6" >&5
$as_echo_n "checking for gnutls >= 2.6.6... " >&6; }
- if $PKG_CONFIG --exists "gnutls >= 2.6.6" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "gnutls >= 2.6.6" 2>&5 &&
+ LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 2.6.6" 2>&5` &&
+ LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 2.6.6" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_CFLAGS" >&5
-$as_echo_n "checking LIBGNUTLS_CFLAGS... " >&6; }
- LIBGNUTLS_CFLAGS=`$PKG_CONFIG --cflags "gnutls >= 2.6.6"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_CFLAGS" >&5
-$as_echo "$LIBGNUTLS_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBGNUTLS_LIBS" >&5
-$as_echo_n "checking LIBGNUTLS_LIBS... " >&6; }
- LIBGNUTLS_LIBS=`$PKG_CONFIG --libs "gnutls >= 2.6.6"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBGNUTLS_LIBS" >&5
-$as_echo "$LIBGNUTLS_LIBS" >&6; }
+ LIBGNUTLS_CFLAGS=`$as_echo "$LIBGNUTLS_CFLAGS" | sed -e 's,///*,/,g'`
+ LIBGNUTLS_LIBS=`$as_echo "$LIBGNUTLS_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$LIBGNUTLS_CFLAGS' LIBS='$LIBGNUTLS_LIBS'" >&5
+$as_echo "yes CFLAGS='$LIBGNUTLS_CFLAGS' LIBS='$LIBGNUTLS_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for fontconfig >= 2.2.0" >&5
$as_echo_n "checking for fontconfig >= 2.2.0... " >&6; }
- if $PKG_CONFIG --exists "fontconfig >= 2.2.0" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "fontconfig >= 2.2.0" 2>&5 &&
+ FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig >= 2.2.0" 2>&5` &&
+ FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig >= 2.2.0" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_CFLAGS" >&5
-$as_echo_n "checking FONTCONFIG_CFLAGS... " >&6; }
- FONTCONFIG_CFLAGS=`$PKG_CONFIG --cflags "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_CFLAGS" >&5
-$as_echo "$FONTCONFIG_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking FONTCONFIG_LIBS" >&5
-$as_echo_n "checking FONTCONFIG_LIBS... " >&6; }
- FONTCONFIG_LIBS=`$PKG_CONFIG --libs "fontconfig >= 2.2.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FONTCONFIG_LIBS" >&5
-$as_echo "$FONTCONFIG_LIBS" >&6; }
+ FONTCONFIG_CFLAGS=`$as_echo "$FONTCONFIG_CFLAGS" | sed -e 's,///*,/,g'`
+ FONTCONFIG_LIBS=`$as_echo "$FONTCONFIG_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$FONTCONFIG_CFLAGS' LIBS='$FONTCONFIG_LIBS'" >&5
+$as_echo "yes CFLAGS='$FONTCONFIG_CFLAGS' LIBS='$FONTCONFIG_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for xft >= 0.13.0" >&5
$as_echo_n "checking for xft >= 0.13.0... " >&6; }
- if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "xft >= 0.13.0" 2>&5 &&
+ XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0" 2>&5` &&
+ XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_CFLAGS" >&5
-$as_echo_n "checking XFT_CFLAGS... " >&6; }
- XFT_CFLAGS=`$PKG_CONFIG --cflags "xft >= 0.13.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_CFLAGS" >&5
-$as_echo "$XFT_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking XFT_LIBS" >&5
-$as_echo_n "checking XFT_LIBS... " >&6; }
- XFT_LIBS=`$PKG_CONFIG --libs "xft >= 0.13.0"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $XFT_LIBS" >&5
-$as_echo "$XFT_LIBS" >&6; }
+ XFT_CFLAGS=`$as_echo "$XFT_CFLAGS" | sed -e 's,///*,/,g'`
+ XFT_LIBS=`$as_echo "$XFT_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$XFT_CFLAGS' LIBS='$XFT_LIBS'" >&5
+$as_echo "yes CFLAGS='$XFT_CFLAGS' LIBS='$XFT_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for freetype2" >&5
$as_echo_n "checking for freetype2... " >&6; }
- if $PKG_CONFIG --exists "freetype2" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "freetype2" 2>&5 &&
+ FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2" 2>&5` &&
+ FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking FREETYPE_CFLAGS" >&5
-$as_echo_n "checking FREETYPE_CFLAGS... " >&6; }
- FREETYPE_CFLAGS=`$PKG_CONFIG --cflags "freetype2"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_CFLAGS" >&5
-$as_echo "$FREETYPE_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking FREETYPE_LIBS" >&5
-$as_echo_n "checking FREETYPE_LIBS... " >&6; }
- FREETYPE_LIBS=`$PKG_CONFIG --libs "freetype2"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $FREETYPE_LIBS" >&5
-$as_echo "$FREETYPE_LIBS" >&6; }
+ FREETYPE_CFLAGS=`$as_echo "$FREETYPE_CFLAGS" | sed -e 's,///*,/,g'`
+ FREETYPE_LIBS=`$as_echo "$FREETYPE_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$FREETYPE_CFLAGS' LIBS='$FREETYPE_LIBS'" >&5
+$as_echo "yes CFLAGS='$FREETYPE_CFLAGS' LIBS='$FREETYPE_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libotf" >&5
$as_echo_n "checking for libotf... " >&6; }
- if $PKG_CONFIG --exists "libotf" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "libotf" 2>&5 &&
+ LIBOTF_CFLAGS=`$PKG_CONFIG --cflags "libotf" 2>&5` &&
+ LIBOTF_LIBS=`$PKG_CONFIG --libs "libotf" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_CFLAGS" >&5
-$as_echo_n "checking LIBOTF_CFLAGS... " >&6; }
- LIBOTF_CFLAGS=`$PKG_CONFIG --cflags "libotf"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_CFLAGS" >&5
-$as_echo "$LIBOTF_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBOTF_LIBS" >&5
-$as_echo_n "checking LIBOTF_LIBS... " >&6; }
- LIBOTF_LIBS=`$PKG_CONFIG --libs "libotf"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBOTF_LIBS" >&5
-$as_echo "$LIBOTF_LIBS" >&6; }
+ LIBOTF_CFLAGS=`$as_echo "$LIBOTF_CFLAGS" | sed -e 's,///*,/,g'`
+ LIBOTF_LIBS=`$as_echo "$LIBOTF_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$LIBOTF_CFLAGS' LIBS='$LIBOTF_LIBS'" >&5
+$as_echo "yes CFLAGS='$LIBOTF_CFLAGS' LIBS='$LIBOTF_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for m17n-flt" >&5
$as_echo_n "checking for m17n-flt... " >&6; }
- if $PKG_CONFIG --exists "m17n-flt" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "m17n-flt" 2>&5 &&
+ M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt" 2>&5` &&
+ M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_CFLAGS" >&5
-$as_echo_n "checking M17N_FLT_CFLAGS... " >&6; }
- M17N_FLT_CFLAGS=`$PKG_CONFIG --cflags "m17n-flt"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_CFLAGS" >&5
-$as_echo "$M17N_FLT_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking M17N_FLT_LIBS" >&5
-$as_echo_n "checking M17N_FLT_LIBS... " >&6; }
- M17N_FLT_LIBS=`$PKG_CONFIG --libs "m17n-flt"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $M17N_FLT_LIBS" >&5
-$as_echo "$M17N_FLT_LIBS" >&6; }
+ M17N_FLT_CFLAGS=`$as_echo "$M17N_FLT_CFLAGS" | sed -e 's,///*,/,g'`
+ M17N_FLT_LIBS=`$as_echo "$M17N_FLT_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$M17N_FLT_CFLAGS' LIBS='$M17N_FLT_LIBS'" >&5
+$as_echo "yes CFLAGS='$M17N_FLT_CFLAGS' LIBS='$M17N_FLT_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
-C_SWITCH_X_SYSTEM=
+GNUSTEP_CFLAGS=
### Use NeXTstep API to implement GUI.
if test "${HAVE_NS}" = "yes"; then
# See also .m.o rule in Makefile.in */
# FIXME: are all these flags really needed? Document here why. */
- C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+ GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
## Extra CFLAGS applied to src/*.m files.
GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for libxml-2.0 > 2.6.17" >&5
$as_echo_n "checking for libxml-2.0 > 2.6.17... " >&6; }
- if $PKG_CONFIG --exists "libxml-2.0 > 2.6.17" 2>&5; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
-$as_echo "yes" >&6; }
- succeeded=yes
+ if $PKG_CONFIG --exists "libxml-2.0 > 2.6.17" 2>&5 &&
+ LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 > 2.6.17" 2>&5` &&
+ LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 > 2.6.17" 2>&5`; then
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXML2_CFLAGS" >&5
-$as_echo_n "checking LIBXML2_CFLAGS... " >&6; }
- LIBXML2_CFLAGS=`$PKG_CONFIG --cflags "libxml-2.0 > 2.6.17"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML2_CFLAGS" >&5
-$as_echo "$LIBXML2_CFLAGS" >&6; }
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking LIBXML2_LIBS" >&5
-$as_echo_n "checking LIBXML2_LIBS... " >&6; }
- LIBXML2_LIBS=`$PKG_CONFIG --libs "libxml-2.0 > 2.6.17"|sed -e 's,///*,/,g'`
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $LIBXML2_LIBS" >&5
-$as_echo "$LIBXML2_LIBS" >&6; }
+ LIBXML2_CFLAGS=`$as_echo "$LIBXML2_CFLAGS" | sed -e 's,///*,/,g'`
+ LIBXML2_LIBS=`$as_echo "$LIBXML2_LIBS" | sed -e 's,///*,/,g'`
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes CFLAGS='$LIBXML2_CFLAGS' LIBS='$LIBXML2_LIBS'" >&5
+$as_echo "yes CFLAGS='$LIBXML2_CFLAGS' LIBS='$LIBXML2_LIBS'" >&6; }
+ succeeded=yes
else
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
$as_echo "no" >&6; }
echo
fi
+if test "${opsys}" = "cygwin"; then
+ case `uname -r` in
+ 1.5.*) { $as_echo "$as_me:${as_lineno-$LINENO}: WARNING: building Emacs on Cygwin 1.5 is not supported." >&5
+$as_echo "$as_me: WARNING: building Emacs on Cygwin 1.5 is not supported." >&2;}
+ echo
+ ;;
+ esac
+fi
# Remove any trailing slashes in these variables.
test "${prefix}" != NONE &&
fi
+
+opt_makefile=admin/unidata/Makefile
+
+if test -f $srcdir/${opt_makefile}.in; then
+ SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
+ ac_config_files="$ac_config_files admin/unidata/Makefile"
+
+fi
+
+
SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by emacs $as_me 24.0.94, which was
+This file was extended by emacs $as_me 24.1.50, which was
generated by GNU Autoconf 2.65. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`"
ac_cs_version="\\
-emacs config.status 24.0.94
+emacs config.status 24.1.50
configured by $0, generated by GNU Autoconf 2.65,
with options \\"\$ac_cs_config\\"
"lisp/Makefile") CONFIG_FILES="$CONFIG_FILES lisp/Makefile" ;;
"leim/Makefile") CONFIG_FILES="$CONFIG_FILES leim/Makefile" ;;
"test/automated/Makefile") CONFIG_FILES="$CONFIG_FILES test/automated/Makefile" ;;
+ "admin/unidata/Makefile") CONFIG_FILES="$CONFIG_FILES admin/unidata/Makefile" ;;
"mkdirs") CONFIG_COMMANDS="$CONFIG_COMMANDS mkdirs" ;;
"epaths") CONFIG_COMMANDS="$CONFIG_COMMANDS epaths" ;;
"gdbinit") CONFIG_COMMANDS="$CONFIG_COMMANDS gdbinit" ;;
dnl in the directory containing this script.
dnl If you changed any AC_DEFINES, also run autoheader.
dnl
-dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc.
+dnl Copyright (C) 1994-1996, 1999-2012 Free Software Foundation, Inc.
dnl
dnl This file is part of GNU Emacs.
dnl
dnl along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
AC_PREREQ(2.65)
-AC_INIT(emacs, 24.0.94)
+AC_INIT(emacs, 24.1.50)
AC_CONFIG_HEADER(src/config.h:src/config.in)
AC_CONFIG_SRCDIR(src/lisp.h)
AC_CONFIG_AUX_DIR(build-aux)
AC_PATH_PROG(GZIP_PROG, gzip)
-## Need makeinfo >= 4.6 (?) to build the manuals.
+## Need makeinfo >= 4.7 (?) to build the manuals.
AC_PATH_PROG(MAKEINFO, makeinfo, no)
dnl By this stage, configure has already checked for egrep and set EGREP,
dnl or exited with an error if no egrep was found.
if test "$MAKEINFO" != "no" && \
- test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[6-9]]|4\.[[1-5]][[0-9]]+)'`" = x; then
+ test x"`$MAKEINFO --version 2> /dev/null | $EGREP 'texinfo[[^0-9]]*([[1-4]][[0-9]]+|[[5-9]]|4\.[[7-9]]|4\.[[1-6]][[0-9]]+)'`" = x; then
MAKEINFO=no
fi
if test "x${with_makeinfo}" = "xno"; then
HAVE_MAKEINFO=no
elif test ! -e $srcdir/info/emacs; then
- AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.6, and your
+ AC_MSG_ERROR( [You do not seem to have makeinfo >= 4.7, and your
source tree does not seem to have pre-built manuals in the `info' directory.
Either install a suitable version of makeinfo, or re-run configure
with the `--without-makeinfo' option to build without the manuals.] )
if $PKG_CONFIG --atleast-pkgconfig-version $PKG_CONFIG_MIN_VERSION; then
AC_MSG_CHECKING(for $2)
- if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD; then
- AC_MSG_RESULT(yes)
- succeeded=yes
-
- AC_MSG_CHECKING($1_CFLAGS)
- $1_CFLAGS=`$PKG_CONFIG --cflags "$2"|sed -e 's,///*,/,g'`
- AC_MSG_RESULT($$1_CFLAGS)
+ if $PKG_CONFIG --exists "$2" 2>&AS_MESSAGE_LOG_FD &&
+ $1_CFLAGS=`$PKG_CONFIG --cflags "$2" 2>&AS_MESSAGE_LOG_FD` &&
+ $1_LIBS=`$PKG_CONFIG --libs "$2" 2>&AS_MESSAGE_LOG_FD`; then
- AC_MSG_CHECKING($1_LIBS)
- $1_LIBS=`$PKG_CONFIG --libs "$2"|sed -e 's,///*,/,g'`
- AC_MSG_RESULT($$1_LIBS)
+ $1_CFLAGS=`AS_ECHO(["$$1_CFLAGS"]) | sed -e 's,///*,/,g'`
+ $1_LIBS=`AS_ECHO(["$$1_LIBS"]) | sed -e 's,///*,/,g'`
+ AC_MSG_RESULT([yes CFLAGS='$$1_CFLAGS' LIBS='$$1_LIBS'])
+ succeeded=yes
else
AC_MSG_RESULT(no)
$1_CFLAGS=""
window_system=x11
fi
-## Workaround for bug in autoconf <= 2.62.
-## http://lists.gnu.org/archive/html/emacs-devel/2008-04/msg01551.html
-## No need to do anything special for these standard directories.
-if test -n "${x_libraries}" && test x"${x_libraries}" != xNONE; then
-
- x_libraries=`echo :${x_libraries}: | sed -e 's|:/usr/lib64:|:|g' -e 's|:/lib64:|:|g' -e 's|^:||' -e 's|:$||'`
-
-fi
-
LD_SWITCH_X_SITE_AUX=
LD_SWITCH_X_SITE_AUX_RPATH=
if test "${x_libraries}" != NONE; then
AC_CHECK_HEADER([AppKit/AppKit.h], [HAVE_NS=yes],
[AC_MSG_ERROR([`--with-ns' was specified, but the include
files are missing or cannot be compiled.])])
- NS_HAVE_NSINTEGER=yes
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([#include <Foundation/NSObjCRuntime.h>],
[NSInteger i;])],
ns_have_nsinteger=yes,
ns_have_nsinteger=no)
- if test $ns_have_nsinteger = no; then
- NS_HAVE_NSINTEGER=no
+ if test $ns_have_nsinteger = yes; then
+ AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
fi
fi
AC_SUBST(TEMACS_LDFLAGS2)
dnl Check for malloc/malloc.h on darwin
AC_CHECK_HEADER(malloc/malloc.h, [AC_DEFINE(HAVE_MALLOC_MALLOC_H, 1, [Define to 1 if you have the <malloc/malloc.h> header file.])])
-C_SWITCH_X_SYSTEM=
+GNUSTEP_CFLAGS=
### Use NeXTstep API to implement GUI.
if test "${HAVE_NS}" = "yes"; then
AC_DEFINE(HAVE_NS, 1, [Define to 1 if you are using the NeXTstep API, either GNUstep or Cocoa on Mac OS X.])
AC_DEFINE(NS_IMPL_GNUSTEP, 1, [Define to 1 if you are using NS windowing under GNUstep.])
# See also .m.o rule in Makefile.in */
# FIXME: are all these flags really needed? Document here why. */
- dnl FIXME this should be renamed to GNUSTEP_CFLAGS, and only
- dnl used in src/Makefile.in.
- C_SWITCH_X_SYSTEM="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
+ GNUSTEP_CFLAGS="-D_REENTRANT -fPIC -fno-strict-aliasing -I${GNUSTEP_SYSTEM_HEADERS} ${GNUSTEP_LOCAL_HEADERS}"
## Extra CFLAGS applied to src/*.m files.
GNU_OBJC_CFLAGS="$GNU_OBJC_CFLAGS -fgnu-runtime -Wno-import -fconstant-string-class=NSConstantString -DGNUSTEP_BASE_LIBRARY=1 -DGNU_GUI_LIBRARY=1 -DGNU_RUNTIME=1 -DGSWARN -DGSDIAGNOSE"
fi
- if test "${NS_HAVE_NSINTEGER}" = "yes"; then
- AC_DEFINE(NS_HAVE_NSINTEGER, 1, [Define to 1 if `NSInteger' is defined.])
- fi
# We also have mouse menus.
HAVE_MENUS=yes
OTHER_FILES=ns-app
sendto recvfrom getsockopt setsockopt getsockname getpeername \
gai_strerror mkstemp getline getdelim mremap fsync sync \
difftime mempcpy mblen mbrlen posix_memalign \
+getpwent endpwent getgrent endgrent \
cfmakeraw cfsetspeed copysign __executable_start)
dnl Cannot use AC_CHECK_FUNCS
## end of LIBX_BASE, but nothing ever set it.
AC_SUBST(LD_SWITCH_X_SITE)
AC_SUBST(C_SWITCH_X_SITE)
-AC_SUBST(C_SWITCH_X_SYSTEM)
+AC_SUBST(GNUSTEP_CFLAGS)
AC_SUBST(CFLAGS)
## Used in lwlib/Makefile.in.
AC_SUBST(X_TOOLKIT_TYPE)
echo
fi
+if test "${opsys}" = "cygwin"; then
+ case `uname -r` in
+ 1.5.*) AC_MSG_WARN([[building Emacs on Cygwin 1.5 is not supported.]])
+ echo
+ ;;
+ esac
+fi
# Remove any trailing slashes in these variables.
[test "${prefix}" != NONE &&
AC_CONFIG_FILES([test/automated/Makefile])
fi
+
+dnl admin/ may or may not be present.
+opt_makefile=admin/unidata/Makefile
+
+if test -f $srcdir/${opt_makefile}.in; then
+ SUBDIR_MAKEFILES="$SUBDIR_MAKEFILES $opt_makefile"
+ AC_CONFIG_FILES([admin/unidata/Makefile])
+fi
+
+
SUBDIR_MAKEFILES_IN=`echo " ${SUBDIR_MAKEFILES}" | sed -e 's| | $(srcdir)/|g' -e 's|Makefile|Makefile.in|g'`
AC_SUBST(SUBDIR_MAKEFILES_IN)
+2012-04-15 Chong Yidong <cyd@gnu.org>
+
+ * misc.texi (emacsclient Options): More clarifications.
+
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * msdog.texi (Windows Printing): It doesn't set printer-name.
+
+ * mule.texi (Language Environments): Move font info to "Fontsets".
+ (Fontsets): Move intlfonts etc here from "Language Environments".
+ Copyedits.
+ (Defining Fontsets, Modifying Fontsets, Undisplayable Characters)
+ (Unibyte Mode, Charsets, Bidirectional Editing): Copyedits.
+
+2012-04-15 Chong Yidong <cyd@gnu.org>
+
+ * glossary.texi (Glossary): Standardize on "text terminal"
+ terminology. All callers changed.
+
+ * misc.texi (emacsclient Options): Document "client frame" concept
+ and its effect on C-x C-c more carefully.
+
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * frames.texi (Scroll Bars):
+ * glossary.texi (Glossary): Use consistent case for "X Window System".
+
+ * mule.texi (Select Input Method, Coding Systems):
+ State command names in kbd tables.
+ (Recognize Coding): Add cross-ref.
+ (Output Coding): Don't mention message mode in particular.
+ (Text Coding, Communication Coding, File Name Coding, Terminal Coding):
+ Copyedits.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * mule.texi (Select Input Method, Coding Systems, Recognize Coding):
+ Copyedits.
+ (Coding Systems): Mac OS X apparently uses newlines for EOL.
+ (Recognize Coding): Remove old auto-coding-regexp-alist example.
+ auto-coding-functions does not override coding: tags.
+ Remove rmail-decode-mime-charset; it no longer has any effect.
+
+2012-04-14 Chong Yidong <cyd@gnu.org>
+
+ * custom.texi (Creating Custom Themes): Add reference to Custom
+ Themes node in Lisp manual.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * mule.texi (International): Copyedits.
+ (International Chars): Update C-x = example output.
+ (Disabling Multibyte): Rename from "Enabling Multibyte".
+ Clarify what "unibyte: t" does, and mode-line description.
+ (Unibyte Mode): Update for "Disabling Multibyte" node name change.
+ Use Texinfo recommended convention for quotes+punctuation.
+ (Language Environments): Copyedits.
+ (Input Methods): Copyedits. Use "^" for the postfix example,
+ because it is less confusing inside Info's `quotes'.
+
+ * custom.texi (Specifying File Variables): Fix "unibyte" description.
+ Update for "Disabling Multibyte" node name change.
+ * emacs.texi: Update for "Disabling Multibyte" node name change.
+
+ * abbrevs.texi, arevert-xtra.texi, buffers.texi, building.texi:
+ * cmdargs.texi, custom.texi, entering.texi, files.texi, frames.texi:
+ * glossary.texi, help.texi, macos.texi, maintaining.texi, mini.texi:
+ * misc.texi, package.texi, programs.texi, screen.texi, search.texi:
+ * sending.texi, text.texi, trouble.texi:
+ Use @file for buffers, per the Texinfo manual.
+
+ * entering.texi (Entering Emacs):
+ Do not mention initial-buffer-choice = t.
+
+ * misc.texi (Gnus Startup): Use @env for environment variables.
+
+ * Makefile.in: Replace non-portable use of $< in ordinary rules.
+
+2012-04-12 Glenn Morris <rgm@gnu.org>
+
+ * ack.texi (Acknowledgments): Don't mention obsolete mailpost.el.
+
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * emacsver.texi (EMACSVER): Bump version to 24.1.50.
+
+2012-04-05 Glenn Morris <rgm@gnu.org>
+
+ * glossary.texi (Glossary): Use anchors for internal cross-references.
+
+2012-04-04 Glenn Morris <rgm@gnu.org>
+
+ * glossary.texi (Glossary): Copyedits.
+ Use Texinfo-recommended convention for quotes and punctuation.
+ Comment out a few specialized (Rmail) items.
+ New items: Bidirectional Text, Client, Directory Local Variable,
+ File Local Variable, Package, Server, Theme, Trash Can.
+
+2012-04-03 Chong Yidong <cyd@gnu.org>
+
+ * sending.texi (Mail Misc): Fix an index entry.
+
+2012-04-02 Eli Zaretskii <eliz@gnu.org>
+
+ * msdog.texi (Windows Startup): Add description of emacsclient
+ operation under -c and -t on MS-Windows.
+
+ * misc.texi (emacsclient Options): Add cross-reference to "Windows
+ Startup". (Bug#11091)
+
+2012-04-02 Dani Moncayo <dmoncayo@gmail.com> (tiny change)
+
+ * custom.texi (Changing a Variable): Fix example.
+
+2012-04-01 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (emacsclient Options): More clarifications about -t
+ and -c on MS-Windows. (Bug#11091)
+
+2012-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * misc.texi (emacsclient Options): Document peculiarities of new
+ frame creation on MS-Windows under -c or -t options. (Bug#11091)
+
+2012-03-30 Chong Yidong <cyd@gnu.org>
+
+ * files.texi (File Conveniences): Clarify Imagemagick discussion.
+
2012-03-22 Glenn Morris <rgm@gnu.org>
* dired.texi (Operating on Files): Fix dired-recursive-copies default.
#### Makefile for the Emacs Manual
-# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# Note that all the Info targets build the Info files in srcdir.
# There is no provision for Info files to exist in the build directory.
# In a distribution of Emacs, the Info files should be up to date.
-
+# Note: "<" is not portable in ordinary make rules.
$(infodir)/emacs: ${EMACSSOURCES}
$(mkinfodir)
- $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs.texi
emacs.dvi: ${EMACSSOURCES}
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs.texi
emacs.ps: emacs.dvi
- $(DVIPS) -o $@ $<
+ $(DVIPS) -o $@ emacs.dvi
emacs.pdf: ${EMACSSOURCES}
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs.texi
emacs.html: ${EMACSSOURCES}
- $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs.texi
emacs-xtra.dvi: $(EMACS_XTRA)
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-xtra.texi
emacs-xtra.ps: emacs-xtra.dvi
- $(DVIPS) -o $@ $<
+ $(DVIPS) -o $@ emacs-xtra.dvi
emacs-xtra.pdf: $(EMACS_XTRA)
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-xtra.texi
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
@kbd{M-x edit-abbrevs} allows you to add, change or kill abbrev
definitions by editing a list of them in an Emacs buffer. The list has
the same format described above. The buffer of abbrevs is called
-@samp{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in
+@file{*Abbrevs*}, and is in Edit-Abbrevs mode. Type @kbd{C-c C-c} in
this buffer to install the abbrev definitions as specified in the
buffer---and delete any abbrev definitions not listed.
The command @code{edit-abbrevs} is actually the same as
-@code{list-abbrevs} except that it selects the buffer @samp{*Abbrevs*}
+@code{list-abbrevs} except that it selects the buffer @file{*Abbrevs*}
whereas @code{list-abbrevs} merely displays it in another window.
@node Saving Abbrevs
Vivek Dasmohapatra wrote @file{htmlfontify.el}, to convert a buffer or
source tree to HTML.
-@item
-Gary Delp wrote @file{mailpost.el}, an interface between RMAIL and the
-@file{/usr/uci/post} mailer.
-
@item
Matthieu Devin wrote @file{delsel.el}, a package to make newly-typed
text replace the current selection.
creates a virtual Info manual of package keywords.
@item
-Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows Emacs to
-run on graphical and text-only terminals simultaneously.
+Károly L@H{o}rentey wrote the ``multi-terminal'' code, which allows
+Emacs to run on graphical and text terminals simultaneously.
@item
Martin Lorentzon wrote @file{vc-annotate.el}, support for version
Remote Dired buffers are not auto-reverted (because it may be slow).
Neither are Dired buffers for which you used shell wildcards or file
-arguments to list only some of the files. @samp{*Find*} and
-@samp{*Locate*} buffers do not auto-revert either.
+arguments to list only some of the files. @file{*Find*} and
+@file{*Locate*} buffers do not auto-revert either.
@c FIXME? This should be in the elisp manual?
@node Supporting additional buffers
On most keyboards, @key{DEL} is labeled @key{Backspace}, but we
refer to it as @key{DEL} in this manual. (Do not confuse @key{DEL}
with the @key{Delete} key; we will discuss @key{Delete} momentarily.)
-On some text-only terminals, Emacs may not recognize the @key{DEL} key
+On some text terminals, Emacs may not recognize the @key{DEL} key
properly. @xref{DEL Does Not Delete}, if you encounter this problem.
The @key{delete} (@code{delete-forward-char}) command deletes in the
@dfn{continuation}, and the long logical line is called a
@dfn{continued line}. On a graphical display, Emacs indicates line
wrapping with small bent arrows in the left and right window fringes.
-On a text-only terminal, Emacs indicates line wrapping by displaying a
+On a text terminal, Emacs indicates line wrapping by displaying a
@samp{\} character at the right margin.
Most commands that act on lines act on logical lines, not screen
continuing them. This means that every logical line occupies a single
screen line; if it is longer than the width of the window, the rest of
the line is not displayed. On a graphical display, a truncated line
-is indicated by a small straight arrow in the right fringe; on a
-text-only terminal, it is indicated by a @samp{$} character in the
-right margin. @xref{Line Truncation}.
+is indicated by a small straight arrow in the right fringe; on a text
+terminal, it is indicated by a @samp{$} character in the right margin.
+@xref{Line Truncation}.
By default, continued lines are wrapped at the right window edge.
Since the wrapping may occur in the middle of a word, continued lines
the file's text. Each time you invoke Dired, a buffer is used to hold
the directory listing. If you send a message with @kbd{C-x m}, a
buffer is used to hold the text of the message. When you ask for a
-command's documentation, that appears in a buffer named @samp{*Help*}.
+command's documentation, that appears in a buffer named @file{*Help*}.
Each buffer has a unique name, which can be of any length. When a
buffer is displayed in a window, its name is shown in the mode line
matters in buffer names. Most buffers are made by visiting files, and
their names are derived from the files' names; however, you can also
create an empty buffer with any name you want. A newly started Emacs
-has several buffers, including one named @samp{*scratch*}, which can
+has several buffers, including one named @file{*scratch*}, which can
be used for evaluating Lisp expressions and is not associated with any
file (@pxref{Lisp Interaction}).
@end smallexample
@noindent
-The buffer @samp{*Help*} was made by a help request (@pxref{Help}); it
+The buffer @file{*Help*} was made by a help request (@pxref{Help}); it
is not visiting any file. The buffer @code{src} was made by Dired on
the directory @file{~/cvs/emacs/src/}. You can list only buffers that
are visiting files by giving the command a prefix argument, as in
@kbd{M-x rename-uniquely} renames the current buffer to a similar
name with a numeric suffix added to make it both different and unique.
This command does not need an argument. It is useful for creating
-multiple shell buffers: if you rename the @samp{*shell*} buffer, then
+multiple shell buffers: if you rename the @file{*shell*} buffer, then
do @kbd{M-x shell} again, it makes a new shell buffer named
-@samp{*shell*}; meanwhile, the old shell buffer continues to exist
+@file{*shell*}; meanwhile, the old shell buffer continues to exist
under its new name. This method is also good for mail buffers,
compilation buffers, and most Emacs features that create special
buffers with particular names. (With some of these features, such as
@findex buffer-menu
@findex buffer-menu-other-window
To use the buffer menu, type @kbd{C-x C-b} and switch to the window
-displaying the @samp{*Buffer List*} buffer. You can also type
+displaying the @file{*Buffer List*} buffer. You can also type
@kbd{M-x buffer-menu} to open the buffer menu in the selected window.
Alternatively, the command @kbd{M-x buffer-menu-other-window} opens
the buffer menu in another window, and selects that window.
visible buffer in its place.
@item @key{RET}
@itemx f
-Immediately select this line's buffer in place of the @samp{*Buffer
+Immediately select this line's buffer in place of the @file{*Buffer
List*} buffer.
@item o
Immediately select this line's buffer in another window as if by
-@kbd{C-x 4 b}, leaving @samp{*Buffer List*} visible.
+@kbd{C-x 4 b}, leaving @file{*Buffer List*} visible.
@item C-o
Immediately display this line's buffer in another window, but don't
select the window.
@item 2
Immediately set up two windows, with this line's buffer selected in
one, and the previously current buffer (aside from the buffer
-@samp{*Buffer List*}) displayed in the other.
+@file{*Buffer List*}) displayed in the other.
@item b
Bury the buffer listed on this line.
@item m
suitable buffer, and turn on Buffer Menu mode in it. Everything else
described above is implemented by the special commands provided in
Buffer Menu mode. One consequence of this is that you can switch from
-the @samp{*Buffer List*} buffer to another Emacs buffer, and edit
-there. You can reselect the @samp{*Buffer List*} buffer later, to
+the @file{*Buffer List*} buffer to another Emacs buffer, and edit
+there. You can reselect the @file{*Buffer List*} buffer later, to
perform the operations already requested, or you can kill it, or pay
no further attention to it.
- Normally, the buffer @samp{*Buffer List*} is not updated
+ Normally, the buffer @file{*Buffer List*} is not updated
automatically when buffers are created and killed; its contents are
just text. If you have created, deleted or renamed buffers, the way
-to update @samp{*Buffer List*} to show what you have done is to type
+to update @file{*Buffer List*} to show what you have done is to type
@kbd{g} (@code{revert-buffer}). You can make this happen regularly
every @code{auto-revert-interval} seconds if you enable Auto Revert
mode in this buffer, as long as it is not marked modified. Global
-Auto Revert mode applies to the @samp{*Buffer List*} buffer only if
+Auto Revert mode applies to the @file{*Buffer List*} buffer only if
@code{global-auto-revert-non-file-buffers} is non-@code{nil}.
@iftex
@inforef{Autorevert,, emacs-xtra}, for details.
@table @kbd
@item M-x compile
Run a compiler asynchronously under Emacs, with error messages going to
-the @samp{*compilation*} buffer.
+the @file{*compilation*} buffer.
@item M-x recompile
Invoke a compiler with the same command as in the last invocation of
@kbd{M-x compile}.
compile}. This reads a shell command line using the minibuffer, and
then executes the command by running a shell as a subprocess (or
@dfn{inferior process}) of Emacs. The output is inserted in a buffer
-named @samp{*compilation*}. The current buffer's default directory is
+named @file{*compilation*}. The current buffer's default directory is
used as the working directory for the execution of the command;
normally, therefore, compilation takes place in this directory.
type @kbd{M-x compile}. A file can also specify a file-local value
for @code{compile-command} (@pxref{File Variables}).
- Starting a compilation displays the @samp{*compilation*} buffer in
+ Starting a compilation displays the @file{*compilation*} buffer in
another window but does not select it. While the compilation is
running, the word @samp{run} is shown in the major mode indicator for
-the @samp{*compilation*} buffer, and the word @samp{Compiling} appears
-in all mode lines. You do not have to keep the @samp{*compilation*}
+the @file{*compilation*} buffer, and the word @samp{Compiling} appears
+in all mode lines. You do not have to keep the @file{*compilation*}
buffer visible while compilation is running; it continues in any case.
When the compilation ends, for whatever reason, the mode line of the
-@samp{*compilation*} buffer changes to say @samp{exit} (followed by
+@file{*compilation*} buffer changes to say @samp{exit} (followed by
the exit code: @samp{[0]} for a normal exit), or @samp{signal} (if a
signal terminated the process).
If you want to watch the compilation transcript as it appears,
-switch to the @samp{*compilation*} buffer and move point to the end of
+switch to the @file{*compilation*} buffer and move point to the end of
the buffer. When point is at the end, new compilation output is
inserted above point, which remains at the end. Otherwise, point
remains fixed while compilation output is added at the end of the
@cindex compilation buffer, keeping point at end
@vindex compilation-scroll-output
If you change the variable @code{compilation-scroll-output} to a
-non-@code{nil} value, the @samp{*compilation*} buffer scrolls
+non-@code{nil} value, the @file{*compilation*} buffer scrolls
automatically to follow the output. If the value is
@code{first-error}, scrolling stops when the first error appears,
leaving point at that error. For any other non-@code{nil} value,
To rerun the last compilation with the same command, type @kbd{M-x
recompile}. This reuses the compilation command from the last
invocation of @kbd{M-x compile}. It also reuses the
-@samp{*compilation*} buffer and starts the compilation in its default
+@file{*compilation*} buffer and starts the compilation in its default
directory, which is the directory in which the previous compilation
was started.
@findex kill-compilation
Starting a new compilation also kills any compilation already
-running in @samp{*compilation*}, as the buffer can only handle one
+running in @file{*compilation*}, as the buffer can only handle one
compilation at any time. However, @kbd{M-x compile} asks for
confirmation before actually killing a compilation that is running.
You can also kill the compilation process with @kbd{M-x
kill-compilation}.
To run two compilations at once, start the first one, then rename
-the @samp{*compilation*} buffer (perhaps using @code{rename-uniquely};
+the @file{*compilation*} buffer (perhaps using @code{rename-uniquely};
@pxref{Misc Buffer}), then switch buffers and start the other
-compilation. This will create a new @samp{*compilation*} buffer.
+compilation. This will create a new @file{*compilation*} buffer.
@vindex compilation-environment
You can control the environment passed to the compilation command
@cindex Compilation mode
@cindex mode, Compilation
@cindex locus
- The @samp{*compilation*} buffer uses a major mode called Compilation
+ The @file{*compilation*} buffer uses a major mode called Compilation
mode. Compilation mode turns each error message in the buffer into a
hyperlink; you can move point to it and type @key{RET}, or click on it
with the mouse (@pxref{Mouse References}), to visit the @dfn{locus} of
If you change the variable
@code{compilation-auto-jump-to-first-error} to a non-@code{nil} value,
Emacs automatically visits the locus of the first error message that
-appears in the @samp{*compilation*} buffer.
+appears in the @file{*compilation*} buffer.
Compilation mode provides the following additional commands. These
-commands can also be used in @samp{*grep*} buffers, where the
+commands can also be used in @file{*grep*} buffers, where the
hyperlinks are search matches rather than error messages (@pxref{Grep
Searching}).
visits the locus of the first error message. Each subsequent
@w{@kbd{C-x `}} visits the next error, in a similar fashion. If you
visit a specific error with @key{RET} or a mouse click in the
-@samp{*compilation*} buffer, subsequent @w{@kbd{C-x `}} commands
+@file{*compilation*} buffer, subsequent @w{@kbd{C-x `}} commands
advance from there. When @w{@kbd{C-x `}} finds no more error messages
to visit, it signals an error. @w{@kbd{C-u C-x `}} starts again from
the beginning of the compilation buffer, and visits the first locus.
through errors in the opposite direction.
The @code{next-error} and @code{previous-error} commands don't just
-act on the errors or matches listed in @samp{*compilation*} and
-@samp{*grep*} buffers; they also know how to iterate through error or
+act on the errors or matches listed in @file{*compilation*} and
+@file{*grep*} buffers; they also know how to iterate through error or
match lists produced by other commands, such as @kbd{M-x occur}
(@pxref{Other Repeating Search}). If you are already in a buffer
containing error messages or matches, those are the ones that are
is determined by the variable @code{next-error-highlight}.
@vindex compilation-context-lines
- If the @samp{*compilation*} buffer is shown in a window with a left
+ If the @file{*compilation*} buffer is shown in a window with a left
fringe (@pxref{Fringes}), the locus-visiting commands put an arrow in
the fringe, pointing to the current error message. If the window has
-no left fringe, such as on a text-only terminal, these commands scroll
-the window so that the current message is at the top of the window.
-If you change the variable @code{compilation-context-lines} to an
-integer value @var{n}, these commands scroll the window so that the
-current error message is @var{n} lines from the top, whether or not
-there is a fringe; the default value, @code{nil}, gives the behavior
-described above.
+no left fringe, such as on a text terminal, these commands scroll the
+window so that the current message is at the top of the window. If
+you change the variable @code{compilation-context-lines} to an integer
+value @var{n}, these commands scroll the window so that the current
+error message is @var{n} lines from the top, whether or not there is a
+fringe; the default value, @code{nil}, gives the behavior described
+above.
@vindex compilation-error-regexp-alist
@vindex grep-regexp-alist
command, but specifies the option for a noninteractive shell. This
means, in particular, that the shell should start with no prompt. If
you find your usual shell prompt making an unsightly appearance in the
-@samp{*compilation*} buffer, it means you have made a mistake in your
+@file{*compilation*} buffer, it means you have made a mistake in your
shell's init file by setting the prompt unconditionally. (This init
file may be named @file{.bashrc}, @file{.profile}, @file{.cshrc},
@file{.shrc}, etc., depending on what shell you use.) The shell init
@item M-x grep
@itemx M-x lgrep
Run @command{grep} asynchronously under Emacs, listing matching lines in
-the buffer named @samp{*grep*}.
+the buffer named @file{*grep*}.
@item M-x grep-find
@itemx M-x find-grep
@itemx M-x rgrep
Run @command{grep} via @code{find}, and collect output in the
-@samp{*grep*} buffer.
+@file{*grep*} buffer.
@item M-x zrgrep
-Run @code{zgrep} and collect output in the @samp{*grep*} buffer.
+Run @code{zgrep} and collect output in the @file{*grep*} buffer.
@item M-x kill-grep
Kill the running @command{grep} subprocess.
@end table
grep -nH -e foo *.el | grep bar | grep toto
@end example
- The output from @command{grep} goes in the @samp{*grep*} buffer. You
+ The output from @command{grep} goes in the @file{*grep*} buffer. You
can find the corresponding lines in the original files using @w{@kbd{C-x
`}}, @key{RET}, and so forth, just like compilation errors.
As you debug a program, Emacs displays the relevant source files by
visiting them in Emacs buffers, with an arrow in the left fringe
-indicating the current execution line. (On a text-only terminal, the
-arrow appears as @samp{=>}, overlaid on the first two text columns.)
-Moving point in such a buffer does not move the arrow. You are free
-to edit these source files, but note that inserting or deleting lines
-will throw off the arrow's positioning, as Emacs has no way to figure
-out which edited source line corresponds to the line reported by the
+indicating the current execution line. (On a text terminal, the arrow
+appears as @samp{=>}, overlaid on the first two text columns.) Moving
+point in such a buffer does not move the arrow. You are free to edit
+these source files, but note that inserting or deleting lines will
+throw off the arrow's positioning, as Emacs has no way to figure out
+which edited source line corresponds to the line reported by the
debugger subprocess. To update this information, you typically have
to recompile and restart the program.
enables or disables an existing breakpoint; a breakpoint that is
disabled, but not unset, is indicated by a gray dot.
- On a text-only terminal, or when fringes are disabled, enabled
+ On a text terminal, or when fringes are disabled, enabled
breakpoints are indicated with a @samp{B} character in the left margin
of the window. Disabled breakpoints are indicated with @samp{b}.
(The margin is only displayed if a breakpoint is present.)
@findex gdb-frames-select
On graphical displays, the selected stack frame is indicated by an
-arrow in the fringe. On text-only terminals, or when fringes are
-disabled, the selected stack frame is displayed in reverse contrast.
-To select a stack frame, move point in its line and type @key{RET}
+arrow in the fringe. On text terminals, or when fringes are disabled,
+the selected stack frame is displayed in reverse contrast. To select
+a stack frame, move point in its line and type @key{RET}
(@code{gdb-frames-select}), or click @kbd{Mouse-2} on it. Doing so
also updates the Locals buffer
@ifnottex
@section Lisp Interaction Buffers
@findex lisp-interaction-mode
- When Emacs starts up, it contains a buffer named @samp{*scratch*},
+ When Emacs starts up, it contains a buffer named @file{*scratch*},
which is provided for evaluating Emacs Lisp expressions interactively.
Its major mode is Lisp Interaction mode. You can also enable Lisp
Interaction mode by typing @kbd{M-x lisp-interaction-mode}.
@findex eval-print-last-sexp
@kindex C-j @r{(Lisp Interaction mode)}
- In the @samp{*scratch*} buffer, and other Lisp Interaction mode
+ In the @file{*scratch*} buffer, and other Lisp Interaction mode
buffers, @kbd{C-j} (@code{eval-print-last-sexp}) evaluates the Lisp
expression before point, and inserts the value at point. Thus, as you
type expressions into the buffer followed by @kbd{C-j} after each
mode are the same as in Emacs Lisp mode.
@vindex initial-scratch-message
- At startup, the @samp{*scratch*} buffer contains a short message, in
+ At startup, the @file{*scratch*} buffer contains a short message, in
the form of a Lisp comment, that explains what it is for. This
message is controlled by the variable @code{initial-scratch-message},
which should be either a string, or @code{nil} (which means to
interactively is to use Inferior Emacs Lisp mode, which provides an
interface rather like Shell mode (@pxref{Shell Mode}) for evaluating
Emacs Lisp expressions. Type @kbd{M-x ielm} to create an
-@samp{*ielm*} buffer which uses this mode. For more information, see
+@file{*ielm*} buffer which uses this mode. For more information, see
that command's documentation.
@node External Lisp
evaluated. To begin an external Lisp session, type @kbd{M-x
run-lisp}. This runs the program named @command{lisp}, and sets it up
so that both input and output go through an Emacs buffer named
-@samp{*inferior-lisp*}. To change the name of the Lisp program run by
+@file{*inferior-lisp*}. To change the name of the Lisp program run by
@kbd{M-x run-lisp}, change the variable @code{inferior-lisp-program}.
- The major mode for the @samp{*lisp*} buffer is Inferior Lisp mode,
+ The major mode for the @file{*lisp*} buffer is Inferior Lisp mode,
which combines the characteristics of Lisp mode and Shell mode
(@pxref{Shell Mode}). To send input to the Lisp session, go to the
-end of the @samp{*lisp*} buffer and type the input, followed by
+end of the @file{*lisp*} buffer and type the input, followed by
@key{RET}. Terminal output from the Lisp session is automatically
inserted in the buffer.
buffer to a Lisp session that you had started with @kbd{M-x run-lisp}.
The expression sent is the top-level Lisp expression at or following
point. The resulting value goes as usual into the
-@samp{*inferior-lisp*} buffer. Note that the effect of @kbd{C-M-x} in
+@file{*inferior-lisp*} buffer. Note that the effect of @kbd{C-M-x} in
Lisp mode is thus very similar to its effect in Emacs Lisp mode
(@pxref{Lisp Eval}), except that the expression is sent to a different
Lisp environment instead of being evaluated in Emacs.
edited in Scheme mode, which can be explicitly enabled with @kbd{M-x
scheme-mode}. You can initiate a Scheme session by typing @kbd{M-x
run-scheme} (the buffer for interacting with Scheme is named
-@samp{*scheme*}), and send expressions to it by typing @kbd{C-M-x}.
+@file{*scheme*}), and send expressions to it by typing @kbd{C-M-x}.
@item --insert=@var{file}
@opindex --insert
@cindex insert file contents, command-line argument
-Insert the contents of @var{file} into the @samp{*scratch*} buffer
+Insert the contents of @var{file} into the @file{*scratch*} buffer
(@pxref{Lisp Interaction}). This is like what @kbd{M-x insert-file}
does (@pxref{Misc File Ops}).
You can reverse the foreground and background colors through the
@samp{-rv} option or with the X resource @samp{reverseVideo}.
- The @samp{-fg}, @samp{-bg}, and @samp{-rv} options function on
-text-only terminals as well as on graphical displays.
+ The @samp{-fg}, @samp{-bg}, and @samp{-rv} options function on text
+terminals as well as on graphical displays.
@node Window Size X
@appendixsec Options for Window Size and Position
C-a}. Unlike @key{Meta}, @key{ESC} is entered as a separate
character. You don't hold down @key{ESC} while typing the next
character; instead, press @key{ESC} and release it, then enter the
-next character. This feature is useful on certain text-only terminals
+next character. This feature is useful on certain text terminals
where the @key{Meta} key does not function reliably.
@cindex keys stolen by window manager
@smallexample
[Set for Current Session] [Save for Future Sessions]
- [Undo Edits] [Reset to Saved] [Erase Customization] [Finish]
+ [Undo Edits] [Reset to Saved] [Erase Customization] [Exit]
@end smallexample
@noindent
Sessions]} button.
@vindex custom-buffer-done-kill
- The @samp{[Finish]} button switches out of the customization buffer,
+ The @samp{[Exit]} button switches out of the customization buffer,
and buries the buffer at the bottom of the buffer list. To make it
kill the customization buffer instead, change the variable
@code{custom-buffer-done-kill} to @code{t}.
@vindex custom-theme-directory
@cindex color scheme
Type @kbd{M-x customize-themes} to switch to a buffer named
-@samp{*Custom Themes*}, which lists the Custom themes that Emacs knows
+@file{*Custom Themes*}, which lists the Custom themes that Emacs knows
about. By default, Emacs looks for theme files in two locations: the
directory specified by the variable @code{custom-theme-directory}
(which defaults to @file{~/.emacs.d/}), and a directory named
@code{custom-theme-directory} has the special meaning of the value of
the variable @code{custom-theme-directory}, while @code{t} stands for
the built-in theme directory @file{etc/themes}. The themes listed in
-the @samp{*Custom Themes*} buffer are those found in the directories
+the @file{*Custom Themes*} buffer are those found in the directories
specified by @code{custom-theme-load-path}.
@kindex C-x C-s @r{(Custom Themes buffer)}
- In the @samp{*Custom Themes*} buffer, you can activate the checkbox
+ In the @file{*Custom Themes*} buffer, you can activate the checkbox
next to a Custom theme to enable or disable the theme for the current
Emacs session. When a Custom theme is enabled, all of its settings
(variables and faces) take effect in the Emacs session. To apply the
Setting or saving Custom themes actually works by customizing the
variable @code{custom-enabled-themes}. The value of this variable is
a list of Custom theme names (as Lisp symbols, e.g.@: @code{tango}).
-Instead of using the @samp{*Custom Themes*} buffer to set
+Instead of using the @file{*Custom Themes*} buffer to set
@code{custom-enabled-themes}, you can customize the variable using the
usual customization interface, e.g.@: with @kbd{M-x customize-option}.
Note that Custom themes are not allowed to set
@findex describe-theme
To see a description of a Custom theme, type @kbd{?} on its line in
-the @samp{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
+the @file{*Custom Themes*} buffer; or type @kbd{M-x describe-theme}
anywhere in Emacs and enter the theme name in the minibuffer.
@node Creating Custom Themes
@findex customize-create-theme
You can define a Custom theme using an interface similar to the
customization buffer, by typing @kbd{M-x customize-create-theme}.
-This switches to a buffer named @samp{*Custom Theme*}. It also offers
+This switches to a buffer named @file{*Custom Theme*}. It also offers
to insert some common Emacs faces into the theme (a convenience, since
Custom themes are often used to customize faces). If you answer no,
the theme will initially contain no settings.
- Near the top of the @samp{*Custom Theme*} buffer are editable fields
+ Near the top of the @file{*Custom Theme*} buffer are editable fields
where you can enter the theme's name and description. The name can be
anything except @samp{user}. The description is the one that will be
shown when you invoke @kbd{M-x describe-theme} for the theme. Its
@file{@var{name}-theme.el} where @var{name} is the theme name, in the
directory named by @code{custom-theme-directory}.
- From the @samp{*Custom Theme*} buffer, you can view and edit an
+ From the @file{*Custom Theme*} buffer, you can view and edit an
existing Custom theme by activating the @samp{[Visit Theme]} button
and specifying the theme name. You can also add the settings of
another theme into the buffer, using the @samp{[Merge Theme]} button.
A theme file is simply an Emacs Lisp source file, and loading the
Custom theme works by loading the Lisp file. Therefore, you can edit
-a theme file directly instead of using the @samp{*Custom Theme*}
-buffer.
-@c Add link to the relevant Emacs Lisp Reference manual node, once
-@c that is written.
+a theme file directly instead of using the @file{*Custom Theme*}
+buffer. @xref{Custom Themes,,, elisp, The Emacs Lisp Reference
+Manual}, for details.
@node Variables
@section Variables
@noindent
To execute such an expression, type @kbd{M-:} (@code{eval-expression})
and enter the expression in the minibuffer (@pxref{Lisp Eval}).
-Alternatively, go to the @samp{*scratch*} buffer, type in the
+Alternatively, go to the @file{*scratch*} buffer, type in the
expression, and then type @kbd{C-j} (@pxref{Lisp Interaction}).
Setting variables, like all means of customizing Emacs except where
conversion of this file. @xref{Coding Systems}.
@item
-@code{unibyte} says to visit the file in a unibyte buffer, if the
-value is @code{t}. @xref{Enabling Multibyte}.
+@code{unibyte} says to load or compile a file of Emacs Lisp in unibyte
+mode, if the value is @code{t}. @xref{Disabling Multibyte}.
@end itemize
@noindent
screen. To disable automatic horizontal scrolling, set the variable
@code{auto-hscroll-mode} to @code{nil}. Note that when the automatic
horizontal scrolling is turned off, if point moves off the edge of the
-screen, the cursor disappears to indicate that. (On text-only
-terminals, the cursor is left at the edge instead.)
+screen, the cursor disappears to indicate that. (On text terminals,
+the cursor is left at the edge instead.)
@vindex hscroll-margin
The variable @code{hscroll-margin} controls how close point can get
matching that regular expression (@pxref{Regexps}).
It's possible for a given face to look different in different
-frames. For instance, some text-only terminals do not support all
-face attributes, particularly font, height, and width, and some
-support a limited range of colors.
+frames. For instance, some text terminals do not support all face
+attributes, particularly font, height, and width, and some support a
+limited range of colors.
@cindex background color
@cindex default face
@samp{medium sea green}. To view a list of color names, type @kbd{M-x
list-colors-display}. To control the order in which colors are shown,
customize @code{list-colors-sort}. If you run this command on a
-graphical display, it shows the full range of color names known to Emacs
-(these are the standard X11 color names, defined in X's @file{rgb.txt}
-file). If you run the command on a text-only terminal, it shows only a
-small subset of colors that can be safely displayed on such terminals.
-However, Emacs understands X11 color names even on text-only terminals;
-if a face is given a color specified by an X11 color name, it is
-displayed using the closest-matching terminal color.
+graphical display, it shows the full range of color names known to
+Emacs (these are the standard X11 color names, defined in X's
+@file{rgb.txt} file). If you run the command on a text terminal, it
+shows only a small subset of colors that can be safely displayed on
+such terminals. However, Emacs understands X11 color names even on
+text terminals; if a face is given a color specified by an X11 color
+name, it is displayed using the closest-matching terminal color.
An RGB triplet is a string of the form @samp{#RRGGBB}. Each of the
R, G, and B components is a hexadecimal number specifying the
Most windows do not have a header line---only some special modes, such
Info mode, create one.
@item vertical-border
-This face is used for the vertical divider between windows on
-text-only terminals.
+This face is used for the vertical divider between windows on text
+terminals.
@item minibuffer-prompt
@cindex @code{minibuffer-prompt} face
@vindex minibuffer-prompt-properties
@end table
The following faces likewise control the appearance of parts of the
-Emacs frame, but only on text-only terminals, or when Emacs is built
-on X with no toolkit support. (For all other cases, the appearance of
-the respective frame elements is determined by system-wide settings.)
+Emacs frame, but only on text terminals, or when Emacs is built on X
+with no toolkit support. (For all other cases, the appearance of the
+respective frame elements is determined by system-wide settings.)
@table @code
@item scroll-bar
Emacs can display long lines by @dfn{truncation}. This means that all
the characters that do not fit in the width of the screen or window do
not appear at all. On graphical displays, a small straight arrow in
-the fringe indicates truncation at either end of the line. On
-text-only terminals, this is indicated with @samp{$} signs in the
-leftmost and/or rightmost columns.
+the fringe indicates truncation at either end of the line. On text
+terminals, this is indicated with @samp{$} signs in the leftmost
+and/or rightmost columns.
@vindex truncate-lines
@findex toggle-truncate-lines
itself, in pixels; the default is 2.
@findex tty-suppress-bold-inverse-default-colors
- On some text-only terminals, bold face and inverse video together
-result in text that is hard to read. Call the function
+ On some text terminals, bold face and inverse video together result
+in text that is hard to read. Call the function
@code{tty-suppress-bold-inverse-default-colors} with a non-@code{nil}
argument to suppress the effect of bold-face in this case.
* Tooltips:: Displaying information at the current mouse position.
* Mouse Avoidance:: Moving the mouse pointer out of the way.
* Non-Window Terminals:: Multiple frames on terminals that show only one.
-* Text-Only Mouse:: Using the mouse in text-only terminals.
+* Text-Only Mouse:: Using the mouse in text terminals.
International Character Set Support
* International Chars:: Basic concepts of multibyte characters.
-* Enabling Multibyte:: Controlling whether to use multibyte characters.
+* Disabling Multibyte:: Controlling whether to use multibyte characters.
* Language Environments:: Setting things up for the language you use.
* Input Methods:: Entering text characters not on your keyboard.
* Select Input Method:: Specifying your choice of input methods.
@c It would be nicer to generate this using configure and @version@.
@c However, that would mean emacsver.texi would always be newer
@c then the info files in release tarfiles.
-@set EMACSVER 24.0.94
+@set EMACSVER 24.1.50
If the variable @code{inhibit-startup-screen} is non-@code{nil},
Emacs does not display the startup screen. In that case, if one or
more files were specified on the command line, Emacs simply displays
-those files; otherwise, it displays a buffer named @samp{*scratch*},
+those files; otherwise, it displays a buffer named @file{*scratch*},
which can be used to evaluate Emacs Lisp expressions interactively.
@xref{Lisp Interaction}. You can set the variable
@code{inhibit-startup-screen} using the Customize facility
by setting the variable @code{initial-buffer-choice} to a
non-@code{nil} value. (In that case, even if you specify one or more
files on the command line, Emacs opens but does not display them.)
-The value of @code{initial-buffer-choice} can be either the name of
-the desired file or directory, or @code{t}, which means to display the
-@samp{*scratch*} buffer.
+The value of @code{initial-buffer-choice} should be the name of
+the desired file or directory.
+@ignore
+@c I do not think this should be mentioned. AFAICS it is just a dodge
+@c around inhibit-startup-screen not being settable on a site-wide basis.
+or @code{t}, which means to display the @file{*scratch*} buffer.
+@end ignore
@node Exiting, Basic, Entering Emacs, Top
@section Exiting Emacs
process (usually a shell); in most shells, you can resume Emacs after
suspending it with the shell command @command{%emacs}.
- Text-only terminals usually listen for certain special characters
-whose meaning is to kill or suspend the program you are running.
-@b{This terminal feature is turned off while you are in Emacs.} The
-meanings of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired
-by the use of @kbd{C-z} and @kbd{C-c} on several operating systems as
-the characters for stopping or killing a program, but that is their
-only relationship with the operating system. You can customize these
-keys to run any commands of your choice (@pxref{Keymaps}).
+ Text terminals usually listen for certain special characters whose
+meaning is to kill or suspend the program you are running. @b{This
+terminal feature is turned off while you are in Emacs.} The meanings
+of @kbd{C-z} and @kbd{C-x C-c} as keys in Emacs were inspired by the
+use of @kbd{C-z} and @kbd{C-c} on several operating systems as the
+characters for stopping or killing a program, but that is their only
+relationship with the operating system. You can customize these keys
+to run any commands of your choice (@pxref{Keymaps}).
@ifnottex
@lowersections
when they are auto-saved, the auto-save file name is made by appending
@samp{#} to the front and rear of buffer name, then
adding digits and letters at the end for uniqueness. For
-example, the @samp{*mail*} buffer in which you compose messages to be
+example, the @file{*mail*} buffer in which you compose messages to be
sent might be auto-saved in a file named @file{#*mail*#704juu}. Auto-save file
names are made this way unless you reprogram parts of Emacs to do
something different (the functions @code{make-auto-save-file-name} and
@vindex diff-switches
The command @kbd{M-x diff} prompts for two file names, using the
minibuffer, and displays the differences between the two files in a
-buffer named @samp{*diff*}. This works by running the @command{diff}
+buffer named @file{*diff*}. This works by running the @command{diff}
program, using options taken from the variable @code{diff-switches}.
The value of @code{diff-switches} should be a string; the default is
@code{"-c"} to specify a context diff. @xref{Top,, Diff, diff,
(@code{file-cache-minibuffer-complete}) completes it using the file
name cache. If you repeat @kbd{C-@key{tab}}, that cycles through the
possible completions of what you had originally typed. (However, note
-that the @kbd{C-@key{tab}} character cannot be typed on most text-only
+that the @kbd{C-@key{tab}} character cannot be typed on most text
terminals.)
The file name cache does not fill up automatically. Instead, you
@cindex images, viewing
@cindex image animation
@cindex animated images
- Visiting image files automatically selects Image mode. This major
-mode allows you to toggle between displaying the file as an image in
-the Emacs buffer, and displaying its underlying text representation,
-using the command @kbd{C-c C-c} (@code{image-toggle-display}). This
-works only when Emacs can display the specific image type@footnote{If
-your Emacs was compiled with ImageMagick support, then after using
-@code{imagemagick-register-types}, you can view in Image mode any
-image type that ImageMagick supports; @pxref{ImageMagick Images,,,
-elisp, The Emacs Lisp Reference Manual}}. If the displayed image is wider
+ Visiting image files automatically selects Image mode. In this
+major mode, you can type @kbd{C-c C-c} (@code{image-toggle-display})
+to toggle between displaying the file as an image in the Emacs buffer,
+and displaying its underlying text (or raw byte) representation.
+Displaying the file as an image works only if Emacs is compiled with
+support for displaying such images. If the displayed image is wider
or taller than the frame, the usual point motion keys (@kbd{C-f},
@kbd{C-p}, and so forth) cause different parts of the image to be
-displayed. If the image can be animated, then the command @kbd{RET}
-(@code{image-toggle-animation}), will start (or stop) animating it.
+displayed. If the image can be animated, the command @kbd{RET}
+(@code{image-toggle-animation}) starts or stops the animation.
Animation plays once, unless the option @code{image-animate-loop} is
-non-@code{nil}. Currently, Emacs only supports animated GIF files
-(@pxref{Animated Images,,, elisp, The Emacs Lisp Reference Manual}).
+non-@code{nil}. Currently, Emacs only supports animation in GIF
+files.
+
+@cindex ImageMagick support
+ If your Emacs was compiled with ImageMagick support, it is possible
+to view a much wider variety of image types in Image mode, by
+rendering the images via ImageMagick. However, this feature is
+currently disabled by default. To enable it, add the following line
+to your init file:
+
+@example
+(imagemagick-register-types)
+@end example
@findex thumbs-mode
@findex mode, thumbs
- See also the Image-Dired package (@pxref{Image-Dired}) for viewing
-images as thumbnails.
+ The Image-Dired package can also be used to view images as
+thumbnails. @xref{Image-Dired}.
@node Filesets
@section Filesets
@kbd{C-x u})@footnote{Aside from @kbd{C-/}, the @code{undo} command is
also bound to @kbd{C-x u} because that is more straightforward for
beginners to remember: @samp{u} stands for ``undo''. It is also bound
-to @kbd{C-_} because typing @kbd{C-/} on some text-only terminals
-actually enters @kbd{C-_}.}. This undoes the most recent change in
-the buffer, and moves point back to where it was before that change.
+to @kbd{C-_} because typing @kbd{C-/} on some text terminals actually
+enters @kbd{C-_}.}. This undoes the most recent change in the buffer,
+and moves point back to where it was before that change.
Consecutive repetitions of @kbd{C-/} (or its aliases) undo earlier
and earlier changes in the current buffer. If all the recorded
This chapter describes Emacs features specific to graphical displays
(particularly mouse commands), and features for managing multiple
-frames. On text-only terminals, many of these features are
-unavailable. However, it is still possible to create multiple
-``frames'' on text-only terminals; such frames are displayed one at a
-time, filling the entire terminal screen (@pxref{Non-Window
-Terminals}). It is also possible to use the mouse on some text-only
-terminals (@pxref{Text-Only Mouse}, for doing so on GNU and Unix
-systems; and
+frames. On text terminals, many of these features are unavailable.
+However, it is still possible to create multiple ``frames'' on text
+terminals; such frames are displayed one at a time, filling the entire
+terminal screen (@pxref{Non-Window Terminals}). It is also possible
+to use the mouse on some text terminals (@pxref{Text-Only Mouse}, for
+doing so on GNU and Unix systems; and
@iftex
@pxref{MS-DOS Mouse,,,emacs-xtra,Specialized Emacs Features},
@end iftex
* Tooltips:: Displaying information at the current mouse position.
* Mouse Avoidance:: Preventing the mouse pointer from obscuring text.
* Non-Window Terminals:: Multiple frames on terminals that show only one.
-* Text-Only Mouse:: Using the mouse in text-only terminals.
+* Text-Only Mouse:: Using the mouse in text terminals.
@end menu
@node Mouse Commands
@key{RET}, or by clicking either @kbd{Mouse-1} or @kbd{Mouse-2} on the
button. For example, in a Dired buffer, each file name is a button;
activating it causes Emacs to visit that file (@pxref{Dired}). In a
-@samp{*Compilation*} buffer, each error message is a button, and
+@file{*Compilation*} buffer, each error message is a button, and
activating it visits the source code for that error
(@pxref{Compilation}).
The @kbd{C-x 5 1} (@code{delete-other-frames}) command deletes all
other frames on the current terminal (this terminal refers to either a
-graphical display, or a text-only terminal; @pxref{Non-Window
-Terminals}). If the Emacs session has frames open on other graphical
-displays or text terminals, those are not deleted.
+graphical display, or a text terminal; @pxref{Non-Window Terminals}).
+If the Emacs session has frames open on other graphical displays or
+text terminals, those are not deleted.
@vindex focus-follows-mouse
The @kbd{C-x 5 o} (@code{other-frame}) command selects the next
the left), or @code{nil} (disable scroll bars). By default, Emacs
puts scroll bars on the right if it was compiled with GTK+ support on
the X Window System, and on MS-Windows or Mac OS; Emacs puts scroll
-bars on the left if compiled on the X Window system without GTK+
+bars on the left if compiled on the X Window System without GTK+
support (following the old convention for X applications).
@vindex scroll-bar-width
@code{menu-bar-mode}.
@kindex C-Mouse-3 @r{(when menu bar is disabled)}
- Expert users often turn off the menu bar, especially on text-only
+ Expert users often turn off the menu bar, especially on text
terminals, where this makes one additional line available for text.
If the menu bar is off, you can still pop up a menu of its contents
with @kbd{C-Mouse-3} on a display which supports pop-up menus.
@node Non-Window Terminals
@section Non-Window Terminals
-@cindex text-only terminal
+@cindex text terminal
- On a text-only terminal, Emacs can display only one Emacs frame at a
+ On a text terminal, Emacs can display only one Emacs frame at a
time. However, you can still create multiple Emacs frames, and switch
between them. Switching frames on these terminals is much like
switching between different window configurations.
in the mode line when the frame is selected.
@node Text-Only Mouse
-@section Using a Mouse in Text-only Terminals
+@section Using a Mouse in Text Terminals
@cindex mouse support
@cindex terminal emulators, mouse support
-Some text-only terminals support mouse clicks in the terminal window.
+Some text terminals support mouse clicks in the terminal window.
@cindex xterm
In a terminal emulator which is compatible with @command{xterm}, you
@unnumbered Glossary
@table @asis
+@anchor{Glossary - Abbrev}
@item Abbrev
-An abbrev is a text string which expands into a different text string
+An abbrev is a text string that expands into a different text string
when present in the buffer. For example, you might define a few letters
as an abbrev for a long phrase that you want to insert frequently.
@xref{Abbrevs}.
commands @kbd{C-]} and @kbd{M-x top-level} are used for this.
@xref{Quitting}.
+@c FIXME? Active Region
+
@item Alt
Alt is the name of a modifier bit that a keyboard input character may
have. To make a character Alt, type it while holding down the @key{ALT}
Input, Alt}.
@item Argument
-See `numeric argument.'
+@xref{Glossary - Numeric Argument}.
@item @acronym{ASCII} character
An @acronym{ASCII} character is either an @acronym{ASCII} control
@item @acronym{ASCII} printing character
@acronym{ASCII} printing characters include letters, digits, space, and these
-punctuation characters: @samp{!@@#$%^& *()_-+=|\~` @{@}[]:;"' <>,.?/}.
+punctuation characters: @samp{!@@#$%^&*()_-+=|\~`@{@}[]:;"'<>,.?/}.
@item Auto Fill Mode
Auto Fill mode is a minor mode (q.v.@:) in which text that you insert is
@item Autoloading
Emacs can automatically load Lisp libraries when a Lisp program requests a
-function from those libraries. This is called `autoloading.'
+function from those libraries. This is called `autoloading'.
@xref{Lisp Libraries}.
@item Backtrace
A backtrace is a trace of a series of function calls showing how a
program arrived at a certain point. It is used mainly for finding and
correcting bugs (q.v.@:). Emacs can display a backtrace when it signals
-an error or when you type @kbd{C-g} (see `quitting'). @xref{Checklist}.
+an error or when you type @kbd{C-g} (@pxref{Glossary - Quitting}).
+@xref{Checklist}.
@item Backup File
A backup file records the contents that a file had before the current
manually or automatically. You do manual balancing with the commands
to move over parenthetical groupings (@pxref{Moving by Parens}).
Automatic balancing works by blinking or highlighting the delimiter
-that matches the one you just inserted (@pxref{Matching,,Matching
-Parens}).
+that matches the one you just inserted, or inserting the matching
+delimiter for you (@pxref{Matching,,Matching Parens}).
+@anchor{Glossary - Balanced Expression}
@item Balanced Expressions
A balanced expression is a syntactically recognizable expression, such
as a symbol, number, string constant, block, or parenthesized expression
in C. @xref{Expressions,Balanced Expressions}.
@item Balloon Help
-See `tooltips.'
+@xref{Glossary - Tooltips}.
@item Base Buffer
A base buffer is a buffer whose text is shared by an indirect buffer
(q.v.@:).
+@item Bidirectional Text
+Some human languages, such as English, are written from left to right.
+Others, such as Arabic, are written from right to left. Emacs
+supports both of these forms, as well as any mixture of them---this
+is `bidirectional text'. @xref{Bidirectional Editing}.
+
@item Bind
To bind a key sequence means to give it a binding (q.v.@:).
@xref{Rebinding}.
+@anchor{Glossary - Binding}
@item Binding
A key sequence gets its meaning in Emacs by having a binding, which is a
command (q.v.@:), a Lisp function that is run when you type that
@item Blank Lines
Blank lines are lines that contain only whitespace. Emacs has several
-commands for operating on the blank lines in the buffer.
+commands for operating on the blank lines in the buffer. @xref{Blank Lines}.
@item Bookmark
Bookmarks are akin to registers (q.v.@:) in that they record positions
in buffers to which you can return later. Unlike registers, bookmarks
-persist between Emacs sessions.
+persist between Emacs sessions. @xref{Bookmarks}.
@item Border
A border is a thin space along the edge of the frame, used just for
@item Buffer
The buffer is the basic editing unit; one buffer corresponds to one text
-being edited. You can have several buffers, but at any time you are
-editing only one, the `current buffer,' though several can be visible
+being edited. You normally have several buffers, but at any time you are
+editing only one, the `current buffer', though several can be visible
when you are using multiple windows or frames (q.v.@:). Most buffers
are visiting (q.v.@:) some file. @xref{Buffers}.
@item Buffer Selection History
-Emacs keeps a buffer selection history which records how recently each
+Emacs keeps a buffer selection history that records how recently each
Emacs buffer has been selected. This is used for choosing a buffer to
select. @xref{Buffers}.
right away when you press down on a mouse button. @xref{Mouse Buttons}.
@item By Default
-See `default.'
+@xref{Glossary - Default}.
@item Byte Compilation
-See `compilation.'
+@xref{Glossary - Compilation}.
+@anchor{Glossary - C-}
@item @kbd{C-}
@kbd{C-} in the name of a character is an abbreviation for Control.
@xref{User Input,C-}.
@item Case Conversion
Case conversion means changing text from upper case to lower case or
-vice versa. @xref{Case}, for the commands for case conversion.
+vice versa. @xref{Case}.
@item Character
Characters form the contents of an Emacs buffer. Also, key sequences
particular alphabet or script. @xref{International}.
@item Character Terminal
-See `text-only terminal.'
+@xref{Glossary - Text Terminal}.
@item Click Event
A click event is the kind of input event (q.v.@:) generated when you
press a mouse button and release it without moving the mouse.
@xref{Mouse Buttons}.
+@item Client
+@xref{Glossary - Server}.
+
@item Clipboard
A clipboard is a buffer provided by the window system for transferring
-text between applications. On the X Window system, the clipboard is
+text between applications. On the X Window System, the clipboard is
provided in addition to the primary selection (q.v.@:); on MS-Windows and Mac,
the clipboard is used @emph{instead} of the primary selection.
@xref{Clipboard}.
the command to run. @xref{Commands}.
@item Command History
-See `minibuffer history.'
+@xref{Glossary - Minibuffer History}.
@item Command Name
-A command name is the name of a Lisp symbol which is a command
+A command name is the name of a Lisp symbol that is a command
(@pxref{Commands}). You can invoke any command by its name using
@kbd{M-x} (@pxref{M-x,M-x,Running Commands by Name}).
than Emacs Lisp. Emacs provides a subset of Common Lisp in the CL
package. @xref{Top, Common Lisp, Overview, cl, Common Lisp Extensions}.
+@anchor{Glossary - Compilation}
@item Compilation
Compilation is the process of creating an executable program from source
code. Emacs has commands for compiling files of Emacs Lisp code
(@pxref{Compilation}).
@item Complete Key
-A complete key is a key sequence which fully specifies one action to be
+A complete key is a key sequence that fully specifies one action to be
performed by Emacs. For example, @kbd{X} and @kbd{C-f} and @kbd{C-x m}
are complete keys. Complete keys derive their meanings from being bound
(q.v.@:) to commands (q.v.@:). Thus, @kbd{X} is conventionally bound to
file names. Completion usually occurs when @key{TAB}, @key{SPC} or
@key{RET} is typed. @xref{Completion}.@refill
+@anchor{Glossary - Continuation Line}
@item Continuation Line
When a line of text is longer than the width of the window, it
-normally (but see `Truncation') takes up more than one screen line
-when displayed. We say that the text line is continued, and all
+normally (but see @ref{Glossary - Truncation}) takes up more than one
+screen line when displayed. We say that the text line is continued, and all
screen lines used for it after the first are called continuation
lines. @xref{Continuation Lines}. A related Emacs feature is
`filling' (q.v.@:).
@item @key{CTRL}
The @key{CTRL} or ``control'' key is what you hold down
-in order to enter a control character (q.v.). See also `@kbd{C-}.'
+in order to enter a control character (q.v.). @xref{Glossary - C-}.
@item Current Buffer
The current buffer in Emacs is the Emacs buffer on which most editing
(called point; q.v.@:) at which insertion and deletion takes place.
The cursor is on or under the character that follows point. Often
people speak of `the cursor' when, strictly speaking, they mean
-`point.' @xref{Point,Cursor}.
+`point'. @xref{Point,Cursor}.
@item Customization
Customization is making minor changes in the way Emacs works, to
@cindex cut and paste
@item Cut and Paste
-See `killing' and `yanking.'
+@xref{Glossary - Killing}, and @ref{Glossary - Yanking}.
+@anchor{Glossary - Daemon}
@item Daemon
A daemon is a standard term for a system-level process that runs in the
background. Daemons are often started when the system first starts up.
the default argument is used if you just type @key{RET}.
@xref{Minibuffer}.
+@anchor{Glossary - Default}
@item Default
-A default is the value that is used for a certain purpose if and when
-you do not specify a value to use.
+A default is the value that is used for a certain purpose when
+you do not explicitly specify a value to use.
@item Default Directory
When you specify a file name that does not start with @samp{/} or @samp{~},
it is interpreted relative to the current buffer's default directory.
-(On MS-Windows and MS-DOS, file names which start with a drive letter
+(On MS systems, file names that start with a drive letter
@samp{@var{x}:} are treated as absolute, not relative.)
@xref{Minibuffer File,Default Directory}.
Deletion means erasing text without copying it into the kill ring
(q.v.@:). The alternative is killing (q.v.@:). @xref{Killing,Deletion}.
+@anchor{Glossary - Deletion of Files}
@item Deletion of Files
Deleting a file means erasing it from the file system.
(Note that some systems use the concept of a ``trash can'', or ``recycle
@item Directory
File directories are named collections in the file system, within which
you can place individual files or subdirectories. They are sometimes
-referred to as ``folders.'' @xref{Directories}.
+referred to as ``folders''. @xref{Directories}.
+
+@anchor{Glossary - Directory Local Variable}
+@item Directory Local Variable
+A directory local variable is a local variable (q.v.@:) that applies
+to all the files within a certain directory. @xref{Directory
+Variables}.
@item Dired
Dired is the Emacs facility that displays the contents of a file
-directory and allows you to ``edit the directory,'' performing
+directory and allows you to ``edit the directory'', performing
operations on the files in the directory. @xref{Dired}.
@item Disabled Command
for debugging Emacs bugs. Emacs does not make a dribble file unless you
tell it to. @xref{Bugs}.
+@c TODO? Not really appropriate for the user manual I think.
+@c Dynamic Binding
+
@item Echo Area
The echo area is the bottom line of the screen, used for echoing the
arguments to commands, for asking questions, and showing brief messages
(including error messages). The messages are stored in the buffer
-@samp{*Messages*} so you can review them later. @xref{Echo Area}.
+@file{*Messages*} so you can review them later. @xref{Echo Area}.
@item Echoing
Echoing is acknowledging the receipt of input events by displaying
particular delimiter characters to reindent the line, or insert one or
more newlines in addition to self-insertion.
+@anchor{Glossary - End Of Line}
@item End Of Line
End of line is a character or a sequence of characters that indicate
the end of a text line. On GNU and Unix systems, this is a newline
@xref{Environment}.
@item EOL
-See `end of line.'
+@xref{Glossary - End Of Line}.
@item Error
An error occurs when an Emacs command cannot execute in the current
it applies to the next character you type.
@item Expression
-See `balanced expression.'
+@xref{Glossary - Balanced Expression}.
@item Expunging
Expunging an Rmail, Gnus newsgroup, or Dired buffer is an operation
order to display that text as specified by the face attributes.
@xref{Faces}.
+@item File Local Variable
+A file local variable is a local variable (q.v.@:) specified in a
+given file. @xref{File Variables}, and @ref{Glossary - Directory
+Local Variable}.
+
+@anchor{Glossary - File Locking}
@item File Locking
Emacs uses file locking to notice when two different users
start to edit one file at the same time. @xref{Interlocking}.
@item File Name
+@c This is fairly tautological...
A file name is a name that refers to a file. File names may be relative
or absolute; the meaning of a relative file name depends on the current
directory, but an absolute file name refers to the same file regardless
of each line when filling is done. It is not regarded as part of the
text to be filled. @xref{Filling}.
+@anchor{Glossary - Filling}
@item Filling
Filling text means adjusting the position of line-breaks to shift text
between consecutive lines, so that all the lines are approximately the
same length. @xref{Filling}. Some other editors call this feature
-`line wrapping.'
+``line wrapping''.
+@anchor{Glossary - Font Lock}
@item Font Lock
Font Lock is a mode that highlights parts of buffer text in different
-faces, according to the syntax. For example, all comments (q.v.@:)
+faces, according to the syntax. Some other editors refer to this as
+``syntax highlighting''. For example, all comments (q.v.@:)
might be colored red. @xref{Font Lock}.
@item Fontset
fontset, rather than changing each font separately. @xref{Fontsets}.
@item Formfeed Character
-See `page.'
+@xref{Glossary - Page}.
@item Frame
A frame is a rectangular cluster of Emacs windows. Emacs starts out
(q.v.@:), and distributed under a copyleft (q.v.@:) license called the
GNU General Public License. @xref{Copying}.
+@anchor{Glossary - Free Software Foundation}
@item Free Software Foundation
The Free Software Foundation (FSF) is a charitable foundation
dedicated to promoting the development of free software (q.v.@:).
@item Fringe
On a graphical display (q.v.@:), there's a narrow portion of the frame
(q.v.@:) between the text area and the window's border. These
-`fringes' are used to display symbols that provide information about
+``fringes'' are used to display symbols that provide information about
the buffer text (@pxref{Fringes}). Emacs displays the fringe using a
special face (q.v.@:) called @code{fringe}. @xref{Faces,fringe}.
@item FSF
-See `Free Software Foundation.'
+@xref{Glossary - Free Software Foundation}.
@item FTP
FTP is an acronym for File Transfer Protocol. This is one standard
@item Global
Global means ``independent of the current environment; in effect
-throughout Emacs.'' It is the opposite of local (q.v.@:). Particular
+throughout Emacs''. It is the opposite of local (q.v.@:). Particular
examples of the use of `global' appear below.
@item Global Abbrev
The global mark ring records the series of buffers you have recently
set a mark (q.v.@:) in. In many cases you can use this to backtrack
through buffers you have been editing, or in which you have found
-tags (see `tags table'). @xref{Global Mark Ring}.
+tags (@pxref{Glossary - Tags Table}). @xref{Global Mark Ring}.
+@anchor{Glossary - Global Substitution}
@item Global Substitution
Global substitution means replacing each occurrence of one string by
another string throughout a large amount of text. @xref{Replace}.
Emacs uses highlighting in several ways. It highlights the region
whenever it is active (@pxref{Mark}). Incremental search also
-highlights matches (@pxref{Incremental Search}). See also `font lock.'
+highlights matches (@pxref{Incremental Search}). @xref{Glossary - Font Lock}.
@item Hardcopy
Hardcopy means printed output. Emacs has various commands for
@item @key{HELP}
@key{HELP} is the Emacs name for @kbd{C-h} or @key{F1}. You can type
-@key{HELP} at any time to ask what options you have, or to ask what any
+@key{HELP} at any time to ask what options you have, or to ask what a
command does. @xref{Help}.
@item Help Echo
Help echo is a short message displayed in the echo area (q.v.@:) when
the mouse pointer is located on portions of display that require some
explanations. Emacs displays help echo for menu items, parts of the
-mode line, tool-bar buttons, etc. On graphics displays, the messages
+mode line, tool-bar buttons, etc. On graphical displays, the messages
can be displayed as tooltips (q.v.@:). @xref{Tooltips}.
@item Home Directory
@kbd{Hyper-} (usually written @kbd{H-} for short). @xref{User Input}.
@item Iff
-``Iff'' means ``if and only if.'' This terminology comes from
+``Iff'' means ``if and only if''. This terminology comes from
mathematics. Try to avoid using this term in documentation, since
many are unfamiliar with it and mistake it for a typo.
@item Inbox
An inbox is a file in which mail is delivered by the operating system.
-Rmail transfers mail from inboxes to Rmail files (q.v.@:) in which the
+Rmail transfers mail from inboxes to Rmail files in which the
mail is then stored permanently or until explicitly deleted.
@xref{Rmail Inbox}.
+@anchor{Glossary - Incremental Search}
@item Incremental Search
Emacs provides an incremental search facility, whereby Emacs begins
searching for a string as soon as you type the first character.
or from some other place in Emacs.
@item Interlocking
-Interlocking is a feature for warning when you start to alter a file
-that someone else is already editing.
-@xref{Interlocking,Interlocking,Simultaneous Editing}.
+@xref{Glossary - File Locking}.
@item Isearch
-See `incremental search.'
+@xref{Glossary - Incremental Search}.
@item Justification
Justification means adding extra spaces within lines of text in order
to adjust the position of the text edges. @xref{Fill Commands}.
@item Key Binding
-See `binding.'
+@xref{Glossary - Binding}.
@item Keyboard Macro
Keyboard macros are a way of defining new Emacs commands from
@cindex keyboard shortcuts
@item Keyboard Shortcut
-A keyboard shortcut is a key sequence (q.v.@:) which invokes a
-command. What some programs call ``assigning a keyboard shortcut,''
-Emacs calls ``binding a key sequence.'' See `binding.'
+A keyboard shortcut is a key sequence (q.v.@:) that invokes a
+command. What some programs call ``assigning a keyboard shortcut'',
+Emacs calls ``binding a key sequence''. @xref{Glossary - Binding}.
@item Key Sequence
A key sequence (key, for short) is a sequence of input events (q.v.@:)
key sequences.
@item Kill Ring
-The kill ring is where all text you have killed recently is saved.
-You can reinsert any of the killed text still in the ring; this is
-called yanking (q.v.@:). @xref{Yanking}.
+The kill ring is where all text you have killed (@pxref{Glossary - Killing})
+recently is saved. You can reinsert any of the killed text still in
+the ring; this is called yanking (q.v.@:). @xref{Yanking}.
+@anchor{Glossary - Killing}
@item Killing
Killing means erasing text and saving it on the kill ring so it can be
-yanked (q.v.@:) later. Some other systems call this ``cutting.''
+yanked (q.v.@:) later. Some other systems call this ``cutting''.
Most Emacs commands that erase text perform killing, as opposed to
deletion (q.v.@:). @xref{Killing}.
Environments}. These defaults are relevant if you edit
non-@acronym{ASCII} text (@pxref{International}).
+@c TODO? Not really appropriate for the user manual I think.
+@c Lexical Binding
+
@item Line Wrapping
-See `filling.'
+@xref{Glossary - Filling}.
@item Lisp
Lisp is a programming language. Most of Emacs is written in a dialect
name. This is how you run commands that are not bound to key sequences.
@xref{M-x,M-x,Running Commands by Name}.
+@anchor{Glossary - Mail}
@item Mail
Mail means messages sent from one user to another through the computer
system, to be read at the recipient's convenience. Emacs has commands for
@item Mark Ring
The mark ring is used to hold several recent previous locations of the
-mark, just in case you want to move back to them. Each buffer has its
+mark, in case you want to move back to them. Each buffer has its
own mark ring; in addition, there is a single global mark ring (q.v.@:).
@xref{Mark Ring}.
a keyboard interface to navigate it. @xref{Menu Bars}.
@item Message
-See `mail.'
+@xref{Glossary - Mail}.
@item Meta
Meta is the name of a modifier bit which you can use in a command
echo area (q.v.@:), used for reading arguments to commands.
@xref{Minibuffer}.
+@anchor{Glossary - Minibuffer History}
@item Minibuffer History
The minibuffer history records the text you have specified in the past
for minibuffer arguments, so you can conveniently use the same text
again. @xref{Minibuffer History}.
@item Minor Mode
-A minor mode is an optional feature of Emacs which can be switched on
+A minor mode is an optional feature of Emacs, which can be switched on
or off independently of all other features. Each minor mode has a
command to turn it on or off. Some minor modes are global (q.v.@:),
and some are local (q.v.@:). @xref{Minor Modes}.
@xref{International Chars, International Characters}.
@item Named Mark
-A named mark is a register (q.v.@:) in its role of recording a
+A named mark is a register (q.v.@:), in its role of recording a
location in text so that you can move point to that location.
@xref{Registers}.
@item Newline
Control-J characters in the buffer terminate lines of text and are
-therefore also called newlines. See `End of Line.'
+therefore also called newlines. @xref{Glossary - End Of Line}.
@cindex nil
@cindex t
@item @code{nil}
-@code{nil} is a value usually interpreted as a logical ``false.'' Its
-opposite is @code{t}, interpreted as ``true.''
+@code{nil} is a value usually interpreted as a logical ``false''. Its
+opposite is @code{t}, interpreted as ``true''.
+@anchor{Glossary - Numeric Argument}
@item Numeric Argument
A numeric argument is a number, specified before a command, to change
the effect of the command. Often the numeric argument serves as a
@item Overwrite Mode
Overwrite mode is a minor mode. When it is enabled, ordinary text
characters replace the existing text after point rather than pushing
-it to the right. @xref{Minor Modes}.
+it to one side. @xref{Minor Modes}.
+
+@item Package
+A package is a collection of Lisp code that you download and
+automatically install from within Emacs. Packages provide a
+convenient way to add new features. @xref{Packages}.
+@anchor{Glossary - Page}
@item Page
A page is a unit of text, delimited by formfeed characters (@acronym{ASCII}
-control-L, code 014) coming at the beginning of a line. Some Emacs
+control-L, code 014) at the beginning of a line. Some Emacs
commands are provided for moving over and operating on pages.
@xref{Pages}.
point. @xref{Point}.
@item Prefix Argument
-See `numeric argument.'
+@xref{Glossary - Numeric Argument}.
@item Prefix Key
A prefix key is a key sequence (q.v.@:) whose sole function is to
prefix key; any two-character sequence starting with @kbd{C-x} is
therefore a legitimate key sequence. @xref{Keys}.
+@c I don't think this kind of thing needs to be here.
+@ignore
@item Primary Rmail File
Your primary Rmail file is the file named @samp{RMAIL} in your home
directory. That's where Rmail stores your incoming mail, unless you
specify a different file name. @xref{Rmail}.
+@end ignore
@item Primary Selection
The primary selection is one particular X selection (q.v.@:); it is the
Query-replace is an interactive string replacement feature provided by
Emacs. @xref{Query Replace}.
+@anchor{Glossary - Quitting}
@item Quitting
Quitting means canceling a partially typed command or a running
command, using @kbd{C-g} (or @kbd{C-@key{BREAK}} on MS-DOS). @xref{Quitting}.
@xref{Screen,Redisplay}.
@item Regexp
-See `regular expression.'
+@xref{Glossary - Regular Expression}.
@item Region
The region is the text between point (q.v.@:) and the mark (q.v.@:).
rectangles can be saved for later use. @xref{Registers}. A related
Emacs feature is `bookmarks' (q.v.@:).
+@anchor{Glossary - Regular Expression}
@item Regular Expression
A regular expression is a pattern that can match various text strings;
for example, @samp{a[0-9]+} matches @samp{a} followed by one or more
@xref{Remote Files}.
@item Repeat Count
-See `numeric argument.'
+@xref{Glossary - Numeric Argument}.
@item Replacement
-See `global substitution.'
+@xref{Glossary - Global Substitution}.
@item Restriction
A buffer's restriction is the amount of text, at the beginning or the
Reverting means returning to the original state. Emacs lets you
revert a buffer by re-reading its file from disk. @xref{Reverting}.
+@c Seems too obvious, also there is nothing special about the format
+@c these days.
+@ignore
@item Rmail File
An Rmail file is a file containing text in the format used by
Rmail for storing mail. @xref{Rmail}.
+@end ignore
@item Saving
Saving a buffer means copying its text into the file that was visited
Emacs has commands for moving by or killing by sentences.
@xref{Sentences}.
+@anchor{Glossary - Server}
+@item Server
+Within Emacs, you can start a `server' process, which listens for
+connections from `clients'. This offers a faster alternative to
+starting several Emacs instances. @xref{Emacs Server}, and
+@ref{Glossary - Daemon}.
+
+@c This is only covered in the lispref, not the user manual.
+@ignore
+@item Session Manager
+Some window systems (q.v.@:) provide a tool called a `session manager'.
+This offers the ability to save your windows when you log off,
+and restore them after you log in again.
+@end ignore
+
@item Sexp
A sexp (short for ``s-expression'') is the basic syntactic unit of
Lisp in its textual form: either a list, or Lisp atom. Sexps are also
via a convenient user interface. @xref{Spelling}.
@item String
-A string is a kind of Lisp data object which contains a sequence of
+A string is a kind of Lisp data object that contains a sequence of
characters. Many Emacs variables are intended to have strings as
values. The Lisp syntax for a string consists of the characters in the
string with a @samp{"} before and another @samp{"} after. A @samp{"}
allowed as well.
@item String Substitution
-See `global substitution.'
+@xref{Glossary - Global Substitution}.
@item Syntax Highlighting
-See `font lock.'
+@xref{Glossary - Font Lock}.
@item Syntax Table
The syntax table tells Emacs which characters are part of a word,
@key{TAB} is the tab character. In Emacs it is typically used for
indentation or completion.
+@anchor{Glossary - Tags Table}
@item Tags Table
A tags table is a file that serves as an index to the function
definitions in one or more other files. @xref{Tags}.
or following the stylistic conventions of human language.
@end itemize
-@item Text-only Terminal
-A text-only terminal is a display that is limited to displaying text in
-character units. Such a terminal cannot control individual pixels it
-displays. Emacs supports a subset of display features on text-only
-terminals.
+@anchor{Glossary - Text Terminal}
+@item Text Terminal
+A text terminal, or character terminal, is a display that is limited
+to displaying text in character units. Such a terminal cannot control
+individual pixels it displays. Emacs supports a subset of display
+features on text terminals.
@item Text Properties
Text properties are annotations recorded for particular characters in
the buffer. Images in the buffer are recorded as text properties;
they also specify formatting information. @xref{Editing Format Info}.
+@item Theme
+A theme is a set of customizations (q.v.@:) that give Emacs a
+particular appearance or behavior. For example, you might use a theme
+for your favorite set of faces (q.v.@:).
+
@item Tool Bar
The tool bar is a line (sometimes multiple lines) of icons at the top
of an Emacs frame. Clicking on one of these icons executes a command.
You can think of this as a graphical relative of the menu bar (q.v.@:).
@xref{Tool Bars}.
+@anchor{Glossary - Tooltips}
@item Tooltips
Tooltips are small windows displaying a help echo (q.v.@:) text, which
explains parts of the display, lists useful options available via mouse
(q.v.@:), and not in the middle of a command. You can get back to top
level by aborting (q.v.@:) and quitting (q.v.@:). @xref{Quitting}.
+@c FIXME? Transient Mark Mode
+
@item Transposition
Transposing two units of text means putting each one into the place
formerly occupied by the other. There are Emacs commands to transpose
two adjacent characters, words, balanced expressions (q.v.@:) or lines
(@pxref{Transpose}).
+@item Trash Can
+@xref{Glossary - Deletion of Files}.
+
+@anchor{Glossary - Truncation}
@item Truncation
Truncating text lines in the display means leaving out any text on a
line that does not fit within the right margin of the window
-displaying it. See also `continuation line.'
-@xref{Continuation Lines,Truncation}.
+displaying it. @xref{Continuation Lines,Truncation}, and
+@ref{Glossary - Continuation Line}.
@item TTY
-See `text-only terminal.'
+@xref{Glossary - Text Terminal}.
@item Undoing
Undoing means making your previous editing go in reverse, bringing
include a window system.
@item Word Abbrev
-See `abbrev.'
+@xref{Glossary - Abbrev}.
@item Word Search
Word search is searching for a sequence of words, considering the
punctuation between them as insignificant. @xref{Word Search}.
+@anchor{Glossary - Yanking}
@item Yanking
Yanking means reinserting text previously killed (q.v.@:). It can be
used to undo a mistaken kill, or for copying or moving text. Some
-other systems call this ``pasting.'' @xref{Yanking}.
+other systems call this ``pasting''. @xref{Yanking}.
@end table
Display the commands and variables whose documentation matches
@var{topics} (@code{apropos-documentation}).
@item C-h e
-Display the @code{*Messages*} buffer
+Display the @file{*Messages*} buffer
(@code{view-echo-area-messages}).
@item C-h f @var{function} @key{RET}
Display documentation on the Lisp function named @var{function}
@item C-h .
Display the help message for a special text area, if point is in one
(@code{display-local-help}). (These include, for example, links in
-@samp{*Help*} buffers.)
+@file{*Help*} buffers.)
@end table
@node Key Help
@findex view-echo-area-messages
To review recent echo area messages, use @kbd{C-h e}
(@code{view-echo-area-messages}). This displays the buffer
-@code{*Messages*}, where those messages are kept.
+@file{*Messages*}, where those messages are kept.
@kindex C-h m
@findex describe-mode
double-clicking a file in the Finder application. By default, Emacs
responds to this event by opening a new frame and visiting the file in
that frame (@code{ns-find-file}). As an exception, if the selected
-buffer is the @samp{*scratch*} buffer, Emacs visits the file in the
+buffer is the @file{*scratch*} buffer, Emacs visits the file in the
selected frame.
You can change how Emacs responds to a @code{ns-open-file} event by
@item
If every work file in the VC fileset has been modified, commit the
-changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the
+changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the
desired log entry for the new revision, followed by @kbd{C-c C-c} to
commit. @xref{Log Buffer}.
@item
If each file is locked by you and contains changes, commit the
-changes. To do this, Emacs pops up a @samp{*vc-log*} buffer; type the
+changes. To do this, Emacs pops up a @file{*vc-log*} buffer; type the
desired log entry for the new revision, followed by @kbd{C-c C-c} to
commit (@pxref{Log Buffer}).
@cindex C-c C-c @r{(Log Edit mode)}
@findex log-edit-done
When you tell VC to commit a change, it pops up a buffer named
-@samp{*vc-log*}. In this buffer, you should write a @dfn{log entry}
+@file{*vc-log*}. In this buffer, you should write a @dfn{log entry}
describing the changes you have made (@pxref{Why Version Control?}).
After you are done, type @kbd{C-c C-c} (@code{log-edit-done}) to exit
the buffer and commit the change, together with your log entry.
@cindex Log Edit mode
@cindex mode, Log Edit
@vindex vc-log-mode-hook
- The major mode for the @samp{*vc-log*} buffer is Log Edit mode, a
+ The major mode for the @file{*vc-log*} buffer is Log Edit mode, a
variant of Text mode (@pxref{Text Mode}). On entering Log Edit mode,
Emacs runs the hooks @code{text-mode-hook} and @code{vc-log-mode-hook}
(@pxref{Hooks}).
- In the @samp{*vc-log*} buffer, you can write one or more @dfn{header
+ In the @file{*vc-log*} buffer, you can write one or more @dfn{header
lines}, specifying additional information to be supplied to the
version control system. Each header line must occupy a single line at
the top of the buffer; the first line that is not a header line is
@findex log-edit-show-files
@kindex C-c C-d @r{(Log Edit mode)}
@findex log-edit-show-diff
- While in the @samp{*vc-log*} buffer, the ``current VC fileset'' is
+ While in the @file{*vc-log*} buffer, the ``current VC fileset'' is
considered to be the fileset that will be committed if you type
@w{@kbd{C-c C-c}}. To view a list of the files in the VC fileset,
type @w{@kbd{C-c C-f}} (@code{log-edit-show-files}). To view a diff
If the VC fileset includes one or more @file{ChangeLog} files
(@pxref{Change Log}), type @kbd{C-c C-a}
(@code{log-edit-insert-changelog}) to pull the relevant entries into
-the @samp{*vc-log*} buffer. If the topmost item in each
+the @file{*vc-log*} buffer. If the topmost item in each
@file{ChangeLog} was made under your user name on the current date,
this command searches that item for entries matching the file(s) to be
committed, and inserts them.
To abort a commit, just @strong{don't} type @kbd{C-c C-c} in that
buffer. You can switch buffers and do other editing. As long as you
don't try to make another commit, the entry you were editing remains
-in the @samp{*vc-log*} buffer, and you can go back to that buffer at
+in the @file{*vc-log*} buffer, and you can go back to that buffer at
any time to complete the commit.
@kindex M-n @r{(Log Edit mode)}
@kindex C-x v l
@findex vc-print-log
The command @kbd{C-x v l} (@code{vc-print-log}) displays a buffer
-named @samp{*vc-change-log*}, showing the history of changes made to
+named @file{*vc-change-log*}, showing the history of changes made to
the current file, including who made the changes, the dates, and the
log entry for each change (these are the same log entries you would
-enter via the @samp{*vc-log*} buffer; @pxref{Log Buffer}). Point is
+enter via the @file{*vc-log*} buffer; @pxref{Log Buffer}). Point is
centered at the revision of the file currently being visited. With a
prefix argument, the command prompts for the revision to center on,
and the maximum number of revisions to display.
@findex vc-print-root-log
@findex log-view-toggle-entry-display
@kbd{C-x v L} (@code{vc-print-root-log}) displays a
-@samp{*vc-change-log*} buffer showing the history of the entire
+@file{*vc-change-log*} buffer showing the history of the entire
version-controlled directory tree (RCS, SCCS, and CVS do not support
this feature). With a prefix argument, the command prompts for the
maximum number of revisions to display.
The @kbd{C-x v L} history is shown in a compact form, usually
showing only the first line of each log entry. However, you can type
@key{RET} (@code{log-view-toggle-entry-display}) in the
-@samp{*vc-change-log*} buffer to reveal the entire log entry for the
+@file{*vc-change-log*} buffer to reveal the entire log entry for the
revision at point. A second @key{RET} hides it again.
On a decentralized version control system, the @kbd{C-x v I}
another repository, the next time you run the ``push'' command; with a
prefix argument, it prompts for a specific destination repository.
- In the @samp{*vc-change-log*} buffer, you can use the following keys
+ In the @file{*vc-change-log*} buffer, you can use the following keys
to move between the logs of revisions and of files, and to examine and
compare past revisions (@pxref{Old Revisions}):
@vindex vc-log-show-limit
Because fetching many log entries can be slow, the
-@samp{*vc-change-log*} buffer displays no more than 2000 revisions by
+@file{*vc-change-log*} buffer displays no more than 2000 revisions by
default. The variable @code{vc-log-show-limit} specifies this limit;
if you set the value to zero, that removes the limit. You can also
increase the number of revisions shown in an existing
-@samp{*vc-change-log*} buffer by clicking on the @samp{Show 2X
+@file{*vc-change-log*} buffer by clicking on the @samp{Show 2X
entries} or @samp{Show unlimited entries} buttons at the end of the
buffer. However, RCS, SCCS, and CVS do not support this feature.
To use the VC Directory buffer, type @kbd{C-x v d} (@code{vc-dir}).
This reads a directory name using the minibuffer, and switches to a VC
Directory buffer for that directory. By default, the buffer is named
-@samp{*vc-dir*}. Its contents are described
+@file{*vc-dir*}. Its contents are described
@iftex
below.
@end iftex
@findex minibuffer-inactive-mode
When not active, the minibuffer is in @code{minibuffer-inactive-mode},
-and clicking @kbd{Mouse-1} there shows the @samp{*Messages*} buffer.
+and clicking @kbd{Mouse-1} there shows the @file{*Messages*} buffer.
If you use a dedicated frame for minibuffers, Emacs also recognizes
certain keys there, for example @kbd{n} to make a new frame.
Usenet newsgroups and subscriptions (this file is not unique to Gnus;
it is used by many other newsreader programs). It then tries to
contact the system's default news server, which is typically specified
-by the @samp{NNTPSERVER} environment variable.
+by the @env{NNTPSERVER} environment variable.
If your system does not have a default news server, or if you wish
to use Gnus for reading email, then before invoking @kbd{M-x gnus} you
for that command. Standard input for the command comes from the null
device. If the shell command produces any output, the output appears
either in the echo area (if it is short), or in an Emacs buffer named
-@samp{*Shell Command Output*}, displayed in another window (if the
+@file{*Shell Command Output*}, displayed in another window (if the
output is long).
For instance, one way to decompress a file named @file{foo.gz} is to
see what keys are in the buffer. If the buffer contains a GnuPG key,
type @kbd{C-x h M-| gpg @key{RET}} to feed the entire buffer contents
to @command{gpg}. This will output the list of keys to the
-@samp{*Shell Command Output*} buffer.
+@file{*Shell Command Output*} buffer.
@vindex shell-file-name
The above commands use the shell specified by the variable
@findex shell
To run a subshell interactively, type @kbd{M-x shell}. This creates
-(or reuses) a buffer named @samp{*shell*}, and runs a shell subprocess
+(or reuses) a buffer named @file{*shell*}, and runs a shell subprocess
with input coming from and output going to that buffer. That is to
say, any terminal output from the subshell goes into the buffer,
advancing point, and any terminal input for the subshell comes from
To make multiple subshells, invoke @kbd{M-x shell} with a prefix
argument (e.g. @kbd{C-u M-x shell}). Then the command will read a
buffer name, and create (or reuse) a subshell in that buffer. You can
-also rename the @samp{*shell*} buffer using @kbd{M-x rename-uniquely},
-then create a new @samp{*shell*} buffer using plain @kbd{M-x shell}.
+also rename the @file{*shell*} buffer using @kbd{M-x rename-uniquely},
+then create a new @file{*shell*} buffer using plain @kbd{M-x shell}.
Subshells in different buffers run independently and in parallel.
@vindex explicit-shell-file-name
@findex term
To run a subshell in a terminal emulator, use @kbd{M-x term}. This
-creates (or reuses) a buffer named @samp{*terminal*}, and runs a
+creates (or reuses) a buffer named @file{*terminal*}, and runs a
subshell with input coming from your keyboard, and output going to
that buffer.
The file name used to load the subshell is determined the same way
as for Shell mode. To make multiple terminal emulators, rename the
-buffer @samp{*terminal*} to something different using @kbd{M-x
+buffer @file{*terminal*} to something different using @kbd{M-x
rename-uniquely}, just as with Shell mode.
Unlike Shell mode, Term mode does not track the current directory by
the shell command @samp{emacsclient @var{file}}, where @var{file} is a
file name. This connects to an Emacs server, and tells that Emacs
process to visit @var{file} in one of its existing frames---either a
-graphical frame, or one in a text-only terminal (@pxref{Frames}). You
+graphical frame, or one in a text terminal (@pxref{Frames}). You
can then select that frame to begin editing.
If there is no Emacs server, the @command{emacsclient} program halts
called @command{emacsclient}.
You can also force @command{emacsclient} to open a new frame on a
-graphical display, or on a text-only terminal, using the @samp{-c} and
+graphical display, or on a text terminal, using the @samp{-c} and
@samp{-t} options. @xref{emacsclient Options}.
- If you are running on a single text-only terminal, you can switch
-between @command{emacsclient}'s shell and the Emacs server using one
-of two methods: (i) run the Emacs server and @command{emacsclient} on
+ If you are running on a single text terminal, you can switch between
+@command{emacsclient}'s shell and the Emacs server using one of two
+methods: (i) run the Emacs server and @command{emacsclient} on
different virtual terminals, and switch to the Emacs server's virtual
terminal after calling @command{emacsclient}; or (ii) call
@command{emacsclient} from within the Emacs server itself, using Shell
the @samp{-a} option. If both are present, the latter takes
precedence.
+@cindex client frame
@item -c
-Create a new graphical frame, instead of using an existing Emacs
-frame. Emacs can create a graphical frame even if it was started in a
-text-only terminal, provided it is able to connect to a graphical
-display. If no graphical display is available, Emacs creates a new
-text-only terminal frame (@pxref{Frames}). If you omit a filename
-argument while supplying the @samp{-c} option, the new frame displays
-the @samp{*scratch*} buffer (@pxref{Buffers}).
+Create a new graphical @dfn{client frame}, instead of using an
+existing Emacs frame. If you omit a filename argument while supplying
+the @samp{-c} option, the new frame displays the @file{*scratch*}
+buffer (@pxref{Buffers}). See below for the special behavior of
+@kbd{C-x C-c} in a client frame.
+
+If Emacs is unable to create a new graphical frame (e.g.@: if it is
+unable to connect to the X server), it tries to create a text terminal
+client frame, as though you had supplied the @samp{-t} option instead
+(see below).
+
+On MS-Windows, a single Emacs session cannot display frames on both
+graphical and text terminals, nor on multiple text terminals. Thus,
+if the Emacs server is running on a text terminal, the @samp{-c}
+option, like the @samp{-t} option, creates a new frame in the server's
+current text terminal. @xref{Windows Startup}.
@item -F @var{alist}
@itemx --frame-parameters=@var{alist}
@item -t
@itemx --tty
@itemx -nw
-Create a new Emacs frame on the current text-only terminal, instead of
-using an existing Emacs frame. Emacs can open a text-only terminal
-even if it was started in another text-only terminal, or on a
-graphical display. If you omit a filename argument while supplying
-this option, the new frame displays the @samp{*scratch*} buffer.
-@xref{Buffers}.
+Create a new client frame on the current text terminal, instead of
+using an existing Emacs frame. This is similar to the @samp{-c}
+option, above, except that it creates a text terminal frame
+(@pxref{Non-Window Terminals}). If you omit a filename argument while
+supplying this option, the new frame displays the @file{*scratch*}
+buffer (@pxref{Buffers}). See below for the special behavior of
+@kbd{C-x C-c} in a client frame.
+
+On MS-Windows, a single Emacs session cannot display frames on both
+graphical and text terminals, nor on multiple text terminals. Thus,
+if the Emacs server is using the graphical display, @samp{-t} behaves
+like @samp{-c} (see above); whereas if the Emacs server is running on
+a text terminal, it creates a new frame in its current text terminal.
+@xref{Windows Startup}.
@end table
- If you type @kbd{C-x C-c} (@code{save-buffers-kill-terminal}) in an
-Emacs frame created with @command{emacsclient}, via the @samp{-c} or
-@samp{-t} options, Emacs deletes the frame instead of killing the
-Emacs process itself. On a text-only terminal frame created with the
-@samp{-t} option, this returns control to the terminal. Emacs also
-marks all the server buffers for the client as finished, as though you
-had typed @kbd{C-x #} in all of them.
-
- When Emacs is started as a daemon, all frames are considered client
-frames, so @kbd{C-x C-c} will never kill Emacs. To kill the Emacs
-process, type @kbd{M-x kill-emacs}.
+ The new graphical or text terminal frames created by the @samp{-c}
+or @samp{-t} options are considered @dfn{client frames}. Any new
+frame that you create from a client frame is also considered a client
+frame. If you type @kbd{C-x C-c} (@code{save-buffers-kill-terminal})
+in a client frame, that command does not kill the Emacs session as it
+normally does (@pxref{Exiting}). Instead, Emacs deletes the client
+frame; furthermore, if the client frame has an @command{emacsclient}
+waiting to regain control (i.e.@: if you did not supply the @samp{-n}
+option), Emacs deletes all other frames of the same client, and marks
+the client's server buffers as finished, as though you had typed
+@kbd{C-x #} in all of them. If it so happens that there are no
+remaining frames after the client frame(s) are deleted, the Emacs
+session exits.
+
+ As an exception, when Emacs is started as a daemon, all frames are
+considered client frames, and @kbd{C-x C-c} never kills Emacs. To
+kill a daemon session, type @kbd{M-x kill-emacs}.
+
+ Note that the @samp{-t} and @samp{-n} options are contradictory:
+@samp{-t} says to take control of the current text terminal to create
+a new client frame, while @samp{-n} says not to take control of the
+text terminal. If you supply both options, Emacs visits the specified
+files(s) in an existing frame rather than a new client frame, negating
+the effect of @samp{-t}.
@node Printing, Sorting, Emacs Server, Top
@section Printing Hard Copies
This function replaces the usual printing commands in the menu bar
with a @samp{Printing} submenu that contains various printing options.
You can also type @kbd{M-x pr-interface RET}; this creates a
-@samp{*Printing Interface*} buffer, similar to a customization buffer,
+@file{*Printing Interface*} buffer, similar to a customization buffer,
where you can set the printing options. After selecting what and how
to print, you start the print job using the @samp{Print} button (click
@kbd{mouse-2} on it, or move point over it and type @kbd{RET}). For
@findex dissociated-press
@kbd{M-x dissociated-press} scrambles the text in the current Emacs
buffer, word by word or character by character, writing its output to
-a buffer named @samp{*Dissociation*}. A positive argument tells it to
+a buffer named @file{*Dissociation*}. A positive argument tells it to
operate character by character, and specifies the number of overlap
characters. A negative argument tells it to operate word by word, and
specifies the number of overlap words. Dissociated Press produces
@cindex frames on MS-DOS
The MS-DOS terminal can only display a single frame at a time. The
-Emacs frame facilities work on MS-DOS much as they do on text-only
+Emacs frame facilities work on MS-DOS much as they do on text
terminals
@iftex
(@pxref{Frames,,,emacs, the Emacs Manual}).
the program that invoked @command{emacsclient}.
@end enumerate
+@cindex emacsclient, on MS-Windows
+Note that, due to limitations of MS-Windows, Emacs cannot have both
+GUI and text-mode frames in the same session. It also cannot open
+text-mode frames on more than a single @dfn{Command Prompt} window,
+because each Windows program can have only one console at any given
+time. For these reasons, if you invoke @command{emacsclient} with the
+@option{-c} option, and the Emacs server runs in a text-mode session,
+Emacs will always create a new text-mode frame in the same
+@dfn{Command Prompt} window where it was started; a GUI frame will be
+created only if the server runs in a GUI session. Similarly, if you
+invoke @command{emacsclient} with the @option{-t} option, Emacs will
+create a GUI frame if the server runs in a GUI session, or a text-mode
+frame when the session runs in text mode in a @dfn{Command Prompt}
+window. @xref{emacsclient Options}.
+
@node Text and Binary
@section Text Files and Binary Files
@cindex text and binary files on MS-DOS/MS-Windows
variables control printing on all systems, but in some cases they have
different default values on MS-DOS and MS-Windows.
- Emacs on Windows automatically determines your default printer and
-sets the variable @code{printer-name} to that printer's name. But in
-some rare cases this can fail, or you may wish to use a different
+ Emacs on MS Windows attempts to determine your default printer
+automatically (using the function @code{default-printer-name}).
+But in some rare cases this can fail, or you may wish to use a different
printer from within Emacs. The rest of this section explains how to
tell Emacs which printer to use.
well as Cyrillic, Devanagari (for Hindi and Marathi), Ethiopic, Greek,
Han (for Chinese and Japanese), Hangul (for Korean), Hebrew, IPA,
Kannada, Lao, Malayalam, Tamil, Thai, Tibetan, and Vietnamese scripts.
-Emacs also supports various encodings of these characters used by
+Emacs also supports various encodings of these characters that are used by
other internationalized software, such as word processors and mailers.
Emacs allows editing text with international characters by supporting
@item
You can display non-@acronym{ASCII} characters encoded by the various
scripts. This works by using appropriate fonts on graphics displays
-(@pxref{Defining Fontsets}), and by sending special codes to text-only
+(@pxref{Defining Fontsets}), and by sending special codes to text
displays (@pxref{Terminal Coding}). If some characters are displayed
incorrectly, refer to @ref{Undisplayable Characters}, which describes
possible problems and explains how to solve them.
@item
You can insert non-@acronym{ASCII} characters or search for them. To do that,
you can specify an input method (@pxref{Select Input Method}) suitable
-for your language, or use the default input method set up when you set
+for your language, or use the default input method set up when you chose
your language environment. If
your keyboard can produce non-@acronym{ASCII} characters, you can select an
appropriate keyboard coding system (@pxref{Terminal Coding}), and Emacs
will accept those characters. Latin-1 characters can also be input by
using the @kbd{C-x 8} prefix, see @ref{Unibyte Mode}.
-On the X Window System, your locale should be set to an appropriate
+With the X Window System, your locale should be set to an appropriate
value to make sure Emacs interprets keyboard input correctly; see
@ref{Language Environments, locales}.
@end itemize
@menu
* International Chars:: Basic concepts of multibyte characters.
-* Enabling Multibyte:: Controlling whether to use multibyte characters.
+* Disabling Multibyte:: Controlling whether to use multibyte characters.
* Language Environments:: Setting things up for the language you use.
* Input Methods:: Entering text characters not on your keyboard.
* Select Input Method:: Specifying your choice of input methods.
@item
If you are running Emacs on a graphical display, the font name and
-glyph code for the character. If you are running Emacs on a text-only
+glyph code for the character. If you are running Emacs on a text
terminal, the code(s) sent to the terminal.
@item
in a buffer whose coding system is @code{utf-8-unix}:
@smallexample
- character: @`A (192, #o300, #xc0)
-preferred charset: unicode (Unicode (ISO10646))
- code point: 0xC0
- syntax: w which means: word
- category: j:Japanese l:Latin v:Vietnamese
- buffer code: #xC3 #x80
- file code: not encodable by coding system undecided-unix
- display: by this font (glyph code)
+ position: 1 of 1 (0%), column: 0
+ character: @`A (displayed as @`A) (codepoint 192, #o300, #xc0)
+ preferred charset: unicode (Unicode (ISO10646))
+code point in charset: 0xC0
+ syntax: w which means: word
+ category: .:Base, L:Left-to-right (strong),
+ j:Japanese, l:Latin, v:Viet
+ buffer code: #xC3 #x80
+ file code: not encodable by coding system undecided-unix
+ display: by this font (glyph code)
xft:-unknown-DejaVu Sans Mono-normal-normal-
normal-*-13-*-*-*-m-0-iso10646-1 (#x82)
Character code properties: customize what to show
name: LATIN CAPITAL LETTER A WITH GRAVE
+ old-name: LATIN CAPITAL LETTER A GRAVE
general-category: Lu (Letter, Uppercase)
decomposition: (65 768) ('A' '`')
- old-name: LATIN CAPITAL LETTER A GRAVE
-
-There are text properties here:
- auto-composed t
@end smallexample
-@node Enabling Multibyte
-@section Enabling Multibyte Characters
+@c FIXME? Does this section even belong in the user manual?
+@c Seems more appropriate to the lispref?
+@node Disabling Multibyte
+@section Disabling Multibyte Characters
By default, Emacs starts in multibyte mode: it stores the contents
of buffers and strings using an internal encoding that represents
@samp{raw-text} doesn't disable format conversion, uncompression, or
auto mode selection.
+@c Not a single file in Emacs uses this feature. Is it really worth
+@c mentioning in the _user_ manual? Also, this duplicates somewhat
+@c "Loading Non-ASCII" from the lispref.
@cindex Lisp files, and multibyte operation
@cindex multibyte operation, and Lisp files
@cindex unibyte operation, and Lisp files
@cindex init file, and non-@acronym{ASCII} characters
Emacs normally loads Lisp files as multibyte.
This includes the Emacs initialization
-file, @file{.emacs}, and the initialization files of Emacs packages
+file, @file{.emacs}, and the initialization files of packages
such as Gnus. However, you can specify unibyte loading for a
-particular Lisp file, by putting @w{@samp{-*-unibyte: t;-*-}} in a
-comment on the first line (@pxref{File Variables}). Then that file is
-always loaded as unibyte text. The motivation for these conventions
-is that it is more reliable to always load any particular Lisp file in
-the same way. However, you can load a Lisp file as unibyte, on any
-one occasion, by typing @kbd{C-x @key{RET} c raw-text @key{RET}}
-immediately before loading it.
-
- The mode line indicates whether multibyte character support is
-enabled in the current buffer. If it is, there are two or more
-characters (most often two dashes) near the beginning of the mode
-line, before the indication of the visited file's end-of-line
-convention (colon, backslash, etc.). When multibyte characters
-are not enabled, nothing precedes the colon except a single dash.
-@xref{Mode Line}, for more details about this.
+particular Lisp file, by adding an entry @samp{unibyte: t} in a file
+local variables section (@pxref{File Variables}). Then that file is
+always loaded as unibyte text. Note that this does not represent a
+real @code{unibyte} variable, rather it just acts as an indicator
+to Emacs in the same way as @code{coding} does (@pxref{Specify Coding}).
+@ignore
+@c I don't see the point of this statement:
+The motivation for these conventions is that it is more reliable to
+always load any particular Lisp file in the same way.
+@end ignore
+Note also that this feature only applies to @emph{loading} Lisp files
+for evaluation, not to visiting them for editing. You can also load a
+Lisp file as unibyte, on any one occasion, by typing @kbd{C-x
+@key{RET} c raw-text @key{RET}} immediately before loading it.
+
+@c See http://debbugs.gnu.org/11226 for lack of unibyte tooltip.
+@vindex enable-multibyte-characters
+The buffer-local variable @code{enable-multibyte-characters} is
+non-@code{nil} in multibyte buffers, and @code{nil} in unibyte ones.
+The mode line also indicates whether a buffer is multibyte or not.
+@xref{Mode Line}. With a graphical display, in a multibyte buffer,
+the portion of the mode line that indicates the character set has a
+tooltip that (amongst other things) says that the buffer is multibyte.
+In a unibyte buffer, the character set indicator is absent. Thus, in
+a unibyte buffer (when using a graphical display) there is normally
+nothing before the indication of the visited file's end-of-line
+convention (colon, backslash, etc.), unless you are using an input
+method.
@findex toggle-enable-multibyte-characters
-You can turn on multibyte support in a specific buffer by invoking the
+You can turn off multibyte support in a specific buffer by invoking the
command @code{toggle-enable-multibyte-characters} in that buffer.
@node Language Environments
All supported character sets are supported in Emacs buffers whenever
multibyte characters are enabled; there is no need to select a
-particular language in order to display its characters in an Emacs
-buffer. However, it is important to select a @dfn{language
+particular language in order to display its characters.
+However, it is important to select a @dfn{language
environment} in order to set various defaults. Roughly speaking, the
language environment represents a choice of preferred script rather
than a choice of language.
@code{current-language-environment} or use the command @kbd{M-x
set-language-environment}. It makes no difference which buffer is
current when you use this command, because the effects apply globally
-to the Emacs session. The supported language environments include:
+to the Emacs session. The supported language environments
+(see the variable @code{language-info-alist}) include:
@cindex Euro sign
@cindex UTF-8
which prefers Cyrillic characters and files encoded in Windows-1255).
@end quotation
-@cindex fonts for various scripts
-@cindex Intlfonts package, installation
To display the script(s) used by your language environment on a
-graphical display, you need to have a suitable font. If some of the
-characters appear as empty boxes or hex codes, you should install the
-GNU Intlfonts package, which includes fonts for most supported
-scripts.@footnote{If you run Emacs on X, you need to inform the X
-server about the location of the newly installed fonts with the
-following commands:
-
-@example
- xset fp+ /usr/local/share/emacs/fonts
- xset fp rehash
-@end example
-}
+graphical display, you need to have suitable fonts.
@xref{Fontsets}, for more details about setting up your fonts.
@findex set-locale-environment
@cindex locales
Some operating systems let you specify the character-set locale you
are using by setting the locale environment variables @env{LC_ALL},
-@env{LC_CTYPE}, or @env{LANG}.@footnote{If more than one of these is
+@env{LC_CTYPE}, or @env{LANG}. (If more than one of these is
set, the first one that is nonempty specifies your locale for this
-purpose.} During startup, Emacs looks up your character-set locale's
+purpose.) During startup, Emacs looks up your character-set locale's
name in the system locale alias table, matches its canonical name
against entries in the value of the variables
-@code{locale-charset-language-names} and @code{locale-language-names},
+@code{locale-charset-language-names} and @code{locale-language-names}
+(the former overrides the latter),
and selects the corresponding language environment if a match is found.
-(The former variable overrides the latter.) It also adjusts the display
+It also adjusts the display
table and terminal coding system, the locale coding system, the
preferred coding system as needed for the locale, and---last but not
least---the way Emacs decodes non-@acronym{ASCII} characters sent by your keyboard.
+@c This seems unlikely, doesn't it?
If you modify the @env{LC_ALL}, @env{LC_CTYPE}, or @env{LANG}
-environment variables while running Emacs, you may want to invoke the
-@code{set-locale-environment} function afterwards to readjust the
-language environment from the new locale.
+environment variables while running Emacs (by using @kbd{M-x setenv}),
+you may want to invoke the @code{set-locale-environment}
+function afterwards to readjust the language environment from the new
+locale.
@vindex locale-preferred-coding-systems
The @code{set-locale-environment} function normally uses the preferred
language environment. The hook functions can test for a specific
language environment by checking the variable
@code{current-language-environment}. This hook is where you should
-put non-default settings for specific language environment, such as
+put non-default settings for specific language environments, such as
coding systems for keyboard input and terminal output, the default
input method, etc.
@cindex input methods
An @dfn{input method} is a kind of character conversion designed
specifically for interactive input. In Emacs, typically each language
-has its own input method; sometimes several languages which use the same
+has its own input method; sometimes several languages that use the same
characters can share one input method. A few languages support several
input methods.
characters into one letter. Many European input methods use composition
to produce a single non-@acronym{ASCII} letter from a sequence that consists of a
letter followed by accent characters (or vice versa). For example, some
-methods convert the sequence @kbd{a'} into a single accented letter.
+methods convert the sequence @kbd{o ^} into a single accented letter.
These input methods have no special commands of their own; all they do
is compose sequences of printing characters.
The input methods for syllabic scripts typically use mapping followed
by composition. The input methods for Thai and Korean work this way.
First, letters are mapped into symbols for particular sounds or tone
-marks; then, sequences of these which make up a whole syllable are
+marks; then, sequences of these that make up a whole syllable are
mapped into one syllable sign.
Chinese and Japanese require more complex methods. In Chinese input
@code{chinese-sw}, and others). One input sequence typically
corresponds to many possible Chinese characters. You select the one
you mean using keys such as @kbd{C-f}, @kbd{C-b}, @kbd{C-n},
-@kbd{C-p}, and digits, which have special meanings in this situation.
+@kbd{C-p} (or the arrow keys), and digits, which have special meanings
+in this situation.
The possible characters are conceptually arranged in several rows,
with each row holding up to 10 alternatives. Normally, Emacs displays
the current alternative with a special color; type @code{C-@key{SPC}}
to select the current alternative and use it as input. The
alternatives in the row are also numbered; the number appears before
-the alternative. Typing a digit @var{n} selects the @var{n}th
-alternative of the current row and uses it as input.
+the alternative. Typing a number selects the associated alternative
+of the current row and uses it as input.
@key{TAB} in these Chinese input methods displays a buffer showing
all the possible characters at once; then clicking @kbd{Mouse-2} on
Sometimes it is useful to cut off input method processing so that the
characters you have just entered will not combine with subsequent
characters. For example, in input method @code{latin-1-postfix}, the
-sequence @kbd{e '} combines to form an @samp{e} with an accent. What if
+sequence @kbd{o ^} combines to form an @samp{o} with an accent. What if
you want to enter them as separate characters?
One way is to type the accent twice; this is a special feature for
-entering the separate letter and accent. For example, @kbd{e ' '} gives
-you the two characters @samp{e'}. Another way is to type another letter
-after the @kbd{e}---something that won't combine with that---and
-immediately delete it. For example, you could type @kbd{e e @key{DEL}
-'} to get separate @samp{e} and @samp{'}.
+entering the separate letter and accent. For example, @kbd{o ^ ^} gives
+you the two characters @samp{o^}. Another way is to type another letter
+after the @kbd{o}---something that won't combine with that---and
+immediately delete it. For example, you could type @kbd{o o @key{DEL}
+^} to get separate @samp{o} and @samp{^}.
Another method, more general but not quite as easy to type, is to use
@kbd{C-\ C-\} between two characters to stop them from combining. This
not when you are in the minibuffer).
Another facility for typing characters not on your keyboard is by
-using the @kbd{C-x 8 @key{RET}} (@code{ucs-insert}) to insert a single
+using @kbd{C-x 8 @key{RET}} (@code{ucs-insert}) to insert a single
character based on its Unicode name or code-point; see @ref{Inserting
Text}.
@table @kbd
@item C-\
-Enable or disable use of the selected input method.
+Enable or disable use of the selected input method (@code{toggle-input-method}).
@item C-x @key{RET} C-\ @var{method} @key{RET}
-Select a new input method for the current buffer.
+Select a new input method for the current buffer (@code{set-input-method}).
@item C-h I @var{method} @key{RET}
@itemx C-h C-\ @var{method} @key{RET}
@kbd{C-\} again.
If you type @kbd{C-\} and you have not yet selected an input method,
-it prompts for you to specify one. This has the same effect as using
+it prompts you to specify one. This has the same effect as using
@kbd{C-x @key{RET} C-\} to specify an input method.
When invoked with a numeric argument, as in @kbd{C-u C-\},
@end lisp
@noindent
-This activates the input method ``german-prefix'' automatically in the
+This automatically activates the input method ``german-prefix'' in
Text mode.
@findex quail-set-keyboard-layout
You can use the command @kbd{M-x quail-show-key} to show what key (or
key sequence) to type in order to input the character following point,
using the selected keyboard layout. The command @kbd{C-u C-x =} also
-shows that information in addition to the other information about the
+shows that information, in addition to other information about the
character.
@findex list-input-methods
In addition to converting various representations of non-@acronym{ASCII}
characters, a coding system can perform end-of-line conversion. Emacs
handles three different conventions for how to separate lines in a file:
-newline, carriage-return linefeed, and just carriage-return.
+newline (``unix''), carriage-return linefeed (``dos''), and just
+carriage-return (``mac'').
@table @kbd
@item C-h C @var{coding} @key{RET}
-Describe coding system @var{coding}.
+Describe coding system @var{coding} (@code{describe-coding-system}).
@item C-h C @key{RET}
Describe the coding systems currently in use.
For example, if the file appears to use the sequence carriage-return
linefeed to separate lines, DOS end-of-line conversion will be used.
- Each of the listed coding systems has three variants which specify
+ Each of the listed coding systems has three variants, which specify
exactly what to do for end-of-line conversion:
@table @code
@item @dots{}-unix
Don't do any end-of-line conversion; assume the file uses
newline to separate lines. (This is the convention normally used
-on Unix and GNU systems.)
+on Unix and GNU systems, and Mac OS X.)
@item @dots{}-dos
Assume the file uses carriage-return linefeed to separate lines, and do
the appropriate conversion. (This is the convention normally used on
Microsoft systems.@footnote{It is also specified for MIME @samp{text/*}
bodies and in other network transport contexts. It is different
-from the SGML reference syntax record-start/record-end format which
+from the SGML reference syntax record-start/record-end format, which
Emacs doesn't support directly.})
@item @dots{}-mac
Assume the file uses carriage-return to separate lines, and do the
-appropriate conversion. (This is the convention normally used on the
-Macintosh system.)
+appropriate conversion. (This was the convention used on the
+Macintosh system prior to OS X.)
@end table
These variant coding systems are omitted from the
@cindex @code{raw-text}, coding system
The coding system @code{raw-text} is good for a file which is mainly
-@acronym{ASCII} text, but may contain byte values above 127 which are
+@acronym{ASCII} text, but may contain byte values above 127 that are
not meant to encode non-@acronym{ASCII} characters. With
@code{raw-text}, Emacs copies those byte values unchanged, and sets
@code{enable-multibyte-characters} to @code{nil} in the current buffer
The default value of @code{inhibit-iso-escape-detection} is
@code{nil}. We recommend that you not change it permanently, only for
-one specific operation. That's because many Emacs Lisp source files
+one specific operation. That's because some Emacs Lisp source files
in the Emacs distribution contain non-@acronym{ASCII} characters encoded in the
coding system @code{iso-2022-7bit}, and they won't be
decoded correctly when you visit those files if you suppress the
escape sequence detection.
+@c I count a grand total of 3 such files, so is the above really true?
@vindex auto-coding-alist
@vindex auto-coding-regexp-alist
-@vindex auto-coding-functions
- The variables @code{auto-coding-alist},
-@code{auto-coding-regexp-alist} and @code{auto-coding-functions} are
+ The variables @code{auto-coding-alist} and
+@code{auto-coding-regexp-alist} are
the strongest way to specify the coding system for certain patterns of
-file names, or for files containing certain patterns; these variables
-even override @samp{-*-coding:-*-} tags in the file itself. Emacs
+file names, or for files containing certain patterns, respectively.
+These variables even override @samp{-*-coding:-*-} tags in the file
+itself (@pxref{Specify Coding}). For example, Emacs
uses @code{auto-coding-alist} for tar and archive files, to prevent it
from being confused by a @samp{-*-coding:-*-} tag in a member of the
archive and thinking it applies to the archive file as a whole.
+@ignore
+@c This describes old-style BABYL files, which are no longer relevant.
Likewise, Emacs uses @code{auto-coding-regexp-alist} to ensure that
RMAIL files, whose names in general don't match any particular
-pattern, are decoded correctly. One of the builtin
+pattern, are decoded correctly.
+@end ignore
+
+@vindex auto-coding-functions
+ Another way to specify a coding system is with the variable
+@code{auto-coding-functions}. For example, one of the builtin
@code{auto-coding-functions} detects the encoding for XML files.
+Unlike the previous two, this variable does not override any
+@samp{-*-coding:-*-} tag.
+@c FIXME? This seems somewhat out of place. Move to the Rmail section?
@vindex rmail-decode-mime-charset
@vindex rmail-file-coding-system
When you get new mail in Rmail, each message is translated
automatically from the coding system it is written in, as if it were a
separate file. This uses the priority list of coding systems that you
have specified. If a MIME message specifies a character set, Rmail
-obeys that specification, unless @code{rmail-decode-mime-charset} is
-@code{nil}. For reading and saving Rmail files themselves, Emacs uses
-the coding system specified by the variable
+obeys that specification. For reading and saving Rmail files
+themselves, Emacs uses the coding system specified by the variable
@code{rmail-file-coding-system}. The default value is @code{nil},
which means that Rmail files are not translated (they are read and
written in the Emacs internal character code).
If you insert the unsuitable characters in a mail message, Emacs
behaves a bit differently. It additionally checks whether the
+@c What determines this?
most-preferred coding system is recommended for use in MIME messages;
if not, Emacs tells you that the most-preferred coding system is not
recommended and prompts you for another coding system. This is so you
still use an unsuitable coding system if you type its name in response
to the question.)
+@c It seems that select-message-coding-system does this.
+@c Both sendmail.el and smptmail.el call it; i.e. smtpmail.el still
+@c obeys sendmail-coding-system.
@vindex sendmail-coding-system
- When you send a message with Message mode (@pxref{Sending Mail}),
+ When you send a mail message (@pxref{Sending Mail}),
Emacs has four different ways to determine the coding system to use
for encoding the message text. It tries the buffer's own value of
@code{buffer-file-coding-system}, if that is non-@code{nil}.
Otherwise, it uses the value of @code{sendmail-coding-system}, if that
is non-@code{nil}. The third way is to use the default coding system
for new files, which is controlled by your choice of language
+@c i.e., default-sendmail-coding-system
environment, if that is non-@code{nil}. If all of these three values
are @code{nil}, Emacs encodes outgoing mail using the Latin-1 coding
system.
+@c FIXME? Where does the Latin-1 default come in?
@node Text Coding
@section Specifying a Coding System for File Text
@table @kbd
@item C-x @key{RET} f @var{coding} @key{RET}
-Use coding system @var{coding} to save or revisit the visited file in
-the current buffer (@code{set-buffer-file-coding-system})
+Use coding system @var{coding} to save or revisit the file in
+the current buffer (@code{set-buffer-file-coding-system}).
@item C-x @key{RET} c @var{coding} @key{RET}
Specify coding system @var{coding} for the immediately following
You can also use this command to specify the end-of-line conversion
(@pxref{Coding Systems, end-of-line conversion}) for encoding the
current buffer. For example, @kbd{C-x @key{RET} f dos @key{RET}} will
-cause Emacs to save the current buffer's text with DOS-style CRLF line
-endings.
+cause Emacs to save the current buffer's text with DOS-style
+carriage-return linefeed line endings.
@kindex C-x RET c
@findex universal-coding-system-argument
The variable @code{x-select-request-type} specifies the data type to
request from the X Window System for receiving text selections from
other applications. If the value is @code{nil} (the default), Emacs
-tries @code{COMPOUND_TEXT} and @code{UTF8_STRING}, in this order, and
+tries @code{UTF8_STRING} and @code{COMPOUND_TEXT}, in this order, and
uses various heuristics to choose the more appropriate of the two
results; if none of these succeed, Emacs falls back on @code{STRING}.
If the value of @code{x-select-request-type} is one of the symbols
The variable @code{locale-coding-system} specifies a coding system
to use when encoding and decoding system strings such as system error
messages and @code{format-time-string} formats and time stamps. That
-coding system is also used for decoding non-@acronym{ASCII} keyboard input on X
-Window systems. You should choose a coding system that is compatible
+coding system is also used for decoding non-@acronym{ASCII} keyboard
+input on the X Window System. You should choose a coding system that is compatible
with the underlying system's text representation, which is normally
specified by one of the environment variables @env{LC_ALL},
@env{LC_CTYPE}, and @env{LANG}. (The first one, in the order
@table @kbd
@item C-x @key{RET} F @var{coding} @key{RET}
Use coding system @var{coding} for encoding and decoding file
-@emph{names} (@code{set-file-name-coding-system}).
+names (@code{set-file-name-coding-system}).
@end table
-@vindex file-name-coding-system
-@cindex file names with non-@acronym{ASCII} characters
- The variable @code{file-name-coding-system} specifies a coding
-system to use for encoding file names. It has no effect on reading
-and writing the @emph{contents} of files.
-
@findex set-file-name-coding-system
@kindex C-x @key{RET} F
- If you set the variable to a coding system name (as a Lisp symbol or
-a string), Emacs encodes file names using that coding system for all
-file operations. This makes it possible to use non-@acronym{ASCII}
-characters in file names---or, at least, those non-@acronym{ASCII}
-characters which the specified coding system can encode. Use @kbd{C-x
-@key{RET} F} (@code{set-file-name-coding-system}) to specify this
-interactively.
+@cindex file names with non-@acronym{ASCII} characters
+ The command @kbd{C-x @key{RET} F} (@code{set-file-name-coding-system})
+specifies a coding system to use for encoding file @emph{names}. It
+has no effect on reading and writing the @emph{contents} of files.
+
+@vindex file-name-coding-system
+ In fact, all this command does is set the value of the variable
+@code{file-name-coding-system}. If you set the variable to a coding
+system name (as a Lisp symbol or a string), Emacs encodes file names
+using that coding system for all file operations. This makes it
+possible to use non-@acronym{ASCII} characters in file names---or, at
+least, those non-@acronym{ASCII} characters that the specified coding
+system can encode.
If @code{file-name-coding-system} is @code{nil}, Emacs uses a
-default coding system determined by the selected language environment.
+default coding system determined by the selected language environment,
+and stored in the @code{default-file-name-coding-system} variable.
+@c FIXME? Is this correct? What is the "default language environment"?
In the default language environment, non-@acronym{ASCII} characters in
file names are not encoded specially; they appear in the file system
using the internal Emacs representation.
the earlier coding system and cannot be encoded (or are encoded
differently) under the new coding system. If you try to save one of
these buffers under the visited file name, saving may use the wrong file
-name, or it may get an error. If such a problem happens, use @kbd{C-x
+name, or it may encounter an error. If such a problem happens, use @kbd{C-x
C-w} to specify a new file name for that buffer.
@findex recode-file-name
@section Coding Systems for Terminal I/O
@table @kbd
-@item C-x @key{RET} k @var{coding} @key{RET}
-Use coding system @var{coding} for keyboard input
-(@code{set-keyboard-coding-system}).
-
@item C-x @key{RET} t @var{coding} @key{RET}
Use coding system @var{coding} for terminal output
(@code{set-terminal-coding-system}).
+
+@item C-x @key{RET} k @var{coding} @key{RET}
+Use coding system @var{coding} for keyboard input
+(@code{set-keyboard-coding-system}).
@end table
@kindex C-x RET t
@kindex C-x RET k
@findex set-keyboard-coding-system
@vindex keyboard-coding-system
- The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system})
-or the variable @code{keyboard-coding-system} specifies the coding
+ The command @kbd{C-x @key{RET} k} (@code{set-keyboard-coding-system}),
+or the variable @code{keyboard-coding-system}, specifies the coding
system for keyboard input. Character-code translation of keyboard
input is useful for terminals with keys that send non-@acronym{ASCII}
graphic characters---for example, some terminals designed for ISO
A font typically defines shapes for a single alphabet or script.
Therefore, displaying the entire range of scripts that Emacs supports
requires a collection of many fonts. In Emacs, such a collection is
-called a @dfn{fontset}. A fontset is defined by a list of font specs,
+called a @dfn{fontset}. A fontset is defined by a list of font specifications,
each assigned to handle a range of character codes, and may fall back
-on another fontset for characters which are not covered by the fonts
+on another fontset for characters that are not covered by the fonts
it specifies.
+@cindex fonts for various scripts
+@cindex Intlfonts package, installation
Each fontset has a name, like a font. However, while fonts are
stored in the system and the available font names are defined by the
system, fontsets are defined within Emacs itself. Once you have
defined a fontset, you can use it within Emacs by specifying its name,
anywhere that you could use a single font. Of course, Emacs fontsets
-can use only the fonts that the system supports; if certain characters
-appear on the screen as hollow boxes, this means that the fontset in
-use for them has no font for those characters.@footnote{The Emacs
-installation instructions have information on additional font
-support.}
+can use only the fonts that the system supports. If some characters
+appear on the screen as empty boxes or hex codes, this means that the
+fontset in use for them has no font for those characters. In this
+case, or if the characters are shown, but not as well as you would
+like, you may need to install extra fonts. Your operating system may
+have optional fonts that you can install; or you can install the GNU
+Intlfonts package, which includes fonts for most supported
+scripts.@footnote{If you run Emacs on X, you may need to inform the X
+server about the location of the newly installed fonts with commands
+such as:
+@c FIXME? I feel like this may be out of date.
+@c Eg the intlfonts tarfile is ~ 10 years old.
+
+@example
+ xset fp+ /usr/local/share/emacs/fonts
+ xset fp rehash
+@end example
+}
Emacs creates three fontsets automatically: the @dfn{standard
fontset}, the @dfn{startup fontset} and the @dfn{default fontset}.
+@c FIXME? The doc of *standard*-fontset-spec says:
+@c "You have the biggest chance to display international characters
+@c with correct glyphs by using the *standard* fontset." (my emphasis)
The default fontset is most likely to have fonts for a wide variety of
-non-@acronym{ASCII} characters and is the default fallback for the
+non-@acronym{ASCII} characters, and is the default fallback for the
other two fontsets, and if you set a default font rather than fontset.
-However it does not specify font family names, so results can be
+However, it does not specify font family names, so results can be
somewhat random if you use it directly. You can specify use of a
-specific fontset with the @samp{-fn} option. For example,
+particular fontset by starting Emacs with the @samp{-fn} option.
+For example,
@example
emacs -fn fontset-standard
@noindent
or just @samp{fontset-standard} for short.
- On GNUstep and Mac, fontset-standard is created using the value of
-@code{ns-standard-fontset-spec}, and on Windows it is
+ On GNUstep and Mac OS X, the standard fontset is created using the value of
+@code{ns-standard-fontset-spec}, and on MS Windows it is
created using the value of @code{w32-standard-fontset-spec}.
+@c FIXME? How does one access these, or do anything with them?
+@c Does it matter?
Bold, italic, and bold-italic variants of the standard fontset are
created automatically. Their names have @samp{bold} instead of
@samp{medium}, or @samp{i} instead of @samp{r}, or both.
@var{charset_encoding} field with @samp{startup}, then using the
resulting string to specify a fontset.
- For instance, if you start Emacs this way,
+ For instance, if you start Emacs with a font of this form,
+@c FIXME? I think this is a little misleading, because you cannot (?)
+@c actually specify a font with wildcards, it has to be a complete spec.
+@c Also, an X font specification of this form hasn't (?) been
+@c mentioned before now, and is somewhat obsolete these days.
+@c People are more likely to use a form like
+@c emacs -fn "DejaVu Sans Mono-12"
+@c How does any of this apply in that case?
@example
emacs -fn "*courier-medium-r-normal--14-140-*-iso8859-1"
@end example
-*-courier-medium-r-normal-*-14-140-*-*-*-*-fontset-startup
@end example
- The startup fontset will use the font that you specify or a variant
-with a different registry and encoding for all the characters which
+ The startup fontset will use the font that you specify, or a variant
+with a different registry and encoding, for all the characters that
are supported by that font, and fallback on @samp{fontset-default} for
other characters.
just like an actual font name. But be careful not to specify a fontset
name in a wildcard resource like @samp{Emacs*Font}---that wildcard
specification matches various other resources, such as for menus, and
-menus cannot handle fontsets.
+@c FIXME is this still true?
+menus cannot handle fontsets. @xref{X Resources}.
You can specify additional fontsets using X resources named
@samp{Fontset-@var{n}}, where @var{n} is an integer starting from 0.
@end smallexample
@noindent
-@var{fontpattern} should have the form of a standard X font name, except
+@var{fontpattern} should have the form of a standard X font name (see
+the previous fontset-startup example), except
for the last two fields. They should have the form
@samp{fontset-@var{alias}}.
In addition, when several consecutive fields are wildcards, Emacs
collapses them into a single wildcard. This is to prevent use of
auto-scaled fonts. Fonts made by scaling larger fonts are not usable
-for editing, and scaling a smaller font is not useful because it is
+for editing, and scaling a smaller font is not also useful, because it is
better to use the smaller font in its own size, which is what Emacs
does.
You may not have any Chinese font matching the above font
specification. Most X distributions include only Chinese fonts that
-have @samp{song ti} or @samp{fangsong ti} in @var{family} field. In
-such a case, @samp{Fontset-@var{n}} can be specified as below:
+have @samp{song ti} or @samp{fangsong ti} in the @var{family} field. In
+such a case, @samp{Fontset-@var{n}} can be specified as:
@smallexample
Emacs.Fontset-0: -*-fixed-medium-r-normal-*-24-*-*-*-*-*-fontset-24,\
Fontsets can be modified using the function @code{set-fontset-font},
specifying a character, a charset, a script, or a range of characters
-to modify the font for, and a font-spec for the font to be used. Some
-examples are:
+to modify the font for, and a font specification for the font to be
+used. Some examples are:
@example
;; Use Liberation Mono for latin-3 charset.
@node Undisplayable Characters
@section Undisplayable Characters
- There may be a some non-@acronym{ASCII} characters that your terminal cannot
-display. Most text-only terminals support just a single character
-set (use the variable @code{default-terminal-coding-system}
-(@pxref{Terminal Coding}) to tell Emacs which one); characters which
+ There may be some non-@acronym{ASCII} characters that your
+terminal cannot display. Most text terminals support just a single
+character set (use the variable @code{default-terminal-coding-system}
+to tell Emacs which one, @ref{Terminal Coding}); characters that
can't be encoded in that coding system are displayed as @samp{?} by
default.
accented letters and punctuation needed by various European languages
(and some non-European ones). Note that Emacs considers bytes with
codes in this range as raw bytes, not as characters, even in a unibyte
-session, i.e.@: if you disable multibyte characters. However, Emacs
+buffer, i.e.@: if you disable multibyte characters. However, Emacs
can still handle these character codes as if they belonged to
@emph{one} of the single-byte character sets at a time. To specify
@emph{which} of these codes to use, invoke @kbd{M-x
set-language-environment} and specify a suitable language environment
such as @samp{Latin-@var{n}}.
- For more information about unibyte operation, see @ref{Enabling
-Multibyte}. Note particularly that you probably want to ensure that
-your initialization files are read as unibyte if they contain
-non-@acronym{ASCII} characters.
+ For more information about unibyte operation, see
+@ref{Disabling Multibyte}.
@vindex unibyte-display-via-language-environment
Emacs can also display bytes in the range 160 to 255 as readable
set, Emacs can display these characters as @acronym{ASCII} sequences which at
least give you a clear idea of what the characters are. To do this,
load the library @code{iso-ascii}. Similar libraries for other
-Latin-@var{n} character sets could be implemented, but we don't have
-them yet.
+Latin-@var{n} character sets could be implemented, but have not been
+so far.
@findex standard-display-8bit
@cindex 8-bit display
representing non-@acronym{ASCII} characters, you can type those character codes
directly.
-On a graphical display, you should not need to do anything special to use
-these keys; they should simply work. On a text-only terminal, you
-should use the command @code{M-x set-keyboard-coding-system} or the
+On a graphical display, you should not need to do anything special to
+use these keys; they should simply work. On a text terminal, you
+should use the command @code{M-x set-keyboard-coding-system} or customize the
variable @code{keyboard-coding-system} to specify which coding system
your keyboard uses (@pxref{Terminal Coding}). Enabling this feature
will probably require you to use @kbd{ESC} to type Meta characters;
library is loaded, the @key{ALT} modifier key, if the keyboard has
one, serves the same purpose as @kbd{C-x 8}: use @key{ALT} together
with an accent character to modify the following letter. In addition,
-if the keyboard has keys for the Latin-1 ``dead accent characters,''
+if the keyboard has keys for the Latin-1 ``dead accent characters'',
they too are defined to compose with the following character, once
@code{iso-transl} is loaded.
@findex list-character-sets
@kbd{M-x list-character-sets} displays a list of all supported
charsets. The list gives the names of charsets and additional
-information to identity each charset (see
-@url{http://www.itscj.ipsj.or.jp/ISO-IR/} for details). In this list,
+information to identity each charset; see the
+@url{http://www.itscj.ipsj.or.jp/ISO-IR/, International Register of
+Coded Character Sets} for more details. In this list,
charsets are divided into two categories: @dfn{normal charsets} are
listed first, followed by @dfn{supplementary charsets}. A
supplementary charset is one that is used to define another charset
Hebrew, whose natural ordering of horizontal text for display is from
right to left. However, digits and Latin text embedded in these
scripts are still displayed left to right. It is also not uncommon to
-have small portions of text in Arabic or Hebrew embedded in otherwise
-Latin document, e.g., as comments and strings in a program source
+have small portions of text in Arabic or Hebrew embedded in an otherwise
+Latin document; e.g., as comments and strings in a program source
file. For these reasons, text that uses these scripts is actually
@dfn{bidirectional}: a mixture of runs of left-to-right and
right-to-left characters.
Each paragraph of bidirectional text can have its own @dfn{base
direction}, either right-to-left or left-to-right. (Paragraph
+@c paragraph-separate etc have no influence on this?
boundaries are empty lines, i.e.@: lines consisting entirely of
whitespace characters.) Text in left-to-right paragraphs begins at
the left margin of the window and is truncated or continued when it
jump when point traverses reordered bidirectional text. Similarly, a
highlighted region covering a contiguous range of character positions
may look discontinuous if the region spans reordered text. This is
-normal and similar to behavior of other programs that support
+normal and similar to the behavior of other programs that support
bidirectional text.
separate Emacs Lisp program, sometimes including other components such
as an Info manual.
- @kbd{M-x list-packages} brings up a buffer named @samp{*Packages*}
+ @kbd{M-x list-packages} brings up a buffer named @file{*Packages*}
with a list of all packages. You can install or uninstall packages
via this buffer. @xref{Package Menu}.
the @command{man} program to format the corresponding man page. If
the system permits, it runs @command{man} asynchronously, so that you
can keep on editing while the page is being formatted. The result
-goes in a buffer named @samp{*Man @var{topic}*}. These buffers use a
+goes in a buffer named @file{*Man @var{topic}*}. These buffers use a
special major mode, Man mode, that facilitates scrolling and jumping
to other manual pages. For details, type @kbd{C-h m} while in a Man
mode buffer.
to format and display the man pages; the formatting is done by Emacs,
so it works on systems such as MS-Windows where the @command{man}
program may be unavailable. It prompts for a man page, and displays
-it in a buffer named @samp{*WoMan @var{section} @var{topic}}.
+it in a buffer named @file{*WoMan @var{section} @var{topic}}.
@kbd{M-x woman} computes the completion list for manpages the first
time you invoke the command. With a numeric argument, it recomputes
@cindex preprocessor highlighting
@findex cpp-highlight-buffer
Highlight parts of the text according to its preprocessor conditionals.
-This command displays another buffer named @samp{*CPP Edit*}, which
+This command displays another buffer named @file{*CPP Edit*}, which
serves as a graphic menu for selecting how to display particular kinds
of conditionals and their contents. After changing various settings,
click on @samp{[A]pply these settings} (or go to that buffer and type
@cindex frame
On a graphical display, such as on GNU/Linux using the X Window
-System, Emacs occupies a ``graphical window''. On a text-only
-terminal, Emacs occupies the entire terminal screen. We will use the
-term @dfn{frame} to mean a graphical window or terminal screen
-occupied by Emacs. Emacs behaves very similarly on both kinds of
-frames. It normally starts out with just one frame, but you can
-create additional frames if you wish (@pxref{Frames}).
+System, Emacs occupies a ``graphical window''. On a text terminal,
+Emacs occupies the entire terminal screen. We will use the term
+@dfn{frame} to mean a graphical window or terminal screen occupied by
+Emacs. Emacs behaves very similarly on both kinds of frames. It
+normally starts out with just one frame, but you can create additional
+frames if you wish (@pxref{Frames}).
Each frame consists of several distinct regions. At the top of the
frame is a @dfn{menu bar}, which allows you to access commands via a
progress has been made, as a percentage), and add @samp{done} when
they are finished.
-@cindex @samp{*Messages*} buffer
+@cindex @file{*Messages*} buffer
@cindex saved echo area messages
@cindex messages saved from echo area
@vindex message-log-max
Informative echo area messages are saved in a special buffer named
-@samp{*Messages*}. (We have not explained buffers yet; see
+@file{*Messages*}. (We have not explained buffers yet; see
@ref{Buffers}, for more information about them.) If you miss a
message that appeared briefly on the screen, you can switch to the
-@samp{*Messages*} buffer to see it again. The @samp{*Messages*}
+@file{*Messages*} buffer to see it again. The @file{*Messages*}
buffer is limited to a certain number of lines, specified by the
variable @code{message-log-max}. (We have not explained variables
either; see @ref{Variables}, for more information about them.) Beyond
@end example
@noindent
-On a text-only terminal, this text is followed by a series of dashes
+On a text terminal, this text is followed by a series of dashes
extending to the right edge of the window. These dashes are omitted
on a graphical display.
containing non-textual data. Other characters represent various
@dfn{coding systems}---for example, @samp{1} represents ISO Latin-1.
- On a text-only terminal, @var{cs} is preceded by two additional
+ On a text terminal, @var{cs} is preceded by two additional
characters that describe the coding systems for keyboard input and
terminal output. Furthermore, if you are using an input method,
@var{cs} is preceded by a string that identifies the input method
remote machine, @samp{@@} is displayed instead (@pxref{File Names}).
@var{fr} gives the selected frame name (@pxref{Frames}). It appears
-only on text-only terminals. The initial frame's name is @samp{F1}.
+only on text terminals. The initial frame's name is @samp{F1}.
@var{buf} is the name of the buffer displayed in the window.
Usually, this is the same as the name of a file you are editing.
selected menu item, press @key{RET}; to cancel menu navigation, press
@key{ESC}.
- On a text-only terminal, you can use the menu bar by typing
-@kbd{M-`} or @key{F10} (these run the command @code{tmm-menubar}).
-This lets you select a menu item with the keyboard. A provisional
-choice appears in the echo area. You can use the up and down arrow
-keys to move through the menu to different items, and then you can
-type @key{RET} to select the item. Each menu item is also designated
-by a letter or digit (usually the initial of some word in the item's
-name). This letter or digit is separated from the item name by
-@samp{=>}. You can type the item's letter or digit to select the
-item.
+ On a text terminal, you can use the menu bar by typing @kbd{M-`} or
+@key{F10} (these run the command @code{tmm-menubar}). This lets you
+select a menu item with the keyboard. A provisional choice appears in
+the echo area. You can use the up and down arrow keys to move through
+the menu to different items, and then you can type @key{RET} to select
+the item. Each menu item is also designated by a letter or digit
+(usually the initial of some word in the item's name). This letter or
+digit is separated from the item name by @samp{=>}. You can type the
+item's letter or digit to select the item.
@kindex RET @r{(Occur mode)}
@kindex o @r{(Occur mode)}
@kindex C-o @r{(Occur mode)}
-In the @samp{*Occur*} buffer, you can click on each entry, or move
+In the @file{*Occur*} buffer, you can click on each entry, or move
point there and type @key{RET}, to visit the corresponding position in
the buffer that was searched. @kbd{o} and @kbd{C-o} display the match
in another window; @kbd{C-o} does not select it. Alternatively, you
@cindex Occur Edit mode
@cindex mode, Occur Edit
-Typing @kbd{e} in the @samp{*Occur*} buffer switches to Occur Edit
+Typing @kbd{e} in the @file{*Occur*} buffer switches to Occur Edit
mode, in which edits made to the entries are also applied to the text
in the originating buffer. Type @kbd{C-c C-c} to return to Occur
mode.
@kindex C-x m
@findex compose-mail
To send an email message from Emacs, type @kbd{C-x m}. This
-switches to a buffer named @samp{*unsent mail*}, where you can edit
+switches to a buffer named @file{*unsent mail*}, where you can edit
the text and headers of the message. When done, type @kbd{C-c C-s} or
@kbd{C-c C-c} to send it.
@cindex Message mode
@cindex mode, Message
- The default major mode for the @samp{*mail*} buffer is called
+ The default major mode for the @file{*mail*} buffer is called
Message mode. It behaves like Text mode in many ways, but provides
several additional commands on the @kbd{C-c} prefix, which make
editing a message more convenient.
@subsection Mail Miscellany
@kindex C-c C-a @r{(Message mode)}
-@findex mail-attach-file
+@findex mml-attach-file
@cindex MIME
@cindex Multipurpose Internet Mail Extensions
You can @dfn{attach} a file to an outgoing message by typing
point, and inserts two newlines to start a new paragraph. It outputs
a message in the echo area if any mismatch is found. @kbd{M-x
tex-validate-region} checks a region, paragraph by paragraph. The
-errors are listed in an @samp{*Occur*} buffer; you can use the usual
+errors are listed in an @file{*Occur*} buffer; you can use the usual
Occur mode commands in that buffer, such as @kbd{C-c C-c}, to visit a
particular mismatch (@pxref{Other Repeating Search}).
@findex tex-recenter-output-buffer
@kindex C-c C-l @r{(@TeX{} mode)}
The terminal output from @TeX{}, including any error messages,
-appears in a buffer called @samp{*tex-shell*}. If @TeX{} gets an
+appears in a buffer called @file{*tex-shell*}. If @TeX{} gets an
error, you can switch to this buffer and feed it input (this works as
in Shell mode; @pxref{Interactive Shell}). Without switching to this
buffer you can scroll it so that its last line is visible by typing
too suggests Emacs got the wrong information---but in the opposite
sense.
- On a text-only terminal, if you find that @key{Backspace} prompts
-for a Help command, like @kbd{Control-h}, instead of deleting a
-character, it means that key is actually sending the @key{BS}
-character. Emacs ought to be treating @key{BS} as @key{DEL}, but it
-isn't.
+ On a text terminal, if you find that @key{Backspace} prompts for a
+Help command, like @kbd{Control-h}, instead of deleting a character,
+it means that key is actually sending the @key{BS} character. Emacs
+ought to be treating @key{BS} as @key{DEL}, but it isn't.
@findex normal-erase-is-backspace-mode
In all of those cases, the immediate remedy is the same: use the
command @kbd{M-x normal-erase-is-backspace-mode}. This toggles
between the two modes that Emacs supports for handling @key{DEL}, so
if Emacs starts in the wrong mode, this should switch to the right
-mode. On a text-only terminal, if you want to ask for help when
-@key{BS} is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also
-work, if it sends character code 127.
+mode. On a text terminal, if you want to ask for help when @key{BS}
+is treated as @key{DEL}, use @key{F1}; @kbd{C-?} may also work, if it
+sends character code 127.
To fix the problem in every Emacs session, put one of the following
lines into your initialization file (@pxref{Init File}). For the
@node Emergency Escape
@subsection Emergency Escape
- On text-only terminals, the @dfn{emergency escape} feature suspends
-Emacs immediately if you type @kbd{C-g} a second time before Emacs can
+ On text terminals, the @dfn{emergency escape} feature suspends Emacs
+immediately if you type @kbd{C-g} a second time before Emacs can
actually respond to the first one by quitting. This is so you can
always get out of GNU Emacs no matter how badly it might be hung.
When things are working properly, Emacs recognizes and handles the
The type of machine you are using, and the operating system name and
version number (again, automatically included by @kbd{M-x
report-emacs-bug}). @kbd{M-x emacs-version @key{RET}} provides this
-information too. Copy its output from the @samp{*Messages*} buffer,
+information too. Copy its output from the @file{*Messages*} buffer,
so that you get it all and get it accurately.
@item
@end example
@noindent
-using @kbd{M-:} or from the @samp{*scratch*} buffer just after
+using @kbd{M-:} or from the @file{*scratch*} buffer just after
starting Emacs. From then on, Emacs copies all terminal output to the
specified termscript file as well, until the Emacs process is killed.
If the problem happens when Emacs starts up, put this expression into
to display your locale settings.
You can use the @kbd{M-!} command to execute these commands from
-Emacs, and then copy the output from the @samp{*Messages*} buffer into
+Emacs, and then copy the output from the @file{*Messages*} buffer into
the bug report. Alternatively, @kbd{M-x getenv @key{RET} LC_ALL
@key{RET}} will display the value of @code{LC_ALL} in the echo area, and
-you can copy its output from the @samp{*Messages*} buffer.
+you can copy its output from the @file{*Messages*} buffer.
@item
A description of what behavior you observe that you believe is
backtrace showing how the Lisp program in Emacs arrived at the error.
To get the error message text accurately, copy it from the
-@samp{*Messages*} buffer into the bug report. Copy all of it, not just
+@file{*Messages*} buffer into the bug report. Copy all of it, not just
part.
@findex toggle-debug-on-error
At any time, one Emacs window is the @dfn{selected window}; the
buffer this window is displaying is the current buffer. On graphical
displays, the point is indicated by a solid blinking cursor in the
-selected window, and by a hollow box in non-selected windows. On
-text-only terminals, the cursor is drawn only in the selected window.
+selected window, and by a hollow box in non-selected windows. On text
+terminals, the cursor is drawn only in the selected window.
@xref{Cursor Display}.
Commands to move point affect the value of point for the selected
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Replace non-portable use of $< in ordinary rules.
+
2012-02-28 Glenn Morris <rgm@gnu.org>
* emacs-lisp-intro.texi: Standardize possessive apostrophe usage.
#### Makefile for the Emacs Lisp Introduction manual
-# Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# The file name eintr must fit within 5 characters, to allow for
# -NN extensions to fit into DOS 8+3 limits without clashing.
+# Note: "<" is not portable in ordinary make rules.
${infodir}/eintr: ${srcdir}/emacs-lisp-intro.texi
$(mkinfodir)
- $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ ${srcdir}/emacs-lisp-intro.texi
emacs-lisp-intro.dvi: ${srcdir}/emacs-lisp-intro.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-lisp-intro.texi
emacs-lisp-intro.ps: emacs-lisp-intro.dvi
- $(DVIPS) -o $@ $<
+ $(DVIPS) -o $@ emacs-lisp-intro.dvi
emacs-lisp-intro.pdf: ${srcdir}/emacs-lisp-intro.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-lisp-intro.texi
emacs-lisp-intro.html: ${srcdir}/emacs-lisp-intro.texi
- $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ ${srcdir}/emacs-lisp-intro.texi
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * processes.texi (Processes, Subprocess Creation, Shell Arguments):
+ (Synchronous Processes, Asynchronous Processes, Deleting Processes):
+ Copyedits.
+ (Subprocess Creation): Discourage modifying exec-path directly.
+ (Synchronous Processes, Asynchronous Processes):
+ Update some example output.
+ (Process Information): Fix typo.
+ (Bindat Spec): Use Texinfo-recommended form of quote+punctuation.
+
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * anti.texi (Antinews): Copyedits. Don't @dfn anything here.
+ open-network-stream does exist in Emacs 23, but is simpler.
+
+2012-04-15 Chong Yidong <cyd@gnu.org>
+
+ * customize.texi (Custom Themes): Also document load-theme etc.
+
+2012-04-14 Chong Yidong <cyd@gnu.org>
+
+ * customize.texi (Applying Customizations):
+ (Custom Themes): New nodes.
+
+ * display.texi (Defining Faces): Reference custom-set-faces.
+
+ * modes.texi (Defining Minor Modes, Defining Minor Modes):
+ * os.texi (Startup Summary): Copyedits.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * loading.texi (Loading Non-ASCII): "unibyte:" can also be at the end.
+
+ * strings.texi (Case Tables):
+ * objects.texi (General Escape Syntax):
+ * keymaps.texi (Key Sequences): Use @acronym with "ASCII".
+
+ * buffers.texi, compile.texi, customize.texi, debugging.texi:
+ * display.texi, edebug.texi, eval.texi, help.texi, intro.texi:
+ * keymaps.texi, minibuf.texi, modes.texi, os.texi, processes.texi:
+ * text.texi: Use @file for buffers, per the Texinfo manual.
+
+ * compile.texi (Compiler Errors): Add missing space in buffer name.
+
+2012-04-14 Chong Yidong <cyd@gnu.org>
+
+ * processes.texi (Query Before Exit): Remove obsolete function
+ process-kill-without-query (Bug#11190).
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * files.texi, frames.texi, loading.texi, os.texi, processes.texi:
+ Use @env for environment variables.
+
+ * Makefile.in: Replace non-portable use of $< in ordinary rules.
+
+2012-04-12 Jari Aalto <jari.aalto@cante.net>
+
+ * processes.texi (Synchronous Processes): Mention
+ `default-directory' (bug#7515).
+
+2012-04-09 Chong Yidong <cyd@gnu.org>
+
+ * customize.texi (Variable Definitions): Remove user-variable-p.
+
+ * commands.texi (Interactive Codes):
+ * help.texi (Accessing Documentation):
+ * minibuf.texi (High-Level Completion): Callers changed.
+
+2012-04-06 Chong Yidong <cyd@gnu.org>
+
+ * minibuf.texi (Programmed Completion): Document metadata method.
+ (Completion Variables): Document completion-category-overrides.
+
+2012-04-05 Chong Yidong <cyd@gnu.org>
+
+ * anti.texi (Antinews): Rewrite for Emacs 23.
+
+2012-04-04 Chong Yidong <cyd@gnu.org>
+
+ * minibuf.texi (Programmed Completion): Remove obsolete variable
+ completion-annotate-function.
+ (Completion Variables): Rename from Completion Styles. Document
+ completion-extra-properties. Document completion-styles-alist
+ change.
+ (Reading File Names): minibuffer-local-filename-must-match-map is
+ not used anymore.
+ (Minibuffer Completion): Document completing-read-function.
+ (Completion in Buffers): completion-at-point-functions can return
+ properties recognized in completion-extra-properties.
+
+ * display.texi (Delayed Warnings): New node.
+
+ * os.texi (Notifications): Copyedits.
+
+2012-04-04 Glenn Morris <rgm@gnu.org>
+
+ * os.texi (Notifications): Copyedits.
+
+2012-04-03 Michael Albinus <michael.albinus@gmx.de>
+
+ * os.texi (Terminal-Specific): Fix typo.
+ (Notifications): New section.
+
+ * elisp.texi (Top):
+ * vol1.texi (Top):
+ * vol2.texi (Top): Add "Notifications" and "Dynamic Libraries"
+ menu entries.
+
+2012-04-01 Chong Yidong <cyd@gnu.org>
+
+ * files.texi (Kinds of Files): file-subdir-of-p renamed to
+ file-in-directory-p.
+
+2012-03-31 Glenn Morris <rgm@gnu.org>
+
+ * edebug.texi (Instrumenting Macro Calls):
+ Mention defining macros at instrumentation time.
+ (Edebug Options): Mention edebug-unwrap-results.
+
+2012-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * text.texi (Special Properties): Clarify the description of the
+ effect of integer values of the 'cursor' property on cursor
+ position. See the discussions in bug#11068 for more details and
+ context.
+
+2012-03-31 Glenn Morris <rgm@gnu.org>
+
+ * edebug.texi (Edebug Eval, Specification List, Edebug Options):
+ Copyedits.
+
+2012-03-30 Chong Yidong <cyd@gnu.org>
+
+ * display.texi (Image Formats): Add imagemagick type.
+ (Image Descriptors): Mention how they are used.
+ (ImageMagick Images): Clarify role of imagemagick-register-types.
+ (Character Display): Don't mention glyph tables.
+ (Display Tables): Use make-glyph-code in example.
+ (Glyphs): Avoid "simple glyph code" terminology. Note that glyph
+ tables are semi-obsolete. De-document create-glyph.
+ (Glyphless Chars): Note that display tables override this.
+ (Bidirectional Display): Copyedits. Introduce "bidirectional
+ reordering" terminology, and use it.
+
+2012-03-30 Glenn Morris <rgm@gnu.org>
+
+ * edebug.texi (Jumping): Give name of `i' binding.
+
+2012-03-28 Glenn Morris <rgm@gnu.org>
+
+ * searching.texi (Regular Expressions, Regexp Special):
+ (Regexp Backslash, Regexp Example, Regexp Functions, Regexp Search):
+ (Simple Match Data, Saving Match Data, Standard Regexps): Copyedits.
+ (Regexp Special): Mention collation.
+ Clarify char classes with an example.
+ (Regexp Functions): Mention regexp-opt is not guaranteed.
+ Mention regexp-opt-charset.
+ (Regexp Search): Recommend against looking-back.
+ (Search and Replace): Use Texinfo recommended quote convention.
+ Add more query-replace-map items. List multi-query-replace-map items.
+
+2012-03-27 Martin Rudalics <rudalics@gmx.at>
+
+ * windows.texi (Window History): Describe new option
+ switch-to-visible-buffer.
+
+2012-03-27 Glenn Morris <rgm@gnu.org>
+
+ * searching.texi (String Search): Add xref to Emacs manual.
+ Copyedits. Mention the function word-search-regexp.
+ (Searching and Case): Add xref to Emacs manual. Copyedits.
+
+ * processes.texi (Network Servers): Standardize apostrophe usage.
+
+ * os.texi (System Environment): Copyedits. Remove some examples
+ that do not seem useful. Mention setenv third arg.
+ tty-erase-char does not seem to be nil under a window-system.
+ (User Identification): Copyedits.
+ Remove some examples that do not seem useful.
+
+2012-03-26 Glenn Morris <rgm@gnu.org>
+
+ * os.texi (Startup Summary): Copyedits. Fix startup screen logic.
+ (Init File): Copyedits.
+ (Command-Line Arguments): Copyedits. Do not mention argv alias.
+ (Killing Emacs): Copyedits.
+ (Suspending Emacs): Copyedits. Mention not very relevant with GUIs.
+ Shorten the example, use more standard shell prompts.
+
+2012-03-25 Chong Yidong <cyd@gnu.org>
+
+ * display.texi (Fringes): Note that fringes are shown on graphical
+ displays only.
+ (Fringe Size/Pos, Fringe Bitmaps, Making Buttons): Clarifications.
+ (Replacing Specs): Clarify example.
+ (Manipulating Buttons): Note that button-at can return a marker.
+ (Buttons): Minor rewrite.
+ (Character Display): New node. Consolidate all character display
+ related nodes into its subsections.
+ (Usual Display): Character 127 is also affected by ctl-arrow.
+ (Display Tables): Improve example.
+
2012-03-22 Glenn Morris <rgm@gnu.org>
* strings.texi (Text Comparison): Mention string-prefix-p.
pdf: elisp.pdf
ps: elisp.ps
+## Note: "<" is not portable in ordinary make rules.
$(infodir)/elisp: $(srcs)
$(mkinfodir)
- $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) -o $@ $(srcdir)/elisp.texi
elisp.dvi: $(srcs)
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) $(srcdir)/elisp.texi
elisp.html: $(srcs)
- $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) --html -o $@ $(srcdir)/elisp.texi
elisp.ps: elisp.dvi
- $(DVIPS) -o $@ $<
+ $(DVIPS) -o $@ elisp.dvi
elisp.pdf: $(srcs)
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) $(srcdir)/elisp.texi
.PHONY: mostlyclean clean distclean maintainer-clean infoclean
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1994, 1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/abbrevs
@node Abbrevs, Processes, Syntax Tables, Top
@chapter Abbrevs and Abbrev Expansion
@cindex abbrev
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/advising
@node Advising Functions, Debugging, Byte Compilation, Top
@chapter Advising Emacs Lisp Functions
@cindex advising functions
@c This node must have no pointers.
@node Antinews, GNU Free Documentation License, Packaging, Top
-@appendix Emacs 22 Antinews
+@appendix Emacs 23 Antinews
@c Update the elisp.texi, vol1.texi, vol2.texi Antinews menu entries
@c with the above version number.
For those users who live backwards in time, here is information about
-downgrading to Emacs version 22.3. We hope you will enjoy the greater
+downgrading to Emacs version 23.4. We hope you will enjoy the greater
simplicity that results from the absence of many Emacs @value{EMACSVER}
features.
-@section Old Lisp Features in Emacs 22
+@section Old Lisp Features in Emacs 23
@itemize @bullet
@item
-The internal character representation used by Emacs is not longer
-based on Unicode. In this representation, called @code{emacs-mule},
-each character belongs to one and only one script. Emacs makes no
-attempt to distinguish between ``similar'' characters occurring in
-different scripts.
+Support for lexical scoping has been removed; all variables are
+dynamically scoped. The @code{lexical-binding} variable has been
+removed, and so has the @var{lexical} argument to @code{eval}. The
+@code{defvar} and @code{defconst} forms no longer mark variables as
+dynamic, since all variables are dynamic.
-@item
-The @code{^} interactive spec code, the function
-@code{handle-shift-selection}, and the variable
-@code{this-command-keys-shift-translated} have all been removed.
-Shift-translated keys are no longer treated specially, making Emacs's
-handling of keybindings much more consistent.
-
-@item
-Temporarily-active regions are not created by giving the variable
-@code{transient-mark-mode} values of the form @code{(only
-. @var{oldvar})}. We instead use a more complicated scheme:
-setting @code{transient-mark-mode} to @code{only} enables Transient
-Mark mode for the following command only, during which the value of
-@code{transient-mark-mode} is set to @code{identity}; if it is still
-@code{identity} at the end of the command, Transient Mark mode is
-disabled.
-
-@item
-Many minibuffer functions, such as @code{read-file-name} and
-@code{minibuffer-complete}, have been rewritten in C for greater
-speed. The completion code has been considerably simplified; the
-completion style can no longer be changed via
-@code{completion-styles-alist}, and @code{completing-read} no longer
-recognizes the special values @code{confirm-only} and
-@code{confirm-after-completion} for its @var{require-match} argument.
-
-@item
-Emacs no longer supports explicitly-numbered groups in regular
-expressions.
+Having only dynamic binding follows the spirit of Emacs extensibility,
+for it allows any Emacs code to access any defined variable with a
+minimum of fuss. But @xref{Dynamic Binding Tips}, for tips to avoid
+making your programs hard to understand.
@item
-The @code{permanent-local-hook} function property has no special
-meaning.
+Calling a minor mode function from Lisp with a nil or omitted argument
+does not enable the minor mode unconditionally; instead, it toggles
+the minor mode---which is the straightforward thing to do, since that
+is the behavior when invoked interactively. One downside is that it
+is more troublesome to enable minor modes from hooks; you have to do
+something like
-@item
-The @code{functionp} function now returns @code{t} for special forms.
+@example
+(add-hook 'foo-hook (lambda () (bar-mode 1)))
+@end example
-@item
-The @code{interactive-form} symbol property has no special meaning.
-Once you supply a function with an interactive form, the only way to
-change it is to redefine the function.
+@noindent
+or define @code{turn-on-bar-mode} and call that from the hook.
@item
-The @code{ignore-errors} macro has been moved into the @code{cl}
-package.
+The @code{prog-mode} dummy major mode has been removed. Instead of
+using it as a crutch to meet programming mode conventions, you should
+explicitly ensure that your mode follows those conventions.
+@xref{Major Mode Conventions}.
@item
-Variables can now be both buffer-local and frame-local; buffer-local
-bindings take precedence over frame-local bindings.
+Emacs no longer supports bidirectional display and editing. Since
+there is no need to worry about the insertion of right-to-left text
+messing up how lines and paragraphs are displayed, the function
+@code{bidi-string-mark-left-to-right} has been removed; so have many
+other functions and variables related to bidirectional display.
+Unicode directionality characters like @code{U+200E} ("left-to-right
+mark") have no special effect on display.
@item
-Faces can no longer be remapped.
+Emacs windows now have most of their internal state hidden from Lisp.
+Internal windows are no longer visible to Lisp; functions such as
+@code{window-parent}, window parameters related to window arrangement,
+and window-local buffer lists have all been removed. Functions for
+resizing windows can delete windows if they become too small.
-@item
-Lisp programs now specify fonts by their names, which are strings
-following the XLFD (X logical font descriptor) format. Fonts are no
-longer represented using a special set of ``font'' data types. The
-various functions that act on these data types, such as @code{fontp},
-@code{font-spec}, and @code{list-fonts}, have all been deleted.
+The ``action function'' feature for controlling buffer display has
+been removed, including @code{display-buffer-overriding-action} and
+related variables, as well as the @var{action} argument to
+@code{display-buffer} and other functions. The way to
+programmatically control how Emacs chooses a window to display a
+buffer is to bind the right combination of
+@code{special-display-regexps}, @code{pop-up-frames}, and other
+variables.
@item
-Emacs does not recognize the @code{FontBackend} X resource and the
-@code{font-backend} frame parameter. On the X Window System, fonts
-are always drawn using the X core font driver.
+The standard completion interface has been simplified, eliminating the
+@code{completion-extra-properties} variable, the @code{metadata}
+action flag for completion functions, and the concept of
+``completion categories''. Lisp programmers may now find the choice
+of methods for tuning completion less bewildering, but if a package
+finds the streamlined interface insufficient for its needs, it must
+implement its own specialized completion feature.
@item
-Display terminals are no longer represented using a ``terminal'' data
-type; this is not necessary, because we have removed the ability to
-display on graphical and text terminals simultaneously. For the same
-reason, the @code{window-system} variable is no longer frame-local,
-and the @code{window-system} function has been removed.
+@code{copy-directory} now behaves the same whether or not the
+destination is an existing directory: if the destination exists, the
+@emph{contents} of the first directory are copied into it (with
+subdirectories handled recursively), rather than copying the first
+directory into a subdirectory.
@item
-The functions @code{list-system-processes} and
-@code{process-attributes} have been removed. To get information about
-system processes, call an external program, such as @command{ps}.
+The @var{trash} arguments for @code{delete-file} and
+@code{delete-directory} have been removed. The variable
+@code{delete-by-moving-to-trash} must now be used with care; whenever
+it is non-@code{nil}, all calls to @code{delete-file} or
+@code{delete-directory} use the trash.
@item
-The function @code{locate-user-emacs-file} and the variable
-@code{user-emacs-directory} have been removed. Instead, use
-hard-coded values pointing to @file{~/.emacs.d}.
+Because Emacs no longer supports SELinux file contexts, the
+@var{preserve-selinux-context} argument to @code{copy-file} has been
+removed. The return value of @code{backup-buffer} no longer has an
+entry for the SELinux file context.
@item
-@code{vertical-motion} can no longer be told to move to a specific
-column; it always puts point on the first column of a line.
+For mouse click input events in the text area, the Y pixel coordinate
+in the @var{position} list (@pxref{Click Events}) now counts from the
+top of the header line, if there is one, rather than the top of the
+text area.
@item
-Windows no longer have parameters.
+Bindings in menu keymaps (@pxref{Format of Keymaps}) now sometimes get
+an additional @var{cache} entry in their definitions, like this:
-@item
-The @code{display-buffer} function has been rewritten in C. Its
-window-splitting heuristics are a little less sophisticated, and a
-little less documented. Window-splitting is handled internally,
-instead of using @code{split-window-preferred-function} (which has
-been removed). Windows are never split horizontally; the variable
-@code{split-width-threshold} has been removed.
+@example
+(@var{type} @var{item-name} @var{cache} . @var{binding})
+@end example
-@item
-The @code{mode-name} variable now accepts only string values, and
-cannot take the form of a mode-line construct.
-
-@item
-The behavior of @code{map-char-table} has changed. It calls the
-mapping function for every single character in the table, instead of
-using cons cells to represent contiguous character code ranges.
+@noindent
+The @var{cache} entry is used internally by Emacs to record equivalent
+keyboard key sequences for invoking the same command; Lisp programs
+should never use it.
+@c Not really NEWS-worthy then...
@item
-Several keymaps have been eliminated: @code{input-decode-map},
-@code{local-function-key-map}, @code{search-map},
-@code{multi-query-replace-map}, and
-@code{minibuffer-local-shell-command-map}.
+The @code{gnutls} library has been removed, and the function
+@code{open-network-stream} correspondingly simplified.
+Lisp programs that want an encrypted network connection must now call
+external utilities such as @command{starttls} or @command{gnutls-cli}.
@item
-Many functions have been removed, including: @code{buffer-swap-text},
-@code{emacs-init-time}, @code{emacs-uptime}, @code{use-region-p},
-@code{region-active-p}, @code{start-file-process},
-@code{process-lines}, @code{image-refresh},
-@code{match-substitute-replacement}, @code{word-search-forward-lax},
-and @code{word-search-backward-lax}.
+Tool bars can no longer display separators, which frees up several
+pixels of space on each graphical frame.
@item
-Many variables have been removed, including @code{read-circle},
-@code{after-init-time} and @code{before-init-time},
-@code{generate-autoload-cookie}, @code{file-local-variables-alist},
-@code{replace-search-function} and @code{replace-re-search-function},
-@code{inhibit-changing-match-data}, @code{wrap-prefix}, and
-@code{line-prefix},
+As part of the ongoing quest for simplicity, many other functions and
+variables have been eliminated.
@end itemize
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/backups
@node Backups and Auto-Saving, Buffers, Files, Top
@chapter Backups and Auto-Saving
@cindex backups and auto-saving
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/buffers
@node Buffers, Windows, Backups and Auto-Saving, Top
@chapter Buffers
@cindex buffer
resort. If @var{visible-ok} is non-@code{nil}, then it does not matter
whether a buffer is displayed somewhere or not.
-If no suitable buffer exists, the buffer @samp{*scratch*} is returned
+If no suitable buffer exists, the buffer @file{*scratch*} is returned
(and created, if necessary).
@end defun
The argument @var{visible-ok} is handled as with @code{other-buffer},
see above. If no suitable buffer can be found, the buffer
-@samp{*scratch*} is returned.
+@file{*scratch*} is returned.
@end defun
@deffn Command bury-buffer &optional buffer-or-name
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/commands
@node Command Loop, Keymaps, Minibuffers, Top
@chapter Command Loop
@cindex editor command loop
@item v
A variable declared to be a user option (i.e., satisfying the
-predicate @code{user-variable-p}). This reads the variable using
+predicate @code{custom-variable-p}). This reads the variable using
@code{read-variable}. @xref{Definition of read-variable}. Existing,
Completion, Prompt.
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/compile
@node Byte Compilation, Advising Functions, Loading, Top
@chapter Byte Compilation
@cindex byte compilation
Sometimes, the byte compiler produces warning and/or error messages
(@pxref{Compiler Errors}, for details). These messages are recorded
-in a buffer called @samp{*Compile-Log*}, which uses Compilation mode.
+in a buffer called @file{*Compile-Log*}, which uses Compilation mode.
@xref{Compilation Mode,,,emacs, The GNU Emacs Manual}.
@cindex macro compilation
@cindex compiler errors
Byte compilation outputs all errors and warnings into the buffer
-@samp{*Compile-Log*}. The messages include file names and line
+@file{*Compile-Log*}. The messages include file names and line
numbers that identify the location of the problem. The usual Emacs
commands for operating on compiler diagnostics work properly on these
messages.
When an error is due to invalid syntax in the program, the byte
compiler might get confused about the errors' exact location. One way
-to investigate is to switch to the buffer @w{@samp{*Compiler Input*}}.
+to investigate is to switch to the buffer @w{@file{ *Compiler Input*}}.
(This buffer name starts with a space, so it does not show up in
@kbd{M-x list-buffers}.) This buffer contains the program being
compiled, and point shows how far the byte compiler was able to read;
@deffn Command disassemble object &optional buffer-or-name
This command displays the disassembled code for @var{object}. In
interactive use, or if @var{buffer-or-name} is @code{nil} or omitted,
-the output goes in a buffer named @samp{*Disassemble*}. If
+the output goes in a buffer named @file{*Disassemble*}. If
@var{buffer-or-name} is non-@code{nil}, it must be a buffer or the
name of an existing buffer. Then the output goes there, at point, and
point is left before the output.
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/control
@node Control Structures, Variables, Evaluation, Top
@chapter Control Structures
@cindex special forms for control structures
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1997-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1997-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/customize
@node Customization, Loading, Macros, Top
-@chapter Writing Customization Definitions
+@chapter Customization Settings
-@cindex customization definitions
- This chapter describes how to declare user options for customization,
-and also customization groups for classifying them. We use the term
-@dfn{customization item} to include both kinds of customization
-definitions---as well as face definitions (@pxref{Defining Faces}).
+@cindex customization item
+ This chapter describes how to declare customizable variables and
+customization groups for classifying them. We use the term
+@dfn{customization item} to include customizable variables,
+customization groups, as well as faces.
+
+ @xref{Defining Faces}, for the @code{defface} macro, which is used
+for declaring customizable faces.
@menu
-* Common Keywords:: Common keyword arguments for all kinds of
- customization declarations.
-* Group Definitions:: Writing customization group definitions.
-* Variable Definitions:: Declaring user options.
-* Customization Types:: Specifying the type of a user option.
+* Common Keywords:: Common keyword arguments for all kinds of
+ customization declarations.
+* Group Definitions:: Writing customization group definitions.
+* Variable Definitions:: Declaring user options.
+* Customization Types:: Specifying the type of a user option.
+* Applying Customizations:: Functions to apply customization settings.
+* Custom Themes:: Writing Custom themes.
@end menu
@node Common Keywords
@item :set @var{setfunction}
@kindex set@r{, @code{defcustom} keyword}
Specify @var{setfunction} as the way to change the value of this
-option when using the Customize user interface. The function
+option when using the Customize interface. The function
@var{setfunction} should take two arguments, a symbol (the option
name) and the new value, and should do whatever is necessary to update
the value properly for this option (which may not mean simply setting
another customizable variable.
@end defun
-@defun user-variable-p arg
-This function is like @code{custom-variable-p}, except it also returns
-@code{t} if the first character of the variable's documentation string
-is the character @samp{*}. That is an obsolete way of indicating a
-user option, so for most purposes you may consider
-@code{user-variable-p} as equivalent to @code{custom-variable-p}.
-@end defun
-
@node Customization Types
@section Customization Types
@item color
The value must be a valid color name. The widget provides completion
for color names, as well as a sample and a button for selecting a
-color name from a list of color names shown in a @samp{*Colors*}
+color name from a list of color names shown in a @file{*Colors*}
buffer.
@end table
the data structure is itself recursive, this conversion is an infinite
recursion. The @code{lazy} widget prevents the recursion: it convert
its @code{:type} argument only when needed.
+
+@node Applying Customizations
+@section Applying Customizations
+
+The following functions are responsible for installing the user's
+customization settings for variables and faces, respectively. When
+the user invokes @samp{Save for future sessions} in the Customize
+interface, that takes effect by writing a @code{custom-set-variables}
+and/or a @code{custom-set-faces} form into the custom file, to be
+evaluated the next time Emacs starts up.
+
+@defun custom-set-variables &rest args
+This function installs the variable customizations specified by
+@var{args}. Each argument in @var{args} should have the form
+
+@example
+(@var{var} @var{expression} [@var{now} [@var{request} [@var{comment}]]])
+@end example
+
+@noindent
+@var{var} is a variable name (a symbol), and @var{expression} is an
+expression which evaluates to the desired customized value.
+
+If the @code{defcustom} form for @var{var} has been evaluated prior to
+this @code{custom-set-variables} call, @var{expression} is immediately
+evaluated, and the variable's value is set to the result. Otherwise,
+@var{expression} is stored into the variable's @code{saved-value}
+property, to be evaluated when the relevant @code{defcustom} is called
+(usually when the library defining that variable is loaded into
+Emacs).
+
+The @var{now}, @var{request}, and @var{comment} entries are for
+internal use only, and may be omitted. @var{now}, if non-@code{nil},
+means to set the variable's value now, even if the variable's
+@code{defcustom} form has not been evaluated. @var{request} is a list
+of features to be loaded immediately (@pxref{Named Features}).
+@var{comment} is a string describing the customization.
+@end defun
+
+@defun custom-set-faces &rest args
+This function installs the face customizations specified by
+@var{args}. Each argument in @var{args} should have the form
+
+@example
+(@var{face} @var{spec} [@var{now} [@var{comment}]])
+@end example
+
+@noindent
+@var{face} is a face name (a symbol), and @var{spec} is the customized
+face specification for that face (@pxref{Defining Faces}).
+
+The @var{now} and @var{comment} entries are for internal use only, and
+may be omitted. @var{now}, if non-@code{nil}, means to install the
+face specification now, even if the @code{defface} form has not been
+evaluated. @var{comment} is a string describing the customization.
+@end defun
+
+@node Custom Themes
+@section Custom Themes
+
+ @dfn{Custom themes} are collections of settings that can be enabled
+or disabled as a unit. @xref{Custom Themes,,, emacs, The GNU Emacs
+Manual}. Each Custom theme is defined by an Emacs Lisp source file,
+which should follow the conventions described in this section.
+(Instead of writing a Custom theme by hand, you can also create one
+using a Customize-like interface; @pxref{Creating Custom Themes,,,
+emacs, The GNU Emacs Manual}.)
+
+ A Custom theme file should be named @file{@var{foo}-theme.el}, where
+@var{foo} is the theme name. The first Lisp form in the file should
+be a call to @code{deftheme}, and the last form should be a call to
+@code{provide-theme}.
+
+@defmac deftheme theme &optional doc
+This macro declares @var{theme} (a symbol) as the name of a Custom
+theme. The optional argument @var{doc} should be a string describing
+the theme; this is the description shown when the user invokes the
+@code{describe-theme} command or types @kbd{?} in the @samp{*Custom
+Themes*} buffer.
+
+Two special theme names are disallowed: @code{user} is a ``dummy''
+theme which stores the user's direct customization settings, and
+@code{changed} is a ``dummy'' theme which stores changes made outside
+of the Customize system. If you specify either of these as the
+@var{theme} argument, @code{deftheme} signals an error.
+@end defmac
+
+@defmac provide-theme theme
+This macro declares that the theme named @var{theme} has been fully
+specified.
+@end defmac
+
+ In between @code{deftheme} and @code{provide-theme} are Lisp forms
+specifying the theme settings: usually a call to
+@code{custom-theme-set-variables} and/or a call to
+@code{custom-theme-set-faces}.
+
+@defun custom-theme-set-variables theme &rest args
+This function specifies the Custom theme @var{theme}'s variable
+settings. @var{theme} should be a symbol. Each argument in
+@var{args} should be a list of the form
+
+@example
+(@var{var} @var{expression} [@var{now} [@var{request} [@var{comment}]]])
+@end example
+
+@noindent
+where the list entries have the same meanings as in
+@code{custom-set-variables}. @xref{Applying Customizations}.
+@end defun
+
+@defun custom-theme-set-faces theme &rest args
+This function specifies the Custom theme @var{theme}'s face settings.
+@var{theme} should be a symbol. Each argument in @var{args} should be
+a list of the form
+
+@example
+(@var{face} @var{spec} [@var{now} [@var{comment}]])
+@end example
+
+@noindent
+where the list entries have the same meanings as in
+@code{custom-set-faces}. @xref{Applying Customizations}.
+@end defun
+
+ In theory, a theme file can also contain other Lisp forms, which
+would be evaluated when loading the theme, but that is ``bad form''.
+To protect against loading themes containing malicious code, Emacs
+displays the source file and asks for confirmation from the user
+before loading any non-built-in theme for the first time.
+
+ The following functions are useful for programmatically enabling and
+disabling Custom themes:
+
+@defun custom-theme-p theme
+This function return a non-@code{nil} value if @var{theme} (a symbol)
+is the name of a Custom theme (i.e.@: a Custom theme which has been
+loaded into Emacs, whether or not the theme is enabled). Otherwise,
+it returns @code{nil}.
+@end defun
+
+@deffn Command load-theme theme &optional no-confirm no-enable
+This function loads the Custom theme named @var{theme} from its source
+file, looking for the source file in the directories specified by the
+variable @code{custom-theme-load-path}. @xref{Custom Themes,,, emacs,
+The GNU Emacs Manual}. It also @dfn{enables} the theme, causing its
+variable and face settings to take effect.
+
+If the optional argument @var{no-confirm} is non-@code{nil}, this
+skips prompting the user for confirmation before loading the theme.
+
+If the optional argument @var{no-enable} is non-@code{nil}, the theme
+is loaded but not enabled.
+@end deffn
+
+@deffn Command enable-theme theme
+This function enables the Custom theme named @var{theme}. It signals
+an error if no such theme has been loaded.
+@end deffn
+
+@deffn Command disable-theme theme
+This function disables the Custom theme named @var{theme}. The theme
+remains loaded, so that a subsequent call to @code{enable-theme} will
+re-enable it.
+@end deffn
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/debugging
@node Debugging, Read and Print, Advising Functions, Top
@chapter Debugging Lisp Programs
@subsection Using the Debugger
When the debugger is entered, it displays the previously selected
-buffer in one window and a buffer named @samp{*Backtrace*} in another
+buffer in one window and a buffer named @file{*Backtrace*} in another
window. The backtrace buffer contains one line for each level of Lisp
function execution currently going on. At the beginning of this buffer
is a message describing the reason that the debugger was invoked (such
@item R
Like @kbd{e}, but also save the result of evaluation in the
-buffer @samp{*Debugger-record*}.
+buffer @file{*Debugger-record*}.
@item q
Terminate the program being debugged; return to top-level Emacs
@defun debug &rest debugger-args
This function enters the debugger. It switches buffers to a buffer
-named @samp{*Backtrace*} (or @samp{*Backtrace*<2>} if it is the second
+named @file{*Backtrace*} (or @file{*Backtrace*<2>} if it is the second
recursive entry to the debugger, etc.), and fills it with information
about the stack of Lisp function calls. It then enters a recursive
edit, showing the backtrace buffer in Debugger mode.
way the function @code{debug} can return to its caller.
The use of the @var{debugger-args} is that @code{debug} displays the
-rest of its arguments at the top of the @samp{*Backtrace*} buffer, so
+rest of its arguments at the top of the @file{*Backtrace*} buffer, so
that the user can see them. Except as described below, this is the
@emph{only} way these arguments are used.
@cindex call stack
This function prints a trace of Lisp function calls currently active.
This is the function used by @code{debug} to fill up the
-@samp{*Backtrace*} buffer. It is written in C, since it must have access
+@file{*Backtrace*} buffer. It is written in C, since it must have access
to the stack to determine which function calls are active. The return
value is always @code{nil}.
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/display
@node Display, System Interface, Processes, Top
@chapter Emacs Display
* Buttons:: Adding clickable buttons to Emacs buffers.
* Abstract Display:: Emacs's Widget for Object Collections.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Usual Display:: The usual conventions for displaying nonprinting chars.
-* Display Tables:: How to specify other conventions.
+* Character Display:: How Emacs displays individual characters.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
* Bidirectional Display:: Display of bidirectional scripts, such as
Arabic and Farsi.
-* Glyphless Chars:: How glyphless characters are drawn.
@end menu
@node Refresh Screen
contents of a given frame (@pxref{Frames}). This is useful if the
screen is corrupted.
-@c Emacs 19 feature
@defun redraw-frame frame
This function clears and redisplays frame @var{frame}.
@end defun
function (@pxref{Formatting Strings}). The resulting formatted string
is displayed in the echo area; if it contains @code{face} text
properties, it is displayed with the specified faces (@pxref{Faces}).
-The string is also added to the @samp{*Messages*} buffer, but without
+The string is also added to the @file{*Messages*} buffer, but without
text properties (@pxref{Logging Messages}).
In batch mode, the message is printed to the standard error stream,
If @var{message} is a string, then the optional argument
@var{buffer-name} is the name of the buffer used to display it when a
-pop-up buffer is used, defaulting to @samp{*Message*}. In the case
+pop-up buffer is used, defaulting to @file{*Message*}. In the case
where @var{message} is a string and displayed in the echo area, it is
not specified whether the contents are inserted into the buffer anyway.
@end defmac
@node Logging Messages
-@subsection Logging Messages in @samp{*Messages*}
+@subsection Logging Messages in @file{*Messages*}
@cindex logging echo-area messages
Almost all the messages displayed in the echo area are also recorded
-in the @samp{*Messages*} buffer so that the user can refer back to
+in the @file{*Messages*} buffer so that the user can refer back to
them. This includes all the messages that are output with
@code{message}.
@defopt message-log-max
-This variable specifies how many lines to keep in the @samp{*Messages*}
+This variable specifies how many lines to keep in the @file{*Messages*}
buffer. The value @code{t} means there is no limit on how many lines to
keep. The value @code{nil} disables message logging entirely. Here's
how to display a message and prevent it from being logged:
@end example
@end defopt
- To make @samp{*Messages*} more convenient for the user, the logging
+ To make @file{*Messages*} more convenient for the user, the logging
facility combines successive identical messages. It also combines
successive related messages for the sake of two cases: question
followed by answer, and a series of progress messages.
* Warning Basics:: Warnings concepts and functions to report them.
* Warning Variables:: Variables programs bind to customize their warnings.
* Warning Options:: Variables users set to control display of warnings.
+* Delayed Warnings:: Deferring a warning until the end of a command.
@end menu
@node Warning Basics
severity level, with @code{:warning} being the default.
@var{buffer-name}, if non-@code{nil}, specifies the name of the buffer
-for logging the warning. By default, it is @samp{*Warnings*}.
+for logging the warning. By default, it is @file{*Warnings*}.
@end defun
@defun lwarn type level message &rest args
that warning is not logged.
@end defopt
+@node Delayed Warnings
+@subsection Delayed Warnings
+
+Sometimes, you may wish to avoid showing a warning while a command is
+running, and only show it only after the end of the command. You can
+use the variable @code{delayed-warnings-list} for this.
+
+@defvar delayed-warnings-list
+The value of this variable is a list of warnings to be displayed after
+the current command has finished. Each element must be a list
+
+@smallexample
+(@var{type} @var{message} [@var{level} [@var{buffer-name}]])
+@end smallexample
+
+@noindent
+with the same form, and the same meanings, as the argument list of
+@code{display-warning} (@pxref{Warning Basics}). Immediately after
+running @code{post-command-hook} (@pxref{Command Overview}), the Emacs
+command loop displays all the warnings specified by this variable,
+then resets it to @code{nil}.
+@end defvar
+
+ Programs which need to further customize the delayed warnings
+mechanism can change the variable @code{delayed-warnings-hook}:
+
+@defvar delayed-warnings-hook
+This is a normal hook which is run by the Emacs command loop, after
+@code{post-command-hook}, in order to to process and display delayed
+warnings.
+
+Its default value is a list of two functions:
+
+@smallexample
+(collapse-delayed-warnings display-delayed-warnings)
+@end smallexample
+
+@findex collapse-delayed-warnings
+@findex display-delayed-warnings
+@noindent
+The function @code{collapse-delayed-warnings} iterates through
+@code{delayed-warnings-list}, removing repeated entries. The function
+@code{display-delayed-warnings} calls @code{display-warning} on each
+of the entries in @code{delayed-warnings-list}, in turn, and then sets
+@code{delayed-warnings-list} to @code{nil}.
+@end defvar
+
@node Invisible Text
@section Invisible Text
@table @code
@item priority
@kindex priority @r{(overlay property)}
-This property's value (which should be a nonnegative integer number)
+This property's value (which should be a non-negative integer number)
determines the priority of the overlay. No priority, or @code{nil},
means zero.
This property specifies a display spec to prepend to each
non-continuation line at display-time. @xref{Truncation}.
-@itemx wrap-prefix
+@item wrap-prefix
This property specifies a display spec to prepend to each continuation
line at display-time. @xref{Truncation}.
attributes in one frame (@pxref{Attribute Functions}).
@menu
-* Defining Faces:: How to define a face with @code{defface}.
+* Defining Faces:: How to define a face.
* Face Attributes:: What is in a face?
* Attribute Functions:: Functions to examine and set face attributes.
* Displaying Faces:: How Emacs combines the faces specified for a character.
@node Defining Faces
@subsection Defining Faces
- The way to define a new face is with @code{defface}. This creates a
-kind of customization item which the user can customize using the
-Customization buffer (@pxref{Customization}).
-
- People are sometimes tempted to create variables whose values specify
-which faces to use (for example, Font-Lock does this). In the vast
-majority of cases, this is not necessary, and simply using faces
-directly is preferable.
+ The @code{defface} macro defines a face and specifies its default
+appearance. The user can subsequently customize the face using the
+Customize interface (@pxref{Customization}).
@defmac defface face spec doc [keyword value]@dots{}
-This declares @var{face} as a customizable face whose default
+This macro declares @var{face} as a customizable face whose default
attributes are given by @var{spec}. You should not quote the symbol
@var{face}, and it should not end in @samp{-face} (that would be
-redundant). The argument @var{doc} specifies the face documentation.
-The keywords you can use in @code{defface} are the same as in
-@code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
+redundant). The argument @var{doc} is a documentation string for the
+face. The additional @var{keyword} arguments have the same meanings
+as in @code{defgroup} and @code{defcustom} (@pxref{Common Keywords}).
When @code{defface} executes, it defines the face according to
@var{spec}, then uses any customizations that were read from the
overrides any customizations of the face. This way, the face reflects
exactly what the @code{defface} says.
-The purpose of @var{spec} is to specify how the face should appear on
-different kinds of terminals. It should be an alist whose elements
-have the form @code{(@var{display} @var{atts})}. @var{display}
-specifies a class of terminals (see below), while @var{atts} is a
-property list of face attributes and their values, specifying the
-appearance of the face on matching terminals
+@cindex face specification
+The @var{spec} argument is a @dfn{face specification}, which states
+how the face should appear on different kinds of terminals. It should
+be an alist whose elements each have the form @code{(@var{display}
+@var{atts})}. @var{display} specifies a class of terminals (see
+below), while @var{atts} is a property list of face attributes and
+their values, specifying the appearance of the face on matching
+terminals
@iftex
(see the next section for details about face attributes).
@end iftex
:group 'basic-faces)
@end example
- Internally, @code{defface} uses the symbol property
-@code{face-defface-spec} to record the specified face attributes. The
-attributes saved by the user with the customization buffer are
-recorded in the symbol property @code{saved-face}; the attributes
-customized by the user for the current session, but not saved, are
-recorded in the symbol property @code{customized-face}. The
-documentation string is recorded in the symbol property
-@code{face-documentation}.
+ Internally, Emacs stores the face's default specification in its
+@code{face-defface-spec} symbol property (@pxref{Property Lists}).
+The @code{saved-face} property stores the face specification saved by
+the user, using the customization buffer; the @code{customized-face}
+property stores the face specification customized for the current
+session, but not saved; and the @code{theme-face} property stores an
+alist associating the active customization settings and Custom themes
+with their specifications for that face. The face's documentation
+string is stored in the @code{face-documentation} property. But
+normally you should not try to set any of these properties directly.
+@xref{Applying Customizations}, for the @code{custom-set-faces}
+function, which is used to apply customized face settings.
+
+ People are sometimes tempted to create variables whose values
+specify a face to use. In the vast majority of cases, this is not
+necessary; it is preferable to simply use faces directly.
@defopt frame-background-mode
This option, if non-@code{nil}, specifies the background type to use for
@itemx warning
@itemx success
For text concerning errors, warnings, or successes. For example,
-these are used for messages in @samp{*Compilation*} buffers.
+these are used for messages in @file{*Compilation*} buffers.
@end table
@node Font Selection
@section Fringes
@cindex fringes
- The @dfn{fringes} of a window are thin vertical strips down the
-sides that are used for displaying bitmaps that indicate truncation,
-continuation, horizontal scrolling, and the overlay arrow.
+ On graphical displays, Emacs draws @dfn{fringes} next to each
+window: thin vertical strips down the sides which can display bitmaps
+indicating truncation, continuation, horizontal scrolling, and so on.
@menu
* Fringe Size/Pos:: Specifying where to put the window fringes.
@subsection Fringe Size and Position
The following buffer-local variables control the position and width
-of the window fringes.
+of fringes in windows showing that buffer.
@defvar fringes-outside-margins
The fringes normally appear between the display margins and the window
width from the window's frame.
@end defvar
- The values of these variables take effect when you display the
-buffer in a window. If you change them while the buffer is visible,
-you can call @code{set-window-buffer} to display it once again in the
-same window, to make the changes take effect. A buffer that does not
-specify values for these variables will use the default values
-specified for the frame; see @ref{Layout Parameters}.
+ Any buffer which does not specify values for these variables uses
+the values specified by the @code{left-fringe} and @code{right-fringe}
+frame parameters (@pxref{Layout Parameters}).
+
+ The above variables actually take effect via the function
+@code{set-window-buffer} (@pxref{Buffers and Windows}), which calls
+@code{set-window-fringes} as a subroutine. If you change one of these
+variables, the fringe display is not updated in existing windows
+showing the buffer, unless you call @code{set-window-buffer} again in
+each affected window. You can also use @code{set-window-fringes} to
+control the fringe display in individual windows.
@defun set-window-fringes window left &optional right outside-margins
This function sets the fringe widths of window @var{window}.
@cindex fringe indicators
@cindex indicators, fringe
- The @dfn{fringe indicators} are tiny icons Emacs displays in the
-window fringe (on a graphic display) to indicate truncated or
-continued lines, buffer boundaries, overlay arrow, etc.
+ @dfn{Fringe indicators} are tiny icons displayed in the window
+fringe to indicate truncated or continued lines, buffer boundaries,
+etc.
@defopt indicate-empty-lines
@cindex fringes, and empty line indication
a display specification has the form
@example
-(left-fringe @var{bitmap} [@var{face}])
+(@var{fringe} @var{bitmap} [@var{face}])
@end example
@noindent
-or
-
-@example
-(right-fringe @var{bitmap} [@var{face}])
-@end example
-
-@noindent
-The symbol @var{bitmap} identifies the bitmap to display. The
-optional @var{face} names a face whose foreground color is used to
-display the bitmap; this face is automatically merged with the
-@code{fringe} face.
+@var{fringe} is either the symbol @code{left-fringe} or
+@code{right-fringe}. @var{bitmap} is a symbol identifying the bitmap
+to display. The optional @var{face} names a face whose foreground
+color is used to display the bitmap; this face is automatically merged
+with the @code{fringe} face.
Here is a list of the standard fringe bitmaps defined in Emacs, and
how they are currently used in Emacs (via
@kindex display @r{(text property)}
The @code{display} text property (or overlay property) is used to
-insert images into text, and also control other aspects of how text
+insert images into text, and to control other aspects of how text
displays. The value of the @code{display} property should be a
display specification, or a list or vector containing several display
specifications. Display specifications in the same @code{display}
@node Replacing Specs
@subsection Display Specs That Replace The Text
- Some kinds of @code{display} specifications specify something to
-display instead of the text that has the property. These are called
+ Some kinds of display specifications specify something to display
+instead of the text that has the property. These are called
@dfn{replacing} display specifications. Emacs does not allow the user
to interactively move point into the middle of buffer text that is
replaced in this way.
For replacing display specifications, ``the text that has the
property'' means all the consecutive characters that have the same
Lisp object as their @code{display} property; these characters are
-replaced as a single unit. By contrast, characters that have similar
-but distinct Lisp objects as their @code{display} properties are
-handled separately. Here's a function that illustrates this point:
-
-@smallexample
-(defun foo ()
- (goto-char (point-min))
- (dotimes (i 5)
- (let ((string (concat "A")))
- (put-text-property (point) (1+ (point)) 'display string)
- (forward-char 1)
- (put-text-property (point) (1+ (point)) 'display string)
- (forward-char 1))))
-@end smallexample
+replaced as a single unit. If two characters have different Lisp
+objects as their @code{display} properties (i.e.@: objects which are
+not @code{eq}), they are handled separately.
-@noindent
-It gives each of the first ten characters in the buffer string
-@code{"A"} as the @code{display} property, but they don't all get the
-same string. The first two characters get the same string, so they
-together are replaced with one @samp{A}. The next two characters get
-a second string, so they together are replaced with one @samp{A}.
-Likewise for each following pair of characters. Thus, the ten
-characters appear as five A's. This function would have the same
-results:
+ Here is an example which illustrates this point. A string serves as
+a replacing display specification, which replaces the text that has
+the property with the specified string (@pxref{Other Display Specs}).
+Consider the following function:
@smallexample
(defun foo ()
- (goto-char (point-min))
(dotimes (i 5)
- (let ((string (concat "A")))
- (put-text-property (point) (+ 2 (point)) 'display string)
- (put-text-property (point) (1+ (point)) 'display string)
- (forward-char 2))))
+ (let ((string (concat "A"))
+ (start (+ i i (point-min))))
+ (put-text-property start (1+ start) 'display string)
+ (put-text-property start (+ 2 start) 'display string))))
@end smallexample
@noindent
-This illustrates that what matters is the property value for
-each character. If two consecutive characters have the same
-object as the @code{display} property value, it's irrelevant
-whether they got this property from a single call to
-@code{put-text-property} or from two different calls.
+This function gives each of the first ten characters in the buffer a
+@code{display} property which is a string @code{"A"}, but they don't
+all get the same string object. The first two characters get the same
+string object, so they are replaced with one @samp{A}; the fact that
+the display property was assigned in two separate calls to
+@code{put-text-property} is irrelevant. Similarly, the next two
+characters get a second string (@code{concat} creates a new string
+object), so they are replaced with one @samp{A}; and so on. Thus, the
+ten characters appear as five A's.
@node Specified Space
@subsection Specified Spaces
@cindex image formats
@cindex image types
- Emacs can display a number of different image formats; some of them
-are supported only if particular support libraries are installed on
-your machine. In some environments, Emacs can load support libraries
-on demand; if so, the variable @code{dynamic-library-alist}
-(@pxref{Dynamic Libraries}) can be used to modify the set of known
-names for these dynamic libraries (though it is not possible to add
-new image formats). Note that image types @code{pbm} and @code{xbm}
-do not depend on external libraries and are always available in Emacs.
-
- The supported image formats (and the necessary library files)
-include XBM, XPM (@code{libXpm} and @code{libz}), GIF (@code{libgif}
-or @code{libungif}), PostScript, PBM, JPEG (@code{libjpeg}), TIFF
+ Emacs can display a number of different image formats. Some of
+these image formats are supported only if particular support libraries
+are installed. On some platforms, Emacs can load support libraries on
+demand; if so, the variable @code{dynamic-library-alist} can be used
+to modify the set of known names for these dynamic libraries.
+@xref{Dynamic Libraries}.
+
+ Supported image formats (and the required support libraries) include
+PBM and XBM (which do not depend on support libraries and are always
+available), XPM (@code{libXpm}), GIF (@code{libgif} or
+@code{libungif}), PostScript (@code{gs}), JPEG (@code{libjpeg}), TIFF
(@code{libtiff}), PNG (@code{libpng}), and SVG (@code{librsvg}).
- You specify one of these formats with an image type symbol. The image
-type symbols are @code{xbm}, @code{xpm}, @code{gif}, @code{postscript},
-@code{pbm}, @code{jpeg}, @code{tiff}, @code{png}, and @code{svg}.
+ Each of these image formats is associated with an @dfn{image type
+symbol}. The symbols for the above formats are, respectively,
+@code{pbm}, @code{xbm}, @code{xpm}, @code{gif}, @code{postscript},
+@code{jpeg}, @code{tiff}, @code{png}, and @code{svg}.
+
+ Furthermore, if you build Emacs with ImageMagick
+(@code{libMagickWand}) support, Emacs can display any image format
+that ImageMagick can. @xref{ImageMagick Images}. All images
+displayed via ImageMagick have type symbol @code{imagemagick}.
@defvar image-types
-This variable contains a list of those image type symbols that are
-potentially supported in the current configuration.
-@emph{Potentially} here means that Emacs knows about the image types,
-not necessarily that they can be loaded (they could depend on
-unavailable dynamic libraries, for example).
-
-To know which image types are really available, use
-@code{image-type-available-p}.
+This variable contains a list of type symbols for image formats which
+are potentially supported in the current configuration.
+
+``Potentially'' means that Emacs knows about the image types, not
+necessarily that they can be used (for example, they could depend on
+unavailable dynamic libraries). To know which image types are really
+available, use @code{image-type-available-p}.
@end defvar
@defun image-type-available-p type
-This function returns non-@code{nil} if image type @var{type} is
-available, i.e., if images of this type can be loaded and displayed in
-Emacs. @var{type} should be one of the types contained in
-@code{image-types}.
+This function returns non-@code{nil} if images of type @var{type} can
+be loaded and displayed. @var{type} must be an image type symbol.
For image types whose support libraries are statically linked, this
-function always returns @code{t}; for other image types, it returns
-@code{t} if the dynamic library could be loaded, @code{nil} otherwise.
+function always returns @code{t}. For image types whose support
+libraries are dynamically loaded, it returns @code{t} if the library
+could be loaded and @code{nil} otherwise.
@end defun
@node Image Descriptors
@subsection Image Descriptors
@cindex image descriptor
- An image description is a list of the form @code{(image . @var{props})},
-where @var{props} is a property list containing alternating keyword
-symbols (symbols whose names start with a colon) and their values.
-You can use any Lisp object as a property, but the only properties
-that have any special meaning are certain symbols, all of them keywords.
+ An @dfn{image descriptor} is a list which specifies the underlying
+data for an image, and how to display it. It is typically used as the
+value of a @code{display} overlay or text property (@pxref{Other
+Display Specs}); but @xref{Showing Images}, for convenient helper
+functions to insert images into buffers.
- Every image descriptor must contain the property @code{:type
-@var{type}} to specify the format of the image. The value of @var{type}
-should be an image type symbol; for example, @code{xpm} for an image in
-XPM format.
+ Each image descriptor has the form @code{(image . @var{props})},
+where @var{props} is a property list of alternating keyword symbols
+and values, including at least the pair @code{:type @var{TYPE}} which
+specifies the image type.
- Here is a list of other properties that are meaningful for all image
-types:
+ The following is a list of properties that are meaningful for all
+image types (there are also properties which are meaningful only for
+certain image types, as documented in the following subsections):
@table @code
+@item :type @var{type}
+The image type.
+@ifnottex
+@xref{Image Formats}.
+@end ifnottex
+Every image descriptor must include this property.
+
@item :file @var{file}
-The @code{:file} property says to load the image from file
-@var{file}. If @var{file} is not an absolute file name, it is expanded
-in @code{data-directory}.
+This says to load the image from file @var{file}. If @var{file} is
+not an absolute file name, it is expanded in @code{data-directory}.
@item :data @var{data}
-The @code{:data} property says the actual contents of the image.
-Each image must use either @code{:data} or @code{:file}, but not both.
-For most image types, the value of the @code{:data} property should be a
-string containing the image data; we recommend using a unibyte string.
+This specifies the raw image data. Each image descriptor must have
+either @code{:data} or @code{:file}, but not both.
-Before using @code{:data}, look for further information in the section
-below describing the specific image format. For some image types,
-@code{:data} may not be supported; for some, it allows other data types;
-for some, @code{:data} alone is not enough, so you need to use other
-image properties along with @code{:data}.
+For most image types, the value of a @code{:data} property should be a
+string containing the image data. Some image types do not support
+@code{:data}; for some others, @code{:data} alone is not enough, so
+you need to use other image properties along with @code{:data}. See
+the following subsections for details.
@item :margin @var{margin}
-The @code{:margin} property specifies how many pixels to add as an
-extra margin around the image. The value, @var{margin}, must be a
-non-negative number, or a pair @code{(@var{x} . @var{y})} of such
-numbers. If it is a pair, @var{x} specifies how many pixels to add
-horizontally, and @var{y} specifies how many pixels to add vertically.
-If @code{:margin} is not specified, the default is zero.
+This specifies how many pixels to add as an extra margin around the
+image. The value, @var{margin}, must be a non-negative number, or a
+pair @code{(@var{x} . @var{y})} of such numbers. If it is a pair,
+@var{x} specifies how many pixels to add horizontally, and @var{y}
+specifies how many pixels to add vertically. If @code{:margin} is not
+specified, the default is zero.
@item :ascent @var{ascent}
-The @code{:ascent} property specifies the amount of the image's
-height to use for its ascent---that is, the part above the baseline.
-The value, @var{ascent}, must be a number in the range 0 to 100, or
-the symbol @code{center}.
+This specifies the amount of the image's height to use for its
+ascent---that is, the part above the baseline. The value,
+@var{ascent}, must be a number in the range 0 to 100, or the symbol
+@code{center}.
If @var{ascent} is a number, that percentage of the image's height is
used for its ascent.
If this property is omitted, it defaults to 50.
@item :relief @var{relief}
-The @code{:relief} property, if non-@code{nil}, adds a shadow rectangle
-around the image. The value, @var{relief}, specifies the width of the
-shadow lines, in pixels. If @var{relief} is negative, shadows are drawn
-so that the image appears as a pressed button; otherwise, it appears as
-an unpressed button.
+This adds a shadow rectangle around the image. The value,
+@var{relief}, specifies the width of the shadow lines, in pixels. If
+@var{relief} is negative, shadows are drawn so that the image appears
+as a pressed button; otherwise, it appears as an unpressed button.
@item :conversion @var{algorithm}
-The @code{:conversion} property, if non-@code{nil}, specifies a
-conversion algorithm that should be applied to the image before it is
-displayed; the value, @var{algorithm}, specifies which algorithm.
+This specifies a conversion algorithm that should be applied to the
+image before it is displayed; the value, @var{algorithm}, specifies
+which algorithm.
@table @code
@item laplace
@cindex ImageMagick images
@cindex images, support for more formats
- If you build Emacs with ImageMagick (@url{http://www.imagemagick.org})
-support, you can use the ImageMagick library to load many image formats.
-
-@findex imagemagick-types
-@findex imagemagick-register-types
-The function @code{imagemagick-types} returns a list of image file
-extensions that your installation of ImageMagick supports. To enable
-support, you must call the function @code{imagemagick-register-types}.
-This enables Emacs to visit these file types in @code{image-mode}
-(@pxref{File Conveniences,,, emacs, The GNU Emacs Manual}).
-If your Emacs was not compiled with ImageMagick support, then
-@code{imagemagick-types} will be undefined and
-@code{imagemagick-register-types} will do nothing.
-
-@vindex imagemagick-types-inhibit
-The variable @code{imagemagick-types-inhibit} specifies a list of
-image types that you do @emph{not} want ImageMagick to handle. It is
-a list of symbols, each of which has the same name as one of the
-format tags used internally by ImageMagick (i.e., as
-@code{imagemagick-types} returns). ImageMagick has a very broad
-definition of what an image is, for example it includes such file
-types as C files and HTML files. It is not appropriate to treat these
-as images in Emacs. You can add any other ImageMagick type that you
-wish to this list.
+ If you build Emacs with ImageMagick support, you can use the
+ImageMagick library to load many image formats. The image type symbol
+for images loaded via ImageMagick is @code{imagemagick}, regardless of
+the actual underlying image format.
+
+@defun imagemagick-types
+This function returns a list of image file extensions supported by the
+current ImageMagick installation.
+@end defun
+
+ By default, Emacs does not use ImageMagick to display images in
+Image mode, e.g.@: when visiting such files with @kbd{C-x C-f}. This
+feature is enabled by calling @code{imagemagick-register-types}.
+
+@defun imagemagick-register-types
+This function enables using Image mode to visit image files supported
+by ImageMagick. @xref{File Conveniences,,, emacs, The GNU Emacs
+Manual}. It also causes @code{create-image} and other helper
+functions to associate such file names with the @code{imagemagick}
+image type (@pxref{Defining Images}).
+
+All image file extensions supported by ImageMagick are registered,
+except those specified in @code{imagemagick-types-inhibit}. If Emacs
+was not compiled with ImageMagick support, this function does nothing.
+@end defun
+
+@defopt imagemagick-types-inhibit
+This variable specifies a list of image types that should @emph{not}
+be registered by @code{imagemagick-register-types}. Each entry in
+this list should be one of the symbols returned by
+@code{imagemagick-types}. The default value lists several file types
+that are considered ``images'' by ImageMagick, but which should not be
+considered as images by Emacs, including C files and HTML files.
+@end defopt
+
@ignore
@c I don't know what this means. I suspect it means eg loading jpg
@c images via libjpeg or ImageMagick. But it doesn't work.
For example, if you never want to use the ImageMagick loader to view
JPEG files, add @code{JPG} to this list.
@end ignore
-Note that ImageMagick often distinguishes between several different
-types of a particular format (e.g., @code{JPG}, @code{JPEG},
-@code{PJPEG}, etc.), and you may need to add all versions to this
-list.
-
-@c Not sure this should even be in the manual at all.
-@vindex imagemagick-render-type
-If you wish to experiment with the performance of the ImageMagick
-loader, see the variable @code{imagemagick-render-type}.
-Images loaded with ImageMagick support a few new display specifications:
+ Images loaded with ImageMagick support the following additional
+image descriptor properties:
@table @code
@item :width, :height
retrieve the total number of images in an image bundle.
@end table
-
@node Other Image Types
@subsection Other Image Types
@cindex PBM
@code{insert-image}, but splits the image into @var{rows}x@var{cols}
equally sized slices.
-If an image is inserted ``sliced'', then the Emacs display engine will
-treat each slice as a separate image, and allow more intuitive
-scrolling up/down, instead of jumping up/down the entire image when
-paging through a buffer that displays (large) images.
+If an image is inserted ``sliced'', Emacs displays each slice as a
+separate image, and allow more intuitive scrolling up/down, instead of
+jumping up/down the entire image when paging through a buffer that
+displays (large) images.
@end defun
@defun put-image image pos &optional string area
@cindex buttons in buffers
@cindex clickable buttons in buffers
- The @emph{button} package defines functions for inserting and
-manipulating clickable (with the mouse, or via keyboard commands)
-buttons in Emacs buffers, such as might be used for help hyper-links,
-etc. Emacs uses buttons for the hyper-links in help text and the like.
-
- A button is essentially a set of properties attached (via text
-properties or overlays) to a region of text in an Emacs buffer. These
-properties are called @dfn{button properties}.
-
- One of these properties (@code{action}) is a function, which will
-be called when the user invokes it using the keyboard or the mouse.
-The invoked function may then examine the button and use its other
-properties as desired.
-
- In some ways the Emacs button package duplicates functionality offered
-by the widget package (@pxref{Top, , Introduction, widget, The Emacs
-Widget Library}), but the button package has the advantage that it is
-much faster, much smaller, and much simpler to use (for elisp
-programmers---for users, the result is about the same). The extra
-speed and space savings are useful mainly if you need to create many
-buttons in a buffer (for instance an @code{*Apropos*} buffer uses
-buttons to make entries clickable, and may contain many thousands of
-entries).
+ The Button package defines functions for inserting and manipulating
+@dfn{buttons} that can be activated with the mouse or via keyboard
+commands. These buttons are typically used for various kinds of
+hyperlinks.
+
+ A button is essentially a set of text or overlay properties,
+attached to a stretch of text in a buffer. These properties are
+called @dfn{button properties}. One of these properties, the
+@dfn{action property}, specifies a function which is called when the
+user invokes the button using the keyboard or the mouse. The action
+function may examine the button and use its other properties as
+desired.
+
+ In some ways, the Button package duplicates the functionality in the
+Widget package. @xref{Top, , Introduction, widget, The Emacs Widget
+Library}. The advantage of the Button package is that it is faster,
+smaller, and simpler to program. From the point of view of the user,
+the interfaces produced by the two packages are very similar.
@menu
* Button Properties:: Button properties with special meanings.
@subsection Button Properties
@cindex button properties
- Buttons have an associated list of properties defining their
+ Each button has an associated list of properties defining its
appearance and behavior, and other arbitrary properties may be used
-for application specific purposes. Some properties that have special
-meaning to the button package include:
+for application specific purposes. The following properties have
+special meaning to the Button package:
@table @code
@item action
@item type
@kindex type @r{(button property)}
-The button-type of the button. When creating a button, this is
-usually specified using the @code{:type} keyword argument.
-@xref{Button Types}.
+The button type. @xref{Button Types}.
@item help-echo
@kindex help-index @r{(button property)}
@subsection Button Types
@cindex button types
- Every button has a button @emph{type}, which defines default values
+ Every button has a @dfn{button type}, which defines default values
for the button's properties. Button types are arranged in a
hierarchy, with specialized types inheriting from more general types,
so that it's easy to define special-purpose types of buttons for
and returns it.
@end defun
- The following functions are similar, but use Emacs text properties
-(@pxref{Text Properties}) to hold the button properties, making the
-button actually part of the text instead of being a property of the
-buffer. Buttons using text properties do not create markers into the
-buffer, which is important for speed when you use extremely large
-numbers of buttons. (However, if there is an existing face text
-property at the site of the button, the button face may not be visible.)
-Both functions return the position of the start of the new button:
+ The following functions are similar, but using text properties
+(@pxref{Text Properties}) to hold the button properties. Such buttons
+do not add markers to the buffer, so editing in the buffer does not
+slow down if there is an extremely large numbers of buttons. However,
+if there is an existing face text property on the text (e.g.@: a face
+assigned by Font Lock mode), the button face may not be visible. Both
+of these functions return the starting position of the new button.
@defun make-text-button beg end &rest properties
-This makes a button from @var{beg} to @var{end} in the current buffer, using
-text properties.
+This makes a button from @var{beg} to @var{end} in the current buffer,
+using text properties.
@end defun
@defun insert-text-button label &rest properties
@end defun
@defun button-at pos
-Return the button at position @var{pos} in the current buffer, or @code{nil}.
+Return the button at position @var{pos} in the current buffer, or
+@code{nil}. If the button at @var{pos} is a text property button, the
+return value is a marker pointing to @var{pos}.
@end defun
@defun button-type-put type prop val
@code{push-button} is the command that a user uses to actually `push'
a button, and is bound by default in the button itself to @key{RET}
-and to @key{mouse-2} using a region-specific keymap. Commands
-that are useful outside the buttons itself, such as
-@code{forward-button} and @code{backward-button} are additionally
-available in the keymap stored in @code{button-buffer-map}; a mode
-which uses buttons may want to use @code{button-buffer-map} as a
-parent keymap for its keymap.
+and to @key{mouse-2} using a local keymap in the button's overlay or
+text properties. Commands that are useful outside the buttons itself,
+such as @code{forward-button} and @code{backward-button} are
+additionally available in the keymap stored in
+@code{button-buffer-map}; a mode which uses buttons may want to use
+@code{button-buffer-map} as a parent keymap for its keymap.
If the button has a non-@code{nil} @code{follow-link} property, and
@var{mouse-1-click-follows-link} is set, a quick @key{Mouse-1} click
@smallexample
@group
(defun interactive-blink-matching-open ()
-@c Do not break this line! -- rms.
-@c The first line of a doc string
-@c must stand alone.
"Indicate momentarily the start of sexp before point."
(interactive)
@end group
@end smallexample
@end deffn
+@node Character Display
+@section Character Display
+
+ This section describes how characters are actually displayed by
+Emacs. Typically, a character is displayed as a @dfn{glyph} (a
+graphical symbol which occupies one character position on the screen),
+whose appearance corresponds to the character itself. For example,
+the character @samp{a} (character code 97) is displayed as @samp{a}.
+Some characters, however, are displayed specially. For example, the
+formfeed character (character code 12) is usually displayed as a
+sequence of two glyphs, @samp{^L}, while the newline character
+(character code 10) starts a new screen line.
+
+ You can modify how each character is displayed by defining a
+@dfn{display table}, which maps each character code into a sequence of
+glyphs. @xref{Display Tables}.
+
+@menu
+* Usual Display:: The usual conventions for displaying characters.
+* Display Tables:: What a display table consists of.
+* Active Display Table:: How Emacs selects a display table to use.
+* Glyphs:: How to define a glyph, and what glyphs mean.
+* Glyphless Chars:: How glyphless characters are drawn.
+@end menu
+
@node Usual Display
-@section Usual Display Conventions
+@subsection Usual Display Conventions
- The usual display conventions define how to display each character
-code. You can override these conventions by setting up a display table
-(@pxref{Display Tables}). Here are the usual display conventions:
+ Here are the conventions for displaying each character code (in the
+absence of a display table, which can override these
+@iftex
+conventions).
+@end iftex
+@ifnottex
+conventions; @pxref{Display Tables}).
+@end ifnottex
+@cindex printable ASCII characters
@itemize @bullet
@item
-Character codes 32 through 126 map to glyph codes 32 through 126.
-Normally this means they display as themselves, but a display table
-can change that.
+The @dfn{printable @acronym{ASCII} characters}, character codes 32
+through 126 (consisting of numerals, English letters, and symbols like
+@samp{#}) are displayed literally.
@item
-Character code 9 is a horizontal tab. It displays as whitespace
-up to a position determined by @code{tab-width}.
+The tab character (character code 9) displays as whitespace stretching
+up to the next tab stop column. @xref{Text Display,,, emacs, The GNU
+Emacs Manual}. The variable @code{tab-width} controls the number of
+spaces per tab stop (see below).
@item
-Character code 10 is a newline. It is normally invisible on display,
-and has the effect of ending the preceding line and starting a new
-line.
+The newline character (character code 10) has a special effect: it
+ends the preceding line and starts a new line.
+@cindex ASCII control characters
@item
-All other codes in the range 0 through 31 display in one of two ways
-according to the value of @code{ctl-arrow}. If it is non-@code{nil},
-these codes map to sequences of two glyphs, where the first glyph is
-the @acronym{ASCII} code for @samp{^}. (A display table can specify a
-glyph to use instead of @samp{^}.) Otherwise, these codes map just
-like the raw bytes in the range 128 to 255 (described below).
+The non-printable @dfn{@acronym{ASCII} control characters}---character
+codes 0 through 31, as well as the @key{DEL} character (character code
+127)---display in one of two ways according to the variable
+@code{ctl-arrow}. If this variable is non-@code{nil} (the default),
+these characters are displayed as sequences of two glyphs, where the
+first glyph is @samp{^} (a display table can specify a glyph to use
+instead of @samp{^}); e.g.@: the @key{DEL} character is displayed as
+@samp{^?}.
+
+If @code{ctl-arrow} is @code{nil}, these characters are displayed as
+octal escapes (see below).
+
+This rule also applies to carriage return (character code 13), if that
+character appears in the buffer. But carriage returns usually do not
+appear in buffer text; they are eliminated as part of end-of-line
+conversion (@pxref{Coding System Basics}).
@cindex octal escapes
@item
-Raw bytes (@pxref{Text Representations}) with codes 128 through 255,
-and the @acronym{ASCII} control character with code 127, display as
-sequences of four glyphs, where the first glyph is the @acronym{ASCII}
-code for @samp{\}, and the others are digit characters representing
-the character code in octal. (A display table can specify a glyph to
-use instead of @samp{\}.) This is known as the @dfn{octal escape}
-display.
+@dfn{Raw bytes} are non-@acronym{ASCII} characters with codes 128
+through 255 (@pxref{Text Representations}). These characters display
+as @dfn{octal escapes}: sequences of four glyphs, where the first
+glyph is the @acronym{ASCII} code for @samp{\}, and the others are
+digit characters representing the character code in octal. (A display
+table can specify a glyph to use instead of @samp{\}.)
@item
-Non-@acronym{ASCII} character codes above 127 are displayed as
-themselves, if the terminal and the available fonts support them.
-Characters that are not supported by the terminal, or (on window
-systems) have no fonts available for them, are displayed as a question
-mark or a hex code or an empty box. @xref{Glyphless Chars}, for how
-to control display of the characters not supported by the terminal or
-fonts. Display tables can change how a character is displayed, even
-if it is supported.
+Each non-@acronym{ASCII} character with code above 255 is displayed
+literally, if the terminal supports it. If the terminal does not
+support it, the character is said to be @dfn{glyphless}, and it is
+usually displayed using a placeholder glyph. For example, if a
+graphical terminal has no font for a character, Emacs usually displays
+a box containing the character code in hexadecimal. @xref{Glyphless
+Chars}.
@end itemize
- The usual display conventions apply even when there is a display
+ The above display conventions apply even when there is a display
table, for any character whose entry in the active display table is
@code{nil}. Thus, when you set up a display table, you need only
specify the characters for which you want special behavior.
- These display rules apply to carriage return (character code 13), when
-it appears in the buffer. But that character may not appear in the
-buffer where you expect it, if it was eliminated as part of end-of-line
-conversion (@pxref{Coding System Basics}).
-
- These variables affect the way certain characters are displayed on the
-screen. Since they change the number of columns the characters occupy,
-they also affect the indentation functions. These variables also affect
+ The following variables affect how certain characters are displayed
+on the screen. Since they change the number of columns the characters
+occupy, they also affect the indentation functions. They also affect
how the mode line is displayed; if you want to force redisplay of the
mode line using the new values, call the function
@code{force-mode-line-update} (@pxref{Mode Line Format}).
@end defopt
@node Display Tables
-@section Display Tables
+@subsection Display Tables
@cindex display table
-You can use the @dfn{display table} feature to control how all possible
-character codes display on the screen. This is useful for displaying
-European languages that have letters not in the @acronym{ASCII} character
-set.
-
-The display table maps each character code into a sequence of
-@dfn{glyphs}, each glyph being a graphic that takes up one character
-position on the screen. You can also define how to display each glyph
-on your terminal, using the @dfn{glyph table}.
-
-Display tables affect how the mode line is displayed; if you want to
-force redisplay of the mode line using a new display table, call
-@code{force-mode-line-update} (@pxref{Mode Line Format}).
-
-@menu
-* Display Table Format:: What a display table consists of.
-* Active Display Table:: How Emacs selects a display table to use.
-* Glyphs:: How to define a glyph, and what glyphs mean.
-@end menu
-
-@node Display Table Format
-@subsection Display Table Format
-
- A display table is actually a char-table (@pxref{Char-Tables}) with
-@code{display-table} as its subtype.
+ A display table is a special-purpose char-table
+(@pxref{Char-Tables}), with @code{display-table} as its subtype, which
+is used to override the usual character display conventions. This
+section describes how to make, inspect, and assign elements to a
+display table object.
@defun make-display-table
This creates and returns a display table. The table initially has
The ordinary elements of the display table are indexed by character
codes; the element at index @var{c} says how to display the character
-code @var{c}. The value should be @code{nil} or a vector of the
-glyphs to be output (@pxref{Glyphs}). @code{nil} says to display the
-character @var{c} according to the usual display conventions
-(@pxref{Usual Display}).
+code @var{c}. The value should be @code{nil} (which means to display
+the character @var{c} according to the usual display conventions;
+@pxref{Usual Display}), or a vector of glyph codes (which means to
+display the character @var{c} as those glyphs; @pxref{Glyphs}).
@strong{Warning:} if you use the display table to change the display
of newline characters, the whole buffer will be displayed as one long
a scroll bar separates the two windows.
@end table
- For example, here is how to construct a display table that mimics the
-effect of setting @code{ctl-arrow} to a non-@code{nil} value:
+ For example, here is how to construct a display table that mimics
+the effect of setting @code{ctl-arrow} to a non-@code{nil} value
+(@pxref{Glyphs}, for the function @code{make-glyph-code}):
@example
(setq disptab (make-display-table))
-(let ((i 0))
- (while (< i 32)
- (or (= i ?\t) (= i ?\n)
- (aset disptab i (vector ?^ (+ i 64))))
- (setq i (1+ i)))
- (aset disptab 127 (vector ?^ ??)))
+(dotimes (i 32)
+ (or (= i ?\t)
+ (= i ?\n)
+ (aset disptab i
+ (vector (make-glyph-code ?^ 'escape-glyph)
+ (make-glyph-code (+ i 64) 'escape-glyph)))))
+(aset disptab 127
+ (vector (make-glyph-code ?^ 'escape-glyph)
+ (make-glyph-code ?? 'escape-glyph)))))
@end example
@defun display-table-slot display-table slot
@subsection Active Display Table
@cindex active display table
- Each window can specify a display table, and so can each buffer. When
-a buffer @var{b} is displayed in window @var{w}, display uses the
-display table for window @var{w} if it has one; otherwise, the display
-table for buffer @var{b} if it has one; otherwise, the standard display
-table if any. The display table chosen is called the @dfn{active}
-display table.
+ Each window can specify a display table, and so can each buffer.
+The window's display table, if there is one, takes precedence over the
+buffer's display table. If neither exists, Emacs tries to use the
+standard display table; if that is @code{nil}, Emacs uses the usual
+character display conventions (@pxref{Usual Display}).
+
+ Note that display tables affect how the mode line is displayed, so
+if you want to force redisplay of the mode line using a new display
+table, call @code{force-mode-line-update} (@pxref{Mode Line Format}).
@defun window-display-table &optional window
-This function returns @var{window}'s display table, or @code{nil}
-if @var{window} does not have an assigned display table. The default
-for @var{window} is the selected window.
+This function returns @var{window}'s display table, or @code{nil} if
+there is none. The default for @var{window} is the selected window.
@end defun
@defun set-window-display-table window table
@end defun
@defvar buffer-display-table
-This variable is automatically buffer-local in all buffers; its value in
-a particular buffer specifies the display table for that buffer. If it
-is @code{nil}, that means the buffer does not have an assigned display
-table.
+This variable is automatically buffer-local in all buffers; its value
+specifies the buffer's display table. If it is @code{nil}, there is
+no buffer display table.
@end defvar
@defvar standard-display-table
-This variable's value is the default display table, used whenever a
-window has no display table and neither does the buffer displayed in
-that window. This variable is @code{nil} by default.
+The value of this variable is the standard display table, which is
+used when Emacs is displaying a buffer in a window with neither a
+window display table nor a buffer display table defined. Its default
+is @code{nil}.
@end defvar
- If there is no display table to use for a particular window---that is,
-if the window specifies none, its buffer specifies none, and
-@code{standard-display-table} is @code{nil}---then Emacs uses the usual
-display conventions for all character codes in that window. @xref{Usual
-Display}.
-
-A number of functions for changing the standard display table
-are defined in the library @file{disp-table}.
+The @file{disp-table} library defines several functions for changing
+the standard display table.
@node Glyphs
@subsection Glyphs
-
@cindex glyph
- A @dfn{glyph} is a generalization of a character; it stands for an
-image that takes up a single character position on the screen. Normally
-glyphs come from vectors in the display table (@pxref{Display Tables}).
-
- A glyph is represented in Lisp as a @dfn{glyph code}. A glyph code
-can be @dfn{simple} or it can be defined by the @dfn{glyph table}. A
-simple glyph code is just a way of specifying a character and a face
-to output it in. @xref{Faces}.
- The following functions are used to manipulate simple glyph codes:
+ A @dfn{glyph} is a graphical symbol which occupies a single
+character position on the screen. Each glyph is represented in Lisp
+as a @dfn{glyph code}, which specifies a character and optionally a
+face to display it in (@pxref{Faces}). The main use of glyph codes is
+as the entries of display tables (@pxref{Display Tables}). The
+following functions are used to manipulate glyph codes:
@defun make-glyph-code char &optional face
-This function returns a simple glyph code representing char @var{char}
-with face @var{face}.
+This function returns a glyph code representing char @var{char} with
+face @var{face}. If @var{face} is omitted or @code{nil}, the glyph
+uses the default face; in that case, the glyph code is an integer. If
+@var{face} is non-@code{nil}, the glyph code is not necessarily an
+integer object.
@end defun
@defun glyph-char glyph
-This function returns the character of simple glyph code @var{glyph}.
+This function returns the character of glyph code @var{glyph}.
@end defun
@defun glyph-face glyph
-This function returns face of simple glyph code @var{glyph}, or
-@code{nil} if @var{glyph} has the default face (face-id 0).
-@xref{Face Functions}.
+This function returns face of glyph code @var{glyph}, or @code{nil} if
+@var{glyph} uses the default face.
@end defun
- On character terminals, you can set up a @dfn{glyph table} to define
-the meaning of glyph codes (represented as small integers).
+@ifnottex
+ You can set up a @dfn{glyph table} to change how glyph codes are
+actually displayed on text terminals. This feature is semi-obsolete;
+use @code{glyphless-char-display} instead (@pxref{Glyphless Chars}).
@defvar glyph-table
-The value of this variable is the current glyph table. It should be
-@code{nil} or a vector whose @var{g}th element defines glyph code
-@var{g}.
+The value of this variable, if non-@code{nil}, is the current glyph
+table. It takes effect only on character terminals; on graphical
+displays, all glyphs are displayed literally. The glyph table should
+be a vector whose @var{g}th element specifies how to display glyph
+code @var{g}, where @var{g} is the glyph code for a glyph whose face
+is unspecified. Each element should be one of the following:
-If a glyph code is greater than or equal to the length of the glyph
-table, that code is automatically simple. If @code{glyph-table} is
-@code{nil} then all glyph codes are simple.
+@table @asis
+@item @code{nil}
+Display this glyph literally.
+
+@item a string
+Display this glyph by sending the specified string to the terminal.
+
+@item a glyph code
+Display the specified glyph code instead.
+@end table
-The glyph table is used only on character terminals. On graphical
-displays, all glyph codes are simple.
+Any integer glyph code greater than or equal to the length of the
+glyph table is displayed literally.
@end defvar
+@end ifnottex
+
+@node Glyphless Chars
+@subsection Glyphless Character Display
+@cindex glyphless characters
+
+ @dfn{Glyphless characters} are characters which are displayed in a
+special way, e.g.@: as a box containing a hexadecimal code, instead of
+being displayed literally. These include characters which are
+explicitly defined to be glyphless, as well as characters for which
+there is no available font (on a graphical display), and characters
+which cannot be encoded by the terminal's coding system (on a text
+terminal).
- Here are the meaningful types of elements in the glyph table:
+@defvar glyphless-char-display
+The value of this variable is a char-table which defines glyphless
+characters and how they are displayed. Each entry must be one of the
+following display methods:
@table @asis
-@item @var{string}
-Send the characters in @var{string} to the terminal to output
-this glyph code.
+@item @code{nil}
+Display the character in the usual way.
-@item @var{code}
-Define this glyph code as an alias for glyph code @var{code} created
-by @code{make-glyph-code}. You can use such an alias to define a
-small-numbered glyph code which specifies a character with a face.
+@item @code{zero-width}
+Don't display the character.
-@item @code{nil}
-This glyph code is simple.
+@item @code{thin-space}
+Display a thin space, 1-pixel wide on graphical displays, or
+1-character wide on text terminals.
+
+@item @code{empty-box}
+Display an empty box.
+
+@item @code{hex-code}
+Display a box containing the Unicode codepoint of the character, in
+hexadecimal notation.
+
+@item an @acronym{ASCII} string
+Display a box containing that string.
+
+@item a cons cell @code{(@var{graphical} . @var{text})}
+Display with @var{graphical} on graphical displays, and with
+@var{text} on text terminals. Both @var{graphical} and @var{text}
+must be one of the display methods described above.
@end table
-@defun create-glyph string
-This function returns a newly-allocated glyph code which is set up to
-display by sending @var{string} to the terminal.
-@end defun
+@noindent
+The @code{thin-space}, @code{empty-box}, @code{hex-code}, and
+@acronym{ASCII} string display methods are drawn with the
+@code{glyphless-char} face.
+
+The char-table has one extra slot, which determines how to display any
+character that cannot be displayed with any available font, or cannot
+be encoded by the terminal's coding system. Its value should be one
+of the above display methods, except @code{zero-width} or a cons cell.
+
+If a character has a non-@code{nil} entry in an active display table,
+the display table takes effect; in this case, Emacs does not consult
+@code{glyphless-char-display} at all.
+@end defvar
+
+@defopt glyphless-char-display-control
+This user option provides a convenient way to set
+@code{glyphless-char-display} for groups of similar characters. Do
+not set its value directly from Lisp code; the value takes effect only
+via a custom @code{:set} function (@pxref{Variable Definitions}),
+which updates @code{glyphless-char-display}.
+
+Its value should be an alist of elements @code{(@var{group}
+. @var{method})}, where @var{group} is a symbol specifying a group of
+characters, and @var{method} is a symbol specifying how to display
+them.
+
+@var{group} should be one of the following:
+
+@table @code
+@item c0-control
+@acronym{ASCII} control characters @code{U+0000} to @code{U+001F},
+excluding the newline and tab characters (normally displayed as escape
+sequences like @samp{^A}; @pxref{Text Display,, How Text Is Displayed,
+emacs, The GNU Emacs Manual}).
+
+@item c1-control
+Non-@acronym{ASCII}, non-printing characters @code{U+0080} to
+@code{U+009F} (normally displayed as octal escape sequences like
+@samp{\230}).
+
+@item format-control
+Characters of Unicode General Category `Cf', such as @samp{U+200E}
+(Left-to-Right Mark), but excluding characters that have graphic
+images, such as @samp{U+00AD} (Soft Hyphen).
+
+@item no-font
+Characters for there is no suitable font, or which cannot be encoded
+by the terminal's coding system.
+@end table
+
+@c FIXME: this can also be `acronym', but that's not currently
+@c completely implemented; it applies only to the format-control
+@c group, and only works if the acronym is in `char-acronym-table'.
+The @var{method} symbol should be one of @code{zero-width},
+@code{thin-space}, @code{empty-box}, or @code{hex-code}. These have
+the same meanings as in @code{glyphless-char-display}, above.
+@end defopt
@node Beeping
@section Beeping
-@c @cindex beeping "beep" is adjacent
@cindex bell
This section describes how to make Emacs ring the bell (or blink the
screen) to attract the user's attention. Be conservative about how
often you do this; frequent bells can become irritating. Also be
careful not to use just beeping when signaling an error is more
-appropriate. (@xref{Errors}.)
+appropriate (@pxref{Errors}).
@defun ding &optional do-not-terminate
@cindex keyboard macro termination
@cindex right-to-left text
Emacs can display text written in scripts, such as Arabic, Farsi,
-and Hebrew, whose natural ordering of horizontal text for display is
-from right to left. However, digits and Latin text embedded in these
-scripts are still displayed left to right. It is also not uncommon to
-have small portions of text in Arabic or Hebrew embedded in otherwise
-Latin document, e.g., as comments and strings in a program source
-file. Likewise, small portions of Latin text can be embedded in an
-Arabic or Farsi document. For these reasons, text that uses these
-scripts is actually @dfn{bidirectional}: a mixture of runs of
-left-to-right and right-to-left characters.
-
- This section describes the facilities and options provided by Emacs
-for editing and displaying bidirectional text.
+and Hebrew, whose natural ordering for horizontal text display runs
+from right to left. Furthermore, segments of Latin script and digits
+embedded in right-to-left text are displayed left-to-right, while
+segments of right-to-left script embedded in left-to-right text
+(e.g.@: Arabic or Hebrew text in comments or strings in a program
+source file) are appropriately displayed right-to-left. We call such
+mixtures of left-to-right and right-to-left text @dfn{bidirectional
+text}. This section describes the facilities and options for editing
+and displaying bidirectional text.
@cindex logical order
@cindex reading order
@cindex visual order
@cindex unicode bidirectional algorithm
- Emacs stores right-to-left and bidirectional text in the so-called
-@dfn{logical} (or @dfn{reading}) order: the buffer or string position
-of the first character you read precedes that of the next character.
-Reordering of bidirectional text into the @dfn{visual} order happens
-at display time. As result, character positions no longer increase
-monotonically with their positions on display. Emacs implements the
-Unicode Bidirectional Algorithm (a.k.a.@: @acronym{UBA}) described in
-the Unicode Standard Annex #9, for reordering of bidirectional text
-for display. Reordering of bidirectional text for display in Emacs is
-a ``Full bidirectionality'' class implementation of the @acronym{UBA}.
+@cindex bidirectional reordering
+ Text is stored in Emacs buffers and strings in @dfn{logical} (or
+@dfn{reading}) order, i.e.@: the order in which a human would read
+each character. In right-to-left and bidirectional text, the order in
+which characters are displayed on the screen (called @dfn{visual
+order}) is not the same as logical order; the characters' screen
+positions do not increase monotonically with string or buffer
+position. In performing this @dfn{bidirectional reordering}, Emacs
+follows the Unicode Bidirectional Algorithm (a.k.a.@: @acronym{UBA}),
+which is described in Annex #9 of the Unicode standard
+(@url{http://www.unicode.org/reports/tr9/}). Emacs provides a ``Full
+Bidirectionality'' class implementation of the @acronym{UBA}.
@defvar bidi-display-reordering
- This buffer-local variable controls whether text in the buffer is
-reordered for display. If its value is non-@code{nil}, Emacs reorders
-characters that have right-to-left directionality when they are
-displayed. The default value is @code{t}. Text in overlay strings
-(@pxref{Overlay Properties,,before-string}), display strings
-(@pxref{Overlay Properties,,display}), and @code{display} text
-properties (@pxref{Display Property}) is also reordered for display if
-the buffer whose text includes these strings is reordered. Turning
-off @code{bidi-display-reordering} for a buffer turns off reordering
-of all the overlay and display strings in that buffer.
-
- Reordering of strings that are unrelated to any buffer, such as text
-displayed on the mode line (@pxref{Mode Line Format}) or header line
-(@pxref{Header Lines}), is controlled by the default value of
-@code{bidi-display-reordering}.
+If the value of this buffer-local variable is non-@code{nil} (the
+default), Emacs performs bidirectional reordering for display. The
+reordering affects buffer text, as well as display strings and overlay
+strings from text and overlay properties in the buffer (@pxref{Overlay
+Properties}, and @pxref{Display Property}). If the value is
+@code{nil}, Emacs does not perform bidirectional reordering in the
+buffer.
+
+The default value of @code{bidi-display-reordering} controls the
+reordering of strings which are not directly supplied by a buffer,
+including the text displayed in mode lines (@pxref{Mode Line Format})
+and header lines (@pxref{Header Lines}).
@end defvar
@cindex unibyte buffers, and bidi reordering
- Emacs does not reorder text in unibyte buffers, even if
-@code{bidi-display-reordering} is non-@code{nil} in such a buffer.
-This is because unibyte buffers contain raw bytes, not characters, and
-thus don't have bidirectional properties defined for them which are
-required for correct reordering. Therefore, to test whether text in a
-buffer will be reordered for display, it is not enough to test the
-value of @code{bidi-display-reordering} alone. The correct test is
-this:
+ Emacs never reorders the text of a unibyte buffer, even if
+@code{bidi-display-reordering} is non-@code{nil} in the buffer. This
+is because unibyte buffers contain raw bytes, not characters, and thus
+lack the directionality properties required for reordering.
+Therefore, to test whether text in a buffer will be reordered for
+display, it is not enough to test the value of
+@code{bidi-display-reordering} alone. The correct test is this:
@example
(if (and enable-multibyte-characters
)
@end example
- In contrast to unibyte buffers, unibyte display and overlay strings
-@emph{are} reordered, if their parent buffer is reordered. This is
-because plain-@sc{ascii} strings are stored by Emacs as unibyte
-strings. If a unibyte display or overlay string includes
-non-@sc{ascii} characters, these characters are assumed to have
-left-to-right direction.
+ However, unibyte display and overlay strings @emph{are} reordered if
+their parent buffer is reordered. This is because plain-@sc{ascii}
+strings are stored by Emacs as unibyte strings. If a unibyte display
+or overlay string includes non-@sc{ascii} characters, these characters
+are assumed to have left-to-right direction.
@cindex display properties, and bidi reordering of text
Text covered by @code{display} text properties, by overlays with
properties that replace buffer text, is treated as a single unit when
it is reordered for display. That is, the entire chunk of text
covered by these properties is reordered together. Moreover, the
-bidirectional properties of the characters in this chunk of text are
+bidirectional properties of the characters in such a chunk of text are
ignored, and Emacs reorders them as if they were replaced with a
single character @code{U+FFFC}, known as the @dfn{Object Replacement
Character}. This means that placing a display property over a portion
surrounds it.
@cindex base direction of a paragraph
- Each paragraph of bidirectional text can have its own @dfn{base
-direction}, either right-to-left or left-to-right. Text in
-left-to-right paragraphs is displayed beginning at the left margin of
-the window and is truncated or continued when it reaches the right
-margin. By contrast, display of text in right-to-left paragraphs
-begins at the right margin and is continued or truncated at the left
-margin.
+ Each paragraph of bidirectional text has a @dfn{base direction},
+either right-to-left or left-to-right. Left-to-right paragraphs are
+displayed beginning at the left margin of the window, and are
+truncated or continued when the text reaches the right margin.
+Right-to-left paragraphs are displayed beginning at the right margin,
+and are continued or truncated at the left margin.
+
+ By default, Emacs determines the base direction of each paragraph by
+looking at the text at its beginning. The precise method of
+determining the base direction is specified by the @acronym{UBA}; in a
+nutshell, the first character in a paragraph that has an explicit
+directionality determines the base direction of the paragraph.
+However, sometimes a buffer may need to force a certain base direction
+for its paragraphs. For example, buffers containing program source
+code should force all paragraphs to be displayed left-to-right. You
+can use following variable to do this:
@defvar bidi-paragraph-direction
- By default, Emacs determines the base direction of each paragraph
-dynamically, based on the text at the beginning of the paragraph. The
-precise method of determining the base direction is specified by the
-@acronym{UBA}; in a nutshell, the first character in a paragraph that
-has an explicit directionality determines the base direction of the
-paragraph. However, sometimes a buffer may need to force a certain
-base direction for its paragraphs. For example, a buffer that visits
-a source code of a program should force all its paragraphs to be
-displayed left to right. The variable
-@code{bidi-paragraph-direction}, if non-@code{nil}, disables the
-dynamic determination of the base direction, and instead forces all
-paragraphs in the buffer to have the direction specified by its
-buffer-local value. The value can be either @code{right-to-left} or
-@code{left-to-right}. Any other value is interpreted as @code{nil}.
-The default is @code{nil}.
+If the value of this buffer-local variable is the symbol
+@code{right-to-left} or @code{left-to-right}, all paragraphs in the
+buffer are assumed to have that specified direction. Any other value
+is equivalent to @code{nil} (the default), which means to determine
+the base direction of each paragraph from its contents.
@cindex @code{prog-mode}, and @code{bidi-paragraph-direction}
-Modes that are meant to display program source code should force a
-@code{left-to-right} paragraph direction. The easiest way of doing so
-is to derive the mode from Prog Mode, which already sets
-@code{bidi-paragraph-direction} to that value.
+Modes for program source code should set this to @code{left-to-right}.
+Prog mode does this by default, so modes derived from Prog mode do not
+need to set this explicitly (@pxref{Basic Major Modes}).
@end defvar
@defun current-bidi-paragraph-direction &optional buffer
@cindex layout on display, and bidirectional text
@cindex jumbled display of bidirectional text
@cindex concatenating bidirectional strings
- Reordering of bidirectional text for display can have surprising and
-unpleasant effects when two strings with bidirectional content are
-juxtaposed in a buffer, or otherwise programmatically concatenated
-into a string of text. A typical example is a buffer whose lines are
-actually sequences of items, or fields, separated by whitespace or
-punctuation characters. This is used in specialized modes such as
-Buffer-menu Mode or various email summary modes, like Rmail Summary
-Mode. Because these separator characters are @dfn{weak}, i.e.@: have
-no strong directionality, they take on the directionality of
-surrounding text. As result, a numeric field that follows a field
-with bidirectional content can be displayed @emph{to the left} of the
-preceding field, producing a jumbled display and messing up the
-expected layout.
-
- To countermand this, we recommend that you use one of the following
-techniques for forcing correct order of fields on display:
+ Bidirectional reordering can have surprising and unpleasant effects
+when two strings with bidirectional content are juxtaposed in a
+buffer, or otherwise programmatically concatenated into a string of
+text. A typical problematic case is when a buffer consists of
+sequences of text ``fields'' separated by whitespace or punctuation
+characters, like Buffer Menu mode or Rmail Summary Mode. Because the
+punctuation characters used as separators have @dfn{weak
+directionality}, they take on the directionality of surrounding text.
+As result, a numeric field that follows a field with bidirectional
+content can be displayed @emph{to the left} of the preceding field,
+messing up the expected layout. There are several ways to avoid this
+problem:
@itemize @minus
@item
function @code{bidi-string-mark-left-to-right}, described below, comes
in handy for this purpose. (In a right-to-left paragraph, use
@code{U+200F}, RIGHT-TO-LEFT MARK, or @acronym{RLM}, instead.) This
-is one of the solutions recommended by
-@uref{http://www.unicode.org/reports/tr9/#Separators, the
-@acronym{UBA}}.
+is one of the solutions recommended by the UBA.
@item
Include the tab character in the field separator. The tab character
-plays the role of @dfn{segment separator} in the @acronym{UBA}
-reordering, whose effect is to make each field a separate segment, and
-thus reorder them separately.
+plays the role of @dfn{segment separator} in bidirectional reordering,
+causing the text on either side to be reordered separately.
@cindex @code{space} display spec, and bidirectional text
@item
-Separate fields with a @code{display} property or overlay with the
+Separate fields with a @code{display} property or overlay with a
property value of the form @code{(space . PROPS)} (@pxref{Specified
-Space}). This display specification is treated by Emacs as a
-@dfn{paragraph separator}; the text before and after the separator is
-reordered separately, which avoids the influence of any field on its
-neighboring fields.
+Space}). Emacs treats this display specification as a @dfn{paragraph
+separator}, and reorders the text on either side separately.
@end itemize
@defun bidi-string-mark-left-to-right string
-This subroutine returns its argument @var{string}, possibly modified,
+This function returns its argument @var{string}, possibly modified,
such that the result can be safely concatenated with another string,
or juxtaposed with another string in a buffer, without disrupting the
relative layout of this string and the next one on display. If the
characters of its argument, and if any of those characters could cause
reordering on display, the function appends the @acronym{LRM}
character to the string. The appended @acronym{LRM} character is made
-@emph{invisible} (@pxref{Invisible Text}), to hide it on display.
+invisible by giving it an @code{invisible} text property of @code{t}
+(@pxref{Invisible Text}).
@end defun
The reordering algorithm uses the bidirectional properties of the
appropriate mirrored character in the reordered text. Lisp programs
can affect the mirrored display by changing this property. Again, any
such changes affect all of Emacs display.
-
-@node Glyphless Chars
-@section Glyphless Character Display
-@cindex glyphless characters
-
- @dfn{Glyphless characters} are not displayed in the usual way when
-they appear in a buffer, but in some special way (e.g. as a box
-containing a hexadecimal code). These include characters that cannot
-be displayed with any available font (on a graphical display), or that
-cannot be encoded by the terminal's coding system (on a text
-terminal). Specific characters can also be defined to be glyphless.
-
-@defvar glyphless-char-display
-The value of this variable is a char-table that defines glyphless
-characters and how they are displayed. If an entry is @code{nil}, the
-corresponding character is displayed in its usual way. Otherwise, an
-entry should be one of the following display methods:
-
-@table @asis
-@item @code{zero-width}
-Don't display the character.
-
-@item @code{thin-space}
-Display a thin space, 1-pixel wide on graphical displays, or
-1-character wide on text terminals.
-
-@item @code{empty-box}
-Display an empty box.
-
-@item @code{hex-code}
-Display a box containing the Unicode codepoint of the character, in
-hexadecimal notation.
-
-@item an @acronym{ASCII} string
-Display a box containing that string.
-@end table
-
-@noindent
-Except for @code{zero-width}, these methods display using the
-@code{glyphless-char} face.
-
-An entry can also be a cons cell @code{(@var{graphical}
-. @var{text})}, where @var{graphical} and @var{text} are the display
-methods on graphical displays and text terminals respectively.
-
-The char-table has one extra slot, which determines how to display any
-character that cannot be displayed with any available font, or cannot
-be encoded by the terminal's coding system. Its value should be one
-of the above display methods, except @code{zero-width} or a cons cell.
-@end defvar
-
-@defopt glyphless-char-display-control
-This user option provides a convenient way to set
-@code{glyphless-char-display} for groups of similar characters. It
-takes effect via a custom @code{:set} function (@pxref{Variable
-Definitions}), which update @code{glyphless-char-display}.
-
-Its value should be an alist of elements @code{(@var{group}
-. @var{method})}, where @var{group} is a symbol specifying a group of
-characters, and @var{method} is a symbol specifying how to display
-them.
-
-@var{group} should be one of the following:
-
-@table @code
-@item c0-control
-@acronym{ASCII} control characters @code{U+0000} to @code{U+001F},
-excluding the newline and tab characters (normally displayed as escape
-sequences like @samp{^A}; @pxref{Text Display,, How Text Is Displayed,
-emacs, The GNU Emacs Manual}).
-
-@item c1-control
-Non-@acronym{ASCII}, non-printing characters @code{U+0080} to
-@code{U+009F} (normally displayed as octal escape sequences like
-@samp{\230}).
-
-@item format-control
-Characters of Unicode General Category `Cf', such as @samp{U+200E}
-(Left-to-Right Mark), but excluding characters that have graphic
-images, such as @samp{U+00AD} (Soft Hyphen).
-
-@item no-font
-Characters for there is no suitable font, or which cannot be encoded
-by the terminal's coding system.
-@end table
-
-@c FIXME: this can also be `acronym', but that's not currently
-@c completely implemented; it applies only to the format-control
-@c group, and only works if the acronym is in `char-acronym-table'.
-The @var{method} symbol should be one of @code{zero-width},
-@code{thin-space}, @code{empty-box}, or @code{hex-code}. These have
-the same meanings as in @code{glyphless-char-display}, above.
-@end defopt
@comment -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1992-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1992-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
@c This file can also be used by an independent Edebug User
If Edebug detects a syntax error while instrumenting, it leaves point
at the erroneous code and signals an @code{invalid-read-syntax} error.
+@c FIXME? I can't see that it "leaves point at the erroneous code".
@xref{Edebug Eval}, for other evaluation functions available
inside of Edebug.
@item S
Stop: don't execute any more of the program, but wait for more
Edebug commands (@code{edebug-stop}).
+@c FIXME Does not work. http://debbugs.gnu.org/9764
@item @key{SPC}
Step: stop at the next stop point encountered (@code{edebug-step-mode}).
Run the program until the end of the containing sexp (@code{edebug-step-out}).
@item i
-Step into the function or macro called by the form after point.
+Step into the function or macro called by the form after point
+(@code{edebug-step-in}).
@end table
The @kbd{h} command proceeds to the stop point at or after the current
saved outside window configuration---so that even if you turn saving
back @emph{on}, the current window configuration remains unchanged when
you next exit Edebug (by continuing the program). However, the
-automatic redisplay of @samp{*edebug*} and @samp{*edebug-trace*} may
+automatic redisplay of @file{*edebug*} and @file{*edebug-trace*} may
conflict with the buffers you wish to see unless you have enough windows
open.
@node Edebug Eval
@subsection Evaluation
- While within Edebug, you can evaluate expressions ``as if'' Edebug
+ While within Edebug, you can evaluate expressions as if Edebug
were not running. Edebug tries to be invisible to the expression's
evaluation and printing. Evaluation of expressions that cause side
effects will work as expected, except for changes to data that Edebug
lexically bound symbols created by the following constructs in
@file{cl.el}: @code{lexical-let}, @code{macrolet}, and
@code{symbol-macrolet}.
+@c FIXME? What about lexical-binding = t?
@node Eval List
@subsection Evaluation List Buffer
- You can use the @dfn{evaluation list buffer}, called @samp{*edebug*}, to
+ You can use the @dfn{evaluation list buffer}, called @file{*edebug*}, to
evaluate expressions interactively. You can also set up the
@dfn{evaluation list} of expressions to be evaluated automatically each
time Edebug updates the display.
@table @kbd
@item E
-Switch to the evaluation list buffer @samp{*edebug*}
+Switch to the evaluation list buffer @file{*edebug*}
(@code{edebug-visit-eval-list}).
@end table
- In the @samp{*edebug*} buffer you can use the commands of Lisp
+ In the @file{*edebug*} buffer you can use the commands of Lisp
Interaction mode (@pxref{Lisp Interaction,,, emacs, The GNU Emacs
Manual}) as well as these special commands:
@end table
You can evaluate expressions in the evaluation list window with
-@kbd{C-j} or @kbd{C-x C-e}, just as you would in @samp{*scratch*};
+@kbd{C-j} or @kbd{C-x C-e}, just as you would in @file{*scratch*};
but they are evaluated in the context outside of Edebug.
The expressions you enter interactively (and their results) are lost
@kbd{C-c C-u}. You need not insert dashes in the comment line---its
contents don't matter.
-After selecting @samp{*edebug*}, you can return to the source code
-buffer with @kbd{C-c C-w}. The @samp{*edebug*} buffer is killed when
+After selecting @file{*edebug*}, you can return to the source code
+buffer with @kbd{C-c C-w}. The @file{*edebug*} buffer is killed when
you continue execution, and recreated next time it is needed.
@node Printing in Edebug
@cindex trace buffer
Edebug can record an execution trace, storing it in a buffer named
-@samp{*edebug-trace*}. This is a log of function calls and returns,
+@file{*edebug-trace*}. This is a log of function calls and returns,
showing the function names and their arguments and values. To enable
trace recording, set @code{edebug-trace} to a non-@code{nil} value.
arguments. @xref{Defining Macros}, for more explanation of
the @code{declare} form.
+@c See eg http://debbugs.gnu.org/10577
+@c FIXME Maybe there should be an Edebug option to get it to
+@c automatically load the entire source file containing the function
+@c being instrumented. That would avoid this.
+ Take care to ensure that the specifications are known to Edebug when
+you instrument code. If you are instrumenting a function from a file
+that uses @code{eval-when-compile} to require another file containing
+macro definitions, you may need to explicitly load that file.
+
You can also define an edebug specification for a macro separately
from the macro definition with @code{def-edebug-spec}. Adding
@code{debug} declarations is preferred, and more convenient, for macro
@dfn{specification keywords}, are symbols beginning with @samp{&} (such
as @code{&optional}).
-A specification list may contain sublists which match arguments that are
+A specification list may contain sublists, which match arguments that are
themselves lists, or it may contain vectors used for grouping. Sublists
and groups thus subdivide the specification list into a hierarchy of
levels. Specification keywords apply only to the remainder of the
All following elements in the specification list are optional; as soon
as one does not match, Edebug stops matching at this level.
-To make just a few elements optional followed by non-optional elements,
+To make just a few elements optional, followed by non-optional elements,
use @code{[&optional @var{specs}@dots{}]}. To specify that several
elements must all match or none, use @code{&optional
[@var{specs}@dots{}]}. See the @code{defun} example.
of them match, nothing is matched, but the @code{¬} specification
succeeds.
+@c FIXME &key?
+
@item &define
@c @kindex &define @r{(Edebug)}
Indicates that the specification is for a defining form. The defining
just as for macros. See the @code{defun} example.
Otherwise, the symbol should be a predicate. The predicate is called
-with the argument and the specification fails if the predicate returns
-@code{nil}, and the argument is not instrumented.
+with the argument, and if the predicate returns @code{nil}, the
+specification fails and the argument is not instrumented.
Some suitable predicates include @code{symbolp}, @code{integerp},
@code{stringp}, @code{vectorp}, and @code{atom}.
optional expression. In the specification below, notice the @code{gate}
inside of the sublist to prevent backtracking once a sublist is found.
-@c FIXME? The actual definition in edebug.el does not have a gate.
+@ignore
+@c FIXME? The actual definition in edebug.el looks like this (and always
+@c has AFAICS). In fact, nothing in edebug.el uses gate. So maybe
+@c this is just an example for illustration?
+(def-edebug-spec let
+ ((&rest
+ &or (symbolp &optional form) symbolp)
+ body))
+@end ignore
@example
(def-edebug-spec let
((&rest
@defopt edebug-setup-hook
Functions to call before Edebug is used. Each time it is set to a new
value, Edebug will call those functions once and then
-@code{edebug-setup-hook} is reset to @code{nil}. You could use this to
-load up Edebug specifications associated with a package you are using
+reset @code{edebug-setup-hook} to @code{nil}. You could use this to
+load up Edebug specifications associated with a package you are using,
but only when you also use Edebug.
@xref{Instrumenting}.
@end defopt
@defopt edebug-trace
If this is non-@code{nil}, trace each function entry and exit.
-Tracing output is displayed in a buffer named @samp{*edebug-trace*}, one
+Tracing output is displayed in a buffer named @file{*edebug-trace*}, one
function entry or exit per line, indented by the recursion level.
Also see @code{edebug-tracing}, in @ref{Trace Buffer}.
@xref{Edebug Execution Modes}.
@end defopt
-@c FIXME edebug-unwrap-results
+@defopt edebug-unwrap-results
+If non-@code{nil}, Edebug tries to remove any of its own
+instrumentation when showing the results of expressions. This is
+relevant when debugging macros where the results of expressions are
+themselves instrumented expressions. As a very artificial example,
+suppose that the example function @code{fac} has been instrumented,
+and consider a macro of the form:
+
+@c FIXME find a less silly example.
+@smallexample
+(defmacro test () "Edebug example."
+ (if (symbol-function 'fac)
+ @dots{}))
+@end smallexample
+
+If you instrument the @code{test} macro and step through it, then by
+default the result of the @code{symbol-function} call has numerous
+@code{edebug-after} and @code{edebug-before} forms, which can make it
+difficult to see the ``actual'' result. If
+@code{edebug-unwrap-results} is non-@code{nil}, Edebug tries to remove
+these forms from the result.
+@end defopt
@defopt edebug-on-error
Edebug binds @code{debug-on-error} to this value, if
* Functions:: A function is a Lisp program
that can be invoked from other functions.
* Macros:: Macros are a way to extend the Lisp language.
-* Customization:: Writing customization declarations.
+* Customization:: Making variables and faces customizable.
* Loading:: Reading files of Lisp code into Lisp.
* Byte Compilation:: Compilation makes programs run faster.
Appendices
-* Antinews:: Info for users downgrading to Emacs 22.
+* Antinews:: Info for users downgrading to Emacs 23.
* GNU Free Documentation License:: The license for this documentation.
* GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp.
* Group Definitions:: Writing customization group definitions.
* Variable Definitions:: Declaring user options.
* Customization Types:: Specifying the type of a user option.
+* Applying Customizations:: Functions to apply customization settings.
+* Custom Themes:: Writing Custom themes.
Customization Types
(reading buffer name, file name, etc.).
* Reading File Names:: Using completion to read file names and
shell commands.
-* Completion Styles:: Specifying rules for performing completion.
-* Programmed Completion:: Writing your own completion-function.
+* Completion Variables:: Variables controlling completion behavior.
+* Programmed Completion:: Writing your own completion function.
* Completion in Buffers:: Completing text in ordinary buffers.
Command Loop
* Buttons:: Adding clickable buttons to Emacs buffers.
* Abstract Display:: Emacs's Widget for Object Collections.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Usual Display:: The usual conventions for displaying
- nonprinting chars.
-* Display Tables:: How to specify other conventions.
+* Character Display:: How Emacs displays individual characters.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
* Bidirectional Display:: Display of bidirectional scripts, such as
Arabic and Farsi.
-* Glyphless Chars:: How glyphless characters are drawn.
The Echo Area
* Warning Variables:: Variables programs bind to customize
their warnings.
* Warning Options:: Variables users set to control display of warnings.
+* Delayed Warnings:: Deferring a warning until the end of a command.
Overlays
Faces
-* Defining Faces:: How to define a face with @code{defface}.
+* Defining Faces:: How to define a face.
* Face Attributes:: What is in a face?
* Attribute Functions:: Functions to examine and set face attributes.
* Displaying Faces:: How Emacs combines the faces specified for
* Abstract Display Functions:: Functions in the Ewoc package.
* Abstract Display Example:: Example of using Ewoc.
-Display Tables
+Character Display
-* Display Table Format:: What a display table consists of.
-* Active Display Table:: How Emacs selects a display table to use.
-* Glyphs:: How to define a glyph, and what glyphs mean.
+* Usual Display:: The usual conventions for displaying characters.
+* Display Tables:: What a display table consists of.
+* Active Display Table:: How Emacs selects a display table to use.
+* Glyphs:: How to define a glyph, and what glyphs mean.
+* Glyphless Chars:: How glyphless characters are drawn.
Operating System Interface
* Batch Mode:: Running Emacs without terminal interaction.
* Session Management:: Saving and restoring state with
X Session Management.
+* Notifications:: Desktop notifications.
+* Dynamic Libraries:: On-demand loading of support libraries.
Preparing Lisp code for distribution
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/errors
@node Standard Errors, Standard Keymaps, GNU Emacs Internals, Top
@appendix Standard Errors
@cindex standard errors
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1994, 1998, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 1998, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/eval
@node Evaluation, Control Structures, Symbols, Top
@chapter Evaluation
@cindex evaluation
expressions that were read, evaluated, and printed from buffers
(including the minibuffer) by the standard Emacs commands which do
this. (Note that this does @emph{not} include evaluation in
-@samp{*ielm*} buffers, nor evaluation using @kbd{C-j} in
+@file{*ielm*} buffers, nor evaluation using @kbd{C-j} in
@code{lisp-interaction-mode}.) The elements are ordered most recent
first.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/files
@node Files, Backups and Auto-Saving, Documentation, Top
@comment node-name, next, previous, up
@chapter Files
not exist, the return value is unspecified.
@end defun
-@defun file-subdir-of-p dir1 dir2
-This function returns @code{t} if directory @var{dir1} is a
-subdirectory of @var{dir2}, or if @var{dir1} and @var{dir2} are the
-same directory. It compares the @code{file-truename} values of the
-two directories (@pxref{Truenames}). If @var{dir2}
-do not name an existing directory, the return value is @code{nil}.
+@defun file-in-directory-p file dir
+This function returns @code{t} if @var{file} is a file in directory
+@var{dir}, or in a subdirectory of @var{dir}. It also returns
+@code{t} if @var{file} and @var{dir} are the same directory. It
+compares the @code{file-truename} values of the two directories
+(@pxref{Truenames}). If @var{dir} does not name an existing
+directory, the return value is @code{nil}.
@end defun
@node Truenames
results.
@c Wordy to avoid overfull hbox. --rjc 15mar92
-Here we assume that the environment variable @code{HOME}, which holds
+Here we assume that the environment variable @env{HOME}, which holds
the user's home directory name, has value @samp{/xcssun/users/rms}.
@example
the proper directory before calling @code{make-temp-file}.
@defopt temporary-file-directory
-@cindex @code{TMPDIR} environment variable
-@cindex @code{TMP} environment variable
-@cindex @code{TEMP} environment variable
+@cindex @env{TMPDIR} environment variable
+@cindex @env{TMP} environment variable
+@cindex @env{TEMP} environment variable
This variable specifies the directory name for creating temporary files.
Its value should be a directory name (@pxref{Directory Names}), but it
is good for Lisp programs to cope if the value is a directory's file
@code{expand-file-name} is a good way to achieve that.
The default value is determined in a reasonable way for your operating
-system; it is based on the @code{TMPDIR}, @code{TMP} and @code{TEMP}
+system; it is based on the @env{TMPDIR}, @env{TMP} and @env{TEMP}
environment variables, with a fall-back to a system-dependent name if
none of these variables is defined.
@code{file-name-nondirectory},
@code{file-name-sans-versions}, @code{file-newer-than-file-p},
@code{file-ownership-preserved-p},
-@code{file-readable-p}, @code{file-regular-p}, @code{file-subdir-of-p},
+@code{file-readable-p}, @code{file-regular-p}, @code{file-in-directory-p},
@code{file-symlink-p}, @code{file-truename}, @code{file-writable-p},
@code{file-equal-p}, @code{find-backup-file-name},
@c Not sure why it was here: @code{find-file-noselect},@*
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/frames
@node Frames, Positions, Windows, Top
@chapter Frames
@cindex frame
@item display
The display on which to open this frame. It should be a string of the
form @code{"@var{host}:@var{dpy}.@var{screen}"}, just like the
-@code{DISPLAY} environment variable.
+@env{DISPLAY} environment variable.
@vindex display-type, a frame parameter
@item display-type
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/functions
@node Functions, Macros, Variables, Top
@chapter Functions
@c -*-texinfo-*-
-@setfilename ../../info/gpl
@node GPL, Tips, GNU Free Documentation License, Top
@comment node-name, next, previous, up
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/hash
@node Hash Tables, Symbols, Sequences Arrays Vectors, Top
@chapter Hash Tables
@cindex hash tables
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/help
@node Documentation, Files, Modes, Top
@chapter Documentation
@cindex documentation strings
@c Wordy to prevent overfull hboxes. --rjc 15mar92
Here is an example of using the two functions, @code{documentation} and
@code{documentation-property}, to display the documentation strings for
-several symbols in a @samp{*Help*} buffer.
+several symbols in a @file{*Help*} buffer.
@anchor{describe-symbols example}
@smallexample
@group
(princ
(format "%s\t%s\n%s\n\n" s
- (if (user-variable-p s)
+ (if (custom-variable-p s)
"Option " "Variable")
@end group
@group
documentation string, or @code{nil}, for @var{symbol} as a function,
variable, etc.
-It also displays the symbols in a buffer named @samp{*Apropos*}, each
+It also displays the symbols in a buffer named @file{*Apropos*}, each
with a one-line description taken from the beginning of its
documentation string.
@defun help-buffer
This function returns the name of the help buffer, which is normally
-@samp{*Help*}; if such a buffer does not exist, it is first created.
+@file{*Help*}; if such a buffer does not exist, it is first created.
@end defun
@defmac with-help-window buffer-name body@dots{}
@end defmac
@defun help-setup-xref item interactive-p
-This function updates the cross reference data in the @samp{*Help*}
+This function updates the cross reference data in the @file{*Help*}
buffer, which is used to regenerate the help information when the user
clicks on the @samp{Back} or @samp{Forward} buttons. Most commands
-that use the @samp{*Help*} buffer should invoke this function before
+that use the @file{*Help*} buffer should invoke this function before
clearing the buffer. The @var{item} argument should have the form
@code{(@var{function} . @var{args})}, where @var{function} is a function
to call, with argument list @var{args}, to regenerate the help buffer.
The @var{interactive-p} argument is non-@code{nil} if the calling
command was invoked interactively; in that case, the stack of items
-for the @samp{*Help*} buffer's @samp{Back} buttons is cleared.
+for the @file{*Help*} buffer's @samp{Back} buttons is cleared.
@end defun
@xref{describe-symbols example}, for an example of using
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1993, 1998, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/hooks
@node Standard Hooks, Index, Standard Keymaps, Top
@appendix Standard Hooks
@cindex standard hooks
@c -*-texinfo-*-
-@setfilename ../../info/index
@c Indexing guidelines
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1993, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/internals
@node GNU Emacs Internals, Standard Errors, Tips, Top
@comment node-name, next, previous, up
@appendix GNU Emacs Internals
@c -*-coding: iso-latin-1-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/intro
@node Introduction, Lisp Data Types, Top, Top
@comment node-name, next, previous, up
Many of the examples in this manual print text when they are
evaluated. If you execute example code in a Lisp Interaction buffer
-(such as the buffer @samp{*scratch*}), the printed text is inserted into
+(such as the buffer @file{*scratch*}), the printed text is inserted into
the buffer. If you execute the example by other means (such as by
evaluating the function @code{eval-region}), the printed text is
displayed in the echo area.
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1994, 1998-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/keymaps
@node Keymaps, Modes, Command Loop, Top
@chapter Keymaps
@cindex keymap
@kbd{C-x l}.
Key sequences containing function keys, mouse button events, or
-non-ASCII characters such as @kbd{C-=} or @kbd{H-a} cannot be
+non-@acronym{ASCII} characters such as @kbd{C-=} or @kbd{H-a} cannot be
represented as strings; they have to be represented as vectors.
In the vector representation, each element of the vector represents
@defun current-local-map
This function returns the current buffer's local keymap, or @code{nil}
if it has none. In the following example, the keymap for the
-@samp{*scratch*} buffer (using Lisp Interaction mode) is a sparse keymap
+@file{*scratch*} buffer (using Lisp Interaction mode) is a sparse keymap
in which the entry for @key{ESC}, @acronym{ASCII} code 27, is another sparse
keymap.
@deffn Command describe-bindings &optional prefix buffer-or-name
This function creates a listing of all current key bindings, and
-displays it in a buffer named @samp{*Help*}. The text is grouped by
+displays it in a buffer named @file{*Help*}. The text is grouped by
modes---minor modes first, then the major mode, then global bindings.
If @var{prefix} is non-@code{nil}, it should be a prefix key; then the
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/lists
@node Lists, Sequences Arrays Vectors, Strings and Characters, Top
@chapter Lists
@cindex lists
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/loading
@node Loading, Byte Compilation, Customization, Top
@chapter Loading
@cindex loading
in a list of directories specified by the variable @code{load-path}.
@defvar load-path
-@cindex @code{EMACSLOADPATH} environment variable
+@cindex @env{EMACSLOADPATH} environment variable
The value of this variable is a list of directories to search when
loading files with @code{load}. Each element is a string (which must be
a directory name) or @code{nil} (which stands for the current working
inserting them in unibyte buffers converts them to unibyte
automatically. However, if this does make a difference, you can force
a particular Lisp file to be interpreted as unibyte by writing
-@samp{-*-unibyte: t;-*-} in a comment on the file's first line. With
+@samp{unibyte: t} in a local variables section. With
that designator, the file will unconditionally be interpreted as
unibyte, even in an ordinary multibyte Emacs session. This can matter
when making keybindings to non-@acronym{ASCII} characters written as
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/macros
@node Macros, Customization, Functions, Top
@chapter Macros
@cindex macros
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1993, 1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/maps
@node Standard Keymaps, Standard Hooks, Standard Errors, Top
@appendix Standard Keymaps
@cindex keymaps, standard
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/markers
@node Markers, Text, Positions, Top
@chapter Markers
@cindex markers
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/minibuf
@node Minibuffers, Command Loop, Read and Print, Top
@chapter Minibuffers
@cindex arguments, reading
(reading buffer name, file name, etc.).
* Reading File Names:: Using completion to read file names and
shell commands.
-* Completion Styles:: Specifying rules for performing completion.
-* Programmed Completion:: Writing your own completion-function.
+* Completion Variables:: Variables controlling completion behavior.
+* Programmed Completion:: Writing your own completion function.
* Completion in Buffers:: Completing text in ordinary buffers.
@end menu
@defun test-completion string collection &optional predicate
@anchor{Definition of test-completion}
This function returns non-@code{nil} if @var{string} is a valid
-completion possibility specified by @var{collection} and
+completion alternative specified by @var{collection} and
@var{predicate}. The arguments are the same as in
@code{try-completion}. For instance, if @var{collection} is a list of
strings, this is true if @var{string} appears in the list and
They are described in the following section.
@end defun
+@defvar completing-read-function
+The value of this variable must be a function, which is called by
+@code{completing-read} to actually do its work. It should accept the
+same arguments as @code{completing-read}. This can be bound to a
+different function to completely override the normal behavior of
+@code{completing-read}.
+@end defvar
+
@node Completion Commands
@subsection Minibuffer Commands that Do Completion
the @var{collection} argument, and the value of
@code{minibuffer-completion-predicate} as the @var{predicate} argument.
The list of completions is displayed as text in a buffer named
-@samp{*Completions*}.
+@file{*Completions*}.
@end deffn
@defun display-completion-list completions &optional common-substring
returns @code{fill-prefix}.
In general, @code{read-variable} is similar to @code{read-command},
-but uses the predicate @code{user-variable-p} instead of
+but uses the predicate @code{custom-variable-p} instead of
@code{commandp}:
-@cindex @code{user-variable-p} example
+@cindex @code{custom-variable-p} example
@example
@group
(read-variable @var{prompt})
@equiv{}
(intern
(completing-read @var{prompt} obarray
- 'user-variable-p t nil))
+ 'custom-variable-p t nil))
@end group
@end example
@end defun
file name is required.
The optional argument @var{require-match} has the same meaning as in
-@code{completing-read}. @xref{Minibuffer Completion}. If
-@var{require-match} is @code{nil}, the local keymap in the minibuffer
-is @code{minibuffer-local-filename-completion-map}; otherwise, it is
-@code{minibuffer-local-filename-must-match-map}. @xref{Completion
-Commands}.
+@code{completing-read}. @xref{Minibuffer Completion}.
The argument @var{directory} specifies the directory to use for
completing relative file names. It should be an absolute directory
If @var{predicate} is non-@code{nil}, it specifies a function of one
argument that decides which file names are acceptable completion
-possibilities. A file name is an acceptable value if @var{predicate}
+alternatives. A file name is an acceptable value if @var{predicate}
returns non-@code{nil} for it.
Here is an example of using @code{read-file-name}:
@defun read-directory-name prompt &optional directory default require-match initial
This function is like @code{read-file-name} but allows only directory
-names as completion possibilities.
+names as completion alternatives.
If @var{default} is @code{nil} and @var{initial} is non-@code{nil},
@code{read-directory-name} constructs a substitute default by
command and file names that are part of a shell command.
@end defvar
-@node Completion Styles
-@subsection Completion Styles
-@cindex completion styles
+@node Completion Variables
+@subsection Completion Variables
- A @dfn{completion style} is a set of rules for generating
-completions. The user option @code{completion-styles} stores a list
-of completion styles, which are represented by symbols.
+ Here are some variables which can be used to alter the default
+completion behavior.
+@cindex completion styles
@defopt completion-styles
-This is a list of completion style symbols to use for performing
-completion. Each completion style in this list must be defined in
-@code{completion-styles-alist}.
+The value of this variable is a list of completion style (symbols) to
+use for performing completion. A @dfn{completion style} is a set of
+rules for generating completions. Each symbol in occurring this list
+must have a corresponding entry in @code{completion-styles-alist}.
@end defopt
@defvar completion-styles-alist
This variable stores a list of available completion styles. Each
-element in the list must have the form @samp{(@var{name}
-@var{try-completion} @var{all-completions})}. Here, @var{name} is the
-name of the completion style (a symbol), which may be used in
-@code{completion-styles-alist} to refer to this style.
-
-@var{try-completion} is the function that does the completion, and
-@var{all-completions} is the function that lists the completions.
-These functions should accept four arguments: @var{string},
-@var{collection}, @var{predicate}, and @var{point}. The @var{string},
-@var{collection}, and @var{predicate} arguments have the same meanings
-as in @code{try-completion} (@pxref{Basic Completion}), and the
-@var{point} argument is the position of point within @var{string}.
-Each function should return a non-@code{nil} value if it performed its
-job, and @code{nil} if it did not (e.g., if there is no way to
-complete @var{string} according to the completion style).
-
-When the user calls a completion command, such as
+element in the list has the form
+
+@example
+(@var{style} @var{try-completion} @var{all-completions} @var{doc})
+@end example
+
+@noindent
+Here, @var{style} is the name of the completion style (a symbol),
+which may be used in the @code{completion-styles} variable to refer to
+this style; @var{try-completion} is the function that does the
+completion; @var{all-completions} is the function that lists the
+completions; and @var{doc} is a string describing the completion
+style.
+
+The @var{try-completion} and @var{all-completions} functions should
+each accept four arguments: @var{string}, @var{collection},
+@var{predicate}, and @var{point}. The @var{string}, @var{collection},
+and @var{predicate} arguments have the same meanings as in
+@code{try-completion} (@pxref{Basic Completion}), and the @var{point}
+argument is the position of point within @var{string}. Each function
+should return a non-@code{nil} value if it performed its job, and
+@code{nil} if it did not (e.g.@: if there is no way to complete
+@var{string} according to the completion style).
+
+When the user calls a completion command like
@code{minibuffer-complete} (@pxref{Completion Commands}), Emacs looks
for the first style listed in @code{completion-styles} and calls its
@var{try-completion} function. If this function returns @code{nil},
-Emacs moves to the next completion style listed in
-@code{completion-styles} and calls its @var{try-completion} function,
-and so on until one of the @var{try-completion} functions successfully
-performs completion and returns a non-@code{nil} value. A similar
-procedure is used for listing completions, via the
-@var{all-completions} functions.
+Emacs moves to the next listed completion style and calls its
+@var{try-completion} function, and so on until one of the
+@var{try-completion} functions successfully performs completion and
+returns a non-@code{nil} value. A similar procedure is used for
+listing completions, via the @var{all-completions} functions.
+
+@xref{Completion Styles,,, emacs, The GNU Emacs Manual}, for a
+description of the available completion styles.
@end defvar
- By default, @code{completion-styles-alist} contains five pre-defined
-completion styles: @code{basic}, a basic completion style;
-@code{partial-completion}, which does partial completion (completing
-each word in the input separately); @code{emacs22}, which performs
-completion according to the rules used in Emacs 22; @code{emacs21},
-which performs completion according to the rules used in Emacs 21; and
-@code{initials}, which completes acronyms and initialisms.
+@defopt completion-category-overrides
+This variable specifies special completion styles and other completion
+behaviors to use when completing certain types of text. Its value
+should be a list of the form @code{(@var{category} . @var{alist})}.
+@var{category} is a symbol describing what is being completed;
+currently, the @code{buffer} and @code{file} categories are defined,
+but others can be defined via specialized completion functions
+(@pxref{Programmed Completion}). @var{alist} is an association list
+describing how completion should behave for the corresponding
+category. The following alist keys are supported:
+
+@table @code
+@item styles
+The value should be a list of completion styles (symbols).
+
+@item cycle
+The value should be a value for @code{completion-cycle-threshold}
+(@pxref{Completion Options,,, emacs, The GNU Emacs Manual}) for this
+category.
+@end table
+
+@noindent
+Additional alist entries may be defined in the future.
+@end defopt
+
+@defvar completion-extra-properties
+This variable is used to specify extra properties of the current
+completion command. It is intended to be let-bound by specialized
+completion commands. Its value should be a list of property and value
+pairs. The following properties are supported:
+
+@table @code
+@item :annotation-function
+The value should be a function to add annotations in the completions
+buffer. This function must accept one argument, a completion, and
+should either return @code{nil} or a string to be displayed next to
+the completion.
+
+@item :exit-function
+The value should be a function to run after performing completion.
+The function should accept two arguments, @var{string} and
+@var{status}, where @var{string} is the text to which the field was
+completed and @var{status} indicates what kind of operation happened:
+@code{finished} if text is now complete, @code{sole} if the text
+cannot be further completed but completion is not finished, or
+@code{exact} if the text is a valid completion but may be further
+completed.
+@end table
+@end defvar
@node Programmed Completion
@subsection Programmed Completion
The string to be completed.
@item
-The predicate function to filter possible matches, or @code{nil} if
-none. Your function should call the predicate for each possible match,
-and ignore the possible match if the predicate returns @code{nil}.
-
-@item
-A flag specifying the type of operation. The best way to think about
-it is that the function stands for an object (in the
-``object-oriented'' sense of the word), and this third argument
-specifies which method to run.
-@end itemize
+A predicate function with which to filter possible matches, or
+@code{nil} if none. The function should call the predicate for each
+possible match, and ignore the match if the predicate returns
+@code{nil}.
- There are currently four methods, i.e. four flag values, one for
-each of the four different basic operations:
-
-@itemize @bullet
@item
-@code{nil} specifies @code{try-completion}. The completion function
-should return the completion of the specified string, or @code{t} if the
-string is a unique and exact match already, or @code{nil} if the string
-matches no possibility.
-
-If the string is an exact match for one possibility, but also matches
-other longer possibilities, the function should return the string, not
-@code{t}.
+A flag specifying the type of completion operation to perform. This
+is one of the following four values:
-@item
-@code{t} specifies @code{all-completions}. The completion function
+@table @code
+@item nil
+This specifies a @code{try-completion} operation. The function should
+return @code{t} if the specified string is a unique and exact match;
+if there is more than one match, it should return the common substring
+of all matches (if the string is an exact match for one completion
+alternative but also matches other longer alternatives, the return
+value is the string); if there are no matches, it should return
+@code{nil}.
+
+@item t
+This specifies an @code{all-completions} operation. The function
should return a list of all possible completions of the specified
string.
-@item
-@code{lambda} specifies @code{test-completion}. The completion
-function should return @code{t} if the specified string is an exact
-match for some possibility; @code{nil} otherwise.
+@item lambda
+This specifies a @code{test-completion} operation. The function
+should return @code{t} if the specified string is an exact match for
+some completion alternative; @code{nil} otherwise.
+
+@item (boundaries . @var{suffix})
+This specifies a @code{completion-boundaries} operation. The function
+should return @code{(boundaries START . END)}, where START is the
+position of the beginning boundary in the specified string, and END is
+the position of the end boundary in SUFFIX.
+
+@item metadata
+This specifies a request for information about the state of the
+current completion. The function should return an alist, as described
+below. The alist may contain any number of elements.
+@end table
-@item
-@code{(boundaries . SUFFIX)} specifies @code{completion-boundaries}.
-The function should return a value of the form @code{(boundaries
-START . END)} where START is the position of the beginning boundary
-in the string to complete, and END is the position of the end boundary
-in SUFFIX.
+@noindent
+If the flag has any other value, the completion function should return
+@code{nil}.
@end itemize
+The following is a list of metadata entries that a completion function
+may return in response to a @code{metadata} flag argument:
+
+@table @code
+@item category
+The value should be a symbol describing what kind of text the
+completion function is trying to complete. If the symbol matches one
+of the keys in @code{completion-category-overrides}, the usual
+completion behavior is overridden. @xref{Completion Variables}.
+
+@item annotation-function
+The value should be a function for @dfn{annotating} completions. The
+function should take one argument, @var{string}, which is a possible
+completion. It should return a string, which is displayed after the
+completion @var{string} in the @file{*Completions*} buffer.
+
+@item display-sort-function
+The value should be a function for sorting completions. The function
+should take one argument, a list of completion strings, and return a
+sorted list of completion strings. It is allowed to alter the input
+list destructively.
+
+@item cycle-sort-function
+The value should be a function for sorting completions, when
+@code{completion-cycle-threshold} is non-@code{nil} and the user is
+cycling through completion alternatives. @xref{Completion Options,,,
+emacs, The GNU Emacs Manual}. Its argument list and return value are
+the same as for @code{display-sort-function}.
+@end table
+
@defun completion-table-dynamic function
This function is a convenient way to write a function that can act as
programmed completion function. The argument @var{function} should be
and the interface for programmed completion functions.
@end defun
-@defvar completion-annotate-function
-The value of this variable, if non-@code{nil}, should be a function
-for ``annotating'' the entries in the @samp{*Completions*} buffer.
-The function should accept a single argument, the completion string
-for an entry. It should return an additional string to display next
-to that entry in the @samp{*Completions*} buffer, or @code{nil} if no
-additional string is to be displayed.
-
-The function can determine the collection used for the current
-completion via the variable @code{minibuffer-completion-table}
-(@pxref{Completion Commands}).
-@end defvar
-
@node Completion in Buffers
@subsection Completion in Ordinary Buffers
@cindex inline completion
@code{try-completion} (@pxref{Basic Completion}); completion
alternatives will be generated from this completion table in the usual
way, via the completion styles defined in @code{completion-styles}
-(@pxref{Completion Styles}). @var{props} is a property list for
-additional information; the following optional properties are
-recognized:
+(@pxref{Completion Variables}). @var{props} is a property list for
+additional information; any of the properties in
+@code{completion-extra-properties} are recognized (@pxref{Completion
+Variables}), as well as the following additional ones:
@table @code
@item :predicate
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/modes
@node Modes, Documentation, Keymaps, Top
@chapter Major and Minor Modes
@cindex mode
This function sets the major mode of @var{buffer} to the default value of
@code{major-mode}; if that is @code{nil}, it uses the
current buffer's major mode (if that is suitable). As an exception,
-if @var{buffer}'s name is @samp{*scratch*}, it sets the mode to
+if @var{buffer}'s name is @file{*scratch*}, it sets the mode to
@code{initial-major-mode}.
The low-level primitives for creating buffers do not use this function,
@end defun
@defopt initial-major-mode
-@cindex @samp{*scratch*}
+@cindex @file{*scratch*}
The value of this variable determines the major mode of the initial
-@samp{*scratch*} buffer. The value should be a symbol that is a major
+@file{*scratch*} buffer. The value should be a symbol that is a major
mode command. The default value is @code{lisp-interaction-mode}.
@end defopt
(@pxref{Reverting}).
An example of a major mode derived from Special mode is Buffer Menu
-mode, which is used by the @samp{*Buffer List*} buffer. @xref{List
+mode, which is used by the @file{*Buffer List*} buffer. @xref{List
Buffers,,Listing Existing Buffers, emacs, The GNU Emacs Manual}.
@end deffn
One of the effects of making a minor mode global is that the
@var{mode} variable becomes a customization variable. Toggling it
-through the Custom interface turns the mode on and off, and its value
-can be saved for future Emacs sessions (@pxref{Saving
+through the Customize interface turns the mode on and off, and its
+value can be saved for future Emacs sessions (@pxref{Saving
Customizations,,, emacs, The GNU Emacs Manual}. For the saved
variable to work, you should ensure that the @code{define-minor-mode}
form is evaluated each time Emacs starts; for packages that are not
in Fundamental mode.
This defines the customization option @var{global-mode} (@pxref{Customization}),
-which can be toggled in the Custom interface to turn the minor mode on
+which can be toggled in the Customize interface to turn the minor mode on
and off. As with @code{define-minor-mode}, you should ensure that the
@code{define-globalized-minor-mode} form is evaluated each time Emacs
starts, for example by providing a @code{:require} keyword.
This buffer-local variable contains the mode line information on process
status in modes used for communicating with subprocesses. It is
displayed immediately following the major mode name, with no intervening
-space. For example, its value in the @samp{*shell*} buffer is
+space. For example, its value in the @file{*shell*} buffer is
@code{(":%s")}, which allows the shell to display its status along
with the major mode as: @samp{(Shell:run)}. Normally this variable
is @code{nil}.
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/characters
@node Non-ASCII Characters, Searching and Matching, Text, Top
@chapter Non-@acronym{ASCII} Characters
@cindex multibyte characters
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/numbers
@node Numbers, Strings and Characters, Lisp Data Types, Top
@chapter Numbers
@cindex integers
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/objects
@node Lisp Data Types, Numbers, Introduction, Top
@chapter Lisp Data Types
@cindex object
In addition to the specific escape sequences for special important
control characters, Emacs provides several types of escape syntax that
-you can use to specify non-ASCII text characters.
+you can use to specify non-@acronym{ASCII} text characters.
@cindex unicode character escape
You can specify characters by their Unicode values.
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/os
@node System Interface, Packaging, Display, Top
@chapter Operating System Interface
* X11 Keysyms:: Operating on key symbols for X Windows.
* Batch Mode:: Running Emacs without terminal interaction.
* Session Management:: Saving and restoring state with X Session Management.
+* Notifications:: Desktop notifications.
* Dynamic Libraries:: On-demand loading of support libraries.
@end menu
@c set-locale-environment
@item
It sets the language environment and the terminal coding system,
-if requested by environment variables such as @code{LANG}.
+if requested by environment variables such as @env{LANG}.
@item
It does some basic parsing of the command-line arguments.
It runs the normal hook @code{before-init-hook}.
@item
-If appropriate (e.g., not in batch mode or started as a daemon), it
-creates a graphical frame.
+If appropriate, it creates a graphical frame. This is not done if the
+options @samp{--batch} or @samp{--daemon} were specified.
@item
It initializes the initial frame's faces, and sets up the menu bar
It runs the normal hook @code{after-init-hook}.
@item
-If the buffer @samp{*scratch*} exists and is still in Fundamental mode
+If the buffer @file{*scratch*} exists and is still in Fundamental mode
(as it should be by default), it sets its major mode according to
@code{initial-major-mode}.
@item
If @code{initial-buffer-choice} is a string, it visits the file with
-that name. Furthermore, if the @samp{*scratch*} buffer exists and is
+that name. If the @file{*scratch*} buffer exists and is
empty, it inserts @code{initial-scratch-message} into that buffer.
@c To make things nice and confusing, the next three items can be
@item
It displays the @dfn{startup screen}, which is a special buffer that
contains information about copyleft and basic Emacs usage. This is
-not done if @code{initial-buffer-choice} or
-@code{inhibit-startup-screen} are @code{nil}, nor if the
-@samp{--no-splash} or @samp{-Q} command-line options were specified.
+not done if @code{inhibit-startup-screen} or @code{initial-buffer-choice}
+are non-@code{nil}, or if the @samp{--no-splash} or @samp{-Q} command-line
+options were specified.
@c End of command-line-1.
@defopt inhibit-startup-screen
This variable, if non-@code{nil}, inhibits the startup screen. In
-that case, Emacs typically displays the @samp{*scratch*} buffer; but
+that case, Emacs typically displays the @file{*scratch*} buffer; but
see @code{initial-buffer-choice}, below.
Do not set this variable in the init file of a new user, or in a way
@end defopt
@defopt initial-buffer-choice
-This variable, if non-@code{nil}, determines a file or buffer for
-Emacs to display after starting up, instead of the startup screen.
+If non-@code{nil}, this variable is a string that specifies a file or
+directory for Emacs to display after starting up, instead of the
+startup screen.
@ignore
@c I do not think this should be mentioned. AFAICS it is just a dodge
@c around inhibit-startup-screen not being settable on a site-wide basis.
-If its value is @code{t}, Emacs displays the @samp{*scratch*} buffer.
+If its value is @code{t}, Emacs displays the @file{*scratch*} buffer.
@end ignore
-If its value is a string, that specifies the name of a file for Emacs to
-visit.
@end defopt
@defopt inhibit-startup-echo-area-message
Emacs explicitly checks for an expression as shown above in your init
file; your login name must appear in the expression as a Lisp string
-constant. You can also use the Custom interface. Other methods of setting
-@code{inhibit-startup-echo-area-message} to the same value do not
-inhibit the startup message. This way, you can easily inhibit the
+constant. You can also use the Customize interface. Other methods of
+setting @code{inhibit-startup-echo-area-message} to the same value do
+not inhibit the startup message. This way, you can easily inhibit the
message for yourself if you wish, but thoughtless copying of your init
file will not inhibit the message for someone else.
@end defopt
@defopt initial-scratch-message
This variable, if non-@code{nil}, should be a string, which is
-inserted into the @samp{*scratch*} buffer when Emacs starts up. If it
-is @code{nil}, the @samp{*scratch*} buffer is empty.
+inserted into the @file{*scratch*} buffer when Emacs starts up. If it
+is @code{nil}, the @file{*scratch*} buffer is empty.
@end defopt
@noindent
stronger @samp{-Q}) says not to load an init file, while @samp{-u
@var{user}} says to load @var{user}'s init file instead of yours.
@xref{Entering Emacs,,, emacs, The GNU Emacs Manual}. If neither
-option is specified, Emacs uses the @code{LOGNAME} environment
-variable, or the @code{USER} (most systems) or @code{USERNAME} (MS
+option is specified, Emacs uses the @env{LOGNAME} environment
+variable, or the @env{USER} (most systems) or @env{USERNAME} (MS
systems) variable, to find your home directory and thus your init
file; this way, even if you have su'd, Emacs still loads your own init
file. If those environment variables are absent, though, Emacs uses
the standard search path for libraries (@pxref{How Programs Do
Loading}). The Emacs distribution does not come with this file; it is
intended for local customizations. If the default init file exists,
-it is loaded whenever you start Emacs, except in batch mode or if
-@samp{-q} (or @samp{-Q}) is specified. But your own personal init
+it is loaded whenever you start Emacs. But your own personal init
file, if any, is loaded first; if it sets @code{inhibit-default-init}
to a non-@code{nil} value, then Emacs does not subsequently load the
-@file{default.el} file.
+@file{default.el} file. In batch mode, or if you specify @samp{-q}
+(or @samp{-Q}), Emacs loads neither your personal init file nor
+the default init file.
Another file for site-customization is @file{site-start.el}. Emacs
loads this @emph{before} the user's init file. You can inhibit the
user's init file. Its normal value is @code{"site-start"}. The only
way you can change it with real effect is to do so before dumping
Emacs.
+@c So why even mention it here. I imagine it is almost never changed.
@end defopt
@xref{Init Examples,, Init File Examples, emacs, The GNU Emacs Manual}, for
@file{.emacs} file.
@defopt inhibit-default-init
-This variable prevents Emacs from loading the default initialization
-library file for your session of Emacs. If its value is non-@code{nil},
-then the default library is not loaded. The default value is
-@code{nil}.
+If this variable is non-@code{nil}, it prevents Emacs from loading the
+default initialization library file. The default value is @code{nil}.
@end defopt
@defvar before-init-hook
This normal hook is run, once, just before loading all the init files
-(the user's init file, @file{default.el}, and/or @file{site-start.el}).
+(@file{site-start.el}, your init file, and @file{default.el}).
(The only way to change it with real effect is before dumping Emacs.)
@end defvar
@defvar after-init-hook
This normal hook is run, once, just after loading all the init files
-(the user's init file, @file{default.el}, and/or @file{site-start.el}),
-before loading the terminal-specific library and processing the
-command-line action arguments.
+(@file{site-start.el}, your init file, and @file{default.el}),
+before loading the terminal-specific library (if started on a text
+terminal) and processing the command-line action arguments.
@end defvar
@defvar emacs-startup-hook
This normal hook is run, once, just after handling the command line
-arguments, just before @code{term-setup-hook}.
+arguments, just before @code{term-setup-hook}. In batch mode, Emacs
+does not run either of these hooks.
@end defvar
@defvar user-init-file
@defvar user-emacs-directory
This variable holds the name of the @file{.emacs.d} directory. It is
-ordinarily @file{~/.emacs.d}, but differs on some platforms.
+@file{~/.emacs.d} on all platforms but MS-DOS.
@end defvar
@node Terminal-Specific
Each terminal type can have its own Lisp library that Emacs loads when
run on that type of terminal. The library's name is constructed by
concatenating the value of the variable @code{term-file-prefix} and the
-terminal type (specified by the environment variable @code{TERM}).
+terminal type (specified by the environment variable @env{TERM}).
Normally, @code{term-file-prefix} has the value
@code{"term/"}; changing this is not recommended. Emacs finds the file
in the normal manner, by searching the @code{load-path} directories, and
does not specify all the terminal's function keys. @xref{Terminal
Input}.
- When the name of the terminal type contains a hyphen, and no library
+ When the name of the terminal type contains a hyphen or underscore, and no library
is found whose name is identical to the terminal's name, Emacs strips
-from the terminal's name the last hyphen and everything that follows
+from the terminal's name the last hyphen or underscore and everything that follows
it, and tries again. This process is repeated until Emacs finds a
-matching library, or until there are no more hyphens in the name
-(i.g.@: there is no terminal-specific library). For example, if the
+matching library, or until there are no more hyphens or underscores in the name
+(i.e.@: there is no terminal-specific library). For example, if the
terminal name is @samp{xterm-256color} and there is no
@file{term/xterm-256color.el} library, Emacs tries to load
@file{term/xterm.el}. If necessary, the terminal library can evaluate
You can also arrange to override some of the actions of the
terminal-specific library by setting the variable
-@code{term-setup-hook}. This is a normal hook which Emacs runs using
-@code{run-hooks} at the end of Emacs initialization, after loading both
-your init file and any terminal-specific libraries. You can
-use this variable to define initializations for terminals that do not
+@code{term-setup-hook}. This is a normal hook that Emacs runs
+at the end of its initialization, after loading both
+your init file and any terminal-specific libraries. You could
+use this hook to define initializations for terminals that do not
have their own libraries. @xref{Hooks}.
@defvar term-file-prefix
-@cindex @code{TERM} environment variable
+@cindex @env{TERM} environment variable
If the value of this variable is non-@code{nil}, Emacs loads a
terminal-specific initialization file as follows:
@noindent
You may set the @code{term-file-prefix} variable to @code{nil} in your
init file if you do not wish to load the
-terminal-initialization file. To do this, put the following in
-your init file: @code{(setq term-file-prefix nil)}.
+terminal-initialization file.
-On MS-DOS, if the environment variable @code{TERM} is not set, Emacs
-uses @samp{internal} as the terminal type.
+On MS-DOS, Emacs sets the @env{TERM} environment variable to @samp{internal}.
@end defvar
@defvar term-setup-hook
You can use @code{term-setup-hook} to override the definitions made by a
terminal-specific file.
-@end defvar
- See @code{window-setup-hook} in @ref{Window Systems}, for a related
-feature.
+For a related feature, @pxref{Window Systems, window-setup-hook}.
+@end defvar
@node Command-Line Arguments
@subsection Command-Line Arguments
@cindex command-line arguments
You can use command-line arguments to request various actions when
-you start Emacs. Command-line arguments should not be commonly used,
-since the recommended way of using Emacs is to start it just once,
-after logging in, and do all editing in the same Emacs session
-(@pxref{Entering Emacs,,, emacs, The GNU Emacs Manual}); nonetheless,
-they can be useful when invoking Emacs from session scripts or
-debugging Emacs itself. This section describes how Emacs processes
-command-line arguments.
+you start Emacs. Note that the recommended way of using Emacs is to
+start it just once, after logging in, and then do all editing in the same
+Emacs session (@pxref{Entering Emacs,,, emacs, The GNU Emacs Manual}).
+For this reason, you might not use command-line arguments very often;
+nonetheless, they can be useful when invoking Emacs from session
+scripts or debugging Emacs. This section describes how Emacs
+processes command-line arguments.
@defun command-line
This function parses the command line that Emacs was called with,
-processes it, loads the user's init file and displays the
-startup messages.
+processes it, and (amongst other things) loads the user's init file and
+displays the startup messages.
@end defun
@defvar command-line-processed
@cindex switches on command line
@cindex options on command line
@cindex command-line options
-The value of this variable is an alist of user-defined command-line
-options and associated handler functions. This variable exists so you
-can add elements to it.
+This variable is an alist of user-defined command-line options and
+associated handler functions. By default it is empty, but you can
+add elements if you wish.
A @dfn{command-line option} is an argument on the command line, which
has the form:
@defvar command-line-args-left
@vindex argv
The value of this variable is the list of command-line arguments that
-have not yet been processed. @code{argv} is an alias for this.
+have not yet been processed.
+@c Don't mention this, since it is a "bad name for a dynamically bound variable"
+@c @code{argv} is an alias for this.
@end defvar
@defvar command-line-functions
argument. If it has also dealt with some of the following arguments, it
can indicate that by deleting them from @code{command-line-args-left}.
-If all of these functions return @code{nil}, then the argument is used
+If all of these functions return @code{nil}, then the argument is treated
as a file name to visit.
@end defvar
There are two ways to get out of Emacs: you can kill the Emacs job,
which exits permanently, or you can suspend it, which permits you to
-reenter the Emacs process later.
+reenter the Emacs process later. (In a graphical environment, you can
+of course simply switch to another application without doing anything
+special to Emacs, then switch back to Emacs when you want.)
@menu
* Killing Emacs:: Exiting Emacs irreversibly.
@subsection Killing Emacs
@cindex killing Emacs
- Killing Emacs means ending the execution of the Emacs process. The
-parent process normally resumes control. The low-level primitive for
-killing Emacs is @code{kill-emacs}.
+ Killing Emacs means ending the execution of the Emacs process.
+If you started Emacs from a terminal, the parent process normally
+resumes control. The low-level primitive for killing Emacs is
+@code{kill-emacs}.
@deffn Command kill-emacs &optional exit-data
This command calls the hook @code{kill-emacs-hook}, then exits the
Suspending works only on a terminal device from which the Emacs
session was started. We call that device the @dfn{controlling
terminal} of the session. Suspending is not allowed if the
-controlling terminal is a graphical terminal.
-
- Some operating systems do not support suspension of jobs; on these
-systems, ``suspension'' actually creates a new shell temporarily as a
-subprocess of Emacs. Then you would exit the shell to return to Emacs.
+controlling terminal is a graphical terminal. Suspending is usually
+not relevant in graphical environments, since you can simply switch to
+another application without doing anything special to Emacs.
+
+@c FIXME? Are there any systems Emacs still supports that do not
+@c have SIGTSTP?
+@cindex SIGTSTP
+ Some operating systems (those without @code{SIGTSTP}, or MS-DOS) do
+not support suspension of jobs; on these systems, ``suspension''
+actually creates a new shell temporarily as a subprocess of Emacs.
+Then you would exit the shell to return to Emacs.
@deffn Command suspend-emacs &optional string
This function stops Emacs and returns control to the superior process.
@xref{Multiple Terminals}.
If @var{string} is non-@code{nil}, its characters are sent to Emacs's
-superior shell, to be read as terminal input. The characters in
-@var{string} are not echoed by the superior shell; only the results
-appear.
+superior shell, to be read as terminal input.
+@c FIXME? It seems to me that shell does echo STRING.
+The characters in @var{string} are not echoed by the superior shell;
+only the results appear.
Before suspending, @code{suspend-emacs} runs the normal hook
@code{suspend-hook}. After the user resumes Emacs,
unless the variable @code{no-redraw-on-reenter} is non-@code{nil}.
@xref{Refresh Screen}.
-In the following example, note that @samp{pwd} is not echoed after
-Emacs is suspended. But it is read and executed by the shell.
+Here is an example of how you could use these hooks:
@smallexample
-@group
-(suspend-emacs)
- @result{} nil
-@end group
-
@group
(add-hook 'suspend-hook
- (function (lambda ()
- (or (y-or-n-p
- "Really suspend? ")
- (error "Suspend canceled")))))
- @result{} (lambda nil
- (or (y-or-n-p "Really suspend? ")
- (error "Suspend canceled")))
-@end group
-@group
-(add-hook 'suspend-resume-hook
- (function (lambda () (message "Resumed!"))))
- @result{} (lambda nil (message "Resumed!"))
-@end group
-@group
-(suspend-emacs "pwd")
- @result{} nil
+ (lambda () (or (y-or-n-p "Really suspend? ")
+ (error "Suspend canceled"))))
@end group
+(add-hook 'suspend-resume-hook (lambda () (message "Resumed!")
+ (sit-for 2)))
+@end smallexample
+@c The sit-for prevents the ``nil'' that suspend-emacs returns
+@c hiding the message.
+
+Here is what you would see upon evaluating @code{(suspend-emacs "pwd")}:
+
+@smallexample
@group
---------- Buffer: Minibuffer ----------
Really suspend? @kbd{y}
@group
---------- Parent Shell ----------
-lewis@@slug[23] % /user/lewis/manual
-lewis@@slug[24] % fg
+bash$ /home/username
+bash$ fg
@end group
@group
Resumed!
@end group
@end smallexample
+
+@c FIXME? AFAICS, it is echoed.
+Note that @samp{pwd} is not echoed after Emacs is suspended. But it
+is read and executed by the shell.
@end deffn
@defvar suspend-hook
@defun resume-tty &optional tty
This function resumes the previously suspended terminal device
-@var{tty}; @var{tty} can be a terminal object, a frame (meaning the
-terminal for that frame), or @code{nil} (meaning the terminal for the
-selected frame).
+@var{tty}; where @var{tty} has the same possible values as it does
+for @code{suspend-tty}.
@vindex resume-tty-functions
This function reopens the terminal device, re-initializes it, and
-redraws its with that terminal's selected frame. It then runs the
+redraws it with that terminal's selected frame. It then runs the
hook @code{resume-tty-functions}, passing the terminal object as an
argument to each function.
If the same device is already used by another Emacs terminal, this
-function signals an error.
+function signals an error. If @var{tty} is not suspended, this
+function does nothing.
@end defun
-@defun controlling-tty-p &optional terminal
-This function returns non-@code{nil} if @var{terminal} is the
-controlling terminal of the Emacs session; @code{terminal} can be a
+@defun controlling-tty-p &optional tty
+This function returns non-@code{nil} if @var{tty} is the
+controlling terminal of the Emacs session; @var{tty} can be a
terminal object, a frame (meaning the terminal for that frame), or
@code{nil} (meaning the terminal for the selected frame).
@end defun
@defvar system-configuration
This variable holds the standard GNU configuration name for the
-hardware/software configuration of your system, as a string. The
-convenient way to test parts of this string is with
-@code{string-match}.
+hardware/software configuration of your system, as a string. For
+example, a typical value for a 64-bit GNU/Linux system is
+@samp{"x86_64-unknown-linux-gnu"}.
@end defvar
@cindex system type and name
@defvar system-type
The value of this variable is a symbol indicating the type of operating
-system Emacs is operating on. Here is a table of the possible values:
+system Emacs is running on. The possible values are:
@table @code
@item aix
@item gnu/linux
A GNU/Linux system---that is, a variant GNU system, using the Linux
-kernel. (These systems are the ones people often call ``Linux,'' but
+kernel. (These systems are the ones people often call ``Linux'', but
actually Linux is just the kernel, not the whole system.)
@item gnu/kfreebsd
Silicon Graphics Irix system.
@item ms-dos
-Microsoft MS-DOS ``operating system.'' Emacs compiled with DJGPP for
-MS-DOS binds @code{system-type} to @code{ms-dos} even when you run it on
-MS-Windows.
+Microsoft's DOS. Emacs compiled with DJGPP for MS-DOS binds
+@code{system-type} to @code{ms-dos} even when you run it on MS-Windows.
@item usg-unix-v
AT&T Unix System V.
@item windows-nt
-Microsoft Windows NT and later. The same executable supports Windows
-9X, but the value of @code{system-type} is @code{windows-nt} in either
-case.
+Microsoft Windows NT, 9X and later. The value of @code{system-type}
+is always @code{windows-nt}, e.g. even on Windows 7.
@end table
We do not wish to add new symbols to make finer distinctions unless it
is absolutely necessary! In fact, we hope to eliminate some of these
-alternatives in the future. We recommend using
-@code{system-configuration} to distinguish between different operating
-systems.
+alternatives in the future. If you need to make a finer distinction
+than @code{system-type} allows for, you can test
+@code{system-configuration}, e.g. against a regexp.
@end defvar
@defun system-name
-This function returns the name of the machine you are running on.
-@example
-(system-name)
- @result{} "www.gnu.org"
-@end example
+This function returns the name of the machine you are running on, as a
+string.
@end defun
The symbol @code{system-name} is a variable as well as a function. In
system. The variable is also useful for constructing frame titles
(@pxref{Frame Titles}).
+@c FIXME seems like this section is not the best place for this option?
@defopt mail-host-address
If this variable is non-@code{nil}, it is used instead of
@code{system-name} for purposes of generating email addresses. For
@code{user-mail-address}. @xref{User Identification}. (Since this is
done when Emacs starts up, the value actually used is the one saved when
Emacs was dumped. @xref{Building Emacs}.)
+@c FIXME sounds like should probably give this a :set-after and some
+@c custom-initialize-delay voodoo.
@end defopt
@deffn Command getenv var &optional frame
@cindex environment variable access
This function returns the value of the environment variable @var{var},
as a string. @var{var} should be a string. If @var{var} is undefined
-in the environment, @code{getenv} returns @code{nil}. If returns
-@samp{""} if @var{var} is set but null. Within Emacs, the environment
-variable values are kept in the Lisp variable @code{process-environment}.
+in the environment, @code{getenv} returns @code{nil}. It returns
+@samp{""} if @var{var} is set but null. Within Emacs, a list of environment
+variables and their values is kept in the variable @code{process-environment}.
@example
@group
(getenv "USER")
@result{} "lewis"
@end group
+@end example
+
+The shell command @code{printenv} prints all or part of the environment:
+@example
@group
-lewis@@slug[10] % printenv
-PATH=.:/user/lewis/bin:/usr/bin:/usr/local/bin
+bash$ printenv
+PATH=/usr/local/bin:/usr/bin:/bin
USER=lewis
@end group
@group
-TERM=ibmapa16
-SHELL=/bin/csh
-HOME=/user/lewis
+TERM=xterm
+SHELL=/bin/bash
+HOME=/home/lewis
@end group
+@dots{}
@end example
@end deffn
-@c Emacs 19 feature
-@deffn Command setenv variable &optional value
+@deffn Command setenv variable &optional value substitute
This command sets the value of the environment variable named
@var{variable} to @var{value}. @var{variable} should be a string.
Internally, Emacs Lisp can handle any string. However, normally
of letters, digits and underscores, starting with a letter or
underscore. Otherwise, errors may occur if subprocesses of Emacs try
to access the value of @var{variable}. If @var{value} is omitted or
-@code{nil}, @code{setenv} removes @var{variable} from the environment.
-Otherwise, @var{value} should be a string.
+@code{nil} (or, interactively, with a prefix argument), @code{setenv}
+removes @var{variable} from the environment. Otherwise, @var{value}
+should be a string.
+
+If the optional argument @var{substitute} is non-@code{nil}, Emacs
+calls the function @code{substitute-env-vars} to expand any
+environment variables in @var{value}.
@code{setenv} works by modifying @code{process-environment}; binding
that variable with @code{let} is also reasonable practice.
@smallexample
@group
process-environment
-@result{} ("l=/usr/stanford/lib/gnuemacs/lisp"
- "PATH=.:/user/lewis/bin:/usr/class:/nfsusr/local/bin"
+@result{} ("PATH=/usr/local/bin:/usr/bin:/bin"
"USER=lewis"
@end group
@group
- "TERM=ibmapa16"
- "SHELL=/bin/csh"
- "HOME=/user/lewis")
+ "TERM=xterm"
+ "SHELL=/bin/bash"
+ "HOME=/home/lewis"
+ @dots{})
@end group
@end smallexample
@defvar initial-environment
This variable holds the list of environment variables Emacs inherited
-from its parent process. It is computed during startup, see
-@ref{Startup Summary}.
+from its parent process when Emacs started.
@end defvar
@defvar path-separator
-This variable holds a string which says which character separates
+This variable holds a string that says which character separates
directories in a search path (as found in an environment variable). Its
-value is @code{":"} for Unix and GNU systems, and @code{";"} for MS-DOS
-and MS-Windows.
+value is @code{":"} for Unix and GNU systems, and @code{";"} for MS systems.
@end defvar
@defun parse-colon-path path
-This function takes a search path string such as would be the value of
-the @code{PATH} environment variable, and splits it at the separators,
-returning a list of directory names. @code{nil} in this list stands for
-``use the current directory.'' Although the function's name says
-``colon,'' it actually uses the value of @code{path-separator}.
+This function takes a search path string such as the value of
+the @env{PATH} environment variable, and splits it at the separators,
+returning a list of directory names. @code{nil} in this list means
+the current directory. Although the function's name says
+``colon'', it actually uses the value of @code{path-separator}.
@example
(parse-colon-path ":/foo:/bar")
@defvar invocation-directory
This variable holds the directory from which the Emacs executable was
-invoked, or perhaps @code{nil} if that directory cannot be determined.
+invoked, or @code{nil} if that directory cannot be determined.
@end defvar
@defvar installation-directory
If non-@code{nil}, this is a directory within which to look for the
-@file{lib-src} and @file{etc} subdirectories. This is non-@code{nil}
+@file{lib-src} and @file{etc} subdirectories. In an installed Emacs,
+it is normally @code{nil}. It is non-@code{nil}
when Emacs can't find those directories in their standard installed
locations, but can find them in a directory related somehow to the one
-containing the Emacs executable.
+containing the Emacs executable (i.e., @code{invocation-directory}).
@end defvar
@defun load-average &optional use-float
-This function returns the current 1-minute, 5-minute, and 15-minute load
-averages, in a list.
+This function returns the current 1-minute, 5-minute, and 15-minute
+system load averages, in a list. The load average indicates the
+number of processes trying to run on the system.
By default, the values are integers that are 100 times the system load
-averages, which indicate the average number of processes trying to run.
-If @var{use-float} is non-@code{nil}, then they are returned
-as floating point numbers and without multiplying by 100.
+averages, but if @var{use-float} is non-@code{nil}, then they are
+returned as floating point numbers without multiplying by 100.
If it is impossible to obtain the load average, this function signals
an error. On some platforms, access to load averages requires
installing Emacs as setuid or setgid so that it can read kernel
information, and that usually isn't advisable.
+@c FIXME which platforms are these? Are they still relevant?
If the 1-minute load average is available, but the 5- or 15-minute
averages are not, this function returns a shortened list containing
(load-average t)
@result{} (1.69 0.48 0.36)
@end group
-
-@group
-lewis@@rocky[5] % uptime
- 11:55am up 1 day, 19:37, 3 users,
- load average: 1.69, 0.48, 0.36
-@end group
@end example
+
+The shell command @code{uptime} returns similar information.
@end defun
@defun emacs-pid
@defvar tty-erase-char
This variable holds the erase character that was selected
in the system's terminal driver, before Emacs was started.
-The value is @code{nil} if Emacs is running under a window system.
+@c FIXME? Seems untrue since 23.1. For me, it is 0.
+@c The value is @code{nil} if Emacs is running under a window system.
@end defvar
@node User Identification
@end defopt
@defun user-login-name &optional uid
-If you don't specify @var{uid}, this function returns the name under
-which the user is logged in. If the environment variable @code{LOGNAME}
-is set, that value is used. Otherwise, if the environment variable
-@code{USER} is set, that value is used. Otherwise, the value is based
-on the effective @acronym{UID}, not the real @acronym{UID}.
-
-If you specify @var{uid}, the value is the user name that corresponds
-to @var{uid} (which should be an integer), or @code{nil} if there is
-no such user.
+This function returns the name under which the user is logged in.
+It uses the environment variables @env{LOGNAME} or @env{USER} if
+either is set. Otherwise, the value is based on the effective
+@acronym{UID}, not the real @acronym{UID}.
-@example
-@group
-(user-login-name)
- @result{} "lewis"
-@end group
-@end example
+If you specify @var{uid} (a number), the result is the user name that
+corresponds to @var{uid}, or @code{nil} if there is no such user.
@end defun
@defun user-real-login-name
This function returns the user name corresponding to Emacs's real
-@acronym{UID}. This ignores the effective @acronym{UID} and ignores the
-environment variables @code{LOGNAME} and @code{USER}.
+@acronym{UID}. This ignores the effective @acronym{UID}, and the
+environment variables @env{LOGNAME} and @env{USER}.
@end defun
@defun user-full-name &optional uid
This function returns the full name of the logged-in user---or the value
-of the environment variable @code{NAME}, if that is set.
-
-@c "Bil" is the correct spelling.
-@example
-@group
-(user-full-name)
- @result{} "Bil Lewis"
-@end group
-@end example
+of the environment variable @env{NAME}, if that is set.
-If the Emacs job's user-id does not correspond to any known user (and
-provided @code{NAME} is not set), the value is @code{"unknown"}.
+If the Emacs process's user-id does not correspond to any known user (and
+provided @code{NAME} is not set), the result is @code{"unknown"}.
If @var{uid} is non-@code{nil}, then it should be a number (a user-id)
or a string (a login name). Then @code{user-full-name} returns the full
@defun user-real-uid
This function returns the real @acronym{UID} of the user.
-The value may be a floating point number.
-
-@example
-@group
-(user-real-uid)
- @result{} 19
-@end group
-@end example
+The value may be a floating point number, in the (unlikely) event that
+the UID is too large to fit in a Lisp integer.
@end defun
@defun user-uid
as a list of integers) to analyze instead of the current time.
@end defun
-The current time zone is determined by the @samp{TZ} environment
+The current time zone is determined by the @env{TZ} environment
variable. @xref{System Environment}. For example, you can tell Emacs
-to use universal time with @code{(setenv "TZ" "UTC0")}. If @samp{TZ}
+to use universal time with @code{(setenv "TZ" "UTC0")}. If @env{TZ}
is not in the environment, Emacs uses a platform-dependent default
time zone.
The optional argument @var{zone} defaults to the current time zone and
its daylight saving time rules. If specified, it can be either a list
(as you would get from @code{current-time-zone}), a string as in the
-@code{TZ} environment variable, @code{t} for Universal Time, or an
+@env{TZ} environment variable, @code{t} for Universal Time, or an
integer (as you would get from @code{decode-time}). The specified
zone is used without any further alteration for daylight saving time.
shutdown.
@end defvar
-Here is an example that just inserts some text into @samp{*scratch*} when
+Here is an example that just inserts some text into @file{*scratch*} when
Emacs is restarted by the session manager.
@example
@end group
@end example
+@node Notifications
+@section Desktop Notifications
+@cindex desktop notifications
+
+Emacs is able to send @dfn{notifications} on systems that support the
+freedesktop.org Desktop Notifications Specification. In order to use
+this functionality, Emacs must have been compiled with D-Bus support,
+and the @code{notifications} library must be loaded.
+
+@defun notifications-notify &rest params
+This function sends a notification to the desktop via D-Bus,
+consisting of the parameters specified by the @var{params} arguments.
+These arguments should consist of alternating keyword and value pairs.
+The supported keywords and values are as follows:
+
+@table @code
+@item :title @var{title}
+The notification title.
+
+@item :body @var{text}
+The notification body text. Depending on the implementation of the
+notification server, the text could contain HTML markups, like
+@samp{"<b>bold text</b>"}, or hyperlinks.
+
+@item :app-name @var{name}
+The name of the application sending the notification. The default is
+@code{notifications-application-name}.
+
+@item :replaces-id @var{id}
+The notification @var{id} that this notification replaces. @var{id}
+must be the result of a previous @code{notifications-notify} call.
+
+@item :app-icon @var{icon-file}
+The file name of the notification icon. If set to @code{nil}, no icon
+is displayed. The default is @code{notifications-application-icon}.
+
+@item :actions (@var{key} @var{title} @var{key} @var{title} ...)
+A list of actions to be applied. @var{key} and @var{title} are both
+strings. The default action (usually invoked by clicking the
+notification) should have a key named @samp{"default"}. The title can
+be anything, though implementations are free not to display it.
+
+@item :timeout @var{timeout}
+The timeout time in milliseconds since the display of the notification
+at which the notification should automatically close. If -1, the
+notification's expiration time is dependent on the notification
+server's settings, and may vary for the type of notification. If 0,
+the notification never expires. Default value is -1.
+
+@item :urgency @var{urgency}
+The urgency level. It can be @code{low}, @code{normal}, or @code{critical}.
+
+@item :category @var{category}
+The type of notification this is, a string.
+
+@item :desktop-entry @var{filename}
+This specifies the name of the desktop filename representing the
+calling program, like @samp{"emacs"}.
+
+@item :image-data (@var{width} @var{height} @var{rowstride} @var{has-alpha} @var{bits} @var{channels} @var{data})
+This is a raw data image format that describes the width, height,
+rowstride, whether there is an alpha channel, bits per sample,
+channels and image data, respectively.
+
+@item :image-path @var{path}
+This is represented either as a URI (@samp{file://} is the only URI
+schema supported right now) or a name in a freedesktop.org-compliant
+icon theme from @samp{$XDG_DATA_DIRS/icons}, like @samp{"mail-message-new"}.
+
+@item :sound-file @var{filename}
+The path to a sound file to play when the notification pops up.
+
+@item :sound-name @var{name}
+A themable named sound from the freedesktop.org sound naming
+specification from @samp{$XDG_DATA_DIRS/sounds}, to play when the
+notification pops up. Similar to the icon name, only for sounds. An
+example would be @samp{"message-new-instant"}.
+
+@item :suppress-sound
+Causes the server to suppress playing any sounds, if it has that
+ability.
+
+@item :x @var{position}
+@itemx :y @var{position}
+Specifies the X, Y location on the screen that the
+notification should point to. Both arguments must be used together.
+
+@item :on-action @var{function}
+Function to call when an action is invoked. The notification @var{id}
+and the @var{key} of the action are passed as arguments to the
+function.
+
+@item :on-close @var{function}
+Function to call when the notification has been closed by timeout or
+by the user. The function receive the notification @var{id} and the closing
+@var{reason} as arguments:
+
+@itemize
+@item @code{expired} if the notification has expired
+@item @code{dismissed} if the notification was dismissed by the user
+@item @code{close-notification} if the notification was closed by a call to
+@code{notifications-close-notification}
+@item @code{undefined} if the notification server hasn't provided a reason
+@end itemize
+@end table
+
+This function returns a notification id, an integer, which can be used
+to manipulate the notification item with
+@code{notifications-close-notification} or the @code{:replaces-id}
+argument of another @code{notifications-notify} call. For example:
+
+@example
+@group
+(defun my-on-action-function (id key)
+ (message "Message %d, key \"%s\" pressed" id key))
+ @result{} my-on-action-function
+@end group
+
+@group
+(defun my-on-close-function (id reason)
+ (message "Message %d, closed due to \"%s\"" id reason))
+ @result{} my-on-close-function
+@end group
+
+@group
+(notifications-notify
+ :title "Title"
+ :body "This is <b>important</b>."
+ :actions '("Confirm" "I agree" "Refuse" "I disagree")
+ :on-action 'my-on-action-function
+ :on-close 'my-on-close-function)
+ @result{} 22
+@end group
+
+@group
+A message window opens on the desktop. Press "I agree"
+ @result{} Message 22, key "Confirm" pressed
+ Message 22, closed due to "dismissed"
+@end group
+@end example
+@end defun
+
+@defun notifications-close-notification id
+This function closes a notification with identifier @var{id}.
+@end defun
+
@node Dynamic Libraries
@section Dynamically Loaded Libraries
@cindex dynamic libraries
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 2010-2012 Free Software Foundation, Inc.
+@c Copyright (C) 2010-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/package
@node Packaging, Antinews, System Interface, Top
@chapter Preparing Lisp code for distribution
@cindex package
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/positions
@node Positions, Markers, Frames, Top
@chapter Positions
@cindex position (in buffer)
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/processes
@node Processes, Display, Abbrevs, Top
@chapter Processes
@cindex child process
before continuing execution. When you create an asynchronous
subprocess, it can run in parallel with the Lisp program. This kind of
subprocess is represented within Emacs by a Lisp object which is also
-called a ``process.'' Lisp programs can use this object to communicate
+called a ``process''. Lisp programs can use this object to communicate
with the subprocess or to control it. For example, you can send
signals, obtain status information, receive output from the process, or
send input to it.
process and returns a process object (@pxref{Asynchronous Processes}).
The other two, @code{call-process} and @code{call-process-region},
create a synchronous process and do not return a process object
-(@pxref{Synchronous Processes}).
+(@pxref{Synchronous Processes}). There are various higher-level
+functions that make use of these primitives to run particular types of
+process.
Synchronous and asynchronous processes are explained in the following
sections. Since the three functions are all called in a similar
fashion, their common arguments are described here.
@cindex execute program
-@cindex @code{PATH} environment variable
-@cindex @code{HOME} environment variable
+@cindex @env{PATH} environment variable
+@cindex @env{HOME} environment variable
In all cases, the function's @var{program} argument specifies the
program to be run. An error is signaled if the file is not found or
cannot be executed. If the file name is relative, the variable
@code{exec-path} contains a list of directories to search. Emacs
initializes @code{exec-path} when it starts up, based on the value of
-the environment variable @code{PATH}. The standard file name
+the environment variable @env{PATH}. The standard file name
constructs, @samp{~}, @samp{.}, and @samp{..}, are interpreted as
usual in @code{exec-path}, but environment variable substitutions
(@samp{$HOME}, etc.) are not recognized; use
@strong{Please note:} The argument @var{program} contains only the
name of the program; it may not contain any command-line arguments. You
-must use @var{args} to provide those.
+must use a separate argument, @var{args}, to provide those, as
+described below.
Each of the subprocess-creating functions has a @var{buffer-or-name}
-argument which specifies where the standard output from the program will
+argument that specifies where the standard output from the program will
go. It should be a buffer or a buffer name; if it is a buffer name,
that will create the buffer if it does not already exist. It can also
be @code{nil}, which says to discard the output unless a filter function
handles it. (@xref{Filter Functions}, and @ref{Read and Print}.)
Normally, you should avoid having multiple processes send output to the
same buffer because their output would be intermixed randomly.
+For synchronous processes, you can send the output to a file instead
+of a buffer.
@cindex program arguments
All three of the subprocess-creating functions have a @code{&rest}
characters and other shell constructs have no special meanings in these
strings, since the strings are passed directly to the specified program.
- The subprocess gets its current directory from the value of
-@code{default-directory} (@pxref{File Name Expansion}).
-
@cindex environment variables, subprocesses
The subprocess inherits its environment from Emacs, but you can
specify overrides for it with @code{process-environment}. @xref{System
-Environment}.
+Environment}. The subprocess gets its current directory from the
+value of @code{default-directory}.
@defvar exec-directory
@pindex movemail
The value of this variable is a string, the name of a directory that
-contains programs that come with GNU Emacs, programs intended for Emacs
+contains programs that come with GNU Emacs and are intended for Emacs
to invoke. The program @code{movemail} is an example of such a program;
Rmail uses it to fetch new mail from an inbox.
@end defvar
The value of @code{exec-path} is used by @code{call-process} and
@code{start-process} when the @var{program} argument is not an absolute
file name.
+
+Generally, you should not modify @code{exec-path} directly. Instead,
+ensure that your @env{PATH} environment variable is set appropriately
+before starting Emacs. Trying to modify @code{exec-path}
+independently of @env{PATH} can lead to confusing results.
@end defopt
@node Shell Arguments
characters, use the function @code{shell-quote-argument}:
@defun shell-quote-argument argument
-This function returns a string which represents, in shell syntax,
+This function returns a string that represents, in shell syntax,
an argument whose actual contents are @var{argument}. It should
work reliably to concatenate the return value into a shell command
and then pass it to a shell for execution.
The following two functions are useful for combining a list of
individual command-line argument strings into a single string, and
taking a string apart into a list of individual command-line
-arguments. These functions are mainly intended to be used for
+arguments. These functions are mainly intended for
converting user input in the minibuffer, a Lisp string, into a list of
string arguments to be passed to @code{call-process} or
-@code{start-process}, or for the converting such lists of arguments in
+@code{start-process}, or for converting such lists of arguments into
a single Lisp string to be presented in the minibuffer or echo area.
@defun split-string-and-unquote string &optional separators
@defun call-process program &optional infile destination display &rest args
This function calls @var{program} and waits for it to finish.
+The current working directory of the subprocess is
+@code{default-directory}.
+
The standard input for the new process comes from file @var{infile} if
@var{infile} is not @code{nil}, and from the null device otherwise.
The argument @var{destination} says where to put the process output.
@result{} 0
---------- Buffer: foo ----------
-/usr/user/lewis/manual
+/home/lewis/manual
---------- Buffer: foo ----------
@end group
@result{} 0
---------- Buffer: bar ----------
-lewis:5LTsHm66CSWKg:398:21:Bil Lewis:/user/lewis:/bin/csh
+lewis:x:1001:1001:Bil Lewis,,,,:/home/lewis:/bin/bash
---------- Buffer: bar ----------
@end group
@end smallexample
-Here is a good example of the use of @code{call-process}, which used to
-be found in the definition of @code{insert-directory}:
+Here is an example of the use of @code{call-process}, as used to
+be found in the definition of the @code{insert-directory} function:
@smallexample
@group
-(call-process insert-directory-program nil t nil @var{switches}
+(call-process insert-directory-program nil t nil switches
(if full-directory-p
(concat (file-name-as-directory file) ".")
file))
@defun process-file program &optional infile buffer display &rest args
This function processes files synchronously in a separate process. It
-is similar to @code{call-process} but may invoke a file handler based
-on the value of the variable @code{default-directory}. The current
-working directory of the subprocess is @code{default-directory}.
+is similar to @code{call-process}, but may invoke a file handler based
+on the value of the variable @code{default-directory}, which specifies
+the current working directory of the subprocess.
The arguments are handled in almost the same way as for
@code{call-process}, with the following differences:
output by way of the @var{buffer} argument.
If a file handler is invoked, it determines the program to run based
-on the first argument @var{program}. For instance, consider that a
+on the first argument @var{program}. For instance, suppose that a
handler for remote files is invoked. Then the path that is used for
-searching the program might be different than @code{exec-path}.
+searching for the program might be different from @code{exec-path}.
The second argument @var{infile} may invoke a file handler. The file
handler could be different from the handler chosen for the
@code{process-file} function itself. (For example,
-@code{default-directory} could be on a remote host, whereas
-@var{infile} is on another remote host. Or @code{default-directory}
+@code{default-directory} could be on one remote host, and
+@var{infile} on a different remote host. Or @code{default-directory}
could be non-special, whereas @var{infile} is on a remote host.)
If @var{buffer} is a list of the form @code{(@var{real-destination}
@end defun
@defvar process-file-side-effects
-This variable indicates, whether a call of @code{process-file} changes
+This variable indicates whether a call of @code{process-file} changes
remote files.
-Per default, this variable is always set to @code{t}, meaning that a
+By default, this variable is always set to @code{t}, meaning that a
call of @code{process-file} could potentially change any file on a
remote host. When set to @code{nil}, a file handler could optimize
-its behavior with respect to remote file attributes caching.
+its behavior with respect to remote file attribute caching.
-This variable should never be changed by @code{setq}. Instead of, it
-shall be set only by let-binding.
+You should only ever change this variable with a let-binding; never
+with @code{setq}.
@end defvar
@defun call-process-region start end program &optional delete destination display &rest args
@code{call-process}, above. If @var{destination} is the integer 0,
@code{call-process-region} discards the output and returns @code{nil}
immediately, without waiting for the subprocess to finish (this only
-works if asynchronous subprocesses are supported).
+works if asynchronous subprocesses are supported; i.e. not on MS-DOS).
The remaining arguments, @var{args}, are strings that specify command
line arguments for the program.
@end group
@end smallexample
- The @code{shell-command-on-region} command uses
-@code{call-process-region} like this:
+ For example, the @code{shell-command-on-region} command uses
+@code{call-process-region} in a manner similar to this:
@smallexample
@group
(call-process-region
start end
- shell-file-name ; @r{Name of program.}
- nil ; @r{Do not delete region.}
- buffer ; @r{Send output to @code{buffer}.}
- nil ; @r{No redisplay during output.}
- "-c" command) ; @r{Arguments for the shell.}
+ shell-file-name ; @r{name of program}
+ nil ; @r{do not delete region}
+ buffer ; @r{send output to @code{buffer}}
+ nil ; @r{no redisplay during output}
+ "-c" command) ; @r{arguments for the shell}
@end group
@end smallexample
+@c It actually uses shell-command-switch, but no need to mention that here.
@end defun
@defun call-process-shell-command command &optional infile destination display &rest args
then returns the command's output as a string.
@end defun
+@c There is also shell-command-on-region, but that is more of a user
+@c command, not something to use in programs.
+
@defun process-lines program &rest args
This function runs @var{program}, waits for it to finish, and returns
its output as a list of strings. Each string in the list holds a
line arguments for the program.
In the example below, the first process is started and runs (rather,
-sleeps) for 100 seconds. Meanwhile, the second process is started, and
+sleeps) for 100 seconds (the output buffer @samp{foo} is created
+immediately). Meanwhile, the second process is started, and
given the name @samp{my-process<1>} for the sake of uniqueness. It
inserts the directory listing at the end of the buffer @samp{foo},
before the first process finishes. Then it finishes, and a message to
@end group
@group
-(start-process "my-process" "foo" "ls" "-l" "/user/lewis/bin")
+(start-process "my-process" "foo" "ls" "-l" "/bin")
@result{} #<process my-process<1>>
---------- Buffer: foo ----------
-total 2
-lrwxrwxrwx 1 lewis 14 Jul 22 10:12 gnuemacs --> /emacs
--rwxrwxrwx 1 lewis 19 Jul 30 21:02 lemon
+total 8336
+-rwxr-xr-x 1 root root 971384 Mar 30 10:14 bash
+-rwxr-xr-x 1 root root 146920 Jul 5 2011 bsd-csh
+@dots{}
+-rwxr-xr-x 1 root root 696880 Feb 28 15:55 zsh4
Process my-process<1> finished
@defun start-file-process name buffer-or-name program &rest args
Like @code{start-process}, this function starts a new asynchronous
subprocess running @var{program} in it, and returns its process
-object---when @code{default-directory} is not a magic file name.
+object.
-If @code{default-directory} is magic, the function invokes its file
-handler instead. This handler ought to run @var{program}, perhaps on
-the local host, perhaps on a remote host that corresponds to
-@code{default-directory}. In the latter case, the local part of
-@code{default-directory} becomes the working directory of the process.
+The difference from @code{start-process} is that this function may
+invoked a file handler based on the value of @code{default-directory}.
+This handler ought to run @var{program}, perhaps on the local host,
+perhaps on a remote host that corresponds to @code{default-directory}.
+In the latter case, the local part of @code{default-directory} becomes
+the working directory of the process.
This function does not try to invoke file name handlers for
@var{program} or for the @var{program-args}.
Depending on the implementation of the file handler, it might not be
possible to apply @code{process-filter} or @code{process-sentinel} to
-the resulting process object (@pxref{Filter Functions}, @pxref{Sentinels}).
+the resulting process object. @xref{Filter Functions}, and @ref{Sentinels}.
+@c FIXME Can we find a better example (i.e. a more modern function
+@c that is actually documented).
Some file handlers may not support @code{start-file-process} (for
-example @code{ange-ftp-hook-function}). In such cases, the function
-does nothing and returns @code{nil}.
+example the function @code{ange-ftp-hook-function}). In such cases,
+this function does nothing and returns @code{nil}.
@end defun
@defun start-process-shell-command name buffer-or-name command
-This function is like @code{start-process} except that it uses a shell
+This function is like @code{start-process}, except that it uses a shell
to execute the specified command. The argument @var{command} is a shell
command name. The variable @code{shell-file-name} specifies which shell to
use.
The point of running a program through the shell, rather than directly
with @code{start-process}, is so that you can employ shell features such
-as wildcards in the arguments. It follows that if you include an
-arbitrary user-specified arguments in the command, you should quote it
+as wildcards in the arguments. It follows that if you include any
+arbitrary user-specified arguments in the command, you should quote them
with @code{shell-quote-argument} first, so that any special shell
characters do @emph{not} have their special shell meanings. @xref{Shell
-Arguments}.
+Arguments}. Of course, when executing commands based on user input
+you should also consider the security implications.
@end defun
@defun start-file-process-shell-command name buffer-or-name command
This function is like @code{start-process-shell-command}, but uses
-@code{start-file-process} internally. By this, @var{command} can be
-executed also on remote hosts, depending on @code{default-directory}.
+@code{start-file-process} internally. Because of this, @var{command}
+can also be executed on remote hosts, depending on @code{default-directory}.
@end defun
@defvar process-connection-type
@smallexample
@group
-(let ((process-connection-type nil)) ; @r{Use a pipe.}
+(let ((process-connection-type nil)) ; @r{use a pipe}
(start-process @dots{}))
@end group
@end smallexample
@dfn{Deleting a process} disconnects Emacs immediately from the
subprocess. Processes are deleted automatically after they terminate,
but not necessarily right away. You can delete a process explicitly
-at any time. If you delete a terminated process explicitly before it
+at any time. If you explicitly delete a terminated process before it
is deleted automatically, no harm results. Deleting a running
-process sends a signal to terminate it (and its child processes if
+process sends a signal to terminate it (and its child processes, if
any), and calls the process sentinel if it has one. @xref{Sentinels}.
When a process is deleted, the process object itself continues to
it finally deletes any process whose status was @samp{Exited} or
@samp{Signaled}. It returns @code{nil}.
-The processes are shown in a buffer named @samp{*Process List*}, whose
+The processes are shown in a buffer named @file{*Process List*}, whose
major mode is named Process Menu mode.
If @var{query-only} is non-@code{nil} then it lists only processes
@end defun
@defun process-live-p process
-This function returns nin-@code{nil} if @var{process} is alive. A
+This function returns non-@code{nil} if @var{process} is alive. A
process is considered alive if its status is @code{run}, @code{open},
@code{listen}, @code{connect} or @code{stop}.
@end defun
This function sets the query flag of @var{process} to @var{flag}. It
returns @var{flag}.
+Here is an example of using @code{set-process-query-on-exit-flag} on a
+shell process to avoid querying:
+
@smallexample
@group
-;; @r{Don't query about the shell process}
(set-process-query-on-exit-flag (get-process "shell") nil)
@result{} t
@end group
@end smallexample
@end defun
-@defun process-kill-without-query process &optional do-query
-This function clears the query flag of @var{process}, so that
-Emacs will not query the user on account of that process.
-
-Actually, the function does more than that: it returns the old value of
-the process's query flag, and sets the query flag to @var{do-query}.
-Please don't use this function to do those things any more---please
-use the newer, cleaner functions @code{process-query-on-exit-flag} and
-@code{set-process-query-on-exit-flag} in all but the simplest cases.
-The only way you should use @code{process-kill-without-query} nowadays
-is like this:
-
-@smallexample
-@group
-;; @r{Don't query about the shell process}
-(process-kill-without-query (get-process "shell"))
-@end group
-@end smallexample
-@end defun
-
@node System Processes
@section Accessing Other Processes
@cindex system processes
@itemize @bullet
@item
The connection's process name is constructed by concatenating the
-server process' @var{name} with a client identification string. The
+server process's @var{name} with a client identification string. The
client identification string for an IPv4 connection looks like
@samp{<@var{a}.@var{b}.@var{c}.@var{d}:@var{p}>}. Otherwise, it is a
unique number in brackets, as in @samp{<@var{nnn}>}. The number
number used for the connection.
@item
-The client process' plist is initialized from the server's plist.
+The client process's plist is initialized from the server's plist.
@end itemize
@node Datagrams
@dfn{fields}. This specification controls length of each field to be
processed, and how to pack or unpack it. We normally keep bindat specs
in variables whose names end in @samp{-bindat-spec}; that kind of name
-is automatically recognized as ``risky.''
+is automatically recognized as ``risky''.
@cindex endianness
@cindex big endian
that the field represents and, in the case of multibyte fields, how
the bytes are ordered within the field. The two possible orderings
are ``big endian'' (also known as ``network byte ordering'') and
-``little endian.'' For instance, the number @code{#x23cd} (decimal
+``little endian''. For instance, the number @code{#x23cd} (decimal
9165) in big endian would be the two bytes @code{#x23} @code{#xcd};
and in little endian, @code{#xcd} @code{#x23}. Here are the possible
type values:
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/searching
@node Searching and Matching, Syntax Tables, Non-ASCII Characters, Top
@chapter Searching and Matching
@cindex searching
buffer. They are meant for use in programs, but you may call them
interactively. If you do so, they prompt for the search string; the
arguments @var{limit} and @var{noerror} are @code{nil}, and @var{repeat}
-is 1.
+is 1. For more details on interactive searching, @pxref{Search,,
+Searching and Replacement, emacs, The GNU Emacs Manual}.
These search functions convert the search string to multibyte if the
buffer is multibyte; they convert the search string to unibyte if the
@end group
@end example
-The argument @var{limit} specifies the upper bound to the search. (It
-must be a position in the current buffer.) No match extending after
+The argument @var{limit} specifies the bound to the search, and should
+be a position in the current buffer. No match extending after
that position is accepted. If @var{limit} is omitted or @code{nil}, it
defaults to the end of the accessible portion of the buffer.
error is signaled. If @var{noerror} is @code{t}, @code{search-forward}
returns @code{nil} and does nothing. If @var{noerror} is neither
@code{nil} nor @code{t}, then @code{search-forward} moves point to the
-upper bound and returns @code{nil}. (It would be more consistent now to
-return the new position of point in that case, but some existing
-programs may depend on a value of @code{nil}.)
+upper bound and returns @code{nil}.
+@c I see no prospect of this ever changing, and frankly the current
+@c behavior seems better, so there seems no need to mention this.
+@ignore
+(It would be more consistent now to return the new position of point
+in that case, but some existing programs may depend on a value of
+@code{nil}.)
+@end ignore
The argument @var{noerror} only affects valid searches which fail to
find a match. Invalid arguments cause errors regardless of
@group
(word-search-forward "Please find the ball, boy.")
- @result{} 35
+ @result{} 36
---------- Buffer: foo ----------
He said "Please! Find
If @var{repeat} is non-@code{nil}, then the search is repeated that many
times. Point is positioned at the end of the last match.
+
+@findex word-search-regexp
+Internal, @code{word-search-forward} and related functions use the
+function @code{word-search-regexp} to convert @var{string} to a
+regular expression that ignores punctuation.
@end deffn
@deffn Command word-search-forward-lax string &optional limit noerror repeat
This command is identical to @code{word-search-forward}, except that
-the end of @code{string} need not match a word boundary unless it ends
+the end of @var{string} need not match a word boundary, unless @var{string} ends
in whitespace. For instance, searching for @samp{ball boy} matches
@samp{ball boyee}, but does not match @samp{aball boy}.
@end deffn
@deffn Command word-search-backward-lax string &optional limit noerror repeat
This command is identical to @code{word-search-backward}, except that
-the end of @code{string} need not match a word boundary unless it ends
+the end of @var{string} need not match a word boundary, unless @var{string} ends
in whitespace.
@end deffn
@code{case-fold-search} to @code{nil}. Then all letters must match
exactly, including case. This is a buffer-local variable; altering the
variable affects only the current buffer. (@xref{Intro to
-Buffer-Local}.) Alternatively, you may change the default value of
-@code{case-fold-search}.
+Buffer-Local}.) Alternatively, you may change the default value.
+In Lisp code, you will more typically use @code{let} to bind
+@code{case-fold-search} to the desired value.
Note that the user-level incremental search feature handles case
distinctions differently. When the search string contains only lower
case letters, the search ignores case, but when the search string
contains one or more upper case letters, the search becomes
case-sensitive. But this has nothing to do with the searching
-functions used in Lisp code.
+functions used in Lisp code. @xref{Incremental Search,,, emacs,
+The GNU Emacs Manual}.
@defopt case-fold-search
This buffer-local variable determines whether searches should ignore
case. If the variable is @code{nil} they do not ignore case; otherwise
-they do ignore case.
+(and by default) they do ignore case.
@end defopt
@defopt case-replace
-This variable determines whether the higher level replacement
+This variable determines whether the higher-level replacement
functions should preserve case. If the variable is @code{nil}, that
means to use the replacement text verbatim. A non-@code{nil} value
means to convert the case of the replacement text according to the
@findex re-builder
@cindex regular expressions, developing
- For convenient interactive development of regular expressions, you
+ For interactive development of regular expressions, you
can use the @kbd{M-x re-builder} command. It provides a convenient
interface for creating regular expressions, by giving immediate visual
feedback in a separate buffer. As you edit the regexp, all its
expression. Thus, @samp{fo*} has a repeating @samp{o}, not a repeating
@samp{fo}. It matches @samp{f}, @samp{fo}, @samp{foo}, and so on.
+@cindex backtracking and regular expressions
The matcher processes a @samp{*} construct by matching, immediately, as
many repetitions as can be found. Then it continues with the rest of
the pattern. If that fails, backtracking occurs, discarding some of the
@samp{[a-z$%.]}, which matches any lower case @acronym{ASCII} letter
or @samp{$}, @samp{%} or period.
-Note that the usual regexp special characters are not special inside a
+If @code{case-fold-search} is non-@code{nil}, @samp{[a-z]} also
+matches upper-case letters. Note that a range like @samp{[a-z]} is
+not affected by the locale's collation sequence, it always represents
+a sequence in @acronym{ASCII} order.
+@c This wasn't obvious to me, since eg the grep manual "Character
+@c Classes and Bracket Expressions" specifically notes the opposite
+@c behavior. But by experiment Emacs seems unaffected by LC_COLLATE
+@c in this regard.
+
+Note also that the usual regexp special characters are not special inside a
character alternative. A completely different set of characters is
special inside character alternatives: @samp{]}, @samp{-} and @samp{^}.
first character. For example, @samp{[]a]} matches @samp{]} or @samp{a}.
To include a @samp{-}, write @samp{-} as the first or last character of
the character alternative, or put it after a range. Thus, @samp{[]-]}
-matches both @samp{]} and @samp{-}.
+matches both @samp{]} and @samp{-}. (As explained below, you cannot
+use @samp{\]} to include a @samp{]} inside a character alternative,
+since @samp{\} is not special there.)
To include @samp{^} in a character alternative, put it anywhere but at
the beginning.
+@c What if it starts with a multibyte and ends with a unibyte?
+@c That doesn't seem to match anything...?
If a range starts with a unibyte character @var{c} and ends with a
multibyte character @var{c2}, the range is divided into two parts: one
-is @samp{@var{c}..?\377}, the other is @samp{@var{c1}..@var{c2}}, where
-@var{c1} is the first character of the charset to which @var{c2}
-belongs.
+spans the unibyte characters @samp{@var{c}..?\377}, the other the
+multibyte characters @samp{@var{c1}..@var{c2}}, where @var{c1} is the
+first character of the charset to which @var{c2} belongs.
A character alternative can also specify named character classes
-(@pxref{Char Classes}). This is a POSIX feature whose syntax is
-@samp{[:@var{class}:]}. Using a character class is equivalent to
-mentioning each of the characters in that class; but the latter is not
-feasible in practice, since some classes include thousands of
-different characters.
+(@pxref{Char Classes}). This is a POSIX feature. For example,
+@samp{[[:ascii:]]} matches any @acronym{ASCII} character.
+Using a character class is equivalent to mentioning each of the
+characters in that class; but the latter is not feasible in practice,
+since some classes include thousands of different characters.
@item @samp{[^ @dots{} ]}
@cindex @samp{^} in regexp
@kindex invalid-regexp
Not every string is a valid regular expression. For example, a string
-that ends inside a character alternative without terminating @samp{]}
+that ends inside a character alternative without a terminating @samp{]}
is invalid, and so is a string that ends with a single @samp{\}. If
an invalid regular expression is passed to any of the search functions,
an @code{invalid-regexp} error is signaled.
regexp constructed by the function @code{sentence-end}.
@xref{Standard Regexps}.)
- First, we show the regexp as a string in Lisp syntax to distinguish
-spaces from tab characters. The string constant begins and ends with a
+ Below, we show first the regexp as a string in Lisp syntax (to
+distinguish spaces from tab characters), and then the result of
+evaluating it. The string constant begins and ends with a
double-quote. @samp{\"} stands for a double-quote as part of the
string, @samp{\\} for a backslash as part of the string, @samp{\t} for a
tab and @samp{\n} for a newline.
-@example
-"[.?!][]\"')@}]*\\($\\| $\\|\t\\|@ @ \\)[ \t\n]*"
-@end example
-
-@noindent
-In contrast, if you evaluate this string, you will see the following:
-
@example
@group
"[.?!][]\"')@}]*\\($\\| $\\|\t\\|@ @ \\)[ \t\n]*"
@end example
@noindent
-In this output, tab and newline appear as themselves.
+In the output, tab and newline appear as themselves.
This regular expression contains four parts in succession and can be
deciphered as follows:
@var{string}. Using this regular expression in @code{looking-at} will
succeed only if the next characters in the buffer are @var{string};
using it in a search function will succeed if the text being searched
-contains @var{string}.
+contains @var{string}. @xref{Regexp Search}.
This allows you to request an exact string match or search when calling
a function that wants a regular expression.
This function returns an efficient regular expression that will match
any of the strings in the list @var{strings}. This is useful when you
need to make matching or searching as fast as possible---for example,
-for Font Lock mode.
+for Font Lock mode@footnote{Note that @code{regexp-opt} does not
+guarantee that its result is absolutely the most efficient form
+possible. A hand-tuned regular expression can sometimes be slightly
+more efficient, but is almost never worth the effort.}.
+@c See eg http://debbugs.gnu.org/2816
If the optional argument @var{paren} is non-@code{nil}, then the
returned regular expression is always enclosed by at least one
(but not as efficient):
@example
-(defun regexp-opt (strings paren)
+(defun regexp-opt (strings &optional paren)
(let ((open-paren (if paren "\\(" ""))
(close-paren (if paren "\\)" "")))
(concat open-paren
shy groups (@pxref{Regexp Backslash}).
@end defun
+@c Supposedly an internal regexp-opt function, but table.el uses it at least.
+@defun regexp-opt-charset chars
+This function returns a regular expression matching a character in the
+list of characters @var{chars}.
+
+@example
+(regexp-opt-charset '(?a ?b ?c ?d ?e))
+ @result{} "[a-e]"
+@end example
+@end defun
+
+@c Internal functions: regexp-opt-group
+
@node Regexp Search
@section Regular Expression Searching
@cindex regular expression searching
succeed only starting with the first character following point. The
result is @code{t} if so, @code{nil} otherwise.
-This function does not move point, but it updates the match data, which
-you can access using @code{match-beginning} and @code{match-end}.
+This function does not move point, but it does update the match data.
@xref{Match Data}. If you need to test for a match without modifying
the match data, use @code{looking-at-p}, described below.
@end defun
@defun looking-back regexp &optional limit greedy
-This function returns @code{t} if @var{regexp} matches text before
-point, ending at point, and @code{nil} otherwise.
+This function returns @code{t} if @var{regexp} matches the text
+immediately before point (i.e., ending at point), and @code{nil} otherwise.
Because regular expression matching works only going forward, this is
implemented by searching backwards from point for a match that ends at
@result{} nil
@end group
@end example
+
+@c http://debbugs.gnu.org/5689
+As a general recommendation, try to avoid using @code{looking-back}
+wherever possible, since it is slow. For this reason, there are no
+plans to add a @code{looking-back-p} function.
@end defun
@defun looking-at-p regexp
@node POSIX Regexps
@section POSIX Regular Expression Searching
+@cindex backtracking and POSIX regular expressions
The usual regular expression functions do backtracking when necessary
to handle the @samp{\|} and repetition constructs, but they continue
this only until they find @emph{some} match. Then they succeed and
query the match data immediately after searching, before calling any
other function that might perform another search. Alternatively, you
may save and restore the match data (@pxref{Saving Match Data}) around
-the call to functions that could perform another search.
+the call to functions that could perform another search. Or use the
+functions that explicitly do not modify the match data;
+e.g. @code{string-match-p}.
+@c This is an old comment and presumably there is no prospect of this
+@c changing now. But still the advice stands.
A search which fails may or may not alter the match data. In the
-past, a failing search did not do this, but we may change it in the
-future. So don't try to rely on the value of the match data after
-a failing search.
+current implementation, it does not, but we may change it in the
+future. Don't try to rely on the value of the match data after a
+failing search.
@defun match-string count &optional in-string
This function returns, as a string, the text matched in the last search
you should omit @var{in-string} or pass @code{nil} for it; but you
should make sure that the current buffer when you call
@code{match-string} is the one in which you did the searching or
-matching.
+matching. Failure to follow this advice will lead to incorrect results.
The value is @code{nil} if @var{count} is out of range, or for a
subexpression inside a @samp{\|} alternative that wasn't used or a
@end defun
@defun match-beginning count
-This function returns the position of the start of text matched by the
+This function returns the position of the start of the text matched by the
last regular expression searched for, or a subexpression of it.
If @var{count} is zero, then the value is the position of the start of
@defun match-data &optional integers reuse reseat
This function returns a list of positions (markers or integers) that
-record all the information on what text the last search matched.
+record all the information on the text that the last search matched.
Element zero is the position of the beginning of the match for the
whole expression; element one is the position of the end of the match
for the expression. The next two elements are the positions of the
If @var{reseat} is non-@code{nil}, all markers on the @var{match-list} list
are reseated to point to nowhere.
+@c TODO Make it properly obsolete.
@findex store-match-data
@code{store-match-data} is a semi-obsolete alias for @code{set-match-data}.
@end defun
@node Saving Match Data
@subsection Saving and Restoring the Match Data
- When you call a function that may do a search, you may need to save
+ When you call a function that may search, you may need to save
and restore the match data around that call, if you want to preserve the
match data from an earlier search for later use. Here is an example
that shows the problem that arises if you fail to save the match data:
@group
(re-search-forward "The \\(cat \\)")
@result{} 48
-(foo) ; @r{Perhaps @code{foo} does}
- ; @r{more searching.}
+(foo) ; @r{@code{foo} does more searching.}
(match-end 0)
@result{} 61 ; @r{Unexpected result---not 48!}
@end group
@code{replace-regexp-in-string} calls @var{rep} for each match,
passing the text of the match as its sole argument. It collects the
value @var{rep} returns and passes that to @code{replace-match} as the
-replacement string. The match-data at this point are the result
+replacement string. The match data at this point are the result
of matching @var{regexp} against a substring of @var{string}.
@end defun
If @var{from-string} contains upper-case letters, then
@code{perform-replace} binds @code{case-fold-search} to @code{nil}, and
-it uses the @code{replacements} without altering the case of them.
+it uses the @var{replacements} without altering their case.
Normally, the keymap @code{query-replace-map} defines the possible
user responses for queries. The argument @var{map}, if
Prefix keys are not supported; each key binding must be for a
single-event key sequence. This is because the functions don't use
@code{read-key-sequence} to get the input; instead, they read a single
-event and look it up ``by hand.''
+event and look it up ``by hand''.
@end itemize
@end defvar
@table @code
@item act
-Do take the action being considered---in other words, ``yes.''
+Do take the action being considered---in other words, ``yes''.
@item skip
-Do not take action for this question---in other words, ``no.''
+Do not take action for this question---in other words, ``no''.
@item exit
-Answer this question ``no,'' and give up on the entire series of
-questions, assuming that the answers will be ``no.''
+Answer this question ``no'', and give up on the entire series of
+questions, assuming that the answers will be ``no''.
+
+@item exit-prefix
+Like @code{exit}, but add the key that was pressed to
+@code{unread-comment-events}.
@item act-and-exit
-Answer this question ``yes,'' and give up on the entire series of
-questions, assuming that subsequent answers will be ``no.''
+Answer this question ``yes'', and give up on the entire series of
+questions, assuming that subsequent answers will be ``no''.
@item act-and-show
-Answer this question ``yes,'' but show the results---don't advance yet
+Answer this question ``yes'', but show the results---don't advance yet
to the next question.
@item automatic
Answer this question and all subsequent questions in the series with
-``yes,'' without further user interaction.
+``yes'', without further user interaction.
@item backup
Move back to the previous place that a question was asked about.
Enter a recursive edit to deal with this question---instead of any
other action that would normally be taken.
+@item edit-replacement
+Edit the replacement for this question in the minibuffer.
+
@item delete-and-edit
Delete the text being considered, then enter a recursive edit to replace
it.
@defvar multi-query-replace-map
This variable holds a keymap that extends @code{query-replace-map} by
providing additional keybindings that are useful in multi-buffer
-replacements.
+replacements. The additional ``bindings'' are:
+
+@table @code
+@item automatic-all
+Answer this question and all subsequent questions in the series with
+``yes'', without further user interaction, for all remaining buffers.
+
+@item exit-current
+Answer this question ``no'', and give up on the entire series of
+questions for the current buffer. Continue to the next buffer in the
+sequence.
+@end table
@end defvar
@defvar replace-search-function
the end of a sentence, including the whitespace following the
sentence. (All paragraph boundaries also end sentences, regardless.)
-If the value is @code{nil}, the default, then the function
-@code{sentence-end} has to construct the regexp. That is why you
+If the value is @code{nil}, as it is by default, then the function
+@code{sentence-end} constructs the regexp. That is why you
should always call the function @code{sentence-end} to obtain the
regexp to be used to recognize the end of a sentence.
@end defopt
if non-@code{nil}. Otherwise it returns a default value based on the
values of the variables @code{sentence-end-double-space}
(@pxref{Definition of sentence-end-double-space}),
-@code{sentence-end-without-period} and
+@code{sentence-end-without-period}, and
@code{sentence-end-without-space}.
@end defun
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/sequences
@node Sequences Arrays Vectors, Hash Tables, Lists, Top
@chapter Sequences, Arrays, and Vectors
@cindex sequence
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1994, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/streams
@node Read and Print, Minibuffers, Debugging, Top
@comment node-name, next, previous, up
@chapter Reading and Printing Lisp Objects
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/strings
@node Strings and Characters, Lists, Numbers, Top
@comment node-name, next, previous, up
@chapter Strings and Characters
@acronym{ASCII} characters; for example, in the Turkish language
environment, the @acronym{ASCII} character @samp{I} is downcased into
a Turkish ``dotless i''. This can interfere with code that requires
-ordinary ASCII case conversion, such as implementations of
+ordinary @acronym{ASCII} case conversion, such as implementations of
@acronym{ASCII}-based network protocols. In that case, use the
@code{with-case-table} macro with the variable @var{ascii-case-table},
which stores the unmodified case table for the @acronym{ASCII}
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-1999, 2001-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/symbols
@node Symbols, Evaluation, Hash Tables, Top
@chapter Symbols
@cindex symbol
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/syntax
@node Syntax Tables, Abbrevs, Searching and Matching, Top
@chapter Syntax Tables
@cindex parsing buffer text
@c -*-texinfo-*-
@c This is part of the GNU Emacs Lisp Reference Manual.
-@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
+@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/text
@node Text, Non-ASCII Characters, Markers, Top
@chapter Text
@cindex text
@item cursor
@kindex cursor @r{(text property)}
-Normally, the cursor is displayed at the end of any overlay and text
-property strings present at the current buffer position. You can
-place the cursor on any desired character of these strings by giving
-that character a non-@code{nil} @code{cursor} text property. In
-addition, if the value of the @code{cursor} property of an overlay
-string is an integer number, it specifies the number of buffer's
-character positions associated with the overlay string; this way,
-Emacs will display the cursor on the character with that property
-regardless of whether the current buffer position is actually covered
-by the overlay. Specifically, if the value of the @code{cursor}
-property of a character is the number @var{n}, the cursor will be
-displayed on this character for any buffer position in the range
-@code{[@var{ovpos}..@var{ovpos}+@var{n}]}, where @var{ovpos} is the
-starting buffer position covered by the overlay (@pxref{Managing
-Overlays}).
+Normally, the cursor is displayed at the beginning or the end of any
+overlay and text property strings present at the current buffer
+position. You can place the cursor on any desired character of these
+strings by giving that character a non-@code{nil} @code{cursor} text
+property. In addition, if the value of the @code{cursor} property is
+an integer number, it specifies the number of buffer's character
+positions, starting with the position where the overlay or the
+@code{display} property begins, for which the cursor should be
+displayed on that character. Specifically, if the value of the
+@code{cursor} property of a character is the number @var{n}, the
+cursor will be displayed on this character for any buffer position in
+the range @code{[@var{ovpos}..@var{ovpos}+@var{n})}, where @var{ovpos}
+is the overlay's starting position given by @code{overlay-start}
+(@pxref{Managing Overlays}), or the position where the @code{display}
+text property begins in the buffer.
+
+In other words, the string character with the @code{cursor} property
+of any non-@code{nil} value is the character where to display the
+cursor. The value of the property says for which buffer positions to
+display the cursor there. If the value is an integer number @var{n},
+the cursor is displayed there when point is anywhere between the
+beginning of the overlay or @code{display} property and @var{n}
+positions after that. If the value is anything else and
+non-@code{nil}, the cursor is displayed there only when point is at
+the beginning of the @code{display} property or at
+@code{overlay-start}.
+
+@cindex cursor position for @code{display} properties and overlays
+When the buffer has many overlay strings (e.g., @pxref{Overlay
+Properties, before-string}) or @code{display} properties that are
+strings, it is a good idea to use the @code{cursor} property on these
+strings to cue the Emacs display about the places where to put the
+cursor while traversing these strings. This directly communicates to
+the display engine where the Lisp program wants to put the cursor, or
+where the user would expect the cursor.
@item pointer
@kindex pointer @r{(text property)}
arguments.
@end defvar
- Output of messages into the @samp{*Messages*} buffer does not
+ Output of messages into the @file{*Messages*} buffer does not
call these functions.
@defmac combine-after-change-calls body@dots{}
@c Copyright (C) 1990-1993, 1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/tips
@node Tips, GNU Emacs Internals, GPL, Top
@appendix Tips and Conventions
@cindex tips for writing Lisp
@c This is part of the GNU Emacs Lisp Reference Manual.
@c Copyright (C) 1990-1995, 1998-2012 Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/variables
@node Variables, Functions, Control Structures, Top
@chapter Variables
@cindex variable
* Functions:: A function is a Lisp program
that can be invoked from other functions.
* Macros:: Macros are a way to extend the Lisp language.
-* Customization:: Writing customization declarations.
+* Customization:: Making variables and faces customizable.
* Loading:: Reading files of Lisp code into Lisp.
* Byte Compilation:: Compilation makes programs run faster.
Appendices
-* Antinews:: Info for users downgrading to Emacs 22.
+* Antinews:: Info for users downgrading to Emacs 23.
* GNU Free Documentation License:: The license for this documentation.
* GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp.
* Group Definitions:: Writing customization group definitions.
* Variable Definitions:: Declaring user options.
* Customization Types:: Specifying the type of a user option.
+* Applying Customizations:: Functions to apply customization settings.
+* Custom Themes:: Writing Custom themes.
Customization Types
(reading buffer name, file name, etc.).
* Reading File Names:: Using completion to read file names and
shell commands.
-* Completion Styles:: Specifying rules for performing completion.
-* Programmed Completion:: Writing your own completion-function.
+* Completion Variables:: Variables controlling completion behavior.
+* Programmed Completion:: Writing your own completion function.
* Completion in Buffers:: Completing text in ordinary buffers.
Command Loop
* Buttons:: Adding clickable buttons to Emacs buffers.
* Abstract Display:: Emacs's Widget for Object Collections.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Usual Display:: The usual conventions for displaying
- nonprinting chars.
-* Display Tables:: How to specify other conventions.
+* Character Display:: How Emacs displays individual characters.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
* Bidirectional Display:: Display of bidirectional scripts, such as
Arabic and Farsi.
-* Glyphless Chars:: How glyphless characters are drawn.
The Echo Area
* Warning Variables:: Variables programs bind to customize
their warnings.
* Warning Options:: Variables users set to control display of warnings.
+* Delayed Warnings:: Deferring warning display until the end of a command.
Overlays
Faces
-* Defining Faces:: How to define a face with @code{defface}.
+* Defining Faces:: How to define a face.
* Face Attributes:: What is in a face?
* Attribute Functions:: Functions to examine and set face attributes.
* Displaying Faces:: How Emacs combines the faces specified for
* Abstract Display Functions:: Functions in the Ewoc package.
* Abstract Display Example:: Example of using Ewoc.
-Display Tables
+Character Display
-* Display Table Format:: What a display table consists of.
-* Active Display Table:: How Emacs selects a display table to use.
-* Glyphs:: How to define a glyph, and what glyphs mean.
+* Usual Display:: The usual conventions for displaying characters.
+* Display Tables:: What a display table consists of.
+* Active Display Table:: How Emacs selects a display table to use.
+* Glyphs:: How to define a glyph, and what glyphs mean.
+* Glyphless Chars:: How glyphless characters are drawn.
Operating System Interface
* Batch Mode:: Running Emacs without terminal interaction.
* Session Management:: Saving and restoring state with
X Session Management.
+* Notifications:: Desktop notifications.
+* Dynamic Libraries:: On-demand loading of support libraries.
Preparing Lisp code for distribution
* Functions:: A function is a Lisp program
that can be invoked from other functions.
* Macros:: Macros are a way to extend the Lisp language.
-* Customization:: Writing customization declarations.
+* Customization:: Making variables and faces customizable.
* Loading:: Reading files of Lisp code into Lisp.
* Byte Compilation:: Compilation makes programs run faster.
Appendices
-* Antinews:: Info for users downgrading to Emacs 22.
+* Antinews:: Info for users downgrading to Emacs 23.
* GNU Free Documentation License:: The license for this documentation.
* GPL:: Conditions for copying and changing GNU Emacs.
* Tips:: Advice and coding conventions for Emacs Lisp.
* Group Definitions:: Writing customization group definitions.
* Variable Definitions:: Declaring user options.
* Customization Types:: Specifying the type of a user option.
+* Applying Customizations:: Functions to apply customization settings.
+* Custom Themes:: Writing Custom themes.
Customization Types
(reading buffer name, file name, etc.).
* Reading File Names:: Using completion to read file names and
shell commands.
-* Completion Styles:: Specifying rules for performing completion.
-* Programmed Completion:: Writing your own completion-function.
+* Completion Variables:: Variables controlling completion behavior.
+* Programmed Completion:: Writing your own completion function.
* Completion in Buffers:: Completing text in ordinary buffers.
Command Loop
* Buttons:: Adding clickable buttons to Emacs buffers.
* Abstract Display:: Emacs's Widget for Object Collections.
* Blinking:: How Emacs shows the matching open parenthesis.
-* Usual Display:: The usual conventions for displaying
- nonprinting chars.
-* Display Tables:: How to specify other conventions.
+* Character Display:: How Emacs displays individual characters.
* Beeping:: Audible signal to the user.
* Window Systems:: Which window system is being used.
* Bidirectional Display:: Display of bidirectional scripts, such as
Arabic and Farsi.
-* Glyphless Chars:: How glyphless characters are drawn.
The Echo Area
* Warning Variables:: Variables programs bind to customize
their warnings.
* Warning Options:: Variables users set to control display of warnings.
+* Delayed Warnings:: Deferring a warning until the end of a command.
Overlays
Faces
-* Defining Faces:: How to define a face with @code{defface}.
+* Defining Faces:: How to define a face.
* Face Attributes:: What is in a face?
* Attribute Functions:: Functions to examine and set face attributes.
* Displaying Faces:: How Emacs combines the faces specified for
* Abstract Display Functions:: Functions in the Ewoc package.
* Abstract Display Example:: Example of using Ewoc.
-Display Tables
+Character Display
-* Display Table Format:: What a display table consists of.
-* Active Display Table:: How Emacs selects a display table to use.
-* Glyphs:: How to define a glyph, and what glyphs mean.
+* Usual Display:: The usual conventions for displaying characters.
+* Display Tables:: What a display table consists of.
+* Active Display Table:: How Emacs selects a display table to use.
+* Glyphs:: How to define a glyph, and what glyphs mean.
+* Glyphless Chars:: How glyphless characters are drawn.
Operating System Interface
* Batch Mode:: Running Emacs without terminal interaction.
* Session Management:: Saving and restoring state with
X Session Management.
+* Notifications:: Desktop notifications.
+* Dynamic Libraries:: On-demand loading of support libraries.
Preparing Lisp code for distribution
@c Copyright (C) 1990-1995, 1998-1999, 2001-2012
@c Free Software Foundation, Inc.
@c See the file elisp.texi for copying conditions.
-@setfilename ../../info/windows
@node Windows, Frames, Buffers, Top
@chapter Windows
If repeated invocations of this command have already shown all buffers
previously shown in @var{window}, further invocations will show buffers
from the buffer list of the frame @var{window} appears on (@pxref{The
-Buffer List}).
+Buffer List}) trying to skip buffers that are already shown in another
+window on that frame.
@end deffn
@deffn Command switch-to-next-buffer &optional window
of the frame @var{window} appears on (@pxref{The Buffer List}).
@end deffn
+By default @code{switch-to-prev-buffer} and @code{switch-to-next-buffer}
+can switch to a buffer that is already shown in another window on the
+same frame. The following option can be used to override that behavior.
+
+@defopt switch-to-visible-buffer
+If this variable is non-@code{nil}, @code{switch-to-prev-buffer} and
+@code{switch-to-next-buffer} may switch to a buffer that is already
+visible on the same frame, provided the buffer was shown in the argument
+window before. If it's @code{nil}, @code{switch-to-prev-buffer} and
+@code{switch-to-next-buffer} always try to avoid switching to a buffer
+that is already visible in another window on the same frame.
+@end defopt
+
@node Dedicated Windows
@section Dedicated Windows
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * emacs.1: Bump version to 24.1.50.
+
2011-11-16 Juanma Barranquero <lekktu@gmail.com>
* etags.1: Fix typo.
.\" See section COPYING for copyright and redistribution information.
-.TH EMACS 1 "2007 April 13" "GNU Emacs 24.0.94"
+.TH EMACS 1 "2007 April 13" "GNU Emacs 24.1.50"
.
.
.SH NAME
+2012-04-14 Alan Mackenzie <acm@muc.de>
+
+ * cc-mode.texi (c-offsets-alist): Correct a typo.
+
+2012-04-14 Jérémie Courrèges-Anglas <jca@wxcvbn.org> (tiny change)
+
+ * org.texi (Deadlines and scheduling): Fix the example: the
+ DEADLINE item should come right after the headline. We enforce
+ this convention, so it is a bug not to illustrate it correctly in
+ the manual.
+
+2012-04-14 Ippei FURUHASHI <top.tuna+orgmode@gmail.com> (tiny change)
+
+ * org.texi (Agenda commands): Fix documentation bug by swapping
+ the equivalent keybindings to `org-agenda-next-line' with the ones
+ to `org-agenda-previous-line'.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Replace non-portable use of $< in ordinary rules.
+
+2012-04-09 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (INFO_TARGETS, DVI_TARGETS, clean): Add
+ emacs-gnutls.
+ ($(infodir)/emacs-gnutls, emacs-gnutls.dvi): New targets.
+
+2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * Makefile.in: Add emacs-gnutls.texi to build.
+
+ * emacs-gnutls.texi: Add documentation for the GnuTLS integration.
+
+2012-04-05 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * auth.texi (Secret Service API): Edit further and give examples.
+ (Secret Service API): Adjust @samp to @code for collection names.
+
+2012-04-04 Glenn Morris <rgm@gnu.org>
+
+ * auth.texi (Secret Service API): Copyedits.
+ (Help for developers): Fill in some missing function doc-strings.
+ (Help for users, Help for developers)
+ (GnuPG and EasyPG Assistant Configuration): Markup fixes.
+
+2012-04-04 Michael Albinus <michael.albinus@gmx.de>
+
+ * auth.texi (Secret Service API): Add the missing text.
+
+2012-04-04 Chong Yidong <cyd@gnu.org>
+
+ * message.texi (Using PGP/MIME): Note that epg is now the default.
+
+ * gnus.texi: Reduce references to obsolete pgg library.
+ (Security): Note that epg is now the default.
+
+ * gnus-faq.texi (FAQ 8-2): Mention EasyPG.
+
+ * nxml-mode.texi (Completion): C-RET is no longer bound to
+ nxml-complete.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org.texi (Customizing tables in ODT export): Correct few errors.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org.texi (Links in ODT export): Update.
+ (Labels and captions in ODT export): New node.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org.texi (Literal examples in ODT export): htmlfontify.el in
+ Emacs-24.1 now supports fontification. So ODT source blocks will
+ be fontified by default.
+
+2012-04-01 Julian Gehring <julian.gehring@googlemail.com> (tiny change)
+
+ * org.texi (Refiling notes): Remove duplicated keybinding.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (noweb): Documentation of this new option to the :noweb
+ header argument.
+
+2012-04-01 Suvayu Ali <fatkasuvayu+linux@gmail.com>
+
+ * org.texi (Header and sectioning): Add example demonstrating how
+ to use "LaTeX_CLASS_OPTIONS".
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (Noweb reference syntax): Describe the ability to
+ execute noweb references in the manual.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (cache): Improve cache documentation when session
+ evaluation is used.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.texi (Plain lists): Document removal.
+
+2012-04-01 Michael Brand <michael.ch.brand@gmail.com>
+
+ * org.texi: Decapitalize file name in references to Calc manual.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.texi (Plain lists): Document removal.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org.texi (Top, OpenDocument Text export)
+ (ODT export commands, Extending ODT export)
+ (Images in ODT export, Tables in ODT export)
+ (Configuring a document converter): Add or Update.
+
+2012-04-01 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org.texi (MobileOrg): Change the wording to reflect that the
+ Android Version is no longer just the little brother of the iOS
+ version.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (Key bindings and useful functions): Updated babel key
+ binding documentation in manual.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (noweb): Document new noweb header value.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (noweb-sep): Document new header argument.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (noweb-ref): Documentation of this new custom variable.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.texi (wrap): Update the new :wrap documentation to match the
+ current implementation.
+
+2012-04-01 Thomas Dye <dk@poto.myhome.westell.com>
+
+ * org.texi: Added documentation for :wrap.
+
+2012-04-01 Thomas Dye <dk@poto.myhome.westell.com>
+
+ * org.texi: #+RESULTS now user-configurable.
+
+2012-04-01 Thomas Dye <dk@poto.myhome.westell.com>
+
+ * org.texi: Documented :noweb no-export.
+
+2012-04-01 Thomas Dye <dk@poto.local>
+
+ * org.texi: Edit :noweb no header argument for correctness.
+
+2012-04-01 Bastien Guerry <bzg@altern.org>
+
+ * org.texi (Customization): Update the approximate number of Org
+ variables.
+
+2012-04-01 Thomas Dye <dk@poto.local>
+
+ * org.texi: The :results wrap produces a drawer instead of a
+ begin_results block.
+
2012-03-22 Peder O. Klingenberg <peder@klingenberg.no> (tiny change)
* gnus.texi (Archived Messages): Update `gnus-message-archive-group' to
#### Makefile for documentation other than the Emacs manual.
-# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994, 1996-2012 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
$(infodir)/flymake \
$(infodir)/forms \
$(infodir)/gnus \
+ $(infodir)/emacs-gnutls \
$(infodir)/idlwave \
$(infodir)/info \
$(infodir)/mairix-el \
flymake.dvi \
forms.dvi \
gnus.dvi \
+ emacs-gnutls.dvi \
idlwave.dvi \
info.dvi \
mairix-el.dvi \
flymake.pdf \
forms.pdf \
gnus.pdf \
+ emacs-gnutls.pdf \
idlwave.pdf \
info.pdf \
mairix-el.pdf \
# to exist in the build directory.
# In a distribution of Emacs, the Info files should be up to date.
+# Note: "<" is not portable in ordinary make rules.
+
## "short" target names for convenience, to just rebuild one manual.
ada-mode : $(infodir)/ada-mode
$(infodir)/ada-mode: ada-mode.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ada-mode.texi
ada-mode.dvi: ${srcdir}/ada-mode.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ada-mode.texi
ada-mode.pdf: ${srcdir}/ada-mode.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ada-mode.texi
auth : $(infodir)/auth
$(infodir)/auth: auth.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) auth.texi
auth.dvi: ${srcdir}/auth.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/auth.texi
auth.pdf: ${srcdir}/auth.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/auth.texi
autotype : $(infodir)/autotype
$(infodir)/autotype: autotype.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) autotype.texi
autotype.dvi: ${srcdir}/autotype.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/autotype.texi
autotype.pdf: ${srcdir}/autotype.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/autotype.texi
calc : $(infodir)/calc
$(infodir)/calc: calc.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) calc.texi
calc.dvi: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/calc.texi
calc.pdf: ${srcdir}/calc.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/calc.texi
ccmode : $(infodir)/ccmode
$(infodir)/ccmode: cc-mode.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cc-mode.texi
cc-mode.dvi: ${srcdir}/cc-mode.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/cc-mode.texi
cc-mode.pdf: ${srcdir}/cc-mode.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/cc-mode.texi
cl : $(infodir)/cl
$(infodir)/cl: cl.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) cl.texi
cl.dvi: ${srcdir}/cl.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/cl.texi
cl.pdf: ${srcdir}/cl.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/cl.texi
dbus : $(infodir)/dbus
$(infodir)/dbus: dbus.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dbus.texi
dbus.dvi: ${srcdir}/dbus.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/dbus.texi
dbus.pdf: ${srcdir}/dbus.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/dbus.texi
dired-x : $(infodir)/dired-x
$(infodir)/dired-x: dired-x.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) dired-x.texi
dired-x.dvi: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/dired-x.texi
dired-x.pdf: ${srcdir}/dired-x.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/dired-x.texi
ebrowse : $(infodir)/ebrowse
$(infodir)/ebrowse: ebrowse.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ebrowse.texi
ebrowse.dvi: ${srcdir}/ebrowse.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ebrowse.texi
ebrowse.pdf: ${srcdir}/ebrowse.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ebrowse.texi
ede : $(infodir)/ede
$(infodir)/ede: ede.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ede.texi
ede.dvi: ${srcdir}/ede.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ede.texi
ede.pdf: ${srcdir}/ede.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ede.texi
ediff : $(infodir)/ediff
$(infodir)/ediff: ediff.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ediff.texi
ediff.dvi: ${srcdir}/ediff.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ediff.texi
ediff.pdf: ${srcdir}/ediff.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ediff.texi
edt : $(infodir)/edt
$(infodir)/edt: edt.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) edt.texi
edt.dvi: ${srcdir}/edt.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/edt.texi
edt.pdf: ${srcdir}/edt.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/edt.texi
eieio : $(infodir)/eieio
$(infodir)/eieio: eieio.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eieio.texi
eieio.dvi: ${srcdir}/eieio.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/eieio.texi
eieio.pdf: ${srcdir}/eieio.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/eieio.texi
+
+emacs-gnutls : $(infodir)/emacs-gnutls
+$(infodir)/emacs-gnutls: emacs-gnutls.texi
+ $(mkinfodir)
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi
+emacs-gnutls.dvi: ${srcdir}/emacs-gnutls.texi
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-gnutls.texi
+emacs-gnutls.pdf: ${srcdir}/emacs-gnutls.texi
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-gnutls.texi
emacs-mime : $(infodir)/emacs-mime
$(infodir)/emacs-mime: emacs-mime.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --enable-encoding emacs-mime.texi
emacs-mime.dvi: ${srcdir}/emacs-mime.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/emacs-mime.texi
emacs-mime.pdf: ${srcdir}/emacs-mime.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/emacs-mime.texi
epa : $(infodir)/epa
$(infodir)/epa: epa.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) epa.texi
epa.dvi: ${srcdir}/epa.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/epa.texi
epa.pdf: ${srcdir}/epa.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/epa.texi
erc : $(infodir)/erc
$(infodir)/erc: erc.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) erc.texi
erc.dvi: ${srcdir}/erc.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/erc.texi
erc.pdf: ${srcdir}/erc.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/erc.texi
ert : $(infodir)/ert
$(infodir)/ert: ert.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ert.texi
ert.dvi: ${srcdir}/ert.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ert.texi
ert.pdf: ${srcdir}/ert.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ert.texi
eshell : $(infodir)/eshell
$(infodir)/eshell: eshell.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eshell.texi
eshell.dvi: ${srcdir}/eshell.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/eshell.texi
eshell.pdf: ${srcdir}/eshell.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/eshell.texi
eudc : $(infodir)/eudc
$(infodir)/eudc: eudc.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) eudc.texi
eudc.dvi: ${srcdir}/eudc.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/eudc.texi
eudc.pdf: ${srcdir}/eudc.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/eudc.texi
efaq : $(infodir)/efaq
$(infodir)/efaq: faq.texi $(emacsdir)/emacsver.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) faq.texi
faq.dvi: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/faq.texi
faq.pdf: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/faq.texi
## This is the name used on the Emacs web-page.
## sed fixes up links to point to split version of the manual.
emacs-faq.html: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
$(MAKEINFO) $(MAKEINFO_OPTS) --no-split \
- --css-ref='/layout.css' --html -o $@ $<
+ --css-ref='/layout.css' --html -o $@ ${srcdir}/faq.texi
sed -i -e 's|a href="\([a-z]*\)\.html#\([^"]*\)"|a href="manual/html_node/\1/\2.html"|g' \
-e 's|/Top\.html|/|g' $@
emacs-faq.text: ${srcdir}/faq.texi $(emacsdir)/emacsver.texi
- $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ $<
+ $(MAKEINFO) $(MAKEINFO_OPTS) --plaintext -o $@ ${srcdir}/faq.texi
flymake : $(infodir)/flymake
$(infodir)/flymake: flymake.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) flymake.texi
flymake.dvi: ${srcdir}/flymake.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/flymake.texi
flymake.pdf: ${srcdir}/flymake.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/flymake.texi
forms : $(infodir)/forms
$(infodir)/forms: forms.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) forms.texi
forms.dvi: ${srcdir}/forms.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/forms.texi
forms.pdf: ${srcdir}/forms.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/forms.texi
# gnus/message/emacs-mime/sieve/pgg are part of Gnus:
gnus : $(infodir)/gnus
$(infodir)/gnus: gnus.texi gnus-faq.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) gnus.texi
gnus.dvi: ${srcdir}/gnus.texi gnus-faq.texi
- sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi
+ sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
$(ENVADD) $(TEXI2DVI) gnustmp.texi
cp gnustmp.dvi $*.dvi
rm gnustmp.*
gnus.pdf: ${srcdir}/gnus.texi gnus-faq.texi
- sed -e '/@iflatex/,/@end iflatex/d' $< > gnustmp.texi
+ sed -e '/@iflatex/,/@end iflatex/d' ${srcdir}/gnus.texi > gnustmp.texi
$(ENVADD) $(TEXI2PDF) gnustmp.texi
cp gnustmp.pdf $@
rm gnustmp.*
idlwave : $(infodir)/idlwave
$(infodir)/idlwave: idlwave.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split idlwave.texi
idlwave.dvi: ${srcdir}/idlwave.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/idlwave.texi
idlwave.pdf: ${srcdir}/idlwave.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/idlwave.texi
# The following target uses an explicit -o switch to work around
# the @setfilename directive in info.texi, which is required for
###info : $(infodir)/info # circular!
$(infodir)/info: info.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split $< -o $@
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) --no-split -o $@ info.texi
info.dvi: ${srcdir}/info.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/info.texi
info.pdf: ${srcdir}/info.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/info.texi
mairix-el : $(infodir)/mairix-el
$(infodir)/mairix-el: mairix-el.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mairix-el.texi
mairix-el.dvi: ${srcdir}/mairix-el.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/mairix-el.texi
mairix-el.pdf: ${srcdir}/mairix-el.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/mairix-el.texi
message : $(infodir)/message
$(infodir)/message: message.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) message.texi
message.dvi: ${srcdir}/message.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/message.texi
message.pdf: ${srcdir}/message.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/message.texi
mh-e : $(infodir)/mh-e
$(infodir)/mh-e: mh-e.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) mh-e.texi
mh-e.dvi: ${srcdir}/mh-e.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/mh-e.texi
mh-e.pdf: ${srcdir}/mh-e.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/mh-e.texi
newsticker : $(infodir)/newsticker
$(infodir)/newsticker: newsticker.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) newsticker.texi
newsticker.dvi: ${srcdir}/newsticker.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/newsticker.texi
newsticker.pdf: ${srcdir}/newsticker.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/newsticker.texi
nxml-mode : $(infodir)/nxml-mode
$(infodir)/nxml-mode: nxml-mode.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) nxml-mode.texi
nxml-mode.dvi: ${srcdir}/nxml-mode.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/nxml-mode.texi
nxml-mode.pdf: ${srcdir}/nxml-mode.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/nxml-mode.texi
org : $(infodir)/org
$(infodir)/org: org.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) org.texi
org.dvi: ${srcdir}/org.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/org.texi
org.pdf: ${srcdir}/org.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/org.texi
pcl-cvs : $(infodir)/pcl-cvs
$(infodir)/pcl-cvs: pcl-cvs.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pcl-cvs.texi
pcl-cvs.dvi: ${srcdir}/pcl-cvs.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/pcl-cvs.texi
pcl-cvs.pdf: ${srcdir}/pcl-cvs.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/pcl-cvs.texi
pgg : $(infodir)/pgg
$(infodir)/pgg: pgg.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) pgg.texi
pgg.dvi: ${srcdir}/pgg.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/pgg.texi
pgg.pdf: ${srcdir}/pgg.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/pgg.texi
rcirc : $(infodir)/rcirc
$(infodir)/rcirc: rcirc.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) rcirc.texi
rcirc.dvi: ${srcdir}/rcirc.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/rcirc.texi
rcirc.pdf: ${srcdir}/rcirc.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/rcirc.texi
reftex : $(infodir)/reftex
$(infodir)/reftex: reftex.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) reftex.texi
reftex.dvi: ${srcdir}/reftex.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/reftex.texi
reftex.pdf: ${srcdir}/reftex.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/reftex.texi
remember : $(infodir)/remember
$(infodir)/remember: remember.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) remember.texi
remember.dvi: ${srcdir}/remember.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/remember.texi
remember.pdf: ${srcdir}/remember.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/remember.texi
sasl : $(infodir)/sasl
$(infodir)/sasl: sasl.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sasl.texi
sasl.dvi: ${srcdir}/sasl.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/sasl.texi
sasl.pdf: ${srcdir}/sasl.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/sasl.texi
sc : $(infodir)/sc
$(infodir)/sc: sc.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sc.texi
sc.dvi: ${srcdir}/sc.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/sc.texi
sc.pdf: ${srcdir}/sc.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/sc.texi
semantic : $(infodir)/semantic
$(infodir)/semantic: semantic.texi sem-user.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) semantic.texi
semantic.dvi: ${srcdir}/semantic.texi sem-user.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/semantic.texi
semantic.pdf: ${srcdir}/semantic.texi sem-user.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/semantic.texi
ses : $(infodir)/ses
$(infodir)/ses: ses.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) ses.texi
ses.dvi: ${srcdir}/ses.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/ses.texi
ses.pdf: ${srcdir}/ses.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/ses.texi
sieve : $(infodir)/sieve
$(infodir)/sieve: sieve.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) sieve.texi
sieve.dvi: ${srcdir}/sieve.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/sieve.texi
sieve.pdf: ${srcdir}/sieve.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/sieve.texi
smtpmail : $(infodir)/smtpmail
$(infodir)/smtpmail: smtpmail.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) smtpmail.texi
smtpmail.dvi: ${srcdir}/smtpmail.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/smtpmail.texi
smtpmail.pdf: ${srcdir}/smtpmail.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/smtpmail.texi
speedbar : $(infodir)/speedbar
$(infodir)/speedbar: speedbar.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) speedbar.texi
speedbar.dvi: ${srcdir}/speedbar.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/speedbar.texi
speedbar.pdf: ${srcdir}/speedbar.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/speedbar.texi
tramp : $(infodir)/tramp
$(infodir)/tramp: tramp.texi trampver.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) -D emacs tramp.texi
tramp.dvi: ${srcdir}/tramp.texi trampver.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/tramp.texi
tramp.pdf: ${srcdir}/tramp.texi trampver.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/tramp.texi
url : $(infodir)/url
$(infodir)/url: url.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) url.texi
url.dvi: ${srcdir}/url.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/url.texi
url.pdf: ${srcdir}/url.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/url.texi
vip : $(infodir)/vip
$(infodir)/vip: vip.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) vip.texi
vip.dvi: ${srcdir}/vip.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/vip.texi
vip.pdf: ${srcdir}/vip.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/vip.texi
viper : $(infodir)/viper
$(infodir)/viper: viper.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) viper.texi
viper.dvi: ${srcdir}/viper.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/viper.texi
viper.pdf: ${srcdir}/viper.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/viper.texi
widget : $(infodir)/widget
$(infodir)/widget: widget.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) widget.texi
widget.dvi: ${srcdir}/widget.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/widget.texi
widget.pdf: ${srcdir}/widget.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/widget.texi
woman : $(infodir)/woman
$(infodir)/woman: woman.texi
$(mkinfodir)
- cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) $<
+ cd $(srcdir); $(MAKEINFO) $(MAKEINFO_OPTS) woman.texi
woman.dvi: ${srcdir}/woman.texi
- $(ENVADD) $(TEXI2DVI) $<
+ $(ENVADD) $(TEXI2DVI) ${srcdir}/woman.texi
woman.pdf: ${srcdir}/woman.texi
- $(ENVADD) $(TEXI2PDF) $<
+ $(ENVADD) $(TEXI2PDF) ${srcdir}/woman.texi
.PHONY: mostlyclean clean distclean maintainer-clean
Spaces are always OK as far as auth-source is concerned (but other
programs may not like them). Just put the data in quotes, escaping
-quotes as you'd expect with @code{\}.
+quotes as you'd expect with @samp{\}.
All these are optional. You could just say (but we don't recommend
it, we're just showing that it's possible)
to use the same password everywhere. Again, @emph{DO NOT DO THIS} or
you will be pwned as the kids say.
-``Netrc'' files are usually called @code{.authinfo} or @code{.netrc};
-nowadays @code{.authinfo} seems to be more popular and the auth-source
+``Netrc'' files are usually called @file{.authinfo} or @file{.netrc};
+nowadays @file{.authinfo} seems to be more popular and the auth-source
library encourages this confusion by accepting both, as you'll see
later.
If you have problems with the search, set @code{auth-source-debug} to
@code{'trivia} and see what host, port, and user the library is
-checking in the @code{*Messages*} buffer. Ditto for any other
+checking in the @samp{*Messages*} buffer. Ditto for any other
problems, your first step is always to see what's being checked. The
second step, of course, is to write a blog entry about it and wait for
the answer in the comments.
If you don't customize @code{auth-sources}, you'll have to live with
the defaults: any host and any port are looked up in the netrc
-file @code{~/.authinfo.gpg}, which is a GnuPG encrypted file
+file @file{~/.authinfo.gpg}, which is a GnuPG encrypted file
(@pxref{GnuPG and EasyPG Assistant Configuration}).
-If that fails, the unencrypted netrc files @code{~/.authinfo} and
-@code{~/.netrc} will be used.
+If that fails, the unencrypted netrc files @file{~/.authinfo} and
+@file{~/.netrc} will be used.
The typical netrc line example is without a port.
@node Secret Service API
@chapter Secret Service API
-TODO: how does it work generally, how does secrets.el work, some examples.
+The @dfn{Secret Service API} is a standard from
+@uref{http://www.freedesktop.org/wiki/Specifications/secret-storage-spec,,freedesktop.org}
+to securely store passwords and other confidential information. This
+API is implemented by system daemons such as the GNOME Keyring and the
+KDE Wallet (these are GNOME and KDE packages respectively and should
+be available on most modern GNU/Linux systems).
+
+The auth-source library uses the @file{secrets.el} library to connect
+through the Secret Service API. You can also use that library in
+other packages, it's not exclusive to auth-source.
+
+@defvar secrets-enabled
+After loading @file{secrets.el}, a non-@code{nil} value of this
+variable indicates the existence of a daemon providing the Secret
+Service API.
+@end defvar
+
+@deffn Command secrets-show-secrets
+This command shows all collections, items, and their attributes.
+@end deffn
+
+The atomic objects managed by the Secret Service API are @dfn{secret
+items}, which contain things an application wishes to store securely,
+like a password. Secret items have a label (a name), the @dfn{secret}
+(which is the string we want, like a password), and a set of lookup
+attributes. The attributes can be used to search and retrieve a
+secret item at a later date.
+
+Secret items are grouped in @dfn{collections}. A collection is
+sometimes called a @samp{keyring} or @samp{wallet} in GNOME Keyring
+and KDE Wallet but it's the same thing, a group of secrets.
+Collections are personal and protected so only the owner can open them.
+
+The most common collection is called @code{"login"}.
+
+A collection can have an alias. The alias @code{"default"} is
+commonly used so the clients don't have to know the specific name of
+the collection they open. Other aliases are not supported yet.
+Since aliases are globally accessible, set the @code{"default"} alias
+only when you're sure it's appropriate.
+
+@defun secrets-list-collections
+This function returns all the collection names as a list.
+@end defun
+
+@defun secrets-set-alias collection alias
+Set @var{alias} as alias of collection labeled @var{collection}.
+Currently only the alias @code{"default"} is supported.
+@end defun
+
+@defun secrets-get-alias alias
+Return the collection name @var{alias} is referencing to.
+Currently only the alias @code{"default"} is supported.
+@end defun
+
+Collections can be created and deleted by the functions
+@code{secrets-create-collection} and @code{secrets-delete-collection}.
+Usually, this is not done from within Emacs. Do not delete standard
+collections such as @code{"login"}.
+
+The special collection @code{"session"} exists for the lifetime of the
+corresponding client session (in our case, Emacs's lifetime). It is
+created automatically when Emacs uses the Secret Service interface and
+it is deleted when Emacs is killed. Therefore, it can be used to
+store and retrieve secret items temporarily. The @code{"session"}
+collection is better than a persistent collection when the secret
+items should not live longer than Emacs. The session collection can
+be specified either by the string @code{"session"}, or by @code{nil},
+whenever a collection parameter is needed in the following functions.
+
+@defun secrets-list-items collection
+Returns all the item labels of @var{collection} as a list.
+@end defun
+
+@defun secrets-create-item collection item password &rest attributes
+This function creates a new item in @var{collection} with label
+@var{item} and password @var{password}. @var{attributes} are
+key-value pairs set for the created item. The keys are keyword
+symbols, starting with a colon. Example:
+
+@example
+;;; The session "session", the label is "my item"
+;;; and the secret (password) is "geheim"
+(secrets-create-item "session" "my item" "geheim"
+ :method "sudo" :user "joe" :host "remote-host")
+@end example
+@end defun
+
+@defun secrets-get-secret collection item
+Return the secret of item labeled @var{item} in @var{collection}.
+If there is no such item, return @code{nil}.
+@end defun
+
+@defun secrets-delete-item collection item
+This function deletes item @var{item} in @var{collection}.
+@end defun
+
+The lookup attributes, which are specified during creation of a
+secret item, must be a key-value pair. Keys are keyword symbols,
+starting with a colon; values are strings. They can be retrieved
+from a given secret item and they can be used for searching of items.
+
+@defun secrets-get-attribute collection item attribute
+Returns the value of key @var{attribute} of item labeled @var{item} in
+@var{collection}. If there is no such item, or the item doesn't own
+this key, the function returns @code{nil}.
+@end defun
+
+@defun secrets-get-attributes collection item
+Return the lookup attributes of item labeled @var{item} in
+@var{collection}. If there is no such item, or the item has no
+attributes, it returns @code{nil}. Example:
+
+@example
+(secrets-get-attributes "session" "my item")
+ @result{} ((:user . "joe") (:host ."remote-host"))
+@end example
+@end defun
+
+@defun secrets-search-items collection &rest attributes
+Search for the items in @var{collection} with matching
+@var{attributes}. The @var{attributes} are key-value pairs, as used
+in @code{secrets-create-item}. Example:
+
+@example
+(secrets-search-items "session" :user "joe")
+ @result{} ("my item" "another item")
+@end example
+@end defun
+
+The auth-source library uses the @file{secrets.el} library and thus
+the Secret Service API when you specify a source matching
+@code{"secrets:COLLECTION"}. For instance, you could use
+@code{"secrets:session"} to use the @code{"session"} collection, open only
+for the lifetime of Emacs. Or you could use @code{"secrets:Login"} to
+open the @code{"Login"} collection. As a special case, you can use the
+symbol @code{default} in @code{auth-sources} (not a string, but a
+symbol) to specify the @code{"default"} alias. Here is a contrived
+example that sets @code{auth-sources} to search three collections and
+then fall back to @file{~/.authinfo.gpg}.
+
+@example
+(setq auth-sources '(default
+ "secrets:session"
+ "secrets:Login"
+ "~/.authinfo.gpg"))
+@end example
@node Help for developers
@chapter Help for developers
The auth-source library lets you control logging output easily.
@defvar auth-source-debug
-Set this variable to 'trivia to see lots of output in *Messages*, or
-set it to a function that behaves like @code{message} to do your own
-logging.
+Set this variable to @code{'trivia} to see lots of output in
+@samp{*Messages*}, or set it to a function that behaves like
+@code{message} to do your own logging.
@end defvar
The auth-source library only has a few functions for external use.
-@defun auth-source-search SPEC
-
-TODO: how to include docstring?
-
+@defun auth-source-search &rest spec &key type max host user port secret require create delete &allow-other-keys
+This function searches (or modifies) authentication backends according
+to @var{spec}. See the function's doc-string for details.
+@c TODO more details.
@end defun
Let's take a look at an example of using @code{auth-source-search}
-from Gnus' @code{nnimap.el}.
+from Gnus's @code{nnimap.el}.
@example
(defun nnimap-credentials (address ports)
So the responsibility of the API user that specified @code{:create t}
is to call the @code{:save-function} if it's provided.
-@defun auth-source-delete SPEC
-
-TODO: how to include docstring?
-
+@defun auth-source-delete &rest spec &key delete &allow-other-keys
+This function deletes entries matching @var{spec} from the
+authentication backends. It returns the entries that were deleted.
+The backend may not actually delete the entries.
@end defun
-@defun auth-source-forget SPEC
-
-TODO: how to include docstring?
-
+@defun auth-source-forget spec
+This function forgets any cached data that exactly matches @var{spec}.
+It returns @code{t} if it forget some data, and @code{nil} if no
+matching data was found.
@end defun
-@defun auth-source-forget+ SPEC
-
-TODO: how to include docstring?
-
+@defun auth-source-forget+ &rest spec &allow-other-keys
+This function forgets any cached data matching @var{spec}.
+It returns the number of items forgotten.
@end defun
@node GnuPG and EasyPG Assistant Configuration
@appendix GnuPG and EasyPG Assistant Configuration
If you don't customize @code{auth-sources}, the auth-source library
-reads @code{~/.authinfo.gpg}, which is a GnuPG encrypted file. Then
-it will check @code{~/.authinfo} but it's not recommended to use such
+reads @file{~/.authinfo.gpg}, which is a GnuPG encrypted file. Then
+it will check @file{~/.authinfo} but it's not recommended to use such
an unencrypted file.
In Emacs 23 or later there is an option @code{auto-encryption-mode} to
-automatically decrypt @code{*.gpg} files. It is enabled by default.
+automatically decrypt @file{*.gpg} files. It is enabled by default.
If you are using earlier versions of Emacs, you will need:
@lisp
@comment !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
This section explains the structure and semantics of the style
-variable @code{c-offset-alist}, the principal variable for configuring
+variable @code{c-offsets-alist}, the principal variable for configuring
indentation. Details of how to set it up, and its relationship to
@ccmode{}'s style system are given in @ref{Style Variables}.
--- /dev/null
+\input texinfo @c -*-texinfo-*-
+
+@setfilename ../../info/emacs-gnutls
+@settitle Emacs GnuTLS Integration @value{VERSION}
+
+@set VERSION 0.3
+
+@copying
+This file describes the Emacs GnuTLS integration.
+
+Copyright @copyright{} 2012 Free Software Foundation, Inc.
+
+@quotation
+Permission is granted to copy, distribute and/or modify this document
+under the terms of the GNU Free Documentation License, Version 1.3 or
+any later version published by the Free Software Foundation; with no
+Invariant Sections, with the Front-Cover texts being ``A GNU Manual,''
+and with the Back-Cover Texts as in (a) below. A copy of the license
+is included in the section entitled ``GNU Free Documentation License''
+in the Emacs manual.
+
+(a) The FSF's Back-Cover Text is: ``You have the freedom to copy and
+modify this GNU manual. Buying copies from the FSF supports it in
+developing GNU and promoting software freedom.''
+
+This document is part of a collection distributed under the GNU Free
+Documentation License. If you want to distribute this document
+separately from the collection, you can do so by adding a copy of the
+license to the document, as described in section 6 of the license.
+@end quotation
+@end copying
+
+@dircategory Emacs lisp libraries
+@direntry
+* GnuTLS: (gnutls). The Emacs GnuTLS Integration.
+@end direntry
+
+@titlepage
+@title Emacs GnuTLS Integration
+@author by Ted Zlatanov
+@page
+@vskip 0pt plus 1filll
+@insertcopying
+@end titlepage
+
+@contents
+
+@ifnottex
+@node Top
+@top Emacs GnuTLS
+This manual describes the Emacs GnuTLS integration.
+
+GnuTLS is a library that establishes encrypted @acronym{SSL} or
+@acronym{TLS} connections. Emacs supports it through the
+@file{gnutls.c} and @file{gnutls.h} C files and the @file{gnutls.el}
+Emacs Lisp library.
+
+@insertcopying
+
+@menu
+* Overview:: Overview of the GnuTLS integration.
+* Help For Users::
+* Help For Developers::
+* Function Index::
+* Variable Index::
+@end menu
+@end ifnottex
+
+@node Overview
+@chapter Overview
+
+The GnuTLS library is an optional add-on for Emacs. Through it, any
+Emacs Lisp program can establish encrypted network connections that
+use @dfn{Secure Socket Layer} (@acronym{SSL}) and @dfn{Transport Layer
+Security} (@acronym{TLS}) protocols. The process of using
+@acronym{SSL} and @acronym{TLS} in establishing connections is as
+automated and transparent as possible.
+
+The user has only a few customization options currently: the log
+level, priority string, trustfile list, and the minimum number of bits
+to be used in Diffie-Hellman key exchange. Rumors that every Emacs
+library requires at least 83 customizable variables are thus proven
+false.
+
+@node Help For Users
+@chapter Help For Users
+
+From the user's perspective, there's nothing to the GnuTLS
+integration. It Just Works for any Emacs Lisp code that uses
+@code{open-protocol-stream} or @code{open-network-stream}
+(@pxref{Network,, Network Connections, elisp, The Emacs Lisp Reference
+Manual}). The two functions are equivalent, the first one being an
+alias of the second.
+
+There's one way to find out if GnuTLS is available, by calling
+@code{gnutls-available-p}. This is a little bit trickier on the W32
+(Windows) platform, but if you have the GnuTLS DLLs (available from
+@url{http://sourceforge.net/projects/ezwinports/files/} thanks to Eli
+Zaretskii) in the same directory as Emacs, you should be OK.
+
+@defun gnutls-available-p
+This function returns t if GnuTLS is available in this instance of Emacs.
+@end defun
+
+Oh, but sometimes things go wrong. Budgets aren't balanced,
+television ads lie, and even TLS and SSL connections can fail to work
+properly. Well, there's something to be done in the last case.
+
+@defvar gnutls-log-level
+The @code{gnutls-log-level} variable sets the log level. 1 is
+verbose. 2 is very verbose. 5 is crazy. Crazy! Set it to 1 or 2
+and look in the @code{*Messages*} buffer for the debugging
+information.
+@end defvar
+
+@defvar gnutls-algorithm-priority
+The @code{gnutls-algorithm-priority} variable sets the GnuTLS priority
+string. This is global, not per host name (although
+@code{gnutls-negotiate} supports a priority string per connection so
+it could be done if needed). The priority string syntax is in the
+@uref{http://www.gnu.org/software/gnutls/documentation.html, GnuTLS
+documentation}.
+@end defvar
+
+@defvar gnutls-trustfiles
+The @code{gnutls-trustfiles} variable is a list of trustfiles
+(certificates for the issuing authorities). This is global, not per
+host name (although @code{gnutls-negotiate} supports a trustfile per
+connection so it could be done if needed). The trustfiles can be in
+PEM or DER format and examples can be found in most Unix
+distributions. By default four locations are tried in this order:
+@file{/etc/ssl/certs/ca-certificates.crt} for Debian, Ubuntu, Gentoo
+and Arch Linux; @file{/etc/pki/tls/certs/ca-bundle.crt} for Fedora
+and RHEL; @file{/etc/ssl/ca-bundle.pem} for Suse;
+@file{/usr/ssl/certs/ca-bundle.crt} for Cygwin. You can easily
+customize @code{gnutls-trustfiles} to be something else, but let us
+know if you do, so we can make the change to benefit the other users
+of that platform.
+@end defvar
+
+@defvar gnutls-min-prime-bits
+The @code{gnutls-min-prime-bits} variable is a pretty exotic
+customization for cases where you want to refuse handshakes with keys
+under a specific size. If you don't know for sure that you need it,
+you don't. Leave it @code{nil}.
+@end defvar
+
+@node Help For Developers
+@chapter Help For Developers
+
+The GnuTLS library is detected automatically at compile time. You
+should see that it's enabled in the @code{configure} output. If not,
+follow the standard procedure for finding out why a system library is
+not picked up by the Emacs compilation. On the W32 (Windows)
+platform, installing the DLLs with a recent build should be enough.
+
+Just use @code{open-protocol-stream} or @code{open-network-stream}
+(the two are equivalent, the first one being an alias to the second).
+You should not have to use the @file{gnutls.el} functions directly.
+But you can test them with @code{open-gnutls-stream}.
+
+@defun open-gnutls-stream name buffer host service
+This function creates a buffer connected to a specific @var{host} and
+@var{service} (port number or service name). The parameters and their
+syntax are the same as those given to @code{open-network-stream}
+(@pxref{Network,, Network Connections, elisp, The Emacs Lisp Reference
+Manual}). The connection process is called @var{name} (made unique if
+necessary). This function returns the connection process.
+
+@lisp
+;; open a HTTPS connection
+(open-gnutls-stream "tls" "tls-buffer" "yourserver.com" "https")
+
+;; open a IMAPS connection
+(open-gnutls-stream "tls" "tls-buffer" "imap.gmail.com" "imaps")
+@end lisp
+
+@end defun
+
+The function @code{gnutls-negotiate} is not generally useful and it
+may change as needed, so please see @file{gnutls.el} for the details.
+
+@defun gnutls-negotiate spec
+Please see @file{gnutls.el} for the @var{spec} details and for usage,
+but do not rely on this function's interface if possible.
+@end defun
+
+@node Function Index
+@chapter Function Index
+@printindex fn
+
+@node Variable Index
+@chapter Variable Index
+@printindex vr
+
+@bye
+
+@c End:
@subsubheading Answer
-There's not only the Gnus manual but also the manuals
-for message, emacs-mime, sieve and pgg. Those packages
-are distributed with Gnus and used by Gnus but aren't
-really part of core Gnus, so they are documented in
-different info files, you should have a look in those
-manuals, too.
+There's not only the Gnus manual but also the manuals for message,
+emacs-mime, sieve, EasyPG Assistant, and pgg. Those packages are
+distributed with Gnus and used by Gnus but aren't really part of core
+Gnus, so they are documented in different info files, you should have
+a look in those manuals, too.
@node FAQ 8-3
@subsubheading Question 8.3
@item Message manual: Composing messages
@item Emacs-MIME: Composing messages; @acronym{MIME}-specific parts.
@item Sieve: Managing Sieve scripts in Emacs.
-@item PGG: @acronym{PGP/MIME} with Gnus.
+@item EasyPG: @acronym{PGP/MIME} with Gnus.
@item SASL: @acronym{SASL} authentication in Emacs.
@end itemize
* Message:(message). Composing messages.
* Emacs-MIME:(emacs-mime). Composing messages; @acronym{MIME}-specific parts.
* Sieve:(sieve). Managing Sieve scripts in Emacs.
-* PGG:(pgg). @acronym{PGP/MIME} with Gnus.
+* EasyPG:(epa). @acronym{PGP/MIME} with Gnus.
* SASL:(sasl). @acronym{SASL} authentication in Emacs.
@detailmenu
@include emacs-mime.texi
@chapter Sieve
@include sieve.texi
-@chapter PGG
-@include pgg.texi
+@chapter EasyPG
+@include epa.texi
@chapter SASL
@include sasl.texi
@end iflatex
$(infodir)/remember $(infodir)/nxml-mode \
$(infodir)/epa $(infodir)/mairix-el $(infodir)/sasl \
$(infodir)/auth $(infodir)/eieio $(infodir)/ede \
- $(infodir)/semantic $(infodir)/edt
+ $(infodir)/semantic $(infodir)/edt $(infodir)/emacs-gnutls
DVI_TARGETS = calc.dvi cc-mode.dvi cl.dvi dbus.dvi dired-x.dvi \
ediff.dvi forms.dvi gnus.dvi message.dvi emacs-mime.dvi \
sieve.dvi pgg.dvi mh-e.dvi \
newsticker.dvi rcirc.dvi erc.dvi ert.dvi \
remember.dvi nxml-mode.dvi \
epa.dvi mairix-el.dvi sasl.dvi auth.dvi eieio.dvi ede.dvi \
- semantic.dvi edt.dvi
+ semantic.dvi edt.dvi emacs-gnutls.dvi
INFOSOURCES = info.texi
# The following rule does not work with all versions of `make'.
edt.dvi: edt.texi doclicense.texi
$(ENVADD) $(TEXI2DVI) $(srcdir)/edt.texi
+$(infodir)/emacs-gnutls: emacs-gnutls.texi doclicense.texi
+ $(MAKEINFO) $(MAKEINFO_OPTS) emacs-gnutls.texi
+emacs-gnutls.dvi: emacs-gnutls.texi doclicense.texi
+ $(ENVADD) $(TEXI2DVI) $(srcdir)/emacs-gnutls.texi
+
mostlyclean:
- $(DEL) *.log *.cp *.fn *.ky *.pg *.vr core *.tp *.core gnustmp.*
$(infodir)/epa* $(infodir)/sasl* \
$(infodir)/mairix-el* $(infodir)/auth* \
$(infodir)/eieio* $(infodir)/ede* \
- $(infodir)/semantic* $(infodir)edt*
+ $(infodir)/semantic* $(infodir)edt* $(infodir)/emacs-gnutls*
distclean: clean
- $(DEL) makefile
@acronym{PGP/MIME} requires an external OpenPGP implementation, such
as @uref{http://www.gnupg.org/, GNU Privacy Guard}. Pre-OpenPGP
-implementations such as PGP 2.x and PGP 5.x are also supported. One
-Emacs interface to the PGP implementations, PGG (@pxref{Top, ,PGG,
-pgg, PGG Manual}), is included, but Mailcrypt is also supported.
-@xref{PGP Compatibility}.
+implementations such as PGP 2.x and PGP 5.x are also supported. The
+default Emacs interface to the PGP implementation is EasyPG
+(@pxref{Top,,EasyPG Assistant User's Manual, epa, EasyPG Assistant
+User's Manual}), but PGG (@pxref{Top, ,PGG, pgg, PGG Manual}) and
+Mailcrypt are also supported. @xref{PGP Compatibility}.
@cindex gpg-agent
Message internally calls GnuPG (the @command{gpg} command) to perform
gpg --use-agent --sign < /dev/null > /dev/null
@end example
-The Lisp variable @code{pgg-gpg-use-agent} controls whether to use
-@command{gpg-agent}. See also @xref{Caching passphrase, , , pgg, The
-PGG Manual}.
-
-
@node PGP Compatibility
@subsection Compatibility with older implementations
If you have imported your old PGP 2.x key into GnuPG, and want to send
signed and encrypted messages to your fellow PGP 2.x users, you'll
discover that the receiver cannot understand what you send. One
-solution is to use PGP 2.x instead (i.e., if you use @code{pgg}, set
+solution is to use PGP 2.x instead (e.g.@: if you use @code{pgg}, set
@code{pgg-default-scheme} to @code{pgp}). You could also convince your
fellow PGP 2.x users to convert to GnuPG.
@vindex mml-signencrypt-style-alist
@c %**end of header
@copying
-This manual documents nxml-mode, an Emacs major mode for editing
+This manual documents nXML mode, an Emacs major mode for editing
XML with RELAX NG support.
Copyright @copyright{} 2007-2012 Free Software Foundation, Inc.
@node Completion
@chapter Completion
-Apart from real-time validation, the most important feature that
-nxml-mode provides for assisting in document creation is "completion".
+Apart from real-time validation, the most important feature that nXML
+mode provides for assisting in document creation is "completion".
Completion assists the user in inserting characters at point, based on
knowledge of the schema and on the contents of the buffer before
point.
-The traditional GNU Emacs key combination for completion in a
-buffer is @kbd{M-@key{TAB}}. However, many window systems
-and window managers use this key combination themselves (typically for
-switching between windows) and do not pass it to applications. It's
-hard to find key combinations in GNU Emacs that are both easy to type
-and not taken by something else. @kbd{C-@key{RET}} (i.e.
-pressing the Enter or Return key, while the Ctrl key is held down) is
-available. It won't be available on a traditional terminal (because
-it is indistinguishable from Return), but it will work with a window
-system. Therefore we adopt the following solution by default: use
-@kbd{C-@key{RET}} when there's a window system and
-@kbd{M-@key{TAB}} when there's not. In the following, I
-will assume that a window system is being used and will therefore
-refer to @kbd{C-@key{RET}}.
-
-Completion works by examining the symbol preceding point. This
-is the symbol to be completed. The symbol to be completed may be the
-empty. Completion considers what symbols starting with the symbol to
-be completed would be valid replacements for the symbol to be
+nXML mode adapts the standard GNU Emacs command for completion in a
+buffer: @code{completion-at-point}, which is bound to @kbd{C-M-i} and
+@kbd{M-@key{TAB}}. Note that many window systems and window managers
+use @kbd{M-@key{TAB}} themselves (typically for switching between
+windows) and do not pass it to applications. In that case, you should
+type @kbd{C-M-i} or @kbd{@key{ESC} @key{TAB}} for completion, or bind
+@code{completion-at-point} to a key that is convenient for you. In
+the following, I will assume that you type @kbd{C-M-i}.
+
+nXML mode completion works by examining the symbol preceding point.
+This is the symbol to be completed. The symbol to be completed may be
+the empty. Completion considers what symbols starting with the symbol
+to be completed would be valid replacements for the symbol to be
completed, given the schema and the contents of the buffer before
point. These symbols are the possible completions. An example may
make this clearer. Suppose the buffer looks like this (where @point{}
In this case, the symbol to be completed is empty, and the possible
completions are just @samp{http://www.w3.org/1999/xhtml}.
-When you type @kbd{C-@key{RET}}, what happens depends
+When you type @kbd{C-M-i}, what happens depends
on what the set of possible completions are.
@itemize @bullet
@end example
@noindent
-@kbd{C-@key{RET}} will yield
+@kbd{C-M-i} will yield
@example
<html xmlns="http://www.w3.org/1999/xhtml">
@end example
@noindent
-The symbol to be completed is @samp{x}. The possible completions
-are @samp{xmlns} and @samp{xml:lang}. These share a
-common prefix of @samp{xml}. Thus, @kbd{C-@key{RET}}
-will yield:
+The symbol to be completed is @samp{x}. The possible completions are
+@samp{xmlns} and @samp{xml:lang}. These share a common prefix of
+@samp{xml}. Thus, @kbd{C-M-i} will yield:
@example
<html xml@point{}
@end example
@noindent
-Typically, you would do @kbd{C-@key{RET}} again, which would
-have the result described in the next item.
+Typically, you would do @kbd{C-M-i} again, which would have the result
+described in the next item.
@item
If there is more than one possible completion, but the
possible completions do not share a non-empty prefix, then Emacs will
@end example
@noindent
-(If you do @kbd{C-@key{RET}} again, the namespace URI will
-be inserted. Should that happen automatically?)
+(If you do @kbd{C-M-i} again, the namespace URI will be
+inserted. Should that happen automatically?)
@end itemize
@node Inserting end-tags
@chapter Inserting end-tags
-The main redundancy in XML syntax is end-tags. nxml-mode provides
+The main redundancy in XML syntax is end-tags. nXML mode provides
several ways to make it easier to enter end-tags. You can use all of
these without a schema.
-You can use @kbd{C-@key{RET}} after @samp{</}
-to complete the rest of the end-tag.
+You can use @kbd{C-M-i} after @samp{</} to complete the rest of the
+end-tag.
@kbd{C-c C-f} inserts an end-tag for the element containing
point. This command is useful when you want to input the start-tag,
indented. The @samp{i} is mnemonic for inline and the
@samp{b} is mnemonic for block.
-Finally, you can customize nxml-mode so that @kbd{/}
-automatically inserts the rest of the end-tag when it occurs after
-@samp{<}, by doing
+Finally, you can customize nXML mode so that @kbd{/} automatically
+inserts the rest of the end-tag when it occurs after @samp{<}, by
+doing
@display
@kbd{M-x customize-variable @key{RET} nxml-slash-auto-complete-flag @key{RET}}
@node DTDs
@chapter DTDs
-nxml-mode is designed to support the creation of standalone XML
+nXML mode is designed to support the creation of standalone XML
documents that do not depend on a DTD. Although it is common practice
to insert a DOCTYPE declaration referencing an external DTD, this has
undesirable side-effects. It means that the document is no longer
@setfilename ../../info/org
@settitle The Org Manual
-@set VERSION 7.8.03
-@set DATE January 2012
+@set VERSION 7.8.09
+@set DATE April 2012
@c Use proper quote and backtick for code sections in PDF output
@c Cf. Texinfo manual 14.2
@copying
This manual is for Org version @value{VERSION}.
-Copyright @copyright{} 2004-2012 Free Software Foundation, Inc.
+Copyright @copyright{} 2004-2012 Free Software Foundation, Inc.
@quotation
Permission is granted to copy, distribute and/or modify this document
OpenDocument Text export
-* Pre-requisites for @acronym{ODT} export:: What packages @acronym{ODT} exporter relies on
-* @acronym{ODT} export commands:: How to invoke @acronym{ODT} export
+* Pre-requisites for ODT export:: What packages ODT exporter relies on
+* ODT export commands:: How to invoke ODT export
+* Extending ODT export:: How to produce @samp{doc}, @samp{pdf} files
* Applying custom styles:: How to apply custom styles to the output
-* Links in @acronym{ODT} export:: How links will be interpreted and formatted
-* Tables in @acronym{ODT} export:: How Tables are exported
-* Images in @acronym{ODT} export:: How to insert images
-* Math formatting in @acronym{ODT} export:: How @LaTeX{} fragments are formatted
-* Literal examples in @acronym{ODT} export:: How source and example blocks are formatted
-* Advanced topics in @acronym{ODT} export:: Read this if you are a power user
+* Links in ODT export:: How links will be interpreted and formatted
+* Tables in ODT export:: How Tables are exported
+* Images in ODT export:: How to insert images
+* Math formatting in ODT export:: How @LaTeX{} fragments are formatted
+* Labels and captions in ODT export:: How captions are rendered
+* Literal examples in ODT export:: How source and example blocks are formatted
+* Advanced topics in ODT export:: Read this if you are a power user
-Math formatting in @acronym{ODT} export
+Math formatting in ODT export
* Working with @LaTeX{} math snippets:: How to embed @LaTeX{} math fragments
* Working with MathML or OpenDocument formula files:: How to embed equations in native format
-Advanced topics in @acronym{ODT} export
+Advanced topics in ODT export
-* Exporting and converting to other formats:: How to produce @samp{pdf} and other formats
+* Configuring a document converter:: How to register a document converter
* Working with OpenDocument style files:: Explore the internals
* Creating one-off styles:: How to produce custom highlighting etc
-* Customizing tables in @acronym{ODT} export:: How to define and use Table templates
+* Customizing tables in ODT export:: How to define and use Table templates
* Validating OpenDocument XML:: How to debug corrupt OpenDocument files
Publishing
* session:: Preserve the state of code evaluation
* noweb:: Toggle expansion of noweb references
* noweb-ref:: Specify block's noweb reference resolution target
+* noweb-sep:: String used to separate noweb references
* cache:: Avoid re-evaluating unchanged code blocks
* sep:: Delimiter for writing tabular results outside Org
* hlines:: Handle horizontal lines in tables
(in the sequence the keywords have been defined in the setup) or by the value
of a property. Reverse sorting is possible as well. You can also supply
your own function to extract the sorting key. With a @kbd{C-u} prefix,
-sorting will be case-sensitive. With two @kbd{C-u C-u} prefixes, duplicate
-entries will also be removed.
+sorting will be case-sensitive.
@orgcmd{C-x n s,org-narrow-to-subtree}
Narrow buffer to current subtree.
@orgcmd{C-x n b,org-narrow-to-block}
list. An item ends before the next line that is less or equally indented
than its bullet/number.
-@vindex org-list-ending-method
-@vindex org-list-end-regexp
@vindex org-empty-line-terminates-plain-lists
-Two methods@footnote{To disable either of them, configure
-@code{org-list-ending-method}.} are provided to terminate lists. A list ends
-whenever every item has ended, which means before any line less or equally
-indented than items at top level. It also ends before two blank
+A list ends whenever every item has ended, which means before any line less
+or equally indented than items at top level. It also ends before two blank
lines@footnote{See also @code{org-empty-line-terminates-plain-lists}.}. In
-that case, all items are closed. For finer control, you can end lists with
-any pattern set in @code{org-list-end-regexp}. Here is an example:
+that case, all items are closed. Here is an example:
@example
@group
Org comes with a fast and intuitive table editor. Spreadsheet-like
calculations are supported using the Emacs @file{calc} package
-@ifinfo
-(@pxref{Top,Calc,,Calc,Gnu Emacs Calculator Manual}).
-@end ifinfo
-@ifnotinfo
-(see the Emacs Calculator manual for more information about the Emacs
-calculator).
-@end ifnotinfo
+(@pxref{Top, Calc, , calc, Gnu Emacs Calculator Manual}).
@menu
* Built-in table editor:: Simple tables
order to specify column groups, you can use a special row where the
first field contains only @samp{/}. The further fields can either
contain @samp{<} to indicate that this column should start a group,
-@samp{>} to indicate the end of a column, or @samp{<>} to make a column
+@samp{>} to indicate the end of a column, or @samp{<>} (no space between @samp{<}
+and @samp{>}) to make a column
a group of its own. Boundaries between column groups will upon export be
marked with vertical lines. Here is an example:
non-standard convention that @samp{/} has lower precedence than
@samp{*}, so that @samp{a/b*c} is interpreted as @samp{a/(b*c)}.} Before
evaluation by @code{calc-eval} (@pxref{Calling Calc from
-Your Programs,calc-eval,Calling Calc from Your Lisp Programs,Calc,GNU
+Your Programs, calc-eval, Calling Calc from Your Lisp Programs, calc, GNU
Emacs Calc Manual}),
-@c FIXME: The link to the Calc manual in HTML does not work.
variable substitution takes place according to the rules described above.
@cindex vectors, in table calculations
The range vectors can be directly fed into the Calc vector functions
can resort to special versions of these functions like @code{org-date} or
@code{org-anniversary}. These work just like the corresponding @code{diary-}
functions, but with stable ISO order of arguments (year, month, day) wherever
-applicable, independent of the value of @code{calendar-date-style}.}. For example
+applicable, independent of the value of @code{calendar-date-style}.}. For
+example with optional time
@example
-* The nerd meeting on every 2nd Thursday of the month
+* 22:00-23:00 The nerd meeting on every 2nd Thursday of the month
<%%(org-float t 4 2)>
@end example
@example
*** TODO write article about the Earth for the Guide
- The editor in charge is [[bbdb:Ford Prefect]]
DEADLINE: <2004-02-29 Sun>
+ The editor in charge is [[bbdb:Ford Prefect]]
@end example
You can specify a different lead time for warnings for a specific
By customizing the variable @code{org-clock-idle-time} to some integer, such
as 10 or 15, Emacs can alert you when you get back to your computer after
being idle for that many minutes@footnote{On computers using Mac OS X,
-idleness is based on actual user idleness, not just Emacs's idle time. For
+idleness is based on actual user idleness, not just Emacs' idle time. For
X11, you can install a utility program @file{x11idle.c}, available in the
UTILITIES directory of the Org git distribution, to get the same general
treatment of idleness. On other systems, idle time refers to Emacs idle time
Jump to the location where @code{org-refile} last moved a tree to.
@item C-2 C-c C-w
Refile as the child of the item currently being clocked.
-@item C-0 C-c C-w @ @r{or} @ C-u C-u C-u C-c C-w
-
@orgcmdtkc{C-0 C-c C-w @ @r{or} @ C-u C-u C-u C-c C-w,C-0 C-c C-w,org-refile-cache-clear}
-
Clear the target cache. Caching of refile targets can be turned on by
setting @code{org-refile-use-cache}. To make the command see new possible
targets, you have to clear the cache with this command.
@tsubheading{Motion}
@cindex motion commands in agenda
@orgcmd{n,org-agenda-next-line}
-Next line (same as @key{up} and @kbd{C-p}).
+Next line (same as @key{down} and @kbd{C-n}).
@orgcmd{p,org-agenda-previous-line}
-Previous line (same as @key{down} and @kbd{C-n}).
+Previous line (same as @key{up} and @kbd{C-p}).
@tsubheading{View/Go to Org file}
@orgcmdkkc{@key{SPC},mouse-3,org-agenda-show-and-scroll-up}
Display the original location of the item in another window.
broad range of other applications. @LaTeX{} export lets you use Org mode and
its structured editing functions to easily create @LaTeX{} files. DocBook
export makes it possible to convert Org files to many other formats using
-DocBook tools. OpenDocument Text(@acronym{ODT}) export allows seamless
+DocBook tools. OpenDocument Text (ODT) export allows seamless
collaboration across organizational boundaries. For project management you
can create gantt and resource charts by using TaskJuggler export. To
incorporate entries with associated times like deadlines or appointments into
a desktop calendar program like iCal, Org mode can also produce extracts in
-the iCalendar format. Currently Org mode only supports export, not import of
+the iCalendar format. Currently, Org mode only supports export, not import of
these different formats.
Org supports export of selected regions when @code{transient-mark-mode} is
@cindex org-modules
Orgmode@footnote{Versions 7.8 or later} supports export to OpenDocument Text
-(@acronym{ODT}) format using the @file{org-odt.el} module. Documents created
+(ODT) format using the @file{org-odt.el} module. Documents created
by this exporter use the @cite{OpenDocument-v1.2
specification}@footnote{@url{http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2.html,
Open Document Format for Office Applications (OpenDocument) Version 1.2}} and
are compatible with LibreOffice 3.4.
@menu
-* Pre-requisites for @acronym{ODT} export:: What packages @acronym{ODT} exporter relies on
-* @acronym{ODT} export commands:: How to invoke @acronym{ODT} export
+* Pre-requisites for ODT export:: What packages ODT exporter relies on
+* ODT export commands:: How to invoke ODT export
+* Extending ODT export:: How to produce @samp{doc}, @samp{pdf} files
* Applying custom styles:: How to apply custom styles to the output
-* Links in @acronym{ODT} export:: How links will be interpreted and formatted
-* Tables in @acronym{ODT} export:: How Tables are exported
-* Images in @acronym{ODT} export:: How to insert images
-* Math formatting in @acronym{ODT} export:: How @LaTeX{} fragments are formatted
-* Literal examples in @acronym{ODT} export:: How source and example blocks are formatted
-* Advanced topics in @acronym{ODT} export:: Read this if you are a power user
+* Links in ODT export:: How links will be interpreted and formatted
+* Tables in ODT export:: How Tables are exported
+* Images in ODT export:: How to insert images
+* Math formatting in ODT export:: How @LaTeX{} fragments are formatted
+* Labels and captions in ODT export:: How captions are rendered
+* Literal examples in ODT export:: How source and example blocks are formatted
+* Advanced topics in ODT export:: Read this if you are a power user
@end menu
-@node Pre-requisites for @acronym{ODT} export, @acronym{ODT} export commands, OpenDocument Text export, OpenDocument Text export
-@subsection Pre-requisites for @acronym{ODT} export
+@node Pre-requisites for ODT export, ODT export commands, OpenDocument Text export, OpenDocument Text export
+@subsection Pre-requisites for ODT export
@cindex zip
-The @acronym{ODT} exporter relies on the @file{zip} program to create the final
+The ODT exporter relies on the @file{zip} program to create the final
output. Check the availability of this program before proceeding further.
-@node @acronym{ODT} export commands, Applying custom styles, Pre-requisites for @acronym{ODT} export, OpenDocument Text export
-@subsection @acronym{ODT} export commands
+@node ODT export commands, Extending ODT export, Pre-requisites for ODT export, OpenDocument Text export
+@subsection ODT export commands
-@subsubheading Exporting to @acronym{ODT}
+@subsubheading Exporting to ODT
@anchor{x-export-to-odt}
@cindex region, active
@cindex property EXPORT_FILE_NAME
Export as OpenDocument Text file.
+
@vindex org-export-odt-preferred-output-format
If @code{org-export-odt-preferred-output-format} is specified, automatically
-convert the exported file to that format.
-@xref{x-export-to-other-formats,,Automatically exporting to other formats}.
+convert the exported file to that format. @xref{x-export-to-other-formats, ,
+Automatically exporting to other formats}.
-For an Org file @file{myfile.org}, the @acronym{ODT} file will be
+For an Org file @file{myfile.org}, the ODT file will be
@file{myfile.odt}. The file will be overwritten without warning. If there
is an active region,@footnote{This requires @code{transient-mark-mode} to be
turned on} only the region will be exported. If the selected region is a
@orgcmd{C-c C-e O,org-export-as-odt-and-open}
Export as OpenDocument Text file and open the resulting file.
+
@vindex org-export-odt-preferred-output-format
If @code{org-export-odt-preferred-output-format} is specified, open the
-converted file instead.
-@xref{x-export-to-other-formats,,Automatically exporting to other formats}.
+converted file instead. @xref{x-export-to-other-formats, , Automatically
+exporting to other formats}.
@end table
-@subsubheading Automatically exporting to other formats
+@node Extending ODT export, Applying custom styles, ODT export commands, OpenDocument Text export
+@subsection Extending ODT export
+
+The ODT exporter can interface with a variety of document
+converters and supports popular converters out of the box. As a result, you
+can use it to export to formats like @samp{doc} or convert a document from
+one format (say @samp{csv}) to another format (say @samp{ods} or @samp{xls}).
+
+@cindex @file{unoconv}
+@cindex LibreOffice
+If you have a working installation of LibreOffice, a document converter is
+pre-configured for you and you can use it right away. If you would like to
+use @file{unoconv} as your preferred converter, customize the variable
+@code{org-export-odt-convert-process} to point to @code{unoconv}. You can
+also use your own favorite converter or tweak the default settings of the
+@file{LibreOffice} and @samp{unoconv} converters. @xref{Configuring a
+document converter}.
+
+@subsubsection Automatically exporting to other formats
@anchor{x-export-to-other-formats}
+
@vindex org-export-odt-preferred-output-format
-Very often, you will find yourself exporting to @acronym{ODT} format, only to
-immediately save the exported document to a different format like @samp{pdf}.
-In such cases, you will find it convenient to configure a converter
-(@pxref{Exporting and converting to other formats}) and specify your
+Very often, you will find yourself exporting to ODT format, only to
+immediately save the exported document to other formats like @samp{doc},
+@samp{docx}, @samp{rtf}, @samp{pdf} etc. In such cases, you can specify your
preferred output format by customizing the variable
@code{org-export-odt-preferred-output-format}. This way, the export commands
-(@pxref{x-export-to-odt,,Exporting to ODT}) can be extended to also export to
-the preferred format.
+(@pxref{x-export-to-odt,,Exporting to ODT}) can be extended to export to a
+format that is of immediate interest to you.
-@node Applying custom styles, Links in @acronym{ODT} export, @acronym{ODT} export commands, OpenDocument Text export
+@subsubsection Converting between document formats
+@anchor{x-convert-to-other-formats}
+
+There are many document converters in the wild which support conversion to
+and from various file formats, including, but not limited to the
+ODT format. LibreOffice converter, mentioned above, is one such
+converter. Once a converter is configured, you can interact with it using
+the following command.
+
+@vindex org-export-odt-convert
+@table @kbd
+
+@item M-x org-export-odt-convert
+Convert an existing document from one format to another. With a prefix
+argument, also open the newly produced file.
+@end table
+
+@node Applying custom styles, Links in ODT export, Extending ODT export, OpenDocument Text export
@subsection Applying custom styles
@cindex styles, custom
@cindex template, custom
-The @acronym{ODT} exporter ships with a set of OpenDocument styles
+The ODT exporter ships with a set of OpenDocument styles
(@pxref{Working with OpenDocument style files}) that ensure a well-formatted
output. These factory styles, however, may not cater to your specific
tastes. To customize the output, you can either modify the above styles
@enumerate
@item
Create a sample @file{example.org} file with the below settings and export it
-to @acronym{ODT} format.
+to ODT format.
@example
#+OPTIONS: H:10 num:t
recommended that you only work with templates that are directly derived from
the factory settings.
-@node Links in @acronym{ODT} export, Tables in @acronym{ODT} export, Applying custom styles, OpenDocument Text export
-@subsection Links in @acronym{ODT} export
+@node Links in ODT export, Tables in ODT export, Applying custom styles, OpenDocument Text export
+@subsection Links in ODT export
@cindex tables, in DocBook export
-The @acronym{ODT} exporter creates cross-references (aka bookmarks) for
-internal links. It creates Internet-style links for all other links.
+ODT exporter creates native cross-references for internal links. It creates
+Internet-style links for all other links.
-@node Tables in @acronym{ODT} export, Images in @acronym{ODT} export, Links in @acronym{ODT} export, OpenDocument Text export
-@subsection Tables in @acronym{ODT} export
+A link with no description and destined to a regular (un-itemized) outline
+heading is replaced with a cross-reference and section number of the heading.
+
+A @samp{\ref@{label@}}-style reference to an image, table etc. is replaced
+with a cross-reference and sequence number of the labeled entity.
+@xref{Labels and captions in ODT export}.
+
+@node Tables in ODT export, Images in ODT export, Links in ODT export, OpenDocument Text export
+@subsection Tables in ODT export
@cindex tables, in DocBook export
Export of native Org mode tables (@pxref{Tables}) and simple @file{table.el}
tables that have column or row spans - is not supported. Such tables are
stripped from the exported document.
-By default, a table is exported with top and bottom frames and with
-rules separating row and column groups (@pxref{Column groups}). If the table
-specifies alignment and relative width for its columns (@pxref{Column width
-and alignment}) then these are honored on export.@footnote{The column widths
-are interpreted as weighted ratios with the default weight being 1}
+By default, a table is exported with top and bottom frames and with rules
+separating row and column groups (@pxref{Column groups}). Furthermore, all
+tables are typeset to occupy the same width. If the table specifies
+alignment and relative width for its columns (@pxref{Column width and
+alignment}) then these are honored on export.@footnote{The column widths are
+interpreted as weighted ratios with the default weight being 1}
@cindex #+ATTR_ODT
-If you are not satisfied with the default formatting of tables, you can
-create custom table styles and associate them with a table using
-the @code{#+ATTR_ODT} line. @xref{Customizing tables in @acronym{ODT} export}.
+You can control the width of the table by specifying @code{:rel-width}
+property using an @code{#+ATTR_ODT} line.
+
+For example, consider the following table which makes use of all the rules
+mentioned above.
+
+@example
+#+ATTR_ODT: :rel-width 50
+| Area/Month | Jan | Feb | Mar | Sum |
+|---------------+-------+-------+-------+-------|
+| / | < | | | < |
+| <l13> | <r5> | <r5> | <r5> | <r6> |
+| North America | 1 | 21 | 926 | 948 |
+| Middle East | 6 | 75 | 844 | 925 |
+| Asia Pacific | 9 | 27 | 790 | 826 |
+|---------------+-------+-------+-------+-------|
+| Sum | 16 | 123 | 2560 | 2699 |
+@end example
+
+On export, the table will occupy 50% of text area. The columns will be sized
+(roughly) in the ratio of 13:5:5:5:6. The first column will be left-aligned
+and rest of the columns will be right-aligned. There will be vertical rules
+after separating the header and last columns from other columns. There will
+be horizontal rules separating the header and last rows from other rows.
-@node Images in @acronym{ODT} export, Math formatting in @acronym{ODT} export, Tables in @acronym{ODT} export, OpenDocument Text export
-@subsection Images in @acronym{ODT} export
-@cindex images, embedding in @acronym{ODT}
-@cindex embedding images in @acronym{ODT}
+If you are not satisfied with the above formatting options, you can create
+custom table styles and associate them with a table using the
+@code{#+ATTR_ODT} line. @xref{Customizing tables in ODT export}.
+
+@node Images in ODT export, Math formatting in ODT export, Tables in ODT export, OpenDocument Text export
+@subsection Images in ODT export
+@cindex images, embedding in ODT
+@cindex embedding images in ODT
@subsubheading Embedding images
You can embed images within the exported document by providing a link to the
@subsubheading Sizing and scaling of embedded images
+@cindex #+ATTR_ODT
You can control the size and scale of the embedded images using the
@code{#+ATTR_ODT} attribute.
+@cindex identify, ImageMagick
@vindex org-export-odt-pixels-per-inch
-Note that the exporter specifies the desired size of the image in the final
-document in units of centimeters. In order to scale the embedded images, the
-exporter needs to compute the size of the image. This is done by retrieving
-the image size in pixels and converting the pixel units to centimeters using
+The exporter specifies the desired size of the image in the final document in
+units of centimeters. In order to scale the embedded images, the exporter
+queries for pixel dimensions of the images using one of a) ImageMagick's
+@file{identify} program or b) Emacs `create-image' and `image-size'
+APIs.@footnote{Use of @file{ImageMagick} is only desirable. However, if you
+routinely produce documents that have large images or you export your Org
+files that has images using a Emacs batch script, then the use of
+@file{ImageMagick} is mandatory.} The pixel dimensions are subsequently
+converted in to units of centimeters using
@code{org-export-odt-pixels-per-inch}. The default value of this variable is
set to @code{display-pixels-per-inch}. You can tweak this variable to
achieve the best results.
The examples below illustrate the various possibilities.
@table @asis
-
@item Explicitly size the image
To embed @file{img.png} as a 10 cm x 10 cm image, do the following:
@end example
@end table
-@node Math formatting in @acronym{ODT} export, Literal examples in @acronym{ODT} export, Images in @acronym{ODT} export, OpenDocument Text export
-@subsection Math formatting in @acronym{ODT} export
+@subsubheading Anchoring of images
+
+@cindex #+ATTR_ODT
+You can control the manner in which an image is anchored by setting the
+@code{:anchor} property of it's @code{#+ATTR_ODT} line. You can specify one
+of the the following three values for the @code{:anchor} property -
+@samp{"as-char"}, @samp{"paragraph"} and @samp{"page"}.
-The @acronym{ODT} exporter has special support for handling math.
+To create an image that is anchored to a page, do the following:
+@example
+#+ATTR_ODT: :anchor "page"
+[[./img.png]]
+@end example
+
+@node Math formatting in ODT export, Labels and captions in ODT export, Images in ODT export, OpenDocument Text export
+@subsection Math formatting in ODT export
+
+The ODT exporter has special support for handling math.
@menu
* Working with @LaTeX{} math snippets:: How to embed @LaTeX{} math fragments
* Working with MathML or OpenDocument formula files:: How to embed equations in native format
@end menu
-@node Working with @LaTeX{} math snippets, Working with MathML or OpenDocument formula files, Math formatting in @acronym{ODT} export, Math formatting in @acronym{ODT} export
+@node Working with @LaTeX{} math snippets, Working with MathML or OpenDocument formula files, Math formatting in ODT export, Math formatting in ODT export
@subsubsection Working with @LaTeX{} math snippets
@LaTeX{} math snippets (@pxref{@LaTeX{} fragments}) can be embedded in the ODT
that the @file{dvipng} program be available on your system.
@end enumerate
-@node Working with MathML or OpenDocument formula files, , Working with @LaTeX{} math snippets, Math formatting in @acronym{ODT} export
+@node Working with MathML or OpenDocument formula files, , Working with @LaTeX{} math snippets, Math formatting in ODT export
@subsubsection Working with MathML or OpenDocument formula files
For various reasons, you may find embedding @LaTeX{} math snippets in an
-@acronym{ODT} document less than reliable. In that case, you can embed a
-math equation by linking to its MathML(@file{.mml}) source or its
+ODT document less than reliable. In that case, you can embed a
+math equation by linking to its MathML (@file{.mml}) source or its
OpenDocument formula (@file{.odf}) file as shown below:
@example
[[./equation.odf]]
@end example
-@node Literal examples in @acronym{ODT} export, Advanced topics in @acronym{ODT} export, Math formatting in @acronym{ODT} export, OpenDocument Text export
-@subsection Literal examples in @acronym{ODT} export
+@node Labels and captions in ODT export, Literal examples in ODT export, Math formatting in ODT export, OpenDocument Text export
+@subsection Labels and captions in ODT export
-Export of literal examples (@pxref{Literal examples}) with full fontification
-is supported. This feature is enabled by default and is activated
-automatically if an enhanced version of @file{htmlfontify.el} is available in
-the @code{load-path}.@footnote{The @file{htmlfontify.el} that ships with
-standard Emacs <= 24.1 has no support for @acronym{ODT} fontification. A
-copy of the proposed version is available as an attachment to
-@url{http://debbugs.gnu.org/cgi/bugreport.cgi?msg=5;filename=htmlfontify.el;att=9;bug=9914,
-Emacs Bug #9914}.}
+You can label and caption various category of objects - an inline image, a
+table, a @LaTeX{} fragment or a Math formula - using @code{#+LABEL} and
+@code{#+CAPTION} lines. @xref{Images and tables}. ODT exporter enumerates
+each labeled or captioned object of a given category separately. As a
+result, each such object is assigned a sequence number based on order of it's
+appearance in the Org file.
-@vindex org-export-odt-fontify-srcblocks
+In the exported document, a user-provided caption is augmented with the
+category and sequence number. Consider the following inline image in an Org
+file.
-The character styles used for fontification of the literal blocks are
-auto-generated by the exporter in conjunction with @file{htmlfontify.el}
-library and need not be included in the default @file{styles.xml} file.
-These auto-generated styles have the @samp{OrgSrc} prefix and inherit their color
-based on the face used by Emacs @code{font-lock} library.
+@example
+#+CAPTION: Bell curve
+#+LABEL: fig:SED-HR4049
+[[./img/a.png]]
+@end example
-@vindex org-export-odt-create-custom-styles-for-srcblocks
-If you prefer to use your own custom styles for fontification and disable
-their auto-generation altogether, you can do so by customizing the variable
-@code{org-export-odt-create-custom-styles-for-srcblocks}.
+It could be rendered as shown below in the exported document.
+
+@example
+Figure 2: Bell curve
+@end example
+
+@vindex org-export-odt-category-strings
+You can modify the category component of the caption by customizing the
+variable @code{org-export-odt-category-strings}. For example, to tag all
+embedded images with the string @samp{Illustration} (instead of the default
+@samp{Figure}) use the following setting.
+
+@lisp
+(setq org-export-odt-category-strings
+ '(("en" "Table" "Illustration" "Equation" "Equation")))
+@end lisp
+
+With this, previous image will be captioned as below in the exported
+document.
+
+@example
+Illustration 2: Bell curve
+@end example
-You can turn off fontification support for literal examples by customizing
-the variable @code{org-export-odt-fontify-srcblocks}.
+@node Literal examples in ODT export, Advanced topics in ODT export, Labels and captions in ODT export, OpenDocument Text export
+@subsection Literal examples in ODT export
+Export of literal examples (@pxref{Literal examples}) with full fontification
+is supported. Internally, the exporter relies on @file{htmlfontify.el} to
+generate all style definitions needed for a fancy listing.@footnote{Your
+@file{htmlfontify.el} library must at least be at Emacs 24.1 levels for
+fontification to be turned on.} The auto-generated styles have @samp{OrgSrc}
+as prefix and inherit their color from the faces used by Emacs
+@code{font-lock} library for the source language.
+
+@vindex org-export-odt-fontify-srcblocks
+If you prefer to use your own custom styles for fontification, you can do so
+by customizing the variable
+@code{org-export-odt-create-custom-styles-for-srcblocks}.
-@node Advanced topics in @acronym{ODT} export, , Literal examples in @acronym{ODT} export, OpenDocument Text export
-@subsection Advanced topics in @acronym{ODT} export
+@vindex org-export-odt-create-custom-styles-for-srcblocks
+You can turn off fontification of literal examples by customizing the
+variable @code{org-export-odt-fontify-srcblocks}.
+
+@node Advanced topics in ODT export, , Literal examples in ODT export, OpenDocument Text export
+@subsection Advanced topics in ODT export
-If you rely heavily on @acronym{ODT} export, you may want to exploit the full
+If you rely heavily on ODT export, you may want to exploit the full
set of features that the exporter offers. This section describes features
that would be of interest to power users.
@menu
-* Exporting and converting to other formats:: How to produce @samp{pdf} and other formats
+* Configuring a document converter:: How to register a document converter
* Working with OpenDocument style files:: Explore the internals
* Creating one-off styles:: How to produce custom highlighting etc
-* Customizing tables in @acronym{ODT} export:: How to define and use Table templates
+* Customizing tables in ODT export:: How to define and use Table templates
* Validating OpenDocument XML:: How to debug corrupt OpenDocument files
@end menu
-@node Exporting and converting to other formats, Working with OpenDocument style files, Advanced topics in @acronym{ODT} export, Advanced topics in @acronym{ODT} export
-@subsubsection Exporting and converting to other formats
+@node Configuring a document converter, Working with OpenDocument style files, Advanced topics in ODT export, Advanced topics in ODT export
+@subsubsection Configuring a document converter
@cindex convert
-@cindex doc, docx
-
-The @acronym{ODT} exporter adds support for exporting Org outlines to formats
-that are not supported natively by Org. It also adds support to convert
-document from one format to another. To use these features, you need to
-configure a command-line converter. Once a command-line converter is
-configured you can use it to extend the list of formats to which Org can
-export. @xref{x-export-to-other-formats,,Automatically exporting to other
-formats}. You can also use it to perform one-off document conversion as
-detailed below.
-
-@vindex org-export-odt-convert
-@table @kbd
-
-@item M-x org-export-odt-convert
-Convert an existing document from one format to another as determined by the
-variable @code{org-export-odt-convert-capabilities}
-(@pxref{x-odt-converter-capabilities,,Configure converter
-capabilities}). @strong{Please note} that you can use this command to even
-convert documents that are produced outside of Org and in other formats than
-@acronym{ODT} format.
-@end table
-
-@subsubheading Pre-configured converters
-
+@cindex doc, docx, rtf
@cindex converter
-The @acronym{ODT} exporter supports two converters out of the box:
-@enumerate
-
-@cindex @file{unoconv}
-@item @file{unoconv}
-
-This converter is available as an installable package in your favorite
-distribution.
-
-@cindex @file{BasicODConverter}
-@item @file{BasicODConverter}
-
-@vindex org-odt-data-dir
-This converter is distributed as a LibreOffice extension and can be found in
-your Org distribution. See the subdirectory pointed to by the variable
-@code{org-odt-data-dir}.
-
-@end enumerate
-
-@subsubheading Installing a new converter
-If you prefer to use a converter other than the two mentioned above, then you
-may have to do additional configuration. You can proceed as follows:
+The ODT exporter can work with popular converters with little or no
+extra configuration from your side. @xref{Extending ODT export}.
+If you are using a converter that is not supported by default or if you would
+like to tweak the default converter settings, proceed as below.
@enumerate
@item Register the converter
converter can be invoked via command-line to effect the conversion.
@item Configure its capabilities
-@vindex org-export-odt-convert-capabilities
+@vindex org-export-odt-convert-capabilities
@anchor{x-odt-converter-capabilities}
-
Specify the set of formats the converter can handle by customizing the
variable @code{org-export-odt-convert-capabilities}. Use the default value
for this variable as a guide for configuring your converter. As suggested by
variable @code{org-export-odt-convert-process}.
@end enumerate
-@node Working with OpenDocument style files, Creating one-off styles, Exporting and converting to other formats, Advanced topics in @acronym{ODT} export
+@node Working with OpenDocument style files, Creating one-off styles, Configuring a document converter, Advanced topics in ODT export
@subsubsection Working with OpenDocument style files
@cindex styles, custom
@cindex template, custom
-This section explores the internals of the @acronym{ODT} exporter and the
+This section explores the internals of the ODT exporter and the
means by which it produces styled documents. Read this section if you are
interested in exploring the automatic and custom OpenDocument styles used by
the exporter.
@anchor{x-factory-styles}
@subsubheading Factory styles
-The @acronym{ODT} exporter relies on two files for generating its output.
+The ODT exporter relies on two files for generating its output.
These files are bundled with the distribution under the directory pointed to
by the variable @code{org-odt-styles-dir}. The two files are:
@anchor{x-overriding-factory-styles}
@subsubheading Overriding factory styles
-The following two variables control the location from which the @acronym{ODT}
+The following two variables control the location from which the ODT
exporter picks up the custom styles and content template files. You can
customize these variables to override the factory styles used by the
exporter.
in the final output.
@end itemize
-@node Creating one-off styles, Customizing tables in @acronym{ODT} export, Working with OpenDocument style files, Advanced topics in @acronym{ODT} export
+@node Creating one-off styles, Customizing tables in ODT export, Working with OpenDocument style files, Advanced topics in ODT export
@subsubsection Creating one-off styles
There are times when you would want one-off formatting in the exported
@end example
@strong{Hint:} To see the above example in action, edit your
-@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
+@file{styles.xml} (@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
custom @samp{Highlight} style as shown below.
@example
@end example
@strong{Hint:} To see the above example in action, edit your
-@file{styles.xml}(@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
+@file{styles.xml} (@pxref{x-orgodtstyles-xml,,Factory styles}) and add a
custom @samp{PageBreak} style as shown below.
@example
@end enumerate
-@node Customizing tables in @acronym{ODT} export, Validating OpenDocument XML, Creating one-off styles, Advanced topics in @acronym{ODT} export
-@subsubsection Customizing tables in @acronym{ODT} export
+@node Customizing tables in ODT export, Validating OpenDocument XML, Creating one-off styles, Advanced topics in ODT export
+@subsubsection Customizing tables in ODT export
@cindex tables, in ODT export
@cindex #+ATTR_ODT
You can override the default formatting of the table by specifying a custom
table style with the @code{#+ATTR_ODT} line. For a discussion on default
-formatting of tables @pxref{Tables in @acronym{ODT} export}.
+formatting of tables @pxref{Tables in ODT export}.
This feature closely mimics the way table templates are defined in the
OpenDocument-v1.2
@end lisp
@example
-#+ATTR_ODT: TableWithHeaderRowAndColumn
+#+ATTR_ODT: :style "TableWithHeaderRowAndColumn"
| Name | Phone | Age |
| Peter | 1234 | 17 |
| Anna | 4321 | 25 |
@end itemize
For example, the entry below defines two different table styles
-@samp{TableWithHeaderRowsAndColumns} and @samp{TableWithHeaderColumns} based
-on the same template @samp{Custom}. The styles achieve their intended effect
-by selectively activating the individual cell styles in that template.
+@samp{TableWithHeaderRowAndColumn} and @samp{TableWithFirstRowandLastRow}
+based on the same template @samp{Custom}. The styles achieve their intended
+effect by selectively activating the individual cell styles in that template.
@lisp
(setq org-export-odt-table-styles
the @code{ATTR_ODT} line as shown below.
@example
-#+ATTR_ODT: TableWithHeaderRowAndColumn
+#+ATTR_ODT: :style "TableWithHeaderRowAndColumn"
| Name | Phone | Age |
| Peter | 1234 | 17 |
| Anna | 4321 | 25 |
@end example
@end enumerate
-@node Validating OpenDocument XML, , Customizing tables in @acronym{ODT} export, Advanced topics in @acronym{ODT} export
+@node Validating OpenDocument XML, , Customizing tables in ODT export, Advanced topics in ODT export
@subsubsection Validating OpenDocument XML
Occasionally, you will discover that the document created by the
-@acronym{ODT} exporter cannot be opened by your favorite application. One of
+ODT exporter cannot be opened by your favorite application. One of
the common reasons for this is that the @file{.odt} file is corrupt. In such
cases, you may want to validate the document against the OpenDocument RELAX
NG Compact Syntax (RNC) schema.
If you have ready access to OpenDocument @file{.rnc} files and the needed
schema-locating rules in a single folder, you can customize the variable
@code{org-export-odt-schema-dir} to point to that directory. The
-@acronym{ODT} exporter will take care of updating the
+ODT exporter will take care of updating the
@code{rng-schema-locating-files} for you.
@c end opendocument
@section Evaluating code blocks
@cindex code block, evaluating
@cindex source code, evaluating
+@cindex #+RESULTS
Code blocks can be evaluated@footnote{Whenever code is evaluated there is a
potential for that code to do harm. Org mode provides safeguards to ensure
that code is only evaluated after explicit confirmation from the user. For
information on these safeguards (and on how to disable them) see @ref{Code
evaluation security}.} and the results of evaluation optionally placed in the
-Org mode buffer. By default, the evaluation facility is only enabled for
-Lisp code blocks specified as @code{emacs-lisp}. However, source code blocks
-in many languages can be evaluated within Org mode (see @ref{Languages} for a
-list of supported languages and @ref{Structure of code blocks} for
-information on the syntax used to define a code block).
+Org mode buffer. The results of evaluation are placed following a line that
+begins by default with @code{#+RESULTS} and optionally a cache identifier
+and/or the name of the evaluated code block. The default value of
+@code{#+RESULTS} can be changed with the customizable variable
+@code{org-babel-results-keyword}.
+
+By default, the evaluation facility is only enabled for Lisp code blocks
+specified as @code{emacs-lisp}. However, source code blocks in many languages
+can be evaluated within Org mode (see @ref{Languages} for a list of supported
+languages and @ref{Structure of code blocks} for information on the syntax
+used to define a code block).
@kindex C-c C-c
There are a number of ways to evaluate code blocks. The simplest is to press
* session:: Preserve the state of code evaluation
* noweb:: Toggle expansion of noweb references
* noweb-ref:: Specify block's noweb reference resolution target
+* noweb-sep:: String used to separate noweb references
* cache:: Avoid re-evaluating unchanged code blocks
* sep:: Delimiter for writing tabular results outside Org
* hlines:: Handle horizontal lines in tables
block. This option currently supports Emacs Lisp, Python, and Ruby. E.g.,
@code{:results value pp}.
@item @code{wrap}
-The result is wrapped in a @code{begin_result} block. This can be useful for
+The result is wrapped in a RESULTS drawer. This can be useful for
inserting @code{raw} or @code{org} syntax results in such a way that their
-extend is known and they can be automatically removed or replaced.
+extent is known and they can be automatically removed or replaced.
@end itemize
@subsubheading Handling
All ``noweb'' syntax references in the body of the code block will be
expanded before the block is evaluated, tangled or exported.
@item @code{no}
-The default. No ``noweb'' syntax specific action is taken on evaluating
-code blocks, However, noweb references will still be expanded during
-tangling.
+The default. No ``noweb'' syntax specific action is taken when the code
+block is evaluated, tangled or exported.
@item @code{tangle}
All ``noweb'' syntax references in the body of the code block will be
expanded before the block is tangled, however ``noweb'' references will not
be affected by this change, so it is still possible to use inline noweb
references.
-@node noweb-ref, cache, noweb, Specific header arguments
+@node noweb-ref, noweb-sep, noweb, Specific header arguments
@subsubsection @code{:noweb-ref}
When expanding ``noweb'' style references the bodies of all code block with
@emph{either} a block name matching the reference name @emph{or} a
#+END_SRC
@end example
-@node cache, sep, noweb-ref, Specific header arguments
+The @code{:noweb-sep} (see @ref{noweb-sep}) header argument holds the string
+used to separate accumulate noweb references like those above. By default a
+newline is used.
+
+@node noweb-sep, cache, noweb-ref, Specific header arguments
+@subsubsection @code{:noweb-sep}
+
+The @code{:noweb-sep} header argument holds the string used to separate
+accumulate noweb references (see @ref{noweb-ref}). By default a newline is
+used.
+
+@node cache, sep, noweb-sep, Specific header arguments
@subsubsection @code{:cache}
The @code{:cache} header argument controls the use of in-buffer caching of
the results of evaluating code blocks. It can be used to avoid re-evaluating
-unchanged code blocks. This header argument can have one of two
-values: @code{yes} or @code{no}.
+unchanged code blocks. Note that the @code{:cache} header argument will not
+attempt to cache results when the @code{:session} header argument is used,
+because the results of the code block execution may be stored in the session
+outside of the Org-mode buffer. The @code{:cache} header argument can have
+one of two values: @code{yes} or @code{no}.
@itemize @bullet
@item @code{no}
expanded before evaluation. See the @ref{noweb-ref} header argument for
a more flexible way to resolve noweb references.
+It is possible to include the @emph{results} of a code block rather than the
+body. This is done by appending parenthesis to the code block name which may
+optionally contain arguments to the code block as shown below.
+
+@example
+<<code-block-name(optional arguments)>>
+@end example
+
Note: the default value, @code{:noweb no}, was chosen to ensure that
correct code is not broken in a language, such as Ruby, where
@code{<<arg>>} is a syntactically valid construct. If @code{<<arg>>} is not
In an Org mode buffer, the following key bindings are active:
@multitable @columnfractions 0.45 0.55
-@kindex C-c C-v a
-@kindex C-c C-v C-a
-@item @kbd{C-c C-v a} @ @ @r{or} @ @ @kbd{C-c C-v C-a} @tab @code{org-babel-sha1-hash}
+@kindex C-c C-v p
+@kindex C-c C-v C-p
+@item @kbd{C-c C-v p} @ @ @r{or} @ @ @kbd{C-c C-v C-p} @tab @code{org-babel-previous-src-block}
+@kindex C-c C-v n
+@kindex C-c C-v C-n
+@item @kbd{C-c C-v n} @ @ @r{or} @ @ @kbd{C-c C-v C-n} @tab @code{org-babel-next-src-block}
+@kindex C-c C-v e
+@kindex C-c C-v C-e
+@item @kbd{C-c C-v e} @ @ @r{or} @ @ @kbd{C-c C-v C-e} @tab @code{org-babel-execute-maybe}
+@kindex C-c C-v o
+@kindex C-c C-v C-o
+@item @kbd{C-c C-v o} @ @ @r{or} @ @ @kbd{C-c C-v C-o} @tab @code{org-babel-open-src-block-result}
+@kindex C-c C-v v
+@kindex C-c C-v C-v
+@item @kbd{C-c C-v v} @ @ @r{or} @ @ @kbd{C-c C-v C-v} @tab @code{org-babel-expand-src-block}
+@kindex C-c C-v u
+@kindex C-c C-v C-u
+@item @kbd{C-c C-v u} @ @ @r{or} @ @ @kbd{C-c C-v C-u} @tab @code{org-babel-goto-src-block-head}
+@kindex C-c C-v g
+@kindex C-c C-v C-g
+@item @kbd{C-c C-v g} @ @ @r{or} @ @ @kbd{C-c C-v C-g} @tab @code{org-babel-goto-named-src-block}
+@kindex C-c C-v r
+@kindex C-c C-v C-r
+@item @kbd{C-c C-v r} @ @ @r{or} @ @ @kbd{C-c C-v C-r} @tab @code{org-babel-goto-named-result}
@kindex C-c C-v b
@kindex C-c C-v C-b
@item @kbd{C-c C-v b} @ @ @r{or} @ @ @kbd{C-c C-v C-b} @tab @code{org-babel-execute-buffer}
-@kindex C-c C-v f
-@kindex C-c C-v C-f
-@item @kbd{C-c C-v f} @ @ @r{or} @ @ @kbd{C-c C-v C-f} @tab @code{org-babel-tangle-file}
-@kindex C-c C-v g
-@item @kbd{C-c C-v g} @tab @code{org-babel-goto-named-source-block}
-@kindex C-c C-v h
-@item @kbd{C-c C-v h} @tab @code{org-babel-describe-bindings}
-@kindex C-c C-v l
-@kindex C-c C-v C-l
-@item @kbd{C-c C-v l} @ @ @r{or} @ @ @kbd{C-c C-v C-l} @tab @code{org-babel-lob-ingest}
-@kindex C-c C-v p
-@kindex C-c C-v C-p
-@item @kbd{C-c C-v p} @ @ @r{or} @ @ @kbd{C-c C-v C-p} @tab @code{org-babel-expand-src-block}
@kindex C-c C-v s
@kindex C-c C-v C-s
@item @kbd{C-c C-v s} @ @ @r{or} @ @ @kbd{C-c C-v C-s} @tab @code{org-babel-execute-subtree}
+@kindex C-c C-v d
+@kindex C-c C-v C-d
+@item @kbd{C-c C-v d} @ @ @r{or} @ @ @kbd{C-c C-v C-d} @tab @code{org-babel-demarcate-block}
@kindex C-c C-v t
@kindex C-c C-v C-t
@item @kbd{C-c C-v t} @ @ @r{or} @ @ @kbd{C-c C-v C-t} @tab @code{org-babel-tangle}
+@kindex C-c C-v f
+@kindex C-c C-v C-f
+@item @kbd{C-c C-v f} @ @ @r{or} @ @ @kbd{C-c C-v C-f} @tab @code{org-babel-tangle-file}
+@kindex C-c C-v c
+@kindex C-c C-v C-c
+@item @kbd{C-c C-v c} @ @ @r{or} @ @ @kbd{C-c C-v C-c} @tab @code{org-babel-check-src-block}
+@kindex C-c C-v j
+@kindex C-c C-v C-j
+@item @kbd{C-c C-v j} @ @ @r{or} @ @ @kbd{C-c C-v C-j} @tab @code{org-babel-insert-header-arg}
+@kindex C-c C-v l
+@kindex C-c C-v C-l
+@item @kbd{C-c C-v l} @ @ @r{or} @ @ @kbd{C-c C-v C-l} @tab @code{org-babel-load-in-session}
+@kindex C-c C-v i
+@kindex C-c C-v C-i
+@item @kbd{C-c C-v i} @ @ @r{or} @ @ @kbd{C-c C-v C-i} @tab @code{org-babel-lob-ingest}
+@kindex C-c C-v I
+@kindex C-c C-v C-I
+@item @kbd{C-c C-v I} @ @ @r{or} @ @ @kbd{C-c C-v C-I} @tab @code{org-babel-view-src-block-info}
@kindex C-c C-v z
@kindex C-c C-v C-z
-@item @kbd{C-c C-v z} @ @ @r{or} @ @ @kbd{C-c C-v C-z} @tab @code{org-babel-switch-to-session}
+@item @kbd{C-c C-v z} @ @ @r{or} @ @ @kbd{C-c C-v C-z} @tab @code{org-babel-switch-to-session-with-code}
+@kindex C-c C-v a
+@kindex C-c C-v C-a
+@item @kbd{C-c C-v a} @ @ @r{or} @ @ @kbd{C-c C-v C-a} @tab @code{org-babel-sha1-hash}
+@kindex C-c C-v h
+@kindex C-c C-v C-h
+@item @kbd{C-c C-v h} @ @ @r{or} @ @ @kbd{C-c C-v C-h} @tab @code{org-babel-describe-bindings}
+@kindex C-c C-v x
+@kindex C-c C-v C-x
+@item @kbd{C-c C-v x} @ @ @r{or} @ @ @kbd{C-c C-v C-x} @tab @code{org-babel-do-key-sequence-in-edit-buffer}
@end multitable
@c When possible these keybindings were extended to work when the control key is
been installed properly. As of Emacs 22, Calc is part of the Emacs
distribution. Another possibility for interaction between the two
packages is using Calc for embedded calculations. @xref{Embedded Mode,
-, Embedded Mode, Calc, GNU Emacs Calc Manual}.
+, Embedded Mode, calc, GNU Emacs Calc Manual}.
@item @file{constants.el} by Carsten Dominik
@cindex @file{constants.el}
@cindex Dominik, Carsten
@vindex org-ctrl-c-ctrl-c-hook
Org has several commands that act differently depending on context. The most
-important example it the @kbd{C-c C-c} (@pxref{The very busy C-c C-c key}).
+important example is the @kbd{C-c C-c} (@pxref{The very busy C-c C-c key}).
Also the @kbd{M-cursor} and @kbd{M-S-cursor} keys have this property.
Add-ons can tap into this functionality by providing a function that detects
@i{David O'Toole} wrote @file{org-publish.el} and drafted the manual
chapter about publishing.
@item
-@i{Jambunathan K} contributed the @acronym{ODT} exporter.
+@i{Jambunathan K} contributed the ODT exporter.
@item
@i{Sebastien Vauban} reported many issues with @LaTeX{} and BEAMER export and
enabled source code highlighting in Gnus.
Aaron Larson: co-wrote bibtex.el
-Aaron S. Hawley: changed files.texi morse.el add-log.el autoinsert.el
- building.texi custom.texi files.el glossary.texi isearch.el
- jka-cmpr-hook.el misc.texi re-builder.el sgml-mode.el tar-mode.el
+Aaron S. Hawley: changed files.texi morse.el tar-mode.el add-log.el
+ autoinsert.el building.texi custom.texi files.el glossary.texi
+ isearch.el jka-cmpr-hook.el misc.texi re-builder.el sgml-mode.el
texinfo.el thingatpt.el tutorial.el
Abraham Nahum: changed configure.in dgux4.h sysdep.c
reverse-smile.xpm sad.xpm smile.xpm wry.xpm xterm.c gnus-html.el
gnus-start.el gnus-sum.el gnus.el gtkutil.c shr.el xterm.h
+Adam Spiers: changed calendar.el
+
Adam W: changed mail-source.el
Aditya Siram: changed ob.el
nsfns.m nsmenu.m
Ami Fischman: changed bindings.el calendar.el diary-lib.el print.c
- savehist.el
+ savehist.el vc-git.el
Anand Mitra: changed gnus-sum.el
Andreas Jaeger: changed gnus-msg.el gnus-start.el gnus-xmas.el
nnfolder.el nnml.el
+Andreas Leha: changed ob.el
+
Andreas Leue: changed artist.el
Andreas Luik: changed xfns.c xterm.c
-Andreas Politz: changed editfns.c elp.el ido.el term.el
+Andreas Politz: changed editfns.c elp.el ido.el outline.el term.el
Andreas Rottmann: changed emacsclient.1 emacsclient.c misc.texi server.el
Angelo Graziosi: changed sysdep.c term.c
+Anmol Khirbat: changed ido.el
+
Anna M. Bigatti: wrote cal-html.el
Antoine Levitt: changed gnus-group.el gnus-sum.el message.texi ada-prj.el
and co-wrote org-bibtex.el org-list.el org-protocol.el org-src.el
and changed org.el org-agenda.el org-html.el org-clock.el org-exp.el
org.texi org-table.el org-capture.el org-publish.el org-timer.el
- org-export-latex.el org-archive.el ob.el org-ascii.el org-mobile.el
- bookmark.el info.el org-attach.el org-colview.el org-crypt.el
- org-eshell.el and 32 other files
+ org-export-latex.el org-archive.el org-ascii.el org-colview.el
+ org-exp-blocks.el org-mobile.el ob.el org-eshell.el bookmark.el info.el
+ org-attach.el and 36 other files
Ben A. Mesander: co-wrote erc-dcc.el
font-parse-tests.el redisplay-testsuite.el tabulated-list.el
and co-wrote longlines.el tango-dark-theme.el tango-theme.el
and changed xdisp.c simple.el display.texi files.el frames.texi
- cus-edit.el files.texi keyboard.c custom.el startup.el package.el
- text.texi xterm.c emacs.texi faces.el misc.texi subr.el image.c
- mouse.el custom.texi xfns.c and 841 other files
+ files.texi cus-edit.el keyboard.c custom.el text.texi package.el
+ startup.el faces.el xterm.c emacs.texi misc.texi subr.el image.c
+ mouse.el custom.texi xfns.c and 845 other files
Chris Chase: co-wrote idlw-shell.el idlwave.el
Christopher Oliver: changed mouse.el
+Christopher Schmidt: changed ibuffer.el
+
Christopher Suckling: co-wrote org-mac-message.el
Chuck Blake: changed term.c
Dan Rosenberg: changed movemail.c
-Dani Moncayo: changed buffers.texi lists.texi makefile.w32-in text.texi
+Dani Moncayo: changed buffers.texi lists.texi custom.texi dired.texi
+ makefile.w32-in text.texi
Daniel Brockman: changed cus-start.el format-spec.el ibuffer.el rcirc.el
David De La Harpe Golden: changed files.el mouse.el simple.el fileio.c
cus-start.el nsselect.m select.el w32-fns.el x-win.el xterm.c
-David Edmondson: changed message.el gnus-cite.el imap.el mm-view.el
- mml2015.el nnfolder.el nnimap.el nnml.el
+David Edmondson: changed message.el gnus-cite.el imap.el mm-uu.el
+ mm-view.el mml2015.el nnfolder.el nnimap.el nnml.el
David Engster: wrote mairix.el nnmairix.el
-and changed gnus.texi insert.el registry.el gnus-msg.el
+and changed gnus.texi insert.el registry.el db-find.el gnus-msg.el
analyze/complete.el base.el bovine-grammar.el cedet/srecode.el
- cpp-root.el db-find.el db-typecache.el db.el dictionary.el display.texi
+ cpp-root.el db-typecache.el db.el dictionary.el display.texi
document.el ede-grammar.el ede/custom.el ede/generic.el files.el
- filters.el gnus-registry.el and 22 other files
+ filters.el gnus-registry.el and 23 other files
David Gillespie: wrote calc-aent.el calc-alg.el calc-arith.el calc-bin.el
calc-comb.el calc-cplx.el calc-embed.el calc-ext.el calc-fin.el
and changed imenu.el pgg-def.el xterm.c
David Maus: co-wrote org-wl.el
-and changed org.el org-agenda.el org-feed.el org-html.el org-macs.el
- org-exp.el org.texi org-gnus.el org-capture.el org-protocol.el
- org-publish.el ob-haskell.el ob.el org-bibtex.el org-clock.el
- org-compat.el org-footnote.el org-id.el org-latex.el org-list.el
- org-mhe.el and 18 other files
+and changed org.el org-agenda.el org-feed.el org-exp.el org-html.el
+ org-macs.el org-capture.el org.texi org-gnus.el org-bbdb.el
+ org-clock.el org-protocol.el org-publish.el ob-haskell.el ob.el
+ org-bibtex.el org-compat.el org-footnote.el org-id.el org-latex.el
+ org-list.el and 20 other files
David McCabe: changed lisp-mode.el
Detlev Zundel: wrote re-builder.el
-Devon Sean McCullough: changed comint.el
+Devon Sean McCullough: changed comint.el url-http.el
Dhruva Krishnamurthy: changed makefile.w32-in emacsclient.c fontset.c
sound.c w32proc.c
Dmitry Dzhus: changed gdb-mi.el gud.el fadr.el all.xpm building.texi
emacs.texi process.c thread.xpm
-Dmitry Gutov: changed lisp.el
+Dmitry Gutov: changed lisp.el ruby-mode.el
Dmitry Kurochkin: changed isearch.el
Drew Adams: wrote light-blue-theme.el
and co-wrote color.el
-and changed cus-edit.el dired.el faces.el files.el isearch.el menu-bar.el
- mouse.el ange-ftp.el bindings.el bookmark.el custom.el descr-text.el
- dired.texi etags.el finder.el frame.el help-fns.el help.el
- image-dired.el info.el modes.texi and 7 other files
+and changed cus-edit.el dired.el faces.el files.el info.el isearch.el
+ menu-bar.el mouse.el ange-ftp.el bindings.el bookmark.el custom.el
+ descr-text.el dired.texi etags.el finder.el frame.el help-fns.el
+ help.el image-dired.el modes.texi and 7 other files
E. Jay Berkenbilt: changed b2m.c flyspell.el ispell.el unrmail.el
whitespace.el window.h
Eli Zaretskii: wrote [bidirectional display in xdisp.c] bidi.c rxvt.el
tty-colors.el
-and changed makefile.w32-in msdos.c xdisp.c Makefile.in files.el
+and changed makefile.w32-in xdisp.c msdos.c Makefile.in files.el
config.bat fileio.c simple.el msdos.h info.el mainmake.v2 rmail.el
sed1v2.inp display.texi w32.c pc-win.el process.c dispnew.c startup.el
- dispextern.h dired.c and 700 other files
+ dispextern.h dired.c and 702 other files
Elias Oltmanns: changed tls.el gnus-agent.el gnus-int.el gnus-srvr.el
gnus.el
and co-wrote ob-R.el ob-clojure.el ob-exp.el ob-fortran.el ob-lisp.el
ob-lob.el ob-maxima.el ob-perl.el ob-picolisp.el ob-python.el ob-ref.el
ob.el org-bibtex.el
-and changed org.texi org.el org-exp.el org-latex.el ob-plantuml.el
- org-table.el org-macs.el org-src.el orgcard.tex ob-lilypond.el
- ob-mscgen.el ob-octave.el ob-screen.el org-agenda.el org-ascii.el
- org-html.el org-mouse.el gnus-art.el ob-ledger.el ob-matlab.el
- org-attach.el and 4 other files
+and changed org.texi org.el org-exp.el org-latex.el org-src.el
+ ob-plantuml.el org-table.el org-agenda.el org-macs.el orgcard.tex
+ ob-lilypond.el ob-mscgen.el ob-octave.el ob-screen.el org-ascii.el
+ org-footnote.el org-html.el org-mouse.el gnus-art.el ob-ledger.el
+ ob-matlab.el and 5 other files
Eric Youngdale: changed etags-vmslib.c
Fabrice Bauzac: changed dired-aux.el
Fabrice Popineau: changed config.nt etags.c fileio.c gnus-cache.el
- inttypes.h lisp.h ms-w32.h nmake.defs regex.c stdint.h w32.c
+ inttypes.h lisp.h ms-w32.h nmake.defs regex.c stdint.h w32.c w32heap.c
Fan Kai: changed esh-arg.el
François Pinard: co-wrote po.el
and changed nndoc.el allout.el bytecomp.el gnus-sum.el gnus-util.el
- gnus-uu.el make-mode.el nnmail.el rmailsum.el timezone.el
+ gnus-uu.el make-mode.el nnmail.el org.el rmailsum.el timezone.el
François-David Collin: changed message.el mm-decode.el
Glenn Morris: wrote automated/f90.el automated/vc-bzr.el check-declare.el
and changed Makefile.in configure.in calendar.el diary-lib.el rmail.el
progmodes/f90.el files.el cal-menu.el appt.el cal-hebrew.el fortran.el
- bytecomp.el holidays.el calendar.texi emacs.texi make-dist simple.el
- ack.texi sed1v2.inp cal-islam.el dired-x.el and 1242 other files
+ bytecomp.el holidays.el emacs.texi calendar.texi ack.texi make-dist
+ simple.el sed1v2.inp cal-islam.el dired-x.el and 1249 other files
Glynn Clements: wrote gamegrid.el snake.el tetris.el
Ilya N. Golubev: changed mm-util.el shell.el
+Ilya Shlyakhter: changed org.el ob-lilypond.el org-clock.el
+ org-colview.el
+
Ilya Zakharevich: wrote tmm.el
and co-wrote cperl-mode.el
and changed syntax.c syntax.h textprop.c dired.c font-lock.el interval.c
Jacques Duthen: co-wrote ps-print.el ps-samp.el
+Jae-Hyeon Park: changed fontset.el
+
Jaeyoun Chung: changed hangul3.el hanja3.el gnus-mule.el hangul.el
Jambunathan K: wrote org-lparse.el org-odt.el
-and changed org.el org-exp.el org-inlinetask.el org.texi
- OrgOdtContentTemplate.xml OrgOdtStyles.xml org-footnote.el org-html.el
- package-x.el quail/indian.el tar-mode.el
+and changed org.el org-exp.el org.texi OrgOdtContentTemplate.xml
+ org-footnote.el org-inlinetask.el OrgOdtStyles.xml htmlfontify.el
+ org-html.el package-x.el quail/indian.el tar-mode.el
James Clark: wrote nxml-enc.el nxml-glyph.el nxml-maint.el nxml-mode.el
nxml-ns.el nxml-outln.el nxml-parse.el nxml-rap.el nxml-uchnm.el
John Williams: changed etags.el
+John Yates: changed hideshow.el
+
Jon Anders Skorpen: changed org-publish.el
Jon Ericson: changed gnus.el spam-report.el
and changed files.el doc-view.el image-mode.el info.el simple.el INSTALL
autogen.sh isearch.el menu-bar.el thingatpt.el INSTALL.BZR configure
configure.in editfns.c gnus-bookmark.el gnus-msg.el gnus-sum.el man.el
- nnmail.el vc-svn.el window.c and 3 other files
+ nnmail.el org-agenda.el vc-svn.el and 4 other files
Karl Heuer: changed keyboard.c lisp.h xdisp.c buffer.c xfns.c xterm.c
alloc.c files.el frame.c window.c configure.in Makefile.in data.c
gnus-start.el gnus-msg.el gnus.el shr.el nntp.el gnus-agent.el nnrss.el
mm-uu.el nnmail.el gnus-html.el and 135 other files
+Kaushik Srenevasan: changed gdb-mi.el
+
Kaveh R. Ghazi: changed delta88k.h xterm.c
Kayvan Sylvan: changed supercite.el
Lennart Staflin: changed dired.el diary-ins.el diary-lib.el tq.el xdisp.c
-Leo Liu: changed rcirc.el ido.el makefile.w32-in abbrev.el subr.el
+Leo Liu: changed rcirc.el ido.el abbrev.el makefile.w32-in subr.el
Makefile.in deps.mk diff-mode.el dnd.el em-hist.el erc.el files.el
- fns.c footnote.el gl-comp.m4 gnulib.mk help-mode.el iswitchb.el
- minibuf.c minibuffer.el register.el and 57 other files
+ fns.c font-lock.el footnote.el gl-comp.m4 gnulib.mk help-mode.el
+ iswitchb.el minibuf.c minibuffer.el and 62 other files
Leonard H. Tower Jr.: changed rnews.el rnewspost.el emacsbug.el
rmailout.el sendmail.el
Liam Healy: changed outline.el
+Liang Wang: changed etags.el
+
Litvinov Sergey: changed ob-maxima.el ob-octave.el
Lloyd Zusman: changed mml.el pgg-gpg.el
Martin Rudalics: changed window.el window.c windows.texi frame.c buffer.c
help.el window.h cus-start.el frame.el cus-edit.el files.el
buffers.texi dired.el subr.el add-log.el xdisp.c font-lock.el
- help-fns.el lisp.h mouse.el wid-edit.el and 136 other files
+ help-fns.el lisp.h mouse.el wid-edit.el and 137 other files
Martin Stjernholm: wrote cc-bytecomp.el
and co-wrote cc-align.el cc-cmds.el cc-compat.el cc-defs.el cc-engine.el
Martin Thornquist: changed gnus-group.el gnus-topic.el
Martyn Jago: wrote ob-lilypond.el
+and changed ob-emacs-lisp.el
Masahiko Sato: wrote vip.el
zeroconf.el
and co-wrote tramp-cache.el tramp-sh.el tramp.el
and changed tramp.texi dbusbind.c trampver.texi dbus.texi trampver.el
- ange-ftp.el tramp-fish.el files.el tramp-imap.el files.texi Makefile.in
- tramp-vc.el tramp-util.el tramp-uu.el simple.el auth-source.el
- dired-aux.el configure.in em-unix.el fileio.c keyboard.c
- and 65 other files
+ ange-ftp.el tramp-fish.el files.el files.texi tramp-imap.el Makefile.in
+ tramp-vc.el tramp-util.el tramp-uu.el notifications.el simple.el
+ auth-source.el dired-aux.el configure.in em-unix.el fileio.c
+ and 66 other files
Michael Ben-Gershon: changed acorn.h configure.in riscix1-1.h riscix1-2.h
unexec.c
-Michael Brand: changed org.el org-agenda.el org-table.el org.texi
+Michael Brand: changed org.el org-agenda.el org.texi org-table.el
Michael D. Ernst: wrote reposition.el
and changed dired-x.el uniquify.el ispell.el bibtex.el rmail.el dired.el
Nicolas Goaziou: changed org-list.el org.el org-footnote.el org-exp.el
org-latex.el org-html.el org-inlinetask.el org-indent.el org-docbook.el
org-timer.el ob-asymptote.el org-ascii.el org-capture.el ob.el
- org-agenda.el org-archive.el org-clock.el org-macs.el org-mouse.el
- ob-exp.el org-colview.el org-table.el
+ org-agenda.el org-archive.el ob-exp.el org-clock.el org-macs.el
+ org-mouse.el org.texi and 3 other files
Niels Giesen: changed icalendar.el org-agenda.el org-clock.el
org-docbook.el org-icalendar.el
and co-wrote cal-dst.el
and changed lisp.h Makefile.in editfns.c alloc.c xdisp.c configure.in
fileio.c image.c process.c fns.c xterm.c dispextern.h keyboard.c data.c
- lread.c sysdep.c xfns.c eval.c emacs.c config.in print.c
+ lread.c sysdep.c xfns.c eval.c emacs.c buffer.c config.in
and 573 other files
Paul Fisher: changed fns.c
Pavel Kobiakov: wrote flymake.el
and changed flymake.texi
+Peder O. Klingenberg: changed gnus.texi
+
Per Abrahamsen: wrote cus-dep.el cus-edit.el cus-face.el cus-start.el
custom.el double.el gnus-cite.el gnus-cus.el progmodes/cpp.el
wid-browse.el wid-edit.el widget.el xt-mouse.el
cc-menus.el cc-mode.el cc-styles.el cc-vars.el font-lock.el
and changed files.el keyboard.c simple.el xterm.c xdisp.c rmail.el
Makefile.in fileio.c process.c sysdep.c buffer.c xfns.c window.c
- configure.in subr.el startup.el emacs.c sendmail.el editfns.c info.el
+ configure.in subr.el startup.el sendmail.el emacs.c editfns.c info.el
dispnew.c and 1350 other files
Richard Mlynarik: wrote cl-indent.el ebuff-menu.el ehelp.el rfc822.el
Sam Steingold: wrote gulp.el midnight.el
and changed progmodes/compile.el cl-indent.el vc-cvs.el vc.el mouse.el
- simple.el font-lock.el ange-ftp.el vc-hg.el add-log.el bookmark.el
- bug-reference.el diary-lib.el dired.el pcvs.el tex-mode.el apropos.el
- bindings.el emacs-lisp/debug.el etags.el files.el and 126 other files
+ simple.el font-lock.el ange-ftp.el vc-hg.el window.el add-log.el
+ bookmark.el bug-reference.el diary-lib.el dired.el etags.el pcvs.el
+ tex-mode.el apropos.el bindings.el emacs-lisp/debug.el
+ and 126 other files
Samuel Bronson: changed custom.el
Seweryn Kokot: changed positions.texi searching.texi
-Shaun Johnson: changed ob-tangle.el
+Shaun Johnson: changed ob-tangle.el org-exp-blocks.el
Shawn Boles: changed url-cookie.el
Sho Nakatani: changed doc-view.el
+Shoji Nishimura: changed org.el
+
Shuhei Kobayashi: wrote hex-util.el hmac-def.el hmac-md5.el
and changed gnus-group.el message.el nnmail.el
hashcash.el mm-view.el password.el gnus-cache.el and 99 other files
Simon Leinen: changed Makefile.in smtpmail.el Makefile cm.c cm.h hpux9.h
- indent.c process.c sc.texinfo sgml-mode.el term.c xfns.c xmenu.c
+ indent.c process.c sc.texinfo sgml-mode.el term.c vc.el xfns.c xmenu.c
xterm.c
Simon Marshall: wrote fast-lock.el lazy-lock.el regexp-opt.el
Sundar Narasimhan: changed rnews.el
-Suvayu Ali: changed org-exp.el org-inlinetask.el org.texi
+Suvayu Ali: changed org.texi org-exp.el org-inlinetask.el org-src.el
Sven Joachim: changed files.el de-refcard.tex dired-aux.el emacs.1
arc-mode.el dired-x.el em-cmpl.el em-hist.el em-ls.el esh-cmd.el
Sébastien Delafond: changed org.el
-Sébastien Vauban: changed org-agenda.el org.el org-html.el org-latex.el
+Sébastien Vauban: changed org.el org-agenda.el org-html.el org-latex.el
T.V. Raman: changed completion.el files.el json.el mairix.el mspools.el
xml.c
and co-wrote org-gnus.el
and changed subword.el image-mode.el Makefile.in cc-cmds.el emacsbug.el
gnus-art.el gnus.texi nnimap.el files.el gnus-sum.el info.el
- org-footnote.el org.el reftex-ref.el simple.el tsdh-dark-theme.el
- tsdh-light-theme.el ack.texi bindings.el bookmark.el cc-mode.el
- and 24 other files
+ org-footnote.el org.el reftex-ref.el saveplace.el simple.el
+ tsdh-dark-theme.el tsdh-light-theme.el ack.texi artist.el bindings.el
+ and 26 other files
Tatsuya Ichikawa: changed gnus-agent.el gnus-cache.el
Theodore Jump: changed makefile.nt makefile.def w32-win.el w32faces.c
Thien-Thi Nguyen: co-wrote hideshow.el
-and changed ewoc.el vc.el zone.el info.el Makefile.in processes.texi
+and changed ewoc.el vc.el info.el zone.el Makefile.in processes.texi
lisp-mode.el text.texi vc-rcs.el display.texi fileio.c files.el
scheme.el vc-git.el MORE.STUFF TUTORIAL.it bindat.el cc-vars.el
configure.in dcl-mode.el diff-mode.el and 158 other files
Thierry Emery: changed kinsoku.el timezone.el url-http.el wid-edit.el
-Thierry Volpiatto: changed bookmark.el eshell/eshell.el files.el
- gnus-sum.el dired-aux.el image-mode.el info.el man.el woman.el dired.el
- doc-view.el files.texi find-func.el gnus-art.el image-dired.el
- vc-rcs.el
+Thierry Volpiatto: changed bookmark.el files.el dired-aux.el
+ eshell/eshell.el gnus-sum.el files.texi image-mode.el info.el man.el
+ woman.el dired.el doc-view.el find-func.el gnus-art.el gnus-msg.el
+ image-dired.el tramp.el vc-rcs.el
Thomas Baumann: wrote org-mhe.el
and co-wrote org-bbdb.el
Thomas Link: wrote filesets.el
-Thomas Morgan: changed forms.el select.el
+Thomas Morgan: changed org-habit.el forms.el select.el
Thomas Neumann: co-wrote make-mode.el
and changed makefile.el
Tim Harper: changed ns-win.el
-Tim Landscheidt: changed gnus.texi
+Tim Landscheidt: changed gnus.texi icalendar.el sort.el ws-mode.el
Tim Van Holder: changed emacsclient.c Makefile.in configure.in
progmodes/compile.el which-func.el
Toby Cubitt: co-wrote avl-tree.el
+Toby S. Cubitt: changed org.el
+
Toby Speight: changed generic-x.el window.el
Tokuya Kameshima: wrote org-mew.el
Torbjörn Einarsson: wrote progmodes/f90.el
and changed f90.el
+Torsten Anders: changed org-beamer.el
+
Torsten Bronger: changed latin-ltx.el
Toru Tomabechi: wrote language/tibetan.el quail/tibetan.el tibet-util.el
Triet Hoai Lai: changed vntelex.el viet-util.el vietnamese.el
+Troels Nielsen: changed process.c
+
Trung Tran-Duc: changed nntp.el
Tsuchiya Masatoshi: changed gnus-art.el mm-view.el gnus-sum.el
Vida Gábor: changed gnus-demon.el
+Viktor Rosenfeld: changed ob-sql.el
+
Ville Skyttä: changed mh-comp.el pgg.el tcl.el
Vincent Belaïche: changed ses.el 5x5.el calc-alg.el calc-vec.el calc.texi
easymenu.el loading.texi menu-bar.el misc.texi progmodes/compile.el
ps-print-def.el ps-print.ps ps-vars.el
+Vitalie Spinu: changed ob-R.el
+
Vivek Dasmohapatra: wrote hfy-cmap.el htmlfontify.el
and changed erc.el erc-backend.el emacs.c erc-join.el erc-services.el
sh-script.el xterm.c xterm.h
Zoran Milojevic: changed avoid.el
+Йордан Миладинов: changed quail/cyrillic.el
+
Local Variables:
coding: utf-8
End:
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * publicsuffix.txt: New file (bug#1401).
+
+2012-04-02 Alan Mackenzie <acm@muc.de>
+
+ * NEWS: Add CC Mode entries.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org/OrgOdtContentTemplate.xml (OrgIndentedSection-Level-*):
+ New section styles. These sections are indented to the same
+ level as the corresponding list entries. These sections hold
+ tables that occur within a list. (OrgTable): Increased
+ relative width from 90% to 96% for aesthetic reasons.
+
2012-03-16 Glenn Morris <rgm@gnu.org>
* HELLO: Say that this is not a comprehensive list.
GNU Emacs NEWS -- history of user-visible changes.
-Copyright (C) 2010-2012 Free Software Foundation, Inc.
+Copyright (C) 2010-2012 Free Software Foundation, Inc.
See the end of the file for license conditions.
Please send Emacs bug reports to bug-gnu-emacs@gnu.org.
You can narrow news to a specific version by calling `view-emacs-news'
with a prefix argument or by typing C-u C-h C-n.
-
Temporary note:
- +++ indicates that the appropriate manual has already been updated.
- --- means no change in the manuals is called for.
++++ indicates that the appropriate manual has already been updated.
+--- means no change in the manuals is called for.
When you add a new item, please add it without either +++ or ---
so we will look at it and add it to the manual.
+\f
+* Installation Changes in Emacs 24.2
+\f
+* Startup Changes in Emacs 24.2
+
+** Emacs no longer searches for `leim-list.el' files beneath the standard
+lisp/ directory. There should not be any there anyway. If you have
+been adding them there, put them somewhere else, eg site-lisp.
+
+\f
+* Changes in Emacs 24.2
+
+** New functions `system-users', `system-groups' return lists of the user
+name, group names known to the system (where possible).
+
+** If your Emacs was built from a bzr checkout, the new variable
+`emacs-bzr-version' contains information about which bzr revision was used.
+
+** ImageMagick support, if available, is automatically enabled.
+It is no longer necessary to call `imagemagick-register-types'
+explicitly to install ImageMagick image types; that function is called
+automatically when setting `imagemagick-types-inhibit'.
+
+*** Setting `imagemagick-types-inhibit' to t now disables the use of
+ImageMagick to view images, set
+
+\f
+* Editing Changes in Emacs 24.2
+
+** M-x move-to-column, if called interactively with no prefix arg, now
+prompts for a column number.
+
+** `mouse-avoidance-banish-position' can now be used to customize
+`mouse-avoidance-mode' further.
+
+** `C-M-f' and `C-M-b' will now move to the path name separator
+character when doing minibuffer filename prompts.
+
+** `goto-char' is now bound to `M-g c'.
+
+\f
+* Changes in Specialized Modes and Packages in Emacs 24.2
+
+** which-function-mode now applies to all applicable major modes by default.
+
+** erc will look up server/channel names via auth-source and use the
+channel keys found, if any.
+
+** The `server-auth-key' variable can be used to set a permanent
+shared key for Emacs Server.
+
+** In Perl mode, new option `perl-indent-parens-as-block' causes non-block
+closing brackets to be aligned with the line of the opening bracket.
+
+** Obsolete packages:
+
+*** mailpost.el
+
+*** mouse-sel.el
+
+\f
+* New Modes and Packages in Emacs 24.2
+\f
+* Incompatible Lisp Changes in Emacs 24.2
+
++++
+** Docstrings starting with `*' no longer indicate user options.
+Only variables defined using `defcustom' are considered user options.
+The function `user-variable-p' is now an obsolete alias for
+`custom-variable-p'.
+
+\f
+* Lisp changes in Emacs 24.2
+\f
+* Changes in Emacs 24.2 on non-free operating systems
+
+** New configure.bat options on MS-Windows:
+
+*** --without-libxml2 omits support for libxml2, even if its presence
+is detected.
+
\f
* Installation Changes in Emacs 24.1
----
** Emacs can be compiled with Gtk+ 3.0 if you pass --with-x-toolkit=gtk3
to configure. Note that other libraries used by Emacs, RSVG and GConf,
also depend on Gtk+. You can disable them with --without-rsvg and
--without-gconf.
----
** Emacs can be compiled with GnuTLS support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
`--without-gnutls'. See below for GnuTLS features.
----
** Emacs can be compiled with SELinux support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
`--without-selinux'. See below for SELinux features.
----
** Emacs can be compiled with ImageMagick support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
`--without-imagemagick'. See below for ImageMagick features.
This feature is not available for the Nextstep or MS ports.
----
** Emacs can be compiled with libxml2 support.
This happens by default if a suitably recent version of the library is
found at build time. To prevent this, use the configure option
`--without-xml2'. See below for libxml2 features.
----
-** There is a new configure option --with-wide-int.
+** By default, the installed Info and man pages are compressed.
+You can disable this by configuring --without-compress-info.
+
+** New configure option --with-wide-int.
With it, Emacs integers typically have 62 bits, even on 32-bit machines.
On 32-bit hosts, this raises the limit on buffer sizes from about 512 MiB
to about 2 GiB.
----
-** By default, the installed Info and man pages are compressed.
-You can disable this by configuring --without-compress-info.
-
----
-** There are new configure options:
---with-mmdf, --with-mail-unlink, --with-mailhost.
+** New configure options: --with-mmdf, --with-mail-unlink, --with-mailhost.
These provide no new functionality, they just remove the need to edit
lib-src/Makefile by hand in order to use the associated features.
----
-** There is a new configure option --enable-use-lisp-union-type.
+** New configure option --enable-use-lisp-union-type.
This is only useful for Emacs developers to debug certain types of bugs.
This is not a new feature; only the configure flag is new.
----
** The standalone programs digest-doc and sorted-doc are removed.
Emacs now uses Lisp commands `doc-file-to-man' and `doc-file-to-info'.
----
** The standalone program `fakemail' is removed.
If you need it, feedmail.el provides a superset of the functionality.
\f
* Startup Changes in Emacs 24.1
----
** The --unibyte, --multibyte, --no-multibyte, and --no-unibyte
command line arguments, and the EMACS_UNIBYTE environment variable, no
longer have any effect. (They were declared obsolete in Emacs 23.)
-+++
** New command line option `--no-site-lisp' removes site-lisp directories
from load-path. -Q now implies this. This option does not affect the
EMACSLOADPATH environment variable (and hence has no effect for
-Nextstep builds.)
+Nextstep builds).
\f
* Changes in Emacs 24.1
-+++
-** auto-mode-case-fold is now enabled by default.
-
** Completion
-*** shell-mode uses pcomplete rules, with the standard completion UI.
-+++
-*** Many packages have been changed to use `completion-at-point'
-rather than their own completion code.
-+++
+*** Many packages now use the `completion-at-point' command,
+rather than implementing separate completion commands.
+
*** `completion-at-point' now handles tags and semantic completion.
----
+
*** Completion in a non-minibuffer now tries to detect the end of completion
and pops down the *Completions* buffer accordingly.
-+++
-*** Completion can cycle, depending on completion-cycle-threshold.
-+++
-*** New completion style `substring'.
-+++
-*** Completion style can be set per-category `completion-category-overrides'.
-+++
-*** Completion of buffers now uses substring completion by default.
----
-*** The `widget-complete-field' option has been removed.
-** Mail changes
-
-+++
-*** The default of `send-mail-function' is now `sendmail-query-once',
-which asks the user (once) whether to use the smtpmail package to send
-email, or to use the old defaults that rely on external mail
-facilities (`sendmail-send-it' on GNU/Linux and other Unix-like
-systems, and `mailclient-send-it' on Windows).
-
----
-*** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
-passes it to the mail user agent function. This argument specifies an
-action for returning to the caller after finishing with the mail.
-For example, this is used by Rmail to optionally delete a mail window.
+*** New option `completion-cycle-threshold' allows completion cycling.
-*** smtpmail
+*** New option `completion-category-overrides' for overriding the
+default completion style in certain circumstances.
-+++
-**** smtpmail now uses encrypted connections (via STARTTLS) by default
-if the mail server supports them. This uses either built-in GnuTLS
-support, or the starttls.el library. Customize `smtpmail-stream-type'
-to change this.
+*** New completion style `substring'.
-+++
-**** The variable `smtpmail-auth-credentials' has been removed.
-By default, the information is now stored in the file ~/.authinfo.
-This was the default value of smtpmail-auth-credentials.
-If you had customized smtpmail-auth-credentials to a list of user
-names and passwords, those settings will not be used. Your first
-connection to the smtp server will prompt for the user name and password,
-and then offer to save them to the ~/.authinfo file. Or you can
-manually copy the credentials to your ~/.authinfo files. For example,
-if you had
+*** Completion of buffer names uses `substring' completion by default.
- (setq smtpmail-auth-credentials
- '(("mail.example.org" 25 "jim" "s!cret")))
+*** The option `widget-complete-field' has been removed.
-then the equivalent line in ~/.authinfo would be
+** Mail changes
- machine mail.example.org port 25 login jim password s!cret
+*** The first time you try sending mail, Emacs asks for a mail method.
+This is implemented by a new default for `send-mail-function', which
+is `sendmail-query-once'. This offers to use the smtpmail package, or
+to use the old defaults relying on external mail facilities
+(`sendmail-send-it' on GNU/Linux and other Unix-like systems, and
+`mailclient-send-it' on Windows).
-See the auth-source manual for more information, e.g. on encrypting
-the credentials file.
+*** Typing C-c m in the buffer made by M-x report-emacs-bug transfers
+the report to your desktop's preferred mail client, if there is one.
+This uses either the "xdg-email" utility, or Mac OS's "open" command.
-+++
-**** The variable `smtpmail-starttls-credentials' has been removed.
+*** See Changes in Specialized Modes and Packages for SMTPmail changes
+and Mail mode changes
-If you had that set, then you need to put
+** Emacs server and client changes
- machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
+*** New option `server-port' specifies the port for TCP Emacs servers.
-in your ~/.authinfo file instead.
+*** New emacsclient argument -q/--quiet suppresses some status messages.
-*** Mail mode changes (this is the old Mail mode, not Message mode)
-+++
-**** New command `mail-add-attachment' for adding MIME attachments
----
-**** The command `mail-attach-file' was renamed to `mail-insert-file'.
-The old name is now an obsolete alias to the new name.
+*** New emacsclient argument --frame-parameters specifies the frame
+parameters of any newly-created graphical frame.
-+++
-*** You can type C-c m from M-x report-emacs-bug if you prefer, and if
-your system supports it, to transfer your report to your desktop's
-preferred mail client. This uses either the "xdg-email" utility, or
-OS X's "open" command.
+*** If emacsclient shuts down due to Emacs signaling an error,
+its exit status is 1.
-** Emacs server and client changes
-+++
-*** New option `server-port' specifies the port on which the Emacs
-server should listen.
-+++
-*** New emacsclient argument -q/--quiet suppresses some status messages.
-+++
-*** New emacsclient argument --frame-parameters can be used to set the
-frame parameters of a newly-created graphical frame.
-+++
-*** If emacsclient shuts down as a result of Emacs signaling an
-error, its exit status is 1.
-+++
*** New emacsclient argument --parent-id ID.
This opens a client frame in parent X window ID, via XEmbed, similar
to the --parent-id argument to Emacs.
** Internationalization changes
-+++
*** Emacs now supports display and editing of bidirectional text.
+Right-to-left (RTL) scripts, such as Arabic, Farsi, and Hebrew, are
+displayed in the correct visual order as expected by users of those
+scripts. The display reordering is a "full bidirectionality" class
+implementation of the Unicode Bidirectional Algorithm (UBA). Buffers
+with no RTL text should look exactly the same as before.
-Text that includes characters from right-to-left (RTL) scripts, such
-as Arabic, Farsi, or Hebrew, is displayed in the correct visual order
-as expected by users of those scripts. This display reordering is a
-"Full bidirectionality" class implementation of the Unicode
-Bidirectional Algorithm. Buffers with no RTL text should look exactly
-the same as before.
-
-For more information, see the node "Bidirectional Editing" in the
-Emacs Manual.
-
-+++
**** New buffer-local variable `bidi-display-reordering'.
-To disable display reordering in any given buffer, change this to nil.
+To disable display reordering in a buffer, change this to nil.
-+++
**** New buffer-local variable `bidi-paragraph-direction'.
If nil (the default), Emacs determines the base direction of each
-paragraph from its text, as specified by the Unicode Bidirectional
-Algorithm.
+paragraph from its text, as specified by the UBA. Setting the value
+to `right-to-left' or `left-to-right' forces a base direction on each
+paragraph.
-Setting this to `right-to-left' or `left-to-right' forces a particular
-base direction on each paragraph in the buffer.
+Paragraphs with right-to-left base direction are displayed starting at
+the right window edge.
-Paragraphs whose base direction is right-to-left are displayed
-starting at the right margin of the window.
+*** Enhanced support for characters with no glyphs in available fonts,
+or, on text terminals, characters that cannot be encoded by the
+terminal coding system. The new option `glyphless-char-display-control'
+specifies how to display them: as a hexadecimal code in a box, a thin
+1-pixel space, an empty box, etc.
-+++
-*** Enhanced support for characters with no glyphs in available fonts.
-If a character has no glyphs in any of the available fonts, Emacs
-normally displays it either as a hexadecimal code in a box or as a
-thin 1-pixel space. In addition to these two methods, Emacs can
-display these characters as empty box, as an acronym, or not display
-them at all. To change how these characters are displayed, customize
-the variable `glyphless-char-display-control'.
-
-On character terminals, these methods are used for characters that
-cannot be encoded by the `terminal-coding-system'.
+*** New input methods: farsi, farsi-translit, bulgarian-alt-phonetic.
----
-*** New input methods for Farsi: farsi and farsi-translit;
-and for Bulgarian: bulgarian-alt-phonetic.
-
-+++
*** `nobreak-char-display' now also highlights Unicode hyphen chars
(U+2010 and U+2011).
----
-*** New translation of the Emacs Tutorial in Hebrew is available.
+*** New Hebrew translation of the Emacs Tutorial.
Type `C-u C-h t' to choose it in case your language setup doesn't
automatically select it.
+** An Emacs Lisp package manager is now included.
+This is a convenient way to download and install additional packages,
+from a package repository at http://elpa.gnu.org.
+
+*** M-x list-packages shows a list of packages, which can be
+selected for installation.
+
+*** New command `describe-package', bound to `C-h P'.
+
+*** By default, all installed packages are loaded automatically when
+Emacs starts up. To disable this, set `package-enable-at-startup' to
+nil. To specify the packages to load, customize `package-load-list'.
+
+** Custom theme changes
+
+*** New command `M-x customize-themes', which provides a convenient
+interface for enabling and disabling Custom themes.
+
+*** New option `custom-theme-load-path' is the load path for themes.
+Emacs no longer looks for Custom themes in `load-path'. The default
+value of `custom-theme-load-path' says to look for themes in
+`custom-theme-directory', followed by a subdirectory of
+`data-directory' named "themes/", which contains a small selection of
+built-in Custom themes.
+
+*** New option `custom-safe-themes' records known-safe theme files.
+If a theme is not in this list, Emacs queries before loading it, and
+offers to save the theme to `custom-safe-themes' automatically. By
+default, all themes included in Emacs are treated as safe.
+
** Improved GTK integration
-+++
+
*** GTK scroll-bars are now placed on the right by default.
-Use `set-scroll-bar-mode' to change this.
-+++
+The function `set-scroll-bar-mode' can change this.
+
*** GTK tool bars can have just text, just images or images and text.
-Customize `tool-bar-style' to choose style. On a Gnome desktop, the default
-is taken from the desktop settings.
----
-*** GTK tool bars can be placed on the left/right or top/bottom of the frame.
-The frame-parameter tool-bar-position controls this. It takes the values
-top, left, right or bottom. The Options => Show/Hide menu has entries
-for this.
-+++
-*** The colors for selected text (the `region' face) are taken from
-the GTK theme when Emacs is built with GTK.
-+++
-*** Emacs uses GTK tooltips by default if built with GTK. You can turn that
-off by customizing x-gtk-use-system-tooltips.
+Customize `tool-bar-style' to choose the style. On a Gnome desktop,
+the default is taken from desktop settings.
-+++
-** New basic faces `error', `warning', `success' are available to
-highlight strings that indicate failure, caution or successful operation.
+*** GTK tool bars can be placed on any edge of the frame.
+The frame-parameter tool-bar-position controls this. It takes the
+values top, left, right or bottom. The Options => Show/Hide menu has
+entries for this.
----
-** Lucid menus and dialogs can display antialiased fonts if Emacs is built
-with Xft. To change font, use the X resource font, for example:
-Emacs.pane.menubar.font: Courier-12
+*** The default colors for selected text (the `region' face) are taken
+from the GTK theme when Emacs is built with GTK.
-+++
-** On graphical displays, the mode-line no longer ends in dashes.
+*** Emacs uses GTK tooltips by default if built with GTK.
+You can disable this by changing `x-gtk-use-system-tooltips' to nil.
+
+** Graphical interface changes
+
+*** On graphical displays, the mode-line no longer ends in dashes.
Also, the first dash (which does not indicate anything) is just
displayed as a space.
-+++
-** Basic SELinux support has been added.
-This requires Emacs to be linked with libselinux at build time.
+*** `menu-bar-select-buffer-function' lets you choose another operation
+instead of `switch-to-buffer' when selecting an item in the Buffers menu.
-+++
-*** Emacs preserves the SELinux file context when backing up, and
-optionally when copying files. To this end, `copy-file' has an extra
-optional argument, and the return value of `backup-buffer' now
-includes the SELinux context.
+*** Lucid menus and dialogs can display antialiased fonts if Emacs is
+built with Xft. These fonts can be set via X resources, for example:
+Emacs.pane.menubar.font: Courier-12
-+++
-*** The new functions file-selinux-context and set-file-selinux-context
-get and set the SELinux context of a file.
+** Exiting changes
-** Changes for exiting Emacs
-+++
-*** The function kill-emacs is now run upon receipt of the signals
-SIGTERM and SIGHUP, and upon SIGINT in batch mode.
-+++
-*** kill-emacs-hook is now also run in batch mode.
-If you have code that adds something to kill-emacs-hook, you should
-consider if it is still appropriate to add it in the noninteractive case.
+*** Emacs now calls `kill-emacs' if it receives SIGTERM or SIGHUP,
+or if it receives a SIGINT signal in batch mode.
+
+*** `kill-emacs-hook' is now also run in batch mode.
+Third-party code which adds to `kill-emacs-hook' should check if they
+do the right thing in batch mode.
** Scrolling changes
-+++
+
*** New scrolling commands `scroll-up-command' and `scroll-down-command'
(bound to C-v/[next] and M-v/[prior]) do not signal errors at top/bottom
-of buffer at first key-press (instead move to top/bottom of buffer)
+of buffer at first key-press (instead they move to top/bottom of buffer)
when `scroll-error-top-bottom' is non-nil.
-+++
-*** New variable `scroll-error-top-bottom' (see above).
-+++
+
+*** New option `scroll-error-top-bottom' (see above).
+
*** New scrolling commands `scroll-up-line' and `scroll-down-line'
scroll a line instead of full screen.
-+++
+
*** New property `scroll-command' should be set on a command's symbol to
define it as a scroll command affected by `scroll-preserve-screen-position'.
-+++
+
*** If you customize `scroll-conservatively' to a value greater than 100,
Emacs will never recenter point in the window when it scrolls due to
cursor motion commands or commands that move point (e.f., `M-g M-g').
Previously, you needed to use `most-positive-fixnum' as the value of
`scroll-conservatively' to achieve the same effect.
----
-*** ``Aggressive'' scrolling now honors the scroll margins.
+
+*** "Aggressive" scrolling now honors the scroll margins.
If you customize `scroll-up-aggressively' or
`scroll-down-aggressively' and move point off the window, Emacs now
scrolls the window so as to avoid positioning point inside the scroll
margin.
+** Basic SELinux support has been added.
+This requires Emacs to be linked with libselinux at build time.
+
+*** Emacs preserves the SELinux file context when backing up.
+Also, the function `copy-file' has an extra optional argument for
+preserving SELinux context, and the return value of `backup-buffer'
+now includes the SELinux context.
+
+*** New functions `file-selinux-context' and `set-file-selinux-context'
+get and set the SELinux context of a file.
+
** Trash changes
-+++
+
*** `delete-by-moving-to-trash' now only affects commands that specify
trashing. This avoids inadvertently trashing temporary files.
-+++
+
*** Calling `delete-file' or `delete-directory' with a prefix argument
now forces true deletion, regardless of `delete-by-moving-to-trash'.
-+++
-** New option `list-colors-sort' defines the color sort order
-for `list-colors-display'.
-
-** An Emacs Lisp package manager is now included.
-This is a convenient way to download and install additional packages,
-from a package repository at http://elpa.gnu.org.
-+++
-*** `M-x list-packages' shows a list of packages, which can be
-selected for installation.
-+++
-*** New command `describe-package', bound to `C-h P'.
-+++
-*** By default, all installed packages are loaded and activated
-automatically when Emacs starts up. To disable this, set
-`package-enable-at-startup' to nil. To change which packages are
-loaded, customize `package-load-list'.
-
-** Custom Themes
-+++
-*** `M-x customize-themes' lists Custom themes which can be enabled.
-+++
-*** New option `custom-theme-load-path' is the load path for themes.
-Emacs no longer looks for custom themes in `load-path'. The default
-is to search in `custom-theme-directory', followed by a built-in theme
-directory named "themes/" in `data-directory'.
-+++
-*** New option `custom-safe-themes' records known-safe theme files.
-If a theme is not in this list, Emacs queries before loading it, and
-offers to save the theme to `custom-safe-themes' automatically. By
-default, all themes included in Emacs are treated as safe.
-
** File- and directory-local variable changes
-+++
+
*** You can stop directory local vars from applying to subdirectories.
Add an element (subdirs . nil) to the alist portion of any variables
settings to indicate that the section should not apply to
subdirectories.
-+++
+
*** Directory local variables can apply to some file-less buffers.
Affected modes include dired, vc-dir, and log-edit. For example,
adding "(diff-mode . ((mode . whitespace)))" to .dir-locals.el will
turn on `whitespace-mode' for *vc-diff* buffers. Modes should call
`hack-dir-local-variables-non-file-buffer' to support this.
-+++
+
*** Using "mode: MINOR-MODE" to enable a minor mode is deprecated.
Instead, use "eval: (minor-mode 1)".
-+++
*** The variable `inhibit-first-line-modes-regexps' has been renamed
to `inhibit-local-variables-regexps'. As the name suggests, it now
-applies to ALL file local variables, not just -*- mode ones.
-The associated `inhibit-first-line-modes-suffixes' has been renamed
-in the corresponding way.
-
-+++
-** The variable `focus-follows-mouse' now always defaults to nil.
-
-+++
-** New primitive `secure-hash' that supports many secure hash algorithms:
-md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
-sha1.el has been removed. The `sha1' feature is provided by default.
-
-** Menu-bar changes
----
-*** `menu-bar-select-buffer-function' lets you choose another operation
-instead of `switch-to-buffer' when selecting an item in the Buffers menu.
+applies to ALL file local variables, not just -*- lines. The
+associated `inhibit-first-line-modes-suffixes' has been renamed in the
+corresponding way.
** Window changes
-+++
+*** The `quit-window' command now restores the last buffer displayed
+in the quitted window.
+
*** Resizing an Emacs frame now preserves proportional window sizes,
modulo restrictions like window minimum sizes and fixed-size windows.
*** The behavior of `display-buffer' is now customizable in detail.
-+++
+
**** New option `display-buffer-base-action' specifies a list of
user-determined display "actions" (functions and optional arguments
for choosing the displaying window).
This takes precedence over the default display action, which is
specified by `display-buffer-fallback-action'.
-+++
**** New option `display-buffer-alist' maps buffer name regexps to
display actions, taking precedence over `display-buffer-base-action'.
-+++
*** New option `window-combination-limit'.
The new option `window-combination-limit' allows to return the space
obtained for resizing or creating a window more reliably to the window
from which such space was obtained.
-+++
*** New option `window-combination-resize'.
The new option `window-combination-resize' allows to split a window that
otherwise cannot be split because it's too small by stealing space from
other windows in the same combination. Subsequent resizing or deletion
of the window will resize all windows in the same combination as well.
-+++
+*** New option `frame-auto-hide-function' lets you choose between
+iconifying or deleting a frame when burying a buffer in a dedicated
+frame, or quitting a window showing a buffer in a frame of its own.
+
*** New commands `maximize-window' and `minimize-window'.
These maximize and minimize the size of a window within its frame.
-+++
*** New commands `switch-to-prev-buffer' and `switch-to-next-buffer'.
These functions allow to navigate through the live buffers that have
been shown in a specific window.
-+++
-** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
+** Minibuffer changes
+
+*** The inactive minibuffer has its own major mode `minibuffer-inactive-mode'.
This is handy for minibuffer-only frames, and is also used for the feature
where mouse-1 pops up *Messages*"', which can now easily be changed.
----
-** Minibuffers set `truncate-lines' to nil.
+*** Minibuffers set `truncate-lines' to nil.
If you want to change the value to something else, you could use
-for example minibuffer-setup-hook.
+for example `minibuffer-setup-hook'.
+
+** `auto-mode-case-fold' is now enabled by default.
+
+** `backup-by-copying-when-mismatch' now defaults to t.
+
+** New basic faces `error', `warning', `success'.
+These are used to highlight text indicating failure, caution or
+successful operation.
+
+** New option `list-colors-sort' defines the color sort order
+for `list-colors-display'.
+
+** The variable `focus-follows-mouse' now always defaults to nil.
\f
* Editing Changes in Emacs 24.1
** Search changes
-+++
-*** C-y in Isearch is now bound to isearch-yank-kill, instead of
-isearch-yank-line.
-+++
-*** M-y in Isearch is now bound to isearch-yank-pop, instead of
-isearch-yank-kill.
-+++
-*** M-s C-e in Isearch is now bound to isearch-yank-line.
-+++
+*** C-y in Isearch is now bound to `isearch-yank-kill', instead of
+`isearch-yank-line'.
+
+*** M-y in Isearch is now bound to `isearch-yank-pop', instead of
+`isearch-yank-kill'.
+
+*** M-s C-e in Isearch is now bound to `isearch-yank-line'.
+
** New commands `count-words-region' and `count-words'.
-+++
+
*** M-= is bound to `count-words-region', not `count-lines-region'.
The `count-words-region' command, when called interactively, reports
the number of lines, words, and characters in the region. It is a
superset of the old `count-lines-region', which is now an obsolete
alias for it.
-+++
-** The default value of `backup-by-copying-when-mismatch' is now t.
-
-+++
** The command `just-one-space' (M-SPC), if given a negative argument,
also deletes newlines around point.
** Deletion changes
-+++
+
*** New option `delete-active-region'.
If non-nil, [delete] and DEL delete the region if it is active and no
-prefix argument is given. If set to `kill', these commands kill
+prefix argument is given. If set to `kill', those commands kill
instead.
-+++
+
*** New command `delete-forward-char', bound to [delete].
This is meant for interactive use, and obeys `delete-active-region'.
The command `delete-char' does not obey `delete-active-region'.
----
+
*** `delete-backward-char' is now a Lisp function.
Apart from obeying `delete-active-region', its behavior is unchanged.
-However, the byte compiler now warns if it is called from Lisp; you
-should use delete-char with a negative argument instead.
----
+However, the byte compiler now warns if it is called from Lisp; Lisp
+callers should use delete-char with a negative argument instead.
+
*** The option `mouse-region-delete-keys' has been deleted.
** Selection changes.
-The default handling of clipboard and primary selections was changed
-to conform with modern X applications. In short, most commands for
-killing and yanking text now use the clipboard, while mouse commands
-use the primary selection.
+The default handling of clipboard and primary selections has been
+changed to conform with modern X applications. In short, most
+commands for killing and yanking text now use the clipboard, while
+mouse commands use the primary selection.
In the following, we provide a list of these changes, followed by a
list of steps to get the old behavior back if you prefer that.
-+++
*** `select-active-regions' now defaults to t.
Merely selecting text (e.g. with drag-mouse-1) no longer puts it in
the kill ring. The selected text is put in the primary selection, if
the system possesses a separate primary selection facility (e.g. X).
-+++
**** `select-active-regions' also accepts a new value, `only'.
This means to only set the primary selection for temporarily active
regions (usually made by mouse-dragging or shift-selection);
"ordinary" active regions, such as those made with C-SPC followed by
point motion, do not alter the primary selection.
----
**** `mouse-drag-copy-region' now defaults to nil.
-+++
*** mouse-2 is now bound to `mouse-yank-primary'.
This pastes from the primary selection, ignoring the kill-ring.
Previously, mouse-2 was bound to `mouse-yank-at-click'.
-+++
+
*** `x-select-enable-clipboard' now defaults to t on all platforms.
-+++
+
*** `x-select-enable-primary' now defaults to nil.
Thus, commands that kill text or copy it to the kill-ring (such as
M-w, C-w, and C-k) also use the clipboard---not the primary selection.
----
**** The "Copy", "Cut", and "Paste" items in the "Edit" menu are now
-exactly equivalent to, respectively M-w, C-w, and C-y.
+exactly equivalent to M-w, C-w, and C-y respectively.
----
**** Note that on MS-Windows, `x-select-enable-clipboard' was already
non-nil by default, as Windows does not support the primary selection
between applications.
----
*** To return to the previous behavior, do the following:
+
**** Change `select-active-regions' to nil.
**** Change `mouse-drag-copy-region' to t.
**** Change `x-select-enable-primary' to t (on X only).
**** Change `x-select-enable-clipboard' to nil.
**** Bind `mouse-yank-at-click' to mouse-2.
-+++
*** Support for X cut buffers has been removed.
-+++
+
*** X clipboard managers are now supported.
To inhibit this, change `x-select-enable-clipboard-manager' to nil.
-+++
-** New command `rectangle-number-lines', bound to `C-x r N', numbers
-the lines in the current rectangle. With a prefix argument, this
-prompts for a number to count from and for a format string.
+** New command `C-x r N' (`rectangle-number-lines') numbers the lines
+in the current rectangle. With a prefix argument, this prompts for a
+number to count from and for a format string.
-+++
-** The default value of redisplay-dont-pause is now t
+** `redisplay-dont-pause' now defaults to t.
This makes Emacs feel more responsive to editing commands that arrive
at high rate, e.g. if you lean on some key, because stopping redisplay
in the middle (when this variable is nil) forces more expensive
updates later on, and Emacs appears to be unable to keep up.
-+++
** The behavior of <TAB> for active regions in Text mode has changed.
In Text and related modes, typing <TAB> (`indent-for-tab-command')
when the region is active causes Emacs to indent all the lines in the
region, aligning them with the line previous to the first line in the
region (or with the left margin if there is no previous line).
+** When `occur' is called with a prefix argument, matching strings are
+collected into the `*Occur*' buffer without line numbers. If there
+are parenthesized subexpressions in the specified regexp, `occur'
+reads replacement text that may contain \\& and \\N whose convention
+follows `replace-match'.
+
\f
* Changes in Specialized Modes and Packages in Emacs 24.1
-+++
** Archive Mode has basic support for browsing and updating 7z archives.
** BibTeX mode
----
+
*** BibTeX mode now supports biblatex.
-Use the variable bibtex-dialect to select different BibTeX dialects.
-bibtex-entry-field-alist is now an obsolete alias forbibtex-BibTeX-entry-alist.
----
-*** New command `bibtex-search-entries' bound to C-c C-a.
----
+Use the variable `bibtex-dialect' to select different BibTeX dialects.
+`bibtex-entry-field-alist' is now an obsolete alias for
+`bibtex-BibTeX-entry-alist'.
+
+*** New command `bibtex-search-entries', bound to C-c C-a.
+
*** New `bibtex-entry-format' option `sort-fields', disabled by default.
----
+
*** New variable `bibtex-search-entry-globally'.
+** Browse-url
+
+*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
+
+*** The default browser used by the package is now the "xdg-open" program,
+on platforms that support it. This calls your desktop's preferred browser.
+
** Calendar, Diary, and Appt
-+++
-*** Diary entries can contain non-printing `comments'.
+*** Diary entries can contain non-printing "comments".
See the variable `diary-comment-start'.
-+++
*** Appointments can specify their individual warning times.
See the variable `appt-warning-time-regexp'.
----
*** The function specified by `appt-disp-window-function' may be passed
lists of arguments if multiple appointments are due at similar times.
If you are using a custom function for this, you should update it.
-+++
*** New function `diary-hebrew-birthday'.
----
*** Elements of `calendar-day-abbrev-array' and `calendar-month-abbrev-array'
may no longer be nil, but must all be strings.
----
-*** The obsolete (since Emacs 22.1) method of enabling the appt package
-by adding appt-make-list to diary-hook has been removed. Use appt-activate.
+*** The obsolete (since Emacs 22.1) method of enabling the appt
+package by adding `appt-make-list' to `diary-hook' has been removed.
+Use `appt-activate' instead.
----
*** Some appt variables (obsolete since Emacs 22.1) have been removed:
appt-issue-message (use the function appt-activate)
appt-visible/appt-msg-window (use the variable appt-display-format)
----
*** Some diary function aliases (obsolete since Emacs 22.1) have been removed:
view-diary-entries, list-diary-entries, show-all-diary-entries
-** Browse-url
+** CC Mode
-+++
-*** New option `browse-url-mailto-function' specifies how to handle "mailto:"s.
+*** New feature to "guess" the style in an existing buffer.
+The main entry point is M-x c-guess.
----
-*** The default browser used by the package is now the "xdg-open" program,
-on platforms that support it. This calls your desktop's preferred browser.
+*** Java Mode now supports Java 5.0 (Tiger) and 6 (Mustang).
-+++
-** New CC Mode feature to "guess" the style in an existing buffer.
-The main entry is M-x c-guess.
+*** `c-beginning-of-defun' and `c-end-of-defun' now respect nested scopes.
+Thus C-M-a will, by default, go to the beginning of the immediate function,
+not the top level.
+
+*** "Macros with semicolons" can be registered for correct indentation.
+Where such a macro ends a line (no semicolon) the next statement is no longer
+parsed as a statement continuation.
-** comint and modes derived from it use the generic completion code.
+** Comint and modes derived from it use the standard completion code.
** Compilation mode
----
-*** Compilation mode can be used without font-lock-mode.
+
+*** Compilation mode can be used without Font Lock mode.
`compilation-parse-errors-function' is now obsolete.
----
-*** New variable `compilation-filter-start', bound while
-compilation-filter-hook runs. It records the start position of the
-text inserted by compilation-filter.
+*** New variable `compilation-filter-start', which is bound while
+`compilation-filter-hook' runs. It records the start position of the
+text inserted by `compilation-filter'.
----
*** `compilation-error-screen-columns' and `compilation-first-column'
are obeyed in the editing buffer. So programming language modes can
-set them, whereas previously only the value in the *compilation* buffer
-was used.
+set them, whereas previously only the value in the *Compilation*
+buffer was used.
** Customize
-+++
*** Customize buffers now contain a search field.
The search is performed using `customize-apropos'.
-To turn off the search field, set custom-search-field to nil.
+To turn off the search field, set `custom-search-field' to nil.
-+++
*** Custom options now start out hidden if at their default values.
Use the arrow to the left of the option name to toggle visibility.
----
*** custom-buffer-sort-alphabetically now defaults to t.
-+++
*** The color widget now has a "Choose" button, which allows you to
-choose a color via list-colors-display.
+choose a color via `list-colors-display'.
** D-Bus
*** It is now possible to access buses other than the default system
or session bus.
-*** The dbus-register-method and dbus-register-property functions
+*** The `dbus-register-method' and `dbus-register-property' functions
optionally do not register names.
-*** The new function dbus-register-service registers a known service name
-on a D-Bus without simultaneously registering a property or a method.
+*** The new function `dbus-register-service' registers a known service
+name on a D-Bus without also registering a property or a method.
** Dired-x
----
-*** dired-jump and dired-jump-other-window called with a prefix argument
-read a file name from the minibuffer instead of using buffer-file-name.
-+++
-*** The `dired local variables' feature provided by Dired-x is obsolete.
+*** C-x C-j (`dired-jump') and C-x 4 C-j (`dired-jump-other-window'),
+if called with a prefix argument, read a file name from the minibuffer
+instead of using the current buffer.
+
+*** The "dired local variables" feature of Dired-x is obsolete.
The standard directory local variables feature replaces it.
** ERC changes
----
*** New options `erc-autojoin-timing' and `erc-autojoin-delay',
controlling attempts to autojoin a channel.
** Eshell changes
----
*** The default value of `eshell-directory-name' has changed
to be an "eshell" directory in `user-emacs-directory'.
The old "~/.eshell/" directory is still used if it exists, though.
** gdb-mi
-+++
-*** The GDB User Interface has been migrated to GDB Machine Interface.
+
+*** The M-x gdb command now uses the GDB Machine Interface protocol.
It now supports multithread non-stop debugging and simultaneous
debugging of several threads.
** Image mode
-+++
*** RET (`image-toggle-animation') toggles animation, if applicable.
Animation plays once, unless the option `image-animate-loop' is non-nil.
** Info
-+++
-*** New command `info-display-manual' displays a named Info manual.
+*** New command M-x info-display-manual displays a named Info manual.
If that manual is already visited in some Info buffer, it displays
that buffer. (This is handy if you have many manuals in many *info*
buffers, and don't remember the name of the buffer visiting the manual
you want to consult.) Otherwise, it loads and displays the manual.
-+++
*** `e' is now bound to `end-of-buffer' rather than to `Info-edit'.
This is for compatibility with the stand-alone Info reader program,
and also because `Info-edit' is a rarely used command that is disabled
by default.
-+++
+** Mail mode changes (not Message mode)
+
+*** New command M-x mail-add-attachment for adding MIME attachments
+
+*** The command M-x mail-attach-file was renamed to M-x mail-insert-file.
+(Its name is misleading, since it has nothing to do with MIME
+attachments.) The old name is now an obsolete alias to the new name.
+
** MH-E has been upgraded to MH-E version 8.3.1.
See MH-E-NEWS for details.
----
** Modula-2 mode provides auto-indentation.
----
** mpc.el: Can use pseudo tags of the form tag1|tag2 as a union of two tags.
** nXML mode no longer binds C-RET to `nxml-complete'.
-Completion is now performed via `completion-at-point', bound to M-TAB.
-If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the default),
-this performs tag completion.
+Completion is now performed via `completion-at-point', bound to C-M-i
+or M-TAB. If `nxml-bind-meta-tab-to-complete-flag' is non-nil (the
+default), this performs tag completion.
----
** Prolog mode has been completely revamped, with lots of additional
-functionality such as more intelligent indentation, electricity, support for
-more variants, including Mercury, and a lot more.
+functionality such as more intelligent indentation, electricity,
+support for more variants, including Mercury, and a lot more.
** Rmail
-+++
*** The command `rmail-epa-decrypt' decrypts OpenPGP data
in the Rmail incoming message.
----
*** The variable `rmail-message-filter' no longer has any effect.
This change was made in Emacs 23.1 but was not advertised at the time.
Try using `rmail-show-message-hook' instead.
** Shell mode
-+++
-*** Shell mode uses pcomplete rules, with the standard completion UI.
-+++
-*** The `shell' command prompts for the shell path name if the default
-directory is a remote file name and neither the environment variable
-$ESHELL nor the variable `explicit-shell-file-name' is set.
----
+*** M-x shell prompts for the shell path name if the default directory
+is a remote file name and neither the environment variable $ESHELL nor
+the variable `explicit-shell-file-name' is set.
+
+*** TAB is now bound to the standard `completion-at-point' command,
+which now implements the pcomplete rules for shell command completion.
+
+** SMTPmail
+
+*** SMTPmail now uses encrypted connections (via STARTTLS) by default
+if the mail server supports them. This uses either built-in GnuTLS
+support, or the starttls.el library. Customize `smtpmail-stream-type'
+to change this.
+
+*** The variable `smtpmail-auth-credentials' has been removed.
+By default, the information is now stored in the file ~/.authinfo.
+This was the default value of smtpmail-auth-credentials. If you had
+customized smtpmail-auth-credentials to a list of user names and
+passwords, those settings are not used. During your first connection
+to the smtp server, Emacs will prompt for the user name and password,
+and offer to save them to ~/.authinfo. Or you can manually copy the
+credentials to ~/.authinfo. For example, if you had
+
+ (setq smtpmail-auth-credentials
+ '(("mail.example.org" 25 "jim" "s!cret")))
+
+then the equivalent line in ~/.authinfo would be
+
+ machine mail.example.org port 25 login jim password s!cret
+
+See the auth-source manual for more information, e.g. on encrypting
+the credentials file.
+
+*** The variable `smtpmail-starttls-credentials' has been removed.
+If you had that set, you need to put
+
+ machine smtp.whatever.foo port 25 key "~/.my_smtp_tls.key" cert "~/.my_smtp_tls.cert"
+
+in your ~/.authinfo file instead.
+
** SQL mode
----
*** New options `sql-port', `sql-connection-alist', `sql-send-terminator',
and `sql-oracle-scan-on'.
----
-*** New custom variables control prompting for login parameters.
+*** New options controlling prompting for login parameters.
Each supported product has a custom variable `sql-*-login-params',
which is a list of the parameters to be prompted for before a
connection is established.
----
*** The command `sql-product-interactive' now takes a prefix argument,
which causes it to prompt for an SQL product.
----
*** Product-specific SQL interactive commands now take prefix arguments.
These commands (`sql-sqlite', `sql-postgres', `sql-mysql', etc.),
given a prefix argument, prompt for a name for the SQL interactive
buffer. This reduces the need for calling `sql-rename-buffer'.
----
*** SQL interactive modes suppress command continuation prompts, and
replace tabs with spaces. The first change impacts multiple line SQL
statements entered with C-j between each line, statements yanked into
second prevents the MySQL and Postgres interpreters from listing
object name completions when sent text via `sql-send-*' functions.
----
*** New command `sql-connect' starts a predefined SQLi session,
using the login parameters from `sql-connection-alist'.
----
*** New "Save Connection" menu item in SQLi buffers.
This gathers the login params specified for the SQLi session, if it
was not started by a connection, and saves them as a new connection.
----
*** New commands for listing database objects and details:
sql-list-all and sql-list-table.
----
*** An API for manipulating SQL product definitions has been added.
** TeX modes
-+++
*** latex-electric-env-pair-mode keeps \begin..\end matched on the fly.
** Tramp
----
-*** There exists a new inline access method "ksu" (kerberized su).
----
+
+*** New inline access method "ksu" (kerberized su).
+
*** The following access methods are discontinued: "ssh1_old",
"ssh2_old", "scp1_old", "scp2_old", "imap", "imaps" and "fish".
-+++
+
*** The user option `remote-file-name-inhibit-cache' controls whether
remote file attributes are cached for better performance.
----
+
*** The option `ange-ftp-binary-file-name-regexp' has changed its
default value to "".
----
-*** Handlers for file-selinux-context and set-file-selinux-context for
-remote machines that support SELinux.
-+++
-** New function, `url-queue-retrieve', which behaves like url-retrieve,
+*** Handlers for `file-selinux-context' and `set-file-selinux-context'
+for remote machines which support SELinux.
+
+** New function `url-queue-retrieve', which behaves like url-retrieve,
but with limits (`url-queue-parallel-processes', `url-queue-timeout') on
the degree of parallelism.
** VC and related modes
-+++
*** Support for pulling on distributed version control systems.
-`C-x v +' (`vc-pull') runs a "pull" operation, if it is supported
-(currently with Bzr, Git, and Mercurial), to update the current branch
-and working tree. A prefix argument means to prompt the user for
-specifics, e.g. a pull location.
+The command C-x v + (`vc-pull') runs a "pull" operation, if it is
+supported (currently with Bzr, Git, and Mercurial), to update the
+current branch and working tree. A prefix argument means to prompt
+the user for specifics, e.g. a pull location.
----
*** `vc-update' is now an alias for `vc-pull'.
-+++
*** Support for merging on distributed version control systems.
-The vc-merge command now runs a "merge" operation, if it is supported
-(currently with Bzr, Git, and Mercurial), to merge changes from
-another branch into the current one. It prompts for specifics, e.g. a
-merge source.
+The command C-x v m (`vc-merge') now runs a "merge" operation, if it
+is supported (currently with Bzr, Git, and Mercurial), to merge
+changes from another branch into the current one. It prompts for
+specifics, e.g. a merge source.
-+++
*** New option `vc-revert-show-diff' controls whether `vc-revert'
shows a diff while querying the user. It defaults to t.
-+++
*** Log entries in some Log View buffers can be toggled to display a
longer description by typing RET (log-view-toggle-entry-display).
This is currently supported for Bzr, Git, and Mercurial (to support
another backend, define a `log-view-expanded-log-entry-function').
-In the Log View buffers made by `C-x v L' (vc-print-root-log), you can
+In the Log View buffers made by C-x v L (`vc-print-root-log'), you can
use this to display the full log entry for the revision at point.
-+++
*** New command `vc-ediff' allows visual comparison of two revisions
of a file similar to `vc-diff', but using ediff backend.
-+++
*** The option `vc-initial-comment' was removed in Emacs 23.2, but
this was not advertised at the time.
-+++
*** `vc-toggle-read-only' is an obsolete alias for `toggle-read-only'.
Since Emacs 23, it has done the same thing as `toggle-read-only', but
this was not advertised at the time.
** Obsolete modes
----
*** abbrevlist.el
----
*** erc-hecomplete.el (use erc-pcomplete.el instead)
*** partial-completion-mode (complete.el) is obsolete.
(setq completion-styles '(partial-completion initials))
(setq completion-pcm-complete-word-inserts-delimiters t)
----
*** pc-mode.el is obsolete (CUA mode is much more comprehensive).
-[FIXME gnus.texi, message.texi need updating]
-*** pgg is obsolete (use EasyPG instead)
+*** pgg is obsolete (use EasyPG instead).
----
*** sregex.el is obsolete, since rx.el is a strict superset.
----
*** s-region.el and pc-select.el are obsolete.
They are superseded by shift-select-mode, enabled by default since 23.1.
-+++
-*** vc-mcvs.el is obsolete (for lack of a maintainer)
+*** vc-mcvs.el is obsolete (for lack of a maintainer).
** Miscellaneous
-+++
*** The Landmark game is now invoked with `landmark', not `lm'.
Its functions and variables have been similarly renamed.
----
-*** In `ido-file-completion-map', C-v is no longer bound to ido-toggle-vc.
+*** In `ido-file-completion-map', C-v is no longer bound to `ido-toggle-vc'.
(This interfered with cua-mode.)
-+++
*** f90.el has some support for Fortran 2008 syntax.
----
*** `copyright-fix-years' can optionally convert consecutive years to ranges.
-+++
*** New command `nato-region' converts text to NATO phonetic alphabet.
\f
* New Modes and Packages in Emacs 24.1
-+++
** Occur Edit mode applies edits made in *Occur* buffers to the
original buffers. It is bound to "e" in Occur mode.
-** When `occur' is called with the prefix argument `C-u'
-the matching strings are collected into the `*Occur*' buffer
-without line numbers. If there are parenthesized subexpressions
-in the specified regexp, `occur' reads replacement text that
-may contain \\& and \\N whose convention follows `replace-match'.
-
-+++
** New global minor mode electric-pair-mode.
When enabled, typing an open parenthesis automatically inserts the
matching closing one.
-+++
** New global minor mode electric-indent-mode.
When enabled, typing certain characters triggers reindentation.
Major modes wishing to use this can set electric-indent-chars or
electric-indent-functions.
-+++
** New global minor mode electric-layout-mode.
When enabled, typing certain characters automatically inserts newlines.
Major modes wishing to use this can set electric-layout-rules.
-+++
** tabulated-list.el provides a generic major mode for tabulated data,
from which other modes can be derived.
** soap-client.el supports access to SOAP web services from Emacs.
soap-inspect.el is an interactive inspector for SOAP WSDL structures.
----
** New generic mode, xmodmap-generic-mode, for xmodmap files.
----
** New emacs-lock.el package.
-(The previous version has been moved to obsolete/old-emacs-lock.el.)
-Now, there is a proper minor mode `emacs-lock-mode'.
-Protection against exiting Emacs and killing the buffer can be set
-separately. The mechanism for automatically turning off protection
-for buffers with dead inferior processes has been generalized.
+The previous version has been moved to obsolete/old-emacs-lock.el.
+Now, there is a proper minor mode `emacs-lock-mode'. Protection
+against exiting Emacs and killing the buffer can be set separately.
+The mechanism for automatically turning off protection for buffers
+with dead inferior processes has been generalized.
\f
* Incompatible Lisp Changes in Emacs 24.1
-+++
+** Passing a nil argument to a minor mode function call now ENABLES
+the minor mode unconditionally. This is so that you can write e.g.
+
+ (add-hook 'text-mode-hook 'foo-mode)
+
+to enable foo-mode in Text mode buffers, removing the need for
+`turn-on-foo-mode' style functions. This affects all mode commands
+defined by `define-minor-mode'. If called interactively, the mode
+command still toggles the minor mode.
+
** The return value of `backup-buffer' has changed.
It is now a list of three elements, where the second element is a list
describing the original file's SELinux context. If Emacs or the
system lacks SELinux support, the context list is (nil nil nil nil).
-See the "Basic SELinux support" entry under "Changes in Emacs 24.1",
-above.
+See "Basic SELinux support" above, under "Changes in Emacs 24.1".
----
-** `char-direction-table' and the associated function `char-direction'
-were deleted. They were buggy and inferior to the new support of
-bidirectional editing introduced in Emacs 24. If you need the
-bidirectional properties of a character, use `get-char-code-property'
-with the last argument `bidi-class'.
+** `char-direction-table' and the `char-direction' function were deleted.
+They were buggy and inferior to the new support of bidirectional
+editing introduced in Emacs 24. If you need the bidirectional
+properties of a character, use `get-char-code-property' with the last
+argument `bidi-class'.
-+++
** `copy-directory' now copies the source directory as a subdirectory
of the target directory, if the latter is an existing directory. The
new optional arg COPY-CONTENTS, if non-nil, makes the function copy
the contents directly into a pre-existing target directory.
-+++
** For mouse click input events in the text area, the Y pixel
coordinate in the POSITION list now counts from the top of the text
area, excluding any header line. Previously, it counted from the top
of the header line.
----
-** Support for "old-style" backquotes, which have been obsolete for
-more than 10 years, has been further reduced. Now a backquote not
-followed by a space is always treated as a "new-style" backquote.
-Please remove all "old-style" backquotes from your code. If your code
-uses backquotes as documented in the Elisp manual, and compiles
-without warning, then you have nothing to do in this regard. Code not
-following the appropriate conventions may fail to compile.
+** Support for "old-style" backquotes, obsolete for 10+ years, has
+been further reduced. Now a backquote not followed by a space is
+always treated as a "new-style" backquote. Please remove all
+"old-style" backquotes from your code. If your code uses backquotes
+as documented in the Elisp manual, and compiles without warning, then
+you have nothing to do in this regard. Code not following the
+appropriate conventions may fail to compile.
The most common cause of trouble seems to be an old-style backquote
followed by a newline. Another cause of trouble is vector notation
for key sequence notation: instead of [(control ,)] and [(control ')],
you should write [(control ?,)] and [(control ?')], which will work in
-older Emacs too.
+older Emacsen too.
-+++
** The macro `eval-at-startup' was removed in Emacs 23.2, but this
was not advertised at the time. The function `custom-initialize-delay'
replaced all known uses.
----
-** view-buffer now treats special mode-class in the same way that
-view-file has since Emacs 22 (ie, it won't enable View mode if the
-major-mode is special).
+** `view-buffer' now treats special mode-class in the same way that
+`view-file' has since Emacs 22 (i.e. it won't enable View mode if the
+major mode is special).
-+++
-** Passing a nil argument to a minor mode defined by define-minor-mode
-now turns the mode ON unconditionally. This is so that you can write, e.g.
- (add-hook 'text-mode-hook 'foo-minor-mode)
-to enable foo-minor-mode in Text mode buffers, thus removing the need
-for `turn-on-foo-minor-mode' style functions.
+** Menu and tool bar changes
-+++
-** During startup, Emacs no longer adds entries for `menu-bar-lines'
+*** During startup, Emacs no longer adds entries for `menu-bar-lines'
and `tool-bar-lines' to `default-frame-alist' and `initial-frame-alist'.
With these alist entries omitted, `make-frame' checks the value of the
variable `menu-bar-mode'/`tool-bar-mode' to determine whether to create
a menu-bar or tool-bar, respectively. If the alist entries are added,
they override the value of `menu-bar-mode'/`tool-bar-mode'.
-+++
+*** The menu bar bindings's caches are not used any more.
+Use (where-is-internal <def> nil t) instead.
+
** Regions created by mouse dragging are now normal active regions,
-similar to the ones created by shift-selection. In previous Emacs
-versions, these regions were delineated by `mouse-drag-overlay', which
-has now been removed.
+similar to those created by shift-selection (see Selection changes
+above). In previous Emacs versions, these regions were delineated by
+`mouse-drag-overlay'; that variable has been removed.
-+++
-** The fourth argument of filter-buffer-substring, which says to remove
-text properties from the final result, has been removed.
-Eg simply pass the result through substring-no-properties if you need this.
+** The fourth argument of `filter-buffer-substring' has been removed.
+If you want to remove text properties from the final result, simply
+pass the result through substring-no-properties.
----
** cl.el no longer provides `cl-19'.
-+++
-** The menu bar bindings's caches are not used any more.
-Use (where-is-internal <def> nil t) instead.
-
-+++
-** The following obsolete (mostly since at least 21.1) functions and aliases
-have been removed (the appropriate new function is given in parentheses):
-comint-kill-output (comint-delete-output),
-decompose-composite-char (char-to-string),
-outline-visible (outline-invisible-p),
-internal-find-face (facep), internal-get-face (facep and check-face),
-frame-update-faces (not needed),
-frame-update-face-colors (frame-set-background-mode),
-x-frob-font-weight and x-frob-font-slant (appropriate make-face-* function),
-x-make-font-bold and x-make-font-demibold (make-face-bold),
-x-make-font-italic and x-make-font-oblique (make-face-italic),
-x-make-font-bold-italic (make-face-bold-italic),
-x-make-font-unbold (make-face-unbold),
-x-make-font-unitalic (make-face-unitalic),
-mldrag-drag-mode-line (mouse-drag-mode-line),
-mldrag-drag-vertical-line (mouse-drag-vertical-line),
-iswitchb-default-keybindings (iswitchb-mode), char-bytes (== 1),
-isearch-return-char (isearch-printing-char), make-local-hook (not needed),
-set-screen-height (set-frame-height), set-screen-width (set-frame-width)
-
+** The following obsolete functions and aliases have been removed
+(the appropriate new function is given in parentheses; "not needed"
+means you can just remove all calls to the function in question):
+
+*** `comint-kill-output' (`comint-delete-output')
+*** `decompose-composite-char' (`char-to-string')
+*** `outline-visible' (`outline-invisible-p')
+*** `internal-find-face' (`facep')
+*** `internal-get-face' (`facep and check-face')
+*** `frame-update-faces' (not needed)
+*** `frame-update-face-colors' (`frame-set-background-mode')
+*** `x-frob-font-weight' and `x-frob-font-slant' (`make-face-*' functions)
+*** `x-make-font-bold and x-make-font-demibold (`make-face-bold')
+*** `x-make-font-italic' and `x-make-font-oblique' (`make-face-italic')
+*** `x-make-font-bold-italic' (`make-face-bold-italic')
+*** `x-make-font-unbold' (`make-face-unbold')
+*** `x-make-font-unitalic' (`make-face-unitalic')
+*** `mldrag-drag-mode-line' (`mouse-drag-mode-line')
+*** `mldrag-drag-vertical-line' (`mouse-drag-vertical-line')
+*** `iswitchb-default-keybindings' (`iswitchb-mode')
+*** `char-bytes' (== 1)
+*** `isearch-return-char' (`isearch-printing-char')
+*** `make-local-hook' (not needed)
+*** `set-screen-height' (`set-frame-height')
+*** `set-screen-width' (`set-frame-width')
+
+** The following obsolete variables and varaliases have been removed
+(the appropriate new variable is given in parentheses):
+
+*** `checkdoc-minor-keymap' (`checkdoc-minor-mode-map')
+*** `vc-header-alist' (`vc-BACKEND-header')
+*** `directory-sep-char' (== ?/)
+*** `font-lock-defaults-alist' (`font-lock-defaults')
+*** `e' (`float-e').
-+++
-** The following obsolete (mostly since at least 21.1) variables and varaliases
-have been removed (the appropriate new variable is given in parentheses):
-checkdoc-minor-keymap (checkdoc-minor-mode-map),
-vc-header-alist (vc-BACKEND-header), directory-sep-char (== ?/)
-font-lock-defaults-alist (font-lock-defaults), and e (float-e).
-
----
** The following obsolete files were removed:
sc.el, x-menu.el, rnews.el, rnewspost.el
----
-** The format of the finder-inf.el file has changed, since the finder
-mechanism is now based on the package concept. The variable
-finder-package-info is replaced by package--builtins and finder-keywords-hash.
+** The format of the finder-inf.el file has changed, since the Finder
+mechanism is now based on the package system. The variable
+`finder-package-info' is replaced by `package--builtins' and
+`finder-keywords-hash'.
----
** When generating autoloads, `update-directory-autoloads' no longer
assumes every inspected file is in your `load-path'. It instead
generates relative names according to the current `load-path'.
\f
* Lisp changes in Emacs 24.1
-+++
** Code can now use lexical scoping by default instead of dynamic scoping.
-The `lexical-binding' variable lets code use lexical scoping for local
+The `lexical-binding' variable enables lexical scoping for local
variables. It is typically set via a file-local variable in the first
-line of the file, in which case it applies to all the code in that file.
-+++
+line of the file, in which case it applies to all the code in that
+file.
+
*** `eval' takes a new optional argument `lexical' to choose the new lexical
binding instead of the old dynamic binding mode.
-+++
+
*** Lexically scoped interpreted functions are represented with a new form
of function value which looks like (closure ENV ARGS &rest BODY).
*** New macro `letrec' to define recursive local functions.
-+++
+
+*** `defvar' and `defconst' now mark the variable as special (dynamic).
+So do `defcustom' and other forms that call `defvar' as a subroutine.
+
*** New function `special-variable-p' to check whether a variable is
declared as dynamically bound.
-+++
** An Emacs Lisp testing tool is now included.
Emacs Lisp developers can use this tool to write automated tests for
their code. See the ERT info manual for details.
** Changes for bidirectional display and editing
-+++
*** New function `current-bidi-paragraph-direction'.
-This returns the actual value of base direction of the paragraph at
-point.
+This returns the base direction of the paragraph at point.
-+++
*** New function `bidi-string-mark-left-to-right'.
-Given a string containing characters from right-to-left (RTL) scripts,
-this function returns another string which can be safely inserted into
-a buffer, such that any following text will be always displayed to the
-right of that string. (This works by appending the Unicode
-"LEFT-TO-RIGHT MARK" character when the argument string might need that.)
+Given a string containing characters from right-to-left scripts, this
+function returns another string which can be safely inserted into a
+buffer, such that any following text will be always displayed to the
+right of that string. (This works by appending an invisible Unicode
+"LEFT-TO-RIGHT MARK" character if the argument string might need it.)
-This is useful when the buffer has overall left-to-right (LTR)
-paragraph direction and you need to insert a string whose contents and
-directionality are not known in advance, without disrupting the layout
-of the line.
+This is useful when the buffer has overall left-to-right paragraph
+direction and you need to insert a string whose contents are not known
+in advance, without disrupting the layout of the line.
** Window changes
-+++
+
*** Window tree functions are accessible in Elisp.
Functions are provided to return the parent, siblings or child windows
of any window including internal windows (windows not associated with a
buffer) in the window tree.
-+++
+
**** New function `window-valid-p' gives non-nil for live and internal
windows.
-+++
+
**** Window manipulation can deal with internal windows.
Many window handling functions like `split-window', `delete-window', or
`delete-other-windows' as well as the window resizing functions can now
act on any window including internal ones.
-+++
+
*** window-total-height/-width vs window-body-height/-width.
The function `window-height' has been renamed to `window-total-height'
and `window-width' has been renamed to `window-body-width'. The old
names are provided as aliases. Two new functions `window-total-width'
and `window-body-height' are provided.
-+++
+
*** Window parameters specific to window handling functions.
For each window you can specify a parameter to override the default
behavior of a number of functions like `split-window', `delete-window'
and `delete-other-windows'. The variable `ignore-window-parameters'
allows to ignore processing such parameters.
-+++
+
*** New semantics of third argument of `split-window'.
The third argument of `split-window' has been renamed to SIDE and can be
set to any of the values 'below, 'right, 'above, or 'left to make the
new window appear on the corresponding side of the window that shall be
split. Any other value of SIDE will cause `split-window' to split the
window into two side-by-side windows as before.
-+++
+
*** Window resizing functions.
A new standard function for resizing windows called `window-resize' has
been introduced. This and all other functions for resizing windows no
longer delete any windows when they become too small.
-+++
+
*** Deleting the selected window now selects the most recently selected
live window on that frame instead.
-+++
+
*** `adjust-window-trailing-edge' adjustments.
`adjust-window-trailing-edge' can now deal with fixed-size windows and
is able to resize other windows if a window adjacent to the trailing
edge cannot be shrunk any more. This makes its behavior more similar to
that of Emacs 21 without compromising, however, its inability to delete
windows which was introduced in Emacs 22.
-+++
+
*** Window-local buffer lists.
Windows now have local buffer lists. This means that removing a buffer
from display in a window will preferably show the buffer previously
shown in that window with its previous window-start and window-point
positions. This also means that the same buffer may be automatically
shown twice even if it already appears in another window.
-+++
+
*** `switch-to-buffer' has a new optional argument FORCE-SAME-WINDOW,
which if non-nil requires the buffer to be displayed in the currently
selected window, signaling an error otherwise. If nil, another window
can be used, e.g. if the selected one is strongly dedicated.
-+++
+
*** `split-window-vertically' and `split-window-horizontally' renamed
to `split-window-below' and `split-window-right' respectively.
The old names are kept as aliases.
-+++
+
*** Display actions
**** The second arg to `display-buffer' and `pop-to-buffer' is now
See the docstring of `display-buffer' for details.
-+++
-*** New behavior of `quit-window'.
-The behavior of `quit-window' has been changed in order to restore the
-state before the last buffer display operation in that window.
-
-+++
-*** The new option `frame-auto-hide-function' lets you choose between
-iconifying or deleting a frame when burying a buffer shown in a dedicated
-frame or quitting a window showing a buffer in a frame of its own.
-
-+++
*** New functions `window-state-get' and `window-state-put'.
These functions allow to save and restore the state of an arbitrary
frame or window as an Elisp object.
** Completion
-*** New variable completion-extra-properties used to specify extra properties
-of the current completion:
+*** New variable `completion-extra-properties' used to specify extra
+properties of the current completion:
- :annotate-function, same as the old completion-annotate-function.
- :exit-function, function to call after completion took place.
-*** Functions on completion-at-point-functions can return any of the properties
-valid for completion-extra-properties.
+*** Functions on `completion-at-point-functions' can return any of the
+properties valid for `completion-extra-properties'.
-*** completion-annotate-function is obsolete.
+*** `completion-annotate-function' is obsolete.
*** New `metadata' method for completion tables. The metadata thus returned
can specify various details of the data returned by `all-completions':
- `display-sort-function' to specify how to sort entries in *Completions*.
- `cycle-sort-function' to specify how to sort entries when cycling.
-*** minibuffer-local-filename-must-match-map is not used any more.
-Instead, the bindings in minibuffer-local-filename-completion-map are
-combined with minibuffer-local-must-match-map.
+*** `minibuffer-local-filename-must-match-map' is not used any more.
+Instead, the bindings in `minibuffer-local-filename-completion-map'
+are combined with `minibuffer-local-must-match-map'.
*** New variable `completing-read-function' allows overriding the
behavior of `completing-read'.
-+++
** `glyphless-char-display' can now distinguish between graphical and
text terminal display, via a char-table entry that is a cons cell.
-+++
-** `open-network-stream' can now be used to open an encrypted stream.
-It now accepts an optional `:type' parameter for initiating a TLS
-connection, directly or via STARTTLS. To do STARTTLS, additional
-parameters (`:end-of-command', `:success', `:capabilities-command')
-must also be supplied.
-
-+++
-** pre/post-command-hook are not reset to nil upon error.
+** `pre-command-hook'/`post-command-hook' are not reset to nil on error.
Instead, the offending function is removed.
** New hook types
-+++
*** New function `run-hook-wrapped' for running an abnormal hook by
passing the hook functions as arguments to a "wrapping" function.
Like `run-hook-with-args-until-success', it stops at the first
non-nil return value.
-+++
*** New macro `with-wrapper-hook' for running an abnormal hook as a
set of "wrapping" filters, similar to around advice.
(A version of this macro was actually added in Emacs 23.2 but was not
advertised at the time.)
** Debugger changes
-+++
+
*** New macro `condition-case-unless-debug' (this was actually added in
Emacs 23.1 as condition-case-no-debug, but not advertised)
-+++
+
*** The macro `with-demoted-errors' was added in Emacs 23.1, but not advertised.
----
+
*** Variable `stack-trace-on-error' removed.
-+++
+
*** The debugger can now "continue" from an error, which means it will
jump to the error handler as if the debugger had not been invoked
instead of jumping all the way to the top-level.
-+++
+
*** Set `debug-on-event' to enter the debugger on events like SIGUSR1.
This can be useful when `inhibit-quit' is set.
-+++
** The new function `server-eval-at' allows evaluation of Lisp forms on
named Emacs server instances.
-+++
** `call-process' and `call-process-region' allow a `(:file "file")' spec
to redirect STDOUT to a file.
-+++
-** The function format-time-string now supports the %N directive, for
-higher-resolution time stamps.
+** The function `format-time-string' now supports the %N directive,
+for higher-resolution time stamps.
** New input reading functions
-+++
+
*** New function `read-char-choice' reads a restricted set of
characters, discarding any inputs not inside the set.
-+++
+
*** The command `read-color' now requires a match for a color name
or RGB triplet, instead of signaling an error if the user provides
invalid input.
----
+
**** `facemenu-read-color' is now an alias for `read-color'.
-+++
** `image-library-alist' is renamed to `dynamic-library-alist'.
The variable is now used to load all kind of supported dynamic libraries,
not just image libraries. The previous name is still available as an
obsolete alias.
** Syntax parsing changes
-+++
+
*** New variable `syntax-propertize-function'.
This replaces `font-lock-syntactic-keywords' which is now obsolete.
This allows syntax-table properties to be set independently from font-lock:
syntax-propertize-via-font-lock to reuse old font-lock-syntactic-keywords
as-is; and syntax-propertize-rules which provides a new way to specify
syntactic rules.
-+++
+
*** Syntax tables support a new "comment style c" additionally to style b.
-+++
-** New hook post-self-insert-hook run at the end of self-insert-command.
+** New hook `post-self-insert-hook', run after `self-insert-command'.
----
** frame-local variables cannot be let-bound any more.
** Major and minor mode changes
-+++
+
*** `set-auto-mode' now respects mode: local variables at the end of files,
as well as those in the -*- line.
-+++
+
*** `prog-mode' is a new major mode from which programming modes
should be derived.
-+++
+
**** `prog-mode-hook' can be used to enable features for programming
modes, e.g. (add-hook 'prog-mode-hook 'flyspell-prog-mode) to enable
on-the-fly spell checking for comments and strings.
-+++
+
*** New hook `change-major-mode-after-body-hook', run by
`run-mode-hooks' just before any other mode hooks.
-+++
+
*** Enabled globalized minor modes can be disabled in specific major modes.
If the global mode is global-FOO-mode, then run (FOO-mode -1) in the
major mode's hook, where FOO-mode toggles the mode on a per-buffer basis.
-+++
+
*** `define-minor-mode' accepts new keywords :variable, :after-hook.
-+++
-** `delete-file' and `delete-directory' now accept optional arg TRASH.
+** File-handling changes
+
+*** `delete-file' and `delete-directory' now accept optional arg TRASH.
Trashing is performed if TRASH and `delete-by-moving-to-trash' are
both non-nil. Interactively, TRASH defaults to t, unless a prefix
argument is supplied (see Trash changes, above).
-+++
-** New file predicate functions: file-equal-p, file-subdir-of-p.
+*** New file predicates: `file-equal-p', `file-in-directory-p'.
-+++
** Tool-bars can display separators.
Tool-bar separators are handled like menu separators in menu-bar maps,
i.e. via menu entries of the form `(menu-item "--")'.
** Image API
-+++
*** Animated images support (currently animated gifs only).
-+++
**** `image-animated-p' returns non-nil if an image can be animated.
-+++
**** `image-animate' animates a supplied image spec.
-+++
**** `image-animate-timer' returns the timer object for an image that
is being animated.
----
*** `image-extension-data' has been renamed to `image-metadata'.
The old name is an obsolete alias to the new one.
-+++
*** Image mode can view any image type that ImageMagick supports.
This requires Emacs to be built with ImageMagick support.
-If your Emacs has ImageMagick support, then the function
-`imagemagick-types' is defined, and returns a list of image file
-extensions that your installation of ImageMagick supports. The
-function `imagemagick-register-types' enables ImageMagick support for
-these image types, minus those listed in `imagemagick-types-inhibit'.
-Visiting one of these file types will then use Image mode.
-
----
-*** New commands to resize and rotate images in Image mode.
-These require Emacs to be built with ImageMagick support.
-image-transform-fit-to-height, image-transform-fit-to-width,
-image-transform-set-rotation, image-transform-set-scale.
-+++
+**** New function `imagemagick-types', defined if ImageMagick support
+is enabled, returns a list of image file extensions that your
+ImageMagick installation supports.
+
+**** New function `imagemagick-register-types' enables ImageMagick
+image types in Image mode and in `create-image' and other helper
+functions.
+
+**** New option `imagemagick-types-inhibit' excludes certain
+ImageMagick image types from `imagemagick-register-types'.
+
+**** With ImageMagick support, there are extra Image mode commands to
+resize and rotate images: `image-transform-fit-to-height',
+`image-transform-fit-to-width', `image-transform-set-rotation', and
+`image-transform-set-scale'.
+
+** `compose-mail' now accepts an optional 8th arg, RETURN-ACTION, and
+passes it to the mail user agent function. This argument specifies an
+action for returning to the caller after finishing with the mail. For
+example, this is used by Rmail to optionally delete a mail window.
+
** XML and HTML parsing
If Emacs is compiled with libxml2 support, there are two new
functions: `libxml-parse-html-region' (which parses "real world" HTML)
and `libxml-parse-xml-region' (which parses XML). Both return an
Emacs Lisp parse tree.
-** GnuTLS
+** Networking and encryption changes
-*** New library `gnutls.el'.
-This requires Emacs to have been built with GnuTLS support.
-If your Emacs has GnuTLS support, the function gnutls-available-p is
-defined and returns non-nil. The main functions are `open-gnutls-stream'
-and `gnutls-negotiate'. It's easiest to use these functions through
-`open-network-stream' because it can upgrade connections through
-STARTTLS opportunistically or use plain SSL, depending on your needs.
-For debugging, set `gnutls-log-level' greater than 0.
+*** `open-network-stream' can now be used to open an encrypted stream.
+It now accepts an optional `:type' parameter for initiating a TLS
+connection, directly or via STARTTLS. To do STARTTLS, additional
+parameters (`:end-of-command', `:success', `:capabilities-command')
+must also be supplied.
+
+*** New library gnutls.el.
+The new function `gnutls-available-p' returns non-nil if Emacs is
+built with GnuTLS support. The main entry points are
+`open-gnutls-stream' and `gnutls-negotiate'. It's easiest to use
+these functions through `open-network-stream', because that can
+upgrade connections through STARTTLS opportunistically or use plain
+SSL, depending on your needs. For debugging, set `gnutls-log-level'
+greater than 0.
+
+*** New primitive `secure-hash' that supports many secure hash algorithms:
+md5, sha1, sha2, sha224, sha256, sha384, and sha512. The lisp library
+sha1.el has been removed. The `sha1' feature is provided by default.
** Isearch
----
*** New hook `isearch-update-post-hook' that runs in `isearch-update'.
-+++
** Progress reporters can now "spin".
The MIN-VALUE and MAX-VALUE arguments of `make-progress-reporter' can
now be nil, or omitted. This makes a "non-numeric" reporter. Each
with a nil or omitted VALUE argument, the reporter message is
displayed with a "spinning bar".
-+++
** New variable `revert-buffer-in-progress-p' is true while a buffer is
being reverted, even if the buffer has a local `revert-buffer-function'.
----
** New variables `delayed-warnings-list' and `delayed-warnings-hook'.
If delayed-warnings-list is non-nil, the command loop calls
-delayed-warnings-hook after post-command-hook. At present, this is
-only used by Emacs on some platforms to display warnings during
-startup, which might otherwise not be noticed. This uses the functions
-display-delayed-warnings and collapse-delayed-warnings.
+`delayed-warnings-hook' after `post-command-hook'. At present, this
+is only used by Emacs on some platforms to display warnings during
+startup, which might otherwise not be noticed. This uses the
+functions `display-delayed-warnings' and `collapse-delayed-warnings'.
----
** rx.el has a new `group-n' construct for explicitly numbered groups.
-+++
** New function `make-composed-keymap' that constructs a new keymap
from multiple input maps. You can use this to make a keymap that
inherits from multiple maps, eg:
(set-keymap-parent newmap (make-composed-keymap othermap parent))
-+++
** New function `string-prefix-p'.
(This was actually added in Emacs 23.2 but was not advertised at the time.)
-+++
** New reader macro ## that stands for the empty symbol.
This means that the empty symbol can now be read back. Also, #: by itself
(when not immediately followed by a possible symbol character) stands for
an empty uninterned symbol.
-+++
** New math functions `isnan', `copysign', `frexp', `ldexp'.
-** Obsolete functions and variables
+** The following functions and variables are obsolete:
----
*** `tooltip-use-echo-area' is obsolete.
Rather than setting this to t, disable Tooltip mode instead.
-+++
*** buffer-substring-filters is obsolete.
Use `filter-buffer-substring-functions' instead.
----
*** `byte-compile-disable-print-circle' is obsolete.
----
*** `deferred-action-list' and `deferred-action-function' are obsolete.
Use `post-command-hook' instead.
-+++
*** `font-lock-maximum-size' is obsolete.
\f
* Changes in Emacs 24.1 on non-free operating systems
----
** On MS Windows, Emacs warns when using the obsolete init file _emacs,
and also when HOME is set to C:\ by default.
** New configure.bat options
-+++
*** --enable-checking builds Emacs with extra runtime checks.
-+++
*** --distfiles specifies files to be included in binary distribution.
-+++
*** --without-gnutls disables automatic GnuTLS detection.
-+++
*** --lib for general library linkage, works with the USER_LIBS build variable.
-+++
** New make target `dist' to create binary distribution for MS Windows.
----
** The Lisp function `w32-default-color-map' is now obsolete.
(It is only used internally in the Emacs C code.)
-+++
** Customize ns-auto-hide-menu-bar to have the menu-bar hidden, but
reappear on mouse-over. (Requires OS X 10.6 or later.)
-+++
** On Mac OS X, dragging a file into Emacs visits the file, like on
other platforms, rather than inserting its contents into the buffer.
global-font-lock-mode RET" or by customizing the variable
`global-font-lock-mode'.
+** Unexpected characters inserted into the buffer when you start Emacs.
+See eg http://debbugs.gnu.org/11129
+
+This can happen when you start Emacs in -nw mode in an Xterm.
+For example, in the *scratch* buffer, you might see something like:
+
+ 0;276;0c
+
+This is more likely to happen if you are using Emacs over a slow
+connection, and begin typing before Emacs is ready to respond.
+
+This occurs when Emacs tries to query the terminal to see what
+capabilities it supports, and gets confused by the answer.
+To avoid it, set xterm-extra-capabilities to a value other than
+`check' (the default). See that variable's documentation (in
+term/xterm.el) for more details.
+
* Runtime problems specific to individual Unix variants
** GNU/Linux
built in editor to print (this is possibly the only useful purpose it
has):
-(setq printer-name "") ;; notepad takes the default
-(setq lpr-command "notepad") ;; notepad
-(setq lpr-switches nil) ;; not needed
-(setq lpr-printer-switch "/P") ;; run notepad as batch printer
+(setq printer-name "") ; notepad takes the default
+(setq lpr-command "notepad") ; notepad
+(setq lpr-switches nil) ; not needed
+(setq lpr-printer-switch "/P") ; run notepad as batch printer
** Antivirus software interacts badly with the MS-Windows version of Emacs.
** Bidirectional editing
+*** Support reordering structured text
+Two important use cases: (1) comments and strings in program sources,
+and (2) text with markup, like HTML or XML.
+
+One idea is to invent a special text property that would instruct the
+display engine to reorder only the parts of buffer text covered by
+that property. The display engine will then push its state onto the
+iterator stack, restrict the bidi iterator to accessing only the
+portion of buffer text covered by the property, reorder the text, then
+pop its state from stack and continue as usual. This will require
+minor changes in the bidi_it structure.
+
+This design requires Lisp-level code to put the text properties on the
+relevant parts of the buffer text. That could be done using JIT
+fontifications, or as a preliminary processing when the file is
+visited. With HTML/XML, the code that puts text properties needs to
+pay attention to the bidi directives embedded in the HTML/XML stream.
+
*** Allow the user to control the direction of the UI
**** Introduce user option to control direction of mode line.
-This requires to figure out what to do with unibyte strings that are
-used in constructing the mode line. Currently, unibyte strings are
-not reordered by bidi.c, without which R2L mode line will not display
-correctly. One possibility would be to STRING_SET_MULTIBYTE all Lisp
-strings involved in the mode line, and then pass them through bidi.c.
-
-Another problem is the header line, which is produced by the same
-routines as the mode line. While it makes sense to have the mode-line
+One problem is the header line, which is produced by the same routines
+as the mode line. While it makes sense to have the mode-line
direction controlled by a single global variable, header lines are
buffer-specific, so they need a separate treatment in this regard.
<!-- automatic styles -->
<office:automatic-styles>
+ <!-- Section styles -->
+ <style:style style:name="OrgIndentedSection-Level-1" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="1.281cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-2" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="1.905cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-3" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="2.54cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-4" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="3.175cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-5" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="3.81cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-6" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="4.445cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-7" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="5.08cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-8" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="5.715cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-9" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="6.35cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+ <style:style style:name="OrgIndentedSection-Level-10" style:family="section">
+ <style:section-properties text:dont-balance-text-columns="false" fo:margin-left="6.985cm" fo:margin-right="0cm" style:editable="false">
+ <style:columns fo:column-count="1" fo:column-gap="0cm"/>
+ </style:section-properties>
+ </style:style>
+
+ <!-- Table styles -->
<style:style style:name="OrgTable" style:family="table">
- <style:table-properties style:rel-width="90%" fo:margin-top="0cm" fo:margin-bottom="0.20cm" table:align="center"/>
+ <style:table-properties style:rel-width="96%" fo:margin-top="0cm" fo:margin-bottom="0.20cm" table:align="center"/>
</style:style>
<style:style style:name="OrgTableColumn" style:family="table-column">
<text:linenumbering-configuration text:number-lines="false" text:offset="0.499cm" style:num-format="1" text:number-position="left" text:increment="5"/>
</office:styles>
<office:automatic-styles>
- <style:page-layout style:name="Mpm1">
+ <style:style style:name="MP1" style:family="paragraph" style:parent-style-name="Footer">
+ <style:paragraph-properties fo:text-align="center" style:justify-single-word="false"/>
+ </style:style>
+ <style:page-layout style:name="Mpm1" style:page-usage="mirrored">
<style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
- <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="none" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="0.6cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+ </style:footer-style>
+ </style:page-layout>
+ <style:page-layout style:name="Mpm2">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
</style:page-layout-properties>
<style:header-style/>
<style:footer-style/>
</style:page-layout>
+ <style:page-layout style:name="Mpm3" style:page-usage="mirrored">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="i" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="0cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm"/>
+ </style:footer-style>
+ </style:page-layout>
+ <style:page-layout style:name="Mpm4" style:page-usage="right">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" fo:background-color="transparent" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:background-image/>
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="0.6cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+ </style:footer-style>
+ </style:page-layout>
+ <style:page-layout style:name="Mpm5" style:page-usage="mirrored">
+ <style:page-layout-properties fo:page-width="21.001cm" fo:page-height="29.7cm" style:num-format="1" style:print-orientation="portrait" fo:margin-top="2cm" fo:margin-bottom="2cm" fo:margin-left="2cm" fo:margin-right="2cm" style:writing-mode="lr-tb" style:footnote-max-height="0cm">
+ <style:footnote-sep style:width="0.018cm" style:distance-before-sep="0.101cm" style:distance-after-sep="0.101cm" style:line-style="solid" style:adjustment="left" style:rel-width="25%" style:color="#000000"/>
+ </style:page-layout-properties>
+ <style:header-style/>
+ <style:footer-style>
+ <style:header-footer-properties fo:min-height="0.6cm" fo:margin-left="0cm" fo:margin-right="0cm" fo:margin-top="0.499cm" style:dynamic-spacing="false"/>
+ </style:footer-style>
+ </style:page-layout>
</office:automatic-styles>
<office:master-styles>
- <style:master-page style:name="Standard" style:page-layout-name="Mpm1"/>
+ <style:master-page style:name="Standard" style:page-layout-name="Mpm1">
+ <style:footer>
+ <text:p text:style-name="MP1"><text:page-number text:select-page="current"></text:page-number></text:p>
+ </style:footer>
+ </style:master-page>
+ <style:master-page style:name="OrgTitlePage" style:page-layout-name="Mpm2" style:next-style-name="OrgFrontMatterPage"/>
+ <style:master-page style:name="OrgFrontMatterPage" style:page-layout-name="Mpm3">
+ <style:footer>
+ <text:p text:style-name="MP1"><text:page-number text:select-page="current"/></text:p>
+ </style:footer>
+ </style:master-page>
+ <style:master-page style:name="OrgFirstPage" style:page-layout-name="Mpm4" style:next-style-name="OrgPage">
+ <style:footer>
+ <text:p text:style-name="MP1"><text:page-number text:select-page="current"/></text:p>
+ </style:footer>
+ </style:master-page>
+ <style:master-page style:name="OrgPage" style:page-layout-name="Mpm5">
+ <style:footer>
+ <text:p text:style-name="MP1"><text:page-number text:select-page="current"/></text:p>
+ </style:footer>
+ </style:master-page>
</office:master-styles>
</office:document-styles>
--- /dev/null
+// ***** BEGIN LICENSE BLOCK *****
+// Version: MPL 1.1/GPL 2.0/LGPL 2.1
+//
+// The contents of this file are subject to the Mozilla Public License Version
+// 1.1 (the "License"); you may not use this file except in compliance with
+// the License. You may obtain a copy of the License at
+// http://www.mozilla.org/MPL/
+//
+// Software distributed under the License is distributed on an "AS IS" basis,
+// WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
+// for the specific language governing rights and limitations under the
+// License.
+//
+// The Original Code is the Public Suffix List.
+//
+// The Initial Developer of the Original Code is
+// Jo Hermans <jo.hermans@gmail.com>.
+// Portions created by the Initial Developer are Copyright (C) 2007
+// the Initial Developer. All Rights Reserved.
+//
+// Contributor(s):
+// Ruben Arakelyan <ruben@rubenarakelyan.com>
+// Gervase Markham <gerv@gerv.net>
+// Pamela Greene <pamg.bugs@gmail.com>
+// David Triendl <david@triendl.name>
+// Jothan Frakes <jothan@gmail.com>
+// The kind representatives of many TLD registries
+//
+// Alternatively, the contents of this file may be used under the terms of
+// either the GNU General Public License Version 2 or later (the "GPL"), or
+// the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
+// in which case the provisions of the GPL or the LGPL are applicable instead
+// of those above. If you wish to allow use of your version of this file only
+// under the terms of either the GPL or the LGPL, and not to allow others to
+// use your version of this file under the terms of the MPL, indicate your
+// decision by deleting the provisions above and replace them with the notice
+// and other provisions required by the GPL or the LGPL. If you do not delete
+// the provisions above, a recipient may use your version of this file under
+// the terms of any one of the MPL, the GPL or the LGPL.
+//
+// ***** END LICENSE BLOCK *****
+
+// ac : http://en.wikipedia.org/wiki/.ac
+ac
+com.ac
+edu.ac
+gov.ac
+net.ac
+mil.ac
+org.ac
+
+// ad : http://en.wikipedia.org/wiki/.ad
+ad
+nom.ad
+
+// ae : http://en.wikipedia.org/wiki/.ae
+// see also: "Domain Name Eligibility Policy" at http://www.aeda.ae/eng/aepolicy.php
+ae
+co.ae
+net.ae
+org.ae
+sch.ae
+ac.ae
+gov.ae
+mil.ae
+
+// aero : see http://www.information.aero/index.php?id=66
+aero
+accident-investigation.aero
+accident-prevention.aero
+aerobatic.aero
+aeroclub.aero
+aerodrome.aero
+agents.aero
+aircraft.aero
+airline.aero
+airport.aero
+air-surveillance.aero
+airtraffic.aero
+air-traffic-control.aero
+ambulance.aero
+amusement.aero
+association.aero
+author.aero
+ballooning.aero
+broker.aero
+caa.aero
+cargo.aero
+catering.aero
+certification.aero
+championship.aero
+charter.aero
+civilaviation.aero
+club.aero
+conference.aero
+consultant.aero
+consulting.aero
+control.aero
+council.aero
+crew.aero
+design.aero
+dgca.aero
+educator.aero
+emergency.aero
+engine.aero
+engineer.aero
+entertainment.aero
+equipment.aero
+exchange.aero
+express.aero
+federation.aero
+flight.aero
+freight.aero
+fuel.aero
+gliding.aero
+government.aero
+groundhandling.aero
+group.aero
+hanggliding.aero
+homebuilt.aero
+insurance.aero
+journal.aero
+journalist.aero
+leasing.aero
+logistics.aero
+magazine.aero
+maintenance.aero
+marketplace.aero
+media.aero
+microlight.aero
+modelling.aero
+navigation.aero
+parachuting.aero
+paragliding.aero
+passenger-association.aero
+pilot.aero
+press.aero
+production.aero
+recreation.aero
+repbody.aero
+res.aero
+research.aero
+rotorcraft.aero
+safety.aero
+scientist.aero
+services.aero
+show.aero
+skydiving.aero
+software.aero
+student.aero
+taxi.aero
+trader.aero
+trading.aero
+trainer.aero
+union.aero
+workinggroup.aero
+works.aero
+
+// af : http://www.nic.af/help.jsp
+af
+gov.af
+com.af
+org.af
+net.af
+edu.af
+
+// ag : http://www.nic.ag/prices.htm
+ag
+com.ag
+org.ag
+net.ag
+co.ag
+nom.ag
+
+// ai : http://nic.com.ai/
+ai
+off.ai
+com.ai
+net.ai
+org.ai
+
+// al : http://www.ert.gov.al/ert_alb/faq_det.html?Id=31
+al
+com.al
+edu.al
+gov.al
+mil.al
+net.al
+org.al
+
+// am : http://en.wikipedia.org/wiki/.am
+am
+
+// an : http://www.una.an/an_domreg/default.asp
+an
+com.an
+net.an
+org.an
+edu.an
+
+// ao : http://en.wikipedia.org/wiki/.ao
+// http://www.dns.ao/REGISTR.DOC
+ao
+ed.ao
+gv.ao
+og.ao
+co.ao
+pb.ao
+it.ao
+
+// aq : http://en.wikipedia.org/wiki/.aq
+aq
+
+// ar : http://en.wikipedia.org/wiki/.ar
+*.ar
+!congresodelalengua3.ar
+!educ.ar
+!gobiernoelectronico.ar
+!mecon.ar
+!nacion.ar
+!nic.ar
+!promocion.ar
+!retina.ar
+!uba.ar
+
+// arpa : http://en.wikipedia.org/wiki/.arpa
+// Confirmed by registry <iana-questions@icann.org> 2008-06-18
+e164.arpa
+in-addr.arpa
+ip6.arpa
+iris.arpa
+uri.arpa
+urn.arpa
+
+// as : http://en.wikipedia.org/wiki/.as
+as
+gov.as
+
+// asia: http://en.wikipedia.org/wiki/.asia
+asia
+
+// at : http://en.wikipedia.org/wiki/.at
+// Confirmed by registry <it@nic.at> 2008-06-17
+at
+ac.at
+co.at
+gv.at
+or.at
+
+// http://www.info.at/
+biz.at
+info.at
+
+// priv.at : http://www.nic.priv.at/
+// Submitted by registry <lendl@nic.at> 2008-06-09
+priv.at
+
+// au : http://en.wikipedia.org/wiki/.au
+*.au
+// au geographical names (vic.au etc... are covered above)
+act.edu.au
+nsw.edu.au
+nt.edu.au
+qld.edu.au
+sa.edu.au
+tas.edu.au
+vic.edu.au
+wa.edu.au
+act.gov.au
+// Removed at request of Shae.Donelan@services.nsw.gov.au, 2010-03-04
+// nsw.gov.au
+nt.gov.au
+qld.gov.au
+sa.gov.au
+tas.gov.au
+vic.gov.au
+wa.gov.au
+// CGDNs - http://www.aucd.org.au/
+act.au
+nsw.au
+nt.au
+qld.au
+sa.au
+tas.au
+vic.au
+wa.au
+
+// aw : http://en.wikipedia.org/wiki/.aw
+aw
+com.aw
+
+// ax : http://en.wikipedia.org/wiki/.ax
+ax
+
+// az : http://en.wikipedia.org/wiki/.az
+az
+com.az
+net.az
+int.az
+gov.az
+org.az
+edu.az
+info.az
+pp.az
+mil.az
+name.az
+pro.az
+biz.az
+
+// ba : http://en.wikipedia.org/wiki/.ba
+ba
+org.ba
+net.ba
+edu.ba
+gov.ba
+mil.ba
+unsa.ba
+unbi.ba
+co.ba
+com.ba
+rs.ba
+
+// bb : http://en.wikipedia.org/wiki/.bb
+bb
+biz.bb
+com.bb
+edu.bb
+gov.bb
+info.bb
+net.bb
+org.bb
+store.bb
+
+// bd : http://en.wikipedia.org/wiki/.bd
+*.bd
+
+// be : http://en.wikipedia.org/wiki/.be
+// Confirmed by registry <tech@dns.be> 2008-06-08
+be
+ac.be
+
+// bf : http://en.wikipedia.org/wiki/.bf
+bf
+gov.bf
+
+// bg : http://en.wikipedia.org/wiki/.bg
+// https://www.register.bg/user/static/rules/en/index.html
+bg
+a.bg
+b.bg
+c.bg
+d.bg
+e.bg
+f.bg
+g.bg
+h.bg
+i.bg
+j.bg
+k.bg
+l.bg
+m.bg
+n.bg
+o.bg
+p.bg
+q.bg
+r.bg
+s.bg
+t.bg
+u.bg
+v.bg
+w.bg
+x.bg
+y.bg
+z.bg
+0.bg
+1.bg
+2.bg
+3.bg
+4.bg
+5.bg
+6.bg
+7.bg
+8.bg
+9.bg
+
+// bh : http://en.wikipedia.org/wiki/.bh
+bh
+com.bh
+edu.bh
+net.bh
+org.bh
+gov.bh
+
+// bi : http://en.wikipedia.org/wiki/.bi
+// http://whois.nic.bi/
+bi
+co.bi
+com.bi
+edu.bi
+or.bi
+org.bi
+
+// biz : http://en.wikipedia.org/wiki/.biz
+biz
+
+// bj : http://en.wikipedia.org/wiki/.bj
+bj
+asso.bj
+barreau.bj
+gouv.bj
+
+// bm : http://www.bermudanic.bm/dnr-text.txt
+bm
+com.bm
+edu.bm
+gov.bm
+net.bm
+org.bm
+
+// bn : http://en.wikipedia.org/wiki/.bn
+*.bn
+
+// bo : http://www.nic.bo/
+bo
+com.bo
+edu.bo
+gov.bo
+gob.bo
+int.bo
+org.bo
+net.bo
+mil.bo
+tv.bo
+
+// br : http://registro.br/dominio/dpn.html
+// Updated by registry <fneves@registro.br> 2011-03-01
+br
+adm.br
+adv.br
+agr.br
+am.br
+arq.br
+art.br
+ato.br
+b.br
+bio.br
+blog.br
+bmd.br
+can.br
+cim.br
+cng.br
+cnt.br
+com.br
+coop.br
+ecn.br
+edu.br
+emp.br
+eng.br
+esp.br
+etc.br
+eti.br
+far.br
+flog.br
+fm.br
+fnd.br
+fot.br
+fst.br
+g12.br
+ggf.br
+gov.br
+imb.br
+ind.br
+inf.br
+jor.br
+jus.br
+lel.br
+mat.br
+med.br
+mil.br
+mus.br
+net.br
+nom.br
+not.br
+ntr.br
+odo.br
+org.br
+ppg.br
+pro.br
+psc.br
+psi.br
+qsl.br
+radio.br
+rec.br
+slg.br
+srv.br
+taxi.br
+teo.br
+tmp.br
+trd.br
+tur.br
+tv.br
+vet.br
+vlog.br
+wiki.br
+zlg.br
+
+// bs : http://www.nic.bs/rules.html
+bs
+com.bs
+net.bs
+org.bs
+edu.bs
+gov.bs
+
+// bt : http://en.wikipedia.org/wiki/.bt
+bt
+com.bt
+edu.bt
+gov.bt
+net.bt
+org.bt
+
+// bv : No registrations at this time.
+// Submitted by registry <jarle@uninett.no> 2006-06-16
+
+// bw : http://en.wikipedia.org/wiki/.bw
+// http://www.gobin.info/domainname/bw.doc
+// list of other 2nd level tlds ?
+bw
+co.bw
+org.bw
+
+// by : http://en.wikipedia.org/wiki/.by
+// http://tld.by/rules_2006_en.html
+// list of other 2nd level tlds ?
+by
+gov.by
+mil.by
+// Official information does not indicate that com.by is a reserved
+// second-level domain, but it's being used as one (see www.google.com.by and
+// www.yahoo.com.by, for example), so we list it here for safety's sake.
+com.by
+
+// http://hoster.by/
+of.by
+
+// bz : http://en.wikipedia.org/wiki/.bz
+// http://www.belizenic.bz/
+bz
+com.bz
+net.bz
+org.bz
+edu.bz
+gov.bz
+
+// ca : http://en.wikipedia.org/wiki/.ca
+ca
+// ca geographical names
+ab.ca
+bc.ca
+mb.ca
+nb.ca
+nf.ca
+nl.ca
+ns.ca
+nt.ca
+nu.ca
+on.ca
+pe.ca
+qc.ca
+sk.ca
+yk.ca
+// gc.ca: http://en.wikipedia.org/wiki/.gc.ca
+// see also: http://registry.gc.ca/en/SubdomainFAQ
+gc.ca
+
+// cat : http://en.wikipedia.org/wiki/.cat
+cat
+
+// cc : http://en.wikipedia.org/wiki/.cc
+cc
+
+// cd : http://en.wikipedia.org/wiki/.cd
+// see also: https://www.nic.cd/domain/insertDomain_2.jsp?act=1
+cd
+gov.cd
+
+// cf : http://en.wikipedia.org/wiki/.cf
+cf
+
+// cg : http://en.wikipedia.org/wiki/.cg
+cg
+
+// ch : http://en.wikipedia.org/wiki/.ch
+ch
+
+// ci : http://en.wikipedia.org/wiki/.ci
+// http://www.nic.ci/index.php?page=charte
+ci
+org.ci
+or.ci
+com.ci
+co.ci
+edu.ci
+ed.ci
+ac.ci
+net.ci
+go.ci
+asso.ci
+aéroport.ci
+int.ci
+presse.ci
+md.ci
+gouv.ci
+
+// ck : http://en.wikipedia.org/wiki/.ck
+*.ck
+
+// cl : http://en.wikipedia.org/wiki/.cl
+cl
+gov.cl
+gob.cl
+
+// cm : http://en.wikipedia.org/wiki/.cm
+cm
+gov.cm
+
+// cn : http://en.wikipedia.org/wiki/.cn
+// Submitted by registry <tanyaling@cnnic.cn> 2008-06-11
+cn
+ac.cn
+com.cn
+edu.cn
+gov.cn
+net.cn
+org.cn
+mil.cn
+公司.cn
+网络.cn
+網絡.cn
+// cn geographic names
+ah.cn
+bj.cn
+cq.cn
+fj.cn
+gd.cn
+gs.cn
+gz.cn
+gx.cn
+ha.cn
+hb.cn
+he.cn
+hi.cn
+hl.cn
+hn.cn
+jl.cn
+js.cn
+jx.cn
+ln.cn
+nm.cn
+nx.cn
+qh.cn
+sc.cn
+sd.cn
+sh.cn
+sn.cn
+sx.cn
+tj.cn
+xj.cn
+xz.cn
+yn.cn
+zj.cn
+hk.cn
+mo.cn
+tw.cn
+
+// co : http://en.wikipedia.org/wiki/.co
+// Submitted by registry <tecnico@uniandes.edu.co> 2008-06-11
+co
+arts.co
+com.co
+edu.co
+firm.co
+gov.co
+info.co
+int.co
+mil.co
+net.co
+nom.co
+org.co
+rec.co
+web.co
+
+// com : http://en.wikipedia.org/wiki/.com
+com
+
+// CentralNic names : http://www.centralnic.com/names/domains
+// Confirmed by registry <gavin.brown@centralnic.com> 2008-06-09
+ar.com
+br.com
+cn.com
+de.com
+eu.com
+gb.com
+hu.com
+jpn.com
+kr.com
+no.com
+qc.com
+ru.com
+sa.com
+se.com
+uk.com
+us.com
+uy.com
+za.com
+
+// Requested by Yngve Pettersen <yngve@opera.com> 2009-11-26
+operaunite.com
+
+// Requested by Eduardo Vela <evn@google.com> 2010-09-06
+appspot.com
+
+// coop : http://en.wikipedia.org/wiki/.coop
+coop
+
+// cr : http://www.nic.cr/niccr_publico/showRegistroDominiosScreen.do
+cr
+ac.cr
+co.cr
+ed.cr
+fi.cr
+go.cr
+or.cr
+sa.cr
+
+// cu : http://en.wikipedia.org/wiki/.cu
+cu
+com.cu
+edu.cu
+org.cu
+net.cu
+gov.cu
+inf.cu
+
+// cv : http://en.wikipedia.org/wiki/.cv
+cv
+
+// cx : http://en.wikipedia.org/wiki/.cx
+// list of other 2nd level tlds ?
+cx
+gov.cx
+
+// cy : http://en.wikipedia.org/wiki/.cy
+*.cy
+
+// cz : http://en.wikipedia.org/wiki/.cz
+cz
+
+// de : http://en.wikipedia.org/wiki/.de
+// Confirmed by registry <ops@denic.de> (with technical
+// reservations) 2008-07-01
+de
+
+// dj : http://en.wikipedia.org/wiki/.dj
+dj
+
+// dk : http://en.wikipedia.org/wiki/.dk
+// Confirmed by registry <robert@dk-hostmaster.dk> 2008-06-17
+dk
+
+// dm : http://en.wikipedia.org/wiki/.dm
+dm
+com.dm
+net.dm
+org.dm
+edu.dm
+gov.dm
+
+// do : http://en.wikipedia.org/wiki/.do
+do
+art.do
+com.do
+edu.do
+gob.do
+gov.do
+mil.do
+net.do
+org.do
+sld.do
+web.do
+
+// dz : http://en.wikipedia.org/wiki/.dz
+dz
+com.dz
+org.dz
+net.dz
+gov.dz
+edu.dz
+asso.dz
+pol.dz
+art.dz
+
+// ec : http://www.nic.ec/reg/paso1.asp
+// Submitted by registry <vabboud@nic.ec> 2008-07-04
+ec
+com.ec
+info.ec
+net.ec
+fin.ec
+k12.ec
+med.ec
+pro.ec
+org.ec
+edu.ec
+gov.ec
+gob.ec
+mil.ec
+
+// edu : http://en.wikipedia.org/wiki/.edu
+edu
+
+// ee : http://www.eenet.ee/EENet/dom_reeglid.html#lisa_B
+ee
+edu.ee
+gov.ee
+riik.ee
+lib.ee
+med.ee
+com.ee
+pri.ee
+aip.ee
+org.ee
+fie.ee
+
+// eg : http://en.wikipedia.org/wiki/.eg
+eg
+com.eg
+edu.eg
+eun.eg
+gov.eg
+mil.eg
+name.eg
+net.eg
+org.eg
+sci.eg
+
+// er : http://en.wikipedia.org/wiki/.er
+*.er
+
+// es : https://www.nic.es/site_ingles/ingles/dominios/index.html
+es
+com.es
+nom.es
+org.es
+gob.es
+edu.es
+
+// et : http://en.wikipedia.org/wiki/.et
+*.et
+
+// eu : http://en.wikipedia.org/wiki/.eu
+eu
+
+// fi : http://en.wikipedia.org/wiki/.fi
+fi
+// aland.fi : http://en.wikipedia.org/wiki/.ax
+// This domain is being phased out in favor of .ax. As there are still many
+// domains under aland.fi, we still keep it on the list until aland.fi is
+// completely removed.
+// TODO: Check for updates (expected to be phased out around Q1/2009)
+aland.fi
+// iki.fi : Submitted by Hannu Aronsson <haa@iki.fi> 2009-11-05
+iki.fi
+
+// fj : http://en.wikipedia.org/wiki/.fj
+*.fj
+
+// fk : http://en.wikipedia.org/wiki/.fk
+*.fk
+
+// fm : http://en.wikipedia.org/wiki/.fm
+fm
+
+// fo : http://en.wikipedia.org/wiki/.fo
+fo
+
+// fr : http://www.afnic.fr/
+// domaines descriptifs : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-descriptifs
+fr
+com.fr
+asso.fr
+nom.fr
+prd.fr
+presse.fr
+tm.fr
+// domaines sectoriels : http://www.afnic.fr/obtenir/chartes/nommage-fr/annexe-sectoriels
+aeroport.fr
+assedic.fr
+avocat.fr
+avoues.fr
+cci.fr
+chambagri.fr
+chirurgiens-dentistes.fr
+experts-comptables.fr
+geometre-expert.fr
+gouv.fr
+greta.fr
+huissier-justice.fr
+medecin.fr
+notaires.fr
+pharmacien.fr
+port.fr
+veterinaire.fr
+
+// ga : http://en.wikipedia.org/wiki/.ga
+ga
+
+// gb : This registry is effectively dormant
+// Submitted by registry <Damien.Shaw@ja.net> 2008-06-12
+
+// gd : http://en.wikipedia.org/wiki/.gd
+gd
+
+// ge : http://www.nic.net.ge/policy_en.pdf
+ge
+com.ge
+edu.ge
+gov.ge
+org.ge
+mil.ge
+net.ge
+pvt.ge
+
+// gf : http://en.wikipedia.org/wiki/.gf
+gf
+
+// gg : http://www.channelisles.net/applic/avextn.shtml
+gg
+co.gg
+org.gg
+net.gg
+sch.gg
+gov.gg
+
+// gh : http://en.wikipedia.org/wiki/.gh
+// see also: http://www.nic.gh/reg_now.php
+// Although domains directly at second level are not possible at the moment,
+// they have been possible for some time and may come back.
+gh
+com.gh
+edu.gh
+gov.gh
+org.gh
+mil.gh
+
+// gi : http://www.nic.gi/rules.html
+gi
+com.gi
+ltd.gi
+gov.gi
+mod.gi
+edu.gi
+org.gi
+
+// gl : http://en.wikipedia.org/wiki/.gl
+// http://nic.gl
+gl
+
+// gm : http://www.nic.gm/htmlpages%5Cgm-policy.htm
+gm
+
+// gn : http://psg.com/dns/gn/gn.txt
+// Submitted by registry <randy@psg.com> 2008-06-17
+ac.gn
+com.gn
+edu.gn
+gov.gn
+org.gn
+net.gn
+
+// gov : http://en.wikipedia.org/wiki/.gov
+gov
+
+// gp : http://www.nic.gp/index.php?lang=en
+gp
+com.gp
+net.gp
+mobi.gp
+edu.gp
+org.gp
+asso.gp
+
+// gq : http://en.wikipedia.org/wiki/.gq
+gq
+
+// gr : https://grweb.ics.forth.gr/english/1617-B-2005.html
+// Submitted by registry <segred@ics.forth.gr> 2008-06-09
+gr
+com.gr
+edu.gr
+net.gr
+org.gr
+gov.gr
+
+// gs : http://en.wikipedia.org/wiki/.gs
+gs
+
+// gt : http://www.gt/politicas.html
+*.gt
+
+// gu : http://gadao.gov.gu/registration.txt
+*.gu
+
+// gw : http://en.wikipedia.org/wiki/.gw
+gw
+
+// gy : http://en.wikipedia.org/wiki/.gy
+// http://registry.gy/
+gy
+co.gy
+com.gy
+net.gy
+
+// hk : https://www.hkdnr.hk
+// Submitted by registry <hk.tech@hkirc.hk> 2008-06-11
+hk
+com.hk
+edu.hk
+gov.hk
+idv.hk
+net.hk
+org.hk
+公司.hk
+教育.hk
+敎育.hk
+政府.hk
+個人.hk
+个人.hk
+箇人.hk
+網络.hk
+网络.hk
+组織.hk
+網絡.hk
+网絡.hk
+组织.hk
+組織.hk
+組织.hk
+
+// hm : http://en.wikipedia.org/wiki/.hm
+hm
+
+// hn : http://www.nic.hn/politicas/ps02,,05.html
+hn
+com.hn
+edu.hn
+org.hn
+net.hn
+mil.hn
+gob.hn
+
+// hr : http://www.dns.hr/documents/pdf/HRTLD-regulations.pdf
+hr
+iz.hr
+from.hr
+name.hr
+com.hr
+
+// ht : http://www.nic.ht/info/charte.cfm
+ht
+com.ht
+shop.ht
+firm.ht
+info.ht
+adult.ht
+net.ht
+pro.ht
+org.ht
+med.ht
+art.ht
+coop.ht
+pol.ht
+asso.ht
+edu.ht
+rel.ht
+gouv.ht
+perso.ht
+
+// hu : http://www.domain.hu/domain/English/sld.html
+// Confirmed by registry <pasztor@iszt.hu> 2008-06-12
+hu
+co.hu
+info.hu
+org.hu
+priv.hu
+sport.hu
+tm.hu
+2000.hu
+agrar.hu
+bolt.hu
+casino.hu
+city.hu
+erotica.hu
+erotika.hu
+film.hu
+forum.hu
+games.hu
+hotel.hu
+ingatlan.hu
+jogasz.hu
+konyvelo.hu
+lakas.hu
+media.hu
+news.hu
+reklam.hu
+sex.hu
+shop.hu
+suli.hu
+szex.hu
+tozsde.hu
+utazas.hu
+video.hu
+
+// id : http://en.wikipedia.org/wiki/.id
+// see also: https://register.pandi.or.id/
+id
+ac.id
+co.id
+go.id
+mil.id
+net.id
+or.id
+sch.id
+web.id
+
+// ie : http://en.wikipedia.org/wiki/.ie
+ie
+gov.ie
+
+// il : http://en.wikipedia.org/wiki/.il
+*.il
+
+// im : https://www.nic.im/pdfs/imfaqs.pdf
+im
+co.im
+ltd.co.im
+plc.co.im
+net.im
+gov.im
+org.im
+nic.im
+ac.im
+
+// in : http://en.wikipedia.org/wiki/.in
+// see also: http://www.inregistry.in/policies/
+// Please note, that nic.in is not an offical eTLD, but used by most
+// government institutions.
+in
+co.in
+firm.in
+net.in
+org.in
+gen.in
+ind.in
+nic.in
+ac.in
+edu.in
+res.in
+gov.in
+mil.in
+
+// info : http://en.wikipedia.org/wiki/.info
+info
+
+// int : http://en.wikipedia.org/wiki/.int
+// Confirmed by registry <iana-questions@icann.org> 2008-06-18
+int
+eu.int
+
+// io : http://www.nic.io/rules.html
+// list of other 2nd level tlds ?
+io
+com.io
+
+// iq : http://www.cmc.iq/english/iq/iqregister1.htm
+iq
+gov.iq
+edu.iq
+mil.iq
+com.iq
+org.iq
+net.iq
+
+// ir : http://www.nic.ir/Terms_and_Conditions_ir,_Appendix_1_Domain_Rules
+// Also see http://www.nic.ir/Internationalized_Domain_Names
+// Two <iran>.ir entries added at request of <tech-team@nic.ir>, 2010-04-16
+ir
+ac.ir
+co.ir
+gov.ir
+id.ir
+net.ir
+org.ir
+sch.ir
+// xn--mgba3a4f16a.ir (<iran>.ir, Persian YEH)
+ایران.ir
+// xn--mgba3a4fra.ir (<iran>.ir, Arabic YEH)
+ايران.ir
+
+// is : http://www.isnic.is/domain/rules.php
+// Confirmed by registry <marius@isgate.is> 2008-12-06
+is
+net.is
+com.is
+edu.is
+gov.is
+org.is
+int.is
+
+// it : http://en.wikipedia.org/wiki/.it
+it
+gov.it
+edu.it
+// list of reserved geo-names :
+// http://www.nic.it/documenti/regolamenti-e-linee-guida/regolamento-assegnazione-versione-6.0.pdf
+// (There is also a list of reserved geo-names corresponding to Italian
+// municipalities : http://www.nic.it/documenti/appendice-c.pdf , but it is
+// not included here.)
+agrigento.it
+ag.it
+alessandria.it
+al.it
+ancona.it
+an.it
+aosta.it
+aoste.it
+ao.it
+arezzo.it
+ar.it
+ascoli-piceno.it
+ascolipiceno.it
+ap.it
+asti.it
+at.it
+avellino.it
+av.it
+bari.it
+ba.it
+andria-barletta-trani.it
+andriabarlettatrani.it
+trani-barletta-andria.it
+tranibarlettaandria.it
+barletta-trani-andria.it
+barlettatraniandria.it
+andria-trani-barletta.it
+andriatranibarletta.it
+trani-andria-barletta.it
+traniandriabarletta.it
+bt.it
+belluno.it
+bl.it
+benevento.it
+bn.it
+bergamo.it
+bg.it
+biella.it
+bi.it
+bologna.it
+bo.it
+bolzano.it
+bozen.it
+balsan.it
+alto-adige.it
+altoadige.it
+suedtirol.it
+bz.it
+brescia.it
+bs.it
+brindisi.it
+br.it
+cagliari.it
+ca.it
+caltanissetta.it
+cl.it
+campobasso.it
+cb.it
+carboniaiglesias.it
+carbonia-iglesias.it
+iglesias-carbonia.it
+iglesiascarbonia.it
+ci.it
+caserta.it
+ce.it
+catania.it
+ct.it
+catanzaro.it
+cz.it
+chieti.it
+ch.it
+como.it
+co.it
+cosenza.it
+cs.it
+cremona.it
+cr.it
+crotone.it
+kr.it
+cuneo.it
+cn.it
+dell-ogliastra.it
+dellogliastra.it
+ogliastra.it
+og.it
+enna.it
+en.it
+ferrara.it
+fe.it
+fermo.it
+fm.it
+firenze.it
+florence.it
+fi.it
+foggia.it
+fg.it
+forli-cesena.it
+forlicesena.it
+cesena-forli.it
+cesenaforli.it
+fc.it
+frosinone.it
+fr.it
+genova.it
+genoa.it
+ge.it
+gorizia.it
+go.it
+grosseto.it
+gr.it
+imperia.it
+im.it
+isernia.it
+is.it
+laquila.it
+aquila.it
+aq.it
+la-spezia.it
+laspezia.it
+sp.it
+latina.it
+lt.it
+lecce.it
+le.it
+lecco.it
+lc.it
+livorno.it
+li.it
+lodi.it
+lo.it
+lucca.it
+lu.it
+macerata.it
+mc.it
+mantova.it
+mn.it
+massa-carrara.it
+massacarrara.it
+carrara-massa.it
+carraramassa.it
+ms.it
+matera.it
+mt.it
+medio-campidano.it
+mediocampidano.it
+campidano-medio.it
+campidanomedio.it
+vs.it
+messina.it
+me.it
+milano.it
+milan.it
+mi.it
+modena.it
+mo.it
+monza.it
+monza-brianza.it
+monzabrianza.it
+monzaebrianza.it
+monzaedellabrianza.it
+monza-e-della-brianza.it
+mb.it
+napoli.it
+naples.it
+na.it
+novara.it
+no.it
+nuoro.it
+nu.it
+oristano.it
+or.it
+padova.it
+padua.it
+pd.it
+palermo.it
+pa.it
+parma.it
+pr.it
+pavia.it
+pv.it
+perugia.it
+pg.it
+pescara.it
+pe.it
+pesaro-urbino.it
+pesarourbino.it
+urbino-pesaro.it
+urbinopesaro.it
+pu.it
+piacenza.it
+pc.it
+pisa.it
+pi.it
+pistoia.it
+pt.it
+pordenone.it
+pn.it
+potenza.it
+pz.it
+prato.it
+po.it
+ragusa.it
+rg.it
+ravenna.it
+ra.it
+reggio-calabria.it
+reggiocalabria.it
+rc.it
+reggio-emilia.it
+reggioemilia.it
+re.it
+rieti.it
+ri.it
+rimini.it
+rn.it
+roma.it
+rome.it
+rm.it
+rovigo.it
+ro.it
+salerno.it
+sa.it
+sassari.it
+ss.it
+savona.it
+sv.it
+siena.it
+si.it
+siracusa.it
+sr.it
+sondrio.it
+so.it
+taranto.it
+ta.it
+tempio-olbia.it
+tempioolbia.it
+olbia-tempio.it
+olbiatempio.it
+ot.it
+teramo.it
+te.it
+terni.it
+tr.it
+torino.it
+turin.it
+to.it
+trapani.it
+tp.it
+trento.it
+trentino.it
+tn.it
+treviso.it
+tv.it
+trieste.it
+ts.it
+udine.it
+ud.it
+varese.it
+va.it
+venezia.it
+venice.it
+ve.it
+verbania.it
+vb.it
+vercelli.it
+vc.it
+verona.it
+vr.it
+vibo-valentia.it
+vibovalentia.it
+vv.it
+vicenza.it
+vi.it
+viterbo.it
+vt.it
+
+// je : http://www.channelisles.net/applic/avextn.shtml
+je
+co.je
+org.je
+net.je
+sch.je
+gov.je
+
+// jm : http://www.com.jm/register.html
+*.jm
+
+// jo : http://www.dns.jo/Registration_policy.aspx
+jo
+com.jo
+org.jo
+net.jo
+edu.jo
+sch.jo
+gov.jo
+mil.jo
+name.jo
+
+// jobs : http://en.wikipedia.org/wiki/.jobs
+jobs
+
+// jp : http://en.wikipedia.org/wiki/.jp
+// http://jprs.co.jp/en/jpdomain.html
+// Submitted by registry <yone@jprs.co.jp> 2008-06-11
+// Updated by registry <yone@jprs.co.jp> 2008-12-04
+jp
+// jp organizational type names
+ac.jp
+ad.jp
+co.jp
+ed.jp
+go.jp
+gr.jp
+lg.jp
+ne.jp
+or.jp
+// jp geographic type names
+// http://jprs.jp/doc/rule/saisoku-1.html
+*.aichi.jp
+*.akita.jp
+*.aomori.jp
+*.chiba.jp
+*.ehime.jp
+*.fukui.jp
+*.fukuoka.jp
+*.fukushima.jp
+*.gifu.jp
+*.gunma.jp
+*.hiroshima.jp
+*.hokkaido.jp
+*.hyogo.jp
+*.ibaraki.jp
+*.ishikawa.jp
+*.iwate.jp
+*.kagawa.jp
+*.kagoshima.jp
+*.kanagawa.jp
+*.kawasaki.jp
+*.kitakyushu.jp
+*.kobe.jp
+*.kochi.jp
+*.kumamoto.jp
+*.kyoto.jp
+*.mie.jp
+*.miyagi.jp
+*.miyazaki.jp
+*.nagano.jp
+*.nagasaki.jp
+*.nagoya.jp
+*.nara.jp
+*.niigata.jp
+*.oita.jp
+*.okayama.jp
+*.okinawa.jp
+*.osaka.jp
+*.saga.jp
+*.saitama.jp
+*.sapporo.jp
+*.sendai.jp
+*.shiga.jp
+*.shimane.jp
+*.shizuoka.jp
+*.tochigi.jp
+*.tokushima.jp
+*.tokyo.jp
+*.tottori.jp
+*.toyama.jp
+*.wakayama.jp
+*.yamagata.jp
+*.yamaguchi.jp
+*.yamanashi.jp
+*.yokohama.jp
+!metro.tokyo.jp
+!pref.aichi.jp
+!pref.akita.jp
+!pref.aomori.jp
+!pref.chiba.jp
+!pref.ehime.jp
+!pref.fukui.jp
+!pref.fukuoka.jp
+!pref.fukushima.jp
+!pref.gifu.jp
+!pref.gunma.jp
+!pref.hiroshima.jp
+!pref.hokkaido.jp
+!pref.hyogo.jp
+!pref.ibaraki.jp
+!pref.ishikawa.jp
+!pref.iwate.jp
+!pref.kagawa.jp
+!pref.kagoshima.jp
+!pref.kanagawa.jp
+!pref.kochi.jp
+!pref.kumamoto.jp
+!pref.kyoto.jp
+!pref.mie.jp
+!pref.miyagi.jp
+!pref.miyazaki.jp
+!pref.nagano.jp
+!pref.nagasaki.jp
+!pref.nara.jp
+!pref.niigata.jp
+!pref.oita.jp
+!pref.okayama.jp
+!pref.okinawa.jp
+!pref.osaka.jp
+!pref.saga.jp
+!pref.saitama.jp
+!pref.shiga.jp
+!pref.shimane.jp
+!pref.shizuoka.jp
+!pref.tochigi.jp
+!pref.tokushima.jp
+!pref.tottori.jp
+!pref.toyama.jp
+!pref.wakayama.jp
+!pref.yamagata.jp
+!pref.yamaguchi.jp
+!pref.yamanashi.jp
+!city.chiba.jp
+!city.fukuoka.jp
+!city.hiroshima.jp
+!city.kawasaki.jp
+!city.kitakyushu.jp
+!city.kobe.jp
+!city.kyoto.jp
+!city.nagoya.jp
+!city.niigata.jp
+!city.okayama.jp
+!city.osaka.jp
+!city.saitama.jp
+!city.sapporo.jp
+!city.sendai.jp
+!city.shizuoka.jp
+!city.yokohama.jp
+
+// ke : http://www.kenic.or.ke/index.php?option=com_content&task=view&id=117&Itemid=145
+*.ke
+
+// kg : http://www.domain.kg/dmn_n.html
+kg
+org.kg
+net.kg
+com.kg
+edu.kg
+gov.kg
+mil.kg
+
+// kh : http://www.mptc.gov.kh/dns_registration.htm
+*.kh
+
+// ki : http://www.ki/dns/index.html
+ki
+edu.ki
+biz.ki
+net.ki
+org.ki
+gov.ki
+info.ki
+com.ki
+
+// km : http://en.wikipedia.org/wiki/.km
+// http://www.domaine.km/documents/charte.doc
+km
+org.km
+nom.km
+gov.km
+prd.km
+tm.km
+edu.km
+mil.km
+ass.km
+com.km
+// These are only mentioned as proposed suggestions at domaine.km, but
+// http://en.wikipedia.org/wiki/.km says they're available for registration:
+coop.km
+asso.km
+presse.km
+medecin.km
+notaires.km
+pharmaciens.km
+veterinaire.km
+gouv.km
+
+// kn : http://en.wikipedia.org/wiki/.kn
+// http://www.dot.kn/domainRules.html
+kn
+net.kn
+org.kn
+edu.kn
+gov.kn
+
+// kp : http://www.kcce.kp/en_index.php
+com.kp
+edu.kp
+gov.kp
+org.kp
+rep.kp
+tra.kp
+
+// kr : http://en.wikipedia.org/wiki/.kr
+// see also: http://domain.nida.or.kr/eng/registration.jsp
+kr
+ac.kr
+co.kr
+es.kr
+go.kr
+hs.kr
+kg.kr
+mil.kr
+ms.kr
+ne.kr
+or.kr
+pe.kr
+re.kr
+sc.kr
+// kr geographical names
+busan.kr
+chungbuk.kr
+chungnam.kr
+daegu.kr
+daejeon.kr
+gangwon.kr
+gwangju.kr
+gyeongbuk.kr
+gyeonggi.kr
+gyeongnam.kr
+incheon.kr
+jeju.kr
+jeonbuk.kr
+jeonnam.kr
+seoul.kr
+ulsan.kr
+
+// kw : http://en.wikipedia.org/wiki/.kw
+*.kw
+
+// ky : http://www.icta.ky/da_ky_reg_dom.php
+// Confirmed by registry <kysupport@perimeterusa.com> 2008-06-17
+ky
+edu.ky
+gov.ky
+com.ky
+org.ky
+net.ky
+
+// kz : http://en.wikipedia.org/wiki/.kz
+// see also: http://www.nic.kz/rules/index.jsp
+kz
+org.kz
+edu.kz
+net.kz
+gov.kz
+mil.kz
+com.kz
+
+// la : http://en.wikipedia.org/wiki/.la
+// Submitted by registry <gavin.brown@nic.la> 2008-06-10
+la
+int.la
+net.la
+info.la
+edu.la
+gov.la
+per.la
+com.la
+org.la
+// see http://www.c.la/
+c.la
+
+// lb : http://en.wikipedia.org/wiki/.lb
+// Submitted by registry <randy@psg.com> 2008-06-17
+com.lb
+edu.lb
+gov.lb
+net.lb
+org.lb
+
+// lc : http://en.wikipedia.org/wiki/.lc
+// see also: http://www.nic.lc/rules.htm
+lc
+com.lc
+net.lc
+co.lc
+org.lc
+edu.lc
+gov.lc
+
+// li : http://en.wikipedia.org/wiki/.li
+li
+
+// lk : http://www.nic.lk/seclevpr.html
+lk
+gov.lk
+sch.lk
+net.lk
+int.lk
+com.lk
+org.lk
+edu.lk
+ngo.lk
+soc.lk
+web.lk
+ltd.lk
+assn.lk
+grp.lk
+hotel.lk
+
+// local : http://en.wikipedia.org/wiki/.local
+local
+
+// lr : http://psg.com/dns/lr/lr.txt
+// Submitted by registry <randy@psg.com> 2008-06-17
+com.lr
+edu.lr
+gov.lr
+org.lr
+net.lr
+
+// ls : http://en.wikipedia.org/wiki/.ls
+ls
+co.ls
+org.ls
+
+// lt : http://en.wikipedia.org/wiki/.lt
+lt
+// gov.lt : http://www.gov.lt/index_en.php
+gov.lt
+
+// lu : http://www.dns.lu/en/
+lu
+
+// lv : http://www.nic.lv/DNS/En/generic.php
+lv
+com.lv
+edu.lv
+gov.lv
+org.lv
+mil.lv
+id.lv
+net.lv
+asn.lv
+conf.lv
+
+// ly : http://www.nic.ly/regulations.php
+ly
+com.ly
+net.ly
+gov.ly
+plc.ly
+edu.ly
+sch.ly
+med.ly
+org.ly
+id.ly
+
+// ma : http://en.wikipedia.org/wiki/.ma
+// http://www.anrt.ma/fr/admin/download/upload/file_fr782.pdf
+ma
+co.ma
+net.ma
+gov.ma
+org.ma
+ac.ma
+press.ma
+
+// mc : http://www.nic.mc/
+mc
+tm.mc
+asso.mc
+
+// md : http://en.wikipedia.org/wiki/.md
+md
+
+// me : http://en.wikipedia.org/wiki/.me
+me
+co.me
+net.me
+org.me
+edu.me
+ac.me
+gov.me
+its.me
+priv.me
+
+// mg : http://www.nic.mg/tarif.htm
+mg
+org.mg
+nom.mg
+gov.mg
+prd.mg
+tm.mg
+edu.mg
+mil.mg
+com.mg
+
+// mh : http://en.wikipedia.org/wiki/.mh
+mh
+
+// mil : http://en.wikipedia.org/wiki/.mil
+mil
+
+// mk : http://en.wikipedia.org/wiki/.mk
+// see also: http://dns.marnet.net.mk/postapka.php
+mk
+com.mk
+org.mk
+net.mk
+edu.mk
+gov.mk
+inf.mk
+name.mk
+
+// ml : http://www.gobin.info/domainname/ml-template.doc
+// see also: http://en.wikipedia.org/wiki/.ml
+ml
+com.ml
+edu.ml
+gouv.ml
+gov.ml
+net.ml
+org.ml
+presse.ml
+
+// mm : http://en.wikipedia.org/wiki/.mm
+*.mm
+
+// mn : http://en.wikipedia.org/wiki/.mn
+mn
+gov.mn
+edu.mn
+org.mn
+
+// mo : http://www.monic.net.mo/
+mo
+com.mo
+net.mo
+org.mo
+edu.mo
+gov.mo
+
+// mobi : http://en.wikipedia.org/wiki/.mobi
+mobi
+
+// mp : http://www.dot.mp/
+// Confirmed by registry <dcamacho@saipan.com> 2008-06-17
+mp
+
+// mq : http://en.wikipedia.org/wiki/.mq
+mq
+
+// mr : http://en.wikipedia.org/wiki/.mr
+mr
+gov.mr
+
+// ms : http://en.wikipedia.org/wiki/.ms
+ms
+
+// mt : https://www.nic.org.mt/dotmt/
+*.mt
+
+// mu : http://en.wikipedia.org/wiki/.mu
+mu
+com.mu
+net.mu
+org.mu
+gov.mu
+ac.mu
+co.mu
+or.mu
+
+// museum : http://about.museum/naming/
+// http://index.museum/
+museum
+academy.museum
+agriculture.museum
+air.museum
+airguard.museum
+alabama.museum
+alaska.museum
+amber.museum
+ambulance.museum
+american.museum
+americana.museum
+americanantiques.museum
+americanart.museum
+amsterdam.museum
+and.museum
+annefrank.museum
+anthro.museum
+anthropology.museum
+antiques.museum
+aquarium.museum
+arboretum.museum
+archaeological.museum
+archaeology.museum
+architecture.museum
+art.museum
+artanddesign.museum
+artcenter.museum
+artdeco.museum
+arteducation.museum
+artgallery.museum
+arts.museum
+artsandcrafts.museum
+asmatart.museum
+assassination.museum
+assisi.museum
+association.museum
+astronomy.museum
+atlanta.museum
+austin.museum
+australia.museum
+automotive.museum
+aviation.museum
+axis.museum
+badajoz.museum
+baghdad.museum
+bahn.museum
+bale.museum
+baltimore.museum
+barcelona.museum
+baseball.museum
+basel.museum
+baths.museum
+bauern.museum
+beauxarts.museum
+beeldengeluid.museum
+bellevue.museum
+bergbau.museum
+berkeley.museum
+berlin.museum
+bern.museum
+bible.museum
+bilbao.museum
+bill.museum
+birdart.museum
+birthplace.museum
+bonn.museum
+boston.museum
+botanical.museum
+botanicalgarden.museum
+botanicgarden.museum
+botany.museum
+brandywinevalley.museum
+brasil.museum
+bristol.museum
+british.museum
+britishcolumbia.museum
+broadcast.museum
+brunel.museum
+brussel.museum
+brussels.museum
+bruxelles.museum
+building.museum
+burghof.museum
+bus.museum
+bushey.museum
+cadaques.museum
+california.museum
+cambridge.museum
+can.museum
+canada.museum
+capebreton.museum
+carrier.museum
+cartoonart.museum
+casadelamoneda.museum
+castle.museum
+castres.museum
+celtic.museum
+center.museum
+chattanooga.museum
+cheltenham.museum
+chesapeakebay.museum
+chicago.museum
+children.museum
+childrens.museum
+childrensgarden.museum
+chiropractic.museum
+chocolate.museum
+christiansburg.museum
+cincinnati.museum
+cinema.museum
+circus.museum
+civilisation.museum
+civilization.museum
+civilwar.museum
+clinton.museum
+clock.museum
+coal.museum
+coastaldefence.museum
+cody.museum
+coldwar.museum
+collection.museum
+colonialwilliamsburg.museum
+coloradoplateau.museum
+columbia.museum
+columbus.museum
+communication.museum
+communications.museum
+community.museum
+computer.museum
+computerhistory.museum
+comunicações.museum
+contemporary.museum
+contemporaryart.museum
+convent.museum
+copenhagen.museum
+corporation.museum
+correios-e-telecomunicações.museum
+corvette.museum
+costume.museum
+countryestate.museum
+county.museum
+crafts.museum
+cranbrook.museum
+creation.museum
+cultural.museum
+culturalcenter.museum
+culture.museum
+cyber.museum
+cymru.museum
+dali.museum
+dallas.museum
+database.museum
+ddr.museum
+decorativearts.museum
+delaware.museum
+delmenhorst.museum
+denmark.museum
+depot.museum
+design.museum
+detroit.museum
+dinosaur.museum
+discovery.museum
+dolls.museum
+donostia.museum
+durham.museum
+eastafrica.museum
+eastcoast.museum
+education.museum
+educational.museum
+egyptian.museum
+eisenbahn.museum
+elburg.museum
+elvendrell.museum
+embroidery.museum
+encyclopedic.museum
+england.museum
+entomology.museum
+environment.museum
+environmentalconservation.museum
+epilepsy.museum
+essex.museum
+estate.museum
+ethnology.museum
+exeter.museum
+exhibition.museum
+family.museum
+farm.museum
+farmequipment.museum
+farmers.museum
+farmstead.museum
+field.museum
+figueres.museum
+filatelia.museum
+film.museum
+fineart.museum
+finearts.museum
+finland.museum
+flanders.museum
+florida.museum
+force.museum
+fortmissoula.museum
+fortworth.museum
+foundation.museum
+francaise.museum
+frankfurt.museum
+franziskaner.museum
+freemasonry.museum
+freiburg.museum
+fribourg.museum
+frog.museum
+fundacio.museum
+furniture.museum
+gallery.museum
+garden.museum
+gateway.museum
+geelvinck.museum
+gemological.museum
+geology.museum
+georgia.museum
+giessen.museum
+glas.museum
+glass.museum
+gorge.museum
+grandrapids.museum
+graz.museum
+guernsey.museum
+halloffame.museum
+hamburg.museum
+handson.museum
+harvestcelebration.museum
+hawaii.museum
+health.museum
+heimatunduhren.museum
+hellas.museum
+helsinki.museum
+hembygdsforbund.museum
+heritage.museum
+histoire.museum
+historical.museum
+historicalsociety.museum
+historichouses.museum
+historisch.museum
+historisches.museum
+history.museum
+historyofscience.museum
+horology.museum
+house.museum
+humanities.museum
+illustration.museum
+imageandsound.museum
+indian.museum
+indiana.museum
+indianapolis.museum
+indianmarket.museum
+intelligence.museum
+interactive.museum
+iraq.museum
+iron.museum
+isleofman.museum
+jamison.museum
+jefferson.museum
+jerusalem.museum
+jewelry.museum
+jewish.museum
+jewishart.museum
+jfk.museum
+journalism.museum
+judaica.museum
+judygarland.museum
+juedisches.museum
+juif.museum
+karate.museum
+karikatur.museum
+kids.museum
+koebenhavn.museum
+koeln.museum
+kunst.museum
+kunstsammlung.museum
+kunstunddesign.museum
+labor.museum
+labour.museum
+lajolla.museum
+lancashire.museum
+landes.museum
+lans.museum
+läns.museum
+larsson.museum
+lewismiller.museum
+lincoln.museum
+linz.museum
+living.museum
+livinghistory.museum
+localhistory.museum
+london.museum
+losangeles.museum
+louvre.museum
+loyalist.museum
+lucerne.museum
+luxembourg.museum
+luzern.museum
+mad.museum
+madrid.museum
+mallorca.museum
+manchester.museum
+mansion.museum
+mansions.museum
+manx.museum
+marburg.museum
+maritime.museum
+maritimo.museum
+maryland.museum
+marylhurst.museum
+media.museum
+medical.museum
+medizinhistorisches.museum
+meeres.museum
+memorial.museum
+mesaverde.museum
+michigan.museum
+midatlantic.museum
+military.museum
+mill.museum
+miners.museum
+mining.museum
+minnesota.museum
+missile.museum
+missoula.museum
+modern.museum
+moma.museum
+money.museum
+monmouth.museum
+monticello.museum
+montreal.museum
+moscow.museum
+motorcycle.museum
+muenchen.museum
+muenster.museum
+mulhouse.museum
+muncie.museum
+museet.museum
+museumcenter.museum
+museumvereniging.museum
+music.museum
+national.museum
+nationalfirearms.museum
+nationalheritage.museum
+nativeamerican.museum
+naturalhistory.museum
+naturalhistorymuseum.museum
+naturalsciences.museum
+nature.museum
+naturhistorisches.museum
+natuurwetenschappen.museum
+naumburg.museum
+naval.museum
+nebraska.museum
+neues.museum
+newhampshire.museum
+newjersey.museum
+newmexico.museum
+newport.museum
+newspaper.museum
+newyork.museum
+niepce.museum
+norfolk.museum
+north.museum
+nrw.museum
+nuernberg.museum
+nuremberg.museum
+nyc.museum
+nyny.museum
+oceanographic.museum
+oceanographique.museum
+omaha.museum
+online.museum
+ontario.museum
+openair.museum
+oregon.museum
+oregontrail.museum
+otago.museum
+oxford.museum
+pacific.museum
+paderborn.museum
+palace.museum
+paleo.museum
+palmsprings.museum
+panama.museum
+paris.museum
+pasadena.museum
+pharmacy.museum
+philadelphia.museum
+philadelphiaarea.museum
+philately.museum
+phoenix.museum
+photography.museum
+pilots.museum
+pittsburgh.museum
+planetarium.museum
+plantation.museum
+plants.museum
+plaza.museum
+portal.museum
+portland.museum
+portlligat.museum
+posts-and-telecommunications.museum
+preservation.museum
+presidio.museum
+press.museum
+project.museum
+public.museum
+pubol.museum
+quebec.museum
+railroad.museum
+railway.museum
+research.museum
+resistance.museum
+riodejaneiro.museum
+rochester.museum
+rockart.museum
+roma.museum
+russia.museum
+saintlouis.museum
+salem.museum
+salvadordali.museum
+salzburg.museum
+sandiego.museum
+sanfrancisco.museum
+santabarbara.museum
+santacruz.museum
+santafe.museum
+saskatchewan.museum
+satx.museum
+savannahga.museum
+schlesisches.museum
+schoenbrunn.museum
+schokoladen.museum
+school.museum
+schweiz.museum
+science.museum
+scienceandhistory.museum
+scienceandindustry.museum
+sciencecenter.museum
+sciencecenters.museum
+science-fiction.museum
+sciencehistory.museum
+sciences.museum
+sciencesnaturelles.museum
+scotland.museum
+seaport.museum
+settlement.museum
+settlers.museum
+shell.museum
+sherbrooke.museum
+sibenik.museum
+silk.museum
+ski.museum
+skole.museum
+society.museum
+sologne.museum
+soundandvision.museum
+southcarolina.museum
+southwest.museum
+space.museum
+spy.museum
+square.museum
+stadt.museum
+stalbans.museum
+starnberg.museum
+state.museum
+stateofdelaware.museum
+station.museum
+steam.museum
+steiermark.museum
+stjohn.museum
+stockholm.museum
+stpetersburg.museum
+stuttgart.museum
+suisse.museum
+surgeonshall.museum
+surrey.museum
+svizzera.museum
+sweden.museum
+sydney.museum
+tank.museum
+tcm.museum
+technology.museum
+telekommunikation.museum
+television.museum
+texas.museum
+textile.museum
+theater.museum
+time.museum
+timekeeping.museum
+topology.museum
+torino.museum
+touch.museum
+town.museum
+transport.museum
+tree.museum
+trolley.museum
+trust.museum
+trustee.museum
+uhren.museum
+ulm.museum
+undersea.museum
+university.museum
+usa.museum
+usantiques.museum
+usarts.museum
+uscountryestate.museum
+usculture.museum
+usdecorativearts.museum
+usgarden.museum
+ushistory.museum
+ushuaia.museum
+uslivinghistory.museum
+utah.museum
+uvic.museum
+valley.museum
+vantaa.museum
+versailles.museum
+viking.museum
+village.museum
+virginia.museum
+virtual.museum
+virtuel.museum
+vlaanderen.museum
+volkenkunde.museum
+wales.museum
+wallonie.museum
+war.museum
+washingtondc.museum
+watchandclock.museum
+watch-and-clock.museum
+western.museum
+westfalen.museum
+whaling.museum
+wildlife.museum
+williamsburg.museum
+windmill.museum
+workshop.museum
+york.museum
+yorkshire.museum
+yosemite.museum
+youth.museum
+zoological.museum
+zoology.museum
+ירושלים.museum
+иком.museum
+
+// mv : http://en.wikipedia.org/wiki/.mv
+// "mv" included because, contra Wikipedia, google.mv exists.
+mv
+aero.mv
+biz.mv
+com.mv
+coop.mv
+edu.mv
+gov.mv
+info.mv
+int.mv
+mil.mv
+museum.mv
+name.mv
+net.mv
+org.mv
+pro.mv
+
+// mw : http://www.registrar.mw/
+mw
+ac.mw
+biz.mw
+co.mw
+com.mw
+coop.mw
+edu.mw
+gov.mw
+int.mw
+museum.mw
+net.mw
+org.mw
+
+// mx : http://www.nic.mx/
+// Submitted by registry <farias@nic.mx> 2008-06-19
+mx
+com.mx
+org.mx
+gob.mx
+edu.mx
+net.mx
+
+// my : http://www.mynic.net.my/
+my
+com.my
+net.my
+org.my
+gov.my
+edu.my
+mil.my
+name.my
+
+// mz : http://www.gobin.info/domainname/mz-template.doc
+*.mz
+
+// na : http://www.na-nic.com.na/
+// http://www.info.na/domain/
+na
+info.na
+pro.na
+name.na
+school.na
+or.na
+dr.na
+us.na
+mx.na
+ca.na
+in.na
+cc.na
+tv.na
+ws.na
+mobi.na
+co.na
+com.na
+org.na
+
+// name : has 2nd-level tlds, but there's no list of them
+name
+
+// nc : http://www.cctld.nc/
+nc
+asso.nc
+
+// ne : http://en.wikipedia.org/wiki/.ne
+ne
+
+// net : http://en.wikipedia.org/wiki/.net
+net
+
+// CentralNic names : http://www.centralnic.com/names/domains
+// Submitted by registry <gavin.brown@centralnic.com> 2008-06-17
+gb.net
+se.net
+uk.net
+
+// ZaNiC names : http://www.za.net/
+// Confirmed by registry <hostmaster@nic.za.net> 2009-10-03
+za.net
+
+// nf : http://en.wikipedia.org/wiki/.nf
+nf
+com.nf
+net.nf
+per.nf
+rec.nf
+web.nf
+arts.nf
+firm.nf
+info.nf
+other.nf
+store.nf
+
+// ng : http://psg.com/dns/ng/
+// Submitted by registry <randy@psg.com> 2008-06-17
+ac.ng
+com.ng
+edu.ng
+gov.ng
+net.ng
+org.ng
+
+// ni : http://www.nic.ni/dominios.htm
+*.ni
+
+// nl : http://www.domain-registry.nl/ace.php/c,728,122,,,,Home.html
+// Confirmed by registry <Antoin.Verschuren@sidn.nl> (with technical
+// reservations) 2008-06-08
+nl
+
+// BV.nl will be a registry for dutch BV's (besloten vennootschap)
+bv.nl
+
+// the co.nl domain is managed by CoDNS B.V. Added 2010-05-23.
+co.nl
+
+// no : http://www.norid.no/regelverk/index.en.html
+// The Norwegian registry has declined to notify us of updates. The web pages
+// referenced below are the official source of the data. There is also an
+// announce mailing list:
+// https://postlister.uninett.no/sympa/info/norid-diskusjon
+no
+// Norid generic domains : http://www.norid.no/regelverk/vedlegg-c.en.html
+fhs.no
+vgs.no
+fylkesbibl.no
+folkebibl.no
+museum.no
+idrett.no
+priv.no
+// Non-Norid generic domains : http://www.norid.no/regelverk/vedlegg-d.en.html
+mil.no
+stat.no
+dep.no
+kommune.no
+herad.no
+// no geographical names : http://www.norid.no/regelverk/vedlegg-b.en.html
+// counties
+aa.no
+ah.no
+bu.no
+fm.no
+hl.no
+hm.no
+jan-mayen.no
+mr.no
+nl.no
+nt.no
+of.no
+ol.no
+oslo.no
+rl.no
+sf.no
+st.no
+svalbard.no
+tm.no
+tr.no
+va.no
+vf.no
+// primary and lower secondary schools per county
+gs.aa.no
+gs.ah.no
+gs.bu.no
+gs.fm.no
+gs.hl.no
+gs.hm.no
+gs.jan-mayen.no
+gs.mr.no
+gs.nl.no
+gs.nt.no
+gs.of.no
+gs.ol.no
+gs.oslo.no
+gs.rl.no
+gs.sf.no
+gs.st.no
+gs.svalbard.no
+gs.tm.no
+gs.tr.no
+gs.va.no
+gs.vf.no
+// cities
+akrehamn.no
+åkrehamn.no
+algard.no
+ålgård.no
+arna.no
+brumunddal.no
+bryne.no
+bronnoysund.no
+brønnøysund.no
+drobak.no
+drøbak.no
+egersund.no
+fetsund.no
+floro.no
+florø.no
+fredrikstad.no
+hokksund.no
+honefoss.no
+hønefoss.no
+jessheim.no
+jorpeland.no
+jørpeland.no
+kirkenes.no
+kopervik.no
+krokstadelva.no
+langevag.no
+langevåg.no
+leirvik.no
+mjondalen.no
+mjøndalen.no
+mo-i-rana.no
+mosjoen.no
+mosjøen.no
+nesoddtangen.no
+orkanger.no
+osoyro.no
+osøyro.no
+raholt.no
+råholt.no
+sandnessjoen.no
+sandnessjøen.no
+skedsmokorset.no
+slattum.no
+spjelkavik.no
+stathelle.no
+stavern.no
+stjordalshalsen.no
+stjørdalshalsen.no
+tananger.no
+tranby.no
+vossevangen.no
+// communities
+afjord.no
+åfjord.no
+agdenes.no
+al.no
+ål.no
+alesund.no
+ålesund.no
+alstahaug.no
+alta.no
+áltá.no
+alaheadju.no
+álaheadju.no
+alvdal.no
+amli.no
+åmli.no
+amot.no
+åmot.no
+andebu.no
+andoy.no
+andøy.no
+andasuolo.no
+ardal.no
+årdal.no
+aremark.no
+arendal.no
+ås.no
+aseral.no
+åseral.no
+asker.no
+askim.no
+askvoll.no
+askoy.no
+askøy.no
+asnes.no
+åsnes.no
+audnedaln.no
+aukra.no
+aure.no
+aurland.no
+aurskog-holand.no
+aurskog-høland.no
+austevoll.no
+austrheim.no
+averoy.no
+averøy.no
+balestrand.no
+ballangen.no
+balat.no
+bálát.no
+balsfjord.no
+bahccavuotna.no
+báhccavuotna.no
+bamble.no
+bardu.no
+beardu.no
+beiarn.no
+bajddar.no
+bájddar.no
+baidar.no
+báidár.no
+berg.no
+bergen.no
+berlevag.no
+berlevåg.no
+bearalvahki.no
+bearalváhki.no
+bindal.no
+birkenes.no
+bjarkoy.no
+bjarkøy.no
+bjerkreim.no
+bjugn.no
+bodo.no
+bodø.no
+badaddja.no
+bådåddjå.no
+budejju.no
+bokn.no
+bremanger.no
+bronnoy.no
+brønnøy.no
+bygland.no
+bykle.no
+barum.no
+bærum.no
+bo.telemark.no
+bø.telemark.no
+bo.nordland.no
+bø.nordland.no
+bievat.no
+bievát.no
+bomlo.no
+bømlo.no
+batsfjord.no
+båtsfjord.no
+bahcavuotna.no
+báhcavuotna.no
+dovre.no
+drammen.no
+drangedal.no
+dyroy.no
+dyrøy.no
+donna.no
+dønna.no
+eid.no
+eidfjord.no
+eidsberg.no
+eidskog.no
+eidsvoll.no
+eigersund.no
+elverum.no
+enebakk.no
+engerdal.no
+etne.no
+etnedal.no
+evenes.no
+evenassi.no
+evenášši.no
+evje-og-hornnes.no
+farsund.no
+fauske.no
+fuossko.no
+fuoisku.no
+fedje.no
+fet.no
+finnoy.no
+finnøy.no
+fitjar.no
+fjaler.no
+fjell.no
+flakstad.no
+flatanger.no
+flekkefjord.no
+flesberg.no
+flora.no
+fla.no
+flå.no
+folldal.no
+forsand.no
+fosnes.no
+frei.no
+frogn.no
+froland.no
+frosta.no
+frana.no
+fræna.no
+froya.no
+frøya.no
+fusa.no
+fyresdal.no
+forde.no
+førde.no
+gamvik.no
+gangaviika.no
+gáŋgaviika.no
+gaular.no
+gausdal.no
+gildeskal.no
+gildeskål.no
+giske.no
+gjemnes.no
+gjerdrum.no
+gjerstad.no
+gjesdal.no
+gjovik.no
+gjøvik.no
+gloppen.no
+gol.no
+gran.no
+grane.no
+granvin.no
+gratangen.no
+grimstad.no
+grong.no
+kraanghke.no
+kråanghke.no
+grue.no
+gulen.no
+hadsel.no
+halden.no
+halsa.no
+hamar.no
+hamaroy.no
+habmer.no
+hábmer.no
+hapmir.no
+hápmir.no
+hammerfest.no
+hammarfeasta.no
+hámmárfeasta.no
+haram.no
+hareid.no
+harstad.no
+hasvik.no
+aknoluokta.no
+ákŋoluokta.no
+hattfjelldal.no
+aarborte.no
+haugesund.no
+hemne.no
+hemnes.no
+hemsedal.no
+heroy.more-og-romsdal.no
+herøy.møre-og-romsdal.no
+heroy.nordland.no
+herøy.nordland.no
+hitra.no
+hjartdal.no
+hjelmeland.no
+hobol.no
+hobøl.no
+hof.no
+hol.no
+hole.no
+holmestrand.no
+holtalen.no
+holtålen.no
+hornindal.no
+horten.no
+hurdal.no
+hurum.no
+hvaler.no
+hyllestad.no
+hagebostad.no
+hægebostad.no
+hoyanger.no
+høyanger.no
+hoylandet.no
+høylandet.no
+ha.no
+hå.no
+ibestad.no
+inderoy.no
+inderøy.no
+iveland.no
+jevnaker.no
+jondal.no
+jolster.no
+jølster.no
+karasjok.no
+karasjohka.no
+kárášjohka.no
+karlsoy.no
+galsa.no
+gálsá.no
+karmoy.no
+karmøy.no
+kautokeino.no
+guovdageaidnu.no
+klepp.no
+klabu.no
+klæbu.no
+kongsberg.no
+kongsvinger.no
+kragero.no
+kragerø.no
+kristiansand.no
+kristiansund.no
+krodsherad.no
+krødsherad.no
+kvalsund.no
+rahkkeravju.no
+ráhkkerávju.no
+kvam.no
+kvinesdal.no
+kvinnherad.no
+kviteseid.no
+kvitsoy.no
+kvitsøy.no
+kvafjord.no
+kvæfjord.no
+giehtavuoatna.no
+kvanangen.no
+kvænangen.no
+navuotna.no
+návuotna.no
+kafjord.no
+kåfjord.no
+gaivuotna.no
+gáivuotna.no
+larvik.no
+lavangen.no
+lavagis.no
+loabat.no
+loabát.no
+lebesby.no
+davvesiida.no
+leikanger.no
+leirfjord.no
+leka.no
+leksvik.no
+lenvik.no
+leangaviika.no
+leaŋgaviika.no
+lesja.no
+levanger.no
+lier.no
+lierne.no
+lillehammer.no
+lillesand.no
+lindesnes.no
+lindas.no
+lindås.no
+lom.no
+loppa.no
+lahppi.no
+láhppi.no
+lund.no
+lunner.no
+luroy.no
+lurøy.no
+luster.no
+lyngdal.no
+lyngen.no
+ivgu.no
+lardal.no
+lerdal.no
+lærdal.no
+lodingen.no
+lødingen.no
+lorenskog.no
+lørenskog.no
+loten.no
+løten.no
+malvik.no
+masoy.no
+måsøy.no
+muosat.no
+muosát.no
+mandal.no
+marker.no
+marnardal.no
+masfjorden.no
+meland.no
+meldal.no
+melhus.no
+meloy.no
+meløy.no
+meraker.no
+meråker.no
+moareke.no
+moåreke.no
+midsund.no
+midtre-gauldal.no
+modalen.no
+modum.no
+molde.no
+moskenes.no
+moss.no
+mosvik.no
+malselv.no
+målselv.no
+malatvuopmi.no
+málatvuopmi.no
+namdalseid.no
+aejrie.no
+namsos.no
+namsskogan.no
+naamesjevuemie.no
+nååmesjevuemie.no
+laakesvuemie.no
+nannestad.no
+narvik.no
+narviika.no
+naustdal.no
+nedre-eiker.no
+nes.akershus.no
+nes.buskerud.no
+nesna.no
+nesodden.no
+nesseby.no
+unjarga.no
+unjárga.no
+nesset.no
+nissedal.no
+nittedal.no
+nord-aurdal.no
+nord-fron.no
+nord-odal.no
+norddal.no
+nordkapp.no
+davvenjarga.no
+davvenjárga.no
+nordre-land.no
+nordreisa.no
+raisa.no
+ráisa.no
+nore-og-uvdal.no
+notodden.no
+naroy.no
+nærøy.no
+notteroy.no
+nøtterøy.no
+odda.no
+oksnes.no
+øksnes.no
+oppdal.no
+oppegard.no
+oppegård.no
+orkdal.no
+orland.no
+ørland.no
+orskog.no
+ørskog.no
+orsta.no
+ørsta.no
+os.hedmark.no
+os.hordaland.no
+osen.no
+osteroy.no
+osterøy.no
+ostre-toten.no
+østre-toten.no
+overhalla.no
+ovre-eiker.no
+øvre-eiker.no
+oyer.no
+øyer.no
+oygarden.no
+øygarden.no
+oystre-slidre.no
+øystre-slidre.no
+porsanger.no
+porsangu.no
+porsáŋgu.no
+porsgrunn.no
+radoy.no
+radøy.no
+rakkestad.no
+rana.no
+ruovat.no
+randaberg.no
+rauma.no
+rendalen.no
+rennebu.no
+rennesoy.no
+rennesøy.no
+rindal.no
+ringebu.no
+ringerike.no
+ringsaker.no
+rissa.no
+risor.no
+risør.no
+roan.no
+rollag.no
+rygge.no
+ralingen.no
+rælingen.no
+rodoy.no
+rødøy.no
+romskog.no
+rømskog.no
+roros.no
+røros.no
+rost.no
+røst.no
+royken.no
+røyken.no
+royrvik.no
+røyrvik.no
+rade.no
+råde.no
+salangen.no
+siellak.no
+saltdal.no
+salat.no
+sálát.no
+sálat.no
+samnanger.no
+sande.more-og-romsdal.no
+sande.møre-og-romsdal.no
+sande.vestfold.no
+sandefjord.no
+sandnes.no
+sandoy.no
+sandøy.no
+sarpsborg.no
+sauda.no
+sauherad.no
+sel.no
+selbu.no
+selje.no
+seljord.no
+sigdal.no
+siljan.no
+sirdal.no
+skaun.no
+skedsmo.no
+ski.no
+skien.no
+skiptvet.no
+skjervoy.no
+skjervøy.no
+skierva.no
+skiervá.no
+skjak.no
+skjåk.no
+skodje.no
+skanland.no
+skånland.no
+skanit.no
+skánit.no
+smola.no
+smøla.no
+snillfjord.no
+snasa.no
+snåsa.no
+snoasa.no
+snaase.no
+snåase.no
+sogndal.no
+sokndal.no
+sola.no
+solund.no
+songdalen.no
+sortland.no
+spydeberg.no
+stange.no
+stavanger.no
+steigen.no
+steinkjer.no
+stjordal.no
+stjørdal.no
+stokke.no
+stor-elvdal.no
+stord.no
+stordal.no
+storfjord.no
+omasvuotna.no
+strand.no
+stranda.no
+stryn.no
+sula.no
+suldal.no
+sund.no
+sunndal.no
+surnadal.no
+sveio.no
+svelvik.no
+sykkylven.no
+sogne.no
+søgne.no
+somna.no
+sømna.no
+sondre-land.no
+søndre-land.no
+sor-aurdal.no
+sør-aurdal.no
+sor-fron.no
+sør-fron.no
+sor-odal.no
+sør-odal.no
+sor-varanger.no
+sør-varanger.no
+matta-varjjat.no
+mátta-várjjat.no
+sorfold.no
+sørfold.no
+sorreisa.no
+sørreisa.no
+sorum.no
+sørum.no
+tana.no
+deatnu.no
+time.no
+tingvoll.no
+tinn.no
+tjeldsund.no
+dielddanuorri.no
+tjome.no
+tjøme.no
+tokke.no
+tolga.no
+torsken.no
+tranoy.no
+tranøy.no
+tromso.no
+tromsø.no
+tromsa.no
+romsa.no
+trondheim.no
+troandin.no
+trysil.no
+trana.no
+træna.no
+trogstad.no
+trøgstad.no
+tvedestrand.no
+tydal.no
+tynset.no
+tysfjord.no
+divtasvuodna.no
+divttasvuotna.no
+tysnes.no
+tysvar.no
+tysvær.no
+tonsberg.no
+tønsberg.no
+ullensaker.no
+ullensvang.no
+ulvik.no
+utsira.no
+vadso.no
+vadsø.no
+cahcesuolo.no
+čáhcesuolo.no
+vaksdal.no
+valle.no
+vang.no
+vanylven.no
+vardo.no
+vardø.no
+varggat.no
+várggát.no
+vefsn.no
+vaapste.no
+vega.no
+vegarshei.no
+vegårshei.no
+vennesla.no
+verdal.no
+verran.no
+vestby.no
+vestnes.no
+vestre-slidre.no
+vestre-toten.no
+vestvagoy.no
+vestvågøy.no
+vevelstad.no
+vik.no
+vikna.no
+vindafjord.no
+volda.no
+voss.no
+varoy.no
+værøy.no
+vagan.no
+vågan.no
+voagat.no
+vagsoy.no
+vågsøy.no
+vaga.no
+vågå.no
+valer.ostfold.no
+våler.østfold.no
+valer.hedmark.no
+våler.hedmark.no
+
+// the co.no domain is managed by CoDNS B.V. Added 2010-05-23.
+co.no
+
+// np : http://www.mos.com.np/register.html
+*.np
+
+// nr : http://cenpac.net.nr/dns/index.html
+// Confirmed by registry <technician@cenpac.net.nr> 2008-06-17
+nr
+biz.nr
+info.nr
+gov.nr
+edu.nr
+org.nr
+net.nr
+com.nr
+
+// nu : http://en.wikipedia.org/wiki/.nu
+nu
+
+// nz : http://en.wikipedia.org/wiki/.nz
+*.nz
+
+// om : http://en.wikipedia.org/wiki/.om
+*.om
+!mediaphone.om
+!nawrastelecom.om
+!nawras.om
+!omanmobile.om
+!omanpost.om
+!omantel.om
+!rakpetroleum.om
+!siemens.om
+!songfest.om
+!statecouncil.om
+
+// org : http://en.wikipedia.org/wiki/.org
+org
+
+// CentralNic names : http://www.centralnic.com/names/domains
+// Submitted by registry <gavin.brown@centralnic.com> 2008-06-17
+ae.org
+
+// ZaNiC names : http://www.za.net/
+// Confirmed by registry <hostmaster@nic.za.net> 2009-10-03
+za.org
+
+// pa : http://www.nic.pa/
+// Some additional second level "domains" resolve directly as hostnames, such as
+// pannet.pa, so we add a rule for "pa".
+pa
+ac.pa
+gob.pa
+com.pa
+org.pa
+sld.pa
+edu.pa
+net.pa
+ing.pa
+abo.pa
+med.pa
+nom.pa
+
+// pe : https://www.nic.pe/InformeFinalComision.pdf
+pe
+edu.pe
+gob.pe
+nom.pe
+mil.pe
+org.pe
+com.pe
+net.pe
+
+// pf : http://www.gobin.info/domainname/formulaire-pf.pdf
+pf
+com.pf
+org.pf
+edu.pf
+
+// pg : http://en.wikipedia.org/wiki/.pg
+*.pg
+
+// ph : http://www.domains.ph/FAQ2.asp
+// Submitted by registry <jed@email.com.ph> 2008-06-13
+ph
+com.ph
+net.ph
+org.ph
+gov.ph
+edu.ph
+ngo.ph
+mil.ph
+i.ph
+
+// pk : http://pk5.pknic.net.pk/pk5/msgNamepk.PK
+pk
+com.pk
+net.pk
+edu.pk
+org.pk
+fam.pk
+biz.pk
+web.pk
+gov.pk
+gob.pk
+gok.pk
+gon.pk
+gop.pk
+gos.pk
+info.pk
+
+// pl : http://www.dns.pl/english/
+pl
+// NASK functional domains (nask.pl / dns.pl) : http://www.dns.pl/english/dns-funk.html
+aid.pl
+agro.pl
+atm.pl
+auto.pl
+biz.pl
+com.pl
+edu.pl
+gmina.pl
+gsm.pl
+info.pl
+mail.pl
+miasta.pl
+media.pl
+mil.pl
+net.pl
+nieruchomosci.pl
+nom.pl
+org.pl
+pc.pl
+powiat.pl
+priv.pl
+realestate.pl
+rel.pl
+sex.pl
+shop.pl
+sklep.pl
+sos.pl
+szkola.pl
+targi.pl
+tm.pl
+tourism.pl
+travel.pl
+turystyka.pl
+// ICM functional domains (icm.edu.pl)
+6bone.pl
+art.pl
+mbone.pl
+// Government domains (administered by ippt.gov.pl)
+gov.pl
+uw.gov.pl
+um.gov.pl
+ug.gov.pl
+upow.gov.pl
+starostwo.gov.pl
+so.gov.pl
+sr.gov.pl
+po.gov.pl
+pa.gov.pl
+// other functional domains
+ngo.pl
+irc.pl
+usenet.pl
+// NASK geographical domains : http://www.dns.pl/english/dns-regiony.html
+augustow.pl
+babia-gora.pl
+bedzin.pl
+beskidy.pl
+bialowieza.pl
+bialystok.pl
+bielawa.pl
+bieszczady.pl
+boleslawiec.pl
+bydgoszcz.pl
+bytom.pl
+cieszyn.pl
+czeladz.pl
+czest.pl
+dlugoleka.pl
+elblag.pl
+elk.pl
+glogow.pl
+gniezno.pl
+gorlice.pl
+grajewo.pl
+ilawa.pl
+jaworzno.pl
+jelenia-gora.pl
+jgora.pl
+kalisz.pl
+kazimierz-dolny.pl
+karpacz.pl
+kartuzy.pl
+kaszuby.pl
+katowice.pl
+kepno.pl
+ketrzyn.pl
+klodzko.pl
+kobierzyce.pl
+kolobrzeg.pl
+konin.pl
+konskowola.pl
+kutno.pl
+lapy.pl
+lebork.pl
+legnica.pl
+lezajsk.pl
+limanowa.pl
+lomza.pl
+lowicz.pl
+lubin.pl
+lukow.pl
+malbork.pl
+malopolska.pl
+mazowsze.pl
+mazury.pl
+mielec.pl
+mielno.pl
+mragowo.pl
+naklo.pl
+nowaruda.pl
+nysa.pl
+olawa.pl
+olecko.pl
+olkusz.pl
+olsztyn.pl
+opoczno.pl
+opole.pl
+ostroda.pl
+ostroleka.pl
+ostrowiec.pl
+ostrowwlkp.pl
+pila.pl
+pisz.pl
+podhale.pl
+podlasie.pl
+polkowice.pl
+pomorze.pl
+pomorskie.pl
+prochowice.pl
+pruszkow.pl
+przeworsk.pl
+pulawy.pl
+radom.pl
+rawa-maz.pl
+rybnik.pl
+rzeszow.pl
+sanok.pl
+sejny.pl
+siedlce.pl
+slask.pl
+slupsk.pl
+sosnowiec.pl
+stalowa-wola.pl
+skoczow.pl
+starachowice.pl
+stargard.pl
+suwalki.pl
+swidnica.pl
+swiebodzin.pl
+swinoujscie.pl
+szczecin.pl
+szczytno.pl
+tarnobrzeg.pl
+tgory.pl
+turek.pl
+tychy.pl
+ustka.pl
+walbrzych.pl
+warmia.pl
+warszawa.pl
+waw.pl
+wegrow.pl
+wielun.pl
+wlocl.pl
+wloclawek.pl
+wodzislaw.pl
+wolomin.pl
+wroclaw.pl
+zachpomor.pl
+zagan.pl
+zarow.pl
+zgora.pl
+zgorzelec.pl
+// TASK geographical domains (www.task.gda.pl/uslugi/dns)
+gda.pl
+gdansk.pl
+gdynia.pl
+med.pl
+sopot.pl
+// other geographical domains
+gliwice.pl
+krakow.pl
+poznan.pl
+wroc.pl
+zakopane.pl
+
+// co.pl : Mainseek Sp. z o.o. http://www.co.pl
+co.pl
+
+// pn : http://www.government.pn/PnRegistry/policies.htm
+pn
+gov.pn
+co.pn
+org.pn
+edu.pn
+net.pn
+
+// pr : http://www.nic.pr/index.asp?f=1
+pr
+com.pr
+net.pr
+org.pr
+gov.pr
+edu.pr
+isla.pr
+pro.pr
+biz.pr
+info.pr
+name.pr
+// these aren't mentioned on nic.pr, but on http://en.wikipedia.org/wiki/.pr
+est.pr
+prof.pr
+ac.pr
+
+// pro : http://www.nic.pro/support_faq.htm
+pro
+aca.pro
+bar.pro
+cpa.pro
+jur.pro
+law.pro
+med.pro
+eng.pro
+
+// ps : http://en.wikipedia.org/wiki/.ps
+// http://www.nic.ps/registration/policy.html#reg
+ps
+edu.ps
+gov.ps
+sec.ps
+plo.ps
+com.ps
+org.ps
+net.ps
+
+// pt : http://online.dns.pt/dns/start_dns
+pt
+net.pt
+gov.pt
+org.pt
+edu.pt
+int.pt
+publ.pt
+com.pt
+nome.pt
+
+// pw : http://en.wikipedia.org/wiki/.pw
+pw
+co.pw
+ne.pw
+or.pw
+ed.pw
+go.pw
+belau.pw
+
+// py : http://www.nic.py/faq_a.html#faq_b
+*.py
+
+// qa : http://www.qatar.net.qa/services/virtual.htm
+*.qa
+
+// re : http://www.afnic.re/obtenir/chartes/nommage-re/annexe-descriptifs
+re
+com.re
+asso.re
+nom.re
+
+// ro : http://www.rotld.ro/
+ro
+com.ro
+org.ro
+tm.ro
+nt.ro
+nom.ro
+info.ro
+rec.ro
+arts.ro
+firm.ro
+store.ro
+www.ro
+
+// rs : http://en.wikipedia.org/wiki/.rs
+rs
+co.rs
+org.rs
+edu.rs
+ac.rs
+gov.rs
+in.rs
+
+// ru : http://www.cctld.ru/ru/docs/aktiv_8.php
+// Industry domains
+ru
+ac.ru
+com.ru
+edu.ru
+int.ru
+net.ru
+org.ru
+pp.ru
+// Geographical domains
+adygeya.ru
+altai.ru
+amur.ru
+arkhangelsk.ru
+astrakhan.ru
+bashkiria.ru
+belgorod.ru
+bir.ru
+bryansk.ru
+buryatia.ru
+cbg.ru
+chel.ru
+chelyabinsk.ru
+chita.ru
+chukotka.ru
+chuvashia.ru
+dagestan.ru
+dudinka.ru
+e-burg.ru
+grozny.ru
+irkutsk.ru
+ivanovo.ru
+izhevsk.ru
+jar.ru
+joshkar-ola.ru
+kalmykia.ru
+kaluga.ru
+kamchatka.ru
+karelia.ru
+kazan.ru
+kchr.ru
+kemerovo.ru
+khabarovsk.ru
+khakassia.ru
+khv.ru
+kirov.ru
+koenig.ru
+komi.ru
+kostroma.ru
+krasnoyarsk.ru
+kuban.ru
+kurgan.ru
+kursk.ru
+lipetsk.ru
+magadan.ru
+mari.ru
+mari-el.ru
+marine.ru
+mordovia.ru
+mosreg.ru
+msk.ru
+murmansk.ru
+nalchik.ru
+nnov.ru
+nov.ru
+novosibirsk.ru
+nsk.ru
+omsk.ru
+orenburg.ru
+oryol.ru
+palana.ru
+penza.ru
+perm.ru
+pskov.ru
+ptz.ru
+rnd.ru
+ryazan.ru
+sakhalin.ru
+samara.ru
+saratov.ru
+simbirsk.ru
+smolensk.ru
+spb.ru
+stavropol.ru
+stv.ru
+surgut.ru
+tambov.ru
+tatarstan.ru
+tom.ru
+tomsk.ru
+tsaritsyn.ru
+tsk.ru
+tula.ru
+tuva.ru
+tver.ru
+tyumen.ru
+udm.ru
+udmurtia.ru
+ulan-ude.ru
+vladikavkaz.ru
+vladimir.ru
+vladivostok.ru
+volgograd.ru
+vologda.ru
+voronezh.ru
+vrn.ru
+vyatka.ru
+yakutia.ru
+yamal.ru
+yaroslavl.ru
+yekaterinburg.ru
+yuzhno-sakhalinsk.ru
+// More geographical domains
+amursk.ru
+baikal.ru
+cmw.ru
+fareast.ru
+jamal.ru
+kms.ru
+k-uralsk.ru
+kustanai.ru
+kuzbass.ru
+magnitka.ru
+mytis.ru
+nakhodka.ru
+nkz.ru
+norilsk.ru
+oskol.ru
+pyatigorsk.ru
+rubtsovsk.ru
+snz.ru
+syzran.ru
+vdonsk.ru
+zgrad.ru
+// State domains
+gov.ru
+mil.ru
+// Technical domains
+test.ru
+
+// rw : http://www.nic.rw/cgi-bin/policy.pl
+rw
+gov.rw
+net.rw
+edu.rw
+ac.rw
+com.rw
+co.rw
+int.rw
+mil.rw
+gouv.rw
+
+// sa : http://www.nic.net.sa/
+sa
+com.sa
+net.sa
+org.sa
+gov.sa
+med.sa
+pub.sa
+edu.sa
+sch.sa
+
+// sb : http://www.sbnic.net.sb/
+// Submitted by registry <lee.humphries@telekom.com.sb> 2008-06-08
+sb
+com.sb
+edu.sb
+gov.sb
+net.sb
+org.sb
+
+// sc : http://www.nic.sc/
+sc
+com.sc
+gov.sc
+net.sc
+org.sc
+edu.sc
+
+// sd : http://www.isoc.sd/sudanic.isoc.sd/billing_pricing.htm
+// Submitted by registry <admin@isoc.sd> 2008-06-17
+sd
+com.sd
+net.sd
+org.sd
+edu.sd
+med.sd
+gov.sd
+info.sd
+
+// se : http://en.wikipedia.org/wiki/.se
+// Submitted by registry <Patrik.Wallstrom@iis.se> 2008-06-24
+se
+a.se
+ac.se
+b.se
+bd.se
+brand.se
+c.se
+d.se
+e.se
+f.se
+fh.se
+fhsk.se
+fhv.se
+g.se
+h.se
+i.se
+k.se
+komforb.se
+kommunalforbund.se
+komvux.se
+l.se
+lanbib.se
+m.se
+n.se
+naturbruksgymn.se
+o.se
+org.se
+p.se
+parti.se
+pp.se
+press.se
+r.se
+s.se
+sshn.se
+t.se
+tm.se
+u.se
+w.se
+x.se
+y.se
+z.se
+
+// sg : http://www.nic.net.sg/sub_policies_agreement/2ld.html
+sg
+com.sg
+net.sg
+org.sg
+gov.sg
+edu.sg
+per.sg
+
+// sh : http://www.nic.sh/rules.html
+// list of 2nd level domains ?
+sh
+
+// si : http://en.wikipedia.org/wiki/.si
+si
+
+// sj : No registrations at this time.
+// Submitted by registry <jarle@uninett.no> 2008-06-16
+
+// sk : http://en.wikipedia.org/wiki/.sk
+// list of 2nd level domains ?
+sk
+
+// sl : http://www.nic.sl
+// Submitted by registry <adam@neoip.com> 2008-06-12
+sl
+com.sl
+net.sl
+edu.sl
+gov.sl
+org.sl
+
+// sm : http://en.wikipedia.org/wiki/.sm
+sm
+
+// sn : http://en.wikipedia.org/wiki/.sn
+sn
+art.sn
+com.sn
+edu.sn
+gouv.sn
+org.sn
+perso.sn
+univ.sn
+
+// so : http://www.soregistry.com/
+so
+com.so
+net.so
+org.so
+
+// sr : http://en.wikipedia.org/wiki/.sr
+sr
+
+// st : http://www.nic.st/html/policyrules/
+st
+co.st
+com.st
+consulado.st
+edu.st
+embaixada.st
+gov.st
+mil.st
+net.st
+org.st
+principe.st
+saotome.st
+store.st
+
+// su : http://en.wikipedia.org/wiki/.su
+su
+
+// sv : http://www.svnet.org.sv/svpolicy.html
+*.sv
+
+// sy : http://en.wikipedia.org/wiki/.sy
+// see also: http://www.gobin.info/domainname/sy.doc
+sy
+edu.sy
+gov.sy
+net.sy
+mil.sy
+com.sy
+org.sy
+
+// sz : http://en.wikipedia.org/wiki/.sz
+// http://www.sispa.org.sz/
+sz
+co.sz
+ac.sz
+org.sz
+
+// tc : http://en.wikipedia.org/wiki/.tc
+tc
+
+// td : http://en.wikipedia.org/wiki/.td
+td
+
+// tel: http://en.wikipedia.org/wiki/.tel
+// http://www.telnic.org/
+tel
+
+// tf : http://en.wikipedia.org/wiki/.tf
+tf
+
+// tg : http://en.wikipedia.org/wiki/.tg
+// http://www.nic.tg/nictg/index.php implies no reserved 2nd-level domains,
+// although this contradicts wikipedia.
+tg
+
+// th : http://en.wikipedia.org/wiki/.th
+// Submitted by registry <krit@thains.co.th> 2008-06-17
+th
+ac.th
+co.th
+go.th
+in.th
+mi.th
+net.th
+or.th
+
+// tj : http://www.nic.tj/policy.htm
+tj
+ac.tj
+biz.tj
+co.tj
+com.tj
+edu.tj
+go.tj
+gov.tj
+int.tj
+mil.tj
+name.tj
+net.tj
+nic.tj
+org.tj
+test.tj
+web.tj
+
+// tk : http://en.wikipedia.org/wiki/.tk
+tk
+
+// tl : http://en.wikipedia.org/wiki/.tl
+tl
+gov.tl
+
+// tm : http://www.nic.tm/rules.html
+// list of 2nd level tlds ?
+tm
+
+// tn : http://en.wikipedia.org/wiki/.tn
+// http://whois.ati.tn/
+tn
+com.tn
+ens.tn
+fin.tn
+gov.tn
+ind.tn
+intl.tn
+nat.tn
+net.tn
+org.tn
+info.tn
+perso.tn
+tourism.tn
+edunet.tn
+rnrt.tn
+rns.tn
+rnu.tn
+mincom.tn
+agrinet.tn
+defense.tn
+turen.tn
+
+// to : http://en.wikipedia.org/wiki/.to
+// Submitted by registry <egullich@colo.to> 2008-06-17
+to
+com.to
+gov.to
+net.to
+org.to
+edu.to
+mil.to
+
+// tr : http://en.wikipedia.org/wiki/.tr
+*.tr
+!nic.tr
+// Used by government in the TRNC
+// http://en.wikipedia.org/wiki/.nc.tr
+gov.nc.tr
+
+// travel : http://en.wikipedia.org/wiki/.travel
+travel
+
+// tt : http://www.nic.tt/
+tt
+co.tt
+com.tt
+org.tt
+net.tt
+biz.tt
+info.tt
+pro.tt
+int.tt
+coop.tt
+jobs.tt
+mobi.tt
+travel.tt
+museum.tt
+aero.tt
+name.tt
+gov.tt
+edu.tt
+
+// tv : http://en.wikipedia.org/wiki/.tv
+// Not listing any 2LDs as reserved since none seem to exist in practice,
+// Wikipedia notwithstanding.
+tv
+
+// tw : http://en.wikipedia.org/wiki/.tw
+tw
+edu.tw
+gov.tw
+mil.tw
+com.tw
+net.tw
+org.tw
+idv.tw
+game.tw
+ebiz.tw
+club.tw
+網路.tw
+組織.tw
+商業.tw
+
+// tz : http://en.wikipedia.org/wiki/.tz
+// Submitted by registry <randy@psg.com> 2008-06-17
+// Updated from http://www.tznic.or.tz/index.php/domains.html 2010-10-25
+ac.tz
+co.tz
+go.tz
+mil.tz
+ne.tz
+or.tz
+sc.tz
+
+// ua : http://www.nic.net.ua/
+ua
+com.ua
+edu.ua
+gov.ua
+in.ua
+net.ua
+org.ua
+// ua geo-names
+cherkassy.ua
+chernigov.ua
+chernovtsy.ua
+ck.ua
+cn.ua
+crimea.ua
+cv.ua
+dn.ua
+dnepropetrovsk.ua
+donetsk.ua
+dp.ua
+if.ua
+ivano-frankivsk.ua
+kh.ua
+kharkov.ua
+kherson.ua
+khmelnitskiy.ua
+kiev.ua
+kirovograd.ua
+km.ua
+kr.ua
+ks.ua
+kv.ua
+lg.ua
+lugansk.ua
+lutsk.ua
+lviv.ua
+mk.ua
+nikolaev.ua
+od.ua
+odessa.ua
+pl.ua
+poltava.ua
+rovno.ua
+rv.ua
+sebastopol.ua
+sumy.ua
+te.ua
+ternopil.ua
+uzhgorod.ua
+vinnica.ua
+vn.ua
+zaporizhzhe.ua
+zp.ua
+zhitomir.ua
+zt.ua
+
+// ug : http://www.registry.co.ug/
+ug
+co.ug
+ac.ug
+sc.ug
+go.ug
+ne.ug
+or.ug
+
+// uk : http://en.wikipedia.org/wiki/.uk
+*.uk
+*.sch.uk
+!bl.uk
+!british-library.uk
+!icnet.uk
+!jet.uk
+!mod.uk
+!nel.uk
+!nhs.uk
+!nic.uk
+!nls.uk
+!national-library-scotland.uk
+!parliament.uk
+!police.uk
+
+// us : http://en.wikipedia.org/wiki/.us
+us
+dni.us
+fed.us
+isa.us
+kids.us
+nsn.us
+// us geographic names
+ak.us
+al.us
+ar.us
+as.us
+az.us
+ca.us
+co.us
+ct.us
+dc.us
+de.us
+fl.us
+ga.us
+gu.us
+hi.us
+ia.us
+id.us
+il.us
+in.us
+ks.us
+ky.us
+la.us
+ma.us
+md.us
+me.us
+mi.us
+mn.us
+mo.us
+ms.us
+mt.us
+nc.us
+nd.us
+ne.us
+nh.us
+nj.us
+nm.us
+nv.us
+ny.us
+oh.us
+ok.us
+or.us
+pa.us
+pr.us
+ri.us
+sc.us
+sd.us
+tn.us
+tx.us
+ut.us
+vi.us
+vt.us
+va.us
+wa.us
+wi.us
+wv.us
+wy.us
+// The registrar notes several more specific domains available in each state,
+// such as state.*.us, dst.*.us, etc., but resolution of these is somewhat
+// haphazard; in some states these domains resolve as addresses, while in others
+// only subdomains are available, or even nothing at all. We include the
+// most common ones where it's clear that different sites are different
+// entities.
+k12.ak.us
+k12.al.us
+k12.ar.us
+k12.as.us
+k12.az.us
+k12.ca.us
+k12.co.us
+k12.ct.us
+k12.dc.us
+k12.de.us
+k12.fl.us
+k12.ga.us
+k12.gu.us
+// k12.hi.us Hawaii has a state-wide DOE login: bug 614565
+k12.ia.us
+k12.id.us
+k12.il.us
+k12.in.us
+k12.ks.us
+k12.ky.us
+k12.la.us
+k12.ma.us
+k12.md.us
+k12.me.us
+k12.mi.us
+k12.mn.us
+k12.mo.us
+k12.ms.us
+k12.mt.us
+k12.nc.us
+k12.nd.us
+k12.ne.us
+k12.nh.us
+k12.nj.us
+k12.nm.us
+k12.nv.us
+k12.ny.us
+k12.oh.us
+k12.ok.us
+k12.or.us
+k12.pa.us
+k12.pr.us
+k12.ri.us
+k12.sc.us
+k12.sd.us
+k12.tn.us
+k12.tx.us
+k12.ut.us
+k12.vi.us
+k12.vt.us
+k12.va.us
+k12.wa.us
+k12.wi.us
+k12.wv.us
+k12.wy.us
+
+cc.ak.us
+cc.al.us
+cc.ar.us
+cc.as.us
+cc.az.us
+cc.ca.us
+cc.co.us
+cc.ct.us
+cc.dc.us
+cc.de.us
+cc.fl.us
+cc.ga.us
+cc.gu.us
+cc.hi.us
+cc.ia.us
+cc.id.us
+cc.il.us
+cc.in.us
+cc.ks.us
+cc.ky.us
+cc.la.us
+cc.ma.us
+cc.md.us
+cc.me.us
+cc.mi.us
+cc.mn.us
+cc.mo.us
+cc.ms.us
+cc.mt.us
+cc.nc.us
+cc.nd.us
+cc.ne.us
+cc.nh.us
+cc.nj.us
+cc.nm.us
+cc.nv.us
+cc.ny.us
+cc.oh.us
+cc.ok.us
+cc.or.us
+cc.pa.us
+cc.pr.us
+cc.ri.us
+cc.sc.us
+cc.sd.us
+cc.tn.us
+cc.tx.us
+cc.ut.us
+cc.vi.us
+cc.vt.us
+cc.va.us
+cc.wa.us
+cc.wi.us
+cc.wv.us
+cc.wy.us
+
+lib.ak.us
+lib.al.us
+lib.ar.us
+lib.as.us
+lib.az.us
+lib.ca.us
+lib.co.us
+lib.ct.us
+lib.dc.us
+lib.de.us
+lib.fl.us
+lib.ga.us
+lib.gu.us
+lib.hi.us
+lib.ia.us
+lib.id.us
+lib.il.us
+lib.in.us
+lib.ks.us
+lib.ky.us
+lib.la.us
+lib.ma.us
+lib.md.us
+lib.me.us
+lib.mi.us
+lib.mn.us
+lib.mo.us
+lib.ms.us
+lib.mt.us
+lib.nc.us
+lib.nd.us
+lib.ne.us
+lib.nh.us
+lib.nj.us
+lib.nm.us
+lib.nv.us
+lib.ny.us
+lib.oh.us
+lib.ok.us
+lib.or.us
+lib.pa.us
+lib.pr.us
+lib.ri.us
+lib.sc.us
+lib.sd.us
+lib.tn.us
+lib.tx.us
+lib.ut.us
+lib.vi.us
+lib.vt.us
+lib.va.us
+lib.wa.us
+lib.wi.us
+lib.wv.us
+lib.wy.us
+
+// k12.ma.us contains school districts in Massachusetts. The 4LDs are
+// managed indepedently except for private (PVT), charter (CHTR) and
+// parochial (PAROCH) schools. Those are delegated dorectly to the
+// 5LD operators. <k12-ma-hostmaster _ at _ rsuc.gweep.net>
+pvt.k12.ma.us
+chtr.k12.ma.us
+paroch.k12.ma.us
+
+// uy : http://www.antel.com.uy/
+*.uy
+
+// uz : http://www.reg.uz/registerr.html
+// are there other 2nd level tlds ?
+uz
+com.uz
+co.uz
+
+// va : http://en.wikipedia.org/wiki/.va
+va
+
+// vc : http://en.wikipedia.org/wiki/.vc
+// Submitted by registry <kshah@ca.afilias.info> 2008-06-13
+vc
+com.vc
+net.vc
+org.vc
+gov.vc
+mil.vc
+edu.vc
+
+// ve : http://registro.nic.ve/nicve/registro/index.html
+*.ve
+
+// vg : http://en.wikipedia.org/wiki/.vg
+vg
+
+// vi : http://www.nic.vi/newdomainform.htm
+// http://www.nic.vi/Domain_Rules/body_domain_rules.html indicates some other
+// TLDs are "reserved", such as edu.vi and gov.vi, but doesn't actually say they
+// are available for registration (which they do not seem to be).
+vi
+co.vi
+com.vi
+k12.vi
+net.vi
+org.vi
+
+// vn : https://www.dot.vn/vnnic/vnnic/domainregistration.jsp
+vn
+com.vn
+net.vn
+org.vn
+edu.vn
+gov.vn
+int.vn
+ac.vn
+biz.vn
+info.vn
+name.vn
+pro.vn
+health.vn
+
+// vu : http://en.wikipedia.org/wiki/.vu
+// list of 2nd level tlds ?
+vu
+
+// ws : http://en.wikipedia.org/wiki/.ws
+// http://samoanic.ws/index.dhtml
+ws
+com.ws
+net.ws
+org.ws
+gov.ws
+edu.ws
+
+// IDN ccTLDs
+// Please sort by ISO 3166 ccTLD, then punicode string
+// when submitting patches and follow this format:
+// <Punicode> ("<english word>" <language>) : <ISO 3166 ccTLD>
+// [optional sponsoring org]
+// <URL>
+
+// xn--mgbaam7a8h ("Emerat" Arabic) : AE
+//http://nic.ae/english/arabicdomain/rules.jsp
+امارات
+
+// xn--54b7fta0cc ("Bangla" Bangla) : BD
+বাংলা
+
+// xn--fiqs8s ("China" Chinese-Han-Simplified <.Zhonggou>) : CN
+// CNNIC
+// http://cnnic.cn/html/Dir/2005/10/11/3218.htm
+中国
+
+// xn--fiqz9s ("China" Chinese-Han-Traditional <.Zhonggou>) : CN
+// CNNIC
+// http://cnnic.cn/html/Dir/2005/10/11/3218.htm
+中國
+
+// xn--lgbbat1ad8j ("Algeria / Al Jazair" Arabic) : DZ
+الجزائر
+
+// xn--wgbh1c ("Egypt" Arabic .masr) : EG
+// http://www.dotmasr.eg/
+مصر
+
+// xn--node ("ge" Georgian (Mkhedruli)) : GE
+გე
+
+// xn--j6w193g ("Hong Kong" Chinese-Han) : HK
+// https://www2.hkirc.hk/register/rules.jsp
+香港
+
+// xn--h2brj9c ("Bharat" Devanagari) : IN
+// India
+भारत
+
+// xn--mgbbh1a71e ("Bharat" Arabic) : IN
+// India
+بھارت
+
+// xn--fpcrj9c3d ("Bharat" Telugu) : IN
+// India
+భారత్
+
+// xn--gecrj9c ("Bharat" Gujarati) : IN
+// India
+ભારત
+
+// xn--s9brj9c ("Bharat" Gurmukhi) : IN
+// India
+ਭਾਰਤ
+
+// xn--45brj9c ("Bharat" Bengali) : IN
+// India
+ভারত
+
+// xn--xkc2dl3a5ee0h ("India" Tamil) : IN
+// India
+இந்தியா
+
+// xn--mgba3a4f16a ("Iran" Persian) : IR
+ایران
+
+// xn--mgba3a4fra ("Iran" Arabic) : IR
+ايران
+
+//xn--mgbayh7gpa ("al-Ordon" Arabic) JO
+//National Information Technology Center (NITC)
+//Royal Scientific Society, Al-Jubeiha
+الاردن
+
+// xn--3e0b707e ("Republic of Korea" Hangul) : KR
+한국
+
+// xn--fzc2c9e2c ("Lanka" Sinhalese-Sinhala) : LK
+// http://nic.lk
+ලංකා
+
+// xn--xkc2al3hye2a ("Ilangai" Tamil) : LK
+// http://nic.lk
+இலங்கை
+
+// xn--mgbc0a9azcg ("Morocco / al-Maghrib" Arabic) : MA
+المغرب
+
+// xn--mgb9awbf ("Oman" Arabic) : OM
+عمان
+
+// xn--ygbi2ammx ("Falasteen" Arabic) : PS
+// The Palestinian National Internet Naming Authority (PNINA)
+// http://www.pnina.ps
+فلسطين
+
+// xn--90a3ac ("srb" Cyrillic) : RS
+срб
+
+// xn--p1ai ("rf" Russian-Cyrillic) : RU
+// http://www.cctld.ru/en/docs/rulesrf.php
+рф
+
+// xn--wgbl6a ("Qatar" Arabic) : QA
+// http://www.ict.gov.qa/
+قطر
+
+// xn--mgberp4a5d4ar ("AlSaudiah" Arabic) : SA
+// http://www.nic.net.sa/
+السعودية
+
+// xn--mgberp4a5d4a87g ("AlSaudiah" Arabic) variant : SA
+السعودیة
+
+// xn--mgbqly7c0a67fbc ("AlSaudiah" Arabic) variant : SA
+السعودیۃ
+
+// xn--mgbqly7cvafr ("AlSaudiah" Arabic) variant : SA
+السعوديه
+
+// xn--ogbpf8fl ("Syria" Arabic) : SY
+سورية
+
+// xn--mgbtf8fl ("Syria" Arabic) variant : SY
+سوريا
+
+// xn--yfro4i67o Singapore ("Singapore" Chinese-Han) : SG
+新加坡
+
+// xn--clchc0ea0b2g2a9gcd ("Singapore" Tamil) : SG
+சிங்கப்பூர்
+
+// xn--o3cw4h ("Thai" Thai) : TH
+// http://www.thnic.co.th
+ไทย
+
+// xn--pgbs0dh ("Tunis") : TN
+// http://nic.tn
+تونس
+
+// xn--kpry57d ("Taiwan" Chinese-Han-Traditional) : TW
+// http://www.twnic.net/english/dn/dn_07a.htm
+台灣
+
+// xn--kprw13d ("Taiwan" Chinese-Han-Simplified) : TW
+// http://www.twnic.net/english/dn/dn_07a.htm
+台湾
+
+// xn--nnx388a ("Taiwan") variant : TW
+臺灣
+
+// xn--j1amh ("ukr" Cyrillic) : UA
+укр
+
+// xn--mgb2ddes ("AlYemen" Arabic) : YE
+اليمن
+
+// xxx : http://icmregistry.com
+xxx
+
+// ye : http://www.y.net.ye/services/domain_name.htm
+*.ye
+
+// yu : http://www.nic.yu/pravilnik-e.html
+*.yu
+
+// za : http://www.zadna.org.za/slds.html
+*.za
+
+// zm : http://en.wikipedia.org/wiki/.zm
+*.zm
+
+// zw : http://en.wikipedia.org/wiki/.zw
+*.zw
+
+// DynDNS.com Dynamic DNS zones : http://www.dyndns.com/services/dns/dyndns/
+dyndns-at-home.com
+dyndns-at-work.com
+dyndns-blog.com
+dyndns-free.com
+dyndns-home.com
+dyndns-ip.com
+dyndns-mail.com
+dyndns-office.com
+dyndns-pics.com
+dyndns-remote.com
+dyndns-server.com
+dyndns-web.com
+dyndns-wiki.com
+dyndns-work.com
+dyndns.biz
+dyndns.info
+dyndns.org
+dyndns.tv
+at-band-camp.net
+ath.cx
+barrel-of-knowledge.info
+barrell-of-knowledge.info
+better-than.tv
+blogdns.com
+blogdns.net
+blogdns.org
+blogsite.org
+boldlygoingnowhere.org
+broke-it.net
+buyshouses.net
+cechire.com
+dnsalias.com
+dnsalias.net
+dnsalias.org
+dnsdojo.com
+dnsdojo.net
+dnsdojo.org
+does-it.net
+doesntexist.com
+doesntexist.org
+dontexist.com
+dontexist.net
+dontexist.org
+doomdns.com
+doomdns.org
+dvrdns.org
+dyn-o-saur.com
+dynalias.com
+dynalias.net
+dynalias.org
+dynathome.net
+dyndns.ws
+endofinternet.net
+endofinternet.org
+endoftheinternet.org
+est-a-la-maison.com
+est-a-la-masion.com
+est-le-patron.com
+est-mon-blogueur.com
+for-better.biz
+for-more.biz
+for-our.info
+for-some.biz
+for-the.biz
+forgot.her.name
+forgot.his.name
+from-ak.com
+from-al.com
+from-ar.com
+from-az.net
+from-ca.com
+from-co.net
+from-ct.com
+from-dc.com
+from-de.com
+from-fl.com
+from-ga.com
+from-hi.com
+from-ia.com
+from-id.com
+from-il.com
+from-in.com
+from-ks.com
+from-ky.com
+from-la.net
+from-ma.com
+from-md.com
+from-me.org
+from-mi.com
+from-mn.com
+from-mo.com
+from-ms.com
+from-mt.com
+from-nc.com
+from-nd.com
+from-ne.com
+from-nh.com
+from-nj.com
+from-nm.com
+from-nv.com
+from-ny.net
+from-oh.com
+from-ok.com
+from-or.com
+from-pa.com
+from-pr.com
+from-ri.com
+from-sc.com
+from-sd.com
+from-tn.com
+from-tx.com
+from-ut.com
+from-va.com
+from-vt.com
+from-wa.com
+from-wi.com
+from-wv.com
+from-wy.com
+ftpaccess.cc
+fuettertdasnetz.de
+game-host.org
+game-server.cc
+getmyip.com
+gets-it.net
+go.dyndns.org
+gotdns.com
+gotdns.org
+groks-the.info
+groks-this.info
+ham-radio-op.net
+here-for-more.info
+hobby-site.com
+hobby-site.org
+home.dyndns.org
+homedns.org
+homeftp.net
+homeftp.org
+homeip.net
+homelinux.com
+homelinux.net
+homelinux.org
+homeunix.com
+homeunix.net
+homeunix.org
+iamallama.com
+in-the-band.net
+is-a-anarchist.com
+is-a-blogger.com
+is-a-bookkeeper.com
+is-a-bruinsfan.org
+is-a-bulls-fan.com
+is-a-candidate.org
+is-a-caterer.com
+is-a-celticsfan.org
+is-a-chef.com
+is-a-chef.net
+is-a-chef.org
+is-a-conservative.com
+is-a-cpa.com
+is-a-cubicle-slave.com
+is-a-democrat.com
+is-a-designer.com
+is-a-doctor.com
+is-a-financialadvisor.com
+is-a-geek.com
+is-a-geek.net
+is-a-geek.org
+is-a-green.com
+is-a-guru.com
+is-a-hard-worker.com
+is-a-hunter.com
+is-a-knight.org
+is-a-landscaper.com
+is-a-lawyer.com
+is-a-liberal.com
+is-a-libertarian.com
+is-a-linux-user.org
+is-a-llama.com
+is-a-musician.com
+is-a-nascarfan.com
+is-a-nurse.com
+is-a-painter.com
+is-a-patsfan.org
+is-a-personaltrainer.com
+is-a-photographer.com
+is-a-player.com
+is-a-republican.com
+is-a-rockstar.com
+is-a-socialist.com
+is-a-soxfan.org
+is-a-student.com
+is-a-teacher.com
+is-a-techie.com
+is-a-therapist.com
+is-an-accountant.com
+is-an-actor.com
+is-an-actress.com
+is-an-anarchist.com
+is-an-artist.com
+is-an-engineer.com
+is-an-entertainer.com
+is-by.us
+is-certified.com
+is-found.org
+is-gone.com
+is-into-anime.com
+is-into-cars.com
+is-into-cartoons.com
+is-into-games.com
+is-leet.com
+is-lost.org
+is-not-certified.com
+is-saved.org
+is-slick.com
+is-uberleet.com
+is-very-bad.org
+is-very-evil.org
+is-very-good.org
+is-very-nice.org
+is-very-sweet.org
+is-with-theband.com
+isa-geek.com
+isa-geek.net
+isa-geek.org
+isa-hockeynut.com
+issmarterthanyou.com
+isteingeek.de
+istmein.de
+kicks-ass.net
+kicks-ass.org
+knowsitall.info
+land-4-sale.us
+lebtimnetz.de
+leitungsen.de
+likes-pie.com
+likescandy.com
+merseine.nu
+mine.nu
+misconfused.org
+mypets.ws
+myphotos.cc
+neat-url.com
+office-on-the.net
+on-the-web.tv
+podzone.net
+podzone.org
+readmyblog.org
+saves-the-whales.com
+scrapper-site.net
+scrapping.cc
+selfip.biz
+selfip.com
+selfip.info
+selfip.net
+selfip.org
+sells-for-less.com
+sells-for-u.com
+sells-it.net
+sellsyourhome.org
+servebbs.com
+servebbs.net
+servebbs.org
+serveftp.net
+serveftp.org
+servegame.org
+shacknet.nu
+simple-url.com
+space-to-rent.com
+stuff-4-sale.org
+stuff-4-sale.us
+teaches-yoga.com
+thruhere.net
+traeumtgerade.de
+webhop.biz
+webhop.info
+webhop.net
+webhop.org
+worse-than.tv
+writesthisblog.com
% Reference Card for Org Mode
-\def\orgversionnumber{7.8.02}
-\def\versionyear{2011} % latest update
+\def\orgversionnumber{7.8.09}
+\def\versionyear{2012} % latest update
\def\year{2012} % latest copyright year
%**start of header
Emacs network features
* EUDC: (eudc). Emacs client for directory servers (LDAP, PH).
* Gnus: (gnus). The newsreader Gnus.
+* GnuTLS: (emacs-gnutls). The Emacs GnuTLS integration.
* Mairix: (mairix-el). Emacs interface to the Mairix mail indexer.
* MH-E: (mh-e). Emacs interface to the MH mail system.
* Message: (message). Mail and news composition mode that
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (EMACS): Rename from BUILT_EMACS.
+ (RUN_EMACS, compile-main): Update for this change.
+
+ * Makefile.in (../src/emacs): Remove this rule, no longer relevant
+ since leim distributed with Emacs (eg lisp/ has no such rule).
+ (all): Remove $BUILT_EMACS dependence.
+
+2012-04-09 Eli Zaretskii <eliz@gnu.org>
+
+ * quail/latin-ltx.el (latin-ltx--define-rules): Comment out
+ debugging messages.
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Compute list of .el files to be compiled dynamically,
+ as the lisp/ directory does, rather than hard-coding it.
+ Also, separate leim-list generation from byte-compilation.
+ (TIT_GB, TIT_BIG5, CHINESE_TIT, MISC, TIT_MISC):
+ Make them store the .el files rather than the .elc files.
+ (NON_TIT_GB, NON_TIT_BIG5, CHINESE_NON_TIT, CHINESE_GB)
+ (CHINESE_GB, CHINESE_BIG5, JAPANESE, KOREAN, THAI, VIETNAMESE)
+ (LAO, INDIAN, TIBETAN, LATIN, UNICODE, SLAVIC, GREEK, RUSSIAN)
+ (OTHERS, CHINESE, EASTASIA, ASIA, EUROPEAN, WORLD, NON_TIT_MISC):
+ Remove variables listing the non-generated .el files.
+ (.el.elc): Add explicit load-path for quail.
+ (all): Depend on compile-main rule rather than $WORLD.
+ (changed.tit, changed.misc): Also depend on $SUBDIRS.
+ (leim-list.el): Don't depend on changed.tit or changed.misc.
+ Remove unnecessary compilation check.
+ (setwins, compile-targets, compile-main): New.
+ (clean, mostlyclean): Update for change in TIT_MISC contents.
+ (bootstrap-clean): Use a glob match to delete .elc, not a fixed list.
+
+2012-04-09 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * quail/latin-ltx.el: Auto-generate some of the entries.
+ (latin-ltx--ascii-p): New function.
+ (latin-ltx--define-rules): New macro.
+ (define-rules): Use it.
+
+2012-03-25 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (install): Use $(DIRNAME)_same-dir.tst instead
+ of same-dir.tst, to avoid stepping on other (parallel) Make job's
+ toes.
+
2012-03-21 Kenichi Handa <handa@m17n.org>
* quail/indian.el ("devanagari-itrans"): Add a few more useful
# Makefile for leim subdirectory in GNU Emacs.
-# Copyright (C) 1997-2012 Free Software Foundation, Inc.
+# Copyright (C) 1997-2012 Free Software Foundation, Inc.
# Copyright (C) 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
# 2006, 2007, 2008, 2009, 2010, 2011
# National Institute of Advanced Industrial Science and Technology (AIST)
# Which Emacs to use to convert TIT files to Emacs Lisp files,
# byte-compile Emacs Lisp files, and generate the file leim-list.el.
-BUILT_EMACS = ../src/emacs
+EMACS = ../src/emacs
buildlisppath=${srcdir}/../lisp
# How to run Emacs.
RUN_EMACS = EMACSLOADPATH=$(buildlisppath) LC_ALL=C \
- ${BUILT_EMACS} -batch --no-site-file --no-site-lisp
+ ${EMACS} -batch --no-site-file --no-site-lisp
# Subdirectories to be made if ${srcdir} is different from the current
# directory.
# Files generated from TIT dictionaries for Chinese GB character set.
TIT_GB=\
- quail/CCDOSPY.elc \
- quail/Punct.elc \
- quail/QJ.elc \
- quail/SW.elc \
- quail/TONEPY.elc
+ quail/CCDOSPY.el \
+ quail/Punct.el \
+ quail/QJ.el \
+ quail/SW.el \
+ quail/TONEPY.el
# Files generated from TIT dictionaries for Chinese BIG5 character set.
TIT_BIG5=\
- quail/4Corner.elc \
- quail/ARRAY30.elc \
- quail/ECDICT.elc \
- quail/ETZY.elc \
- quail/Punct-b5.elc \
- quail/PY-b5.elc \
- quail/QJ-b5.elc \
- quail/ZOZY.elc
+ quail/4Corner.el \
+ quail/ARRAY30.el \
+ quail/ECDICT.el \
+ quail/ETZY.el \
+ quail/Punct-b5.el \
+ quail/PY-b5.el \
+ quail/QJ-b5.el \
+ quail/ZOZY.el
CHINESE_TIT=${TIT_GB} ${TIT_BIG5}
-NON_TIT_GB=${srcdir}/quail/py-punct.elc
-
-NON_TIT_BIG5=${srcdir}/quail/pypunct-b5.elc
-
-CHINESE_NON_TIT=${NON_TIT_GB} ${NON_TIT_BIG5}
-
-CHINESE_GB=${TIT_GB} ${NON_TIT_GB}
-
-CHINESE_BIG5=${TIT_BIG5} ${NON_TIT_BIG5}
-
-JAPANESE=${srcdir}/quail/japanese.elc ${srcdir}/ja-dic/ja-dic.elc
-
-KOREAN= ${srcdir}/quail/hangul.elc \
- ${srcdir}/quail/hanja.elc \
- ${srcdir}/quail/hanja3.elc \
- ${srcdir}/quail/hanja-jis.elc \
- ${srcdir}/quail/symbol-ksc.elc
-
-THAI=${srcdir}/quail/thai.elc
-
-VIETNAMESE=${srcdir}/quail/viqr.elc ${srcdir}/quail/vntelex.elc
-
-LAO=${srcdir}/quail/lao.elc ${srcdir}/quail/lrt.elc
-
-INDIAN=${srcdir}/quail/indian.elc
-
-TIBETAN=${srcdir}/quail/tibetan.elc
-
-LATIN= ${srcdir}/quail/latin-pre.elc \
- ${srcdir}/quail/latin-post.elc \
- ${srcdir}/quail/latin-alt.elc \
- ${srcdir}/quail/latin-ltx.elc \
- ${srcdir}/quail/welsh.elc
-
-UNICODE=${srcdir}/quail/sgml-input.elc ${srcdir}/quail/rfc1345.elc \
- ${srcdir}/quail/uni-input.elc
-
-SLAVIC= \
- ${srcdir}/quail/czech.elc \
- ${srcdir}/quail/croatian.elc \
- ${srcdir}/quail/slovak.elc
-
-GREEK=${srcdir}/quail/greek.elc
-
-RUSSIAN=${srcdir}/quail/cyrillic.elc ${srcdir}/quail/cyril-jis.elc
-
-OTHERS= \
- ${srcdir}/quail/arabic.elc \
- ${srcdir}/quail/ethiopic.elc \
- ${srcdir}/quail/ipa.elc \
- ${srcdir}/quail/ipa-praat.elc \
- ${srcdir}/quail/hebrew.elc \
- ${srcdir}/quail/georgian.elc \
- $(srcdir)/quail/persian.elc \
- ${srcdir}/quail/sisheng.elc
-
MISC= \
- quail/tsang-b5.elc \
- quail/quick-b5.elc \
- quail/tsang-cns.elc \
- quail/quick-cns.elc \
- quail/PY.elc \
- quail/ZIRANMA.elc \
- quail/CTLau.elc \
- quail/CTLau-b5.elc
-
-CHINESE=${CHINESE_GB} ${CHINESE_BIG5}
-EASTASIA=${CHINESE} ${JAPANESE} ${KOREAN}
-ASIA=${EASTASIA} ${THAI} ${VIETNAMESE} ${LAO} ${INDIAN} ${TIBETAN}
-EUROPEAN=${LATIN} ${SLAVIC} ${GREEK} ${RUSSIAN}
-WORLD=${ASIA} ${EUROPEAN} ${OTHERS} ${MISC} ${UNICODE}
-
+ quail/tsang-b5.el \
+ quail/quick-b5.el \
+ quail/tsang-cns.el \
+ quail/quick-cns.el \
+ quail/PY.el \
+ quail/ZIRANMA.el \
+ quail/CTLau.el \
+ quail/CTLau-b5.el
+
+## The generated .el files.
TIT_MISC=${CHINESE_TIT} ${MISC}
-NON_TIT_MISC=${CHINESE_NON_TIT} ${JAPANESE} ${KOREAN} ${EUROPEAN} ${OTHERS}
.SUFFIXES: .elc .el
.el.elc:
@echo Compiling $<
- @${RUN_EMACS} -f batch-byte-compile $<
+ @${RUN_EMACS} -l ${buildlisppath}/international/quail -f batch-byte-compile $<
-all: ${BUILT_EMACS} ${SUBDIRS} leim-list.el ${WORLD}
-
-# To ensure that we can run Emacs. This target is ignored (never
-# being hit) if a user changes default value of EMACS.
-../src/emacs:
- cd ../src; ${MAKE} ${MFLAGS} emacs
+all: ${SUBDIRS} leim-list.el compile-main
${SUBDIRS}:
mkdir $@
${srcdir}/CXTERM-DIC/TONEPY.tit \
${srcdir}/CXTERM-DIC/ZOZY.tit
-${CHINESE_TIT:.elc=.el}: changed.tit
+${CHINESE_TIT}: changed.tit
@true
-changed.tit: ${TIT_SOURCES}
+## FIXME remove subdirs if poss - time-stamping.
+## Emacs should make the directory if it does not exist.
+changed.tit: ${SUBDIRS} ${TIT_SOURCES}
${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \
-f batch-titdic-convert -dir quail ${srcdir}/CXTERM-DIC; \
echo "changed" > $@
${srcdir}/MISC-DIC/pinyin.map \
${srcdir}/MISC-DIC/ziranma.cin
-${MISC:.elc=.el}: changed.misc
+${MISC}: changed.misc
@true
-changed.misc: ${MISC_SOURCES}
+changed.misc: ${SUBDIRS} ${MISC_SOURCES}
${RUN_EMACS} -l ${buildlisppath}/international/titdic-cnv \
-f batch-miscdic-convert -dir quail ${srcdir}/MISC-DIC; \
echo "changed" > $@
-leim-list.el: ${SUBDIRS} ${TIT_MISC} changed.tit changed.misc ${srcdir}/leim-ext.el
+leim-list.el: ${SUBDIRS} ${TIT_MISC} ${srcdir}/leim-ext.el
rm -f leim-list.el
- ${RUN_EMACS} -l ${buildlisppath}/international/quail \
- -f batch-byte-compile-if-not-done ${TIT_MISC:.elc=.el}
if [ x`(cd ${srcdir} && /bin/pwd)` = x`(/bin/pwd)` ] ; then \
${RUN_EMACS} -l ${buildlisppath}/international/quail \
--eval "(update-leim-list-file \".\")" ; \
fi
sed -n '/^[^;]/ p' < ${srcdir}/leim-ext.el >> $@
+## Following adapted from lisp/Makefile.in.
+setwins=wins="${srcdir}/ja-dic quail"; \
+ [ `cd ${srcdir} && /bin/pwd` != `/bin/pwd` ] && \
+ wins="$$wins ${srcdir}/quail"
+
+.PHONY: compile-targets
+# TARGETS is set dynamically in the recursive call from `compile-main'.
+compile-targets: $(TARGETS)
+
+# Compile all the Elisp files that need it. Beware: it approximates
+# `no-byte-compile', so watch out for false-positives!
+compile-main: ${TIT_MISC}
+ @($(setwins); \
+ els=`echo "$$wins " | sed -e 's| |/*.el |g'`; \
+ for el in $$els; do \
+ test -f $$el || continue; \
+ test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \
+ echo "$${el}c"; \
+ done | xargs echo) | \
+ while read chunk; do \
+ $(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
+ done
+
MV_DIRS = for i in $$dir; do rm -fr `basename "$$i"` ; mv "$$i" . ; done
install: all
else true ; fi
clean mostlyclean:
- rm -f ${TIT_MISC} ${TIT_MISC:.elc=.el} \
+ rm -f ${TIT_MISC} ${TIT_MISC:.el=.elc} \
leim-list.el changed.tit changed.misc
# The following target is needed because the `clean' target only removes
# TIT-generated files and doesn't touch compiled Quail packages. But
# bootstrapping should not leave non-fresh .elc files behind.
bootstrap-clean: clean
- rm -f ${WORLD}
-## FIXME some compiled files go to srcdir, some don't?
-# cd ${srcdir}; rm -f *.elc */*.elc
+ $(setwins); for w in $$wins; do rm -f $$w/*.elc; done
distclean: clean
if test -f stamp-subdir; then rm -rf ${SUBDIRS} stamp-subdir; fi
install: all
- mkdir "$(INSTALLDIR)"
- - $(DEL) same-dir.tst
- - $(DEL) $(INSTALL_DIR)/same-dir.tst
- echo SameDirTest > $(INSTALL_DIR)/same-dir.tst
+ - $(DEL) $(DIRNAME)_same-dir.tst
+ - $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
+ echo SameDirTest > $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
$(IFNOTSAMEDIR) $(CP) leim-list.el $(INSTALLDIR) $(ENDIF)
$(IFNOTSAMEDIR) $(CP_DIR) quail $(INSTALLDIR) $(ENDIF)
$(IFNOTSAMEDIR) $(CP_DIR) ja-dic $(INSTALLDIR) $(ENDIF)
- - $(DEL) $(INSTALL_DIR)/same-dir.tst
+ - $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
clean mostlyclean:
- $(FOREACH) $(TIT) $(FORDO) $(DEL) $(FORVAR) $(ENDFOR)
'(("\t" . quail-completion))
t t nil nil nil nil nil nil nil t)
-(quail-define-rules
+(eval-when-compile
+ (defun latin-ltx--ascii-p (char)
+ (and (characterp char) (< char 128)))
+
+ (defmacro latin-ltx--define-rules (&rest rules)
+ (load "uni-name")
+ (let ((newrules ()))
+ (dolist (rule rules)
+ (pcase rule
+ (`(,_ ,(pred characterp)) (push rule newrules)) ;; Normal quail rule.
+ (`(,seq ,re)
+ (let ((count 0))
+ (dolist (pair (ucs-names))
+ (let ((name (car pair))
+ (char (cdr pair)))
+ (when (and (characterp char) ;; Ignore char-ranges.
+ (string-match re name))
+ (let ((keys (if (stringp seq)
+ (replace-match seq nil nil name)
+ (funcall seq name char))))
+ (if (listp keys)
+ (dolist (x keys)
+ (setq count (1+ count))
+ (push (list x char) newrules))
+ (setq count (1+ count))
+ (push (list keys char) newrules))))))
+ ;(message "latin-ltx: %d mapping for %S" count re)
+ ))))
+ `(quail-define-rules ,@(nreverse (delete-dups newrules))))))
+
+(latin-ltx--define-rules
("!`" ?¡)
("\\pounds" ?£) ;; ("{\\pounds}" ?£)
("\\S" ?§) ;; ("{\\S}" ?§)
- ("\\\"{}" ?¨)
- ("\\copyright" ?©) ;; ("{\\copyright}" ?©)
("$^a$" ?ª)
- ("\\={}" ?¯)
("$\\pm$" ?±) ("\\pm" ?±)
("$^2$" ?²)
("$^3$" ?³)
- ("\\'{}" ?´)
("\\P" ?¶) ;; ("{\\P}" ?¶)
;; Fixme: Yudit has the equivalent of ("\\cdot" ?⋅), for U+22C5, DOT
;; OPERATOR, whereas · is MIDDLE DOT. JadeTeX translates both to
;; \cdot.
("$\\cdot$" ?·) ("\\cdot" ?·)
- ("\\c{}" ?¸)
("$^1$" ?¹)
("$^o$" ?º)
("?`" ?¿)
- ("\\`{A}" ?À) ("\\`A" ?À)
- ("\\'{A}" ?Á) ("\\'A" ?Á)
- ("\\^{A}" ?Â) ("\\^A" ?Â)
- ("\\~{A}" ?Ã) ("\\~A" ?Ã)
- ("\\\"{A}" ?Ä) ("\\\"A" ?Ä)
- ("\\\k{A}" ?Ą)
+ ("\\`" ?̀)
+ ("\\`{}" ?`)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\`{%s}" c) (format "\\`%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH GRAVE")
+
+ ("\\'" ?́)
+ ("\\'{}" ?´)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\'{%s}" c) (format "\\'%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH ACUTE")
+
+ ("\\^" ?̂)
+ ("\\^{}" ?^)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\^{%s}" c) (format "\\^%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CIRCUMFLEX")
+
+ ("\\~" ?̃)
+ ("\\~{}" ?˜)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\~{%s}" c) (format "\\~%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH TILDE")
+
+ ("\\\"" ?̈)
+ ("\\\"{}" ?¨)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\\"{%s}" c) (format "\\\"%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DIAERESIS")
+
+ ("\\k" ?̨)
+ ("\\k{}" ?˛)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\k{%s}" c) ;; (format "\\k%s" c)
+ )))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH OGONEK")
+
+ ("\\c" ?̧)
+ ("\\c{}" ?¸)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\c{%s}" c) (format "\\c%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CEDILLA")
+
("\\AA" ?Å) ;; ("{\\AA}" ?Å)
("\\AE" ?Æ) ;; ("{\\AE}" ?Æ)
- ("\\c{C}" ?Ç) ("\\cC" ?Ç)
- ("\\`{E}" ?È) ("\\`E" ?È)
- ("\\'{E}" ?É) ("\\'E" ?É)
- ("\\^{E}" ?Ê) ("\\^E" ?Ê)
- ("\\\"{E}" ?Ë) ("\\\"E" ?Ë)
- ("\\\k{E}" ?Ę)
- ("\\`{I}" ?Ì) ("\\`I" ?Ì)
- ("\\'{I}" ?Í) ("\\'I" ?Í)
- ("\\^{I}" ?Î) ("\\^I" ?Î)
- ("\\\"{I}" ?Ï) ("\\\"I" ?Ï)
- ("\\\k{I}" ?Į)
- ("\\~{N}" ?Ñ) ("\\~N" ?Ñ)
- ("\\`{O}" ?Ò) ("\\`O" ?Ò)
- ("\\'{O}" ?Ó) ("\\'O" ?Ó)
- ("\\^{O}" ?Ô) ("\\^O" ?Ô)
- ("\\~{O}" ?Õ) ("\\~O" ?Õ)
- ("\\\"{O}" ?Ö) ("\\\"O" ?Ö)
- ("\\\k{O}" ?Ǫ)
("$\\times$" ?×) ("\\times" ?×)
("\\O" ?Ø) ;; ("{\\O}" ?Ø)
- ("\\`{U}" ?Ù) ("\\`U" ?Ù)
- ("\\'{U}" ?Ú) ("\\'U" ?Ú)
- ("\\^{U}" ?Û) ("\\^U" ?Û)
- ("\\\"{U}" ?Ü) ("\\\"U" ?Ü)
- ("\\\k{U}" ?Ų)
- ("\\'{Y}" ?Ý) ("\\'Y" ?Ý)
("\\ss" ?ß) ;; ("{\\ss}" ?ß)
- ("\\`{a}" ?à) ("\\`a" ?à)
- ("\\'{a}" ?á) ("\\'a" ?á)
- ("\\^{a}" ?â) ("\\^a" ?â)
- ("\\~{a}" ?ã) ("\\~a" ?ã)
- ("\\\"{a}" ?ä) ("\\\"a" ?ä)
- ("\\\k{a}" ?ą)
("\\aa" ?å) ;; ("{\\aa}" ?å)
("\\ae" ?æ) ;; ("{\\ae}" ?æ)
- ("\\c{c}" ?ç) ("\\cc" ?ç)
- ("\\`{e}" ?è) ("\\`e" ?è)
- ("\\'{e}" ?é) ("\\'e" ?é)
- ("\\^{e}" ?ê) ("\\^e" ?ê)
- ("\\\"{e}" ?ë) ("\\\"e" ?ë)
- ("\\\k{e}" ?ę)
- ("\\`{\\i}" ?ì) ("\\`i" ?ì)
- ("\\'{\\i}" ?í) ("\\'i" ?í)
- ("\\^{\\i}" ?î) ("\\^i" ?î)
- ("\\\"{\\i}" ?ï) ("\\\"i" ?ï)
- ("\\\k{i}" ?į)
- ("\\~{n}" ?ñ) ("\\~n" ?ñ)
- ("\\`{o}" ?ò) ("\\`o" ?ò)
- ("\\'{o}" ?ó) ("\\'o" ?ó)
- ("\\^{o}" ?ô) ("\\^o" ?ô)
- ("\\~{o}" ?õ) ("\\~o" ?õ)
- ("\\\"{o}" ?ö) ("\\\"o" ?ö)
- ("\\\k{o}" ?ǫ)
("$\\div$" ?÷) ("\\div" ?÷)
("\\o" ?ø) ;; ("{\\o}" ?ø)
- ("\\`{u}" ?ù) ("\\`u" ?ù)
- ("\\'{u}" ?ú) ("\\'u" ?ú)
- ("\\^{u}" ?û) ("\\^u" ?û)
- ("\\\"{u}" ?ü) ("\\\"u" ?ü)
- ("\\\k{u}" ?ų)
- ("\\'{y}" ?ý) ("\\'y" ?ý)
- ("\\\"{y}" ?ÿ) ("\\\"y" ?ÿ)
- ("\\={A}" ?Ā) ("\\=A" ?Ā)
- ("\\={a}" ?ā) ("\\=a" ?ā)
- ("\\u{A}" ?Ă) ("\\uA" ?Ă)
- ("\\u{a}" ?ă) ("\\ua" ?ă)
- ("\\'{C}" ?Ć) ("\\'C" ?Ć)
- ("\\'{c}" ?ć) ("\\'c" ?ć)
- ("\\^{C}" ?Ĉ) ("\\^C" ?Ĉ)
- ("\\^{c}" ?ĉ) ("\\^c" ?ĉ)
- ("\\.{C}" ?Ċ) ("\\.C" ?Ċ)
- ("\\.{c}" ?ċ) ("\\.c" ?ċ)
- ("\\v{C}" ?Č) ("\\vC" ?Č)
- ("\\v{c}" ?č) ("\\vc" ?č)
- ("\\v{D}" ?Ď) ("\\vD" ?Ď)
- ("\\v{d}" ?ď) ("\\vd" ?ď)
+ ("\\=" ?̄)
+ ("\\={}" ?¯)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\={%s}" c) (format "\\=%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH MACRON")
- ("\\={E}" ?Ē) ("\\=E" ?Ē)
- ("\\={e}" ?ē) ("\\=e" ?ē)
- ("\\u{E}" ?Ĕ) ("\\uE" ?Ĕ)
- ("\\u{e}" ?ĕ) ("\\ue" ?ĕ)
- ("\\.{E}" ?Ė) ("\\.E" ?Ė)
- ("\\e{e}" ?ė) ("\\ee" ?ė)
- ("\\v{E}" ?Ě) ("\\vE" ?Ě)
- ("\\v{e}" ?ě) ("\\ve" ?ě)
- ("\\^{G}" ?Ĝ) ("\\^G" ?Ĝ)
- ("\\^{g}" ?ĝ) ("\\^g" ?ĝ)
- ("\\u{G}" ?Ğ) ("\\uG" ?Ğ)
- ("\\u{g}" ?ğ) ("\\ug" ?ğ)
+ ("\\u" ?̆)
+ ("\\u{}" ?˘)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\u{%s}" c) (format "\\u%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH BREVE")
- ("\\.{G}" ?Ġ) ("\\.G" ?Ġ)
- ("\\.{g}" ?ġ) ("\\.g" ?ġ)
- ("\\c{G}" ?Ģ) ("\\cG" ?Ģ)
- ("\\c{g}" ?ģ) ("\\cg" ?ģ)
- ("\\^{H}" ?Ĥ) ("\\^H" ?Ĥ)
- ("\\^{h}" ?ĥ) ("\\^h" ?ĥ)
- ("\\~{I}" ?Ĩ) ("\\~I" ?Ĩ)
- ("\\~{\\i}" ?ĩ) ("\\~i" ?ĩ)
- ("\\={I}" ?Ī) ("\\=I" ?Ī)
- ("\\={\\i}" ?ī) ("\\=i" ?ī)
- ("\\u{I}" ?Ĭ) ("\\uI" ?Ĭ)
- ("\\u{\\i}" ?ĭ) ("\\ui" ?ĭ)
+ ("\\." ?̇)
+ ("\\.{}" ?˙)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\.{%s}" c) (format "\\.%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT ABOVE")
+
+ ("\\v" ?̌)
+ ("\\v{}" ?ˇ)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\v{%s}" c) (format "\\v%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH CARON")
+
+ ("\\~{\\i}" ?ĩ)
+ ("\\={\\i}" ?ī)
+ ("\\u{\\i}" ?ĭ)
- ("\\.{I}" ?İ) ("\\.I" ?İ)
("\\i" ?ı) ;; ("{\\i}" ?ı)
- ("\\^{J}" ?Ĵ) ("\\^J" ?Ĵ)
- ("\\^{\\j}" ?ĵ) ("\\^j" ?ĵ)
- ("\\c{K}" ?Ķ) ("\\cK" ?Ķ)
- ("\\c{k}" ?ķ) ("\\ck" ?ķ)
- ("\\'{L}" ?Ĺ) ("\\'L" ?Ĺ)
- ("\\'{l}" ?ĺ) ("\\'l" ?ĺ)
- ("\\c{L}" ?Ļ) ("\\cL" ?Ļ)
- ("\\c{l}" ?ļ) ("\\cl" ?ļ)
+ ("\\^{\\j}" ?ĵ)
("\\L" ?Ł) ;; ("{\\L}" ?Ł)
("\\l" ?ł) ;; ("{\\l}" ?ł)
- ("\\'{N}" ?Ń) ("\\'N" ?Ń)
- ("\\'{n}" ?ń) ("\\'n" ?ń)
- ("\\c{N}" ?Ņ) ("\\cN" ?Ņ)
- ("\\c{n}" ?ņ) ("\\cn" ?ņ)
- ("\\v{N}" ?Ň) ("\\vN" ?Ň)
- ("\\v{n}" ?ň) ("\\vn" ?ň)
- ("\\={O}" ?Ō) ("\\=O" ?Ō)
- ("\\={o}" ?ō) ("\\=o" ?ō)
- ("\\u{O}" ?Ŏ) ("\\uO" ?Ŏ)
- ("\\u{o}" ?ŏ) ("\\uo" ?ŏ)
- ("\\H{O}" ?Ő) ("\\HO" ?Ő)
- ("\\U{o}" ?ő) ("\\Uo" ?ő)
+ ("\\H" ?̋)
+ ("\\H{}" ?˝)
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\H{%s}" c) (format "\\H%s" c))))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOUBLE ACUTE")
+ ("\\U{o}" ?ő) ("\\Uo" ?ő) ;; FIXME: Was it just a typo?
+
("\\OE" ?Œ) ;; ("{\\OE}" ?Œ)
("\\oe" ?œ) ;; ("{\\oe}" ?œ)
- ("\\'{R}" ?Ŕ) ("\\'R" ?Ŕ)
- ("\\'{r}" ?ŕ) ("\\'r" ?ŕ)
- ("\\c{R}" ?Ŗ) ("\\cR" ?Ŗ)
- ("\\c{r}" ?ŗ) ("\\cr" ?ŗ)
- ("\\v{R}" ?Ř) ("\\vR" ?Ř)
- ("\\v{r}" ?ř) ("\\vr" ?ř)
- ("\\'{S}" ?Ś) ("\\'S" ?Ś)
- ("\\'{s}" ?ś) ("\\'s" ?ś)
- ("\\^{S}" ?Ŝ) ("\\^S" ?Ŝ)
- ("\\^{s}" ?ŝ) ("\\^s" ?ŝ)
- ("\\c{S}" ?Ş) ("\\cS" ?Ş)
- ("\\c{s}" ?ş) ("\\cs" ?ş)
-
- ("\\v{S}" ?Š) ("\\vS" ?Š)
- ("\\v{s}" ?š) ("\\vs" ?š)
- ("\\c{T}" ?Ţ) ("\\cT" ?Ţ)
- ("\\c{t}" ?ţ) ("\\ct" ?ţ)
- ("\\v{T}" ?Ť) ("\\vT" ?Ť)
- ("\\v{t}" ?ť) ("\\vt" ?ť)
- ("\\~{U}" ?Ũ) ("\\~U" ?Ũ)
- ("\\~{u}" ?ũ) ("\\~u" ?ũ)
- ("\\={U}" ?Ū) ("\\=U" ?Ū)
- ("\\={u}" ?ū) ("\\=u" ?ū)
- ("\\u{U}" ?Ŭ) ("\\uU" ?Ŭ)
- ("\\u{u}" ?ŭ) ("\\uu" ?ŭ)
- ("\\H{U}" ?Ű) ("\\HU" ?Ű)
- ("\\H{u}" ?ű) ("\\Hu" ?ű)
- ("\\^{W}" ?Ŵ) ("\\^W" ?Ŵ)
- ("\\^{w}" ?ŵ) ("\\^w" ?ŵ)
- ("\\^{Y}" ?Ŷ) ("\\^Y" ?Ŷ)
- ("\\^{y}" ?ŷ) ("\\^y" ?ŷ)
- ("\\\"{Y}" ?Ÿ) ("\\\"Y" ?Ÿ)
- ("\\'{Z}" ?Ź) ("\\'Z" ?Ź)
- ("\\'{z}" ?ź) ("\\'z" ?ź)
- ("\\.{Z}" ?Ż) ("\\.Z" ?Ż)
- ("\\.{z}" ?ż) ("\\.z" ?ż)
- ("\\v{Z}" ?Ž) ("\\vZ" ?Ž)
- ("\\v{z}" ?ž) ("\\vz" ?ž)
-
- ("\\v{A}" ?Ǎ) ("\\vA" ?Ǎ)
- ("\\v{a}" ?ǎ) ("\\va" ?ǎ)
- ("\\v{I}" ?Ǐ) ("\\vI" ?Ǐ)
- ("\\v{\\i}" ?ǐ) ("\\vi" ?ǐ)
- ("\\v{O}" ?Ǒ) ("\\vO" ?Ǒ)
- ("\\v{o}" ?ǒ) ("\\vo" ?ǒ)
- ("\\v{U}" ?Ǔ) ("\\vU" ?Ǔ)
- ("\\v{u}" ?ǔ) ("\\vu" ?ǔ)
+ ("\\v{\\i}" ?ǐ)
("\\={\\AE}" ?Ǣ) ("\\=\\AE" ?Ǣ)
("\\={\\ae}" ?ǣ) ("\\=\\ae" ?ǣ)
- ("\\v{G}" ?Ǧ) ("\\vG" ?Ǧ)
- ("\\v{g}" ?ǧ) ("\\vg" ?ǧ)
- ("\\v{K}" ?Ǩ) ("\\vK" ?Ǩ)
- ("\\v{k}" ?ǩ) ("\\vk" ?ǩ)
- ("\\v{\\j}" ?ǰ) ("\\vj" ?ǰ)
- ("\\'{G}" ?Ǵ) ("\\'G" ?Ǵ)
- ("\\'{g}" ?ǵ) ("\\'g" ?ǵ)
- ("\\`{N}" ?Ǹ) ("\\`N" ?Ǹ)
- ("\\`{n}" ?ǹ) ("\\`n" ?ǹ)
+ ("\\v{\\j}" ?ǰ)
("\\'{\\AE}" ?Ǽ) ("\\'\\AE" ?Ǽ)
("\\'{\\ae}" ?ǽ) ("\\'\\ae" ?ǽ)
("\\'{\\O}" ?Ǿ) ("\\'\\O" ?Ǿ)
("\\'{\\o}" ?ǿ) ("\\'\\o" ?ǿ)
- ("\\v{H}" ?Ȟ) ("\\vH" ?Ȟ)
- ("\\v{h}" ?ȟ) ("\\vh" ?ȟ)
- ("\\.{A}" ?Ȧ) ("\\.A" ?Ȧ)
- ("\\.{a}" ?ȧ) ("\\.a" ?ȧ)
- ("\\c{E}" ?Ȩ) ("\\cE" ?Ȩ)
- ("\\c{e}" ?ȩ) ("\\ce" ?ȩ)
- ("\\.{O}" ?Ȯ) ("\\.O" ?Ȯ)
- ("\\.{o}" ?ȯ) ("\\.o" ?ȯ)
- ("\\={Y}" ?Ȳ) ("\\=Y" ?Ȳ)
- ("\\={y}" ?ȳ) ("\\=y" ?ȳ)
-
- ("\\v{}" ?ˇ)
- ("\\u{}" ?˘)
- ("\\.{}" ?˙)
- ("\\~{}" ?˜)
- ("\\H{}" ?˝)
-
- ("\\'" ?́)
- ("\\'K" ?Ḱ)
- ("\\'M" ?Ḿ)
- ("\\'P" ?Ṕ)
- ("\\'W" ?Ẃ)
- ("\\'k" ?ḱ)
- ("\\'m" ?ḿ)
- ("\\'p" ?ṕ)
- ("\\'w" ?ẃ)
("\\," ? )
- ("\\." ?̇)
- ("\\.B" ?Ḃ)
- ("\\.D" ?Ḋ)
- ("\\.F" ?Ḟ)
- ("\\.H" ?Ḣ)
- ("\\.M" ?Ṁ)
- ("\\.N" ?Ṅ)
- ("\\.P" ?Ṗ)
- ("\\.R" ?Ṙ)
- ("\\.S" ?Ṡ)
- ("\\.T" ?Ṫ)
- ("\\.W" ?Ẇ)
- ("\\.X" ?Ẋ)
- ("\\.Y" ?Ẏ)
- ("\\.b" ?ḃ)
- ("\\.d" ?ḋ)
- ("\\.e" ?ė)
- ("\\.f" ?ḟ)
- ("\\.h" ?ḣ)
- ("\\.m" ?ṁ)
- ("\\.n" ?ṅ)
- ("\\.p" ?ṗ)
- ("\\.r" ?ṙ)
- ("\\.s" ?ṡ)
- ("\\.t" ?ṫ)
- ("\\.w" ?ẇ)
- ("\\.x" ?ẋ)
- ("\\.y" ?ẏ)
("\\/" ?)
("\\:" ? )
("\\;" ? )
- ("\\=" ?̄)
- ("\\=G" ?Ḡ)
- ("\\=g" ?ḡ)
- ("^(" ?⁽)
- ("^)" ?⁾)
- ("^+" ?⁺)
- ("^-" ?⁻)
- ("^0" ?⁰)
- ("^1" ?¹)
- ("^2" ?²)
- ("^3" ?³)
- ("^4" ?⁴)
- ("^5" ?⁵)
- ("^6" ?⁶)
- ("^7" ?⁷)
- ("^8" ?⁸)
- ("^9" ?⁹)
- ("^=" ?⁼)
+ ((lambda (name char)
+ (let* ((base (concat (match-string 1 name) (match-string 3 name)))
+ (basechar (cdr (assoc base (ucs-names)))))
+ (when (latin-ltx--ascii-p basechar)
+ (string (if (match-end 2) ?^ ?_) basechar))))
+ "\\(.*\\)SU\\(?:B\\|\\(PER\\)\\)SCRIPT \\(.*\\)")
+
("^\\gamma" ?ˠ)
- ;; FIXME: It'd be nicer to generate some of these rules via something like
- ;; (map (lambda (name char)
- ;; (cond ((string-match "MODIFIER SMALL LETTER \\(.\\)" name)
- ;; (list (string ?^ (downcase (aref name (match-beginning 1))))
- ;; char)))
- ;; ...)))
- ("^a" ?ᵃ)
- ("^b" ?ᵇ)
- ("^c" ?ᶜ)
- ("^d" ?ᵈ)
- ("^e" ?ᵉ)
- ("^f" ?ᶠ)
- ("^g" ?ᵍ)
- ("^h" ?ʰ)
- ;; ("^i" ?) ;; FIXME: can't find MODIFIER SMALL LETTER I !?!
- ("^j" ?ʲ)
- ("^k" ?ᵏ)
- ("^l" ?ˡ)
- ("^m" ?ᵐ)
- ("^n" ?ⁿ)
- ("^o" ?ᵒ)
+
+ ((lambda (name char)
+ (let* ((base (format "LATIN %s LETTER %s"
+ (match-string 1 name) (match-string 2 name)))
+ (basechar (cdr (assoc base (ucs-names)))))
+ (when (latin-ltx--ascii-p basechar)
+ (string ?^ basechar))))
+ "MODIFIER LETTER \\(SMALL\\|CAPITAL\\) \\(.*\\)")
+
+ ;; ((lambda (name char) (format "^%s" (downcase (match-string 1 name))))
+ ;; "\\`MODIFIER LETTER SMALL \\(.\\)\\'")
+ ;; ("^\\1" "\\`MODIFIER LETTER CAPITAL \\(.\\)\\'")
("^o_" ?º)
- ("^p" ?ᵖ)
- ;; ("^q" ?) ;; FIXME: can't find MODIFIER SMALL LETTER Q !?!
- ("^r" ?ʳ)
- ("^s" ?ˢ)
- ("^t" ?ᵗ)
- ("^u" ?ᵘ)
- ("^v" ?ᵛ)
- ("^w" ?ʷ)
- ("^x" ?ˣ)
- ("^y" ?ʸ)
- ("^z" ?ᶻ)
- ("^A" ?ᴬ)
- ("^B" ?ᴮ)
- ;; ("^C" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER C !?!
- ("^D" ?ᴰ)
- ("^E" ?ᴱ)
- ;; ("^F" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER F !?!
- ("^G" ?ᴳ)
- ("^H" ?ᴴ)
- ("^I" ?ᴵ)
- ("^J" ?ᴶ)
- ("^K" ?ᴷ)
- ("^L" ?ᴸ)
- ("^M" ?ᴹ)
- ("^N" ?ᴺ)
- ("^O" ?ᴼ)
- ("^P" ?ᴾ)
- ;; ("^Q" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER Q !?!
- ("^R" ?ᴿ)
- ;; ("^S" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER S !?!
- ("^T" ?ᵀ)
- ("^U" ?ᵁ)
- ("^V" ?ⱽ)
- ("^W" ?ᵂ)
- ;; ("^X" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER X !?!
- ;; ("^Y" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER Y !?!
- ;; ("^Z" ?) ;; FIXME: can't find MODIFIER CAPITAL LETTER Z !?!
("^{SM}" ?℠)
("^{TEL}" ?℡)
("^{TM}" ?™)
- ("_(" ?₍)
- ("_)" ?₎)
- ("_+" ?₊)
- ("_-" ?₋)
- ("_0" ?₀)
- ("_1" ?₁)
- ("_2" ?₂)
- ("_3" ?₃)
- ("_4" ?₄)
- ("_5" ?₅)
- ("_6" ?₆)
- ("_7" ?₇)
- ("_8" ?₈)
- ("_9" ?₉)
- ("_=" ?₌)
- ("\\~" ?̃)
- ("\\~E" ?Ẽ)
- ("\\~V" ?Ṽ)
- ("\\~Y" ?Ỹ)
- ("\\~e" ?ẽ)
- ("\\~v" ?ṽ)
- ("\\~y" ?ỹ)
-
- ("\\\"" ?̈)
- ("\\\"H" ?Ḧ)
- ("\\\"W" ?Ẅ)
- ("\\\"X" ?Ẍ)
- ("\\\"h" ?ḧ)
- ("\\\"t" ?ẗ)
- ("\\\"w" ?ẅ)
- ("\\\"x" ?ẍ)
- ("\\^" ?̂)
- ("\\^Z" ?Ẑ)
- ("\\^z" ?ẑ)
- ("\\`" ?̀)
- ("\\`W" ?Ẁ)
- ("\\`Y" ?Ỳ)
- ("\\`w" ?ẁ)
- ("\\`y" ?ỳ)
("\\b" ?̱)
- ("\\c" ?̧)
- ("\\c{D}" ?Ḑ)
- ("\\c{H}" ?Ḩ)
- ("\\c{d}" ?ḑ)
- ("\\c{h}" ?ḩ)
+
("\\d" ?̣)
- ("\\d{A}" ?Ạ)
- ("\\d{B}" ?Ḅ)
- ("\\d{D}" ?Ḍ)
- ("\\d{E}" ?Ẹ)
- ("\\d{H}" ?Ḥ)
- ("\\d{I}" ?Ị)
- ("\\d{K}" ?Ḳ)
- ("\\d{L}" ?Ḷ)
- ("\\d{M}" ?Ṃ)
- ("\\d{N}" ?Ṇ)
- ("\\d{O}" ?Ọ)
- ("\\d{R}" ?Ṛ)
- ("\\d{S}" ?Ṣ)
- ("\\d{T}" ?Ṭ)
- ("\\d{U}" ?Ụ)
- ("\\d{V}" ?Ṿ)
- ("\\d{W}" ?Ẉ)
- ("\\d{Y}" ?Ỵ)
- ("\\d{Z}" ?Ẓ)
- ("\\d{a}" ?ạ)
- ("\\d{b}" ?ḅ)
- ("\\d{d}" ?ḍ)
- ("\\d{e}" ?ẹ)
- ("\\d{h}" ?ḥ)
- ("\\d{i}" ?ị)
- ("\\d{k}" ?ḳ)
- ("\\d{l}" ?ḷ)
- ("\\d{m}" ?ṃ)
- ("\\d{n}" ?ṇ)
- ("\\d{o}" ?ọ)
- ("\\d{r}" ?ṛ)
- ("\\d{s}" ?ṣ)
- ("\\d{t}" ?ṭ)
- ("\\d{u}" ?ụ)
- ("\\d{v}" ?ṿ)
- ("\\d{w}" ?ẉ)
- ("\\d{y}" ?ỵ)
- ("\\d{z}" ?ẓ)
+ ;; ("\\d{}" ?) ;; FIXME: can't find the DOT BELOW character.
+ ((lambda (name char)
+ (let ((c (if (match-end 1)
+ (downcase (match-string 2 name))
+ (match-string 2 name))))
+ (list (format "\\d{%s}" c) ;; (format "\\d%s" c)
+ )))
+ "\\(?:CAPITAL\\|SMAL\\(L\\)\\) LETTER \\(.\\) WITH DOT BELOW")
+
("\\rq" ?’)
- ("\\u" ?̆)
- ("\\v" ?̌)
- ("\\v{L}" ?Ľ)
- ("\\v{i}" ?ǐ)
- ("\\v{j}" ?ǰ)
- ("\\v{l}" ?ľ)
- ("\\yen" ?¥)
+
+ ;; FIXME: Provides some useful entries (yen, euro, copyright, registered,
+ ;; currency, minus, micro), but also a lot of dubious ones.
+ ((lambda (name char)
+ (unless (latin-ltx--ascii-p char)
+ (concat "\\" (downcase (match-string 1 name)))))
+ "\\`\\([^- ]+\\) SIGN\\'")
+
+ ((lambda (name char)
+ (concat "\\" (funcall (if (match-end 1) #' capitalize #'downcase)
+ (match-string 2 name))))
+ "\\`GREEK \\(?:SMALL\\|CAPITA\\(L\\)\\) LETTER \\([^- ]+\\)\\'")
("\\Box" ?□)
("\\Bumpeq" ?≎)
("\\Cap" ?⋒)
("\\Cup" ?⋓)
- ("\\Delta" ?Δ)
("\\Diamond" ?◇)
("\\Downarrow" ?⇓)
- ("\\Gamma" ?Γ)
- ("\\H" ?̋)
("\\H{o}" ?ő)
("\\Im" ?ℑ)
("\\Join" ?⋈)
- ("\\Lambda" ?Λ)
("\\Leftarrow" ?⇐)
("\\Leftrightarrow" ?⇔)
("\\Ll" ?⋘)
("\\Longleftrightarrow" ?⇔)
("\\Longrightarrow" ?⇒)
("\\Lsh" ?↰)
- ("\\Omega" ?Ω)
- ("\\Phi" ?Φ)
- ("\\Pi" ?Π)
- ("\\Psi" ?Ψ)
("\\Re" ?ℜ)
("\\Rightarrow" ?⇒)
("\\Rrightarrow" ?⇛)
("\\Rsh" ?↱)
- ("\\Sigma" ?Σ)
("\\Subset" ?⋐)
("\\Supset" ?⋑)
- ("\\Theta" ?Θ)
("\\Uparrow" ?⇑)
("\\Updownarrow" ?⇕)
- ("\\Upsilon" ?Υ)
("\\Vdash" ?⊩)
("\\Vert" ?‖)
("\\Vvdash" ?⊪)
- ("\\Xi" ?Ξ)
("\\aleph" ?ℵ)
- ("\\alpha" ?α)
("\\amalg" ?∐)
("\\angle" ?∠)
("\\approx" ?≈)
("\\backslash" ?\\)
("\\barwedge" ?⊼)
("\\because" ?∵)
- ("\\beta" ?β)
("\\beth" ?ℶ)
("\\between" ?≬)
("\\bigcap" ?⋂)
("\\circledcirc" ?⊚)
("\\circleddash" ?⊝)
("\\clubsuit" ?♣)
- ("\\colon" ?:)
+ ("\\colon" ?:) ;FIXME: Conflict with "COLON SIGN" ₡.
("\\coloneq" ?≔)
("\\complement" ?∁)
("\\cong" ?≅)
("\\ddag" ?‡)
("\\ddagger" ?‡)
("\\ddots" ?⋱)
- ("\\delta" ?δ)
("\\diamond" ?⋄)
("\\diamondsuit" ?♢)
("\\digamma" ?Ϝ)
("\\downrightharpoon" ?⇂)
("\\ell" ?ℓ)
("\\emptyset" ?∅)
- ("\\epsilon" ?ε)
("\\eqcirc" ?≖)
("\\eqcolon" ?≕)
("\\eqslantgtr" ?⋝)
("\\eqslantless" ?⋜)
("\\equiv" ?≡)
- ("\\eta" ?η)
- ("\\euro" ?€)
("\\exists" ?∃)
("\\fallingdotseq" ?≒)
("\\flat" ?♭)
("\\frac58" ?⅝)
("\\frac78" ?⅞)
("\\frown" ?⌢)
- ("\\gamma" ?γ)
("\\ge" ?≥)
("\\geq" ?≥)
("\\geqq" ?≧)
("\\infty" ?∞)
("\\int" ?∫)
("\\intercal" ?⊺)
- ("\\iota" ?ι)
- ("\\kappa" ?κ)
- ("\\lambda" ?λ)
("\\langle" ?〈)
("\\lbrace" ?{)
("\\lbrack" ?\[)
("\\nleqslant" ?≰)
("\\nless" ?≮)
("\\nmid" ?∤)
- ("\\not" ?̸)
+ ("\\not" ?̸) ;FIXME: conflict with "NOT SIGN" ¬.
("\\notin" ?∉)
("\\nparallel" ?∦)
("\\nprec" ?⊀)
("\\ntrianglelefteq" ?⋬)
("\\ntriangleright" ?⋫)
("\\ntrianglerighteq" ?⋭)
- ("\\nu" ?ν)
("\\nvDash" ?⊭)
("\\nvdash" ?⊬)
("\\nwarrow" ?↖)
("\\odot" ?⊙)
("\\oint" ?∮)
- ("\\omega" ?ω)
("\\ominus" ?⊖)
("\\oplus" ?⊕)
("\\oslash" ?⊘)
("\\parallel" ?∥)
("\\partial" ?∂)
("\\perp" ?⊥)
- ("\\phi" ?φ)
- ("\\pi" ?π)
("\\pitchfork" ?⋔)
("\\prec" ?≺)
("\\precapprox" ?≾)
("\\prime" ?′)
("\\prod" ?∏)
("\\propto" ?∝)
- ("\\psi" ?ψ)
("\\qed" ?∎)
("\\quad" ? )
("\\rangle" ?〉)
("\\sharp" ?♯)
("\\shortmid" ?∣)
("\\shortparallel" ?∥)
- ("\\sigma" ?σ)
("\\sim" ?∼)
("\\simeq" ?≃)
("\\smallamalg" ?∐)
("\\supsetneqq" ?⊋)
("\\surd" ?√)
("\\swarrow" ?↙)
- ("\\tau" ?τ)
("\\therefore" ?∴)
- ("\\theta" ?θ)
("\\thickapprox" ?≈)
("\\thicksim" ?∼)
("\\to" ?→)
("\\upleftharpoon" ?↿)
("\\uplus" ?⊎)
("\\uprightharpoon" ?↾)
- ("\\upsilon" ?υ)
("\\upuparrows" ?⇈)
("\\urcorner" ?⌝)
("\\u{i}" ?ĭ)
("\\vDash" ?⊨)
- ("\\varkappa" ?ϰ)
- ("\\varphi" ?ϕ)
- ("\\varpi" ?ϖ)
+
+ ((lambda (name char)
+ (concat "\\var" (downcase (match-string 1 name))))
+ "\\`GREEK \\([^- ]+\\) SYMBOL\\'")
+
("\\varprime" ?′)
("\\varpropto" ?∝)
- ("\\varrho" ?ϱ)
- ("\\varsigma" ?ς)
- ("\\vartheta" ?ϑ)
+ ("\\varsigma" ?ς) ;FIXME: Looks reversed with the non\var.
("\\vartriangleleft" ?⊲)
("\\vartriangleright" ?⊳)
("\\vdash" ?⊢)
("\\wedge" ?∧)
("\\wp" ?℘)
("\\wr" ?≀)
- ("\\xi" ?ξ)
- ("\\zeta" ?ζ)
("\\Bbb{N}" ?ℕ) ; AMS commands for blackboard bold
("\\Bbb{P}" ?ℙ) ; Also sometimes \mathbb.
;; a bug where the user finds his ~ key doesn't insert a ~ any more.
("\\ " ? )
("\\\\" ?\\)
- ("\\mu" ?μ)
- ("\\rho" ?ρ)
("\\mathscr{I}" ?ℐ) ; moment of inertia
("\\Smiley" ?☺)
("\\blacksmiley" ?☻)
;; ("\\Writinghand" ?✍)
;; ("\\Yinyang" ?☯)
;; ("\\Heart" ?♡)
- ("\\registered" ?®)
- ("\\currency" ?¤)
("\\dh" ?ð)
("\\DH" ?Ð)
("\\th" ?þ)
("\\TH" ?Þ)
- ("\\micro" ?µ)
("\\lnot" ?¬)
("\\ordfeminine" ?ª)
("\\ordmasculine" ?º)
;; by analogy with lq, rq:
("\\ldq" ?\“)
("\\rdq" ?\”)
- ("\\minus" ?−)
("\\defs" ?≙) ; per fuzz/zed
;; ("\\sqrt[3]" ?∛)
("\\llbracket" ?\〚) ; stmaryrd
+2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Assume less-ancient POSIX support.
+ * update-game-score.c: Include <getopt.h> rather than rolling our
+ own decls for optarg, optind, opterr. See
+ <http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html>.
+
+2012-04-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacsclient.c (decode_options) [WINDOWSNT]:
+ Call ttyname instead of passing its address (typo in 2011-12-04T17:13:01Z!lekktu@gmail.com).
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (obj): Add xml.o.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (ALL): Now the list of executables, not of phony
+ targets.
+ (.PHONY): Only make-docfile is its prerequisite now.
+ (make-docfile): Don't depend on stamp_BLD. Add a comment about
+ the need in this target.
+ (ctags, etags, ebrowse, hexl, movemail, emacsclient)
+ (test-distrib): Phony targets removed.
+ ($(BLD)/test-distrib.exe): Run test-distrib as part of the recipe.
+ (all): Don't depend on stamp_BLD.
+ (ALL): Include $(BLD)/test-distrib.exe.
+
2012-03-11 Andreas Schwab <schwab@linux-m68k.org>
* emacsclient.c (main): Handle -print-nonl command.
* makefile.w32-in (LOCAL_FLAGS): Add $(EMACS_EXTRA_C_FLAGS).
* emacsclient.c (main) <environ>: Remove declaration, already
- pulled in by unistd.h on Posix hosts and stdlib.h on MS-Windows.
+ pulled in by unistd.h on POSIX hosts and stdlib.h on MS-Windows.
2011-11-24 Glenn Morris <rgm@gnu.org>
1993-08-25 Paul Eggert (eggert@twinsun.com)
- * rcs2log: Change /{/ to /\{/ for Posix ERE compatibility;
+ * rcs2log: Change /{/ to /\{/ for POSIX ERE compatibility;
otherwise, HP awk complains.
* vcdiff: Append /usr/ccs/bin and /usr/sccs to PATH, since these
* rcs2log: mawk, SunOS 4.1.3 nawk, and Ultrix/MKS nawk all barf on
/[/]/, so change it to /[\/]/. This should work on all
- Posix-compliant awks. It's slightly wrong with traditional awk,
+ POSIX-compliant awks. It's slightly wrong with traditional awk,
since it matches \ too, but that's a minor problem compared to awk
syntax errors.
server.el check whether it makes sense. */
if (tty || !current_frame)
{
- display = (const char *) ttyname;
+ display = (const char *) ttyname (0); /* Arg is ignored. */
current_frame = 0;
tty = 1;
}
# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
-ALL = make-docfile hexl ctags etags movemail ebrowse emacsclient
+ALL = $(BLD)/test-distrib.exe $(BLD)/make-docfile.exe $(BLD)/hexl.exe\
+ $(BLD)/ctags.exe $(BLD)/etags.exe $(BLD)/movemail.exe $(BLD)/ebrowse.exe\
+ $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
-.PHONY: $(ALL)
+.PHONY: make-docfile
LOCAL_FLAGS = -DWINDOWSNT -DDOS_NT -DNO_LDAV=1 \
-DNO_ARCHIVES=1 -DHAVE_CONFIG_H=1 -I../lib \
LIBS = $(BASE_LIBS) $(ADVAPI32)
+# The following target is used by makefile.w32-in files in other directories.
+make-docfile: $(BLD)/make-docfile.exe
+
$(BLD)/make-docfile.exe: $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/make-docfile.$(O) $(BLD)/ntlib.$(O) $(LIBS)
$(BLD)/hexl.exe: $(BLD)/hexl.$(O)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/hexl.$(O) $(LIBS)
$(BLD)/test-distrib.exe: $(BLD)/test-distrib.$(O)
$(LINK) $(LINK_OUT)$@ $(LINK_FLAGS) $(BLD)/test-distrib.$(O) $(LIBS)
-
-make-docfile: stamp_BLD $(BLD)/make-docfile.exe
-ctags: stamp_BLD $(BLD)/ctags.exe
-etags: stamp_BLD $(BLD)/etags.exe
-ebrowse: stamp_BLD $(BLD)/ebrowse.exe
-hexl: stamp_BLD $(BLD)/hexl.exe
-movemail: stamp_BLD $(BLD)/movemail.exe
-emacsclient: stamp_BLD $(BLD)/emacsclient.exe $(BLD)/emacsclientw.exe
-
-test-distrib: stamp_BLD $(BLD)/test-distrib.exe
- "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
+ "$(BLD)/test-distrib.exe" "$(SRC)/testfile"
MOVEMAILOBJS = $(BLD)/movemail.$(O) \
$(BLD)/pop.$(O) \
process.o callproc.o unexw32.o \
region-cache.o sound.o atimer.o \
doprnt.o intervals.o textprop.o composite.o \
- gnutls.o
+ gnutls.o xml.o
#
# These are the lisp files that are loaded up in loadup.el
#
# Build the executables
#
-all: stamp_BLD $(ALL) $(DOC)
+all: $(ALL) $(DOC)
#
# Assuming INSTALL_DIR is defined, build and install emacs in it.
#include <fcntl.h>
#endif
#include <sys/stat.h>
-
-/* Needed for SunOS4, for instance. */
-extern char *optarg;
-extern int optind, opterr;
+#include <getopt.h>
static int usage (int err) NO_RETURN;
- $(DEL) $@
$(AR) $(AR_OUT)$@ $(ALL_DEPS)
-gnulib: stamp_BLD $(BLD)/libgnu.$(A)
+gnulib: $(BLD)/libgnu.$(A)
#
# Build everything
#
-all: stamp_BLD $(ALL)
+all: $(ALL)
### TAGS ###
-2012-03-25 Stefan Monnier <monnier@iro.umontreal.ca>
+2012-04-17 Stefan Monnier <monnier@iro.umontreal.ca>
- * newcomment.el (comment-inline-offset): Don't autoload.
- (comment-choose-indent): Obey comment-inline-offset.
+ * emacs-lisp/smie.el: Provide smarter auto-filling.
+ (smie-auto-fill): New function.
+ (smie-setup): Use it.
-2012-03-25 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change)
+ * newcomment.el (comment-choose-indent): Obey comment-inline-offset.
+
+2012-04-17 Philipp Haselwarter <philipp.haselwarter@gmx.de> (tiny change)
* newcomment.el (comment-inline-offset): New custom var (bug#11090).
(comment-indent): Use it.
-2012-02-15 Stefan Monnier <monnier@iro.umontreal.ca>
-
- * emacs-lisp/smie.el: Provide smarter auto-filling.
- (smie-auto-fill): New function.
- (smie-setup): Use it.
-
-2011-12-27 Vincent Belaïche <vincentb1@users.sourceforge.net>
+2012-04-17 Vincent Belaïche <vincentb1@users.sourceforge.net>
* ses.el: The overall change is to add cell renaming, that is
setting fancy names for cell symbols other than name matching
"\\`[A-Z]+[0-9]+\\'" regexp .
+ (ses-localvars): Add ses--renamed-cell-symb-list.
(ses-create-cell-variable): New defun.
+ (ses-destroy-cell-variable-range): Respect ses--numrows, ses--numcols.
(ses-relocate-formula): Relocate formulas only for cells the
symbols of which are not renamed, i.e. symbols whose names do not
match regexp "\\`[A-Z]+[0-9]+\\'".
for cells that are not renamed.
(ses-replace-name-in-formula): New defun.
(ses-rename-cell): New defun.
- (ses-call-printer-return, ses-cell-property-get)
- (ses-sym-rowcol, ses-printer-validate, ses-formula-record)
- (ses-create-cell-variable, ses-reset-header-string)
- (ses-cell-set-formula, ses-repair-cell-reference-all)
- (ses-self-reference-early-detection, ses-in-print-area, ses-set-curcell)
- (ses-check-curcell, ses-call-printer, ses-adjust-print-width)
- (ses-print-cell-new-width, ses-formula-references, ses-relocate-formula)
- (ses-aset-with-undo, ses-load, ses-truncate-cell)
- (ses-read-column-printer, ses-read-default-printer, ses-insert-row)
- (ses-delete-row, ses-delete-column, ses-append-row-jump-first-column)
- (ses-kill-override, ses-yank-pop, ses-yank-cells, ses-yank-tsf)
- (ses-yank-resize, ses-export-tab, ses-mark-row, ses-mark-column)
- (ses-renarrow-buffer, ses-insert-range, ses-insert-ses-range)
- (ses-safe-printer, ses-safe-formula, ses-warn-unsafe, ses--clean-!)
- (ses--clean-_, ses-range, ses-select, ses-center, ses-center-span)
- (ses-dashfill, ses-unsafe): Fix typos and reflow docstrings.
+2012-04-17 Peter Oliver <bzr@mavit.org.uk> (tiny change)
+
+ * progmodes/perl-mode.el (perl-indent-parens-as-block):
+ New option (bug#11118).
+ (perl-calculate-indent): Respect it.
+
+2012-04-17 Glenn Morris <rgm@gnu.org>
+
+ * dired-aux.el (dired-mark-read-string): Doc fix.
+
+2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * dired-aux.el (dired-mark-read-string): Offer optional completion.
+ (dired-do-chxxx): Complete chown, chgrp over users, groups. (Bug#7900)
+
+2012-04-17 Glenn Morris <rgm@gnu.org>
+
+ * mouse.el (mouse-drag-track):
+ * speedbar.el (speedbar-frame-mode):
+ Use auto-hscroll-mode rather than the alias automatic-hscrolling.
+
+2012-04-16 Leo Liu <sdl.web@gmail.com>
+
+ * progmodes/python.el: Trivial cleanup.
+
+2012-04-16 Glenn Morris <rgm@gnu.org>
+
+ * vc/vc.el (vc-string-prefix-p):
+ * vc/pcvs-util.el (cvs-string-prefix-p):
+ * textmodes/tex-mode.el (latex-string-prefix-p, tex-string-prefix-p):
+ * mpc.el (mpc-string-prefix-p):
+ Make all of these into obsolete aliases for string-prefix-p.
+ Update callers.
+ * vc/pcvs.el, vc/vc-dispatcher.el, vc/vc-dir.el: Update callers.
+
+ * textmodes/two-column.el: Move custom options to the start.
+ (frame-width): Remove compat definition.
+ (2C-associate-buffer, 2C-dissociate):
+ Use with-current-buffer rather than save-excursion.
+ (2C-dissociate): Force a mode-line update.
+ (2C-autoscroll): Use ignore-errors.
+
+ * emacs-lisp/eieio-opt.el (describe-class, describe-generic):
+ Autoload trivia.
+
+ * emacs-lisp/cl-extra.el (*random-state*):
+ Remove unnecessary declaration.
+
+ * calendar/cal-tex.el (cal-tex-end-document): Trivial clarification.
+
+ * play/cookie1.el (cookie-snarf):
+ Give an explicit error if input file cannot be read.
+
+ * play/yow.el (yow-file): Use expand-file-name rather than concat.
+
+ * progmodes/perl-mode.el (c-macro-expand):
+ Remove unnecessary autoload (it is in loaddefs.el).
+
+ * textmodes/picture.el (picture-desired-column)
+ (picture-update-desired-column): Convert comments to doc-strings.
+ (picture-substitute): Remove function.
+ (picture-mode-map): Initialize in the defvar.
+
+ * woman.el: Remove eval-after-load for tar-mode.
+ * tar-mode.el (tar-mode-map): Add woman binding and menu entry.
+ (woman-tar-extract-file): Autoload it.
+
+ * frame.el (automatic-hscrolling): Make this alias obsolete.
+
+2012-04-12 Agustín Martín Domingo <agustin.martin@hispalinux.es>
+
+ * ispell.el (ispell-set-spellchecker-params): Post-process
+ `ispell-dictionary-alist' to use [:alpha:] and utf-8 if possible.
+ (ispell-dictionary-base-alist): Revert to original XEmacs
+ friendly version for default. [:alpha:] will be added in
+ `ispell-set-spellchecker-params' if needed
+
+2012-04-16 Chong Yidong <cyd@gnu.org>
+
+ * image.el (imagemagick--extension-regexp): New variable.
+ (imagemagick-register-types): Use it.
+ (imagemagick-types-inhibit): Add :set function. Allow new value
+ of t to inhibit all types.
+
+ * emacs-lisp/regexp-opt.el (regexp-opt-charset): Avoid cl macros,
+ so we can preload it.
+
+ * loadup.el (fboundp): Preload regexp-opt, needed by
+ imagemagick-register-types.
+
+2012-04-15 Chong Yidong <cyd@gnu.org>
+
+ * frame.el (scrolling): Remove nearly unused customization group.
+
+ * scroll-all.el (scroll-all-mode): Move to windows group.
+
+2012-04-15 Chong Yidong <cyd@gnu.org>
+
+ * bindings.el (goto-map): Bind goto-char to M-g c (Bug#11240).
+
+2012-04-15 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ Avoid the use of ((lambda ...) ...) in lexical-binding code.
+ * emacs-lisp/easy-mmode.el (define-minor-mode):Use funcall (bug#11241).
+
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * simple.el (process-file-side-effects): Doc fix.
+
+2012-04-15 Glenn Morris <rgm@gnu.org>
+
+ * international/mule-cmds.el (set-language-environment): Doc fix.
+
+2012-04-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * server.el (server-auth-key, server-generate-key): Doc fixes.
+ (server-get-auth-key): Doc fix. Use `string-match-p'.
+ (server-start): Reflow docstring.
+
+2012-04-14 Lars Ingebrigtsen <larsi@gnus.org>
+
+ * server.el (server-generate-key): `called-interactively-p'
+ requires a parameter.
+
+2012-04-14 Michal Nazarewicz <mina86@mina86.com>
+
+ * server.el (server-auth-key): New variable.
+ (server-generate-key, server-get-auth-key): New function.
+ (server-start): Use the new variable and functions to allow
+ setting a permanent server key (bug#9423).
+
+2012-04-14 Leo Liu <sdl.web@gmail.com>
+
+ * vc/diff-mode.el (diff-file-prev/next): Fix typo.
+
+2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Spelling fixes.
+ * hexl.el (hexl-rulerize): Rename from hexl-rulerise, since
+ Emacs uses American spelling.
+
+2012-04-14 Juanma Barranquero <lekktu@gmail.com>
+
+ * emacs-lock.el (emacs-lock-locked-buffer-functions): New hook.
+ (emacs-lock--exit-locked-buffer): Return the locked buffer. Doc fix.
+ (emacs-lock--kill-emacs-hook, emacs-lock--kill-emacs-query-functions)
+ (emacs-lock--kill-buffer-query-functions): Run new hook. (Bug#11017)
+
+2012-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/which-func.el (which-func-modes): Change default.
+
+2012-04-14 Kim F. Storm <storm@cua.dk>
+
+ * emulation/cua-base.el (cua-exchange-point-and-mark): Just call
+ exchange-point-and-mark if cua-enable-cua-keys is nil (Bug#11191).
+
+2012-04-14 Chong Yidong <cyd@gnu.org>
+
+ * custom.el (custom-theme-set-variables): Doc fix.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * international/mule.el (set-auto-coding-for-load): Doc fix.
+
+2012-04-14 Alan Mackenzie <acm@muc.de>
+
+ * progmodes/cc-menus.el (cc-imenu-objc-generic-expression): Make
+ imenu work again for Objective C Mode. Correct the *-index values,
+ these having been disturbed by a previous change in 2011-08.
+
+ * progmodes/cc-engine.el (c-before-change-check-<>-operators):
+ Correct two search limits.
+
+2012-04-14 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * startup.el (command-line-1): Inhibit splash from daemon (bug#10996).
+
+2012-04-14 Andreas Schwab <schwab@linux-m68k.org>
+
+ * international/characters.el: Fix sorting.
+
+2012-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * international/characters.el: Add more missing Latin case pairs.
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * files.el (dir-locals-set-class-variables): Doc fix.
+
+2012-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * international/characters.el: Add set-case-syntax-pair call for
+ LATIN CAPITAL LETTER Y WITH DIAERESIS RET and its lower-case
+ counterpart. (Bug#11209)
+
+ * simple.el (shell-command-on-region): Doc fix. (Bug#11208)
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * calendar/holidays.el (calendar-check-holidays): Doc fix.
+
+2012-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * textmodes/ispell.el (ispell-dictionary-base-alist):
+ Add data for Hebrew.
+
+2012-04-14 Chong Yidong <cyd@gnu.org>
+
+ * net/rcirc.el (rcirc-cmd-quit):
+ Revert 2012-03-18 change (Bug#11192).
+
+2012-04-14 Glenn Morris <rgm@gnu.org>
+
+ * pcmpl-rpm.el (pcomplete/rpm): Handle -qf.
+
+2012-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * minibuffer.el (completion-in-region-mode-map):
+ Bind completion-help-at-point to M-? rather than ?. (Bug#11182)
+
+2012-04-13 Vivek Dasmohapatra <vivek@etla.org>
+
+ * hexl.el (hexl-insert-char): Make display sizes other than 16 work.
+
+2012-04-13 Masatake YAMATO <yamato@redhat.com>
+
+ * minibuffer.el (minibuffer-local-filename-syntax): New variable
+ to allow `C-M-f' and `C-M-b' to move to the nearest path
+ separator (bug#9511).
+
+2012-04-13 Lars Ingebrigtsen <larsi@gnus.org>
+
+ * avoid.el: Require cl when compiling. And also move the
+ `provide' to the end.
+
+2012-04-13 Thierry Volpiatto <thierry.volpiatto@gmail.com>
+
+ * avoid.el (mouse-avoidance-banish-position): New variable.
+ (mouse-avoidance-banish-destination): Use it (bug#10165).
+
+2012-04-13 Leo Liu <sdl.web@gmail.com>
+
+ * progmodes/which-func.el (which-func-modes): Add objc-mode.
+
+2012-04-13 Ken Brown <kbrown@cornell.edu>
+
+ * net/browse-url.el (browse-url-file-url): Remove Cygwin hack;
+ this is no longer needed now that cygstart understands file:// URLs.
+ (browse-url-filename-alist): For the same reason, don't modify
+ file:// URLs on Cygwin.
+
+2012-04-13 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emulation/cua-base.el (cua--pre-command-handler-1): Don't activate
+ the region on shift if the binding is already shifted (bug#11221).
+
+2012-04-12 Glenn Morris <rgm@gnu.org>
+
+ * mail/mailpost.el: Move to obsolete/.
+
+2012-04-12 Drew Adams <drew.adams@oracle.com>
+
+ * imenu.el (imenu--generic-function): Ignore invisible definitions
+ (bug#10123).
+
+2012-04-12 Vivek Dasmohapatra <vivek@etla.org>
+
+ * hexl.el (hexl-bits): New variable.
+ (hexl-options): Mention the variable in the doc string.
+ (hexl-rulerise, hexl-line-displen): New functions.
+ (hexl-mode): Mention the new variable.
+ (hexl-mode, hexl-current-address, hexl-current-address):
+ Use the displen.
+ (hexl-ascii-start-column): New function.
+ (hexl-address-to-marker, hexl-beginning-of-line, hexl-options)
+ (hexl-insert-char, hexl-mode-ruler): Use the displen (bug#4941).
+
+2012-04-12 Agustín Martín Domingo <agustin.martin@hispalinux.es>
+
+ * textmodes/flyspell.el (flyspell-large-region): For hunspell, use
+ '("-i" ENCODING), in 2 separate command-line arguments, to specify
+ the encoding, as expected by hunspell.
+
+2012-04-12 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * battery.el (battery--linux-sysfs-regexp): New const.
+ (battery-status-function): Use it. Remove yeeloong special case.
+ (battery-yeeloong-sysfs): Remove.
+ (battery-echo-area-format): Remove yeeloong special case.
+
+2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * imenu.el (imenu-add-to-menubar): `current-local-map' can be nil.
+ Reported by Noah Friedman.
+
+ * subr.el (read-passwd): Use read-string.
+
+2012-04-11 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * vcursor.el (vcursor-move): Increase the priority of the overlay
+ (bug#9663).
+
+2012-04-11 Deniz Dogan <deniz.a.m.dogan@gmail.com>
+
+ * net/rcirc.el (rcirc-kill-channel-buffers): New variable.
+ (rcirc-kill-buffer-hook): Use it to kill channel buffers (bug#5128).
+
+2012-04-11 William Stevenson <yhvh2000@gmail.com>
+
+ * textmodes/artist.el (artist-mode): Convert artist-mode to use
+ define-minor-mode (bug#10760).
+
+2012-04-11 Wolfgang Jenkner <wjenkner@inode.at> (tiny change)
+
+ * lisp/progmodes/grep.el (rgrep): Tweak the find command line so
+ that directories matching `grep-find-ignored-files' won't be
+ pruned (bug#10351).
+
+2012-04-11 Chong Yidong <cyd@gnu.org>
+
+ * startup.el (command-line): Remove support for long-obsolete
+ variable font-lock-face-attributes.
+
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * vc/vc-bzr.el (vc-bzr-status): Avoid condition-case-unless-debug.
+
+2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * window.el (window--state-get-1): Obey window-point-insertion-type.
+
+2012-04-11 Lennart Borgman <lennart.borgman@gmail.com>
+
+ * emacs-lisp/lisp.el (narrow-to-defun): `beginning-of-defun' goes
+ to previous function when point is on the first character of a
+ function. Take care of that in `narrow-to-defun' (bug#6157).
+
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * vc/vc-bzr.el (vc-bzr-status): Handle all errors,
+ not just file-errors.
+
+ * vc/vc-bzr.el (vc-bzr-sha1-program, sha1-program): Remove.
+ (vc-bzr-sha1): Use internal sha1.
+
+2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/flymake.el (flymake-mode): Beware read-only dirs (bug#8954).
+
+2012-04-10 Sébastien Gross <seb@chezwam.org> (tiny change)
+
+ * progmodes/hideshow.el (hs-hide-all): Don't infloop on comments
+ that start in the middle of the line (bug#10496).
+
+2012-04-10 Dan Nicolaescu <dann@gnu.org>
+
+ * battery.el (battery-linux-proc-acpi): Only one battery is
+ discharged at a time, but that seems to confuse battery.el when
+ computing `rate-type' for the battery not being discharged
+ (bug#10332).
+
+2012-04-10 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/autoload.el (autoload-make-program): Remove, unused.
+
+ * international/quail.el: Use dolist and simplify.
+ (quail-define-package, quail-update-keyboard-layout)
+ (quail-define-rules): Use dolist.
+ (quail-insert-kbd-layout, quail-get-translation): CSE.
+
+ * tmm.el: Use dolist, remove left over hook.
+ (tmm-prompt, tmm-define-keys, tmm-shortcut, tmm-get-keybind):
+ Use dolist.
+ (calendar-load-hook): Don't mess with it.
+
+ * vc/vc-annotate.el (vc-annotate-show-diff-revision-at-line-internal):
+ Use derived-mode-p. Run the diff asynchronously.
+
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * obsolete/mouse-sel.el: Add an Obsolete-since header.
+
+2012-04-10 Juanma Barranquero <lekktu@gmail.com>
+
+ * misc.el: Display absolute path of loaded DLLs (bug#10424).
+ (list-dynamic-libraries--loaded): New function.
+ (list-dynamic-libraries--refresh): Use it.
+
+2012-04-10 Nathan Weizenbaum <nweiz@google.com>
+
+ * progmodes/python.el (python-fill-paragraph):
+ Make python-fill-region in a multiline string work when font-lock is
+ disabled (bug#7018).
+
+2012-04-10 Laimonas Vėbra <laimonas.vebra@gmail.com> (tiny change)
+
+ * language/european.el (cp775): Add oem/legacy (en)coding on
+ DOS/MS Windows for the Baltic languages. There are still plenty
+ of texts written in this encoding/codepage (bug#6519).
+
+2012-04-10 Glenn Morris <rgm@gnu.org>
+
+ * cus-start.el (eol-mnemonic-unix, eol-mnemonic-dos, eol-mnemonic-mac):
+ Add :standard values, reducing "rogue" customs in emacs -Q a bit more.
+
+2012-04-10 Florian Adamsky <florian@adamsky.it> (tiny change)
+
+ * recentf.el (recentf-dialog-mode-map): Add two keybindings for
+ next-line "n" and previous-line "p" in order to make recentf more
+ consistent with ibuffer, dired or org-mode (bug#9387).
+
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * image.el (put-image): Return the overlay created instead of the
+ optional input string (bug#7834). Note that this may break code
+ that is (for some reason or other) depending on `put-image'
+ returning the string.
+
+ * mouse-sel.el (mouse-sel-mode): Mark as obsolete (bug#6174).
+
+ * simple.el (zap-to-char): Allow zapping using input methods
+ (bug#1580).
+
+ * textmodes/fill.el (fill-region): Leave point and mark where they
+ were before filling (bug#5399).
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * version.el (emacs-bzr-get-version):
+ Handle lightweight checkouts of local branches.
+
+2012-04-09 Andreas Schwab <schwab@linux-m68k.org>
+
+ * international/characters.el: Recover lost case pairs. (Bug#11209)
+
+2012-04-09 Chong Yidong <cyd@gnu.org>
+
+ * custom.el (custom-variable-p): Return nil for non-symbol
+ arguments instead of signaling an error.
+ (user-variable-p): Obsolete alias for custom-variable-p.
+
+ * apropos.el (apropos-variable):
+ * files-x.el (read-file-local-variable):
+ * simple.el (set-variable):
+ * woman.el (woman-mini-help):
+ * emacs-lisp/byte-opt.el (side-effect-free-fns): Callers changed.
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * startup.el (normal-top-level): Don't look for leim-list.el
+ in places where it will not be found. (Bug#910)
+
+ * international/mule-cmds.el (set-default-coding-systems):
+ * files.el (normal-mode):
+ Remove guarded calls to ucs-set-table-for-input. (Bug#9821)
+ This function was removed with ucs-tables.el in 2008.
+
+2012-04-08 Eli Zaretskii <eliz@gnu.org>
+
+ * textmodes/ispell.el (ispell-check-version): For hunspell, set
+ ispell-encoding8-command to "-i", without a trailing space.
+ (ispell-start-process): For hunspell, use '("-i" ENCODING), in 2
+ separate command-line arguments, to specify the encoding, since
+ that's how hunspell expects it.
+
+2012-04-08 Glenn Morris <rgm@gnu.org>
+
+ * loadup.el: Load bindings before cus-start.
+ This reduces somewhat the number of "rogue" settings in emacs -Q.
+
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * version.el (emacs-bzr-get-version): New function.
+ (emacs-bzr-version): New variable.
+ * loadup.el (emacs-bzr-version): Set it. (Bug#8054)
+ * mail/emacsbug.el (report-emacs-bug): Include bzr version.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * international/uni-bidi.el, international/uni-category.el:
+ * international/uni-combining.el, international/uni-decimal.el:
+ * international/uni-decomposition.el, international/uni-digit.el:
+ * international/uni-lowercase.el, international/uni-mirrored.el:
+ * international/uni-name.el, international/uni-numeric.el:
+ * international/uni-titlecase.el, international/uni-uppercase.el:
+ Update for Unicode 6.1.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * term/w32-win.el (dynamic-library-alist): Add libxml2 DLLs.
+
+2012-04-05 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * window.el (shrink-window): Mention the `window-min-height'
+ variable in the doc string.
+
+2012-04-05 Bastien Guerry <bzg@altern.org>
+
+ * color.el (color-lighten-name): Fix typo.
+
+2012-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * server.el (server--on-display-p): New function.
+ (server--on-display-p): Use it.
+
+2012-04-04 Gabor Vida <vidagabor@gmail.com> (tiny change)
+
+ * ido.el (ido-wide-find-dirs-or-files): Use file-name-absolute-p
+ (bug#11145).
+
+2012-04-04 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * comint.el (comint--common-quoted-suffix): Check string boundary
+ before comparing (bug#11158).
+ * pcomplete.el (pcomplete--common-quoted-suffix): Idem.
+
+2012-04-04 Chong Yidong <cyd@gnu.org>
+
+ * minibuffer.el (completion-extra-properties): Doc fix.
+
+ * subr.el (delayed-warnings-hook): Doc fix.
+
+2012-04-04 Daiki Ueno <ueno@unixuser.org>
+
+ * epa.el (epa--select-keys): Bind C-c C-c to finish the key
+ selection (Bug#11159).
+ (epa-insert-keys): Inform that the default public key will be
+ exported if no key is selected.
+
+2012-04-04 Richard Stallman <rms@gnu.org>
+
+ * mail/emacsbug.el (report-emacs-bug): Bind inhibit-read-only.
+
+2012-04-03 Chong Yidong <cyd@gnu.org>
+
+ * mail/sendmail.el (mail-mode-map): Bind C-c C-i to
+ mail-insert-file, not its obsolete alias mail-attach-file.
+
+2012-04-03 Michael Albinus <michael.albinus@gmx.de>
+
+ * notifications.el (notifications-notify): Fix docstring.
+
+2012-04-02 Glenn Morris <rgm@gnu.org>
+
+ * emacs-lisp/authors.el (authors-aliases): Another addition.
+
+2012-04-02 Michael Albinus <michael.albinus@gmx.de>
+
+ * net/tramp-gvfs.el (tramp-gvfs-send-command): Apply
+ `tramp-compat-call-process' instead of `tramp-local-call-process'.
+ Reported by Magnus Henoch <magnus.henoch@gmail.com>.
+
+2012-04-01 Chong Yidong <cyd@gnu.org>
+
+ * files.el (file-in-directory-p): Rename from file-subdir-of-p.
+ Handle root directory properly.
+ (copy-directory): Caller changed.
+
+ * dired-aux.el (dired-copy-file-recursive, dired-create-files):
+ * net/tramp.el (tramp-file-name-for-operation): Callers changed.
+
+2012-03-31 Glenn Morris <rgm@gnu.org>
+
+ * term/xterm.el (xterm-extra-capabilities): Doc fix.
+
+ * language/indian.el ("Devanagari"): Fix typo. (Bug#11103)
+
+ * calendar/calendar.el (calendar-window-list)
+ (calendar-hide-window): Restore. (Bug#11140)
+ (calendar-exit): Use calendar-window-list, calendar-hide-window again.
+
+ * emacs-lisp/edebug.el (edebug-unwrap-results): Doc fix.
+
+2012-03-30 Thierry Volpiatto <thierry.volpiatto@gmail.com>
+
+ * dired-aux.el (dired-copy-file-recursive, dired-create-files):
+ Check if file is a symlink (Bug#10489).
+
+ * files.el (copy-directory): Likewise.
+
+2012-03-30 Chong Yidong <cyd@gnu.org>
+
+ * image.el (imagemagick-types-inhibit)
+ (imagemagick-register-types): Doc fix.
+
+2012-03-30 Agustín Martín Domingo <agustin.martin@hispalinux.es>
+
+ * ispell.el (ispell-get-extended-character-mode): Disable
+ extended-char-mode for hunspell. hunspell does not support it
+ and treats ~word as ordinary words in pipe mode.
+
+2012-03-30 Glenn Morris <rgm@gnu.org>
+
+ * tutorial.el (help-with-tutorial): Ensure local variables don't
+ happen to make the buffer read-only. (Bug#11127)
+
+2012-03-30 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * progmodes/perl-mode.el (perl-indent-line): Use `noindent' in strings.
+ (perl-calculate-indent): Return `noindent' in strings.
+
+2012-03-28 Sam Steingold <sds@gnu.org>
+
+ * calendar/calendar.el (calendar-exit): Use `quit-windows-on'
+ instead of the broken adhockery which does not prevent calendar
+ buffers from being displayed at random after exit.
+ (calendar-window-list, calendar-hide-window): Remove the broken
+ adhockery.
+
+2012-03-28 Glenn Morris <rgm@gnu.org>
+
+ * replace.el (query-replace-map): Doc fix.
+
+2012-03-28 Andreas Schwab <schwab@linux-m68k.org>
+
+ * vc/vc-git.el (vc-git-state): Don't try to match all of the diff
+ contents. (Bug#11109)
+
+2012-03-27 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/avl-tree.el (avl-tree--enter-balance): Fix paren typo
+ (bug#11077).
+ (avl-tree--check, avl-tree--check-node): New funs.
+
+2012-03-27 Martin Rudalics <rudalics@gmx.at>
+
+ * window.el (switch-to-visible-buffer): New option.
+ (switch-to-prev-buffer, switch-to-next-buffer):
+ Observe switch-to-visible-buffer. Make sure that checking for a window
+ showing a buffer already is done on the same frame.
+
+2012-03-27 Glenn Morris <rgm@gnu.org>
+
+ * startup.el (mail-host-address): Doc fix.
+
+2012-03-26 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * emacs-lisp/bytecomp.el (byte-compile-constants-vector): Allow more
+ than 197 variables.
+
+2012-03-26 Ami Fischman <ami@fischman.org>
+
+ * vc/vc-git.el (vc-git-state): Avoid unnecessarily locking.
+
+2012-03-26 Glenn Morris <rgm@gnu.org>
+
+ * files.el (save-buffers-kill-emacs): Doc fix.
+
+ * startup.el (normal-top-level, command-line, command-line-1):
+ Give them doc strings.
+
+2012-03-25 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (install): Use $(DIRNAME)_same-dir.tst instead
+ of same-dir.tst, to avoid stepping on other (parallel) Make job's toes.
+
+2012-03-25 Chong Yidong <cyd@gnu.org>
+
+ * custom.el (load-theme): Even if NO-ENABLE arg is t, reenable the
+ theme if it was previously enabled before (Bug#11031).
+
+ * cus-theme.el (custom-theme-write-faces): Retrieve current face
+ spec with custom-face-get-current-spec if its :shown-value is not
+ determined yet (Bug#9337).
+ (customize-create-theme, custom-theme-revert): Doc fixes.
+
+ * button.el (button-at): Minor addition to docstring.
+
+2012-03-24 Simon Leinen <simon.leinen@gmail.com>
+
+ * vc/vc.el (vc-merge): Fix a prompt.
+
+2012-03-24 Chong Yidong <cyd@gnu.org>
+
+ * mwheel.el (mwheel-scroll): Call deactivate-mark at the right
+ point (Bug#9623).
+
+ * button.el (button-at): Minor addition to docstring.
2012-03-23 Stefan Monnier <monnier@iro.umontreal.ca>
(hfy-face-to-css-default): Same as the earlier `hfy-face-to-css'.
(hfy-face-to-css): Re-defined to be a variable.
(hfy-compile-stylesheet): Modify. Allow stylesheet to be built
- over multiple runs. This is made possible by having the caller let
+ over multiple runs. This is made possible by having the caller let
bind a special variable `hfy-user-sheet-assoc'.
(htmlfontify-string): New defun.
(hfy-compile-face-map): Make sure that the last char in the
2012-03-09 Michael Albinus <michael.albinus@gmx.de>
- * net/dbus.el: (dbus-property-handler): Return empty array if
+ * net/dbus.el (dbus-property-handler): Return empty array if
there are no properties.
2012-03-09 Leo Liu <sdl.web@gmail.com>
* term/x-win.el (x-initialize-window-system): Reduce default for
x-selection-timeout to 5 seconds (Bug#8869).
-2012-02-24 Thierry Volpiatto <thierry.volpiatto@gmail.com>
-
- * files.el (file-subdir-of-p): Fix typo.
-
2012-02-24 Thierry Volpiatto <thierry.volpiatto@gmail.com>
* files.el (files-equal-p, file-subdir-of-p): New functions.
2004-01-29 Jari Aalto <jari.aalto@poboxes.com>
* progmodes/executable.el (executable-command-find-posix-p):
- New. Check if find handles arguments Posix-style.
+ New. Check if find handles arguments POSIX-style.
* progmodes/grep.el (grep-compute-defaults):
Use executable-command-find-posix-p.
* calendar/appt.el (diary-selective-display): Add defvar.
- * sort.el (sort-columns): Use Posix arg syntax for `sort'.
+ * sort.el (sort-columns): Use POSIX arg syntax for `sort'.
* isearch.el (search-whitespace-regexp): Fix custom type.
* ediff-diff.el (ediff-setup-fine-diff-regions):
Allow diff options to be passed to the diff program.
- (ediff-make-diff2-buffer): Don't run Posix diff on remote files.
+ (ediff-make-diff2-buffer): Don't run POSIX diff on remote files.
(ediff-make-diff2-buffer): Refuses to diff remote files.
(ediff-make-diff2-buffer, ediff-setup-diff-regions): Changed functions.
(ediff-make-diff2-buffer): New function.
)
;; ;;;_ = allout-widgets-allow-unruly-edits
;; (defcustom allout-widgets-allow-unruly-edits nil
-;; "*Control whether manual edits are restricted to maintain outline integrity.
+;; "Control whether manual edits are restricted to maintain outline integrity.
;; When nil, manual edits must either be within an item's body or encompass
;; one or more items completely - eg, killing topics as entities, rather than
;;;_ = allout-widgets-item-image-properties-emacs
(defcustom allout-widgets-item-image-properties-emacs
'(:ascent center :mask (heuristic t))
- "*Default properties item widget images in mainline Emacs."
+ "Default properties item widget images in mainline Emacs."
:version "24.1"
:type 'plist
:group 'allout-widgets)
;;;_ = allout-widgets-item-image-properties-xemacs
(defcustom allout-widgets-item-image-properties-xemacs
nil
- "*Default properties item widget images in XEmacs."
+ "Default properties item widget images in XEmacs."
:version "24.1"
:type 'plist
:group 'allout-widgets)
;;;_ . Developer
;;;_ = allout-widgets-run-unit-tests-on-load
(defcustom allout-widgets-run-unit-tests-on-load nil
- "*When non-nil, unit tests will be run at end of loading allout-widgets.
+ "When non-nil, unit tests will be run at end of loading allout-widgets.
Generally, allout widgets code developers are the only ones who'll want to
set this.
:group 'allout-widgets-developer)
;;;_ = allout-widgets-time-decoration-activity
(defcustom allout-widgets-time-decoration-activity nil
- "*Retain timing info of the last cooperative redecoration.
+ "Retain timing info of the last cooperative redecoration.
The details are retained as the value of
`allout-widgets-last-decoration-timing'.
:group 'allout-widgets-developer)
;;;_ = allout-widgets-hook-error-post-time 0
(defcustom allout-widgets-hook-error-post-time 0
- "*Amount of time to sit showing hook error messages.
+ "Amount of time to sit showing hook error messages.
0 is minimal, or nil to not post to the message area.
:group 'allout-widgets-developer)
;;;_ = allout-widgets-maintain-tally nil
(defcustom allout-widgets-maintain-tally nil
- "*If non-nil, maintain a collection of widgets, `allout-widgets-tally'.
+ "If non-nil, maintain a collection of widgets, `allout-widgets-tally'.
This is for debugging purposes.
(format ":%s" (hash-table-count allout-widgets-tally))))
;;;_ = allout-widgets-track-decoration nil
(defcustom allout-widgets-track-decoration nil
- "*If non-nil, show cursor position of each item decoration.
+ "If non-nil, show cursor position of each item decoration.
This is for debugging purposes, and generally set at need in a
buffer rather than as a prevailing configuration \(but it's handy
;;;_ , Widget-specific outline text format
;;;_ = allout-escaped-prefix-regexp
(defvar allout-escaped-prefix-regexp ""
- "*Regular expression for body text that would look like an item prefix if
+ "Regular expression for body text that would look like an item prefix if
not altered with an escape sequence.")
(make-variable-buffer-local 'allout-escaped-prefix-regexp)
;;;_ , Widget element formatting
;;;_ : Topic header format
;;;_ = allout-regexp
(defvar allout-regexp ""
- "*Regular expression to match the beginning of a heading line.
+ "Regular expression to match the beginning of a heading line.
Any line whose beginning matches this regexp is considered a
heading. This var is set according to the user configuration vars
(make-variable-buffer-local 'allout-bullets-string-len)
;;;_ = allout-depth-specific-regexp
(defvar allout-depth-specific-regexp ""
- "*Regular expression to match a heading line prefix for a particular depth.
+ "Regular expression to match a heading line prefix for a particular depth.
This expression is used to search for depth-specific topic
headers at depth 2 and greater. Use `allout-depth-one-regexp'
(make-variable-buffer-local 'allout-depth-specific-regexp)
;;;_ = allout-depth-one-regexp
(defvar allout-depth-one-regexp ""
- "*Regular expression to match a heading line prefix for depth one.
+ "Regular expression to match a heading line prefix for depth one.
This var is set according to the user configuration vars by
`set-allout-regexp'. It is prepared with format strings for two
,expr))
;;;_ = allout-mode-hook
(defvar allout-mode-hook nil
- "*Hook that's run when allout mode starts.")
+ "Hook that's run when allout mode starts.")
;;;_ = allout-mode-deactivate-hook
(defvar allout-mode-deactivate-hook nil
- "*Hook that's run when allout mode ends.")
+ "Hook that's run when allout mode ends.")
(define-obsolete-variable-alias 'allout-mode-deactivate-hook
'allout-mode-off-hook "24.1")
;;;_ = allout-exposure-category
"Symbol for use as allout invisible-text overlay category.")
;;;_ = allout-exposure-change-hook
(defvar allout-exposure-change-hook nil
- "*Hook that's run after allout outline subtree exposure changes.
+ "Hook that's run after allout outline subtree exposure changes.
It is run at the conclusion of `allout-flag-region'.
This hook might be invoked multiple times by a single command.")
;;;_ = allout-structure-added-hook
(defvar allout-structure-added-hook nil
- "*Hook that's run after addition of items to the outline.
+ "Hook that's run after addition of items to the outline.
Functions on the hook should take two arguments:
This hook might be invoked multiple times by a single command.")
;;;_ = allout-structure-deleted-hook
(defvar allout-structure-deleted-hook nil
- "*Hook that's run after disciplined deletion of subtrees from the outline.
+ "Hook that's run after disciplined deletion of subtrees from the outline.
Functions on the hook must take two arguments:
This hook might be invoked multiple times by a single command.")
;;;_ = allout-structure-shifted-hook
(defvar allout-structure-shifted-hook nil
- "*Hook that's run after shifting of items in the outline.
+ "Hook that's run after shifting of items in the outline.
Functions on the hook should take two arguments:
This hook might be invoked multiple times by a single command.")
;;;_ = allout-after-copy-or-kill-hook
(defvar allout-after-copy-or-kill-hook nil
- "*Hook that's run after copying outline text.
+ "Hook that's run after copying outline text.
Functions on the hook should not require any arguments.")
;;;_ = allout-post-undo-hook
(defvar allout-post-undo-hook nil
- "*Hook that's run after undo activity.
+ "Hook that's run after undo activity.
The item that's current when the hook is run *may* be the one
that was affected by the undo.
#'(lambda (symbol)
(and (boundp symbol)
(get symbol 'variable-documentation)))
- 'user-variable-p)))
+ 'custom-variable-p)))
;; For auld lang syne:
;;;###autoload
;;; Code:
-(provide 'avoid)
+(eval-when-compile (require 'cl))
(defgroup avoid nil
"Make mouse pointer stay out of the way of editing."
:type 'integer
:group 'avoid)
+(defcustom mouse-avoidance-banish-position '((frame-or-window . frame)
+ (side . right)
+ (side-pos . 3)
+ (top-or-bottom . top)
+ (top-or-bottom-pos . 0))
+ "Position to which Mouse Avoidance mode `banish' moves the mouse.
+An alist where keywords mean:
+FRAME-OR-WINDOW: banish the mouse to corner of frame or window.
+SIDE: banish the mouse on right or left corner of frame or window.
+SIDE-POS: Distance from right or left edge of frame or window.
+TOP-OR-BOTTOM: banish the mouse to top or bottom of frame or window.
+TOP-OR-BOTTOM-POS: Distance from top or bottom edge of frame or window."
+ :group 'avoid
+ :type '(alist :key-type symbol :value-type symbol)
+ :options '(frame-or-window side (side-pos integer)
+ top-or-bottom (top-or-bottom-pos integer)))
+
;; Internal variables
(defvar mouse-avoidance-state nil)
(defvar mouse-avoidance-pointer-shapes nil)
(defun mouse-avoidance-banish-destination ()
"The position to which Mouse Avoidance mode `banish' moves the mouse.
-You can redefine this if you want the mouse banished to a different corner."
- (let* ((pos (window-edges)))
- (cons (- (nth 2 pos) 2)
- (nth 1 pos))))
+
+If you want the mouse banished to a different corner set
+`mouse-avoidance-banish-position' as you need."
+ (let* ((fra-or-win (assoc-default
+ 'frame-or-window
+ mouse-avoidance-banish-position 'eq))
+ (list-values (case fra-or-win
+ (frame (list 0 0 (frame-width) (frame-height)))
+ (window (window-edges))))
+ (alist (loop for v in list-values
+ for k in '(left top right bottom)
+ collect (cons k v)))
+ (side (assoc-default
+ 'side
+ mouse-avoidance-banish-position 'eq))
+ (side-dist (assoc-default
+ 'side-pos
+ mouse-avoidance-banish-position 'eq))
+ (top-or-bottom (assoc-default
+ 'top-or-bottom
+ mouse-avoidance-banish-position 'eq))
+ (top-or-bottom-dist (assoc-default
+ 'top-or-bottom-pos
+ mouse-avoidance-banish-position 'eq))
+ (side-fn (case side
+ (left '+)
+ (right '-)))
+ (top-or-bottom-fn (case top-or-bottom
+ (top '+)
+ (bottom '-))))
+ (cons (funcall side-fn ; -/+
+ (assoc-default side alist 'eq) ; right or left
+ side-dist) ; distance from side
+ (funcall top-or-bottom-fn ; -/+
+ (assoc-default top-or-bottom alist 'eq) ; top/bottom
+ top-or-bottom-dist)))) ; distance from top/bottom
(defun mouse-avoidance-banish-mouse ()
- ;; Put the mouse pointer in the upper-right corner of the current frame.
+ "Put the mouse pointer to `mouse-avoidance-banish-position'."
(mouse-avoidance-set-mouse-position (mouse-avoidance-banish-destination)))
(defsubst mouse-avoidance-delta (cur delta dist var min max)
(if mouse-avoidance-mode
(mouse-avoidance-mode mouse-avoidance-mode))
+(provide 'avoid)
+
;;; avoid.el ends here
:prefix "battery-"
:group 'hardware)
+;; Either BATn or yeeloong-bat, basically.
+(defconst battery--linux-sysfs-regexp "[bB][aA][tT][0-9]?$")
+
(defcustom battery-status-function
(cond ((and (eq system-type 'gnu/linux)
(file-readable-p "/proc/apm"))
'battery-linux-proc-acpi)
((and (eq system-type 'gnu/linux)
(file-directory-p "/sys/class/power_supply/")
- (directory-files "/sys/class/power_supply/" nil "BAT[0-9]$"))
+ (directory-files "/sys/class/power_supply/" nil
+ battery--linux-sysfs-regexp))
'battery-linux-sysfs)
- ((and (eq system-type 'gnu/linux)
- (file-directory-p "/sys/class/power_supply/yeeloong-bat/")
- (directory-files "/sys/class/power_supply/yeeloong-bat/" nil "charge_"))
- 'battery-yeeloong-sysfs)
((and (eq system-type 'darwin)
(condition-case nil
(with-temp-buffer
"Power %L, battery %B (%p%% load)")
((eq battery-status-function 'battery-pmset)
"%L power, battery %B (%p%% load, remaining time %t)")
- ((eq battery-status-function 'battery-yeeloong-sysfs)
- "%L power, battery %B (%p%% load, remaining time %t)")
(battery-status-function
"Power %L, battery %B (%p%% load, remaining time %t)"))
"Control string formatting the string to display in the echo area.
(setq charging-state (match-string 1)))
(when (re-search-forward "present rate: +\\([0-9]+\\) \\(m[AW]\\)$"
nil t)
- (setq rate (+ (or rate 0) (string-to-number (match-string 1)))
- rate-type (or (and rate-type
+ (setq rate (+ (or rate 0) (string-to-number (match-string 1))))
+ (when (> rate 0)
+ (setq rate-type (or (and rate-type
(if (string= rate-type (match-string 2))
rate-type
(error
"Inconsistent rate types (%s vs. %s)"
rate-type (match-string 2))))
- (match-string 2))))
+ (match-string 2)))))
(when (re-search-forward "remaining capacity: +\\([0-9]+\\) m[AW]h$"
nil t)
(setq capacity
(with-temp-buffer
(dolist (dir (ignore-errors
(directory-files
- "/sys/class/power_supply/" t "BAT[0-9]$")))
+ "/sys/class/power_supply/" t
+ battery--linux-sysfs-regexp)))
(erase-buffer)
(ignore-errors (insert-file-contents
(expand-file-name "uevent" dir)))
"AC"
"BAT")
"N/A")))))
-
-(defun battery-yeeloong-sysfs ()
- "Get ACPI status information from Linux (the kernel).
-This function works only on the Lemote Yeeloong.
-
-The following %-sequences are provided:
-%c Current capacity (mAh)
-%r Current rate
-%B Battery status (verbose)
-%b Battery status, empty means high, `-' means low,
- `!' means critical, and `+' means charging
-%L AC line status (verbose)
-%p Battery load percentage
-%m Remaining time (to charge or discharge) in minutes
-%h Remaining time (to charge or discharge) in hours
-%t Remaining time (to charge or discharge) in the form `h:min'"
-
- (let (capacity
- capacity-level
- status
- ac-online
- hours
- current-now
- charge-full
- charge-now)
-
- (with-temp-buffer
- (ignore-errors
- (insert-file-contents "/sys/class/power_supply/yeeloong-bat/uevent")
- (goto-char 1)
- (search-forward "POWER_SUPPLY_CHARGE_NOW=")
- (setq charge-now (read (current-buffer)))
- (goto-char 1)
- (search-forward "POWER_SUPPLY_CHARGE_FULL=")
- (setq charge-full (read (current-buffer)))
- (goto-char 1)
- (search-forward "POWER_SUPPLY_CURRENT_NOW=")
- (setq current-now (read (current-buffer)))
- (goto-char 1)
- (search-forward "POWER_SUPPLY_CAPACITY_LEVEL=")
- (setq capacity-level (buffer-substring (point) (line-end-position)))
- (goto-char 1)
- (search-forward "POWER_SUPPLY_STATUS=")
- (setq status (buffer-substring (point) (line-end-position))))
-
- (erase-buffer)
- (ignore-errors
- (insert-file-contents
- "/sys/class/power_supply/yeeloong-ac/online")
- (goto-char 1)
- (setq ac-online (read (current-buffer)))
- (erase-buffer)))
-
-
- (setq capacity (round (/ (* charge-now 100.0) charge-full)))
- (when (and current-now (not (= current-now 0)))
- (if (< current-now 0)
- ;; Charging
- (setq hours (/ (- charge-now charge-full) (+ 0.0 current-now)))
- ;; Discharging
- (setq hours (/ charge-now (+ 0.0 current-now)))))
-
- (list (cons ?c (if charge-now
- (number-to-string charge-now)
- "N/A"))
- (cons ?r current-now)
- (cons ?B (cond ((equal capacity-level "Full") "full")
- ((equal status "Charging") "charging")
- ((equal capacity-level "Low") "low")
- ((equal capacity-level "Critical") "critical")
- (t "high")))
- (cons ?b (cond ((equal capacity-level "Full") " ")
- ((equal status "Charging") "+")
- ((equal capacity-level "Low") "-")
- ((equal capacity-level "Critical") "!")
- (t " ")))
- (cons ?h (if hours (number-to-string hours) "N/A"))
- (cons ?m (if hours (number-to-string (* 60 hours)) "N/A"))
- (cons ?t (if hours
- (format "%d:%d"
- (/ (round (* 60 hours)) 60)
- (% (round (* 60 hours)) 60))
- "N/A"))
- (cons ?p (if capacity (number-to-string capacity) "N/A"))
- (cons ?L (if (eq ac-online 1) "AC" "BAT")))))
\f
;;; `pmset' interface for Darwin (OS X).
"Keymap for navigation commands.")
(define-key esc-map "g" goto-map)
+(define-key goto-map "c" 'goto-char)
(define-key goto-map "g" 'goto-line)
(define-key goto-map "\M-g" 'goto-line)
(define-key goto-map "n" 'next-error)
;; Finding buttons in a buffer
(defun button-at (pos)
- "Return the button at position POS in the current buffer, or nil."
+ "Return the button at position POS in the current buffer, or nil.
+If the button at POS is a text property button, the return value
+is a marker pointing to POS."
(let ((button (get-char-property pos 'button)))
(if (or (overlayp button) (null button))
button
(defvar math-additional-units nil
- "*Additional units table for user-defined units.
+ "Additional units table for user-defined units.
Must be formatted like `math-standard-units'.
If you change this, be sure to set `math-units-table' to nil to ensure
that the combined units table will be rebuilt.")
Used by `calc-user-invocation'.")
(defcalcmodevar calc-show-banner t
- "*If non-nil, show a friendly greeting above the stack.")
+ "If non-nil, show a friendly greeting above the stack.")
(defconst calc-local-var-list '(calc-stack
calc-stack-top
;;; cal-tex.el --- calendar functions for printing calendars with LaTeX
-;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1995, 2001-2012 Free Software Foundation, Inc.
;; Author: Steve Fisk <fisk@bowdoin.edu>
;; Edward M. Reingold <reingold@cs.uiuc.edu>
(cal-tex-e-document)
(or (and cal-tex-preamble-extra
(string-match "inputenc" cal-tex-preamble-extra))
- (not (re-search-backward "[^[:ascii:]]" nil 'move))
- (progn
+ (when (re-search-backward "[^[:ascii:]]" nil 'move)
(goto-char (point-min))
(when (search-forward "documentclass" nil t)
(forward-line 1)
"Check the list of holidays for any that occur on DATE.
DATE is a list (month day year). This function considers the
holidays from the list `calendar-holidays', and returns a list of
-strings describing those holidays that apply on DATE."
+strings describing those holidays that apply on DATE, or nil if none do."
(let ((displayed-month (calendar-extract-month date))
(displayed-year (calendar-extract-year date))
holiday-list)
"Keymap used in data-debug.")
(defcustom data-debug-mode-hook nil
- "*Hook run when data-debug starts."
+ "Hook run when data-debug starts."
:group 'data-debug
:type 'hook)
(:background "#AAAA33"))
(((class color) (background light))
(:background "#FFFFAA")))
- "*Face used at beginning of a highlight."
+ "Face used at beginning of a highlight."
:group 'pulse)
(defface pulse-highlight-face
(:background "#AAAA33"))
(((class color) (background light))
(:background "#FFFFAA")))
- "*Face used during a pulse for display. *DO NOT CUSTOMIZE*
+ "Face used during a pulse for display. *DO NOT CUSTOMIZE*
Face used for temporary highlighting of tags for effect."
:group 'pulse)
)
(defvar semantic-working-type 'percent
- "*The type of working message to use when parsing.
+ "The type of working message to use when parsing.
'percent means we are doing a linear parse through the buffer.
'dynamic means we are reparsing specific tags.")
(semantic-varalias-obsolete 'semantic-bovination-working-type
'semantic-working-type "23.2")
(defvar semantic-minimum-working-buffer-size (* 1024 5)
- "*The minimum size of a buffer before working messages are displayed.
+ "The minimum size of a buffer before working messages are displayed.
Buffers smaller than this will parse silently.
Buffers larger than this will display the working progress bar.")
See `color-lighten-hsl'."
(apply 'color-rgb-to-hex
(apply 'color-hsl-to-rgb
- (apply 'color-lighten--hsl
+ (apply 'color-lighten-hsl
(append
(apply 'color-rgb-to-hsl
(color-name-to-rgb name))
(defun comint--common-quoted-suffix (s1 s2)
;; FIXME: Copied in pcomplete.el.
"Find the common suffix between S1 and S2 where S1 is the expanded S2.
-S1 is expected to be the unquoted and expanded version of S1.
+S1 is expected to be the unquoted and expanded version of S2.
Returns (PS1 . PS2), i.e. the shortest prefixes of S1 and S2, such that
S1 = (concat PS1 SS1) and S2 = (concat PS2 SS2) and
SS1 = (unquote SS2)."
(let* ((cs (comint--common-suffix s1 s2))
(ss1 (substring s1 (- (length s1) cs)))
(qss1 (comint-quote-filename ss1))
- qc)
+ qc s2b)
(if (and (not (equal ss1 qss1))
(setq qc (comint-quote-filename (substring ss1 0 1)))
- (eq t (compare-strings s2 (- (length s2) cs (length qc) -1)
- (- (length s2) cs -1)
+ (setq s2b (- (length s2) cs (length qc) -1))
+ (>= s2b 0) ;bug#11158.
+ (eq t (compare-strings s2 s2b (- (length s2) cs -1)
qc nil nil)))
;; The difference found is just that one char is quoted in S2
;; but not in S1, keep looking before this difference.
(comint--common-quoted-suffix
(substring s1 0 (- (length s1) cs))
- (substring s2 0 (- (length s2) cs (length qc) -1)))
+ (substring s2 0 s2b))
(cons (substring s1 0 (- (length s1) cs))
(substring s2 0 (- (length s2) cs))))))
:group 'completion)
;;(defvar *record-cmpl-statistics-p* nil
-;; "*If non-nil, record completion statistics.")
+;; "If non-nil, record completion statistics.")
;;(defvar *completion-auto-save-period* 1800
-;; "*The period in seconds to wait for emacs to be idle before autosaving
+;; "The period in seconds to wait for emacs to be idle before autosaving
;;the completions. Default is a 1/2 hour.")
(defvar completion-min-length 6
- "*The minimum length of a stored completion.
+ "The minimum length of a stored completion.
DON'T CHANGE WITHOUT RECOMPILING ! This is used by macros.")
(defvar completion-max-length 200
- "*The maximum length of a stored completion.
+ "The maximum length of a stored completion.
DON'T CHANGE WITHOUT RECOMPILING ! This is used by macros.")
(defvar completion-prefix-min-length 3
;; coding.c
(inhibit-eol-conversion mule boolean)
(eol-mnemonic-undecided mule string)
- (eol-mnemonic-unix mule string)
- (eol-mnemonic-dos mule string)
- (eol-mnemonic-mac mule string)
+ ;; startup.el fiddles with the values. IMO, would be
+ ;; simpler to just use #ifdefs in coding.c.
+ (eol-mnemonic-unix mule string nil
+ :standard
+ (if (memq system-type '(ms-dos windows-nt))
+ "(Unix)" ":"))
+ (eol-mnemonic-dos mule string nil
+ :standard
+ (if (memq system-type '(ms-dos windows-nt))
+ "\\" "(DOS)"))
+ (eol-mnemonic-mac mule string nil
+ :standard "(Mac)")
(file-coding-system-alist
mule
(alist
(defun customize-create-theme (&optional theme buffer)
"Create or edit a custom theme.
THEME, if non-nil, should be an existing theme to edit. If THEME
-is `user', provide an option to remove these as custom settings.
+is `user', the resulting *Custom Theme* buffer also contains a
+checkbox for removing the theme settings specified in the buffer
+from the Custom save file.
BUFFER, if non-nil, should be a buffer to use; the default is
named *Custom Theme*."
(interactive)
(message "")))
(defun custom-theme-revert (_ignore-auto noconfirm)
+ "Revert the current *Custom Theme* buffer.
+This is the `revert-buffer-function' for `custom-new-theme-mode'."
(when (or noconfirm (y-or-n-p "Discard current changes? "))
(customize-create-theme custom-theme--save-name (current-buffer))))
(princ theme)
(princ "\n")
(dolist (spec faces)
+ ;; Insert the face iff the checkbox widget is checked.
(when (widget-get (nth 1 spec) :value)
(let* ((symbol (nth 0 spec))
(widget (nth 2 spec))
(value
- (if (car-safe (widget-get widget :children))
- (custom-face-widget-to-spec widget)
- ;; Child is null if the widget is closed (hidden).
- (widget-get widget :shown-value))))
+ (cond
+ ((car-safe (widget-get widget :children))
+ (custom-face-widget-to-spec widget))
+ ;; Child is null if the widget is closed (hidden).
+ ((widget-get widget :shown-value))
+ (t (custom-face-get-current-spec symbol)))))
(when (and (facep symbol) value)
(princ (if (bolp) " '(" "\n '("))
(prin1 symbol)
(put symbol 'custom-autoload (if noset 'noset t))
(custom-add-load symbol load))
-;; This test is also in the C code of `user-variable-p'.
(defun custom-variable-p (variable)
"Return non-nil if VARIABLE is a customizable variable.
A customizable variable is either (i) a variable whose property
list contains a non-nil `standard-value' or `custom-autoload'
property, or (ii) an alias for another customizable variable."
- (setq variable (indirect-variable variable))
- (or (get variable 'standard-value)
- (get variable 'custom-autoload)))
+ (when (symbolp variable)
+ (setq variable (indirect-variable variable))
+ (or (get variable 'standard-value)
+ (get variable 'custom-autoload))))
+
+(define-obsolete-function-alias 'user-variable-p 'custom-variable-p "24.2")
(defun custom-note-var-changed (variable)
"Inform Custom that VARIABLE has been set (changed).
(SYMBOL EXP [NOW [REQUEST [COMMENT]]])
-This stores EXP (without evaluating it) as the saved value for SYMBOL.
-If NOW is present and non-nil, then also evaluate EXP and set
-the default value for the SYMBOL to the value of EXP.
+SYMBOL is the variable name, and EXP is an expression which
+evaluates to the customized value. EXP will also be stored,
+without evaluating it, in SYMBOL's `saved-value' property, so
+that it can be restored via the Customize interface. It is also
+added to the alist in SYMBOL's `theme-value' property \(by
+calling `custom-push-theme').
-REQUEST is a list of features we must require in order to
-handle SYMBOL properly.
-COMMENT is a comment string about SYMBOL.
+NOW, if present and non-nil, means to install the variable's
+value directly now, even if its `defcustom' declaration has not
+been executed. This is for internal use only.
-EXP itself is saved unevaluated as SYMBOL property `saved-value' and
-in SYMBOL's list property `theme-value' \(using `custom-push-theme')."
+REQUEST is a list of features to `require' (which are loaded
+prior to evaluating EXP).
+
+COMMENT is a comment string about SYMBOL."
(custom-check-theme theme)
;; Process all the needed autoloads before anything else, so that the
optional arg NO-CONFIRM is non-nil, load the theme without
prompting.
-Normally, this function also enables THEME; if optional arg
-NO-ENABLE is non-nil, load the theme but don't enable it.
+Normally, this function also enables THEME. If optional arg
+NO-ENABLE is non-nil, load the theme but don't enable it, unless
+the theme was already enabled.
This function is normally called through Customize when setting
`custom-enabled-themes'. If used directly in your init file, it
nil nil))
(unless (custom-theme-name-valid-p theme)
(error "Invalid theme name `%s'" theme))
+ ;; If THEME is already enabled, re-enable it after loading, even if
+ ;; NO-ENABLE is t.
+ (if no-enable
+ (setq no-enable (not (custom-theme-enabled-p theme))))
;; If reloading, clear out the old theme settings.
(when (custom-theme-p theme)
(disable-theme theme)
:type 'hook)
(defvar dframe-track-mouse-function nil
- "*A function to call when the mouse is moved in the given frame.
+ "A function to call when the mouse is moved in the given frame.
Typically used to display info about the line under the mouse.")
(make-variable-buffer-local 'dframe-track-mouse-function)
(defvar dframe-help-echo-function nil
- "*A function to call when help-echo is used in newer versions of Emacs.
+ "A function to call when help-echo is used in newer versions of Emacs.
Typically used to display info about the line under the mouse.")
(make-variable-buffer-local 'dframe-help-echo-function)
(defvar dframe-mouse-click-function nil
- "*A function to call when the mouse is clicked.
+ "A function to call when the mouse is clicked.
Valid clicks are mouse 2, our double mouse 1.")
(make-variable-buffer-local 'dframe-mouse-click-function)
(defvar dframe-mouse-position-function nil
- "*A function to call to position the cursor for a mouse click.")
+ "A function to call to position the cursor for a mouse click.")
(make-variable-buffer-local 'dframe-mouse-position-function)
(defvar dframe-power-click nil
" (default now): "
": ")))
(new-attribute (dired-mark-read-string prompt nil op-symbol
- arg files default))
+ arg files default
+ (cond ((eq op-symbol 'chown)
+ (system-users))
+ ((eq op-symbol 'chgrp)
+ (system-groups)))))
(operation (concat program " " new-attribute))
failures)
(setq failures
(dired-run-shell-command (dired-shell-stuff-it command file-list nil))))
(defun dired-mark-read-string (prompt initial op-symbol arg files
- &optional default-value)
+ &optional default-value collection)
"Read args for a Dired marked-files command, prompting with PROMPT.
Return the user input (a string).
DEFAULT-VALUE, if non-nil, should be a \"standard\" value or list
of such values, available via history commands. Note that if the
user enters empty input, this function returns the empty string,
-not DEFAULT-VALUE."
+not DEFAULT-VALUE.
+
+Optional argument COLLECTION is a collection of possible completions,
+suitable for use by `completing-read'."
(dired-mark-pop-up nil op-symbol files
- 'read-from-minibuffer
+ 'completing-read
(format prompt (dired-mark-prompt arg files))
- initial nil nil nil default-value))
+ collection nil nil initial nil default-value nil))
\f
;;; Cleaning a directory: flagging some backups for deletion.
(defun dired-copy-file-recursive (from to ok-flag &optional
preserve-time top recursive)
- (when (file-subdir-of-p to from)
+ (when (and (eq t (car (file-attributes from)))
+ (file-in-directory-p to from))
(error "Cannot copy `%s' into its subdirectory `%s'" from to))
(let ((attrs (file-attributes from)))
(if (and recursive
(file-directory-p to)
(eq file-creator 'dired-copy-file))
(setq to destname))
- ;; If DESTNAME and FROM are the same directory or
- ;; If DESTNAME is a subdirectory of FROM, return error.
- (and (file-subdir-of-p destname from)
- (error "Cannot copy `%s' into its subdirectory `%s'"
- from to)))
+ ;; If DESTNAME is a subdirectory of FROM, not a symlink,
+ ;; and the method in use is copying, signal an error.
+ (and (eq t (car (file-attributes destname)))
+ (eq file-creator 'dired-copy-file)
+ (file-in-directory-p destname from)
+ (error "Cannot copy `%s' into its subdirectory `%s'"
+ from to)))
(condition-case err
(progn
(funcall file-creator from to dired-overwrite-confirmed)
;;;;;; dired-run-shell-command dired-do-shell-command dired-do-async-shell-command
;;;;;; dired-clean-directory dired-do-print dired-do-touch dired-do-chown
;;;;;; dired-do-chgrp dired-do-chmod dired-compare-directories dired-backup-diff
-;;;;;; dired-diff) "dired-aux" "dired-aux.el" "cab9b84177ac3555c24cf8e870a64095")
+;;;;;; dired-diff) "dired-aux" "dired-aux.el" "58d623eb8e68e472e6164a1bcae83360")
;;; Generated autoloads from dired-aux.el
(autoload 'dired-diff "dired-aux" "\
("\\.tp[ulpw]$" . t) ; borland Pascal stuff
("[:/]tags$" . nil) ; emacs TAGS file
)
- "*Alist for distinguishing text files from binary files.
+ "Alist for distinguishing text files from binary files.
Each element has the form (REGEXP . TYPE), where REGEXP is matched
against the file name, and TYPE is nil for text, t for binary.")
;;; Support for printing under DOS/Windows, see lpr.el and ps-print.el.
(defvar direct-print-region-use-command-dot-com t
- "*Control whether command.com is used to print on Windows 9x.")
+ "Control whether command.com is used to print on Windows 9x.")
;; Function to actually send data to the printer port.
;; Supports writing directly, and using various programs.
("Thomas Dye" "Tom Dye")
("Thomas Horsley" "Tom Horsley") ; FIXME ?
("Thomas Wurgler" "Tom Wurgler")
+ ("Toby Cubitt" "Toby S\\. Cubitt")
("Tomohiko Morioka" "MORIOKA Tomohiko")
("Torbjörn Axelsson" "Torbjvrn Axelsson")
("Torbjörn Einarsson" "Torbj.*rn Einarsson")
(define-obsolete-function-alias 'update-autoloads-from-directories
'update-directory-autoloads "22.1")
-(defvar autoload-make-program (or (getenv "MAKE") "make")
- "Name of the make program in use during the Emacs build process.")
-
;;;###autoload
(defun batch-update-autoloads ()
"Update loaddefs.el autoloads in batch mode.
(if (> (* sgn b2) 0) (- sgn) 0)
(avl-tree--node-balance p1)
(if (< (* sgn b2) 0) sgn 0)
- (avl-tree--node-branch node branch) p2
- (avl-tree--node-balance
- (avl-tree--node-branch node branch)) 0))
+ (avl-tree--node-branch node branch) p2))
+ (setf (avl-tree--node-balance
+ (avl-tree--node-branch node branch)) 0)
nil))))
(defun avl-tree--do-enter (cmpfun root branch data &optional updatefun)
(cons nil newdata)) ; return value
))))
+(defun avl-tree--check (tree)
+ "Check the tree's balance."
+ (avl-tree--check-node (avl-tree--root tree)))
+(defun avl-tree--check-node (node)
+ (if (null node) 0
+ (let ((dl (avl-tree--check-node (avl-tree--node-left node)))
+ (dr (avl-tree--check-node (avl-tree--node-right node))))
+ (assert (= (- dr dl) (avl-tree--node-balance node)))
+ (1+ (max dl dr)))))
+
;; ----------------------------------------------------------------
string-to-multibyte
tan truncate
unibyte-char-to-multibyte upcase user-full-name
- user-login-name user-original-login-name user-variable-p
+ user-login-name user-original-login-name custom-variable-p
vconcat
window-buffer window-dedicated-p window-edges window-height
window-hscroll window-minibuffer-p window-width
(limits '(5 ; Use the 1-byte varref codes,
63 ; 1-constlim ; 1-byte byte-constant codes,
255 ; 2-byte varref codes,
- 65535)) ; 3-byte codes for the rest.
+ 65535 ; 3-byte codes for the rest.
+ 65535)) ; twice since we step when we swap.
limit)
(while (or rest other)
(setq limit (car limits))
(setcdr (car rest) (setq i (1+ i)))
(setq ret (cons (car rest) ret))))
(setq rest (cdr rest)))
- (setq limits (cdr limits)
- rest (prog1 other
+ (setq limits (cdr limits) ;Step
+ rest (prog1 other ;&Swap.
(setq other rest))))
(apply 'vector (nreverse (mapcar 'car ret)))))
Useful if new Emacs is used on B&W display.")
(defcustom chart-face-use-pixmaps nil
- "*Non-nil to use fancy pixmaps in the background of chart face colors."
+ "Non-nil to use fancy pixmaps in the background of chart face colors."
:group 'eieio
:type 'boolean)
;;; cl-extra.el --- Common Lisp features, part 2
-;; Copyright (C) 1993, 2000-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1993, 2000-2012 Free Software Foundation, Inc.
;; Author: Dave Gillespie <daveg@synaptics.com>
;; Keywords: extensions
;; Random numbers.
-(defvar *random-state*)
;;;###autoload
(defun random* (lim &optional state)
"Return a random nonnegative number less than LIM, an integer or float.
;; repeat-command still does the toggling correctly.
(interactive (list (or current-prefix-arg 'toggle)))
(let ((,last-message (current-message)))
- (,@(if setter (list setter)
+ (,@(if setter `(funcall #',setter)
(list (if (symbolp mode) 'setq 'setf) mode))
(if (eq arg 'toggle)
(not ,mode)
;;; edebug.el --- a source-level debugger for Emacs Lisp
-;; Copyright (C) 1988-1995, 1997, 1999-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1988-1995, 1997, 1999-2012 Free Software Foundation, Inc.
;; Author: Daniel LaLiberte <liberte@holonexus.org>
;; Maintainer: FSF
(defcustom edebug-unwrap-results nil
"Non-nil if Edebug should unwrap results of expressions.
+That is, Edebug will try to remove its own instrumentation from the result.
This is useful when debugging macros where the results of expressions
are instrumented expressions. But don't do this when results might be
circular or an infinite loop will result."
(def-edebug-spec apply (function-form &rest form))
(def-edebug-spec funcall (function-form &rest form))
-;; FIXME? The manual has a gate here.
+;; FIXME? The manual uses this form (maybe that's just for illustration?):
+;; (def-edebug-spec let
+;; ((&rest &or symbolp (gate symbolp &optional form))
+;; body))
(def-edebug-spec let
((&rest &or (symbolp &optional form) symbolp)
body))
;; FIXME eh?
(defvar gud-inhibit-global-bindings
- "*Non-nil means don't do global rebindings of C-x C-a subcommands.")
+ "Non-nil means don't do global rebindings of C-x C-a subcommands.")
;; Global GUD bindings for all emacs-lisp-mode buffers.
(unless gud-inhibit-global-bindings
;;; Frequency count and coverage
;; FIXME should this use overlays instead?
+;; Definitely, IMO. The current business with undo in
+;; edebug-temp-display-freq-count is horrid.
(defun edebug-display-freq-count ()
"Display the frequency count data for each line of the current definition.
The frequency counts are inserted as comment lines after each line,
(insert "\n")
(setq i first-index)))))
+;; FIXME this does not work very well. Eg if you press an arrow key,
+;; or make a mouse-click, it fails with "Non-character input-event".
(defun edebug-temp-display-freq-count ()
"Temporarily display the frequency count data for the current definition.
It is removed when you hit any char."
(undo-boundary)
(edebug-display-freq-count)
(setq unread-command-char (read-char))
+ ;; Yuck! This doesn't seem to work at all for me.
(undo)))
\f
;;; CLASS COMPLETION / DOCUMENTATION
-;;;###autoload
-(defalias 'describe-class 'eieio-describe-class)
+;;;###autoload(defalias 'describe-class 'eieio-describe-class)
;;;###autoload
(defun eieio-describe-class (class &optional headerfcn)
;;; METHOD COMPLETION / DOC
(defalias 'describe-method 'eieio-describe-generic)
-;;;###autoload
-(defalias 'describe-generic 'eieio-describe-generic)
+;;;###autoload(defalias 'describe-generic 'eieio-describe-generic)
(defalias 'eieio-describe-method 'eieio-describe-generic)
;;;###autoload
;;
(defvar eieio-hook nil
- "*This hook is executed, then cleared each time `defclass' is called.")
+ "This hook is executed, then cleared each time `defclass' is called.")
(defvar eieio-error-unsupported-class-tags nil
"Non-nil to throw an error if an encountered tag is unsupported.
since EIEIO does not support all CLOS tags.")
(defvar eieio-skip-typecheck nil
- "*If non-nil, skip all slot typechecking.
+ "If non-nil, skip all slot typechecking.
Set this to t permanently if a program is functioning well to get a
small speed increase. This variable is also used internally to handle
default setting for optimization purposes.")
is called, the next method is popped off the stack.")
(defvar eieio-pre-method-execution-hooks nil
- "*Hooks run just before a method is executed.
+ "Hooks run just before a method is executed.
The hook function must accept one argument, the list of forms
about to be executed.")
;; Copyright (C) 2008, 2010-2012 Free Software Foundation, Inc.
;; Author: Lennart Borgman (lennart O borgman A gmail O com)
-;; Author: Christian Ohler <ohler@gnu.org>
+;; Christian Ohler <ohler@gnu.org>
;; This file is part of GNU Emacs.
;;; Running tests in batch mode.
(defvar ert-batch-backtrace-right-margin 70
- "*The maximum line length for printing backtraces in `ert-run-tests-batch'.")
+ "The maximum line length for printing backtraces in `ert-run-tests-batch'.")
;;;###autoload
(defun ert-run-tests-batch (&optional selector)
;; Try first in this order for the sake of languages with nested
;; functions where several can end at the same place as with
;; the offside rule, e.g. Python.
- (beginning-of-defun)
+
+ ;; Finding the start of the function is a bit problematic since
+ ;; `beginning-of-defun' when we are on the first character of
+ ;; the function might go to the previous function.
+ ;;
+ ;; Therefore we first move one character forward and then call
+ ;; `beginning-of-defun'. However now we must check that we did
+ ;; not move into the next function.
+ (let ((here (point)))
+ (unless (eolp)
+ (forward-char))
+ (beginning-of-defun)
+ (when (< (point) here)
+ (goto-char here)
+ (beginning-of-defun)))
(setq beg (point))
(end-of-defun)
(setq end (point))
\f
;;; Workhorse functions.
-(eval-when-compile
- (require 'cl))
-
(defun regexp-opt-group (strings &optional paren lax)
"Return a regexp to match a string in the sorted list STRINGS.
If PAREN non-nil, output regexp parentheses around returned regexp.
;;
;; Make a character map but extract character set meta characters.
(dolist (char chars)
- (case char
- (?\]
- (setq bracket "]"))
- (?^
- (setq caret "^"))
- (?-
- (setq dash "-"))
- (otherwise
- (aset charmap char t))))
+ (cond
+ ((eq char ?\])
+ (setq bracket "]"))
+ ((eq char ?^)
+ (setq caret "^"))
+ ((eq char ?-)
+ (setq dash "-"))
+ (t
+ (aset charmap char t))))
;;
;; Make a character set from the map using ranges where applicable.
(map-char-table
(setq charset (format "%s%c-%c" charset start end))
(while (>= end start)
(setq charset (format "%s%c" charset start))
- (incf start)))
+ (setq start (1+ start))))
(setq start (car c) end (cdr c)))
(if (= (1- c) end) (setq end c)
(if (> end (+ start 2))
(setq charset (format "%s%c-%c" charset start end))
(while (>= end start)
(setq charset (format "%s%c" charset start))
- (incf start)))
+ (setq start (1+ start))))
(setq start c end c)))))
charmap)
(when (>= end start)
(setq charset (format "%s%c-%c" charset start end))
(while (>= end start)
(setq charset (format "%s%c" charset start))
- (incf start))))
+ (setq start (1+ start)))))
;;
;; Make sure a caret is not first and a dash is first or last.
(if (and (string-equal charset "") (string-equal bracket ""))
"Third-to-last timer that was run.")
(defvar timer-max-repeats 10
- "*Maximum number of times to repeat a timer, if many repeats are delayed.
+ "Maximum number of times to repeat a timer, if many repeats are delayed.
Timer invocations can be delayed because Emacs is suspended or busy,
or because the system's time changes. If such an occurrence makes it
appear that many invocations are overdue, this variable controls
:group 'emacs-lock
:version "24.1")
+(defcustom emacs-lock-locked-buffer-functions nil
+ "Abnormal hook run when Emacs Lock prevents exiting Emacs, or killing a buffer.
+The functions get one argument, the first locked buffer found."
+ :type 'hook
+ :group 'emacs-lock
+ :version "24.2")
+
(defvar emacs-lock-mode nil
"If non-nil, the current buffer is locked.
It can be one of the following values:
(or (eq unlock 'all) (eq unlock action))))))
(defun emacs-lock--exit-locked-buffer ()
- "Return the name of the first exit-locked buffer found."
+ "Return the first exit-locked buffer found."
(save-current-buffer
(catch :found
(dolist (buffer (buffer-list))
(set-buffer buffer)
(unless (or (emacs-lock--can-auto-unlock 'exit)
(memq emacs-lock-mode '(nil kill)))
- (throw :found (buffer-name))))
+ (throw :found buffer)))
nil)))
(defun emacs-lock--kill-emacs-hook ()
"Signal an error if any buffer is exit-locked.
Used from `kill-emacs-hook' (which see)."
- (let ((buffer-name (emacs-lock--exit-locked-buffer)))
- (when buffer-name
- (error "Emacs cannot exit because buffer %S is locked" buffer-name))))
+ (let ((locked (emacs-lock--exit-locked-buffer)))
+ (when locked
+ (run-hook-with-args 'emacs-lock-locked-buffer-functions locked)
+ (error "Emacs cannot exit because buffer %S is locked"
+ (buffer-name locked)))))
(defun emacs-lock--kill-emacs-query-functions ()
"Display a message if any buffer is exit-locked.
Return a value appropriate for `kill-emacs-query-functions' (which see)."
(let ((locked (emacs-lock--exit-locked-buffer)))
- (or (not locked)
- (progn
- (message "Emacs cannot exit because buffer %S is locked" locked)
- nil))))
+ (if (not locked)
+ t
+ (run-hook-with-args 'emacs-lock-locked-buffer-functions locked)
+ (message "Emacs cannot exit because buffer %S is locked"
+ (buffer-name locked))
+ nil)))
(defun emacs-lock--kill-buffer-query-functions ()
"Display a message if the current buffer is kill-locked.
Return a value appropriate for `kill-buffer-query-functions' (which see)."
- (or (emacs-lock--can-auto-unlock 'kill)
- (memq emacs-lock-mode '(nil exit))
- (progn
- (message "Buffer %S is locked and cannot be killed" (buffer-name))
- nil)))
+ (if (or (emacs-lock--can-auto-unlock 'kill)
+ (memq emacs-lock-mode '(nil exit)))
+ t
+ (run-hook-with-args 'emacs-lock-locked-buffer-functions (current-buffer))
+ (message "Buffer %S is locked and cannot be killed" (buffer-name))
+ nil))
(defun emacs-lock--set-mode (mode arg)
"Setter function for `emacs-lock-mode'."
(setq this-command 'cua-paste-pop))))
(defun cua-exchange-point-and-mark (arg)
- "Exchanges point and mark, but don't activate the mark.
-Activates the mark if a prefix argument is given."
+ "Exchange point and mark.
+Don't activate the mark if `cua-enable-cua-keys' is non-nil.
+Otherwise, just activate the mark if a prefix ARG is given.
+
+See also `exchange-point-and-mark'."
(interactive "P")
- (if arg
- (setq mark-active t)
- (let (mark-active)
- (exchange-point-and-mark)
- (if cua--rectangle
- (cua--rectangle-corner 0)))))
+ (cond ((null cua-enable-cua-keys)
+ (exchange-point-and-mark arg))
+ (arg
+ (setq mark-active t))
+ (t
+ (let (mark-active)
+ (exchange-point-and-mark)
+ (if cua--rectangle
+ (cua--rectangle-corner 0))))))
;; Typed text that replaced the highlighted region.
(defvar cua--repeat-replace-text nil)
;; (and region not started with C-SPC).
;; If rectangle is active, expand rectangle in specified direction and
;; ignore the movement.
- ((if window-system
- ;; Shortcut for window-system, assuming that input-decode-map is empty.
- (memq 'shift (event-modifiers
- (aref (this-single-command-raw-keys) 0)))
- (or
- ;; Check if the final key-sequence was shifted.
- (memq 'shift (event-modifiers
- (aref (this-single-command-keys) 0)))
- ;; If not, maybe the raw key-sequence was mapped by input-decode-map
- ;; to a shifted key (and then mapped down to its unshifted form).
- (let* ((keys (this-single-command-raw-keys))
- (ev (lookup-key input-decode-map keys)))
- (or (and (vector ev) (memq 'shift (event-modifiers (aref ev 0))))
- ;; Or maybe, the raw key-sequence was not an escape sequence
- ;; and was shifted (and then mapped down to its unshifted form).
- (memq 'shift (event-modifiers (aref keys 0)))))))
+ (this-command-keys-shift-translated
(unless mark-active
(push-mark-command nil t))
(setq cua--last-region-shifted t)
(defcustom viper-smart-suffix-list
'("" "tex" "c" "cc" "C" "java" "el" "html" "htm" "xml"
"pl" "flr" "P" "p" "h" "H")
- "*List of suffixes that Viper tries to append to filenames ending with a `.'.
+ "List of suffixes that Viper tries to append to filenames ending with a `.'.
This is useful when the current directory contains files with the same
prefix and many different suffixes. Usually, only one of the suffixes
represents an editable file. However, file completion will stop at the `.'
(defvar viper-keep-reading-filename nil)
(defcustom ex-cycle-other-window t
- "*If t, :n and :b cycles through files and buffers in other window.
+ "If t, :n and :b cycles through files and buffers in other window.
Then :N and :B cycles in the current window. If nil, this behavior is
reversed."
:type 'boolean
:group 'viper-ex)
(defcustom ex-cycle-through-non-files nil
- "*Cycle through *scratch* and other buffers that don't visit any file."
+ "Cycle through *scratch* and other buffers that don't visit any file."
:type 'boolean
:group 'viper-ex)
(defconst viper-buffer-undo-list-mark 'viper)
(defcustom viper-keep-point-on-undo nil
- "*Non-nil means not to move point while undoing commands.
+ "Non-nil means not to move point while undoing commands.
This style is different from Emacs and Vi. Try it to see if
it better fits your working style."
:type 'boolean
:group 'viper)
(defcustom viper-replace-overlay-cursor-color "Red"
- "*Cursor color when Viper is in Replace state."
+ "Cursor color when Viper is in Replace state."
:type 'string
:group 'viper)
(defcustom viper-use-replace-region-delimiters
(or (not (viper-has-face-support-p))
(and (featurep 'xemacs) (eq (viper-device-type) 'tty)))
- "*If non-nil, Viper will always use `viper-replace-region-end-delimiter' and
+ "If non-nil, Viper will always use `viper-replace-region-end-delimiter' and
`viper-replace-region-start-delimiter' to delimit replacement regions, even on
color displays. By default, the delimiters are used only on TTYs."
:type 'boolean
;; Fast keyseq and ESC keyseq timeouts
(defcustom viper-fast-keyseq-timeout 200
- "*Key sequence separated by no more than this many milliseconds is viewed as a Vi-style macro, if such a macro is defined.
+ "Key sequence separated by no more than this many milliseconds is viewed as a Vi-style macro, if such a macro is defined.
Setting this too high may slow down your typing. Setting this value too low
will make it hard to use Vi-style timeout macros."
:type 'integer
(viper-deflocalvar viper-auto-indent nil "")
(defcustom viper-auto-indent nil
- "*Enable autoindent, if t.
+ "Enable autoindent, if t.
This is a buffer-local variable."
:type 'boolean
:group 'viper)
(viper-deflocalvar viper-electric-mode t "")
(defcustom viper-electric-mode t
- "*If t, electrify Viper.
+ "If t, electrify Viper.
Currently, this only electrifies auto-indentation, making it appropriate to the
mode of the buffer.
This means that auto-indentation will depart from standard Vi and will indent
:group 'viper)
(defcustom viper-shift-width 8
- "*The value of the shiftwidth.
+ "The value of the shiftwidth.
This determines the number of columns by which the Ctl-t moves the cursor in
the Insert state."
:type 'integer
;; Variables for repeating destructive commands
(defcustom viper-keep-point-on-repeat t
- "*If t, don't move point when repeating previous command.
+ "If t, don't move point when repeating previous command.
This is useful for doing repeated changes with the '.' key.
The user can change this to nil, if she likes when the cursor moves
to a new place after repeating previous Vi command."
(defvar viper-s-forward nil)
(defcustom viper-case-fold-search nil
- "*If not nil, search ignores cases."
+ "If not nil, search ignores cases."
:type 'boolean
:group 'viper-search)
(defcustom viper-re-search t
- "*If not nil, search is regexp search, otherwise vanilla search."
+ "If not nil, search is regexp search, otherwise vanilla search."
:type 'boolean
:tag "Regexp Search"
:group 'viper-search)
(defcustom viper-search-scroll-threshold 2
- "*If search lands within this threshold from the window top/bottom,
+ "If search lands within this threshold from the window top/bottom,
the window will be scrolled up or down appropriately, to reveal context.
If you want Viper search to behave as usual in Vi, set this variable to a
negative number."
:group 'viper-search)
(defcustom viper-re-query-replace t
- "*If t then do regexp replace, if nil then do string replace."
+ "If t then do regexp replace, if nil then do string replace."
:type 'boolean
:tag "Regexp Query Replace"
:group 'viper-search)
(defcustom viper-re-replace t
- "*If t, do regexp replace. nil means do string replace."
+ "If t, do regexp replace. nil means do string replace."
:type 'boolean
:tag "Regexp Replace"
:group 'viper-search)
(defcustom viper-parse-sexp-ignore-comments t
- "*If t, `%' ignores the parentheses that occur inside comments."
+ "If t, `%' ignores the parentheses that occur inside comments."
:type 'boolean
:group 'viper)
(viper-deflocalvar viper-ex-style-motion t "")
(defcustom viper-ex-style-motion t
- "*If t, the commands l,h do not cross lines, etc (Ex-style).
+ "If t, the commands l,h do not cross lines, etc (Ex-style).
If nil, these commands cross line boundaries."
:type 'boolean
:group 'viper)
(viper-deflocalvar viper-ex-style-editing t "")
(defcustom viper-ex-style-editing t
- "*If t, Ex-style behavior while editing in Vi command and insert states.
+ "If t, Ex-style behavior while editing in Vi command and insert states.
`Backspace' and `Delete' don't cross line boundaries in insert.
`X' and `x' can't delete characters across line boundary in Vi, etc.
Note: this doesn't preclude `Backspace' and `Delete' from deleting characters
(viper-deflocalvar viper-ESC-moves-cursor-back viper-ex-style-editing "")
(defcustom viper-ESC-moves-cursor-back nil
- "*If t, ESC moves cursor back when changing from insert to vi state.
+ "If t, ESC moves cursor back when changing from insert to vi state.
If nil, the cursor stays where it was when ESC was hit."
:type 'boolean
:group 'viper)
(viper-deflocalvar viper-delete-backwards-in-replace nil "")
(defcustom viper-delete-backwards-in-replace nil
- "*If t, DEL key will delete characters while moving the cursor backwards.
+ "If t, DEL key will delete characters while moving the cursor backwards.
If nil, the cursor will move backwards without deleting anything."
:type 'boolean
:group 'viper)
(defcustom viper-buffer-search-char nil
- "*Key used for buffer-searching. Must be a character type, e.g., ?g."
+ "Key used for buffer-searching. Must be a character type, e.g., ?g."
:type '(choice (const nil) character)
:group 'viper-search)
(defcustom viper-search-wrap-around t
- "*If t, search wraps around."
+ "If t, search wraps around."
:type 'boolean
:tag "Search Wraps Around"
:group 'viper-search)
(viper-deflocalvar viper-related-files-and-buffers-ring nil "")
(defcustom viper-related-files-and-buffers-ring nil
- "*List of file and buffer names that are considered to be related to the current buffer.
+ "List of file and buffer names that are considered to be related to the current buffer.
Related buffers can be cycled through via :R and :P commands."
:type 'boolean
:group 'viper-misc)
"^\\\\[sb][a-z]*{.*}\\s-*$\\|" ; latex
"^@node\\|@table\\|^@m?enu\\|^@itemize\\|^@if\\|" ; texinfo
"^.+:-") ; prolog
- "*Regexps for Headings. Used by \[\[ and \]\].")
+ "Regexps for Headings. Used by \[\[ and \]\].")
(defvar viper-heading-end
(concat "^}\\|" ; C/C++
(defface viper-search
'((((class color)) (:foreground "Black" :background "khaki"))
(t (:underline t :stipple "gray3")))
- "*Face used to flash out the search pattern."
+ "Face used to flash out the search pattern."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
(defvar viper-search-face 'viper-search
(defface viper-replace-overlay
'((((class color)) (:foreground "Black" :background "darkseagreen2"))
(t (:underline t :stipple "gray3")))
- "*Face for highlighting replace regions on a window display."
+ "Face for highlighting replace regions on a window display."
:group 'viper-highlighting)
;; An internal variable. Viper takes the face from here.
(defvar viper-replace-overlay-face 'viper-replace-overlay
:group 'viper)
(defcustom viper-vi-state-hook 'viper-restore-cursor-type
- "*Hooks run just before the switch to Vi mode is completed."
+ "Hooks run just before the switch to Vi mode is completed."
:type 'hook
:group 'viper-hooks)
(defcustom viper-insert-state-hook 'viper-set-insert-cursor-type
- "*Hooks run just before the switch to Insert mode is completed."
+ "Hooks run just before the switch to Insert mode is completed."
:type 'hook
:group 'viper-hooks)
(defcustom viper-replace-state-hook 'viper-restore-cursor-type
- "*Hooks run just before the switch to Replace mode is completed."
+ "Hooks run just before the switch to Replace mode is completed."
:type 'hook
:group 'viper-hooks)
(defcustom viper-emacs-state-hook 'viper-restore-cursor-type
- "*Hooks run just before the switch to Emacs mode is completed."
+ "Hooks run just before the switch to Emacs mode is completed."
:type 'hook
:group 'viper-hooks)
(setq cursor-type '(bar . 2))))
(defun viper-ESC-keyseq-timeout ()
- "*Key sequence beginning with ESC and separated by no more than this many milliseconds is considered to be generated by a keyboard function key.
+ "Key sequence beginning with ESC and separated by no more than this many milliseconds is considered to be generated by a keyboard function key.
Setting this too high may slow down switching from insert to vi state. Setting
this value too low will make it impossible to use function keys in insert mode
on a dumb terminal."
;;; Emacs keys in other states.
(defcustom viper-want-emacs-keys-in-insert t
- "*Set to nil if you want complete Vi compatibility in insert mode.
+ "Set to nil if you want complete Vi compatibility in insert mode.
Complete compatibility with Vi is not recommended for power use of Viper."
:type 'boolean
:group 'viper)
(defcustom viper-want-emacs-keys-in-vi t
- "*Set to nil if you want complete Vi compatibility in Vi mode.
+ "Set to nil if you want complete Vi compatibility in Vi mode.
Full Vi compatibility is not recommended for power use of Viper."
:type 'boolean
:group 'viper)
(defcustom viper-no-multiple-ESC t
- "*If true, multiple ESC in Vi mode will cause bell to ring.
+ "If true, multiple ESC in Vi mode will cause bell to ring.
This is set to t on a windowing terminal and to 'twice on a dumb
terminal (unless the user level is 1, 2, or 5). On a dumb terminal, this
enables cursor keys and is generally more convenient, as terminals usually
:group 'viper)
(defcustom viper-want-ctl-h-help nil
- "*If non-nil, C-h gets bound to help-command; otherwise, C-h gets the usual Vi bindings."
+ "If non-nil, C-h gets bound to help-command; otherwise, C-h gets the usual Vi bindings."
:type 'boolean
:group 'viper)
(defvar viper-current-frame-saved (selected-frame))
(defcustom viper-surrounding-word-function 'viper-surrounding-word
- "*Function that determines what constitutes a word for clicking events.
+ "Function that determines what constitutes a word for clicking events.
Takes two parameters: a COUNT, indicating how many words to return,
and CLICK-COUNT, telling whether this is the first click, a double-click,
or a triple-click."
mouse-track-multi-click-time
double-click-time)
500)
- "*Time interval in millisecond within which successive mouse clicks are
+ "Time interval in millisecond within which successive mouse clicks are
considered related."
:type 'integer
:group 'viper-mouse)
(defcustom viper-mouse-search-key '(meta shift 1)
- "*Key used to click-search in Viper.
+ "Key used to click-search in Viper.
This must be a list that specifies the mouse button and modifiers.
The supported modifiers are `meta', `shift', and `control'.
For instance, `(meta shift 1)' means that holding the meta and shift
:group 'viper-mouse)
(defcustom viper-mouse-insert-key '(meta shift 2)
- "*Key used to click-insert in Viper.
+ "Key used to click-insert in Viper.
Must be a list that specifies the mouse button and modifiers.
The supported modifiers are `meta', `shift', and `control'.
For instance, `(meta shift 2)' means that holding the meta and shift keys
(viper-update-syntax-classes))
(defcustom viper-syntax-preference 'reformed-vi
- "*Syntax type characterizing Viper's alphanumeric symbols.
+ "Syntax type characterizing Viper's alphanumeric symbols.
Affects movement and change commands that deal with Vi-style words.
Works best when set in the hooks to various major modes.
view-mode
vm-mode
vm-summary-mode)
- "*A list of major modes that should come up in Emacs state.
+ "A list of major modes that should come up in Emacs state.
Normally, Viper would bring buffers up in Emacs state, unless the corresponding
major mode has been placed on `viper-vi-state-mode-list' or
`viper-insert-state-mode-list'. So, don't place a new mode on this list,
erc-mode
eshell-mode
shell-mode)
- "*A list of major modes that should come up in Vi Insert state."
+ "A list of major modes that should come up in Vi Insert state."
:type '(repeat symbol)
:group 'viper-misc)
(20 . ?G)))
(defvar epa-protocol 'OpenPGP
- "*The default protocol.
+ "The default protocol.
The value can be either OpenPGP or CMS.
You should bind this variable with `let', but do not set it globally.")
(defvar epa-armor nil
- "*If non-nil, epa commands create ASCII armored output.
+ "If non-nil, epa commands create ASCII armored output.
You should bind this variable with `let', but do not set it globally.")
(defvar epa-textmode nil
- "*If non-nil, epa commands treat input files as text.
+ "If non-nil, epa commands treat input files as text.
You should bind this variable with `let', but do not set it globally.")
(setq epa-keys-buffer (generate-new-buffer "*Keys*")))
(with-current-buffer epa-keys-buffer
(epa-key-list-mode)
+ ;; C-c C-c is the usual way to finish the selection (bug#11159).
+ (define-key (current-local-map) "\C-c\C-c" 'exit-recursive-edit)
(let ((inhibit-read-only t)
buffer-read-only)
(erase-buffer)
"Insert selected KEYS after the point."
(interactive
(list (epa-select-keys (epg-make-context epa-protocol)
- "Select keys to export. ")))
+ "Select keys to export.
+If no one is selected, default public key is exported. ")))
(let ((context (epg-make-context epa-protocol)))
;;(epg-context-set-armor context epa-armor)
(epg-context-set-armor context t)
+2012-04-11 Vivek Dasmohapatra <vivek@etla.org>
+
+ * erc-services.el (erc-nickserv-passwords): Don't display the
+ password (bug#4459).
+
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * erc-join.el (erc-server-join-channel): New function to look up
+ the channel password via auth-source.
+ (erc-autojoin-channels): Use it.
+ (erc-autojoin-after-ident): Ditto.
+ (erc-autojoin-channels-alist): Mention auth-source.
+
+2012-04-10 Deniz Dogan <deniz@dogan.se> (tiny change)
+
+ * erc.el (erc-display-prompt): Adds the field text property to the
+ ERC prompt. This allows users to use `kill-whole-line' to kill
+ all text back to the prompt given that it's on a single line
+ (bug#10841).
+
+2012-04-09 Chong Yidong <cyd@gnu.org>
+
+ * erc.el (erc-cmd-SET): Call custom-variable-p instead of
+ user-variable-p.
+
2012-02-08 Glenn Morris <rgm@gnu.org>
* erc-backend.el (erc-coding-system-precedence):
(remove-hook 'erc-server-305-functions 'erc-autoaway-reset-indicators))))
(defcustom erc-autoaway-idle-method 'user
- "*The method used to determine how long you have been idle.
+ "The method used to determine how long you have been idle.
If 'user, the time of the last command sent to Emacs is used.
If 'emacs, the idle time in Emacs is used.
If 'irc, the time of the last IRC command is used.
(set sym val))))
(defcustom erc-auto-set-away t
- "*If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling.
+ "If non-nil, set away after `erc-autoaway-idle-seconds' seconds of idling.
ERC autoaway mode can set you away when you idle, and set you no
longer away when you type something. This variable controls whether
you will be set away when you idle. See `erc-auto-discard-away' for
:type 'boolean)
(defcustom erc-auto-discard-away t
- "*If non-nil, sending anything when away automatically discards away state.
+ "If non-nil, sending anything when away automatically discards away state.
ERC autoaway mode can set you away when you idle, and set you no
longer away when you type something. This variable controls whether
you will be set no longer away when you type something. See
:type 'boolean)
(defcustom erc-autoaway-no-auto-discard-regexp "^/g?away.*$"
- "*Input that matches this will not automatically discard away status.
+ "Input that matches this will not automatically discard away status.
See `erc-auto-discard-away'."
:group 'erc-autoaway
:type 'regexp)
(defcustom erc-autoaway-idle-seconds 1800
- "*Number of seconds after which ERC will set you automatically away.
+ "Number of seconds after which ERC will set you automatically away.
If you are changing this variable using lisp instead of customizing it,
you have to run `erc-autoaway-reestablish-idletimer' afterwards."
:group 'erc-autoaway
(defcustom erc-autoaway-message
"I'm gone (autoaway after %i seconds of idletime)"
- "*Message ERC will use when setting you automatically away.
+ "Message ERC will use when setting you automatically away.
It is used as a `format' string with the argument of the idletime
in seconds."
:group 'erc-autoaway
:type 'number)
(defcustom erc-split-line-length 440
- "*The maximum length of a single message.
+ "The maximum length of a single message.
If a message exceeds this size, it is broken into multiple ones.
IRC allows for lines up to 512 bytes. Two of them are CR LF.
:type 'function)
(defcustom erc-server-prevent-duplicates '("301")
- "*Either nil or a list of strings.
+ "Either nil or a list of strings.
Each string is a IRC message type, like PRIVMSG or NOTICE.
All Message types in that list of subjected to duplicate prevention."
:type '(choice (const nil) (list string))
:group 'erc-server)
(defcustom erc-server-duplicate-timeout 60
- "*The time allowed in seconds between duplicate messages.
+ "The time allowed in seconds between duplicate messages.
If two identical messages arrive within this value of one another, the second
isn't displayed."
;; (http://www.nongnu.org/circe)
(defcustom erc-server-flood-margin 10
- "*A margin on how much excess data we send.
+ "A margin on how much excess data we send.
The flood protection algorithm of ERC works like the one
detailed in RFC 2813, section 5.8 \"Flood control of clients\".
;; Ping handling
(defcustom erc-server-send-ping-interval 30
- "*Interval of sending pings to the server, in seconds.
+ "Interval of sending pings to the server, in seconds.
If this is set to nil, pinging the server is disabled."
:group 'erc-server
:type '(choice (const :tag "Disabled" nil)
(integer :tag "Seconds")))
(defcustom erc-server-send-ping-timeout 120
- "*If the time between ping and response is greater than this, reconnect.
+ "If the time between ping and response is greater than this, reconnect.
The time is in seconds.
This must be greater than or equal to the value for
:type 'boolean)
(defcustom erc-button-rfc-url "http://www.faqs.org/rfcs/rfc%s.html"
- "*URL used to browse rfc references.
+ "URL used to browse rfc references.
%s is replaced by the number."
:group 'erc-button
:type 'string)
(defcustom erc-button-google-url "http://www.google.com/search?q=%s"
- "*URL used to browse Google search references.
+ "URL used to browse Google search references.
%s is replaced by the search string."
:group 'erc-button
:type 'string)
1)
;; other
("\\s-\\(@\\([0-9][0-9][0-9]\\)\\)" 1 t erc-button-beats-to-time 2))
- "*Alist of regexps matching buttons in ERC buffers.
+ "Alist of regexps matching buttons in ERC buffers.
Each entry has the form (REGEXP BUTTON FORM CALLBACK PAR...), where
REGEXP is the string matching text around the button or a symbol
(integer :tag "Regexp section number")))))
(defcustom erc-emacswiki-url "http://www.emacswiki.org/cgi-bin/wiki.pl?"
- "*URL of the EmacsWiki Homepage."
+ "URL of the EmacsWiki Homepage."
:group 'erc-button
:type 'string)
(defcustom erc-emacswiki-lisp-url "http://www.emacswiki.org/elisp/"
- "*URL of the EmacsWiki ELisp area."
+ "URL of the EmacsWiki ELisp area."
:group 'erc-button
:type 'string)
("Query" . (erc-cmd-QUERY nick))
("Whois" . (erc-cmd-WHOIS nick))
("Lastlog" . (erc-cmd-LASTLOG nick)))
- "*An alist of possible actions to take on a nickname.
+ "An alist of possible actions to take on a nickname.
An entry looks like (\"Action\" . SEXP) where SEXP is evaluated with
the variable `nick' bound to the nick in question.
:group 'erc)
(defcustom erc-dcc-verbose nil
- "*If non-nil, be verbose about DCC activity reporting."
+ "If non-nil, be verbose about DCC activity reporting."
:group 'erc-dcc
:type 'boolean)
:valid-regexp erc-dcc-ipv4-regexp)))
(defcustom erc-dcc-send-request 'ask
- "*How to treat incoming DCC Send requests.
+ "How to treat incoming DCC Send requests.
'ask - Report the Send request, and wait for the user to manually accept it
You might want to set `erc-dcc-auto-masks' for this.
'auto - Automatically accept the request and begin downloading the file
;;; Interactive command handling
(defcustom erc-dcc-get-default-directory nil
- "*Default directory for incoming DCC file transfers.
+ "Default directory for incoming DCC file transfers.
If this is nil, then the current value of `default-directory' is used."
:group 'erc-dcc
:type '(choice (const nil :tag "Default directory") directory))
"^DCC CHAT +chat +\\([0-9]+\\) +\\([0-9]+\\)")
(defcustom erc-dcc-chat-request 'ask
- "*How to treat incoming DCC Chat requests.
+ "How to treat incoming DCC Chat requests.
'ask - Report the Chat request, and wait for the user to manually accept it
'auto - Automatically accept the request and open a new chat window
'ignore - Ignore incoming DCC chat requests completely."
;;; SEND handling
(defcustom erc-dcc-block-size 1024
- "*Block size to use for DCC SEND sessions."
+ "Block size to use for DCC SEND sessions."
:group 'erc-dcc
:type 'integer)
(defcustom erc-dcc-pump-bytes nil
- "*If set to an integer, keep sending until that number of bytes are
+ "If set to an integer, keep sending until that number of bytes are
unconfirmed."
:group 'erc-dcc
:type '(choice (const nil) integer))
(defcustom erc-dcc-send-connect-hook
'(erc-dcc-display-send erc-dcc-send-block)
- "*Hook run whenever the remote end of a DCC SEND offer connected to your
+ "Hook run whenever the remote end of a DCC SEND offer connected to your
listening port."
:group 'erc-dcc
:type 'hook)
;;; CHAT handling
(defcustom erc-dcc-chat-buffer-name-format "DCC-CHAT-%s"
- "*Format to use for DCC Chat buffer names."
+ "Format to use for DCC Chat buffer names."
:group 'erc-dcc
:type 'string)
(defcustom erc-dcc-chat-mode-hook nil
- "*Hook calls when `erc-dcc-chat-mode' finished setting up the buffer."
+ "Hook calls when `erc-dcc-chat-mode' finished setting up the buffer."
:group 'erc-dcc
:type 'hook)
(defalias 'pcomplete/erc-mode/SREQ 'pcomplete/erc-mode/CREQ)
(defvar erc-dcc-chat-filter-hook '(erc-dcc-chat-parse-output)
- "*Hook to run after doing parsing (and possible insertion) of DCC messages.")
+ "Hook to run after doing parsing (and possible insertion) of DCC messages.")
(defvar erc-dcc-chat-mode-map
(let ((map (make-sparse-keymap)))
:group 'erc)
(defcustom erc-interpret-controls-p t
- "*If non-nil, display IRC colors and other highlighting effects.
+ "If non-nil, display IRC colors and other highlighting effects.
If this is set to the symbol `remove', ERC removes all IRC colors and
highlighting effects. When this variable is non-nil, it can cause Emacs to run
(const :tag "Display raw control characters" nil)))
(defcustom erc-interpret-mirc-color nil
- "*If non-nil, ERC will interpret mIRC color codes."
+ "If non-nil, ERC will interpret mIRC color codes."
:group 'erc-control-characters
:type 'boolean)
;;; Code:
(require 'erc)
+(require 'auth-source)
(eval-when-compile (require 'cl))
(defgroup erc-autojoin nil
SERVER is a regexp matching the server, and channels is the
list of channels to join.
+If the channel(s) require channel keys for joining, the passwords
+are found via auth-source. For instance, if you use ~/.authinfo
+as your auth-source backend, then put something like the
+following in that file:
+
+machine irc.example.net login \"#fsf\" password sEcReT
+
Customize this variable to set the value for your first connect.
Once you are connected and join and part channels, this alist
keeps track of what channels you are on, and will join them
(when (string-match (car l) server)
(dolist (chan (cdr l))
(unless (erc-member-ignore-case chan joined)
- (erc-server-send (concat "join " chan))))))))
+ (erc-server-join-channel server chan)))))))
nil)
(defun erc-autojoin-channels (server nick)
(dolist (l erc-autojoin-channels-alist)
(when (string-match (car l) server)
(dolist (chan (cdr l))
- (erc-server-send (concat "join " chan))))))
+ (erc-server-join-channel server chan)))))
;; Return nil to avoid stomping on any other hook funcs.
nil)
+(defun erc-server-join-channel (server channel)
+ (let* ((secret (plist-get (nth 0 (auth-source-search
+ :max 1
+ :host server
+ :port "irc"
+ :user channel))
+ :secret))
+ (password (if (functionp secret)
+ (funcall secret)
+ secret)))
+ (erc-server-send (concat "join " channel
+ (if password
+ (concat " " password)
+ "")))))
+
(defun erc-autojoin-add (proc parsed)
"Add the channel being joined to `erc-autojoin-channels-alist'."
(let* ((chnl (erc-response.contents parsed))
:group 'erc)
(defcustom erc-generate-log-file-name-function 'erc-generate-log-file-name-long
- "*A function to generate a log filename.
+ "A function to generate a log filename.
The function must take five arguments: BUFFER, TARGET, NICK, SERVER and PORT.
BUFFER is the buffer to be saved,
TARGET is the name of the channel, or the target of the query,
(const :tag "Disable logging" nil)))
(defcustom erc-log-insert-log-on-open nil
- "*Insert log file contents into the buffer if a log file exists."
+ "Insert log file contents into the buffer if a log file exists."
:group 'erc-log
:type 'boolean)
(defcustom erc-save-buffer-on-part t
- "*Save the channel buffer content using `erc-save-buffer-in-logs' on PART.
+ "Save the channel buffer content using `erc-save-buffer-in-logs' on PART.
If you set this to nil, you may want to enable both
`erc-log-write-after-send' and `erc-log-write-after-insert'."
:type 'boolean)
(defcustom erc-save-queries-on-quit t
- "*Save all query (also channel) buffers of the server on QUIT.
+ "Save all query (also channel) buffers of the server on QUIT.
If you set this to nil, you may want to enable both
`erc-log-write-after-send' and `erc-log-write-after-insert'."
:type 'boolean)
(defcustom erc-log-write-after-send nil
- "*If non-nil, write to log file after every message you send.
+ "If non-nil, write to log file after every message you send.
If you set this to nil, you may want to enable both
`erc-save-buffer-on-part' and `erc-save-queries-on-quit'."
:type 'boolean)
(defcustom erc-log-write-after-insert nil
- "*If non-nil, write to log file when new text is added to a
+ "If non-nil, write to log file when new text is added to a
logged ERC buffer.
If you set this to nil, you may want to enable both
(defcustom erc-log-file-coding-system (if (featurep 'xemacs)
'binary
'emacs-mule)
- "*The coding system ERC should use for writing log files.
+ "The coding system ERC should use for writing log files.
This should ideally, be a \"catch-all\" coding system, like
`emacs-mule', or `iso-2022-7bit'."
:group 'erc-log)
(defcustom erc-log-filter-function nil
- "*If non-nil, pass text through the given function before writing it to
+ "If non-nil, pass text through the given function before writing it to
a log file.
The function should take one argument, which is the text to filter."
:type '(repeat regexp))
(defcustom erc-current-nick-highlight-type 'keyword
- "*Determines how to highlight text in which your current nickname appears
+ "Determines how to highlight text in which your current nickname appears
\(does not apply to text sent by you\).
The following values are allowed:
(const all)))
(defcustom erc-pal-highlight-type 'nick
- "*Determines how to highlight messages by pals.
+ "Determines how to highlight messages by pals.
See `erc-pals'.
The following values are allowed:
(const all)))
(defcustom erc-fool-highlight-type 'nick
- "*Determines how to highlight messages by fools.
+ "Determines how to highlight messages by fools.
See `erc-fools'.
The following values are allowed:
(const all)))
(defcustom erc-keyword-highlight-type 'keyword
- "*Determines how to highlight messages containing keywords.
+ "Determines how to highlight messages containing keywords.
See variable `erc-keywords'.
The following values are allowed:
(const all)))
(defcustom erc-dangerous-host-highlight-type 'nick
- "*Determines how to highlight messages by nicks from dangerous-hosts.
+ "Determines how to highlight messages by nicks from dangerous-hosts.
See `erc-dangerous-hosts'.
The following values are allowed:
:group 'erc)
(defcustom erc-notify-list nil
- "*List of nicknames you want to be notified about online/offline
+ "List of nicknames you want to be notified about online/offline
status change."
:group 'erc-notify
:type '(repeat string))
(defcustom erc-notify-interval 60
- "*Time interval (in seconds) for checking online status of notified
+ "Time interval (in seconds) for checking online status of notified
people."
:group 'erc-notify
:type 'integer)
(defcustom erc-notify-signon-hook nil
- "*Hook run after someone on `erc-notify-list' has signed on.
+ "Hook run after someone on `erc-notify-list' has signed on.
Two arguments are passed to the function, SERVER and NICK, both
strings."
:group 'erc-notify
:options '(erc-notify-signon))
(defcustom erc-notify-signoff-hook nil
- "*Hook run after someone on `erc-notify-list' has signed off.
+ "Hook run after someone on `erc-notify-list' has signed off.
Two arguments are passed to the function, SERVER and NICK, both
strings."
:group 'erc-notify
:group 'erc)
(defcustom erc-pcomplete-nick-postfix ":"
- "*When `pcomplete' is used in the first word after the prompt,
+ "When `pcomplete' is used in the first word after the prompt,
add this string to nicks completed."
:group 'erc-pcomplete
:type 'string)
(repeat :tag "Nickname and password"
(cons :tag "Identity"
(string :tag "Nick")
- (string :tag "Password"))))))
+ (string :tag "Password"
+ :secret ?*))))))
;; Variables:
:group 'erc)
(defcustom erc-play-sound t
- "*Play sounds when you receive CTCP SOUND requests."
+ "Play sounds when you receive CTCP SOUND requests."
:group 'erc-sound
:type 'boolean)
:group 'erc)
(defcustom erc-timestamp-format "[%H:%M]"
- "*If set to a string, messages will be timestamped.
+ "If set to a string, messages will be timestamped.
This string is processed using `format-time-string'.
Good examples are \"%T\" and \"%H:%M\".
(string)))
(defcustom erc-timestamp-format-left "\n[%a %b %e %Y]\n"
- "*If set to a string, messages will be timestamped.
+ "If set to a string, messages will be timestamped.
This string is processed using `format-time-string'.
Good examples are \"%T\" and \"%H:%M\".
(string)))
(defcustom erc-timestamp-format-right " [%H:%M]"
- "*If set to a string, messages will be timestamped.
+ "If set to a string, messages will be timestamped.
This string is processed using `format-time-string'.
Good examples are \"%T\" and \"%H:%M\".
(string)))
(defcustom erc-insert-timestamp-function 'erc-insert-timestamp-left-and-right
- "*Function to use to insert timestamps.
+ "Function to use to insert timestamps.
It takes a single argument STRING which is the final string
which all text-properties already appended. This function only cares about
function))
(defcustom erc-away-timestamp-format "<%H:%M>"
- "*Timestamp format used when marked as being away.
+ "Timestamp format used when marked as being away.
If nil, timestamping is turned off when away unless `erc-timestamp-format'
is set.
(defcustom erc-insert-away-timestamp-function
'erc-insert-timestamp-left-and-right
- "*Function to use to insert the away timestamp.
+ "Function to use to insert the away timestamp.
See `erc-insert-timestamp-function' for details."
:group 'erc-stamp
function))
(defcustom erc-hide-timestamps nil
- "*If non-nil, timestamps will be invisible.
+ "If non-nil, timestamps will be invisible.
This is useful for logging, because, although timestamps will be
hidden, they will still be present in the logs."
:type 'boolean)
(defcustom erc-echo-timestamps nil
- "*If non-nil, print timestamp in the minibuffer when point is moved.
+ "If non-nil, print timestamp in the minibuffer when point is moved.
Using this variable, you can turn off normal timestamping,
and simply move point to an irc message to see its timestamp
printed in the minibuffer."
:type 'boolean)
(defcustom erc-echo-timestamp-format "Timestamped %A, %H:%M:%S"
- "*Format string to be used when `erc-echo-timestamps' is non-nil.
+ "Format string to be used when `erc-echo-timestamps' is non-nil.
This string specifies the format of the timestamp being echoed in
the minibuffer."
:group 'erc-stamp
:type 'string)
(defcustom erc-timestamp-intangible t
- "*Whether the timestamps should be intangible, i.e. prevent the point
+ "Whether the timestamps should be intangible, i.e. prevent the point
from entering them and instead jump over them."
:group 'erc-stamp
:type 'boolean)
(make-variable-buffer-local 'erc-timestamp-last-inserted-right)
(defcustom erc-timestamp-only-if-changed-flag t
- "*Insert timestamp only if its value changed since last insertion.
+ "Insert timestamp only if its value changed since last insertion.
If `erc-insert-timestamp-function' is `erc-insert-timestamp-left', a
string of spaces which is the same size as the timestamp is added to
the beginning of the line in its place. If you use
:type 'boolean)
(defcustom erc-timestamp-right-column nil
- "*If non-nil, the column at which the timestamp is inserted,
+ "If non-nil, the column at which the timestamp is inserted,
if the timestamp is to be printed to the right. If nil,
`erc-insert-timestamp-right' will use other means to determine
the correct column."
(defcustom erc-timestamp-use-align-to (and (not (featurep 'xemacs))
(>= emacs-major-version 22)
(eq window-system 'x))
- "*If non-nil, use the :align-to display property to align the stamp.
+ "If non-nil, use the :align-to display property to align the stamp.
This gives better results when variable-width characters (like
Asian language characters and math symbols) precede a timestamp.
Unfortunately, it only works in Emacs 22 and when using the X
:type '(repeat string))
(defcustom erc-track-remove-disconnected-buffers nil
- "*If true, remove buffers associated with a server that is
+ "If true, remove buffers associated with a server that is
disconnected from `erc-modified-channels-alist'."
:group 'erc-track
:type 'boolean)
(defcustom erc-track-exclude-types '("NICK" "333" "353")
- "*List of message types to be ignored.
+ "List of message types to be ignored.
This list could look like '(\"JOIN\" \"PART\").
By default, exclude changes of nicknames (NICK), display of who
:type 'erc-message-type)
(defcustom erc-track-exclude-server-buffer nil
- "*If true, don't perform tracking on the server buffer; this is
+ "If true, don't perform tracking on the server buffer; this is
useful for excluding all the things like MOTDs from the server and
other miscellaneous functions."
:group 'erc-track
:type 'number)
(defcustom erc-track-shorten-aggressively nil
- "*If non-nil, channel names will be shortened more aggressively.
+ "If non-nil, channel names will be shortened more aggressively.
Usually, names are not shortened if this will save only one character.
Example: If there are two channels, #linux-de and #linux-fr, then
normally these will not be shortened. When shortening aggressively,
(const :tag "Max" max)))
(defcustom erc-track-shorten-function 'erc-track-shorten-names
- "*This function will be used to reduce the channel names before display.
+ "This function will be used to reduce the channel names before display.
It takes one argument, CHANNEL-NAMES which is a list of strings.
It should return a list of strings of the same number of elements.
If nil instead of a function, shortening is disabled."
:type 'hook)
(defcustom erc-track-use-faces t
- "*Use faces in the mode-line.
+ "Use faces in the mode-line.
The faces used are the same as used for text in the buffers.
\(e.g. `erc-pal-face' is used if a pal sent a message to that channel.)"
:group 'erc-track
:group 'erc)
(defcustom erc-max-buffer-size 30000
- "*Maximum size in chars of each ERC buffer.
+ "Maximum size in chars of each ERC buffer.
Used only when auto-truncation is enabled.
\(see `erc-truncate-buffer' and `erc-insert-post-hook')."
:group 'erc-truncate
(require 'erc-dcc)
(defcustom erc-xdcc-files nil
- "*List of files to offer via XDCC.
+ "List of files to offer via XDCC.
Your friends should issue \"/ctcp yournick XDCC list\" to see this."
:group 'erc-dcc
:type '(repeat file))
(defcustom erc-xdcc-verbose-flag t
- "*Report XDCC CTCP requests in the server buffer."
+ "Report XDCC CTCP requests in the server buffer."
:group 'erc-dcc
:type 'boolean)
'(("help" . erc-xdcc-help)
("list" . erc-xdcc-list)
("send" . erc-xdcc-send))
- "*Sub-command handler alist for XDCC CTCP queries."
+ "Sub-command handler alist for XDCC CTCP queries."
:group 'erc-dcc
:type '(alist :key-type (string :tag "Sub-command") :value-type function))
("Type \"/ctcp " (erc-current-nick)
" XDCC list\" to see the list of offered files, then type \"/ctcp "
(erc-current-nick) " XDCC send #\" to get a particular file number."))
- "*Help text sent in response to XDCC help command.
+ "Help text sent in response to XDCC help command.
A list of messages, each consisting of strings and expressions, expressions
being evaluated and should return strings."
:group 'erc-dcc
(repeat :inline t :tag "Others" (string :tag "IRC Message Type"))))
(defcustom erc-hide-list nil
- "*List of IRC type messages to hide.
+ "List of IRC type messages to hide.
A typical value would be '(\"JOIN\" \"PART\" \"QUIT\")."
:group 'erc-ignore
:type 'erc-message-type)
prompt))))
(defcustom erc-notice-prefix "*** "
- "*Prefix for all notices."
+ "Prefix for all notices."
:group 'erc-display
:type 'string)
(defcustom erc-notice-highlight-type 'all
- "*Determines how to highlight notices.
+ "Determines how to highlight notices.
See `erc-notice-prefix'.
The following values are allowed:
(const :tag "don't highlight notices at all" nil)))
(defcustom erc-echo-notice-hook nil
- "*Specifies a list of functions to call to echo a private
+ "Specifies a list of functions to call to echo a private
notice. Each function is called with four arguments, the string
to display, the parsed server message, the target buffer (or
nil), and the sender. The functions are called in order, until a
(defcustom erc-echo-notice-always-hook
'(erc-echo-notice-in-default-buffer)
- "*Specifies a list of functions to call to echo a private
+ "Specifies a list of functions to call to echo a private
notice. Each function is called with four arguments, the string
to display, the parsed server message, the target buffer (or
nil), and the sender. The functions are called in order, and all
;; other tunable parameters
(defcustom erc-whowas-on-nosuchnick nil
- "*If non-nil, do a whowas on a nick if no such nick."
+ "If non-nil, do a whowas on a nick if no such nick."
:group 'erc
:type 'boolean)
(defcustom erc-verbose-server-ping nil
- "*If non-nil, show every time you get a PING or PONG from the server."
+ "If non-nil, show every time you get a PING or PONG from the server."
:group 'erc-paranoia
:type 'boolean)
(defcustom erc-public-away-p nil
- "*Let others know you are back when you are no longer marked away.
+ "Let others know you are back when you are no longer marked away.
This happens in this form:
* <nick> is back (gone for <time>)
:type 'boolean)
(defcustom erc-away-nickname nil
- "*The nickname to take when you are marked as being away."
+ "The nickname to take when you are marked as being away."
:group 'erc
:type '(choice (const nil)
string))
string))
(defcustom erc-ignore-list nil
- "*List of regexps matching user identifiers to ignore.
+ "List of regexps matching user identifiers to ignore.
A user identifier has the form \"nick!login@host\". If an
identifier matches, the message from the person will not be
(make-variable-buffer-local 'erc-ignore-list)
(defcustom erc-ignore-reply-list nil
- "*List of regexps matching user identifiers to ignore completely.
+ "List of regexps matching user identifiers to ignore completely.
This differs from `erc-ignore-list' in that it also ignores any
messages directed at the user.
:type '(repeat regexp))
(defvar erc-flood-protect t
- "*If non-nil, flood protection is enabled.
+ "If non-nil, flood protection is enabled.
Flooding is sending too much information to the server in too
short of an interval, which may cause the server to terminate the
connection.
:type '(repeat directory))
(defcustom erc-script-echo t
- "*If non-nil, echo the IRC script commands locally."
+ "If non-nil, echo the IRC script commands locally."
:group 'erc-scripts
:type 'boolean)
:type '(repeat (list regexp (choice (string) (function)))))
(defcustom erc-quit-reason 'erc-quit-reason-normal
- "*A function which returns the reason for quitting.
+ "A function which returns the reason for quitting.
The function is passed a single argument, the string typed by the
user after \"/quit\"."
(const :tag "Use current buffer" t)))
(defcustom erc-frame-alist nil
- "*Alist of frame parameters for creating erc frames.
+ "Alist of frame parameters for creating erc frames.
A value of nil means to use `default-frame-alist'."
:group 'erc-buffers
:type '(repeat (cons :format "%v"
(sexp :tag "Value"))))
(defcustom erc-frame-dedicated-flag nil
- "*Non-nil means the erc frames are dedicated to that buffer.
+ "Non-nil means the erc frames are dedicated to that buffer.
This only has effect when `erc-join-buffer' is set to `frame'."
:group 'erc-buffers
:type 'boolean)
(defcustom erc-reuse-frames t
- "*Determines whether new frames are always created.
+ "Determines whether new frames are always created.
Non-nil means that a new frame is not created to display an ERC
buffer if there is already a window displaying it. This only has
effect when `erc-join-buffer' is set to `frame'."
(t nil)))
(defcustom erc-reuse-buffers t
- "*If nil, create new buffers on joining a channel/query.
+ "If nil, create new buffers on joining a channel/query.
If non-nil, a new buffer will only be created when you join
channels with same names on different servers, or have query buffers
open with nicks of the same name on different servers. Otherwise,
(if (consp val)
(concat "\n" (pp-to-string val))
(format " %S\n" val)))))
- (apropos-internal "^erc-" 'user-variable-p))))
+ (apropos-internal "^erc-" 'custom-variable-p))))
(current-buffer)) t)
(t nil)))
(defalias 'erc-cmd-VAR 'erc-cmd-SET)
'start-open t ; XEmacs
'rear-nonsticky t ; Emacs
'erc-prompt t
+ 'field t
'front-sticky t
'read-only t))
(erc-put-text-property 0 (1- (length prompt))
(defcustom erc-default-server-hook '(erc-debug-missing-hooks
erc-default-server-handler)
- "*Default for server messages which aren't covered by `erc-server-hooks'."
+ "Default for server messages which aren't covered by `erc-server-hooks'."
:group 'erc-server-hooks
:type 'hook)
str))
(defcustom erc-format-nick-function 'erc-format-nick
- "*Function to format a nickname for message display."
+ "Function to format a nickname for message display."
:group 'erc-display
:type 'function)
(run-hooks 'erc-channel-members-changed-hook)))
(defcustom erc-channel-members-changed-hook nil
- "*This hook is called every time the variable `channel-members' changes.
+ "This hook is called every time the variable `channel-members' changes.
The buffer where the change happened is current while this hook is called."
:group 'erc-hooks
:type 'hook)
(add-hook 'kill-buffer-hook 'erc-kill-buffer-function)
(defcustom erc-kill-server-hook '(erc-kill-server)
- "*Invoked whenever a server-buffer is killed via `kill-buffer'."
+ "Invoked whenever a server-buffer is killed via `kill-buffer'."
:group 'erc-hooks
:type 'hook)
(defcustom erc-kill-channel-hook '(erc-kill-channel)
- "*Invoked whenever a channel-buffer is killed via `kill-buffer'."
+ "Invoked whenever a channel-buffer is killed via `kill-buffer'."
:group 'erc-hooks
:type 'hook)
(defcustom erc-kill-buffer-hook nil
- "*Hook run whenever a non-server or channel buffer is killed.
+ "Hook run whenever a non-server or channel buffer is killed.
See also `kill-buffer'."
:group 'erc-hooks
,(purecopy "^font-lock-") ,(purecopy "^gnus-") ,(purecopy "^message-")
,(purecopy "^ediff-") ,(purecopy "^term-") ,(purecopy "^vc-")
,(purecopy "^widget-") ,(purecopy "^custom-") ,(purecopy "^vm-"))
- "*List of faces that are of no interest to the user.")
+ "List of faces that are of no interest to the user.")
(make-obsolete-variable 'facemenu-unlisted-faces 'facemenu-listed-faces
"22.1,\n and has no effect on the Face menu")
(defconst list-faces-sample-text
"abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ"
- "*Text string to display as the sample text for `list-faces-display'.")
+ "Text string to display as the sample text for `list-faces-display'.")
;; The name list-faces would be more consistent, but let's avoid a
;;; Menu support (`ffap-menu'):
(defvar ffap-menu-regexp nil
- "*If non-nil, overrides `ffap-next-regexp' during `ffap-menu'.
+ "If non-nil, overrides `ffap-next-regexp' during `ffap-menu'.
Make this more restrictive for faster menu building.
For example, try \":/\" for URL (and some ftp) references.")
(format "%s: " prompt))
obarray
(lambda (sym)
- (or (user-variable-p sym)
+ (or (custom-variable-p sym)
(get sym 'safe-local-variable)
(memq sym '(mode eval coding unibyte))))
nil nil nil default nil))
(boundp 'font-lock-keywords)
(eq (car font-lock-keywords) t))
(setq font-lock-keywords (cadr font-lock-keywords))
- (font-lock-mode 1))
-
- (if (fboundp 'ucs-set-table-for-input) ; don't lose when building
- (ucs-set-table-for-input)))
+ (font-lock-mode 1)))
(defcustom auto-mode-case-fold t
"Non-nil means to try second pass through `auto-mode-alist'.
When a file is visited, the file's class is found. A directory
may be assigned a class using `dir-locals-set-directory-class'.
Then variables are set in the file's buffer according to the
-class' LIST. The list is processed in order.
+VARIABLES list of the class. The list is processed in order.
* If the element is of the form (MAJOR-MODE . ALIST), and the
buffer's major mode is derived from MAJOR-MODE (as determined
(setq f2-attr (file-attributes (file-truename file2)))
(equal f1-attr f2-attr))))))
-(defun file-subdir-of-p (dir1 dir2)
- "Return non-nil if DIR1 is a subdirectory of DIR2.
-A directory is considered to be a subdirectory of itself.
-Return nil if top directory DIR2 is not an existing directory."
- (let ((handler (or (find-file-name-handler dir1 'file-subdir-of-p)
- (find-file-name-handler dir2 'file-subdir-of-p))))
+(defun file-in-directory-p (file dir)
+ "Return non-nil if FILE is in DIR or a subdirectory of DIR.
+A directory is considered to be \"in\" itself.
+Return nil if DIR is not an existing directory."
+ (let ((handler (or (find-file-name-handler file 'file-in-directory-p)
+ (find-file-name-handler dir 'file-in-directory-p))))
(if handler
- (funcall handler 'file-subdir-of-p dir1 dir2)
- (when (file-directory-p dir2) ; Top dir must exist.
- (setq dir1 (file-truename dir1)
- dir2 (file-truename dir2))
- (let ((ls1 (or (split-string dir1 "/" t) '("/")))
- (ls2 (or (split-string dir2 "/" t) '("/")))
- (root (if (string-match "\\`/" dir1) "/" ""))
+ (funcall handler 'file-in-directory-p file dir)
+ (when (file-directory-p dir) ; DIR must exist.
+ (setq file (file-truename file)
+ dir (file-truename dir))
+ (let ((ls1 (split-string file "/" t))
+ (ls2 (split-string dir "/" t))
+ (root (if (string-match "\\`/" file) "/" ""))
(mismatch nil))
(while (and ls1 ls2 (not mismatch))
(if (string-equal (car ls1) (car ls2))
(setq ls1 (cdr ls1)
ls2 (cdr ls2)))
(unless mismatch
- (file-equal-p root dir2)))))))
+ (file-equal-p root dir)))))))
(defun copy-directory (directory newname &optional keep-time parents copy-contents)
"Copy DIRECTORY to NEWNAME. Both args must be strings.
(format "Copy directory %s to: " dir)
default-directory default-directory nil nil)
current-prefix-arg t nil)))
- (when (file-subdir-of-p newname directory)
+ (when (file-in-directory-p newname directory)
(error "Cannot copy `%s' into its subdirectory `%s'"
directory newname))
;; If default-directory is a remote directory, make sure we find its
;; We do not want to copy "." and "..".
(directory-files directory 'full
directory-files-no-dot-files-regexp))
- (if (file-directory-p file)
- (copy-directory file newname keep-time parents)
- (let ((target (expand-file-name (file-name-nondirectory file) newname))
- (attrs (file-attributes file)))
- (if (stringp (car attrs)) ; Symbolic link
- (make-symbolic-link (car attrs) target t)
- (copy-file file target t keep-time)))))
+ (let ((target (expand-file-name (file-name-nondirectory file) newname))
+ (filetype (car (file-attributes file))))
+ (cond
+ ((eq filetype t) ; Directory but not a symlink.
+ (copy-directory file newname keep-time parents))
+ ((stringp filetype) ; Symbolic link
+ (make-symbolic-link filetype target t))
+ ((copy-file file target t keep-time)))))
;; Set directory attributes.
(let ((modes (file-modes directory))
(defun save-buffers-kill-emacs (&optional arg)
"Offer to save each buffer, then kill this Emacs process.
-With prefix ARG, silently save all file-visiting buffers, then kill."
+With prefix ARG, silently save all file-visiting buffers without asking.
+If there are active processes where `process-query-on-exit-flag'
+returns non-nil, asks whether processes should be killed.
+Runs the members of `kill-emacs-query-functions' in turn and stops
+if any returns nil. If `confirm-kill-emacs' is non-nil, calls it."
(interactive "P")
(save-some-buffers arg t)
(and (or (not (memq t (mapcar (function
)
;; We include `ff-treat-as-special' documentation here so that autoload
;; can make it available to be read prior to loading this file.
- "*List of special constructs for `ff-treat-as-special' to recognize.
+ "List of special constructs for `ff-treat-as-special' to recognize.
Each element, tried in order, has the form (REGEXP . EXTRACT).
If REGEXP matches the current line (from the beginning of the line),
`ff-treat-as-special' calls function EXTRACT with no args.
:group 'follow)
(defvar follow-avoid-tail-recenter-p (not (featurep 'xemacs))
- "*When non-nil, patch Emacs so that tail windows won't be recentered.
+ "When non-nil, patch Emacs so that tail windows won't be recentered.
A \"tail window\" is a window that displays only the end of
the buffer. Normally it is practical for the user that empty
property `follow-mode-use-cache' to non-nil.")
(defvar follow-debug nil
- "*Non-nil when debugging Follow mode.")
+ "Non-nil when debugging Follow mode.")
;; Internal variables:
`font-lock-remove-keywords'.")
(defvar font-lock-keywords-only nil
- "*Non-nil means Font Lock should not fontify comments or strings.
+ "Non-nil means Font Lock should not fontify comments or strings.
This is normally set via `font-lock-defaults'.")
(defvar font-lock-keywords-case-fold-search nil
- "*Non-nil means the patterns in `font-lock-keywords' are case-insensitive.
+ "Non-nil means the patterns in `font-lock-keywords' are case-insensitive.
This is set via the function `font-lock-set-defaults', based on
the CASE-FOLD argument of `font-lock-defaults'.")
(make-variable-buffer-local 'font-lock-keywords-case-fold-search)
This is normally set via `font-lock-defaults'.")
(defvar font-lock-beginning-of-syntax-function nil
- "*Non-nil means use this function to move back outside all constructs.
+ "Non-nil means use this function to move back outside all constructs.
When called with no args it should move point backward to a place which
is not in a string or comment and not within any bracket-pairs (or else,
a place such that any bracket-pairs outside it can be ignored for Emacs
'syntax-begin-function "23.3" 'set)
(defvar font-lock-mark-block-function nil
- "*Non-nil means use this function to mark a block of text.
+ "Non-nil means use this function to mark a block of text.
When called with no args it should leave point at the beginning of any
enclosing textual block and mark at the end.
This is normally set via `font-lock-defaults'.")
(error (concat "Forms control file error: "
"`forms-modified-record-filter' is not a function")))
- ;; The filters acces the contents of the forms using `forms-fields'.
+ ;; The filters access the contents of the forms using `forms-fields'.
(make-local-variable 'forms-fields)
;; Dynamic text support.
;;; Debugging
(defvar forms--debug nil
- "*Enables forms-mode debugging if not nil.")
+ "Enables forms-mode debugging if not nil.")
(defun forms--debug (&rest args)
"Internal debugging routine."
(define-obsolete-variable-alias 'delete-frame-hook
'delete-frame-functions "22.1")
-\f
-;; Highlighting trailing whitespace.
-
-(make-variable-buffer-local 'show-trailing-whitespace)
-
-\f
-;; Scrolling
-
-(defgroup scrolling nil
- "Scrolling windows."
- :version "21.1"
- :group 'frames)
-
-(defvaralias 'automatic-hscrolling 'auto-hscroll-mode)
-
\f
;; Blinking cursor
(define-key ctl-x-5-map "0" 'delete-frame)
(define-key ctl-x-5-map "o" 'other-frame)
+\f
+;; Misc.
+
+;; Only marked as obsolete in 24.2.
+(define-obsolete-variable-alias 'automatic-hscrolling 'auto-hscroll-mode "22.1")
+
+(make-variable-buffer-local 'show-trailing-whitespace)
+
(provide 'frame)
;;; frame.el ends here
+2012-04-16 Glenn Morris <rgm@gnu.org>
+
+ * nndraft.el (nndraft-request-list): Fix declaration.
+
+2012-04-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * gnus-msg.el (gnus-inews-insert-gcc): Don't do the alist stuff when we
+ don't have a current group.
+
+ * gnus-msg.el (gnus-inews-insert-gcc): Protect against when we don't
+ have a group name.
+
+ * gnus-art.el (article-wash-html): Ensure that we insert the HTML into
+ a multibyte buffer (bug#7410).
+ (article-wash-html): Parse the original article buffer to get the
+ unencoded data (bug#7410).
+
+ * gnus-start.el (gnus-read-newsrc-el-file): Protect against broken
+ .newsrc.el files.
+
2012-03-22 Lars Magne Ingebrigtsen <larsi@gnus.org>
* auth-source.el (auth-source-netrc-create): Quote tokens that contain
(let ((handles nil)
(buffer-read-only nil))
(when (gnus-buffer-live-p gnus-original-article-buffer)
- (setq handles (mm-dissect-buffer t t)))
+ (with-current-buffer gnus-original-article-buffer
+ (setq handles (mm-dissect-buffer t t))))
(article-goto-body)
(delete-region (point) (point-max))
+ (mm-enable-multibyte)
(mm-inline-text-html handles)))
(defvar gnus-article-browse-html-temp-list nil
((functionp var)
;; A function.
(funcall var group))
- (t
+ (group
;; An alist of regexps/functions/forms.
(while (and var
(not
(setq result
(cond
- ((stringp (caar var))
+ ((and group
+ (stringp (caar var)))
;; Regexp.
(when (string-match (caar var) group)
(cdar var)))
- ((functionp (car var))
+ ((and group
+ (functionp (car var)))
;; Function.
(funcall (car var) group))
(t
(when gnus-newsrc-assoc
(setq gnus-newsrc-alist gnus-newsrc-assoc))))
(dolist (elem gnus-newsrc-alist)
- (setcar elem (mm-string-as-unibyte (car elem))))
+ ;; Protect against broken .newsrc.el files.
+ (when (car elem)
+ (setcar elem (mm-string-as-unibyte (car elem)))))
(gnus-make-hashtable-from-newsrc-alist)
(when (file-newer-than-file-p file ding-file)
;; Old format quick file
(require 'mm-util)
(eval-when-compile (require 'cl))
-(declare-function nndraft-request-list "nnmh" (&rest args))
+;; The nnoo-import at the end, I think.
+(declare-function nndraft-request-list "nndraft" (&rest args) t)
(nnoo-declare nndraft
nnmh)
"Edit a file in a hex dump format using the hexl filter."
:group 'data)
+(defcustom hexl-bits 16
+ "The bit grouping that hexl will use."
+ :type '(choice (const 8 )
+ (const 16)
+ (const 32)
+ (const 64))
+ :group 'hexl
+ :version "24.2")
(defcustom hexl-program "hexl"
"The program that will hexlify and dehexlify its stdin.
(defcustom hexl-options (format "-hex %s" hexl-iso)
"Space separated options to `hexl-program' that suit your needs.
-Quoting cannot be used, so the arguments cannot themselves contain spaces."
+Quoting cannot be used, so the arguments cannot themselves contain spaces.
+If you wish to set the `-group-by-X-bits' options, set `hexl-bits' instead,
+as that will override any bit grouping options set here."
:type 'string
:group 'hexl)
(2 'hexl-ascii-region t t)))
"Font lock keywords used in `hexl-mode'.")
+(defun hexl-rulerize (string bits)
+ (let ((size (/ bits 4)) (strlen (length string)) (pos 0) (ruler ""))
+ (while (< pos strlen)
+ (setq ruler (concat ruler " " (substring string pos (+ pos size))))
+ (setq pos (+ pos size)))
+ (substring ruler 1) ))
+
+(defvar hexl-rulers
+ (mapcar
+ (lambda (bits)
+ (cons bits
+ (concat " 87654321 "
+ (hexl-rulerize "00112233445566778899aabbccddeeff" bits)
+ " 0123456789abcdef")))
+ '(8 16 32 64)))
;; routines
(put 'hexl-mode 'mode-class 'special)
+;; 10 chars for the "address: "
+;; 32 chars for the hexlified bytes
+;; 1 char for the space
+;; 16 chars for the character display
+;; X chars for the spaces (128 bits divided by the hexl-bits)
+;; 1 char for the newline.
+(defun hexl-line-displen ()
+ "The length of a hexl display line (varies with `hexl-bits')."
+ (+ 60 (/ 128 (or hexl-bits 16))))
(defun hexl-mode--minor-mode-p (var)
(memq var '(ruler-mode hl-line-mode)))
Each line in the buffer has an \"address\" (displayed in hexadecimal)
representing the offset into the file that the characters on this line
are at and 16 characters from the file (displayed as hexadecimal
-values grouped every 16 bits) and as their ASCII values.
+values grouped every `hexl-bits' bits) and as their ASCII values.
If any of the characters (displayed as ASCII characters) are
unprintable (control or meta characters) they will be replaced as
(hexlify-buffer)
(restore-buffer-modified-p modified))
(set (make-local-variable 'hexl-max-address)
- (let* ((full-lines (/ (buffer-size) 68))
- (last-line (% (buffer-size) 68))
- (last-line-bytes (% last-line 52)))
- (+ last-line-bytes (* full-lines 16) -1)))
+ (+ (* (/ (1- (buffer-size)) (hexl-line-displen)) 16) 15))
(condition-case nil
(hexl-goto-address original-point)
(error nil)))
(defun hexl-current-address (&optional validate)
"Return current hexl-address."
(interactive)
- (let ((current-column (- (% (- (point) (point-min) -1) 68) 11))
+ (let ((current-column
+ (- (% (- (point) (point-min) -1) (hexl-line-displen)) 11))
(hexl-address 0))
(if (< current-column 0)
(if validate
(error "Point is not on a character in the file")
(setq current-column 0)))
(setq hexl-address
- (+ (* (/ (- (point) (point-min) -1) 68) 16)
- (if (>= current-column 41)
- (- current-column 41)
- (/ (- current-column (/ current-column 5)) 2))))
+ (+ (* (/ (- (point) (point-min) -1)
+ (hexl-line-displen)) 16)
+ (if (>= current-column (- (hexl-ascii-start-column) 10))
+ (- current-column (- (hexl-ascii-start-column) 10))
+ (/ (- current-column
+ (/ current-column (1+ (/ hexl-bits 4)))) 2))))
(when (called-interactively-p 'interactive)
(message "Current address is %d/0x%08x" hexl-address hexl-address))
hexl-address))
(let ((addr (hexl-current-address)))
(format "Current address is %d/0x%08x" addr addr)))
+(defun hexl-ascii-start-column ()
+ "Column at which the ascii portion of the hexl display starts."
+ (+ 43 (/ 128 hexl-bits)))
+
(defun hexl-address-to-marker (address)
"Return buffer position for ADDRESS."
(interactive "nAddress: ")
- (+ (* (/ address 16) 68) 10 (point-min) (/ (* (% address 16) 5) 2)))
+ (let ((N (* (% address 16) 2)))
+ (+ (* (/ address 16) (hexl-line-displen)) ; hexl line no * display length
+ 10 ; 10 chars for the "address: " prefix
+ (point-min) ; base offset (point usually starts at 1, not 0)
+ (+ N (/ N (/ hexl-bits 4))) )) ) ; char offset into hexl display line
(defun hexl-goto-address (address)
"Go to hexl-mode (decimal) address ADDRESS.
(defun hexl-beginning-of-line ()
"Goto beginning of line in hexl mode."
(interactive)
- (goto-char (+ (* (/ (point) 68) 68) 11)))
+ (goto-char (+ (* (/ (point) (hexl-line-displen)) (hexl-line-displen)) 11)))
(defun hexl-end-of-line ()
"Goto end of line in hexl mode."
;00000000: 0011 2233 4455 6677 8899 aabb ccdd eeff 0123456789ABCDEF
+(defun hexl-options (&optional test)
+ "Combine `hexl-bits' with `hexl-options', altering `hexl-options' as needed
+to produce the command line options to pass to the hexl command."
+ (let ((opts (or test hexl-options)))
+ (when (memq hexl-bits '(8 16 32 64))
+ (when (string-match "\\(.*\\)-group-by-[0-9]+-bits\\(.*\\)" opts)
+ (setq opts (concat (match-string 1 opts)
+ (match-string 2 opts))))
+ (setq opts (format "%s -group-by-%d-bits " opts hexl-bits)) )
+ opts))
+
;;;###autoload
(defun hexlify-buffer ()
"Convert a binary buffer to hexl format.
(mapcar (lambda (s)
(if (not (multibyte-string-p s)) s
(encode-coding-string s locale-coding-system)))
- (split-string hexl-options)))
+ (split-string (hexl-options))))
(if (> (point) (hexl-address-to-marker hexl-max-address))
(hexl-goto-address hexl-max-address))))
(buffer-undo-list t))
(apply 'call-process-region (point-min) (point-max)
(expand-file-name hexl-program exec-directory)
- t t nil "-de" (split-string hexl-options))))
+ t t nil "-de" (split-string (hexl-options)))))
(defun hexl-char-after-point ()
"Return char for ASCII hex digits at point."
(error "Invalid character 0x%x -- must be in the range [0..255]" ch))
(let ((address (hexl-current-address t)))
(while (> num 0)
- (let ((hex-position
- (+ (* (/ address 16) 68)
- 10 (point-min)
- (* 2 (% address 16))
- (/ (% address 16) 2)))
+ (let ((hex-position (hexl-address-to-marker address))
(ascii-position
- (+ (* (/ address 16) 68) 51 (point-min) (% address 16)))
+ (+ (* (/ address 16) (hexl-line-displen))
+ (hexl-ascii-start-column)
+ (point-min)
+ (% address 16)))
at-ascii-position)
(if (= (point) ascii-position)
(setq at-ascii-position t))
(if at-ascii-position
(progn
(beginning-of-line)
- (forward-char 51)
+ (forward-char (hexl-ascii-start-column))
(forward-char (% address 16)))))
(setq num (1- num)))))
(defun hexl-follow-ascii-find ()
"Find and highlight the ASCII element corresponding to current point."
- (let ((pos (+ 51
+ (let ((pos (+ (hexl-ascii-start-column)
(- (point) (current-column))
(mod (hexl-current-address) 16))))
(move-overlay hexl-ascii-overlay pos (1+ pos))
(defun hexl-mode-ruler ()
"Return a string ruler for hexl mode."
(let* ((highlight (mod (hexl-current-address) 16))
- (s " 87654321 0011 2233 4455 6677 8899 aabb ccdd eeff 0123456789abcdef")
+ (s (cdr (assq hexl-bits hexl-rulers)))
(pos 0))
(set-text-properties 0 (length s) nil s)
;; Turn spaces in the header into stretch specs so they work
`(space :align-to ,(1- pos))
s))
;; Highlight the current column.
- (put-text-property (+ 11 (/ (* 5 highlight) 2))
- (+ 13 (/ (* 5 highlight) 2))
- 'face 'highlight s)
+ (let ( (offset (+ (* 2 highlight) (/ (* 8 highlight) hexl-bits))) )
+ (put-text-property (+ 11 offset) (+ 13 offset) 'face 'highlight s))
;; Highlight the current ascii column
- (put-text-property (+ 13 39 highlight) (+ 13 40 highlight)
- 'face 'highlight s)
+ (put-text-property (+ (hexl-ascii-start-column) highlight 1)
+ (+ (hexl-ascii-start-column) highlight 2)
+ 'face 'highlight s)
s))
;; startup stuff.
:group 'ido)
(defvar ido-rewrite-file-prompt-rules nil
- "*Alist of rewriting rules for directory names in ido prompts.
+ "Alist of rewriting rules for directory names in ido prompts.
A list of elements of the form (FROM . TO) or (FROM . FUNC), each
meaning to rewrite the directory name if matched by FROM by either
substituting the matched string by TO or calling the function FUNC
:group 'ido)
(defvar ido-all-frames 'visible
- "*Argument to pass to `walk-windows' when finding visible files.
+ "Argument to pass to `walk-windows' when finding visible files.
See documentation of `walk-windows' for useful values.")
(defcustom ido-minibuffer-setup-hook nil
(while filenames
(setq filename (car filenames)
filenames (cdr filenames))
- (if (and (string-match "^/" filename)
+ (if (and (file-name-absolute-p filename)
(file-exists-p filename))
(setq d (file-name-directory filename)
f (file-name-nondirectory filename)
(prop (if (null area) image (list (list 'margin area) image))))
(put-text-property 0 (length string) 'display prop string)
(overlay-put overlay 'put-image t)
- (overlay-put overlay 'before-string string))))
+ (overlay-put overlay 'before-string string)
+ overlay)))
;;;###autoload
image n count time-elapsed limit))))
\f
-(defcustom imagemagick-types-inhibit
- '(C HTML HTM TXT PDF)
- "ImageMagick types that Emacs should not use ImageMagick to handle.
-This should be a list of symbols, each of which has the same
-name as one of the format tags used internally by ImageMagick;
-see `imagemagick-types'. Entries in this list are excluded from
-being registered by `imagemagick-register-types', so if you change
-this variable you must do so before you call that function.
-
-If Emacs is compiled without ImageMagick, this variable has no effect."
- :type '(choice (const :tag "Let ImageMagick handle all types it can" nil)
- (repeat symbol))
- ;; Ideally, would have a :set function that checks if we already did
- ;; imagemagick-register-types, and if so undoes it, then redoes it.
- :version "24.1"
- :group 'image)
+(defvar imagemagick--file-regexp nil
+ "File extension regexp for ImageMagick files, if any.
+This is the extension installed into `auto-mode-alist' and
+`image-type-file-name-regexps' by `imagemagick-register-types'.")
;;;###autoload
(defun imagemagick-register-types ()
"Register file types that can be handled by ImageMagick.
-This adds the file types returned by `imagemagick-types'
-\(excluding the ones in `imagemagick-types-inhibit') to
-`auto-mode-alist' and `image-type-file-name-regexps', so that
-Emacs visits them in Image mode.
+This function is called at startup, after loading the init file.
+It registers the ImageMagick types listed in `imagemagick-types',
+excluding those listed in `imagemagick-types-inhibit'.
+
+Registered image types are added to `auto-mode-alist', so that
+Emacs visits them in Image mode. They are also added to
+`image-type-file-name-regexps', so that the `image-type' function
+recognizes these files as having image type `imagemagick'.
If Emacs is compiled without ImageMagick support, do nothing."
(when (fboundp 'imagemagick-types)
- (let ((im-types '()))
- (dolist (im-type (imagemagick-types))
- (unless (memq im-type imagemagick-types-inhibit)
- (push (downcase (symbol-name im-type)) im-types)))
- (let ((extension (concat "\\." (regexp-opt im-types) "\\'")))
- (push (cons extension 'image-mode) auto-mode-alist)
- (push (cons extension 'imagemagick)
- image-type-file-name-regexps)))))
+ (let ((re (if (eq imagemagick-types-inhibit t)
+ ;; Use a bogus regexp to inhibit matches.
+ "\\'a"
+ (let ((types))
+ (dolist (type (imagemagick-types))
+ (unless (memq type imagemagick-types-inhibit)
+ (push (downcase (symbol-name type)) types)))
+ (concat "\\." (regexp-opt types) "\\'"))))
+ (ama-elt (car (member (cons imagemagick--file-regexp 'image-mode)
+ auto-mode-alist)))
+ (itfnr-elt (car (member (cons imagemagick--file-regexp 'imagemagick)
+ image-type-file-name-regexps))))
+ (if ama-elt
+ (setcar ama-elt re)
+ (push (cons re 'image-mode) auto-mode-alist))
+ (if itfnr-elt
+ (setcar itfnr-elt re)
+ (push (cons re 'imagemagick) image-type-file-name-regexps))
+ (setq imagemagick--file-regexp re))))
+
+(defcustom imagemagick-types-inhibit
+ '(C HTML HTM TXT PDF)
+ "List of ImageMagick types that should not be treated as images.
+This should be a list of symbols, each of which should be one of
+the ImageMagick types listed in `imagemagick-types'. The listed
+image types are not registered by `imagemagick-register-types'.
+
+If the value is t, inhibit the use of ImageMagick for images.
+
+If Emacs is compiled without ImageMagick support, this variable
+has no effect."
+ :type '(choice (const :tag "Support all ImageMagick types" nil)
+ (const :tag "Disable all ImageMagick types" t)
+ (repeat symbol))
+ :set (lambda (symbol value)
+ (set-default symbol value)
+ (imagemagick-register-types))
+ :version "24.1"
+ :group 'image)
(provide 'image)
(goto-char (point-max))
(while (and (if (functionp regexp)
(funcall regexp)
- (re-search-backward regexp nil t))
+ (and
+ (re-search-backward regexp nil t)
+ ;; Do not count invisible definitions.
+ (let ((invis (invisible-p (point))))
+ (or (not invis)
+ (progn
+ (while (and invis
+ (not (bobp)))
+ (setq invis (not (re-search-backward
+ regexp nil 'move))))
+ (not invis))))))
;; Exit the loop if we get an empty match,
;; because it means a bad regexp was specified.
(not (= (match-beginning 0) (match-end 0))))
imenu-generic-expression
(not (eq imenu-create-index-function
'imenu-default-create-index-function)))
- (unless (keymapp (lookup-key (current-local-map) [menu-bar index]))
+ (unless (and (current-local-map)
+ (keymapp (lookup-key (current-local-map) [menu-bar index])))
(let ((newmap (make-sparse-keymap)))
(set-keymap-parent newmap (current-local-map))
(setq imenu--last-menubar-index-alist nil)
(#x01AC . #x01AD)
(#x01AF . #x01B0)
(#x01B3 . #x01B6)
+ (#x01B8 . #x01B9)
(#x01BC . #x01BD)
(#x01CD . #x01DC)
(#x01DE . #x01EF)
(set-case-syntax-pair from (1+ from) tbl)
(setq from (+ from 2))))))
- (set-case-syntax-pair #x189 #x256 tbl)
- (set-case-syntax-pair #x18A #x257 tbl)
+ (set-case-syntax-pair ?Ÿ ?ÿ tbl)
;; In some languages, such as Turkish, U+0049 LATIN CAPITAL LETTER I
;; and U+0131 LATIN SMALL LETTER DOTLESS I make a case pair, and so
;; (set-downcase-syntax ?İ ?i tbl)
;; (set-upcase-syntax ?I ?ı tbl)
+ (set-case-syntax-pair ?Ɓ ?ɓ tbl)
+ (set-case-syntax-pair ?Ɔ ?ɔ tbl)
+ (set-case-syntax-pair ?Ɖ ?ɖ tbl)
+ (set-case-syntax-pair ?Ɗ ?ɗ tbl)
+ (set-case-syntax-pair ?Ǝ ?ǝ tbl)
+ (set-case-syntax-pair ?Ə ?ə tbl)
+ (set-case-syntax-pair ?Ɛ ?ɛ tbl)
+ (set-case-syntax-pair ?Ɠ ?ɠ tbl)
+ (set-case-syntax-pair ?Ɣ ?ɣ tbl)
+ (set-case-syntax-pair ?Ɩ ?ɩ tbl)
+ (set-case-syntax-pair ?Ɨ ?ɨ tbl)
+ (set-case-syntax-pair ?Ɯ ?ɯ tbl)
+ (set-case-syntax-pair ?Ɲ ?ɲ tbl)
+ (set-case-syntax-pair ?Ɵ ?ɵ tbl)
+ (set-case-syntax-pair ?Ʀ ?ʀ tbl)
+ (set-case-syntax-pair ?Ʃ ?ʃ tbl)
+ (set-case-syntax-pair ?Ʈ ?ʈ tbl)
+ (set-case-syntax-pair ?Ʊ ?ʊ tbl)
+ (set-case-syntax-pair ?Ʋ ?ʋ tbl)
+ (set-case-syntax-pair ?Ʒ ?ʒ tbl)
(set-case-syntax-pair ?DŽ ?dž tbl)
(set-case-syntax-pair ?Dž ?dž tbl)
(set-case-syntax-pair ?LJ ?lj tbl)
(set-case-syntax-pair ?Dz ?dz tbl)
(set-case-syntax-pair ?Ƕ ?ƕ tbl)
(set-case-syntax-pair ?Ƿ ?ƿ tbl)
+ (set-case-syntax-pair ?Ⱥ ?ⱥ tbl)
+ (set-case-syntax-pair ?Ƚ ?ƚ tbl)
+ (set-case-syntax-pair ?Ⱦ ?ⱦ tbl)
+ (set-case-syntax-pair ?Ƀ ?ƀ tbl)
+ (set-case-syntax-pair ?Ʉ ?ʉ tbl)
+ (set-case-syntax-pair ?Ʌ ?ʌ tbl)
;; Latin Extended Additional
(modify-category-entry '(#x1e00 . #x1ef9) ?l)
if CODING-SYSTEM is ASCII-compatible"
(check-coding-system coding-system)
(setq-default buffer-file-coding-system coding-system)
- (if (fboundp 'ucs-set-table-for-input)
- (dolist (buffer (buffer-list))
- (or (local-variable-p 'buffer-file-coding-system buffer)
- (ucs-set-table-for-input buffer))))
(if (eq system-type 'darwin)
;; The file-name coding system on Darwin systems is always utf-8.
This sets the coding system priority and the default input method
and sometimes other things. LANGUAGE-NAME should be a string
which is the name of a language environment. For example, \"Latin-1\"
-specifies the character set for the major languages of Western Europe."
+specifies the character set for the major languages of Western Europe.
+
+If there is a prior value for `current-language-environment', this
+runs the hook `exit-language-environment-hook'. After setting up
+the new language environment, it runs `set-language-environment-hook'."
(interactive (list (read-language-name
nil
"Set language environment (default English): ")))
:type '(repeat function))
(defvar set-auto-coding-for-load nil
- "Non-nil means look for `load-coding' property instead of `coding'.
-This is used for loading and byte-compiling Emacs Lisp files.")
+ "Non-nil means respect a \"unibyte: t\" entry in file local variables.
+Emacs binds this variable to t when loading or byte-compiling Emacs Lisp
+files.")
(defun auto-coding-alist-lookup (filename)
"Return the coding system specified by `auto-coding-alist' for FILENAME."
(setq translation-keymap (copy-keymap
(if simple quail-simple-translation-keymap
quail-translation-keymap)))
- (while translation-keys
- (define-key translation-keymap
- (car (car translation-keys)) (cdr (car translation-keys)))
- (setq translation-keys (cdr translation-keys))))
+ (dolist (trans translation-keys)
+ (define-key translation-keymap (car trans) (cdr trans))))
(setq translation-keymap
(if simple quail-simple-translation-keymap
quail-translation-keymap)))
(when conversion-keys
(setq conversion-keymap (copy-keymap quail-conversion-keymap))
- (while conversion-keys
- (define-key conversion-keymap
- (car (car conversion-keys)) (cdr (car conversion-keys)))
- (setq conversion-keys (cdr conversion-keys))))
+ (dolist (conv conversion-keys)
+ (define-key conversion-keymap (car conv) (cdr conv))))
(quail-add-package
(list name title (list nil) guidance (or docstring "")
translation-keymap
(setq quail-keyboard-layout-substitution subst-list)
;; If there are additional key locations, map them to missing
;; key locations.
- (while missing-list
+ (dolist (missing missing-list)
(while (and subst-list (cdr (car subst-list)))
(setq subst-list (cdr subst-list)))
(if subst-list
- (setcdr (car subst-list) (car missing-list)))
- (setq missing-list (cdr missing-list))))))
+ (setcdr (car subst-list) missing))))))
(defcustom quail-keyboard-layout-type "standard"
"Type of keyboard layout used in Quail base input method.
(if translation
(progn
(if (consp translation)
- (if (> (length (cdr translation)) 0)
- (setq translation (aref (cdr translation) 0))
- (setq translation " ")))
+ (setq translation
+ (if (> (length (cdr translation)) 0)
+ (aref (cdr translation) 0)
+ " ")))
(setq done-list (cons translation done-list)))
(setq translation (aref kbd-layout i)))
(aset layout i translation))
(if (< (if (stringp lower) (string-width lower) (char-width lower)) 2)
(insert " "))
(if (characterp lower)
- (if (eq (get-char-code-property lower 'general-category) 'Mn)
- ;; Pad the left and right of non-spacing characters.
- (setq lower (compose-string (string lower) 0 1
- (format "\t%c\t" lower)))
- (setq lower (string lower))))
+ (setq lower
+ (if (eq (get-char-code-property lower 'general-category) 'Mn)
+ ;; Pad the left and right of non-spacing characters.
+ (compose-string (string lower) 0 1
+ (format "\t%c\t" lower))
+ (string lower))))
(if (characterp upper)
- (if (eq (get-char-code-property upper 'general-category) 'Mn)
- ;; Pad the left and right of non-spacing characters.
- (setq upper (compose-string (string upper) 0 1
- (format "\t%c\t" upper)))
- (setq upper (string upper))))
+ (setq upper
+ (if (eq (get-char-code-property upper 'general-category) 'Mn)
+ ;; Pad the left and right of non-spacing characters.
+ (compose-string (string upper) 0 1
+ (format "\t%c\t" upper))
+ (string upper))))
(insert (bidi-string-mark-left-to-right lower)
(propertize " " 'invisible t)
(bidi-string-mark-left-to-right upper))
(let ((map (list nil))
(decode-map (if (not no-decode-map) (list 'decode-map)))
key trans)
- (while l
- (setq key (car (car l)) trans (car (cdr (car l))) l (cdr l))
+ (dolist (el l)
+ (setq key (car el) trans (car (cdr el)))
(quail-defrule-internal key trans map t decode-map props))
`(if (prog1 (quail-decode-map)
(quail-install-map ',map))
(if (stringp trans)
(setq trans (string-to-vector trans))))
(let ((new (quail-vunion prevchars trans)))
- (setq trans
+ (setq trans
(if (equal new prevchars)
;; Nothing to change, get back to orig value.
prev
the translation, and INDEX points into VECTOR to specify the currently
selected translation."
(if (and def (symbolp def))
- (if (functionp def)
- ;; DEF is a symbol of a function which returns valid translation.
- (setq def (funcall def key len))
- (setq def nil)))
+ ;; DEF is a symbol of a function which returns valid translation.
+ (setq def (if (functionp def) (funcall def key len))))
(if (and (consp def) (not (vectorp (cdr def))))
(setq def (car def)))
;; See lisp/international/README for the copyright and permission notice.
(define-char-code-property 'bidi-class #^[1 nil char-code-property-table
#^^[3 0 5 5 5 5 5 5 5 5 5 17 6 17 18 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 17 18 19 19 14 14 14 19 19 19 19 19 13 15 13 15 15 3 3 3 3 3 3 3 3 3 3 15 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 5] #^^[1 0 #^^[2 0
-#^^[3 0 5 5 5 5 5 5 5 5 5 17 6 17 18 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 17 18 19 19 14 14 14 19 19 19 19 19 13 15 13 15 15 3 3 3 3 3 3 3 3 3 3 15 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 5] "\ 2\ 5Â\85\ 6\ 5Â\9a\ f\13\ eÂ\84\13Â\84\ 1\13\13\ 5\13\13\ e\ e\ 3\ 3\13\ 1\13Â\83\ 3\ 1\13Â\85\ 1Â\97\13\ 1Â\9f\13\ 1Â\88" 1 1 1 "\ 2\ 1¹\13\13\ 1Â\87\13Â\8e\ 1\ 1\13Â\8e\ 1Â\85\13Â\89\ 1\13Â\91" "\ 2\10ð\ 1Â\84\13\13\ 1Â\88\13\ 1" "\ 2\ 1Â\84\13\13\ 1\13\ 1î\13\ 1Â\89" 1 "\ 2\ 1Â\83\10Â\87\ 1ö" 1 "\ 2\ 1Â\8a\13\ 1Â\85\ 2\10Â\ 2\10\ 2\10\10\ 2\10\10\ 2\10\ 2¸" "\ 2\ 4Â\84\a\a\13\13\a\ e\ e\a\ f\a\13\13\10Â\8b\a°\10Â\95\ 4Â\8a\ e\ 4\ 4\aÂ\83\10\aÂ\8f" "\ 2\aÃ\96\10Â\87\ 4\13\10Â\86\a\a\10\10\13\10Â\84\a\a\ 3Â\8a\aÂ\86" "\ 2\aÂ\8e\ 1\ 4\a\10\aÂ\9e\10Â\9b\ 1\ 1\a³" "\ 2\a¦\10Â\8b\a\ 1Â\8e\ 2«\10Â\89\ 2\ 2\13Â\84\ 2Â\86" "\ 2\ 2Â\96\10Â\84\ 2\10Â\89\ 2\10Â\83\ 2\10Â\85\ 2«\10Â\83\ 2¤" 2 "\ 2\10Â\83\ 1·\10\ 1\10\ 1Â\84\10Â\88\ 1Â\84\10\ 1Â\83\10Â\87\ 1Â\8a\10\10\ 1Â\9c" "\ 2\ 1\10\ 1º\10\ 1Â\84\10Â\84\ 1Â\88\10\ 1Â\94\10\10\ 1Â\8e\ e\ e\ 1Â\87\ e\ 1Â\84" "\ 2\ 1\10\10\ 1¹\10\ 1Â\84\10\10\ 1Â\84\10\10\ 1\ 1\10Â\83\ 1Â\83\10\ 1Â\9e\10\10\ 1Â\83\10\ 1Â\8a" "\ 2\ 1\10\10\ 1¹\10\ 1Â\84\10Â\85\ 1\10\10\ 1Â\84\10\ 1Â\94\10\10\ 1Â\8d\ e\ 1Â\8e" "\ 2\ 1\10\ 1º\10\ 1\ 1\10\ 1\10Â\84\ 1Â\88\10\ 1Â\88\10\ 1Â\8b\10\10\ 1Â\9c" "\ 2\ 1\ 1\10\ 1½\10\ 1Â\8c\10\ 1Â¥\13Â\86\ e\13\ 1Â\85" "\ 2\ 1¾\10Â\83\ 1Â\85\10Â\83\ 1\10Â\84\ 1Â\87\10\10\ 1Â\8b\10\10\ 1Â\94\13Â\87\ 1" "\ 2\ 1¼\10\ 1Â\8f\10\10\ 1Â\94\10\10\ 1Â\9c" "\ 2\ 1Ã\81\10Â\84\ 1Â\88\10\ 1Â\94\10\10\ 1Â\9c" "\ 2\ 1Ã\8a\10\ 1Â\87\10Â\83\ 1\10\ 1©" "\ 2\ 1±\10\ 1\ 1\10Â\87\ 1Â\84\ e\ 1Â\87\10Â\88\ 1±" "\ 2\ 1±\10\ 1\ 1\10Â\86\ 1\10\10\ 1Â\8b\10Â\86\ 1²" "\ 2\ 1Â\98\10\10\ 1Â\9b\10\ 1\10\ 1\10\13Â\84\ 1³\10Â\8e\ 1" "\ 2\10Â\85\ 1\10\10\ 1Â\85\10Â\8b\ 1\10¤\ 1Â\89\10\ 1¹"] #^^[2 4096 "\ 2\ 1Â\10Â\84\ 1\10Â\86\ 1\10\10\ 1\ 1\10\10\ 1Â\99\10\10\ 1Â\84\10Â\83\ 1Â\90\10Â\84\ 1Â\8b" "\ 2\ 1\ 1\10\ 1\ 1\10\10\ 1Â\86\10\ 1Â\8f\10\ 1â" 1 1 1 1 "\ 2\ 1Ã\9d\10Â\83\ 1 " "\ 2\ 1Â\90\13Â\8a\ 1æ" "\ 2\13\ 1ÿ" 1 1 1 1 "\ 2\12\ 1Â\9a\13\13\ 1ã" "\ 2\ 1Â\92\10Â\83\ 1Â\9d\10Â\83\ 1Â\9d\10\10\ 1Â\9e\10\10\ 1Â\8c" "\ 2\ 1·\10Â\87\ 1Â\88\10\ 1\ 1\10Â\8b\ 1Â\87\ e\ 1\10\ 1Â\92\13Â\8a\ 1Â\86" "\ 2\13Â\8b\10Â\83\12\ 1ñ" "\ 2\ 1©\10\ 1Ã\96" "\ 2\ 1 \10Â\83\ 1Â\84\10\10\ 1Â\89\10\ 1Â\86\10Â\83\ 1Â\84\13\ 1Â\83\13\13\ 1º" "\ 2\ 1Ã\9e\13¢" "\ 2\ 1Â\97\10\10\ 1½\10\ 1\10Â\87\ 1\10\ 1\10\ 1\ 1\10Â\88\ 1Â\86\10Â\8a\ 1\ 1\10" 1 "\ 2\10Â\84\ 1°\10\ 1\10Â\85\ 1\10\ 1Â\85\10\ 1¨\10Â\89\ 1Â\8c" "\ 2\10\10\ 1 \10Â\84\ 1\ 1\10\10\ 1¼\10\ 1\10\10\ 1Â\83\10\ 1\10Â\83\ 1Â\8e" "\ 2\ 1¬\10Â\88\ 1\ 1\10\10\ 1Ã\88" "\ 2\ 1Ã\90\10Â\83\ 1\10Â\8d\ 1\10Â\87\ 1Â\84\10\ 1Â\92" 1 "\ 2\ 1À\10§\ 1\95\10\84" 1 1 1 "\ 2\ 1½\13\ 1\13\83\ 1\8b\13\83\ 1\8d\13\83\ 1\8d\13\83\ 1\8d\13\13\ 1"] #^^[2 8192 "\ 2\12\8b\ 5\83\ 1\ 2\13\98\12\ 6\b
-\f \v\ f\ e\85\13\8f\ f\13\9a\12\ 5\85\ 1\85\ 5\86\ 3\ 1\83\ 3\86\r\r\13\83\ 1" "\ 2\ 3\8a\r\r\13\83\ 1\91\ e\9a\ 1\96\10¡\ 1\8f" "\ 2\13\13\ 1\13\84\ 1\13\13\ 1\8a\13\ 1\13\83\ 1\85\13\86\ 1\13\ 1\13\ 1\13\ 1\84\ e\ 1\8b\13\13\ 1\84\13\85\ 1\85\13\84\ 1\ 1\13\90\ 1 " "\ 2\ 1\89\13\ 1\86\13ð" "\ 2\13\92\r\ e\13ì" 19 "\ 2\13¶\ 1Å\13\85" "\ 2\13\95\ 1\13Þ\ 1\8c" "\ 2\13§\ 1\99\13\8b\ 1\95\13 " "\ 2\13\88\ 3\94\ 1Î\13\96" 19 19 19 "\ 2\13¬\ 1\13Ó" "\ 2\ 1\13ÿ" "\ 2\13Ë\ 1\13\ 1\13²" 1 1 19 19 19 19 "\ 2\13Í\ 1\83\13\8a\ 1¦" 1 1 "\ 2\ 1å\13\86\ 1\84\10\83\ 1\87\13\87" "\ 2\ 1ÿ\10" "\ 2\ 1à\10 " "\ 2\13²\ 1Î" "\ 2\13\9a\ 1\13Ù\ 1\8c" 19 "\ 2\13Ö\ 1\9a\13\8c\ 1\84"] #^^[2 12288 "\ 2\12\13\84\ 1\83\13\99\ 1\89\10\86\13\ 1\85\13\13\ 1\85\13\83\ 1À" "\ 2\ 1\99\10\10\13\13\ 1\83\13\ 1Ú\13\ 1\84" 1 "\ 2\ 1À\13¤\ 1\9c" "\ 2\ 1\9d\13\13\ 1±\13\90\ 1\9c\13\83\ 1" "\ 2\ 1±\13\8f\ 1\8c\13\84\ 1°" "\ 2\ 1÷\13\84\ 1\85" "\ 2\ 1Þ\13\13\ 1\9f\13" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 16384 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1À\13À" 1 1 1 1] 1 1 1 1 #^^[2 36864 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-#^^[3 40832 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[2 40960 1 1 1 1 1 1 1 1 1 "\ 2\ 1\90\13·\ 1¹" 1 1 "\ 2\ 1\8d\13\83\ 1ß\10\84\13\ 1\88\10\10\13\13" "\ 2\ 1ð\10\10\ 1\8e" "\ 2\13¢\ 1Þ" "\ 2\ 1\88\13\ 1÷" "\ 2\ 1\ 1\10\ 1\83\10\ 1\84\10\ 1\99\10\10\ 1\13\84\ 1\8c\ e\ e\ 1º\13\84\ 1\88" "\ 2\ 1Ä\10\ 1\9b\10\92\ 1\8e" "\ 2\ 1¦\10\88\ 1\99\10\8b\ 1®" "\ 2\10\83\ 1°\10\ 1\ 1\10\84\ 1\ 1\10\ 1Ã" "\ 2\ 1©\10\86\ 1\ 1\10\10\ 1\ 1\10\10\ 1\8c\10\ 1\88\10\ 1³" "\ 2\ 1°\10\ 1\10\83\ 1\ 1\10\10\ 1\85\10\10\ 1\10\ 1¾" 1 "\ 2\ 1å\10\ 1\ 1\10\ 1\84\10\ 1\92" 1 1 1 1 1 1 1 1] 1 1 #^^[2 53248 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 61440 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1\9d\ 2\10\ 2\8a\r\ 2¦\a°" 7 7 7 "\ 2\a¾\13\13\aÀ" "\ 2\aý\13\a\a" "\ 2\10\90\13\8a\ 1\86\10\87\ 1\89\13 \ f\13\ f\ 1\13\ f\13\89\ e\13\13\r\r\13\83\ 1\13\ e\ e\13\ 1\84\a\90" "\ 2\aÿ\ 5" "\ 2\ 1\13\13\ e\83\13\85\r\ f\r\ f\ f\ 3\8a\ f\13\86\ 1\9a\13\86\ 1\9a\13\8b\ 1\9a" "\ 2\ 1à\ e\ e\13\83\ e\ e\ 1\13\87\ 1\8a\13\85\ 1\ 1"]] #^^[1 65536 #^^[2 65536 1 1 "\ 2\ 1\13\ 1¾\13À" "\ 2\13\8b\ 1\85\13\8c\ 1á\10\ 1\ 1" 1 1 1 1 1 1 1 1 1 1 1 1 2 2 "\ 2\ 2\9f\13\ 2à" 2 "\ 2\ 2\10\83\ 2\10\10\ 2\85\10\84\ 2¨\10\83\ 2\84\10\ 2À" 2 "\ 2\ 2¹\13\87\ 2À" 2 2 2 2 2 "\ 2\ 2à\ 4\9f\ 2" 2 2 2] #^^[2 69632 "\ 2\ 1\10\ 1¶\10\8f\ 1\8b\13\94\ 1\9a" "\ 2\10\10\ 1±\10\84\ 1\ 1\10\10\ 1Å" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 73728 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 77824 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 #^^[2 90112 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 #^^[2 110592 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 118784 1 1 "\ 2\ 1ç\10\83\ 1\89\ 5\88\10\85" "\ 2\10\83\ 1\ 1\10\87\ 1\9e\10\84\ 1Ò" "\ 2\13Â\10\83\13\ 1º" 1 "\ 2\13×\ 1©" 1 1 1 1 1 1 "\ 2\ 1Û\13\ 1¤" "\ 2\ 1\95\13\ 1¹\13\ 1°" "\ 2\ 1\89\13\ 1¹\13\ 1\8a\ 3²" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 122880 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2] #^^[2 126976 "\ 2\13¬\ 1\84\13Ð" "\ 2\13\94\ 1\8c\13\8f\ 1\ 1\13\8e\ 1\ 1\13\8f\ 1\13\8f\ 1 " "\ 2\ 3\8b\ 1õ" 1 1 1 "\ 2\13¡\ 1\8f\13\86\ 1\13Æ\ 1\83" "\ 2\13\94\ 1\8c\13¥\ 1\13\85\ 1\95\13\91\ 1\8f" "\ 2\13¿\ 1\13\ 1\13¾" "\ 2\13\8c\ 1\13ë\ 1\13\84\ 1\83" "\ 2\13¤\ 1\13\99\ 1\92\13\98\ 1\98" "\ 2\ 1û\13\85" "\ 2\ 1\13\90\ 1\13\83\ 1\13\ 1\13\ 1\13\ 1\13\83\ 1\13\86\ 1\ 1\13\84\ 1\13\ 1\ 1\13\84\ 1\13\8c\ 1\84\13\8b\ 1°" "\ 2\13Æ\ 1º" "\ 2\13ô\ 1\8c" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[1 131072 1 1 1 1 1 1 1 1 1 1 #^^[2 172032 1 1 1 1 1 1 1 1 1 1 1 1 1
+#^^[3 0 5 5 5 5 5 5 5 5 5 17 6 17 18 6 5 5 5 5 5 5 5 5 5 5 5 5 5 5 6 6 6 17 18 19 19 14 14 14 19 19 19 19 19 13 15 13 15 15 3 3 3 3 3 3 3 3 3 3 15 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 19 19 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 19 19 19 19 5] "\ 2\ 5Â\85\ 6\ 5Â\9a\ f\13\ eÂ\84\13Â\84\ 1\13\13\ 5\13\13\ e\ e\ 3\ 3\13\ 1\13Â\83\ 3\ 1\13Â\85\ 1Â\97\13\ 1Â\9f\13\ 1Â\88" 1 1 1 "\ 2\ 1¹\13\13\ 1Â\87\13Â\8e\ 1\ 1\13Â\8e\ 1Â\85\13Â\89\ 1\13Â\91" "\ 2\10ð\ 1Â\84\13\13\ 1Â\88\13\ 1" "\ 2\ 1Â\84\13\13\ 1\13\ 1î\13\ 1Â\89" 1 "\ 2\ 1Â\83\10Â\87\ 1ö" 1 "\ 2\ 1Â\8a\13\ 1Â\84\ e\ 2\10Â\ 2\10\ 2\10\10\ 2\10\10\ 2\10\ 2¸" "\ 2\ 4Â\85\a\13\13\a\ e\ e\a\ f\a\13\13\10Â\8b\a°\10Â\95\ 4Â\8a\ e\ 4\ 4\aÂ\83\10\aÂ\8f" "\ 2\aÃ\96\10Â\87\ 4\13\10Â\86\a\a\10\10\13\10Â\84\a\a\ 3Â\8a\aÂ\86" "\ 2\aÂ\8e\ 1\a\a\10\aÂ\9e\10Â\9b\ 1\ 1\a³" "\ 2\a¦\10Â\8b\a\ 1Â\8e\ 2«\10Â\89\ 2\ 2\13Â\84\ 2Â\86" "\ 2\ 2Â\96\10Â\84\ 2\10Â\89\ 2\10Â\83\ 2\10Â\85\ 2«\10Â\83\ 2¤" "\ 2\ 2 \a\ 2\aÂ\8b\ 2·\10Â\9b\ 2" "\ 2\10Â\83\ 1·\10\ 1\10\ 1Â\84\10Â\88\ 1Â\84\10\ 1Â\83\10Â\87\ 1Â\8a\10\10\ 1Â\9c" "\ 2\ 1\10\ 1º\10\ 1Â\84\10Â\84\ 1Â\88\10\ 1Â\94\10\10\ 1Â\8e\ e\ e\ 1Â\87\ e\ 1Â\84" "\ 2\ 1\10\10\ 1¹\10\ 1Â\84\10\10\ 1Â\84\10\10\ 1\ 1\10Â\83\ 1Â\83\10\ 1Â\9e\10\10\ 1Â\83\10\ 1Â\8a" "\ 2\ 1\10\10\ 1¹\10\ 1Â\84\10Â\85\ 1\10\10\ 1Â\84\10\ 1Â\94\10\10\ 1Â\8d\ e\ 1Â\8e" "\ 2\ 1\10\ 1º\10\ 1\ 1\10\ 1\10Â\84\ 1Â\88\10\ 1Â\88\10\ 1Â\8b\10\10\ 1Â\9c" "\ 2\ 1\ 1\10\ 1½\10\ 1Â\8c\10\ 1Â¥\13Â\86\ e\13\ 1Â\85" "\ 2\ 1¾\10Â\83\ 1Â\85\10Â\83\ 1\10Â\84\ 1Â\87\10\10\ 1Â\8b\10\10\ 1Â\94\13Â\87\ 1" "\ 2\ 1¼\10\ 1Â\8f\10\10\ 1Â\94\10\10\ 1Â\9c" "\ 2\ 1Ã\81\10Â\84\ 1Â\88\10\ 1Â\94\10\10\ 1Â\9c" "\ 2\ 1Ã\8a\10\ 1Â\87\10Â\83\ 1\10\ 1©" "\ 2\ 1±\10\ 1\ 1\10Â\87\ 1Â\84\ e\ 1Â\87\10Â\88\ 1±" "\ 2\ 1±\10\ 1\ 1\10Â\86\ 1\10\10\ 1Â\8b\10Â\86\ 1²" "\ 2\ 1Â\98\10\10\ 1Â\9b\10\ 1\10\ 1\10\13Â\84\ 1³\10Â\8e\ 1" "\ 2\10Â\85\ 1\10\10\ 1Â\85\10Â\8b\ 1\10¤\ 1Â\89\10\ 1¹"] #^^[2 4096 "\ 2\ 1Â\10Â\84\ 1\10Â\86\ 1\10\10\ 1\ 1\10\10\ 1Â\99\10\10\ 1Â\84\10Â\83\ 1Â\90\10Â\84\ 1Â\8b" "\ 2\ 1\ 1\10\ 1\ 1\10\10\ 1Â\86\10\ 1Â\8f\10\ 1â" 1 1 1 1 "\ 2\ 1Ã\9d\10Â\83\ 1 " "\ 2\ 1Â\90\13Â\8a\ 1æ" "\ 2\13\ 1ÿ" 1 1 1 1 "\ 2\12\ 1Â\9a\13\13\ 1ã" "\ 2\ 1Â\92\10Â\83\ 1Â\9d\10Â\83\ 1Â\9d\10\10\ 1Â\9e\10\10\ 1Â\8c" "\ 2\ 1´\10\10\ 1\10Â\87\ 1Â\88\10\ 1\ 1\10Â\8b\ 1Â\87\ e\ 1\10\ 1Â\92\13Â\8a\ 1Â\86" "\ 2\13Â\8b\10Â\83\12\ 1ñ" "\ 2\ 1©\10\ 1Ã\96" "\ 2\ 1 \10Â\83\ 1Â\84\10\10\ 1Â\89\10\ 1Â\86\10Â\83\ 1Â\84\13\ 1Â\83\13\13\ 1º" "\ 2\ 1Ã\9e\13¢" "\ 2\ 1Â\97\10\10\ 1½\10\ 1\10Â\87\ 1\10\ 1\10\ 1\ 1\10Â\88\ 1Â\86\10Â\8a\ 1\ 1\10" 1 "\ 2\10Â\84\ 1°\10\ 1\10Â\85\ 1\10\ 1Â\85\10\ 1¨\10Â\89\ 1Â\8c" "\ 2\10\10\ 1 \10Â\84\ 1\ 1\10\10\ 1\10\ 1º\10\ 1\10\10\ 1Â\83\10\ 1\10Â\83\ 1Â\8e" "\ 2\ 1¬\10Â\88\ 1\ 1\10\10\ 1Ã\88" "\ 2\ 1Ã\90\10Â\83\ 1\10Â\8d\ 1\10Â\87\ 1Â\84\10\ 1Â\86\10\ 1Â\8b" 1 "\ 2\ 1À\10§\ 1\95\10\84" 1 1 1 "\ 2\ 1½\13\ 1\13\83\ 1\8b\13\83\ 1\8d\13\83\ 1\8d\13\83\ 1\8d\13\13\ 1"] #^^[2 8192 "\ 2\12\8b\ 5\83\ 1\ 2\13\98\12\ 6\b
+\f \v\ f\ e\85\13\8f\ f\13\9a\12\ 5\85\ 1\85\ 5\86\ 3\ 1\83\ 3\86\r\r\13\83\ 1" "\ 2\ 3\8a\r\r\13\83\ 1\91\ e\9a\ 1\96\10¡\ 1\8f" "\ 2\13\13\ 1\13\84\ 1\13\13\ 1\8a\13\ 1\13\83\ 1\85\13\86\ 1\13\ 1\13\ 1\13\ 1\84\ e\ 1\8b\13\13\ 1\84\13\85\ 1\85\13\84\ 1\ 1\13\90\ 1 " "\ 2\ 1\89\13\ 1\86\13ð" "\ 2\13\92\r\ e\13ì" 19 "\ 2\13¶\ 1Å\13\85" "\ 2\13\95\ 1\13Þ\ 1\8c" "\ 2\13§\ 1\99\13\8b\ 1\95\13 " "\ 2\13\88\ 3\94\ 1Î\13\96" 19 19 19 "\ 2\13¬\ 1\13Ó" "\ 2\ 1\13ÿ" 19 1 1 19 19 19 19 "\ 2\13Í\ 1\83\13\8a\ 1¦" 1 1 "\ 2\ 1å\13\86\ 1\84\10\83\ 1\87\13\87" "\ 2\ 1ÿ\10" "\ 2\ 1à\10 " "\ 2\13¼\ 1Ä" "\ 2\13\9a\ 1\13Ù\ 1\8c" 19 "\ 2\13Ö\ 1\9a\13\8c\ 1\84"] #^^[2 12288 "\ 2\12\13\84\ 1\83\13\99\ 1\89\10\84\ 1\ 1\13\ 1\85\13\13\ 1\85\13\83\ 1À" "\ 2\ 1\99\10\10\13\13\ 1\83\13\ 1Ú\13\ 1\84" 1 "\ 2\ 1À\13¤\ 1\9c" "\ 2\ 1\9d\13\13\ 1±\13\90\ 1\9c\13\83\ 1" "\ 2\ 1±\13\8f\ 1\8c\13\84\ 1°" "\ 2\ 1÷\13\84\ 1\85" "\ 2\ 1Þ\13\13\ 1\9f\13" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 16384 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1À\13À" 1 1 1 1] 1 1 1 1 #^^[2 36864 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
+#^^[3 40832 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[2 40960 1 1 1 1 1 1 1 1 1 "\ 2\ 1\90\13·\ 1¹" 1 1 "\ 2\ 1\8d\13\83\ 1ß\10\84\13\10\8a\13\13" "\ 2\ 1\9f\10\ 1Ð\10\10\ 1\8e" "\ 2\13¢\ 1Þ" "\ 2\ 1\88\13\ 1÷" "\ 2\ 1\ 1\10\ 1\83\10\ 1\84\10\ 1\99\10\10\ 1\13\84\ 1\8c\ e\ e\ 1º\13\84\ 1\88" "\ 2\ 1Ä\10\ 1\9b\10\92\ 1\8e" "\ 2\ 1¦\10\88\ 1\99\10\8b\ 1®" "\ 2\10\83\ 1°\10\ 1\ 1\10\84\ 1\ 1\10\ 1Ã" "\ 2\ 1©\10\86\ 1\ 1\10\10\ 1\ 1\10\10\ 1\8c\10\ 1\88\10\ 1³" "\ 2\ 1°\10\ 1\10\83\ 1\ 1\10\10\ 1\85\10\10\ 1\10\ 1ª\10\10\ 1\88\10\ 1\89" 1 "\ 2\ 1å\10\ 1\ 1\10\ 1\84\10\ 1\92" 1 1 1 1 1 1 1 1] 1 1 #^^[2 53248 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 61440 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1\9d\ 2\10\ 2\8a\r\ 2¦\a°" 7 7 7 "\ 2\a¾\13\13\aÀ" "\ 2\aý\13\a\a" "\ 2\10\90\13\8a\ 1\86\10\87\ 1\89\13 \ f\13\ f\ 1\13\ f\13\89\ e\13\13\r\r\13\83\ 1\13\ e\ e\13\ 1\84\a\90" "\ 2\aÿ\ 5" "\ 2\ 1\13\13\ e\83\13\85\r\ f\r\ f\ f\ 3\8a\ f\13\86\ 1\9a\13\86\ 1\9a\13\8b\ 1\9a" "\ 2\ 1à\ e\ e\13\83\ e\ e\ 1\13\87\ 1\8a\13\85\ 1\ 1"]] #^^[1 65536 #^^[2 65536 1 1 "\ 2\ 1\13\ 1¾\13À" "\ 2\13\8b\ 1\85\13\8c\ 1á\10\ 1\ 1" 1 1 1 1 1 1 1 1 1 1 1 1 2 2 "\ 2\ 2\9f\13\ 2à" 2 "\ 2\ 2\10\83\ 2\10\10\ 2\85\10\84\ 2¨\10\83\ 2\84\10\ 2À" 2 "\ 2\ 2¹\13\87\ 2À" 2 2 2 2 2 "\ 2\ 2à\ 4\9f\ 2" 2 2 2] #^^[2 69632 "\ 2\ 1\10\ 1¶\10\8f\ 1\8b\13\94\ 1\9a" "\ 2\10\10\ 1±\10\84\ 1\ 1\10\10\ 1Å" "\ 2\10\83\ 1¤\10\85\ 1\10\88\ 1Ë" "\ 2\10\10\ 1´\10\89\ 1Á" 1 1 1 1 1 1 1 1 1 "\ 2\ 1«\10\ 1\10\ 1\ 1\10\86\ 1\10\ 1È" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 73728 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 77824 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 #^^[2 90112 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1\8f\10\84\ 1í"] 1 1 1 1 #^^[2 110592 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 118784 1 1 "\ 2\ 1ç\10\83\ 1\89\ 5\88\10\85" "\ 2\10\83\ 1\ 1\10\87\ 1\9e\10\84\ 1Ò" "\ 2\13Â\10\83\13\ 1º" 1 "\ 2\13×\ 1©" 1 1 1 1 1 1 "\ 2\ 1Û\13\ 1¤" "\ 2\ 1\95\13\ 1¹\13\ 1°" "\ 2\ 1\89\13\ 1¹\13\ 1\8a\ 3²" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 122880 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2 2 2 2 2 2 2 2 2 2 2 "\ 2\a\84\ 2\a\9b\ 2\a\a\ 2\a\ 2\ 2\a\ 2\a\8a\ 2\a\84\ 2\a\ 2\a\ 2\86\a\ 2\84\a\ 2\a\ 2\a\ 2\a\83\ 2\a\a\ 2\a\ 2\ 2\a\ 2\a\ 2\a\ 2\a\ 2\a\ 2\a\a\ 2\a\ 2\ 2\a\84\ 2\a\87\ 2\a\84\ 2\a\84\ 2\a\ 2" "\ 2\a\8a\ 2\a\91\ 2\85\a\83\ 2\a\85\ 2\a\91\ 2´\13\13\ 2\8e" 2 2] #^^[2 126976 "\ 2\13¬\ 1\84\13Ð" "\ 2\13\94\ 1\8c\13\8f\ 1\ 1\13\8e\ 1\ 1\13\8f\ 1\13\8f\ 1 " "\ 2\ 3\8b\ 1ß\13\13\ 1\94" 1 1 1 "\ 2\13¡\ 1\8f\13\86\ 1\13Æ\ 1\83" "\ 2\13\94\ 1\8c\13¥\ 1\13\85\ 1\95\13\91\ 1\8f" "\ 2\13¿\ 1\13\ 1\13¾" "\ 2\13ø\ 1\13\84\ 1\83" "\ 2\13¾\ 1\ 1\13\84\ 1\8c\13\98\ 1\98" "\ 2\ 1û\13\85" "\ 2\13Á\ 1\84\13\8b\ 1°" "\ 2\13Æ\ 1º" "\ 2\13ô\ 1\8c" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[1 131072 1 1 1 1 1 1 1 1 1 1 #^^[2 172032 1 1 1 1 1 1 1 1 1 1 1 1 1
#^^[3 173696 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 176128 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#^^[3 177920 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1
#^^[3 178176 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 #^^[2 192512 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] 1 1 1 1 1 1 1 1 1 1 1 #^^[1 917504 #^^[2 917504 "\ 2\ 1\ 5\ 1\9e\ 5à" 1 16 "\ 2\10ð\ 1\90" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[1 983040 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #^^[2 1044480 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
;; See lisp/international/README for the copyright and permission notice.
(define-char-code-property 'general-category #^[30 nil char-code-property-table
#^^[3 0 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 23 18 18 18 20 18 18 18 14 15 18 19 18 13 18 18 9 9 9 9 9 9 9 9 9 9 18 18 19 19 19 18 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 18 15 21 12 21 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 14 19 15 19 26] #^^[1 0 #^^[2 0
-#^^[3 0 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 23 18 18 18 20 18 18 18 14 15 18 19 18 13 18 18 9 9 9 9 9 9 9 9 9 9 18 18 19 19 19 18 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 18 15 21 12 21 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 14 19 15 19 26] "\ 2\1a \17\12\14\84\16\16\15\16\ 2\10\13\e\16\15\16\13\v\v\15\ 2\16\12\15\v\ 2\11\v\83\12\ 1\97\13\ 1\87\ 2\98\13\ 2\88" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 2" "\ 2\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\83\ 2\ 2\ 1\84\ 2\ 1\ 1\ 2\ 1\83\ 2\83\ 1\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 1\ 2\ 1\83\ 2\ 1\ 2\ 1\ 1\ 2\ 2\ 5\ 1\ 2\83\ 5\84\ 1\ 3\ 2\ 1\ 3\ 2\ 1\ 3\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 3\ 2\ 1\ 2\ 1\83\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\87\ 1\ 1\ 2\ 1\ 1\ 2\ 2\ 1\ 2\ 1\84\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2±" "\ 2\ 2\94\ 5\ 2\9b\ 4\92\15\84\ 4\8c\15\8e\ 4\85\15\87\ 4\15\ 4\15\91" "\ 2\ 6ð\ 1\ 2\ 1\ 2\ 4\15\ 1\ 2\1e\1e\ 4\ 2\83\12\1e" "\ 2\1e\84\15\15\ 1\12\ 1\83\1e\ 1\1e\ 1\ 1\ 2\ 1\91\1e\ 1\89\ 2£\ 1\ 2\ 2\ 1\83\ 2\83\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\85\ 1\ 2\13\ 1\ 2\ 1\ 1\ 2\ 2\ 1\83" "\ 2\ 1°\ 2°\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\16\ 6\85\b\b\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\1e\89\ 1¦\1e\1e\ 4\12\86\1e\ 2\9f" "\ 2\ 2\88\1e\12\r\1e\86\ 6\r\ 6\12\ 6\ 6\12\ 6\ 6\12\ 6\1e\88\ 5\9b\1e\85\ 5\83\12\12\1e\8b" "\ 2\e\84\1e\1e\13\83\12\12\14\12\12\16\16\ 6\8b\12\1e\1e\12\12\ 5 \ 4\ 5\8a\ 6\95 \8a\12\84\ 5\ 5\ 6\ 5\8f" "\ 2\ 5Ô\12\ 5\ 6\87\e\16\ 6\86\ 4\ 4\ 6\ 6\16\ 6\84\ 5\ 5 \8a\ 5\83\16\16\ 5" "\ 2\12\8e\1e\e\ 5\ 6\ 5\9e\ 6\9b\1e\1e\ 5³" "\ 2\ 5¦\ 6\8b\ 5\1e\8e \8a\ 5¡\ 6\89\ 4\ 4\16\12\83\ 4\1e\85" "\ 2\ 5\96\ 6\84\ 4\ 6\89\ 4\ 6\83\ 4\ 6\85\1e\1e\12\8f\1e\ 5\99\ 6\83\1e\1e\12\1e¡" 30 "\ 2\ 6\83\a\ 5¶\ 6\a\ 6\ 5\a\83\ 6\88\a\84\ 6\a\a\ 5\ 6\87\ 5\8a\ 6\ 6\12\12 \8a\12\ 4\ 5\86\1e\ 5\87" "\ 2\1e\ 6\a\a\1e\ 5\88\1e\1e\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\1e\83\ 5\84\1e\1e\ 6\ 5\a\83\ 6\84\1e\1e\a\a\1e\1e\a\a\ 6\ 5\1e\88\a\1e\84\ 5\ 5\1e\ 5\83\ 6\ 6\1e\1e \8a\ 5\ 5\14\14\v\86\16\14\1e\84" "\ 2\1e\ 6\ 6\a\1e\ 5\86\1e\84\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\ 5\1e\ 5\ 5\1e\1e\ 6\1e\a\83\ 6\ 6\1e\84\ 6\ 6\1e\1e\ 6\83\1e\83\ 6\1e\87\ 5\84\1e\ 5\1e\87 \8a\ 6\ 6\ 5\83\ 6\1e\8a" "\ 2\1e\ 6\ 6\a\1e\ 5\89\1e\ 5\83\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\85\1e\1e\ 6\ 5\a\83\ 6\85\1e\ 6\ 6\a\1e\a\a\ 6\1e\1e\ 5\1e\8f\ 5\ 5\ 6\ 6\1e\1e \8a\1e\14\1e\8e" "\ 2\1e\ 6\a\a\1e\ 5\88\1e\1e\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\85\1e\1e\ 6\ 5\a\ 6\a\ 6\84\1e\1e\a\a\1e\1e\a\a\ 6\1e\88\ 6\a\1e\84\ 5\ 5\1e\ 5\83\ 6\ 6\1e\1e \8a\16\ 5\v\86\1e\88" "\ 2\1e\1e\ 6\ 5\1e\ 5\86\1e\83\ 5\83\1e\ 5\84\1e\83\ 5\ 5\1e\ 5\1e\ 5\ 5\1e\83\ 5\ 5\1e\83\ 5\83\1e\83\ 5\8c\1e\84\a\a\ 6\a\a\1e\83\a\83\1e\a\83\ 6\1e\1e\ 5\1e\86\a\1e\8e \8a\v\83\16\86\14\16\1e\85" "\ 2\1e\a\83\1e\ 5\88\1e\ 5\83\1e\ 5\97\1e\ 5\8a\1e\ 5\85\1e\83\ 5\ 6\83\a\84\1e\ 6\83\1e\ 6\84\1e\87\ 6\ 6\1e\ 5\ 5\1e\86\ 5\ 5\ 6\ 6\1e\1e \8a\1e\88\v\87\16" "\ 2\1e\1e\a\a\1e\ 5\88\1e\ 5\83\1e\ 5\97\1e\ 5\8a\1e\ 5\85\1e\1e\ 6\ 5\a\ 6\a\85\1e\ 6\a\a\1e\a\a\ 6\ 6\1e\87\a\a\1e\87\ 5\1e\ 5\ 5\ 6\ 6\1e\1e \8a\1e\ 5\ 5\1e\8d" "\ 2\1e\1e\a\a\1e\ 5\88\1e\ 5\83\1e\ 5©\1e\1e\ 5\a\83\ 6\84\1e\a\83\1e\a\83\ 6\ 5\1e\88\a\1e\88\ 5\ 5\ 6\ 6\1e\1e \8a\v\86\1e\83\16\ 5\86" "\ 2\1e\1e\a\a\1e\ 5\92\1e\83\ 5\98\1e\ 5\89\1e\ 5\1e\1e\ 5\87\1e\83\ 6\1e\84\a\83\ 6\83\1e\ 6\1e\a\88\1e\92\a\a\12\1e\8b" "\ 2\1e\ 5°\ 6\ 5\ 5\ 6\87\1e\84\14\ 5\86\ 4\ 6\88\12 \8a\12\12\1e¤" "\ 2\1e\ 5\ 5\1e\ 5\1e\1e\ 5\ 5\1e\ 5\1e\1e\ 5\1e\86\ 5\84\1e\ 5\87\1e\ 5\83\1e\ 5\1e\ 5\1e\1e\ 5\ 5\1e\ 5\84\ 6\ 5\ 5\ 6\86\1e\ 6\ 6\ 5\1e\1e\ 5\85\1e\ 4\1e\ 6\86\1e\1e \8a\1e\1e\ 5\ 5\1e¢" "\ 2\ 5\16\83\12\8f\16\85\ 6\ 6\16\86 \8a\v\8a\16\ 6\16\ 6\16\ 6\ e\ f\ e\ f\a\a\ 5\88\1e\ 5¤\1e\84\ 6\8e\a" "\ 2\ 6\85\12\ 6\ 6\ 5\85\ 6\8b\1e\ 6¤\1e\16\88\ 6\16\86\1e\16\16\12\85\16\84\12\12\1e¥"] #^^[2 4096 "\ 2\ 5«\a\a\ 6\84\a\ 6\86\a\ 6\ 6\a\a\ 6\ 6\ 5 \8a\12\86\ 5\86\a\a\ 6\ 6\ 5\84\ 6\83\ 5\a\83\ 5\ 5\a\87\ 5\83\ 6\84\ 5\8b" "\ 2\ 5\ 5\ 6\a\a\ 6\ 6\a\86\ 6\ 5\a \8a\a\83\ 6\16\16\ 1¦\1e\8a\ 5«\12\ 4\1e\83" 5 5 "\ 2\ 5É\1e\ 5\84\1e\1e\ 5\87\1e\ 5\1e\ 5\84\1e\1e\ 5 " "\ 2\ 5\89\1e\ 5\84\1e\1e\ 5¡\1e\ 5\84\1e\1e\ 5\87\1e\ 5\1e\ 5\84\1e\1e\ 5\8f\1e\ 5¨" "\ 2\ 5\91\1e\ 5\84\1e\1e\ 5Ã\1e\1e\ 6\83\16\12\88\v\94\1e\83" "\ 2\ 5\90\16\8a\1e\86\ 5Õ\1e\8b" "\ 2\r\ 5ÿ" 5 5 5 "\ 2\ 5í\12\12\ 5\91" "\ 2\17\ 5\9a\ e\ f\1e\83\ 5Ë\12\83
-\83\1e\8f" "\ 2\ 5\8d\1e\ 5\84\ 6\83\1e\8b\ 5\92\ 6\83\12\12\1e\89\ 5\92\ 6\ 6\1e\8c\ 5\8d\1e\ 5\83\1e\ 6\ 6\1e\8c" "\ 2\ 5´\e\e\a\ 6\87\a\88\ 6\a\a\ 6\8b\12\83\ 4\12\83\14\ 5\ 6\1e\1e \8a\1e\86\v\8a\1e\86" "\ 2\12\86\r\12\84\ 6\83\17\1e \8a\1e\86\ 5£\ 4\ 5´\1e\88" "\ 2\ 5©\ 6\ 5\1e\85\ 5Æ\1e\8a" "\ 2\ 5\9d\1e\83\ 6\83\a\84\ 6\ 6\a\83\1e\84\a\a\ 6\a\86\ 6\83\1e\84\16\1e\83\12\12 \8a\ 5\9e\1e\1e\ 5\85\1e\8b" "\ 2\ 5¬\1e\84\a\91\ 5\87\a\a\1e\86 \8a\v\1e\83\16¢" "\ 2\ 5\97\ 6\ 6\a\83\1e\1e\12\12\ 5µ\a\ 6\a\ 6\87\1e\ 6\a\ 6\a\a\ 6\88\a\86\ 6\8a\1e\1e\ 6" "\ 2 \8a\1e\86 \8a\1e\86\12\87\ 4\12\86\1eÒ" "\ 2\ 6\84\a\ 5¯\ 6\a\ 6\85\a\ 6\a\85\ 6\a\a\ 5\87\1e\84 \8a\12\87\16\8a\ 6\89\16\89\1e\83" "\ 2\ 6\ 6\a\ 5\9e\a\ 6\84\a\a\ 6\ 6\a\1e\83\ 5\ 5 \8a\1e\86\ 5¦\ 6\a\ 6\ 6\a\83\ 6\a\ 6\83\a\a\1e\88\12\84" "\ 2\ 5¤\a\88\ 6\88\a\a\ 6\ 6\1e\83\12\85 \8a\1e\83\ 5\83 \8a\ 5\9e\ 4\86\12\12" "\ 2\1eÐ\ 6\83\12\ 6\8d\a\ 6\87\ 5\84\ 6\ 5\84\a\1e\8d" "\ 2\ 2¬\ 4¶\ 2\96\ 4\ 2\87" "\ 2\ 2\9b\ 4¥\ 6§\1e\95\ 6\84" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\89\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 2\88\ 1\88\ 2\86\1e\1e\ 1\86\1e\1e\ 2\88\ 1\88\ 2\88\ 1\88\ 2\86\1e\1e\ 1\86\1e\1e\ 2\88\1e\ 1\1e\ 1\1e\ 1\1e\ 1\ 2\88\ 1\88\ 2\8e\1e\1e" "\ 2\ 2\88\ 3\88\ 2\88\ 3\88\ 2\88\ 3\88\ 2\85\1e\ 2\ 2\ 1\84\ 3\15\ 2\15\83\ 2\83\1e\ 2\ 2\ 1\84\ 3\15\83\ 2\84\1e\1e\ 2\ 2\ 1\84\1e\15\83\ 2\88\ 1\85\15\83\1e\1e\ 2\83\1e\ 2\ 2\ 1\84\ 3\15\15\1e"] #^^[2 8192 "\ 2\17\8b\e\85\r\86\12\12\10\11\ e\10\10\11\ e\10\12\88\18\19\e\85\17\12\89\10\11\12\84\f\f\12\83\13\ e\ f\12\8b\13\12\f\12\8a\17\e\85\1e\85\e\86\v\ 4\1e\1e\v\86\13\83\ e\ f\ 4" "\ 2\v\8a\13\83\ e\ f\1e\ 4\8d\1e\83\14\9a\1e\96\ 6\8d\b\84\ 6\b\83\ 6\8c\1e\8f" "\ 2\16\16\ 1\16\84\ 1\16\16\ 2\ 1\83\ 2\ 2\ 1\83\ 2\16\ 1\16\16\13\ 1\85\16\86\ 1\16\ 1\16\ 1\16\ 1\84\16\ 2\ 1\84\ 2\ 5\84\ 2\16\16\ 2\ 2\ 1\ 1\13\85\ 1\ 2\84\16\13\16\16\ 2\16\v\90
+#^^[3 0 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 26 23 18 18 18 20 18 18 18 14 15 18 19 18 13 18 18 9 9 9 9 9 9 9 9 9 9 18 18 19 19 19 18 18 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 14 18 15 21 12 21 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 14 19 15 19 26] "\ 2\1a \17\12\14\84\16\12\15\16\ 5\10\13\e\16\15\16\13\v\v\15\ 2\12\12\15\v\ 5\11\v\83\12\ 1\97\13\ 1\87\ 2\98\13\ 2\88" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 2" "\ 2\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\83\ 2\ 2\ 1\84\ 2\ 1\ 1\ 2\ 1\83\ 2\83\ 1\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 1\ 2\ 1\83\ 2\ 1\ 2\ 1\ 1\ 2\ 2\ 5\ 1\ 2\83\ 5\84\ 1\ 3\ 2\ 1\ 3\ 2\ 1\ 3\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 3\ 2\ 1\ 2\ 1\83\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\87\ 1\ 1\ 2\ 1\ 1\ 2\ 2\ 1\ 2\ 1\84\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2±" "\ 2\ 2\94\ 5\ 2\9b\ 4\92\15\84\ 4\8c\15\8e\ 4\85\15\87\ 4\15\ 4\15\91" "\ 2\ 6ð\ 1\ 2\ 1\ 2\ 4\15\ 1\ 2\1e\1e\ 4\ 2\83\12\1e" "\ 2\1e\84\15\15\ 1\12\ 1\83\1e\ 1\1e\ 1\ 1\ 2\ 1\91\1e\ 1\89\ 2£\ 1\ 2\ 2\ 1\83\ 2\83\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\85\ 1\ 2\13\ 1\ 2\ 1\ 1\ 2\ 2\ 1\83" "\ 2\ 1°\ 2°\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\16\ 6\85\b\b\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\1e\89\ 1¦\1e\1e\ 4\12\86\1e\ 2\9f" "\ 2\ 2\88\1e\12\r\1e\84\14\1e\ 6\r\ 6\12\ 6\ 6\12\ 6\ 6\12\ 6\1e\88\ 5\9b\1e\85\ 5\83\12\12\1e\8b" "\ 2\e\85\1e\13\83\12\12\14\12\12\16\16\ 6\8b\12\1e\1e\12\12\ 5 \ 4\ 5\8a\ 6\95 \8a\12\84\ 5\ 5\ 6\ 5\8f" "\ 2\ 5Ô\12\ 5\ 6\87\e\16\ 6\86\ 4\ 4\ 6\ 6\16\ 6\84\ 5\ 5 \8a\ 5\83\16\16\ 5" "\ 2\12\8e\1e\e\ 5\ 6\ 5\9e\ 6\9b\1e\1e\ 5³" "\ 2\ 5¦\ 6\8b\ 5\1e\8e \8a\ 5¡\ 6\89\ 4\ 4\16\12\83\ 4\1e\85" "\ 2\ 5\96\ 6\84\ 4\ 6\89\ 4\ 6\83\ 4\ 6\85\1e\1e\12\8f\1e\ 5\99\ 6\83\1e\1e\12\1e¡" "\ 2\1e \ 5\1e\ 5\8b\1e·\ 6\9b\1e" "\ 2\ 6\83\a\ 5¶\ 6\a\ 6\ 5\a\83\ 6\88\a\84\ 6\a\a\ 5\ 6\87\ 5\8a\ 6\ 6\12\12 \8a\12\ 4\ 5\86\1e\ 5\87" "\ 2\1e\ 6\a\a\1e\ 5\88\1e\1e\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\1e\83\ 5\84\1e\1e\ 6\ 5\a\83\ 6\84\1e\1e\a\a\1e\1e\a\a\ 6\ 5\1e\88\a\1e\84\ 5\ 5\1e\ 5\83\ 6\ 6\1e\1e \8a\ 5\ 5\14\14\v\86\16\14\1e\84" "\ 2\1e\ 6\ 6\a\1e\ 5\86\1e\84\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\ 5\1e\ 5\ 5\1e\1e\ 6\1e\a\83\ 6\ 6\1e\84\ 6\ 6\1e\1e\ 6\83\1e\83\ 6\1e\87\ 5\84\1e\ 5\1e\87 \8a\ 6\ 6\ 5\83\ 6\1e\8a" "\ 2\1e\ 6\ 6\a\1e\ 5\89\1e\ 5\83\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\85\1e\1e\ 6\ 5\a\83\ 6\85\1e\ 6\ 6\a\1e\a\a\ 6\1e\1e\ 5\1e\8f\ 5\ 5\ 6\ 6\1e\1e \8a\12\14\1e\8e" "\ 2\1e\ 6\a\a\1e\ 5\88\1e\1e\ 5\ 5\1e\1e\ 5\96\1e\ 5\87\1e\ 5\ 5\1e\ 5\85\1e\1e\ 6\ 5\a\ 6\a\ 6\84\1e\1e\a\a\1e\1e\a\a\ 6\1e\88\ 6\a\1e\84\ 5\ 5\1e\ 5\83\ 6\ 6\1e\1e \8a\16\ 5\v\86\1e\88" "\ 2\1e\1e\ 6\ 5\1e\ 5\86\1e\83\ 5\83\1e\ 5\84\1e\83\ 5\ 5\1e\ 5\1e\ 5\ 5\1e\83\ 5\ 5\1e\83\ 5\83\1e\83\ 5\8c\1e\84\a\a\ 6\a\a\1e\83\a\83\1e\a\83\ 6\1e\1e\ 5\1e\86\a\1e\8e \8a\v\83\16\86\14\16\1e\85" "\ 2\1e\a\83\1e\ 5\88\1e\ 5\83\1e\ 5\97\1e\ 5\8a\1e\ 5\85\1e\83\ 5\ 6\83\a\84\1e\ 6\83\1e\ 6\84\1e\87\ 6\ 6\1e\ 5\ 5\1e\86\ 5\ 5\ 6\ 6\1e\1e \8a\1e\88\v\87\16" "\ 2\1e\1e\a\a\1e\ 5\88\1e\ 5\83\1e\ 5\97\1e\ 5\8a\1e\ 5\85\1e\1e\ 6\ 5\a\ 6\a\85\1e\ 6\a\a\1e\a\a\ 6\ 6\1e\87\a\a\1e\87\ 5\1e\ 5\ 5\ 6\ 6\1e\1e \8a\1e\ 5\ 5\1e\8d" "\ 2\1e\1e\a\a\1e\ 5\88\1e\ 5\83\1e\ 5©\1e\1e\ 5\a\83\ 6\84\1e\a\83\1e\a\83\ 6\ 5\1e\88\a\1e\88\ 5\ 5\ 6\ 6\1e\1e \8a\v\86\1e\83\16\ 5\86" "\ 2\1e\1e\a\a\1e\ 5\92\1e\83\ 5\98\1e\ 5\89\1e\ 5\1e\1e\ 5\87\1e\83\ 6\1e\84\a\83\ 6\83\1e\ 6\1e\a\88\1e\92\a\a\12\1e\8b" "\ 2\1e\ 5°\ 6\ 5\ 5\ 6\87\1e\84\14\ 5\86\ 4\ 6\88\12 \8a\12\12\1e¤" "\ 2\1e\ 5\ 5\1e\ 5\1e\1e\ 5\ 5\1e\ 5\1e\1e\ 5\1e\86\ 5\84\1e\ 5\87\1e\ 5\83\1e\ 5\1e\ 5\1e\1e\ 5\ 5\1e\ 5\84\ 6\ 5\ 5\ 6\86\1e\ 6\ 6\ 5\1e\1e\ 5\85\1e\ 4\1e\ 6\86\1e\1e \8a\1e\1e\ 5\84\1e " "\ 2\ 5\16\83\12\8f\16\12\16\83\ 6\ 6\16\86 \8a\v\8a\16\ 6\16\ 6\16\ 6\ e\ f\ e\ f\a\a\ 5\88\1e\ 5¤\1e\84\ 6\8e\a" "\ 2\ 6\85\12\ 6\ 6\ 5\85\ 6\8b\1e\ 6¤\1e\16\88\ 6\16\86\1e\16\16\12\85\16\84\12\12\1e¥"] #^^[2 4096 "\ 2\ 5«\a\a\ 6\84\a\ 6\86\a\ 6\ 6\a\a\ 6\ 6\ 5 \8a\12\86\ 5\86\a\a\ 6\ 6\ 5\84\ 6\83\ 5\a\83\ 5\ 5\a\87\ 5\83\ 6\84\ 5\8b" "\ 2\ 5\ 5\ 6\a\a\ 6\ 6\a\86\ 6\ 5\a \8a\a\83\ 6\16\16\ 1¦\1e\ 1\1e\85\ 1\1e\1e\ 5«\12\ 4\ 5\83" 5 5 "\ 2\ 5É\1e\ 5\84\1e\1e\ 5\87\1e\ 5\1e\ 5\84\1e\1e\ 5 " "\ 2\ 5\89\1e\ 5\84\1e\1e\ 5¡\1e\ 5\84\1e\1e\ 5\87\1e\ 5\1e\ 5\84\1e\1e\ 5\8f\1e\ 5¨" "\ 2\ 5\91\1e\ 5\84\1e\1e\ 5Ã\1e\1e\ 6\83\12\89\v\94\1e\83" "\ 2\ 5\90\16\8a\1e\86\ 5Õ\1e\8b" "\ 2\r\ 5ÿ" 5 5 5 "\ 2\ 5í\12\12\ 5\91" "\ 2\17\ 5\9a\ e\ f\1e\83\ 5Ë\12\83
+\83\1e\8f" "\ 2\ 5\8d\1e\ 5\84\ 6\83\1e\8b\ 5\92\ 6\83\12\12\1e\89\ 5\92\ 6\ 6\1e\8c\ 5\8d\1e\ 5\83\1e\ 6\ 6\1e\8c" "\ 2\ 5´\ 6\ 6\a\ 6\87\a\88\ 6\a\a\ 6\8b\12\83\ 4\12\83\14\ 5\ 6\1e\1e \8a\1e\86\v\8a\1e\86" "\ 2\12\86\r\12\84\ 6\83\17\1e \8a\1e\86\ 5£\ 4\ 5´\1e\88" "\ 2\ 5©\ 6\ 5\1e\85\ 5Æ\1e\8a" "\ 2\ 5\9d\1e\83\ 6\83\a\84\ 6\ 6\a\83\1e\84\a\a\ 6\a\86\ 6\83\1e\84\16\1e\83\12\12 \8a\ 5\9e\1e\1e\ 5\85\1e\8b" "\ 2\ 5¬\1e\84\a\91\ 5\87\a\a\1e\86 \8a\v\1e\83\16¢" "\ 2\ 5\97\ 6\ 6\a\83\1e\1e\12\12\ 5µ\a\ 6\a\ 6\87\1e\ 6\a\ 6\a\a\ 6\88\a\86\ 6\8a\1e\1e\ 6" "\ 2 \8a\1e\86 \8a\1e\86\12\87\ 4\12\86\1eÒ" "\ 2\ 6\84\a\ 5¯\ 6\a\ 6\85\a\ 6\a\85\ 6\a\a\ 5\87\1e\84 \8a\12\87\16\8a\ 6\89\16\89\1e\83" "\ 2\ 6\ 6\a\ 5\9e\a\ 6\84\a\a\ 6\ 6\a\ 6\a\a\ 5\ 5 \8a\ 5¬\ 6\a\ 6\ 6\a\83\ 6\a\ 6\83\a\a\1e\88\12\84" "\ 2\ 5¤\a\88\ 6\88\a\a\ 6\ 6\1e\83\12\85 \8a\1e\83\ 5\83 \8a\ 5\9e\ 4\86\12\12" "\ 2\1eÀ\12\88\1e\88\ 6\83\12\ 6\8d\a\ 6\87\ 5\84\ 6\ 5\84\a\a\ 6\ 5\ 5\1e\89" "\ 2\ 2¬\ 4¿\ 2\8d\ 4\ 2\87" "\ 2\ 2\9b\ 4¥\ 6§\1e\95\ 6\84" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\89\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2" "\ 2\ 2\88\ 1\88\ 2\86\1e\1e\ 1\86\1e\1e\ 2\88\ 1\88\ 2\88\ 1\88\ 2\86\1e\1e\ 1\86\1e\1e\ 2\88\1e\ 1\1e\ 1\1e\ 1\1e\ 1\ 2\88\ 1\88\ 2\8e\1e\1e" "\ 2\ 2\88\ 3\88\ 2\88\ 3\88\ 2\88\ 3\88\ 2\85\1e\ 2\ 2\ 1\84\ 3\15\ 2\15\83\ 2\83\1e\ 2\ 2\ 1\84\ 3\15\83\ 2\84\1e\1e\ 2\ 2\ 1\84\1e\15\83\ 2\88\ 1\85\15\83\1e\1e\ 2\83\1e\ 2\ 2\ 1\84\ 3\15\15\1e"] #^^[2 8192 "\ 2\17\8b\e\85\r\86\12\12\10\11\ e\10\10\11\ e\10\12\88\18\19\e\85\17\12\89\10\11\12\84\f\f\12\83\13\ e\ f\12\8b\13\12\f\12\8a\17\e\85\1e\85\e\86\v\ 4\1e\1e\v\86\13\83\ e\ f\ 4" "\ 2\v\8a\13\83\ e\ f\1e\ 4\8d\1e\83\14\9a\1e\96\ 6\8d\b\84\ 6\b\83\ 6\8c\1e\8f" "\ 2\16\16\ 1\16\84\ 1\16\16\ 2\ 1\83\ 2\ 2\ 1\83\ 2\16\ 1\16\16\13\ 1\85\16\86\ 1\16\ 1\16\ 1\16\ 1\84\16\ 2\ 1\84\ 2\ 5\84\ 2\16\16\ 2\ 2\ 1\ 1\13\85\ 1\ 2\84\16\13\16\16\ 2\16\v\90
" "\ 2
\83\ 1\ 2
-Â\84\v\1eÂ\86\13Â\85\16Â\85\13\13\16Â\84\13\16\16\13\16\16\13\16Â\87\13\16Â\9f\13\13\16\16\13\16\13\16Â\9f\13Â\8c" 19 19 "\ 2\16Â\88\13Â\84\16Â\94\13\13\16Â\87\ e\ f\16Ã\91\13\16Â\83" "\ 2\16Â\9b\13Â\99\16¨\13Â\86\16Â\92\1eÂ\8c" "\ 2\16§\1eÂ\99\16Â\8b\1eÂ\95\v " "\ 2\vÂ\9c\16Ã\8e\vÂ\96" 22 "\ 2\16·\13\16Â\89\13\16¶\13Â\88" "\ 2\16ï\13\16Â\90" 22 "\ 2\1e\16ç\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\vÂ\8a" "\ 2\vÂ\94\16¬\13Â\85\ e\ f\13Â\84\1e\13\1e\13Â\98\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\13Â\90" 22 22 19 "\ 2\13Â\83\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\13¿\ e\ f\ e\ f\13 \ e\ f\13\13" 19 19 "\ 2\16°\13Â\95\16\16\13Â\86\1eÂ\83\16Â\8a\1e¦" 30 "\ 2\ 1¯\1e\ 2¯\1e\ 1\ 2\ 1Â\83\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1Â\84\ 2\ 1\ 2\ 2\ 1\ 2Â\87\ 4\ 1\ 1" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\16Â\86\ 1\ 2\ 1\ 2\ 6Â\83\1eÂ\87\12Â\84\v\12\12" "\ 2\ 2¦\1eÂ\8a\ 5¶\1eÂ\89\ 4\12\1eÂ\8e\ 6" "\ 2\ 5Â\97\1eÂ\89\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 6 " "\ 2\12\12\10\11\10\11\12Â\83\10\11\12\10\11\12Â\89\r\12\12\r\12\10\11\12\12\10\11\ e\ f\ e\ f\ e\ f\ e\ f\12Â\85\ 4\12\12\1eÃ\8e" "\ 2\16\9a\1e\16Ù\1e\8c" 22 "\ 2\16Ö\1e\9a\16\8c\1e\84"] #^^[2 12288 "\ 2\17\12\83\16\ 4\ 5
+Â\84\v\1eÂ\86\13Â\85\16Â\85\13\13\16Â\84\13\16\16\13\16\16\13\16Â\87\13\16Â\9f\13\13\16\16\13\16\13\16Â\9f\13Â\8c" 19 19 "\ 2\16Â\88\13Â\84\16Â\94\13\13\16Â\87\ e\ f\16Ã\91\13\16Â\83" "\ 2\16Â\9b\13Â\99\16¨\13Â\86\16Â\92\1eÂ\8c" "\ 2\16§\1eÂ\99\16Â\8b\1eÂ\95\v " "\ 2\vÂ\9c\16Ã\8e\vÂ\96" 22 "\ 2\16·\13\16Â\89\13\16¶\13Â\88" "\ 2\16ï\13\16Â\90" 22 "\ 2\1e\16ç\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\vÂ\8a" "\ 2\vÂ\94\16¬\13Â\85\ e\ f\13Â\9f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\13Â\90" 22 22 19 "\ 2\13Â\83\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\13¿\ e\ f\ e\ f\13 \ e\ f\13\13" 19 19 "\ 2\16°\13Â\95\16\16\13Â\86\1eÂ\83\16Â\8a\1e¦" 30 "\ 2\ 1¯\1e\ 2¯\1e\ 1\ 2\ 1Â\83\ 2\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1Â\84\ 2\ 1\ 2\ 2\ 1\ 2Â\86\ 4\ 4\ 1\ 1" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 2\16Â\86\ 1\ 2\ 1\ 2\ 6Â\83\ 1\ 2\1eÂ\85\12Â\84\v\12\12" "\ 2\ 2¦\1e\ 2\1eÂ\85\ 2\1e\1e\ 5¸\1eÂ\87\ 4\12\1eÂ\8e\ 6" "\ 2\ 5Â\97\1eÂ\89\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 5Â\87\1e\ 6 " "\ 2\12\12\10\11\10\11\12Â\83\10\11\12\10\11\12Â\89\r\12\12\r\12\10\11\12\12\10\11\ e\ f\ e\ f\ e\ f\ e\ f\12Â\85\ 4\12Â\8a\r\r\1eÃ\84" "\ 2\16\9a\1e\16Ù\1e\8c" 22 "\ 2\16Ö\1e\9a\16\8c\1e\84"] #^^[2 12288 "\ 2\17\12\83\16\ 4\ 5
\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\16\16\ e\ f\ e\ f\ e\ f\ e\ f\r\ e\ f\ f\16
-Â\89\ 6Â\86\r\ 4\85\16\16
-Â\83\ 4\ 5\12\16\16\1e\ 5¿" "\ 2\ 5Â\97\1e\1e\ 6\ 6\15\15\ 4\ 4\ 5\r\ 5Ã\9a\12\ 4Â\83\ 5" "\ 2\1eÂ\85\ 5©\1eÂ\83\ 5Ã\8f" "\ 2\ 5Â\8f\1e\16\16\vÂ\84\16Â\8a\ 5Â\9b\1eÂ\85\16¤\1eÂ\8c\ 5Â\90" "\ 2\16Â\9f\1e\vÂ\8a\16§\v\8f\16 " "\ 2\v\8a\16§\v\8f\16¿\1e" 22 22 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5] #^^[2 16384 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "\ 2\ 5¶\1e\8a\16À" 5 5 5 5] 5 5 5 5 #^^[2 36864 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
-#^^[3 40832 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30]] #^^[2 40960 "\ 2\ 5\95\ 4\ 5ê" 5 5 5 5 5 5 5 5 "\ 2\ 5\8d\1e\83\16·\1e\89\ 5¨\ 4\86\12\12" 5 5 "\ 2\ 5\8c\ 4\12\83\ 5\90 \8a\ 5\ 5\1e\94\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 5\ 6\b\83\12\1e\88\ 6\ 6\12\ 4" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\1e\88\ 5Æ
-\8a\ 6\ 6\12\86\1e\88" "\ 2\15\97\ 4\89\15\15\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\83\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 4\ 2\88\ 1\ 2\ 1\ 2\ 1\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 4\15\15\ 1\ 2\ 1\ 2\1e\ 1\ 2\1e\8e\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\1eÐ\ 2\ 5\85" "\ 2\ 5\ 5\ 6\ 5\83\ 6\ 5\84\ 6\ 5\97\a\a\ 6\ 6\a\16\84\1e\84\v\86\16\16\14\16\1e\86\ 5´\12\84\1e\88" "\ 2\a\a\ 5²\a\90\ 6\1e\89\12\12 \8a\1e\86\ 6\92\ 5\86\12\83\ 5\1e\84" "\ 2 \8a\ 5\9c\ 6\88\12\12\ 5\97\ 6\8b\a\a\1e\8b\12\ 5\9d\1e\83" "\ 2\ 6\83\a\ 5¯\ 6\a\a\ 6\84\a\a\ 6\a\84\12\8d\1e\ 4 \8a\1e\84\12\12\1e " "\ 2\ 5©\ 6\86\a\a\ 6\ 6\a\a\ 6\ 6\1e\89\ 5\83\ 6\ 5\88\ 6\a\1e\1e \8a\1e\1e\12\84\ 5\90\ 4\ 5\86\16\83\ 5\a\1e\84" "\ 2\ 5°\ 6\ 5\ 6\83\ 5\ 5\ 6\ 6\ 5\85\ 6\ 6\ 5\ 6\ 5\1e\98\ 5\ 5\ 4\12\12\1e " "\ 2\1e\ 5\86\1e\1e\ 5\86\1e\1e\ 5\86\1e\89\ 5\87\1e\ 5\87\1eÑ" "\ 2\1eÀ\ 5£\a\a\ 6\a\a\ 6\a\a\12\a\ 6\1e\1e \8a\1e\86" 5 5 5 5 5 5 5 5] 5 5 #^^[2 53248 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "\ 2\ 5¤\1e\8c\ 5\97\1e\84\ 5±\1e\84" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 29 #^^[2 61440 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 5 5 "\ 2\ 5®\1e\1e\ 5¾\1e\1e\ 5\90" "\ 2\ 5Ú\1e¦" "\ 2\ 2\87\1e\8c\ 2\85\1e\85\ 5\ 6\ 5\8a\13\ 5\8d\1e\ 5\85\1e\ 5\1e\ 5\ 5\1e\ 5\ 5\1e\ 5º" "\ 2\ 5²\15\90\1e\91\ 5" 5 5 "\ 2\ 5¾\ e\ f\1e\90\ 5°" "\ 2\ 5\90\1e\1e\ 5¶\1e¨\ 5\8c\14\16\1e\1e" "\ 2\ 6\90\12\87\ e\ f\12\1e\86\ 6\87\1e\89\12\r\r\f\f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\12\12\ e\ f\12\84\f\83\12\83\1e\12\84\r\ e\ f\ e\ f\ e\ f\12\83\13\r\13\83\1e\12\14\12\12\1e\84\ 5\85\1e\ 5\8a" "\ 2\ 5ý\1e\1e\e" "\ 2\1e\12\83\14\12\83\ e\ f\12\13\12\r\12\12 \8a\12\12\13\83\12\12\ 1\9a\ e\12\ f\15\f\15\ 2\9a\ e\13\ f\13\ e\ f\12\ e\ f\12\12\ 5\8a\ 4\ 5\8f" "\ 2\ 5\9e\ 4\ 4\ 5\9f\1e\83\ 5\86\1e\1e\ 5\86\1e\1e\ 5\86\1e\1e\ 5\83\1e\83\14\14\13\15\16\14\14\1e\16\13\84\16\16\1e\8a\e\83\16\16\1e\1e"]] #^^[1 65536 #^^[2 65536 "\ 2\ 5\8c\1e\ 5\9a\1e\ 5\93\1e\ 5\ 5\1e\ 5\8f\1e\1e\ 5\8e\1e¢" "\ 2\ 5û\1e\85" "\ 2\12\12\16\1e\84\v\1e\83\16\89
+Â\89\ 6Â\84\a\a\r\ 4\85\16\16
+Â\83\ 4\ 5\12\16\16\1e\ 5¿" "\ 2\ 5Â\97\1e\1e\ 6\ 6\15\15\ 4\ 4\ 5\r\ 5Ã\9a\12\ 4Â\83\ 5" "\ 2\1eÂ\85\ 5©\1eÂ\83\ 5Ã\8f" "\ 2\ 5Â\8f\1e\16\16\vÂ\84\16Â\8a\ 5Â\9b\1eÂ\85\16¤\1eÂ\8c\ 5Â\90" "\ 2\16Â\9f\1e\vÂ\8a\16Â\9e\vÂ\88\16\v\8f\16 " "\ 2\v\8a\16§\v\8f\16¿\1e" 22 22 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5] #^^[2 16384 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "\ 2\ 5¶\1e\8a\16À" 5 5 5 5] 5 5 5 5 #^^[2 36864 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5
+#^^[3 40832 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30]] #^^[2 40960 "\ 2\ 5\95\ 4\ 5ê" 5 5 5 5 5 5 5 5 "\ 2\ 5\8d\1e\83\16·\1e\89\ 5¨\ 4\86\12\12" 5 5 "\ 2\ 5\8c\ 4\12\83\ 5\90 \8a\ 5\ 5\1e\94\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 5\ 6\b\83\12\ 6\8a\12\ 4" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\1e\87\ 6\ 5Æ
+\8a\ 6\ 6\12\86\1e\88" "\ 2\15\97\ 4\89\15\15\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\83\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 4\ 2\88\ 1\ 2\ 1\ 2\ 1\ 1\ 2" "\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 4\15\15\ 1\ 2\ 1\ 2\1e\ 1\ 2\ 1\ 2\1e\8c\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\ 2\ 1\1eÍ\ 4\ 4\ 2\ 5\85" "\ 2\ 5\ 5\ 6\ 5\83\ 6\ 5\84\ 6\ 5\97\a\a\ 6\ 6\a\16\84\1e\84\v\86\16\16\14\16\1e\86\ 5´\12\84\1e\88" "\ 2\a\a\ 5²\a\90\ 6\1e\89\12\12 \8a\1e\86\ 6\92\ 5\86\12\83\ 5\1e\84" "\ 2 \8a\ 5\9c\ 6\88\12\12\ 5\97\ 6\8b\a\a\1e\8b\12\ 5\9d\1e\83" "\ 2\ 6\83\a\ 5¯\ 6\a\a\ 6\84\a\a\ 6\a\84\12\8d\1e\ 4 \8a\1e\84\12\12\1e " "\ 2\ 5©\ 6\86\a\a\ 6\ 6\a\a\ 6\ 6\1e\89\ 5\83\ 6\ 5\88\ 6\a\1e\1e \8a\1e\1e\12\84\ 5\90\ 4\ 5\86\16\83\ 5\a\1e\84" "\ 2\ 5°\ 6\ 5\ 6\83\ 5\ 5\ 6\ 6\ 5\85\ 6\ 6\ 5\ 6\ 5\1e\98\ 5\ 5\ 4\12\12\ 5\8b\a\ 6\ 6\a\a\12\12\ 5\ 4\ 4\a\ 6\1e\89" "\ 2\1e\ 5\86\1e\1e\ 5\86\1e\1e\ 5\86\1e\89\ 5\87\1e\ 5\87\1eÑ" "\ 2\1eÀ\ 5£\a\a\ 6\a\a\ 6\a\a\12\a\ 6\1e\1e \8a\1e\86" 5 5 5 5 5 5 5 5] 5 5 #^^[2 53248 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 "\ 2\ 5¤\1e\8c\ 5\97\1e\84\ 5±\1e\84" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 29 #^^[2 61440 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 5 5 "\ 2\ 5î\1e\1e\ 5\90" "\ 2\ 5Ú\1e¦" "\ 2\ 2\87\1e\8c\ 2\85\1e\85\ 5\ 6\ 5\8a\13\ 5\8d\1e\ 5\85\1e\ 5\1e\ 5\ 5\1e\ 5\ 5\1e\ 5º" "\ 2\ 5²\15\90\1e\91\ 5" 5 5 "\ 2\ 5¾\ e\ f\1e\90\ 5°" "\ 2\ 5\90\1e\1e\ 5¶\1e¨\ 5\8c\14\16\1e\1e" "\ 2\ 6\90\12\87\ e\ f\12\1e\86\ 6\87\1e\89\12\r\r\f\f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\ e\ f\12\12\ e\ f\12\84\f\83\12\83\1e\12\84\r\ e\ f\ e\ f\ e\ f\12\83\13\r\13\83\1e\12\14\12\12\1e\84\ 5\85\1e\ 5\8a" "\ 2\ 5ý\1e\1e\e" "\ 2\1e\12\83\14\12\83\ e\ f\12\13\12\r\12\12 \8a\12\12\13\83\12\12\ 1\9a\ e\12\ f\15\f\15\ 2\9a\ e\13\ f\13\ e\ f\12\ e\ f\12\12\ 5\8a\ 4\ 5\8f" "\ 2\ 5\9e\ 4\ 4\ 5\9f\1e\83\ 5\86\1e\1e\ 5\86\1e\1e\ 5\86\1e\1e\ 5\83\1e\83\14\14\13\15\16\14\14\1e\16\13\84\16\16\1e\8a\e\83\16\16\1e\1e"]] #^^[1 65536 #^^[2 65536 "\ 2\ 5\8c\1e\ 5\9a\1e\ 5\93\1e\ 5\ 5\1e\ 5\8f\1e\1e\ 5\8e\1e¢" "\ 2\ 5û\1e\85" "\ 2\12\83\1e\84\v\1e\83\16\89
µ\v\84\16\87" "\ 2\16\8a\v\1e\85\16\8c\1e´\16\ 6\1e\1e" 30 "\ 2\ 5\9d\1e\83\ 5±\1e¯" "\ 2\ 5\9f\1e\v\84\1e\8c\ 5\91
\ 5\88
\1eµ" "\ 2\ 5\9e\1e\12\ 5¤\1e\84\ 5\88\12
-\85\1eª" "\ 2\ 1¨\ 2¨\ 5°" "\ 2\ 5\9e\1e\1e \8a\1eÖ" 30 30 30 30 30 30 "\ 2\ 5\86\1e\1e\ 5\1e\ 5¬\1e\ 5\ 5\1e\83\ 5\1e\1e\ 5\97\1e\12\v\88\1e " 30 "\ 2\ 5\96\v\86\1e\83\12\ 5\9a\1e\85\12\1eÀ" 30 "\ 2\ 5\ 6\83\1e\ 6\ 6\1e\85\ 6\84\ 5\84\1e\ 5\83\1e\ 5\9b\1e\84\ 6\83\1e\84\ 6\v\88\1e\88\12\89\1e\87\ 5\9d\v\v\12" 30 "\ 2\ 5¶\1e\83\12\87\ 5\96\1e\1e\v\88\ 5\93\1e\85\v\88" 30 "\ 2\ 5É\1e·" 30 30 30 "\ 2\1eà\v\9f\1e" 30 30 30] #^^[2 69632 "\ 2\a\ 6\a\ 5µ\ 6\8f\12\87\1e\84\v\94 \8a\1e\90" "\ 2\ 6\ 6\a\ 5\a\83\ 6\84\a\a\ 6\ 6\12\12\e\12\84\1e¾" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[2 73728 5 5 5 5 5 5 "\ 2\ 5ï\1e\91" 30 "\ 2
-ã\1e\8d\12\84\1e\8c" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[2 77824 5 5 5 5 5 5 5 5 "\ 2\ 5¯\1eÑ" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 30 #^^[2 90112 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 5 5 5 5 "\ 2\ 5¹\1eÇ" 30 30 30 30 30 30 30 30 30 30 30] 30 30 30 30 #^^[2 110592 "\ 2\ 5\ 5\1eþ" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 #^^[2 118784 22 "\ 2\16ö\1e\8a" "\ 2\16§\1e\1e\16¼\a\a\ 6\83\16\83\a\86\e\88\ 6\85" "\ 2\ 6\83\16\16\ 6\87\16\9e\ 6\84\16°\1e¢" "\ 2\16Â\ 6\83\16\1eº" 30 "\ 2\16×\1e\89\v\92\1e\8e" 30 "\ 2\ 1\9a\ 2\9a\ 1\9a\ 2\87\1e\ 2\92\ 1\98" "\ 2\ 1\ 1\ 2\9a\ 1\1e\ 1\ 1\1e\1e\ 1\1e\1e\ 1\ 1\1e\1e\ 1\84\1e\ 1\88\ 2\84\1e\ 2\1e\ 2\87\1e\ 2\8b\ 1\9a\ 2\96" "\ 2\ 2\84\ 1\ 1\1e\ 1\84\1e\1e\ 1\88\1e\ 1\87\1e\ 2\9a\ 1\ 1\1e\ 1\84\1e\ 1\85\1e\ 1\1e\83\ 1\87\1e\ 2\9a\ 1\94" "\ 2\ 1\86\ 2\9a\ 1\9a\ 2\9a\ 1\9a\ 2\92" "\ 2\ 2\88\ 1\9a\ 2\9a\ 1\9a\ 2\9a\ 1\90" "\ 2\ 1\8a\ 2\9c\1e\1e\ 1\99\13\ 2\99\13\ 2\86\ 1\99\13\ 2\84" "\ 2\ 2\95\13\ 2\86\ 1\99\13\ 2\99\13\ 2\86\ 1\99\13\ 2\90" "\ 2\ 2\89\13\ 2\86\ 1\99\13\ 2\99\13\ 2\86\ 1\ 2\1e\1e ²" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 #^^[2 126976 "\ 2\16¬\1e\84\16Ð" "\ 2\16\94\1e\8c\16\8f\1e\1e\16\8e\1e\1e\16\8f\1e\16\8f\1e " "\ 2\v\8b\1e\85\16\9f\1e\16º\1e\86\16\90" "\ 2\16\9b\1eË\16\9a" "\ 2\16\83\1e\8d\16«\1e\85\16\89\1e\87\16\16\1e®" 30 "\ 2\16¡\1e\8f\16\86\1e\16Æ\1e\83" "\ 2\16\94\1e\8c\16¥\1e\16\85\1e\95\16\91\1e\8f" "\ 2\16¿\1e\16\1e\16¾" "\ 2\16ø\1e\16\84\1e\83" "\ 2\16¾\1e\92\16\98\1e\98" "\ 2\1eû\16\85" "\ 2\1e\16\90\1e\16\83\1e\16\1e\16\1e\16\1e\16\83\1e\16\86\1e\1e\16\84\1e\16\1e\1e\16\84\1e\16\8c\1e\84\16\8b\1e°" "\ 2\16Æ\1eº" "\ 2\16ô\1e\8c" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30]] #^^[1 131072 5 5 5 5 5 5 5 5 5 5 #^^[2 172032 5 5 5 5 5 5 5 5 5 5 5 5 5
+\85\1eª" "\ 2\ 1¨\ 2¨\ 5°" "\ 2\ 5\9e\1e\1e \8a\1eÖ" 30 30 30 30 30 30 "\ 2\ 5\86\1e\1e\ 5\1e\ 5¬\1e\ 5\ 5\1e\83\ 5\1e\1e\ 5\97\1e\12\v\88\1e " 30 "\ 2\ 5\96\v\86\1e\83\12\ 5\9a\1e\85\12\1eÀ" "\ 2\ 5¸\1e\86\ 5\ 5\1eÀ" "\ 2\ 5\ 6\83\1e\ 6\ 6\1e\85\ 6\84\ 5\84\1e\ 5\83\1e\ 5\9b\1e\84\ 6\83\1e\84\ 6\v\88\1e\88\12\89\1e\87\ 5\9d\v\v\12" 30 "\ 2\ 5¶\1e\83\12\87\ 5\96\1e\1e\v\88\ 5\93\1e\85\v\88" 30 "\ 2\ 5É\1e·" 30 30 30 "\ 2\1eà\v\9f\1e" 30 30 30] #^^[2 69632 "\ 2\a\ 6\a\ 5µ\ 6\8f\12\87\1e\84\v\94 \8a\1e\90" "\ 2\ 6\ 6\a\ 5\a\83\ 6\84\a\a\ 6\ 6\12\12\e\12\84\1e\8e\ 5\99\1e\87 \8a\1e\86" "\ 2\ 6\83\ 5¤\ 6\85\a\ 6\88\1e \8a\12\84\1e¼" "\ 2\ 6\ 6\a\ 5°\a\83\ 6\89\a\a\ 5\84\12\84\1e\87 \8a\1e¦" 30 30 30 30 30 30 30 30 30 "\ 2\ 5«\ 6\a\ 6\a\a\ 6\86\a\ 6\1e\88 \8a\1e¶" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[2 73728 5 5 5 5 5 5 "\ 2\ 5ï\1e\91" 30 "\ 2
+ã\1e\8d\12\84\1e\8c" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[2 77824 5 5 5 5 5 5 5 5 "\ 2\ 5¯\1eÑ" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 30 #^^[2 90112 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 5 5 5 5 "\ 2\ 5¹\1eÇ" 30 30 30 30 30 30 30 30 30 "\ 2\ 5Å\1e\8b\ 5\a®\1e" "\ 2\1e\8f\ 6\84\ 4\8d\1eà"] 30 30 30 30 #^^[2 110592 "\ 2\ 5\ 5\1eþ" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 #^^[2 118784 22 "\ 2\16ö\1e\8a" "\ 2\16§\1e\1e\16¼\a\a\ 6\83\16\83\a\86\e\88\ 6\85" "\ 2\ 6\83\16\16\ 6\87\16\9e\ 6\84\16°\1e¢" "\ 2\16Â\ 6\83\16\1eº" 30 "\ 2\16×\1e\89\v\92\1e\8e" 30 "\ 2\ 1\9a\ 2\9a\ 1\9a\ 2\87\1e\ 2\92\ 1\98" "\ 2\ 1\ 1\ 2\9a\ 1\1e\ 1\ 1\1e\1e\ 1\1e\1e\ 1\ 1\1e\1e\ 1\84\1e\ 1\88\ 2\84\1e\ 2\1e\ 2\87\1e\ 2\8b\ 1\9a\ 2\96" "\ 2\ 2\84\ 1\ 1\1e\ 1\84\1e\1e\ 1\88\1e\ 1\87\1e\ 2\9a\ 1\ 1\1e\ 1\84\1e\ 1\85\1e\ 1\1e\83\ 1\87\1e\ 2\9a\ 1\94" "\ 2\ 1\86\ 2\9a\ 1\9a\ 2\9a\ 1\9a\ 2\92" "\ 2\ 2\88\ 1\9a\ 2\9a\ 1\9a\ 2\9a\ 1\90" "\ 2\ 1\8a\ 2\9c\1e\1e\ 1\99\13\ 2\99\13\ 2\86\ 1\99\13\ 2\84" "\ 2\ 2\95\13\ 2\86\ 1\99\13\ 2\99\13\ 2\86\ 1\99\13\ 2\90" "\ 2\ 2\89\13\ 2\86\ 1\99\13\ 2\99\13\ 2\86\ 1\ 2\1e\1e ²" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[2 122880 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 "\ 2\ 5\84\1e\ 5\9b\1e\ 5\ 5\1e\ 5\1e\1e\ 5\1e\ 5\8a\1e\ 5\84\1e\ 5\1e\ 5\1e\86\ 5\1e\84\ 5\1e\ 5\1e\ 5\1e\ 5\83\1e\ 5\ 5\1e\ 5\1e\1e\ 5\1e\ 5\1e\ 5\1e\ 5\1e\ 5\1e\ 5\ 5\1e\ 5\1e\1e\ 5\84\1e\ 5\87\1e\ 5\84\1e\ 5\84\1e\ 5\1e" "\ 2\ 5\8a\1e\ 5\91\1e\85\ 5\83\1e\ 5\85\1e\ 5\91\1e´\13\13\1e\8e" 30 30] #^^[2 126976 "\ 2\16¬\1e\84\16Ð" "\ 2\16\94\1e\8c\16\8f\1e\1e\16\8e\1e\1e\16\8f\1e\16\8f\1e " "\ 2\v\8b\1e\85\16\9f\1e\16¼\1e\84\16\90" "\ 2\16\9b\1eË\16\9a" "\ 2\16\83\1e\8d\16«\1e\85\16\89\1e\87\16\16\1e®" 30 "\ 2\16¡\1e\8f\16\86\1e\16Æ\1e\83" "\ 2\16\94\1e\8c\16¥\1e\16\85\1e\95\16\91\1e\8f" "\ 2\16¿\1e\16\1e\16¾" "\ 2\16ø\1e\16\84\1e\83" "\ 2\16¾\1e\1e\16\84\1e\8c\16\98\1e\98" "\ 2\1eû\16\85" "\ 2\16Á\1e\84\16\8b\1e°" "\ 2\16Æ\1eº" "\ 2\16ô\1e\8c" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30]] #^^[1 131072 5 5 5 5 5 5 5 5 5 5 #^^[2 172032 5 5 5 5 5 5 5 5 5 5 5 5 5
#^^[3 173696 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5] #^^[2 176128 5 5 5 5 5 5 5 5 5 5 5 5 5 5
#^^[3 177920 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 30 30 30 30 30 30 30 30 30 30 30 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5] 5
#^^[3 178176 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 5 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 30 30 #^^[2 192512 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 5 5 5 5 "\ 2\ 5\9e\1eâ" 30 30 30 30 30 30 30 30 30 30 30]] 30 30 30 30 30 30 30 30 30 30 30 #^^[1 917504 #^^[2 917504 "\ 2\1e\e\1e\9e\eà" 30 6 "\ 2\ 6ð\1e\90" 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] 30 30 30 30 30 30 30 30 30 30 30 30 30 30 30] #^^[1 983040 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 #^^[2 1044480 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29 29
- \ 2\8d\ 1\90" 1 1 "\ 2\ 1\83\ 2\85\ 1ø" 1 "\ 2\ 1\91\ 4\ 2\84\ 4\ 2\83\v\ 4\ 2\86\ 4\86\ 2\ 2\ 4\ 2\ 2\v\f\ 2\r\ e\ f\10\11\12\13\14\15\16\16\17\18\19\ 1\1a\ 1\e\1c\ 1\ 2\ 4\ 1\15\ 1¸" "\ 2\ 1\90\ 2\88\1d\1e\1f\ 1° !\"\1d\1e\1f#$\ 2\ 2\ 4\ 4\ 2\85\ 4\ 2\ 2\ 4\ 1\90%\ 1\8f" "\ 2\ 1Ö\ 2\87\ 1\ 1\ 2\84\ 4\ 2\ 1\ 1\ 2\ 2\ 1\ 4\ 2\ 2\ 4\ 1\92" "\ 2\ 1\91&\ 1\9e\ 2\ 4\ 2\ 2\ 4\ 2\ 2\ 4\83\ 2\ 4\ 4\ 2\ 4\ 2\83\ 4\ 2\ 4\ 2\ 4\ 2\ 4\ 2\ 2\ 1µ" "\ 2\ 1ë\ 2\87\ 4\ 2\ 1\8c" "\ 2\ 1\96\ 2\84\ 1\ 2\89\ 1\ 2\83\ 1\ 2\85\ 1«\ 4\83\ 1¤" 1 "\ 2\ 1¼'\ 1\90(\ 1\83\ 2\ 4\ 2\ 2\ 1«" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1Í(\ 1²" "\ 2\ 1Í(\ 1\87)*\ 1©" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1Í(\ 1²" "\ 2\ 1Ê(\ 1µ" "\ 2\ 1¸++(\ 1\8d,\84\ 1´" "\ 2\ 1¸--\ 1\8e.\84\ 1´" "\ 2\ 1\98\ 4\ 4\ 1\9b\ 4\ 1\ 4\ 1\ 5\ 1·/0\ 11\ 1\850\84\ 1\ 1" "\ 20\ 1\ 2\ 2(\ 1\ 2\ 2\ 1¾\ 4\ 1¹"] #^^[2 4096 "\ 2\ 1·'\ 1((\ 1Å" "\ 2\ 1\8d\ 4\ 1ò" 1 1 1 1 "\ 2\ 1Ý\ 2\83\ 1 " 1 1 1 1 1 1 1 "\ 2\ 1\94(\ 1\9f(\ 1Ë" "\ 2\ 1Ò(\ 1\8a\ 2\ 1¢" 1 "\ 2\ 1©\f\ 1Ö" "\ 2\ 1¹\v\ 2\ 4\ 1Ä" 1 "\ 2\ 1\97\ 2\ 4\ 1Ç(\ 1\94\ 2\88\ 1\ 1\ 4" 1 "\ 2\ 1´'\ 1\8f(\ 1¦\ 2\ 4\ 2\87\ 1\8c" "\ 2\ 1ª(\ 1»'\ 1\8b((\ 1\8c" "\ 2\ 1·'\ 1È" "\ 2\ 1Ð\ 2\83\ 1\a\ 4\85\ 2\ 2\ 4\84\ 2\ 1\a\87\ 1\84\ 4\ 1\92" 1 "\ 2\ 1À\ 2\ 2\ 4\ 2\87\ 4\ 2\ 2
+ \ 2\8d\ 1\90" 1 1 "\ 2\ 1\83\ 2\85\ 1ø" 1 "\ 2\ 1\91\ 4\ 2\84\ 4\ 2\83\v\ 4\ 2\86\ 4\86\ 2\ 2\ 4\ 2\ 2\v\f\ 2\r\ e\ f\10\11\12\13\14\15\16\16\17\18\19\ 1\1a\ 1\e\1c\ 1\ 2\ 4\ 1\15\ 1¸" "\ 2\ 1\90\ 2\88\1d\1e\1f\ 1° !\"\1d\1e\1f#$\ 2\ 2\ 4\ 4\ 2\85\ 4\ 2\ 2\ 4\ 1\90%\ 1\8f" "\ 2\ 1Ö\ 2\87\ 1\ 1\ 2\84\ 4\ 2\ 1\ 1\ 2\ 2\ 1\ 4\ 2\ 2\ 4\ 1\92" "\ 2\ 1\91&\ 1\9e\ 2\ 4\ 2\ 2\ 4\ 2\ 2\ 4\83\ 2\ 4\ 4\ 2\ 4\ 2\83\ 4\ 2\ 4\ 2\ 4\ 2\ 4\ 2\ 2\ 1µ" "\ 2\ 1ë\ 2\87\ 4\ 2\ 1\8c" "\ 2\ 1\96\ 2\84\ 1\ 2\89\ 1\ 2\83\ 1\ 2\85\ 1«\ 4\83\ 1¤" "\ 2\ 1ä\ 2\ 2\ 4\ 2\ 2\ 4\ 2\83\ 4\83 !\"\ 2\83\ 4\ 2\ 2\ 4\ 4\ 2\84\ 1" "\ 2\ 1¼'\ 1\90(\ 1\83\ 2\ 4\ 2\ 2\ 1«" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1Í(\ 1²" "\ 2\ 1Í(\ 1\87)*\ 1©" "\ 2\ 1¼'\ 1\90(\ 1²" "\ 2\ 1Í(\ 1²" "\ 2\ 1Ê(\ 1µ" "\ 2\ 1¸++(\ 1\8d,\84\ 1´" "\ 2\ 1¸--\ 1\8e.\84\ 1´" "\ 2\ 1\98\ 4\ 4\ 1\9b\ 4\ 1\ 4\ 1\ 5\ 1·/0\ 11\ 1\850\84\ 1\ 1" "\ 20\ 1\ 2\ 2(\ 1\ 2\ 2\ 1¾\ 4\ 1¹"] #^^[2 4096 "\ 2\ 1·'\ 1((\ 1Å" "\ 2\ 1\8d\ 4\ 1ò" 1 1 1 1 "\ 2\ 1Ý\ 2\83\ 1 " 1 1 1 1 1 1 1 "\ 2\ 1\94(\ 1\9f(\ 1Ë" "\ 2\ 1Ò(\ 1\8a\ 2\ 1¢" 1 "\ 2\ 1©\f\ 1Ö" "\ 2\ 1¹\v\ 2\ 4\ 1Ä" 1 "\ 2\ 1\97\ 2\ 4\ 1Ç(\ 1\94\ 2\88\ 1\ 1\ 4" 1 "\ 2\ 1´'\ 1\8f(\ 1¦\ 2\ 4\ 2\87\ 1\8c" "\ 2\ 1ª((\ 1º'\ 1\8b((\ 1\8c" "\ 2\ 1·'\ 1È" "\ 2\ 1Ð\ 2\83\ 1\a\ 4\85\ 2\ 2\ 4\84\ 2\ 1\a\87\ 1\84\ 4\ 1\86\ 2\ 1\8b" 1 "\ 2\ 1À\ 2\ 2\ 4\ 2\87\ 4\ 2\ 2
2\ 4\ 6\ 2\96\ 1\95 \ 4\ 2\ 4" 1 1 1 1] #^^[2 8192 1 "\ 2\ 1Ð\ 2\ 2\a\a\ 2\84\a\83\ 2\ 2\ 1\84\ 2\ 1\83\a\a\ 2\ 4\ 2\a\a\ 4\84\ 2\ 1\8f" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1ï\ 2\83\ 1\8e" "\ 2\ 1ÿ(" "\ 2\ 1à\ 2 " 1 1 1 1] #^^[2 12288 "\ 2\ 1ª3\f\ 3\v44\ 1Ð" "\ 2\ 1\9955\ 1å" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 16384 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 #^^[2 36864 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
-#^^[3 40832 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[2 40960 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1ï\ 2\ 1Â\8c\ 2\ 2\ 1\ 1" "\ 2\ 1ð\ 2\ 2\ 1Â\8e" 1 1 "\ 2\ 1Â\86(\ 1ù" "\ 2\ 1Ã\84(\ 1Â\9b\ 2Â\92\ 1Â\8e" "\ 2\ 1«\ 4Â\83\ 1Â¥(\ 1¬" "\ 2\ 1³'\ 1Â\8c(\ 1¿" 1 "\ 2\ 1°\ 2\ 1\ 2\ 2\ 4\ 1\ 1\ 2\ 2\ 1Â\85\ 2\ 2\ 1\ 2\ 1¾" 1 "\ 2\ 1Ã(\ 1Â\92" 1 1 1 1 1 1 1 1] 1 1 #^^[2 53248 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 61440 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1Â\9e6\ 1á" 1 1 1 1 1 "\ 2\ 1 \ 2Â\87\ 1Ã\99" 1 1 1]] #^^[1 65536 #^^[2 65536 1 1 1 "\ 2\ 1ý\ 4\ 1\ 1" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1Â\8d\ 4\ 1\ 2\ 1¨\ 2\a\ 4\ 1Â\84(\ 1Ã\80" 1 1 1 1 1 1 1 1 1 1 1] #^^[2 69632 "\ 2\ 1Ã\86(\ 1¹" "\ 2\ 1¹('\ 1Ã\85" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 73728 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 77824 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 #^^[2 90112 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 #^^[2 110592 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 118784 1 1 "\ 2\ 1Ã¥\ 5\ 5\aÂ\83\ 1Â\837\ 5Â\85\ 1Â\88\ 4Â\85" "\ 2\ 4Â\83\ 1\ 1\ 2Â\85\ 4\ 4\ 1Â\9e\ 2Â\84\ 1Ã\92" "\ 2\ 1Ã\82\ 2Â\83\ 1»" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 126976 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[1 131072 1 1 1 1 1 1 1 1 1 1 #^^[2 172032 1 1 1 1 1 1 1 1 1 1 1 1 1
+#^^[3 40832 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[2 40960 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1ï\ 2\ 1Â\84\ 2Â\8a\ 1\ 1" "\ 2\ 1Â\9f\ 2\ 1Ã\90\ 2\ 2\ 1Â\8e" 1 1 "\ 2\ 1Â\86(\ 1ù" "\ 2\ 1Ã\84(\ 1Â\9b\ 2Â\92\ 1Â\8e" "\ 2\ 1«\ 4Â\83\ 1Â¥(\ 1¬" "\ 2\ 1³'\ 1Â\8c(\ 1¿" 1 "\ 2\ 1°\ 2\ 1\ 2\ 2\ 4\ 1\ 1\ 2\ 2\ 1Â\85\ 2\ 2\ 1\ 2\ 1´(\ 1Â\89" 1 "\ 2\ 1Ã(\ 1Â\92" 1 1 1 1 1 1 1 1] 1 1 #^^[2 53248 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 61440 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1Â\9e6\ 1á" 1 1 1 1 1 "\ 2\ 1 \ 2Â\87\ 1Ã\99" 1 1 1]] #^^[1 65536 #^^[2 65536 1 1 1 "\ 2\ 1ý\ 4\ 1\ 1" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 "\ 2\ 1Â\8d\ 4\ 1\ 2\ 1¨\ 2\a\ 4\ 1Â\84(\ 1Ã\80" 1 1 1 1 1 1 1 1 1 1 1] #^^[2 69632 "\ 2\ 1Ã\86(\ 1¹" "\ 2\ 1¹('\ 1Ã\85" "\ 2\ 2Â\83\ 1°((\ 1Ã\8b" "\ 2\ 1Ã\80(\ 1¿" 1 1 1 1 1 1 1 1 1 "\ 2\ 1¶('\ 1Ã\88" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 73728 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 77824 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 #^^[2 90112 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 #^^[2 110592 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 #^^[2 118784 1 1 "\ 2\ 1Ã¥\ 5\ 5\aÂ\83\ 1Â\837\ 5Â\85\ 1Â\88\ 4Â\85" "\ 2\ 4Â\83\ 1\ 1\ 2Â\85\ 4\ 4\ 1Â\9e\ 2Â\84\ 1Ã\92" "\ 2\ 1Ã\82\ 2Â\83\ 1»" 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 122880 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 126976 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] #^^[1 131072 1 1 1 1 1 1 1 1 1 1 #^^[2 172032 1 1 1 1 1 1 1 1 1 1 1 1 1
#^^[3 173696 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[2 176128 1 1 1 1 1 1 1 1 1 1 1 1 1 1
#^^[3 177920 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1
#^^[3 178176 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 #^^[2 192512 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1]] 1 1 1 1 1 1 1 1 1 1 1 #^^[1 917504 #^^[2 917504 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1] #^^[1 983040 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 #^^[2 1044480 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
:group 'iswitchb)
(defvar iswitchb-all-frames 'visible
- "*Argument to pass to `walk-windows' when finding visible buffers.
+ "Argument to pass to `walk-windows' when finding visible buffers.
See documentation of `walk-windows' for useful values.")
(defcustom iswitchb-minibuffer-setup-hook nil
;;; Keyboard macro counter
(defvar kmacro-counter 0
- "*Current keyboard macro counter.")
+ "Current keyboard macro counter.")
(defvar kmacro-default-counter-format "%d")
(defvar kmacro-counter-format "%d"
- "*Current keyboard macro counter format.")
+ "Current keyboard macro counter format.")
(defvar kmacro-counter-format-start kmacro-counter-format
"Macro format at start of macro execution.")
;;
(defvar ethio-primary-language 'tigrigna
- "*Symbol that defines the primary language in SERA --> FIDEL conversion.
+ "Symbol that defines the primary language in SERA --> FIDEL conversion.
The value should be one of: `tigrigna', `amharic' or `english'.")
(defvar ethio-secondary-language 'english
- "*Symbol that defines the secondary language in SERA --> FIDEL conversion.
+ "Symbol that defines the secondary language in SERA --> FIDEL conversion.
The value should be one of: `tigrigna', `amharic' or `english'.")
(defvar ethio-use-colon-for-colon nil
- "*Non-nil means associate ASCII colon with Ethiopic colon.
+ "Non-nil means associate ASCII colon with Ethiopic colon.
If nil, associate ASCII colon with Ethiopic word separator, i.e., two
vertically stacked dots. All SERA <--> FIDEL converters refer this
variable.")
(defvar ethio-use-three-dot-question nil
- "*Non-nil means associate ASCII question mark with Ethiopic old style question mark (three vertically stacked dots).
+ "Non-nil means associate ASCII question mark with Ethiopic old style question mark (three vertically stacked dots).
If nil, associate ASCII question mark with Ethiopic stylized question
mark. All SERA <--> FIDEL converters refer this variable.")
(defvar ethio-quote-vowel-always nil
- "*Non-nil means always put an apostrophe before an isolated vowel (except at word initial) in FIDEL --> SERA conversion.
+ "Non-nil means always put an apostrophe before an isolated vowel (except at word initial) in FIDEL --> SERA conversion.
If nil, put an apostrophe only between a 6th-form consonant and an
isolated vowel.")
(defvar ethio-W-sixth-always nil
- "*Non-nil means convert the Wu-form of a 12-form consonant to \"W'\" instead of \"Wu\" in FIDEL --> SERA conversion.")
+ "Non-nil means convert the Wu-form of a 12-form consonant to \"W'\" instead of \"Wu\" in FIDEL --> SERA conversion.")
(defvar ethio-numeric-reduction 0
- "*Degree of reduction in converting Ethiopic digits into Arabic digits.
+ "Degree of reduction in converting Ethiopic digits into Arabic digits.
Should be 0, 1 or 2.
For example, ({10}{9}{100}{80}{7}) is converted into:
`10`9`100`80`7 if `ethio-numeric-reduction' is 0,
`10900807 if `ethio-numeric-reduction' is 2.")
(defvar ethio-java-save-lowercase nil
- "*Non-nil means save Ethiopic characters in lowercase hex numbers to Java files.
+ "Non-nil means save Ethiopic characters in lowercase hex numbers to Java files.
If nil, use uppercases.")
(defun ethio-prefer-amharic-p ()
:mime-charset 'windows-1257)
(define-coding-system-alias 'cp1257 'windows-1257)
+(define-coding-system 'cp775
+ "DOS codepage 775 (PC Baltic, MS-DOS Baltic Rim)"
+ :coding-type 'charset
+ :mnemonic ?D
+ :charset-list '(cp775)
+ :mime-charset 'cp775)
+(define-coding-system-alias 'ibm775 'cp775)
+
(define-coding-system 'cp850
"DOS codepage 850 (Western European)"
:coding-type 'charset
"Devanagari" '((charset unicode)
(coding-system utf-8)
(coding-priority utf-8)
- (input-method . "dev-aiba")
+ (input-method . "devanagari-aiba")
(documentation . "\
Such languages using Devanagari script as Hindi and Marathi
are supported in this language environment."))
(purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") ""))
"3"
""))
- "*The kind of Korean keyboard for Korean input method.
+ "The kind of Korean keyboard for Korean input method.
\"\" for 2, \"3\" for 3.")
;; functions useful for Korean text input
))))
(defvar tibetan-strict-unicode t
- "*Flag to control Tibetan canonicalizing for Unicode.
+ "Flag to control Tibetan canonicalizing for Unicode.
If non-nil, the vowel a is removed and composite vowels are decomposed
before writing buffer in Unicode. See also
\f
;;;### (autoloads (5x5-crack 5x5-crack-xor-mutate 5x5-crack-mutating-best
;;;;;; 5x5-crack-mutating-current 5x5-crack-randomly 5x5) "5x5"
-;;;;;; "play/5x5.el" (20229 34587))
+;;;;;; "play/5x5.el" (20309 60936))
;;; Generated autoloads from play/5x5.el
(autoload '5x5 "5x5" "\
;;;***
\f
;;;### (autoloads (ada-mode ada-add-extensions) "ada-mode" "progmodes/ada-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20341 24416))
;;; Generated autoloads from progmodes/ada-mode.el
(autoload 'ada-add-extensions "ada-mode" "\
;;;***
\f
;;;### (autoloads (ada-header) "ada-stmt" "progmodes/ada-stmt.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/ada-stmt.el
(autoload 'ada-header "ada-stmt" "\
;;;***
\f
;;;### (autoloads (ada-find-file) "ada-xref" "progmodes/ada-xref.el"
-;;;;;; (20236 7740))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/ada-xref.el
(autoload 'ada-find-file "ada-xref" "\
;;;;;; add-change-log-entry-other-window add-change-log-entry find-change-log
;;;;;; prompt-for-change-log-name add-log-mailing-address add-log-full-name
;;;;;; add-log-current-defun-function) "add-log" "vc/add-log.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/add-log.el
(put 'change-log-default-name 'safe-local-variable 'string-or-null-p)
\f
;;;### (autoloads (defadvice ad-activate ad-add-advice ad-disable-advice
;;;;;; ad-enable-advice ad-default-compilation-action ad-redefinition-action)
-;;;;;; "advice" "emacs-lisp/advice.el" (20277 28925))
+;;;;;; "advice" "emacs-lisp/advice.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/advice.el
(defvar ad-redefinition-action 'warn "\
\f
;;;### (autoloads (align-newline-and-indent align-unhighlight-rule
;;;;;; align-highlight-rule align-current align-entire align-regexp
-;;;;;; align) "align" "align.el" (20229 34587))
+;;;;;; align) "align" "align.el" (20309 60936))
;;; Generated autoloads from align.el
(autoload 'align "align" "\
\f
;;;### (autoloads (outlineify-sticky allout-mode allout-mode-p allout-auto-activation
;;;;;; allout-setup allout-auto-activation-helper) "allout" "allout.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from allout.el
(autoload 'allout-auto-activation-helper "allout" "\
\f
;;;### (autoloads (allout-widgets-mode allout-widgets-auto-activation
;;;;;; allout-widgets-setup allout-widgets) "allout-widgets" "allout-widgets.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from allout-widgets.el
(let ((loads (get 'allout-widgets 'custom-loads))) (if (member '"allout-widgets" loads) nil (put 'allout-widgets 'custom-loads (cons '"allout-widgets" loads))))
;;;***
\f
;;;### (autoloads (ange-ftp-hook-function ange-ftp-reread-dir) "ange-ftp"
-;;;;;; "net/ange-ftp.el" (20295 29120))
+;;;;;; "net/ange-ftp.el" (20309 60936))
;;; Generated autoloads from net/ange-ftp.el
(defalias 'ange-ftp-re-read-dir 'ange-ftp-reread-dir)
;;;***
\f
;;;### (autoloads (animate-birthday-present animate-sequence animate-string)
-;;;;;; "animate" "play/animate.el" (20229 34587))
+;;;;;; "animate" "play/animate.el" (20309 60936))
;;; Generated autoloads from play/animate.el
(autoload 'animate-string "animate" "\
;;;***
\f
;;;### (autoloads (ansi-color-process-output ansi-color-for-comint-mode-on)
-;;;;;; "ansi-color" "ansi-color.el" (20290 11197))
+;;;;;; "ansi-color" "ansi-color.el" (20309 60936))
;;; Generated autoloads from ansi-color.el
(autoload 'ansi-color-for-comint-mode-on "ansi-color" "\
;;;***
\f
;;;### (autoloads (antlr-set-tabs antlr-mode antlr-show-makefile-rules)
-;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (20300 47034))
+;;;;;; "antlr-mode" "progmodes/antlr-mode.el" (20309 60936))
;;; Generated autoloads from progmodes/antlr-mode.el
(autoload 'antlr-show-makefile-rules "antlr-mode" "\
;;;***
\f
;;;### (autoloads (appt-activate appt-add) "appt" "calendar/appt.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from calendar/appt.el
(autoload 'appt-add "appt" "\
\f
;;;### (autoloads (apropos-documentation apropos-value apropos-library
;;;;;; apropos apropos-documentation-property apropos-command apropos-variable
-;;;;;; apropos-read-pattern) "apropos" "apropos.el" (20229 34587))
+;;;;;; apropos-read-pattern) "apropos" "apropos.el" (20309 60936))
;;; Generated autoloads from apropos.el
(autoload 'apropos-read-pattern "apropos" "\
;;;***
\f
-;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (20279
-;;;;;; 40897))
+;;;### (autoloads (archive-mode) "arc-mode" "arc-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from arc-mode.el
(autoload 'archive-mode "arc-mode" "\
;;;***
\f
-;;;### (autoloads (array-mode) "array" "array.el" (20229 34587))
+;;;### (autoloads (array-mode) "array" "array.el" (20309 60936))
;;; Generated autoloads from array.el
(autoload 'array-mode "array" "\
;;;***
\f
-;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (artist-mode) "artist" "textmodes/artist.el" (20328
+;;;;;; 17454))
;;; Generated autoloads from textmodes/artist.el
(autoload 'artist-mode "artist" "\
;;;***
\f
-;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (asm-mode) "asm-mode" "progmodes/asm-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/asm-mode.el
(autoload 'asm-mode "asm-mode" "\
;;;***
\f
;;;### (autoloads (auth-source-cache-expiry) "auth-source" "gnus/auth-source.el"
-;;;;;; (20279 40897))
+;;;;;; (20332 33075))
;;; Generated autoloads from gnus/auth-source.el
(defvar auth-source-cache-expiry 7200 "\
;;;***
\f
;;;### (autoloads (autoarg-kp-mode autoarg-mode) "autoarg" "autoarg.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from autoarg.el
(defvar autoarg-mode nil "\
;;;***
\f
;;;### (autoloads (autoconf-mode) "autoconf" "progmodes/autoconf.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/autoconf.el
(autoload 'autoconf-mode "autoconf" "\
;;;***
\f
;;;### (autoloads (auto-insert-mode define-auto-insert auto-insert)
-;;;;;; "autoinsert" "autoinsert.el" (20229 34587))
+;;;;;; "autoinsert" "autoinsert.el" (20309 60936))
;;; Generated autoloads from autoinsert.el
(autoload 'auto-insert "autoinsert" "\
\f
;;;### (autoloads (batch-update-autoloads update-directory-autoloads
;;;;;; update-file-autoloads) "autoload" "emacs-lisp/autoload.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/autoload.el
(put 'generated-autoload-file 'safe-local-variable 'stringp)
\f
;;;### (autoloads (global-auto-revert-mode turn-on-auto-revert-tail-mode
;;;;;; auto-revert-tail-mode turn-on-auto-revert-mode auto-revert-mode)
-;;;;;; "autorevert" "autorevert.el" (20229 34587))
+;;;;;; "autorevert" "autorevert.el" (20317 24654))
;;; Generated autoloads from autorevert.el
(autoload 'auto-revert-mode "autorevert" "\
;;;***
\f
;;;### (autoloads (mouse-avoidance-mode mouse-avoidance-mode) "avoid"
-;;;;;; "avoid.el" (20229 34587))
+;;;;;; "avoid.el" (20309 60936))
;;; Generated autoloads from avoid.el
(defvar mouse-avoidance-mode nil "\
;;;***
\f
;;;### (autoloads (display-battery-mode battery) "battery" "battery.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from battery.el
(put 'battery-mode-line-string 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (benchmark benchmark-run-compiled benchmark-run)
-;;;;;; "benchmark" "emacs-lisp/benchmark.el" (20229 34587))
+;;;;;; "benchmark" "emacs-lisp/benchmark.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/benchmark.el
(autoload 'benchmark-run "benchmark" "\
;;;***
\f
;;;### (autoloads (bibtex-search-entry bibtex-mode bibtex-initialize)
-;;;;;; "bibtex" "textmodes/bibtex.el" (20276 64704))
+;;;;;; "bibtex" "textmodes/bibtex.el" (20309 60936))
;;; Generated autoloads from textmodes/bibtex.el
(autoload 'bibtex-initialize "bibtex" "\
;;;***
\f
;;;### (autoloads (bibtex-style-mode) "bibtex-style" "textmodes/bibtex-style.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/bibtex-style.el
(autoload 'bibtex-style-mode "bibtex-style" "\
\f
;;;### (autoloads (binhex-decode-region binhex-decode-region-external
;;;;;; binhex-decode-region-internal) "binhex" "mail/binhex.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/binhex.el
(defconst binhex-begin-line "^:...............................................................$" "\
;;;***
\f
-;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (blackbox) "blackbox" "play/blackbox.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from play/blackbox.el
(autoload 'blackbox "blackbox" "\
;;;;;; bookmark-save bookmark-write bookmark-delete bookmark-insert
;;;;;; bookmark-rename bookmark-insert-location bookmark-relocate
;;;;;; bookmark-jump-other-window bookmark-jump bookmark-set) "bookmark"
-;;;;;; "bookmark.el" (20300 47034))
+;;;;;; "bookmark.el" (20309 60936))
;;; Generated autoloads from bookmark.el
(define-key ctl-x-r-map "b" 'bookmark-jump)
(define-key ctl-x-r-map "m" 'bookmark-set)
;;;;;; browse-url-xdg-open browse-url-at-mouse browse-url-at-point
;;;;;; browse-url browse-url-of-region browse-url-of-dired-file
;;;;;; browse-url-of-buffer browse-url-of-file browse-url-browser-function)
-;;;;;; "browse-url" "net/browse-url.el" (20300 47034))
+;;;;;; "browse-url" "net/browse-url.el" (20309 60936))
;;; Generated autoloads from net/browse-url.el
(defvar browse-url-browser-function 'browse-url-default-browser "\
;;;***
\f
-;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (snarf-bruces bruce) "bruce" "play/bruce.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from play/bruce.el
(autoload 'bruce "bruce" "\
;;;***
\f
;;;### (autoloads (bs-show bs-customize bs-cycle-previous bs-cycle-next)
-;;;;;; "bs" "bs.el" (20300 47034))
+;;;;;; "bs" "bs.el" (20309 60936))
;;; Generated autoloads from bs.el
(autoload 'bs-cycle-next "bs" "\
;;;***
\f
-;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20229 34587))
+;;;### (autoloads (bubbles) "bubbles" "play/bubbles.el" (20309 60936))
;;; Generated autoloads from play/bubbles.el
(autoload 'bubbles "bubbles" "\
;;;***
\f
;;;### (autoloads (bug-reference-prog-mode bug-reference-mode) "bug-reference"
-;;;;;; "progmodes/bug-reference.el" (20229 34587))
+;;;;;; "progmodes/bug-reference.el" (20309 60936))
;;; Generated autoloads from progmodes/bug-reference.el
(put 'bug-reference-url-format 'safe-local-variable (lambda (s) (or (stringp s) (and (symbolp s) (get s 'bug-reference-url-format)))))
;;;;;; batch-byte-compile-if-not-done display-call-tree byte-compile
;;;;;; compile-defun byte-compile-file byte-recompile-directory
;;;;;; byte-force-recompile byte-compile-enable-warning byte-compile-disable-warning)
-;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20276 33121))
+;;;;;; "bytecomp" "emacs-lisp/bytecomp.el" (20341 24416))
;;; Generated autoloads from emacs-lisp/bytecomp.el
(put 'byte-compile-dynamic 'safe-local-variable 'booleanp)
(put 'byte-compile-disable-print-circle 'safe-local-variable 'booleanp)
;;;***
\f
-;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "cal-china" "calendar/cal-china.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calendar/cal-china.el
(put 'calendar-chinese-time-zone 'risky-local-variable t)
;;;***
\f
-;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (20229 34587))
+;;;### (autoloads nil "cal-dst" "calendar/cal-dst.el" (20309 60936))
;;; Generated autoloads from calendar/cal-dst.el
(put 'calendar-daylight-savings-starts 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (calendar-hebrew-list-yahrzeits) "cal-hebrew" "calendar/cal-hebrew.el"
-;;;;;; (20284 58812))
+;;;;;; (20309 60936))
;;; Generated autoloads from calendar/cal-hebrew.el
(autoload 'calendar-hebrew-list-yahrzeits "cal-hebrew" "\
\f
;;;### (autoloads (defmath calc-embedded-activate calc-embedded calc-grab-rectangle
;;;;;; calc-grab-region full-calc-keypad calc-keypad calc-eval quick-calc
-;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20279
-;;;;;; 40897))
+;;;;;; full-calc calc calc-dispatch) "calc" "calc/calc.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calc/calc.el
(define-key ctl-x-map "*" 'calc-dispatch)
;;;***
\f
-;;;### (autoloads (calc-undo) "calc-undo" "calc/calc-undo.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (calc-undo) "calc-undo" "calc/calc-undo.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calc/calc-undo.el
(autoload 'calc-undo "calc-undo" "\
;;;***
\f
-;;;### (autoloads (calculator) "calculator" "calculator.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (calculator) "calculator" "calculator.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calculator.el
(autoload 'calculator "calculator" "\
;;;***
\f
-;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20287
-;;;;;; 5356))
+;;;### (autoloads (calendar) "calendar" "calendar/calendar.el" (20343
+;;;;;; 47906))
;;; Generated autoloads from calendar/calendar.el
(autoload 'calendar "calendar" "\
;;;***
\f
;;;### (autoloads (canlock-verify canlock-insert-header) "canlock"
-;;;;;; "gnus/canlock.el" (20229 34587))
+;;;;;; "gnus/canlock.el" (20309 60936))
;;; Generated autoloads from gnus/canlock.el
(autoload 'canlock-insert-header "canlock" "\
;;;***
\f
;;;### (autoloads (capitalized-words-mode) "cap-words" "progmodes/cap-words.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/cap-words.el
(autoload 'capitalized-words-mode "cap-words" "\
;;;***
\f
-;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "cc-compat" "progmodes/cc-compat.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/cc-compat.el
(put 'c-indent-level 'safe-local-variable 'integerp)
;;;***
\f
;;;### (autoloads (c-guess-basic-syntax) "cc-engine" "progmodes/cc-engine.el"
-;;;;;; (20279 40897))
+;;;;;; (20324 28875))
;;; Generated autoloads from progmodes/cc-engine.el
(autoload 'c-guess-basic-syntax "cc-engine" "\
\f
;;;### (autoloads (c-guess-install c-guess-region-no-install c-guess-region
;;;;;; c-guess-buffer-no-install c-guess-buffer c-guess-no-install
-;;;;;; c-guess) "cc-guess" "progmodes/cc-guess.el" (20275 43867))
+;;;;;; c-guess) "cc-guess" "progmodes/cc-guess.el" (20309 60936))
;;; Generated autoloads from progmodes/cc-guess.el
(defvar c-guess-guessed-offsets-alist nil "\
\f
;;;### (autoloads (awk-mode pike-mode idl-mode java-mode objc-mode
;;;;;; c++-mode c-mode c-initialize-cc-mode) "cc-mode" "progmodes/cc-mode.el"
-;;;;;; (20293 38510))
+;;;;;; (20324 28875))
;;; Generated autoloads from progmodes/cc-mode.el
(autoload 'c-initialize-cc-mode "cc-mode" "\
;;;***
\f
;;;### (autoloads (c-set-offset c-add-style c-set-style) "cc-styles"
-;;;;;; "progmodes/cc-styles.el" (20229 34587))
+;;;;;; "progmodes/cc-styles.el" (20309 60936))
;;; Generated autoloads from progmodes/cc-styles.el
(autoload 'c-set-style "cc-styles" "\
;;;***
\f
-;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20279 40897))
+;;;### (autoloads nil "cc-vars" "progmodes/cc-vars.el" (20309 60936))
;;; Generated autoloads from progmodes/cc-vars.el
(put 'c-basic-offset 'safe-local-variable 'integerp)
(put 'c-backslash-column 'safe-local-variable 'integerp)
\f
;;;### (autoloads (ccl-execute-with-args check-ccl-program define-ccl-program
;;;;;; declare-ccl-program ccl-dump ccl-compile) "ccl" "international/ccl.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from international/ccl.el
(autoload 'ccl-compile "ccl" "\
;;;***
\f
;;;### (autoloads (cconv-closure-convert) "cconv" "emacs-lisp/cconv.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/cconv.el
(autoload 'cconv-closure-convert "cconv" "\
;;;***
\f
;;;### (autoloads (cfengine-auto-mode cfengine2-mode cfengine3-mode)
-;;;;;; "cfengine" "progmodes/cfengine.el" (20229 34587))
+;;;;;; "cfengine" "progmodes/cfengine.el" (20309 60936))
;;; Generated autoloads from progmodes/cfengine.el
(autoload 'cfengine3-mode "cfengine" "\
;;;***
\f
;;;### (autoloads (check-declare-directory check-declare-file) "check-declare"
-;;;;;; "emacs-lisp/check-declare.el" (20229 34587))
+;;;;;; "emacs-lisp/check-declare.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/check-declare.el
(autoload 'check-declare-file "check-declare" "\
;;;;;; checkdoc-comments checkdoc-continue checkdoc-start checkdoc-current-buffer
;;;;;; checkdoc-eval-current-buffer checkdoc-message-interactive
;;;;;; checkdoc-interactive checkdoc checkdoc-list-of-strings-p)
-;;;;;; "checkdoc" "emacs-lisp/checkdoc.el" (20237 28610))
+;;;;;; "checkdoc" "emacs-lisp/checkdoc.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/checkdoc.el
(put 'checkdoc-force-docstrings-flag 'safe-local-variable 'booleanp)
(put 'checkdoc-force-history-flag 'safe-local-variable 'booleanp)
\f
;;;### (autoloads (pre-write-encode-hz post-read-decode-hz encode-hz-buffer
;;;;;; encode-hz-region decode-hz-buffer decode-hz-region) "china-util"
-;;;;;; "language/china-util.el" (20229 34587))
+;;;;;; "language/china-util.el" (20309 60936))
;;; Generated autoloads from language/china-util.el
(autoload 'decode-hz-region "china-util" "\
;;;***
\f
;;;### (autoloads (command-history list-command-history repeat-matching-complex-command)
-;;;;;; "chistory" "chistory.el" (20229 34587))
+;;;;;; "chistory" "chistory.el" (20309 60936))
;;; Generated autoloads from chistory.el
(autoload 'repeat-matching-complex-command "chistory" "\
;;;***
\f
-;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (20229 34587))
+;;;### (autoloads nil "cl" "emacs-lisp/cl.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/cl.el
(defvar custom-print-functions nil "\
;;;***
\f
;;;### (autoloads (common-lisp-indent-function) "cl-indent" "emacs-lisp/cl-indent.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/cl-indent.el
(autoload 'common-lisp-indent-function "cl-indent" "\
;;;***
\f
;;;### (autoloads (c-macro-expand) "cmacexp" "progmodes/cmacexp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/cmacexp.el
(autoload 'c-macro-expand "cmacexp" "\
;;;***
\f
-;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (run-scheme) "cmuscheme" "cmuscheme.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from cmuscheme.el
(autoload 'run-scheme "cmuscheme" "\
;;;***
\f
-;;;### (autoloads (color-name-to-rgb) "color" "color.el" (20254 62269))
+;;;### (autoloads (color-name-to-rgb) "color" "color.el" (20309 60936))
;;; Generated autoloads from color.el
(autoload 'color-name-to-rgb "color" "\
;;;### (autoloads (comint-redirect-results-list-from-process comint-redirect-results-list
;;;;;; comint-redirect-send-command-to-process comint-redirect-send-command
;;;;;; comint-run make-comint make-comint-in-buffer) "comint" "comint.el"
-;;;;;; (20290 11197))
+;;;;;; (20321 40986))
;;; Generated autoloads from comint.el
(defvar comint-output-filter-functions '(ansi-color-process-output comint-postoutput-scroll-to-bottom comint-watch-for-password-prompt) "\
;;;***
\f
;;;### (autoloads (compare-windows) "compare-w" "vc/compare-w.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/compare-w.el
(autoload 'compare-windows "compare-w" "\
;;;;;; compilation-shell-minor-mode compilation-mode compilation-start
;;;;;; compile compilation-disable-input compile-command compilation-search-path
;;;;;; compilation-ask-about-save compilation-window-height compilation-start-hook
-;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20275
-;;;;;; 43867))
+;;;;;; compilation-mode-hook) "compile" "progmodes/compile.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/compile.el
(defvar compilation-mode-hook nil "\
;;;***
\f
;;;### (autoloads (dynamic-completion-mode) "completion" "completion.el"
-;;;;;; (20273 55691))
+;;;;;; (20309 60936))
;;; Generated autoloads from completion.el
(defvar dynamic-completion-mode nil "\
;;;### (autoloads (conf-xdefaults-mode conf-ppd-mode conf-colon-mode
;;;;;; conf-space-keywords conf-space-mode conf-javaprop-mode conf-windows-mode
;;;;;; conf-unix-mode conf-mode) "conf-mode" "textmodes/conf-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/conf-mode.el
(autoload 'conf-mode "conf-mode" "\
;;;***
\f
;;;### (autoloads (shuffle-vector cookie-snarf cookie-insert cookie)
-;;;;;; "cookie1" "play/cookie1.el" (20229 34587))
+;;;;;; "cookie1" "play/cookie1.el" (20309 60936))
;;; Generated autoloads from play/cookie1.el
(autoload 'cookie "cookie1" "\
;;;***
\f
;;;### (autoloads (copyright-update-directory copyright copyright-fix-years
-;;;;;; copyright-update) "copyright" "emacs-lisp/copyright.el" (20229
-;;;;;; 34587))
+;;;;;; copyright-update) "copyright" "emacs-lisp/copyright.el" (20324
+;;;;;; 28875))
;;; Generated autoloads from emacs-lisp/copyright.el
(put 'copyright-at-end-flag 'safe-local-variable 'booleanp)
(put 'copyright-names-regexp 'safe-local-variable 'stringp)
;;;***
\f
;;;### (autoloads (cperl-perldoc-at-point cperl-perldoc cperl-mode)
-;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20229 34587))
+;;;;;; "cperl-mode" "progmodes/cperl-mode.el" (20309 60936))
;;; Generated autoloads from progmodes/cperl-mode.el
(put 'cperl-indent-level 'safe-local-variable 'integerp)
(put 'cperl-brace-offset 'safe-local-variable 'integerp)
;;;***
\f
;;;### (autoloads (cpp-parse-edit cpp-highlight-buffer) "cpp" "progmodes/cpp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/cpp.el
(autoload 'cpp-highlight-buffer "cpp" "\
;;;***
\f
;;;### (autoloads (crisp-mode crisp-mode) "crisp" "emulation/crisp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emulation/crisp.el
(defvar crisp-mode nil "\
;;;***
\f
;;;### (autoloads (completing-read-multiple) "crm" "emacs-lisp/crm.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/crm.el
(autoload 'completing-read-multiple "crm" "\
;;;***
\f
-;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (css-mode) "css-mode" "textmodes/css-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from textmodes/css-mode.el
(autoload 'css-mode "css-mode" "\
;;;***
\f
;;;### (autoloads (cua-selection-mode cua-mode) "cua-base" "emulation/cua-base.el"
-;;;;;; (20300 47034))
+;;;;;; (20315 3938))
;;; Generated autoloads from emulation/cua-base.el
(defvar cua-mode nil "\
;;;;;; customize-mode customize customize-push-and-save customize-save-variable
;;;;;; customize-set-variable customize-set-value custom-menu-sort-alphabetically
;;;;;; custom-buffer-sort-alphabetically custom-browse-sort-alphabetically)
-;;;;;; "cus-edit" "cus-edit.el" (20271 46782))
+;;;;;; "cus-edit" "cus-edit.el" (20309 60936))
;;; Generated autoloads from cus-edit.el
(defvar custom-browse-sort-alphabetically nil "\
;;;***
\f
;;;### (autoloads (customize-themes describe-theme custom-theme-visit-theme
-;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20279
-;;;;;; 40897))
+;;;;;; customize-create-theme) "cus-theme" "cus-theme.el" (20335
+;;;;;; 8681))
;;; Generated autoloads from cus-theme.el
(autoload 'customize-create-theme "cus-theme" "\
Create or edit a custom theme.
THEME, if non-nil, should be an existing theme to edit. If THEME
-is `user', provide an option to remove these as custom settings.
+is `user', the resulting *Custom Theme* buffer also contains a
+checkbox for removing the theme settings specified in the buffer
+from the Custom save file.
BUFFER, if non-nil, should be a buffer to use; the default is
named *Custom Theme*.
;;;***
\f
;;;### (autoloads (cvs-status-mode) "cvs-status" "vc/cvs-status.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/cvs-status.el
(autoload 'cvs-status-mode "cvs-status" "\
;;;***
\f
;;;### (autoloads (global-cwarn-mode turn-on-cwarn-mode cwarn-mode)
-;;;;;; "cwarn" "progmodes/cwarn.el" (20273 55692))
+;;;;;; "cwarn" "progmodes/cwarn.el" (20309 60936))
;;; Generated autoloads from progmodes/cwarn.el
(autoload 'cwarn-mode "cwarn" "\
\f
;;;### (autoloads (standard-display-cyrillic-translit cyrillic-encode-alternativnyj-char
;;;;;; cyrillic-encode-koi8-r-char) "cyril-util" "language/cyril-util.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from language/cyril-util.el
(autoload 'cyrillic-encode-koi8-r-char "cyril-util" "\
;;;***
\f
;;;### (autoloads (dabbrev-expand dabbrev-completion) "dabbrev" "dabbrev.el"
-;;;;;; (20229 34587))
+;;;;;; (20320 14810))
;;; Generated autoloads from dabbrev.el
(put 'dabbrev-case-fold-search 'risky-local-variable t)
(put 'dabbrev-case-replace 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (data-debug-new-buffer) "data-debug" "cedet/data-debug.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from cedet/data-debug.el
(autoload 'data-debug-new-buffer "data-debug" "\
;;;***
\f
-;;;### (autoloads (dbus-handle-event) "dbus" "net/dbus.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (dbus-handle-event) "dbus" "net/dbus.el" (20314
+;;;;;; 46279))
;;; Generated autoloads from net/dbus.el
(autoload 'dbus-handle-event "dbus" "\
;;;***
\f
-;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (dcl-mode) "dcl-mode" "progmodes/dcl-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/dcl-mode.el
(autoload 'dcl-mode "dcl-mode" "\
;;;***
\f
;;;### (autoloads (cancel-debug-on-entry debug-on-entry debug) "debug"
-;;;;;; "emacs-lisp/debug.el" (20229 34587))
+;;;;;; "emacs-lisp/debug.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/debug.el
(setq debugger 'debug)
;;;***
\f
;;;### (autoloads (decipher-mode decipher) "decipher" "play/decipher.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from play/decipher.el
(autoload 'decipher "decipher" "\
;;;***
\f
;;;### (autoloads (delimit-columns-rectangle delimit-columns-region
-;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20229
-;;;;;; 34587))
+;;;;;; delimit-columns-customize) "delim-col" "delim-col.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from delim-col.el
(autoload 'delimit-columns-customize "delim-col" "\
;;;***
\f
-;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (delphi-mode) "delphi" "progmodes/delphi.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/delphi.el
(autoload 'delphi-mode "delphi" "\
;;;***
\f
-;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (delete-selection-mode) "delsel" "delsel.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from delsel.el
(defalias 'pending-delete-mode 'delete-selection-mode)
;;;***
\f
;;;### (autoloads (derived-mode-init-mode-variables define-derived-mode)
-;;;;;; "derived" "emacs-lisp/derived.el" (20229 34587))
+;;;;;; "derived" "emacs-lisp/derived.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/derived.el
(autoload 'define-derived-mode "derived" "\
;;;***
\f
;;;### (autoloads (describe-char describe-text-properties) "descr-text"
-;;;;;; "descr-text.el" (20259 55615))
+;;;;;; "descr-text.el" (20309 60936))
;;; Generated autoloads from descr-text.el
(autoload 'describe-text-properties "descr-text" "\
;;;### (autoloads (desktop-revert desktop-save-in-desktop-dir desktop-change-dir
;;;;;; desktop-load-default desktop-read desktop-remove desktop-save
;;;;;; desktop-clear desktop-locals-to-save desktop-save-mode) "desktop"
-;;;;;; "desktop.el" (20277 28925))
+;;;;;; "desktop.el" (20309 60936))
;;; Generated autoloads from desktop.el
(defvar desktop-save-mode nil "\
\f
;;;### (autoloads (gnus-article-outlook-deuglify-article gnus-outlook-deuglify-article
;;;;;; gnus-article-outlook-repair-attribution gnus-article-outlook-unwrap-lines)
-;;;;;; "deuglify" "gnus/deuglify.el" (20229 34587))
+;;;;;; "deuglify" "gnus/deuglify.el" (20309 60936))
;;; Generated autoloads from gnus/deuglify.el
(autoload 'gnus-article-outlook-unwrap-lines "deuglify" "\
;;;***
\f
;;;### (autoloads (diary-mode diary-mail-entries diary) "diary-lib"
-;;;;;; "calendar/diary-lib.el" (20287 5356))
+;;;;;; "calendar/diary-lib.el" (20309 60936))
;;; Generated autoloads from calendar/diary-lib.el
(autoload 'diary "diary-lib" "\
;;;***
\f
;;;### (autoloads (diff-buffer-with-file diff-backup diff diff-command
-;;;;;; diff-switches) "diff" "vc/diff.el" (20229 34587))
+;;;;;; diff-switches) "diff" "vc/diff.el" (20309 60936))
;;; Generated autoloads from vc/diff.el
(defvar diff-switches (purecopy "-c") "\
;;;***
\f
;;;### (autoloads (diff-minor-mode diff-mode) "diff-mode" "vc/diff-mode.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/diff-mode.el
(autoload 'diff-mode "diff-mode" "\
;;;***
\f
-;;;### (autoloads (dig) "dig" "net/dig.el" (20229 34587))
+;;;### (autoloads (dig) "dig" "net/dig.el" (20309 60936))
;;; Generated autoloads from net/dig.el
(autoload 'dig "dig" "\
;;;***
\f
;;;### (autoloads (dired-mode dired-noselect dired-other-frame dired-other-window
-;;;;;; dired dired-listing-switches) "dired" "dired.el" (20296 49978))
+;;;;;; dired dired-listing-switches) "dired" "dired.el" (20343 49216))
;;; Generated autoloads from dired.el
(defvar dired-listing-switches (purecopy "-al") "\
;;;***
\f
;;;### (autoloads (dirtrack dirtrack-mode) "dirtrack" "dirtrack.el"
-;;;;;; (20273 55691))
+;;;;;; (20309 60936))
;;; Generated autoloads from dirtrack.el
(autoload 'dirtrack-mode "dirtrack" "\
;;;***
\f
-;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (disassemble) "disass" "emacs-lisp/disass.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/disass.el
(autoload 'disassemble "disass" "\
;;;;;; standard-display-g1 standard-display-ascii standard-display-default
;;;;;; standard-display-8bit describe-current-display-table describe-display-table
;;;;;; set-display-table-slot display-table-slot make-display-table)
-;;;;;; "disp-table" "disp-table.el" (20229 34587))
+;;;;;; "disp-table" "disp-table.el" (20309 60936))
;;; Generated autoloads from disp-table.el
(autoload 'make-display-table "disp-table" "\
;;;***
\f
;;;### (autoloads (dissociated-press) "dissociate" "play/dissociate.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from play/dissociate.el
(autoload 'dissociated-press "dissociate" "\
;;;***
\f
-;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (20229 34587))
+;;;### (autoloads (dnd-protocol-alist) "dnd" "dnd.el" (20309 60936))
;;; Generated autoloads from dnd.el
(defvar dnd-protocol-alist `((,(purecopy "^file:///") . dnd-open-local-file) (,(purecopy "^file://") . dnd-open-file) (,(purecopy "^file:") . dnd-open-local-file) (,(purecopy "^\\(https?\\|ftp\\|file\\|nfs\\)://") . dnd-open-file)) "\
;;;***
\f
;;;### (autoloads (dns-mode-soa-increment-serial dns-mode) "dns-mode"
-;;;;;; "textmodes/dns-mode.el" (20229 34587))
+;;;;;; "textmodes/dns-mode.el" (20309 60936))
;;; Generated autoloads from textmodes/dns-mode.el
(autoload 'dns-mode "dns-mode" "\
;;;***
\f
;;;### (autoloads (doc-view-bookmark-jump doc-view-minor-mode doc-view-mode-maybe
-;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20279
-;;;;;; 40897))
+;;;;;; doc-view-mode doc-view-mode-p) "doc-view" "doc-view.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from doc-view.el
(autoload 'doc-view-mode-p "doc-view" "\
;;;***
\f
-;;;### (autoloads (doctor) "doctor" "play/doctor.el" (20230 15291))
+;;;### (autoloads (doctor) "doctor" "play/doctor.el" (20309 60936))
;;; Generated autoloads from play/doctor.el
(autoload 'doctor "doctor" "\
;;;***
\f
-;;;### (autoloads (double-mode) "double" "double.el" (20229 34587))
+;;;### (autoloads (double-mode) "double" "double.el" (20309 60936))
;;; Generated autoloads from double.el
(autoload 'double-mode "double" "\
;;;***
\f
-;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (20229 34587))
+;;;### (autoloads (dunnet) "dunnet" "play/dunnet.el" (20309 60936))
;;; Generated autoloads from play/dunnet.el
(autoload 'dunnet "dunnet" "\
\f
;;;### (autoloads (easy-mmode-defsyntax easy-mmode-defmap easy-mmode-define-keymap
;;;;;; define-globalized-minor-mode define-minor-mode) "easy-mmode"
-;;;;;; "emacs-lisp/easy-mmode.el" (20294 38748))
+;;;;;; "emacs-lisp/easy-mmode.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/easy-mmode.el
(defalias 'easy-mmode-define-minor-mode 'define-minor-mode)
;;;***
\f
;;;### (autoloads (easy-menu-change easy-menu-create-menu easy-menu-do-define
-;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (20300
-;;;;;; 47034))
+;;;;;; easy-menu-define) "easymenu" "emacs-lisp/easymenu.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/easymenu.el
(autoload 'easy-menu-define "easymenu" "\
;;;;;; ebnf-eps-file ebnf-eps-directory ebnf-spool-region ebnf-spool-buffer
;;;;;; ebnf-spool-file ebnf-spool-directory ebnf-print-region ebnf-print-buffer
;;;;;; ebnf-print-file ebnf-print-directory ebnf-customize) "ebnf2ps"
-;;;;;; "progmodes/ebnf2ps.el" (20229 34587))
+;;;;;; "progmodes/ebnf2ps.el" (20309 60936))
;;; Generated autoloads from progmodes/ebnf2ps.el
(autoload 'ebnf-customize "ebnf2ps" "\
;;;;;; ebrowse-tags-find-declaration-other-window ebrowse-tags-find-definition
;;;;;; ebrowse-tags-view-definition ebrowse-tags-find-declaration
;;;;;; ebrowse-tags-view-declaration ebrowse-member-mode ebrowse-electric-choose-tree
-;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (20229
-;;;;;; 34587))
+;;;;;; ebrowse-tree-mode) "ebrowse" "progmodes/ebrowse.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/ebrowse.el
(autoload 'ebrowse-tree-mode "ebrowse" "\
;;;***
\f
;;;### (autoloads (electric-buffer-list) "ebuff-menu" "ebuff-menu.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from ebuff-menu.el
(autoload 'electric-buffer-list "ebuff-menu" "\
;;;***
\f
;;;### (autoloads (Electric-command-history-redo-expression) "echistory"
-;;;;;; "echistory.el" (20229 34587))
+;;;;;; "echistory.el" (20309 60936))
;;; Generated autoloads from echistory.el
(autoload 'Electric-command-history-redo-expression "echistory" "\
;;;***
\f
;;;### (autoloads (ecomplete-setup) "ecomplete" "gnus/ecomplete.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/ecomplete.el
(autoload 'ecomplete-setup "ecomplete" "\
;;;***
\f
-;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20240 47305))
+;;;### (autoloads (global-ede-mode) "ede" "cedet/ede.el" (20309 60936))
;;; Generated autoloads from cedet/ede.el
(defvar global-ede-mode nil "\
\f
;;;### (autoloads (edebug-all-forms edebug-all-defs edebug-eval-top-level-form
;;;;;; edebug-basic-spec edebug-all-forms edebug-all-defs) "edebug"
-;;;;;; "emacs-lisp/edebug.el" (20229 34587))
+;;;;;; "emacs-lisp/edebug.el" (20343 47906))
;;; Generated autoloads from emacs-lisp/edebug.el
(defvar edebug-all-defs nil "\
;;;;;; ediff-merge-directories-with-ancestor ediff-merge-directories
;;;;;; ediff-directories3 ediff-directory-revisions ediff-directories
;;;;;; ediff-buffers3 ediff-buffers ediff-backup ediff-current-file
-;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (20229 34587))
+;;;;;; ediff-files3 ediff-files) "ediff" "vc/ediff.el" (20309 60936))
;;; Generated autoloads from vc/ediff.el
(autoload 'ediff-files "ediff" "\
;;;***
\f
;;;### (autoloads (ediff-customize) "ediff-help" "vc/ediff-help.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/ediff-help.el
(autoload 'ediff-customize "ediff-help" "\
;;;***
\f
;;;### (autoloads (ediff-show-registry) "ediff-mult" "vc/ediff-mult.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/ediff-mult.el
(autoload 'ediff-show-registry "ediff-mult" "\
;;;***
\f
;;;### (autoloads (ediff-toggle-use-toolbar ediff-toggle-multiframe)
-;;;;;; "ediff-util" "vc/ediff-util.el" (20300 47034))
+;;;;;; "ediff-util" "vc/ediff-util.el" (20309 60936))
;;; Generated autoloads from vc/ediff-util.el
(autoload 'ediff-toggle-multiframe "ediff-util" "\
\f
;;;### (autoloads (format-kbd-macro read-kbd-macro edit-named-kbd-macro
;;;;;; edit-last-kbd-macro edit-kbd-macro) "edmacro" "edmacro.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from edmacro.el
(autoload 'edit-kbd-macro "edmacro" "\
;;;***
\f
;;;### (autoloads (edt-emulation-on edt-set-scroll-margins) "edt"
-;;;;;; "emulation/edt.el" (20229 34587))
+;;;;;; "emulation/edt.el" (20309 60936))
;;; Generated autoloads from emulation/edt.el
(autoload 'edt-set-scroll-margins "edt" "\
;;;***
\f
;;;### (autoloads (electric-helpify with-electric-help) "ehelp" "ehelp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from ehelp.el
(autoload 'with-electric-help "ehelp" "\
;;;***
\f
;;;### (autoloads (turn-on-eldoc-mode eldoc-mode eldoc-minor-mode-string)
-;;;;;; "eldoc" "emacs-lisp/eldoc.el" (20229 34587))
+;;;;;; "eldoc" "emacs-lisp/eldoc.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/eldoc.el
(defvar eldoc-minor-mode-string (purecopy " ElDoc") "\
;;;***
\f
;;;### (autoloads (electric-layout-mode electric-pair-mode electric-indent-mode)
-;;;;;; "electric" "electric.el" (20275 12572))
+;;;;;; "electric" "electric.el" (20309 60936))
;;; Generated autoloads from electric.el
(defvar electric-indent-chars '(10) "\
;;;***
\f
-;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (elide-head) "elide-head" "elide-head.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from elide-head.el
(autoload 'elide-head "elide-head" "\
\f
;;;### (autoloads (elint-initialize elint-defun elint-current-buffer
;;;;;; elint-directory elint-file) "elint" "emacs-lisp/elint.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/elint.el
(autoload 'elint-file "elint" "\
;;;***
\f
;;;### (autoloads (elp-results elp-instrument-package elp-instrument-list
-;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (20229
-;;;;;; 34587))
+;;;;;; elp-instrument-function) "elp" "emacs-lisp/elp.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/elp.el
(autoload 'elp-instrument-function "elp" "\
;;;***
\f
;;;### (autoloads (emacs-lock-mode) "emacs-lock" "emacs-lock.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lock.el
(autoload 'emacs-lock-mode "emacs-lock" "\
;;;***
\f
;;;### (autoloads (report-emacs-bug-query-existing-bugs report-emacs-bug)
-;;;;;; "emacsbug" "mail/emacsbug.el" (20277 28925))
+;;;;;; "emacsbug" "mail/emacsbug.el" (20309 60936))
;;; Generated autoloads from mail/emacsbug.el
(autoload 'report-emacs-bug "emacsbug" "\
;;;;;; emerge-revisions emerge-files-with-ancestor-remote emerge-files-remote
;;;;;; emerge-files-with-ancestor-command emerge-files-command emerge-buffers-with-ancestor
;;;;;; emerge-buffers emerge-files-with-ancestor emerge-files) "emerge"
-;;;;;; "vc/emerge.el" (20292 6362))
+;;;;;; "vc/emerge.el" (20309 60936))
;;; Generated autoloads from vc/emerge.el
(autoload 'emerge-files "emerge" "\
;;;***
\f
;;;### (autoloads (enriched-decode enriched-encode enriched-mode)
-;;;;;; "enriched" "textmodes/enriched.el" (20273 55692))
+;;;;;; "enriched" "textmodes/enriched.el" (20309 60936))
;;; Generated autoloads from textmodes/enriched.el
(autoload 'enriched-mode "enriched" "\
;;;;;; epa-sign-region epa-verify-cleartext-in-region epa-verify-region
;;;;;; epa-decrypt-armor-in-region epa-decrypt-region epa-encrypt-file
;;;;;; epa-sign-file epa-verify-file epa-decrypt-file epa-select-keys
-;;;;;; epa-list-secret-keys epa-list-keys) "epa" "epa.el" (20229
-;;;;;; 34587))
+;;;;;; epa-list-secret-keys epa-list-keys) "epa" "epa.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from epa.el
(autoload 'epa-list-keys "epa" "\
;;;***
\f
;;;### (autoloads (epa-dired-do-encrypt epa-dired-do-sign epa-dired-do-verify
-;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (20229 34587))
+;;;;;; epa-dired-do-decrypt) "epa-dired" "epa-dired.el" (20309 60936))
;;; Generated autoloads from epa-dired.el
(autoload 'epa-dired-do-decrypt "epa-dired" "\
;;;***
\f
;;;### (autoloads (epa-file-disable epa-file-enable epa-file-handler)
-;;;;;; "epa-file" "epa-file.el" (20229 34587))
+;;;;;; "epa-file" "epa-file.el" (20309 60936))
;;; Generated autoloads from epa-file.el
(autoload 'epa-file-handler "epa-file" "\
\f
;;;### (autoloads (epa-global-mail-mode epa-mail-import-keys epa-mail-encrypt
;;;;;; epa-mail-sign epa-mail-verify epa-mail-decrypt epa-mail-mode)
-;;;;;; "epa-mail" "epa-mail.el" (20273 55691))
+;;;;;; "epa-mail" "epa-mail.el" (20315 8755))
;;; Generated autoloads from epa-mail.el
(autoload 'epa-mail-mode "epa-mail" "\
;;;***
\f
-;;;### (autoloads (epg-make-context) "epg" "epg.el" (20241 25657))
+;;;### (autoloads (epg-make-context) "epg" "epg.el" (20309 60936))
;;; Generated autoloads from epg.el
(autoload 'epg-make-context "epg" "\
;;;***
\f
;;;### (autoloads (epg-expand-group epg-check-configuration epg-configuration)
-;;;;;; "epg-config" "epg-config.el" (20229 34587))
+;;;;;; "epg-config" "epg-config.el" (20309 60936))
;;; Generated autoloads from epg-config.el
(autoload 'epg-configuration "epg-config" "\
;;;***
\f
;;;### (autoloads (erc-handle-irc-url erc-tls erc erc-select-read-args)
-;;;;;; "erc" "erc/erc.el" (20230 55355))
+;;;;;; "erc" "erc/erc.el" (20309 60936))
;;; Generated autoloads from erc/erc.el
(autoload 'erc-select-read-args "erc" "\
;;;***
\f
-;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "erc-autoaway" "erc/erc-autoaway.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from erc/erc-autoaway.el
(autoload 'erc-autoaway-mode "erc-autoaway")
;;;***
\f
-;;;### (autoloads nil "erc-button" "erc/erc-button.el" (20229 34587))
+;;;### (autoloads nil "erc-button" "erc/erc-button.el" (20309 60936))
;;; Generated autoloads from erc/erc-button.el
(autoload 'erc-button-mode "erc-button" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (20229 34587))
+;;;### (autoloads nil "erc-capab" "erc/erc-capab.el" (20309 60936))
;;; Generated autoloads from erc/erc-capab.el
(autoload 'erc-capab-identify-mode "erc-capab" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (20300 47034))
+;;;### (autoloads nil "erc-compat" "erc/erc-compat.el" (20309 60936))
;;; Generated autoloads from erc/erc-compat.el
(autoload 'erc-define-minor-mode "erc-compat")
;;;***
\f
;;;### (autoloads (erc-ctcp-query-DCC pcomplete/erc-mode/DCC erc-cmd-DCC)
-;;;;;; "erc-dcc" "erc/erc-dcc.el" (20229 34587))
+;;;;;; "erc-dcc" "erc/erc-dcc.el" (20309 60936))
;;; Generated autoloads from erc/erc-dcc.el
(autoload 'erc-dcc-mode "erc-dcc")
;;;;;; erc-ezb-add-session erc-ezb-end-of-session-list erc-ezb-init-session-list
;;;;;; erc-ezb-identify erc-ezb-notice-autodetect erc-ezb-lookup-action
;;;;;; erc-ezb-get-login erc-cmd-ezb) "erc-ezbounce" "erc/erc-ezbounce.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-ezbounce.el
(autoload 'erc-cmd-ezb "erc-ezbounce" "\
;;;***
\f
-;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (erc-fill) "erc-fill" "erc/erc-fill.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from erc/erc-fill.el
(autoload 'erc-fill-mode "erc-fill" nil t)
;;;***
\f
;;;### (autoloads (erc-identd-stop erc-identd-start) "erc-identd"
-;;;;;; "erc/erc-identd.el" (20229 34587))
+;;;;;; "erc/erc-identd.el" (20309 60936))
;;; Generated autoloads from erc/erc-identd.el
(autoload 'erc-identd-mode "erc-identd")
;;;***
\f
;;;### (autoloads (erc-create-imenu-index) "erc-imenu" "erc/erc-imenu.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-imenu.el
(autoload 'erc-create-imenu-index "erc-imenu" "\
;;;***
\f
-;;;### (autoloads nil "erc-join" "erc/erc-join.el" (20274 22975))
+;;;### (autoloads nil "erc-join" "erc/erc-join.el" (20309 60936))
;;; Generated autoloads from erc/erc-join.el
(autoload 'erc-autojoin-mode "erc-join" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-list" "erc/erc-list.el" (20229 34587))
+;;;### (autoloads nil "erc-list" "erc/erc-list.el" (20309 60936))
;;; Generated autoloads from erc/erc-list.el
(autoload 'erc-list-mode "erc-list")
;;;***
\f
;;;### (autoloads (erc-save-buffer-in-logs erc-logging-enabled) "erc-log"
-;;;;;; "erc/erc-log.el" (20229 34587))
+;;;;;; "erc/erc-log.el" (20309 60936))
;;; Generated autoloads from erc/erc-log.el
(autoload 'erc-log-mode "erc-log" nil t)
;;;### (autoloads (erc-delete-dangerous-host erc-add-dangerous-host
;;;;;; erc-delete-keyword erc-add-keyword erc-delete-fool erc-add-fool
;;;;;; erc-delete-pal erc-add-pal) "erc-match" "erc/erc-match.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-match.el
(autoload 'erc-match-mode "erc-match")
;;;***
\f
-;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (20229 34587))
+;;;### (autoloads nil "erc-menu" "erc/erc-menu.el" (20309 60936))
;;; Generated autoloads from erc/erc-menu.el
(autoload 'erc-menu-mode "erc-menu" nil t)
;;;***
\f
;;;### (autoloads (erc-cmd-WHOLEFT) "erc-netsplit" "erc/erc-netsplit.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-netsplit.el
(autoload 'erc-netsplit-mode "erc-netsplit")
;;;***
\f
;;;### (autoloads (erc-server-select erc-determine-network) "erc-networks"
-;;;;;; "erc/erc-networks.el" (20229 34587))
+;;;;;; "erc/erc-networks.el" (20309 60936))
;;; Generated autoloads from erc/erc-networks.el
(autoload 'erc-determine-network "erc-networks" "\
;;;***
\f
;;;### (autoloads (pcomplete/erc-mode/NOTIFY erc-cmd-NOTIFY) "erc-notify"
-;;;;;; "erc/erc-notify.el" (20229 34587))
+;;;;;; "erc/erc-notify.el" (20309 60936))
;;; Generated autoloads from erc/erc-notify.el
(autoload 'erc-notify-mode "erc-notify" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-page" "erc/erc-page.el" (20237 28610))
+;;;### (autoloads nil "erc-page" "erc/erc-page.el" (20309 60936))
;;; Generated autoloads from erc/erc-page.el
(autoload 'erc-page-mode "erc-page")
;;;***
\f
-;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "erc-pcomplete" "erc/erc-pcomplete.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from erc/erc-pcomplete.el
(autoload 'erc-completion-mode "erc-pcomplete" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (20229 34587))
+;;;### (autoloads nil "erc-replace" "erc/erc-replace.el" (20309 60936))
;;; Generated autoloads from erc/erc-replace.el
(autoload 'erc-replace-mode "erc-replace")
;;;***
\f
-;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (20229 34587))
+;;;### (autoloads nil "erc-ring" "erc/erc-ring.el" (20309 60936))
;;; Generated autoloads from erc/erc-ring.el
(autoload 'erc-ring-mode "erc-ring" nil t)
;;;***
\f
;;;### (autoloads (erc-nickserv-identify erc-nickserv-identify-mode)
-;;;;;; "erc-services" "erc/erc-services.el" (20229 34587))
+;;;;;; "erc-services" "erc/erc-services.el" (20309 60936))
;;; Generated autoloads from erc/erc-services.el
(autoload 'erc-services-mode "erc-services" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (20229 34587))
+;;;### (autoloads nil "erc-sound" "erc/erc-sound.el" (20309 60936))
;;; Generated autoloads from erc/erc-sound.el
(autoload 'erc-sound-mode "erc-sound")
;;;***
\f
;;;### (autoloads (erc-speedbar-browser) "erc-speedbar" "erc/erc-speedbar.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-speedbar.el
(autoload 'erc-speedbar-browser "erc-speedbar" "\
;;;***
\f
-;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "erc-spelling" "erc/erc-spelling.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from erc/erc-spelling.el
(autoload 'erc-spelling-mode "erc-spelling" nil t)
;;;***
\f
-;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (20229 34587))
+;;;### (autoloads nil "erc-stamp" "erc/erc-stamp.el" (20309 60936))
;;; Generated autoloads from erc/erc-stamp.el
(autoload 'erc-timestamp-mode "erc-stamp" nil t)
;;;***
\f
;;;### (autoloads (erc-track-minor-mode) "erc-track" "erc/erc-track.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-track.el
(defvar erc-track-minor-mode nil "\
;;;***
\f
;;;### (autoloads (erc-truncate-buffer erc-truncate-buffer-to-size)
-;;;;;; "erc-truncate" "erc/erc-truncate.el" (20229 34587))
+;;;;;; "erc-truncate" "erc/erc-truncate.el" (20309 60936))
;;; Generated autoloads from erc/erc-truncate.el
(autoload 'erc-truncate-mode "erc-truncate" nil t)
;;;***
\f
;;;### (autoloads (erc-xdcc-add-file) "erc-xdcc" "erc/erc-xdcc.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from erc/erc-xdcc.el
(autoload 'erc-xdcc-mode "erc-xdcc")
\f
;;;### (autoloads (ert-describe-test ert-run-tests-interactively
;;;;;; ert-run-tests-batch-and-exit ert-run-tests-batch ert-deftest)
-;;;;;; "ert" "emacs-lisp/ert.el" (20300 47034))
+;;;;;; "ert" "emacs-lisp/ert.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/ert.el
(autoload 'ert-deftest "ert" "\
;;;***
\f
;;;### (autoloads (ert-kill-all-test-buffers) "ert-x" "emacs-lisp/ert-x.el"
-;;;;;; (20270 25925))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/ert-x.el
(put 'ert-with-test-buffer 'lisp-indent-function 1)
;;;***
\f
-;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (eshell-mode) "esh-mode" "eshell/esh-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from eshell/esh-mode.el
(autoload 'eshell-mode "esh-mode" "\
;;;***
\f
;;;### (autoloads (eshell-command-result eshell-command eshell) "eshell"
-;;;;;; "eshell/eshell.el" (20300 47034))
+;;;;;; "eshell/eshell.el" (20309 60936))
;;; Generated autoloads from eshell/eshell.el
(autoload 'eshell "eshell" "\
;;;;;; visit-tags-table tags-table-mode find-tag-default-function
;;;;;; find-tag-hook tags-add-tables tags-compression-info-list
;;;;;; tags-table-list tags-case-fold-search) "etags" "progmodes/etags.el"
-;;;;;; (20237 28610))
+;;;;;; (20332 33075))
;;; Generated autoloads from progmodes/etags.el
(defvar tags-file-name nil "\
;;;;;; ethio-fidel-to-sera-marker ethio-fidel-to-sera-region ethio-fidel-to-sera-buffer
;;;;;; ethio-sera-to-fidel-marker ethio-sera-to-fidel-region ethio-sera-to-fidel-buffer
;;;;;; setup-ethiopic-environment-internal) "ethio-util" "language/ethio-util.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from language/ethio-util.el
(autoload 'setup-ethiopic-environment-internal "ethio-util" "\
\f
;;;### (autoloads (eudc-load-eudc eudc-query-form eudc-expand-inline
;;;;;; eudc-get-phone eudc-get-email eudc-set-server) "eudc" "net/eudc.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/eudc.el
(autoload 'eudc-set-server "eudc" "\
\f
;;;### (autoloads (eudc-display-jpeg-as-button eudc-display-jpeg-inline
;;;;;; eudc-display-sound eudc-display-mail eudc-display-url eudc-display-generic-binary)
-;;;;;; "eudc-bob" "net/eudc-bob.el" (20229 34587))
+;;;;;; "eudc-bob" "net/eudc-bob.el" (20309 60936))
;;; Generated autoloads from net/eudc-bob.el
(autoload 'eudc-display-generic-binary "eudc-bob" "\
;;;***
\f
;;;### (autoloads (eudc-try-bbdb-insert eudc-insert-record-at-point-into-bbdb)
-;;;;;; "eudc-export" "net/eudc-export.el" (20229 34587))
+;;;;;; "eudc-export" "net/eudc-export.el" (20309 60936))
;;; Generated autoloads from net/eudc-export.el
(autoload 'eudc-insert-record-at-point-into-bbdb "eudc-export" "\
;;;***
\f
;;;### (autoloads (eudc-edit-hotlist) "eudc-hotlist" "net/eudc-hotlist.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/eudc-hotlist.el
(autoload 'eudc-edit-hotlist "eudc-hotlist" "\
;;;***
\f
-;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20300
-;;;;;; 47034))
+;;;### (autoloads (ewoc-create) "ewoc" "emacs-lisp/ewoc.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/ewoc.el
(autoload 'ewoc-create "ewoc" "\
;;;### (autoloads (executable-make-buffer-file-executable-if-script-p
;;;;;; executable-self-display executable-set-magic executable-interpret
;;;;;; executable-command-find-posix-p) "executable" "progmodes/executable.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/executable.el
(autoload 'executable-command-find-posix-p "executable" "\
\f
;;;### (autoloads (expand-jump-to-next-slot expand-jump-to-previous-slot
;;;;;; expand-abbrev-hook expand-add-abbrevs) "expand" "expand.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from expand.el
(autoload 'expand-add-abbrevs "expand" "\
;;;***
\f
-;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (20257 13883))
+;;;### (autoloads (f90-mode) "f90" "progmodes/f90.el" (20309 60936))
;;; Generated autoloads from progmodes/f90.el
(autoload 'f90-mode "f90" "\
;;;### (autoloads (variable-pitch-mode buffer-face-toggle buffer-face-set
;;;;;; buffer-face-mode text-scale-adjust text-scale-decrease text-scale-increase
;;;;;; text-scale-set face-remap-set-base face-remap-reset-base
-;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20273
-;;;;;; 55691))
+;;;;;; face-remap-add-relative) "face-remap" "face-remap.el" (20329
+;;;;;; 30063))
;;; Generated autoloads from face-remap.el
(autoload 'face-remap-add-relative "face-remap" "\
Add a face remapping entry of FACE to SPECS in the current buffer.
-
-Return a cookie which can be used to delete the remapping with
+Return a cookie which can be used to delete this remapping with
`face-remap-remove-relative'.
-SPECS can be any value suitable for the `face' text property,
-including a face name, a list of face names, or a face-attribute
-property list. The attributes given by SPECS will be merged with
-any other currently active face remappings of FACE, and with the
-global definition of FACE. An attempt is made to sort multiple
-entries so that entries with relative face-attributes are applied
-after entries with absolute face-attributes.
+The remaining arguments, SPECS, should be either a list of face
+names, or a property list of face attribute/value pairs. The
+remapping specified by SPECS takes effect alongside the
+remappings from other calls to `face-remap-add-relative', as well
+as the normal definition of FACE (at lowest priority). This
+function tries to sort multiple remappings for the same face, so
+that remappings specifying relative face attributes are applied
+after remappings specifying absolute face attributes.
-The base (lowest priority) remapping may be set to a specific
-value, instead of the default of the global face definition,
-using `face-remap-set-base'.
+The base (lowest priority) remapping may be set to something
+other than the normal definition of FACE via `face-remap-set-base'.
\(fn FACE &rest SPECS)" nil nil)
(autoload 'face-remap-reset-base "face-remap" "\
-Set the base remapping of FACE to inherit from FACE's global definition.
+Set the base remapping of FACE to the normal definition of FACE.
+This causes the remappings specified by `face-remap-add-relative'
+to apply on top of the normal definition of FACE.
\(fn FACE)" nil nil)
(autoload 'face-remap-set-base "face-remap" "\
Set the base remapping of FACE in the current buffer to SPECS.
-If SPECS is empty, the default base remapping is restored, which
-inherits from the global definition of FACE; note that this is
-different from SPECS containing a single value `nil', which does
-not inherit from the global definition of FACE.
+This causes the remappings specified by `face-remap-add-relative'
+to apply on top of the face specification given by SPECS. SPECS
+should be either a list of face names, or a property list of face
+attribute/value pairs.
+
+If SPECS is empty, call `face-remap-reset-base' to use the normal
+definition of FACE as the base remapping; note that this is
+different from SPECS containing a single value `nil', which means
+not to inherit from the global definition of FACE at all.
\(fn FACE &rest SPECS)" nil nil)
\f
;;;### (autoloads (feedmail-queue-reminder feedmail-run-the-queue
;;;;;; feedmail-run-the-queue-global-prompt feedmail-run-the-queue-no-prompts
-;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (20300 47034))
+;;;;;; feedmail-send-it) "feedmail" "mail/feedmail.el" (20309 60936))
;;; Generated autoloads from mail/feedmail.el
(autoload 'feedmail-send-it "feedmail" "\
;;;***
\f
;;;### (autoloads (ffap-bindings dired-at-point ffap-at-mouse ffap-menu
-;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (20292 53022))
+;;;;;; find-file-at-point ffap-next) "ffap" "ffap.el" (20309 60936))
;;; Generated autoloads from ffap.el
(autoload 'ffap-next "ffap" "\
;;;### (autoloads (file-cache-minibuffer-complete file-cache-add-directory-recursively
;;;;;; file-cache-add-directory-using-locate file-cache-add-directory-using-find
;;;;;; file-cache-add-file file-cache-add-directory-list file-cache-add-directory)
-;;;;;; "filecache" "filecache.el" (20229 34587))
+;;;;;; "filecache" "filecache.el" (20309 60936))
;;; Generated autoloads from filecache.el
(autoload 'file-cache-add-directory "filecache" "\
;;;;;; copy-file-locals-to-dir-locals delete-dir-local-variable
;;;;;; add-dir-local-variable delete-file-local-variable-prop-line
;;;;;; add-file-local-variable-prop-line delete-file-local-variable
-;;;;;; add-file-local-variable) "files-x" "files-x.el" (20229 34587))
+;;;;;; add-file-local-variable) "files-x" "files-x.el" (20309 60936))
;;; Generated autoloads from files-x.el
(autoload 'add-file-local-variable "files-x" "\
;;;***
\f
-;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20300
-;;;;;; 47034))
+;;;### (autoloads (filesets-init) "filesets" "filesets.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from filesets.el
(autoload 'filesets-init "filesets" "\
;;;***
\f
-;;;### (autoloads (find-cmd) "find-cmd" "find-cmd.el" (20229 34587))
+;;;### (autoloads (find-cmd) "find-cmd" "find-cmd.el" (20309 60936))
;;; Generated autoloads from find-cmd.el
(autoload 'find-cmd "find-cmd" "\
;;;***
\f
;;;### (autoloads (find-grep-dired find-name-dired find-dired) "find-dired"
-;;;;;; "find-dired.el" (20239 38674))
+;;;;;; "find-dired.el" (20309 60936))
;;; Generated autoloads from find-dired.el
(autoload 'find-dired "find-dired" "\
\f
;;;### (autoloads (ff-mouse-find-other-file-other-window ff-mouse-find-other-file
;;;;;; ff-find-other-file ff-get-other-file) "find-file" "find-file.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from find-file.el
(defvar ff-special-constructs `((,(purecopy "^#\\s *\\(include\\|import\\)\\s +[<\"]\\(.*\\)[>\"]") lambda nil (buffer-substring (match-beginning 2) (match-end 2)))) "\
;;;;;; find-variable find-variable-noselect find-function-other-frame
;;;;;; find-function-other-window find-function find-function-noselect
;;;;;; find-function-search-for-symbol find-library) "find-func"
-;;;;;; "emacs-lisp/find-func.el" (20229 34587))
+;;;;;; "emacs-lisp/find-func.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/find-func.el
(autoload 'find-library "find-func" "\
;;;***
\f
;;;### (autoloads (find-lisp-find-dired-filter find-lisp-find-dired-subdirectories
-;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (20229 34587))
+;;;;;; find-lisp-find-dired) "find-lisp" "find-lisp.el" (20309 60936))
;;; Generated autoloads from find-lisp.el
(autoload 'find-lisp-find-dired "find-lisp" "\
;;;***
\f
;;;### (autoloads (finder-by-keyword finder-commentary finder-list-keywords)
-;;;;;; "finder" "finder.el" (20229 34587))
+;;;;;; "finder" "finder.el" (20309 60936))
;;; Generated autoloads from finder.el
(autoload 'finder-list-keywords "finder" "\
;;;***
\f
;;;### (autoloads (enable-flow-control-on enable-flow-control) "flow-ctrl"
-;;;;;; "flow-ctrl.el" (20229 34587))
+;;;;;; "flow-ctrl.el" (20309 60936))
;;; Generated autoloads from flow-ctrl.el
(autoload 'enable-flow-control "flow-ctrl" "\
;;;***
\f
;;;### (autoloads (fill-flowed fill-flowed-encode) "flow-fill" "gnus/flow-fill.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/flow-fill.el
(autoload 'fill-flowed-encode "flow-fill" "\
;;;***
\f
;;;### (autoloads (flymake-find-file-hook flymake-mode-off flymake-mode-on
-;;;;;; flymake-mode) "flymake" "progmodes/flymake.el" (20273 55692))
+;;;;;; flymake-mode) "flymake" "progmodes/flymake.el" (20309 60936))
;;; Generated autoloads from progmodes/flymake.el
(autoload 'flymake-mode "flymake" "\
\f
;;;### (autoloads (flyspell-buffer flyspell-region flyspell-mode-off
;;;;;; turn-off-flyspell turn-on-flyspell flyspell-mode flyspell-prog-mode)
-;;;;;; "flyspell" "textmodes/flyspell.el" (20229 34587))
+;;;;;; "flyspell" "textmodes/flyspell.el" (20309 60936))
;;; Generated autoloads from textmodes/flyspell.el
(autoload 'flyspell-prog-mode "flyspell" "\
\f
;;;### (autoloads (follow-delete-other-windows-and-split follow-mode
;;;;;; turn-off-follow-mode turn-on-follow-mode) "follow" "follow.el"
-;;;;;; (20229 34587))
+;;;;;; (20329 33834))
;;; Generated autoloads from follow.el
(autoload 'turn-on-follow-mode "follow" "\
;;;***
\f
-;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (footnote-mode) "footnote" "mail/footnote.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from mail/footnote.el
(autoload 'footnote-mode "footnote" "\
;;;***
\f
;;;### (autoloads (forms-find-file-other-window forms-find-file forms-mode)
-;;;;;; "forms" "forms.el" (20229 34587))
+;;;;;; "forms" "forms.el" (20341 24416))
;;; Generated autoloads from forms.el
(autoload 'forms-mode "forms" "\
;;;***
\f
;;;### (autoloads (fortran-mode) "fortran" "progmodes/fortran.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/fortran.el
(autoload 'fortran-mode "fortran" "\
;;;***
\f
;;;### (autoloads (fortune fortune-to-signature fortune-compile fortune-from-region
-;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (20229 34587))
+;;;;;; fortune-add-fortune) "fortune" "play/fortune.el" (20309 60936))
;;; Generated autoloads from play/fortune.el
(autoload 'fortune-add-fortune "fortune" "\
;;;***
\f
;;;### (autoloads (gdb gdb-enable-debug) "gdb-mi" "progmodes/gdb-mi.el"
-;;;;;; (20298 5305))
+;;;;;; (20320 14810))
;;; Generated autoloads from progmodes/gdb-mi.el
(defvar gdb-enable-debug nil "\
;;;***
\f
;;;### (autoloads (generic-make-keywords-list generic-mode generic-mode-internal
-;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (20229
-;;;;;; 34587))
+;;;;;; define-generic-mode) "generic" "emacs-lisp/generic.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/generic.el
(defvar generic-mode-list nil "\
;;;***
\f
;;;### (autoloads (glasses-mode) "glasses" "progmodes/glasses.el"
-;;;;;; (20273 55692))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/glasses.el
(autoload 'glasses-mode "glasses" "\
\f
;;;### (autoloads (gmm-tool-bar-from-list gmm-widget-p gmm-error
;;;;;; gmm-message gmm-regexp-concat) "gmm-utils" "gnus/gmm-utils.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gmm-utils.el
(autoload 'gmm-regexp-concat "gmm-utils" "\
;;;***
\f
;;;### (autoloads (gnus gnus-other-frame gnus-slave gnus-no-server
-;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20276 33121))
+;;;;;; gnus-slave-no-server) "gnus" "gnus/gnus.el" (20309 60936))
;;; Generated autoloads from gnus/gnus.el
(when (fboundp 'custom-autoload)
(custom-autoload 'gnus-select-method "gnus"))
;;;;;; gnus-agent-get-undownloaded-list gnus-agent-delete-group
;;;;;; gnus-agent-rename-group gnus-agent-possibly-save-gcc gnus-agentize
;;;;;; gnus-slave-unplugged gnus-plugged gnus-unplugged) "gnus-agent"
-;;;;;; "gnus/gnus-agent.el" (20300 47034))
+;;;;;; "gnus/gnus-agent.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-agent.el
(autoload 'gnus-unplugged "gnus-agent" "\
;;;***
\f
;;;### (autoloads (gnus-article-prepare-display) "gnus-art" "gnus/gnus-art.el"
-;;;;;; (20280 61753))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-art.el
(autoload 'gnus-article-prepare-display "gnus-art" "\
;;;***
\f
;;;### (autoloads (gnus-bookmark-bmenu-list gnus-bookmark-jump gnus-bookmark-set)
-;;;;;; "gnus-bookmark" "gnus/gnus-bookmark.el" (20229 34587))
+;;;;;; "gnus-bookmark" "gnus/gnus-bookmark.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-bookmark.el
(autoload 'gnus-bookmark-set "gnus-bookmark" "\
\f
;;;### (autoloads (gnus-cache-delete-group gnus-cache-rename-group
;;;;;; gnus-cache-generate-nov-databases gnus-cache-generate-active
-;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (20229
-;;;;;; 34587))
+;;;;;; gnus-jog-cache) "gnus-cache" "gnus/gnus-cache.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/gnus-cache.el
(autoload 'gnus-jog-cache "gnus-cache" "\
;;;***
\f
;;;### (autoloads (gnus-delay-initialize gnus-delay-send-queue gnus-delay-article)
-;;;;;; "gnus-delay" "gnus/gnus-delay.el" (20229 34587))
+;;;;;; "gnus-delay" "gnus/gnus-delay.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-delay.el
(autoload 'gnus-delay-article "gnus-delay" "\
;;;***
\f
;;;### (autoloads (gnus-user-format-function-D gnus-user-format-function-d)
-;;;;;; "gnus-diary" "gnus/gnus-diary.el" (20229 34587))
+;;;;;; "gnus-diary" "gnus/gnus-diary.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-diary.el
(autoload 'gnus-user-format-function-d "gnus-diary" "\
;;;***
\f
;;;### (autoloads (turn-on-gnus-dired-mode) "gnus-dired" "gnus/gnus-dired.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-dired.el
(autoload 'turn-on-gnus-dired-mode "gnus-dired" "\
;;;***
\f
;;;### (autoloads (gnus-draft-reminder) "gnus-draft" "gnus/gnus-draft.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-draft.el
(autoload 'gnus-draft-reminder "gnus-draft" "\
\f
;;;### (autoloads (gnus-convert-png-to-face gnus-convert-face-to-png
;;;;;; gnus-face-from-file gnus-x-face-from-file gnus-insert-random-x-face-header
-;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (20229
-;;;;;; 34587))
+;;;;;; gnus-random-x-face) "gnus-fun" "gnus/gnus-fun.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/gnus-fun.el
(autoload 'gnus-random-x-face "gnus-fun" "\
;;;***
\f
;;;### (autoloads (gnus-treat-mail-gravatar gnus-treat-from-gravatar)
-;;;;;; "gnus-gravatar" "gnus/gnus-gravatar.el" (20229 34587))
+;;;;;; "gnus-gravatar" "gnus/gnus-gravatar.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-gravatar.el
(autoload 'gnus-treat-from-gravatar "gnus-gravatar" "\
;;;***
\f
;;;### (autoloads (gnus-fetch-group-other-frame gnus-fetch-group)
-;;;;;; "gnus-group" "gnus/gnus-group.el" (20266 28861))
+;;;;;; "gnus-group" "gnus/gnus-group.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-group.el
(autoload 'gnus-fetch-group "gnus-group" "\
;;;***
\f
;;;### (autoloads (gnus-html-prefetch-images gnus-article-html) "gnus-html"
-;;;;;; "gnus/gnus-html.el" (20273 55604))
+;;;;;; "gnus/gnus-html.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-html.el
(autoload 'gnus-article-html "gnus-html" "\
;;;***
\f
;;;### (autoloads (gnus-batch-score) "gnus-kill" "gnus/gnus-kill.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-kill.el
(defalias 'gnus-batch-kill 'gnus-batch-score)
\f
;;;### (autoloads (gnus-mailing-list-mode gnus-mailing-list-insinuate
;;;;;; turn-on-gnus-mailing-list-mode) "gnus-ml" "gnus/gnus-ml.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-ml.el
(autoload 'turn-on-gnus-mailing-list-mode "gnus-ml" "\
\f
;;;### (autoloads (gnus-group-split-fancy gnus-group-split gnus-group-split-update
;;;;;; gnus-group-split-setup) "gnus-mlspl" "gnus/gnus-mlspl.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-mlspl.el
(autoload 'gnus-group-split-setup "gnus-mlspl" "\
;;;***
\f
;;;### (autoloads (gnus-button-reply gnus-button-mailto gnus-msg-mail)
-;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20290 11197))
+;;;;;; "gnus-msg" "gnus/gnus-msg.el" (20321 38938))
;;; Generated autoloads from gnus/gnus-msg.el
(autoload 'gnus-msg-mail "gnus-msg" "\
\f
;;;### (autoloads (gnus-treat-newsgroups-picon gnus-treat-mail-picon
;;;;;; gnus-treat-from-picon) "gnus-picon" "gnus/gnus-picon.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-picon.el
(autoload 'gnus-treat-from-picon "gnus-picon" "\
;;;;;; gnus-sorted-nintersection gnus-sorted-range-intersection
;;;;;; gnus-sorted-intersection gnus-intersection gnus-sorted-complement
;;;;;; gnus-sorted-ndifference gnus-sorted-difference) "gnus-range"
-;;;;;; "gnus/gnus-range.el" (20229 34587))
+;;;;;; "gnus/gnus-range.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-range.el
(autoload 'gnus-sorted-difference "gnus-range" "\
;;;***
\f
;;;### (autoloads (gnus-registry-install-hooks gnus-registry-initialize)
-;;;;;; "gnus-registry" "gnus/gnus-registry.el" (20279 40897))
+;;;;;; "gnus-registry" "gnus/gnus-registry.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-registry.el
(autoload 'gnus-registry-initialize "gnus-registry" "\
;;;***
\f
;;;### (autoloads (gnus-sieve-article-add-rule gnus-sieve-generate
-;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (20229
-;;;;;; 34587))
+;;;;;; gnus-sieve-update) "gnus-sieve" "gnus/gnus-sieve.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/gnus-sieve.el
(autoload 'gnus-sieve-update "gnus-sieve" "\
;;;***
\f
;;;### (autoloads (gnus-update-format) "gnus-spec" "gnus/gnus-spec.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-spec.el
(autoload 'gnus-update-format "gnus-spec" "\
;;;***
\f
;;;### (autoloads (gnus-declare-backend) "gnus-start" "gnus/gnus-start.el"
-;;;;;; (20286 14149))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-start.el
(autoload 'gnus-declare-backend "gnus-start" "\
;;;***
\f
;;;### (autoloads (gnus-summary-bookmark-jump) "gnus-sum" "gnus/gnus-sum.el"
-;;;;;; (20291 32066))
+;;;;;; (20321 38938))
;;; Generated autoloads from gnus/gnus-sum.el
(autoload 'gnus-summary-bookmark-jump "gnus-sum" "\
;;;***
\f
;;;### (autoloads (gnus-sync-install-hooks gnus-sync-initialize)
-;;;;;; "gnus-sync" "gnus/gnus-sync.el" (20229 34587))
+;;;;;; "gnus-sync" "gnus/gnus-sync.el" (20309 60936))
;;; Generated autoloads from gnus/gnus-sync.el
(autoload 'gnus-sync-initialize "gnus-sync" "\
;;;***
\f
;;;### (autoloads (gnus-add-configuration) "gnus-win" "gnus/gnus-win.el"
-;;;;;; (20232 10689))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/gnus-win.el
(autoload 'gnus-add-configuration "gnus-win" "\
;;;***
\f
;;;### (autoloads (gnutls-min-prime-bits) "gnutls" "net/gnutls.el"
-;;;;;; (20286 55781))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/gnutls.el
(defvar gnutls-min-prime-bits nil "\
;;;***
\f
-;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (20300 47034))
+;;;### (autoloads (gomoku) "gomoku" "play/gomoku.el" (20309 60936))
;;; Generated autoloads from play/gomoku.el
(autoload 'gomoku "gomoku" "\
;;;***
\f
;;;### (autoloads (goto-address-prog-mode goto-address-mode goto-address
-;;;;;; goto-address-at-point) "goto-addr" "net/goto-addr.el" (20273
-;;;;;; 55692))
+;;;;;; goto-address-at-point) "goto-addr" "net/goto-addr.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from net/goto-addr.el
(define-obsolete-function-alias 'goto-address-at-mouse 'goto-address-at-point "22.1")
;;;***
\f
;;;### (autoloads (gravatar-retrieve-synchronously gravatar-retrieve)
-;;;;;; "gravatar" "gnus/gravatar.el" (20279 40897))
+;;;;;; "gravatar" "gnus/gravatar.el" (20309 60936))
;;; Generated autoloads from gnus/gravatar.el
(autoload 'gravatar-retrieve "gravatar" "\
\f
;;;### (autoloads (zrgrep rgrep lgrep grep-find grep grep-mode grep-compute-defaults
;;;;;; grep-process-setup grep-setup-hook grep-find-command grep-command
-;;;;;; grep-window-height) "grep" "progmodes/grep.el" (20255 25045))
+;;;;;; grep-window-height) "grep" "progmodes/grep.el" (20309 60936))
;;; Generated autoloads from progmodes/grep.el
(defvar grep-window-height nil "\
;;;***
\f
-;;;### (autoloads (gs-load-image) "gs" "gs.el" (20229 34587))
+;;;### (autoloads (gs-load-image) "gs" "gs.el" (20309 60936))
;;; Generated autoloads from gs.el
(autoload 'gs-load-image "gs" "\
;;;***
\f
;;;### (autoloads (gud-tooltip-mode gdb-script-mode jdb pdb perldb
-;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20270 25925))
+;;;;;; xdb dbx sdb gud-gdb) "gud" "progmodes/gud.el" (20309 60936))
;;; Generated autoloads from progmodes/gud.el
(autoload 'gud-gdb "gud" "\
;;;***
\f
-;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20300
-;;;;;; 47034))
+;;;### (autoloads (handwrite) "handwrite" "play/handwrite.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from play/handwrite.el
(autoload 'handwrite "handwrite" "\
;;;***
\f
;;;### (autoloads (hanoi-unix-64 hanoi-unix hanoi) "hanoi" "play/hanoi.el"
-;;;;;; (19981 40664))
+;;;;;; (20309 60936))
;;; Generated autoloads from play/hanoi.el
(autoload 'hanoi "hanoi" "\
\f
;;;### (autoloads (mail-check-payment mail-add-payment-async mail-add-payment
;;;;;; hashcash-verify-payment hashcash-insert-payment-async hashcash-insert-payment)
-;;;;;; "hashcash" "mail/hashcash.el" (20229 34587))
+;;;;;; "hashcash" "mail/hashcash.el" (20309 60936))
;;; Generated autoloads from mail/hashcash.el
(autoload 'hashcash-insert-payment "hashcash" "\
;;;### (autoloads (scan-buf-previous-region scan-buf-next-region
;;;;;; scan-buf-move-to-region help-at-pt-display-when-idle help-at-pt-set-timer
;;;;;; help-at-pt-cancel-timer display-local-help help-at-pt-kbd-string
-;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (20229 34587))
+;;;;;; help-at-pt-string) "help-at-pt" "help-at-pt.el" (20309 60936))
;;; Generated autoloads from help-at-pt.el
(autoload 'help-at-pt-string "help-at-pt" "\
;;;### (autoloads (doc-file-to-info doc-file-to-man describe-categories
;;;;;; describe-syntax describe-variable variable-at-point describe-function-1
;;;;;; find-lisp-object-file-name help-C-file-name describe-function)
-;;;;;; "help-fns" "help-fns.el" (20298 5305))
+;;;;;; "help-fns" "help-fns.el" (20309 60936))
;;; Generated autoloads from help-fns.el
(autoload 'describe-function "help-fns" "\
;;;***
\f
;;;### (autoloads (three-step-help) "help-macro" "help-macro.el"
-;;;;;; (20249 19777))
+;;;;;; (20309 60936))
;;; Generated autoloads from help-macro.el
(defvar three-step-help nil "\
\f
;;;### (autoloads (help-xref-on-pp help-insert-xref-button help-xref-button
;;;;;; help-make-xrefs help-buffer help-setup-xref help-mode-finish
-;;;;;; help-mode-setup help-mode) "help-mode" "help-mode.el" (20229
-;;;;;; 34587))
+;;;;;; help-mode-setup help-mode) "help-mode" "help-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from help-mode.el
(autoload 'help-mode "help-mode" "\
;;;***
\f
;;;### (autoloads (Helper-help Helper-describe-bindings) "helper"
-;;;;;; "emacs-lisp/helper.el" (20229 34587))
+;;;;;; "emacs-lisp/helper.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/helper.el
(autoload 'Helper-describe-bindings "helper" "\
;;;***
\f
;;;### (autoloads (hexlify-buffer hexl-find-file hexl-mode) "hexl"
-;;;;;; "hexl.el" (20229 34587))
+;;;;;; "hexl.el" (20309 60936))
;;; Generated autoloads from hexl.el
(autoload 'hexl-mode "hexl" "\
;;;### (autoloads (hi-lock-write-interactive-patterns hi-lock-unface-buffer
;;;;;; hi-lock-face-phrase-buffer hi-lock-face-buffer hi-lock-line-face-buffer
;;;;;; global-hi-lock-mode hi-lock-mode) "hi-lock" "hi-lock.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from hi-lock.el
(autoload 'hi-lock-mode "hi-lock" "\
;;;***
\f
;;;### (autoloads (hide-ifdef-mode) "hideif" "progmodes/hideif.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/hideif.el
(autoload 'hide-ifdef-mode "hideif" "\
;;;***
\f
;;;### (autoloads (turn-off-hideshow hs-minor-mode) "hideshow" "progmodes/hideshow.el"
-;;;;;; (20273 55692))
+;;;;;; (20330 2324))
;;; Generated autoloads from progmodes/hideshow.el
(defvar hs-special-modes-alist (mapcar 'purecopy '((c-mode "{" "}" "/[*/]" nil nil) (c++-mode "{" "}" "/[*/]" nil nil) (bibtex-mode ("@\\S(*\\(\\s(\\)" 1)) (java-mode "{" "}" "/[*/]" nil nil) (js-mode "{" "}" "/[*/]" nil))) "\
;;;;;; highlight-compare-buffers highlight-changes-rotate-faces
;;;;;; highlight-changes-previous-change highlight-changes-next-change
;;;;;; highlight-changes-remove-highlight highlight-changes-visible-mode
-;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20229
-;;;;;; 34587))
+;;;;;; highlight-changes-mode) "hilit-chg" "hilit-chg.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from hilit-chg.el
(autoload 'highlight-changes-mode "hilit-chg" "\
;;;;;; hippie-expand-ignore-buffers hippie-expand-max-buffers hippie-expand-no-restriction
;;;;;; hippie-expand-dabbrev-as-symbol hippie-expand-dabbrev-skip-space
;;;;;; hippie-expand-verbose hippie-expand-try-functions-list) "hippie-exp"
-;;;;;; "hippie-exp.el" (20229 34587))
+;;;;;; "hippie-exp.el" (20309 60936))
;;; Generated autoloads from hippie-exp.el
(defvar hippie-expand-try-functions-list '(try-complete-file-name-partially try-complete-file-name try-expand-all-abbrevs try-expand-list try-expand-line try-expand-dabbrev try-expand-dabbrev-all-buffers try-expand-dabbrev-from-kill try-complete-lisp-symbol-partially try-complete-lisp-symbol) "\
;;;***
\f
;;;### (autoloads (global-hl-line-mode hl-line-mode) "hl-line" "hl-line.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from hl-line.el
(autoload 'hl-line-mode "hl-line" "\
;;;;;; holiday-bahai-holidays holiday-islamic-holidays holiday-christian-holidays
;;;;;; holiday-hebrew-holidays holiday-other-holidays holiday-local-holidays
;;;;;; holiday-oriental-holidays holiday-general-holidays) "holidays"
-;;;;;; "calendar/holidays.el" (20287 5356))
+;;;;;; "calendar/holidays.el" (20309 60936))
;;; Generated autoloads from calendar/holidays.el
(define-obsolete-variable-alias 'general-holidays 'holiday-general-holidays "23.1")
;;;***
\f
-;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (html2text) "html2text" "gnus/html2text.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/html2text.el
(autoload 'html2text "html2text" "\
;;;***
\f
;;;### (autoloads (htmlfontify-copy-and-link-dir htmlfontify-buffer)
-;;;;;; "htmlfontify" "htmlfontify.el" (20300 47034))
+;;;;;; "htmlfontify" "htmlfontify.el" (20324 39235))
;;; Generated autoloads from htmlfontify.el
(autoload 'htmlfontify-buffer "htmlfontify" "\
;;;***
\f
;;;### (autoloads (define-ibuffer-filter define-ibuffer-op define-ibuffer-sorter
-;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (20229
-;;;;;; 34587))
+;;;;;; define-ibuffer-column) "ibuf-macs" "ibuf-macs.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from ibuf-macs.el
(autoload 'define-ibuffer-column "ibuf-macs" "\
;;;***
\f
;;;### (autoloads (ibuffer ibuffer-other-window ibuffer-list-buffers)
-;;;;;; "ibuffer" "ibuffer.el" (20232 10689))
+;;;;;; "ibuffer" "ibuffer.el" (20317 25086))
;;; Generated autoloads from ibuffer.el
(autoload 'ibuffer-list-buffers "ibuffer" "\
\f
;;;### (autoloads (icalendar-import-buffer icalendar-import-file
;;;;;; icalendar-export-region icalendar-export-file) "icalendar"
-;;;;;; "calendar/icalendar.el" (20229 34587))
+;;;;;; "calendar/icalendar.el" (20320 14810))
;;; Generated autoloads from calendar/icalendar.el
(autoload 'icalendar-export-file "icalendar" "\
;;;***
\f
-;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20294
-;;;;;; 38748))
+;;;### (autoloads (icomplete-mode) "icomplete" "icomplete.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from icomplete.el
(defvar icomplete-mode nil "\
;;;***
\f
-;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (20229 34587))
+;;;### (autoloads (icon-mode) "icon" "progmodes/icon.el" (20309 60936))
;;; Generated autoloads from progmodes/icon.el
(autoload 'icon-mode "icon" "\
;;;***
\f
;;;### (autoloads (idlwave-shell) "idlw-shell" "progmodes/idlw-shell.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/idlw-shell.el
(autoload 'idlwave-shell "idlw-shell" "\
;;;***
\f
;;;### (autoloads (idlwave-mode) "idlwave" "progmodes/idlwave.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/idlwave.el
(autoload 'idlwave-mode "idlwave" "\
;;;;;; ido-find-alternate-file ido-find-file-other-window ido-find-file
;;;;;; ido-find-file-in-dir ido-switch-buffer-other-frame ido-insert-buffer
;;;;;; ido-kill-buffer ido-display-buffer ido-switch-buffer-other-window
-;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20268
-;;;;;; 33259))
+;;;;;; ido-switch-buffer ido-mode ido-mode) "ido" "ido.el" (20330
+;;;;;; 976))
;;; Generated autoloads from ido.el
(defvar ido-mode nil "\
;;;***
\f
-;;;### (autoloads (ielm) "ielm" "ielm.el" (20229 34587))
+;;;### (autoloads (ielm) "ielm" "ielm.el" (20309 60936))
;;; Generated autoloads from ielm.el
(autoload 'ielm "ielm" "\
;;;***
\f
-;;;### (autoloads (iimage-mode) "iimage" "iimage.el" (20273 55691))
+;;;### (autoloads (iimage-mode) "iimage" "iimage.el" (20309 60936))
;;; Generated autoloads from iimage.el
(define-obsolete-function-alias 'turn-on-iimage-mode 'iimage-mode "24.1")
;;;;;; create-image image-type-auto-detected-p image-type-available-p
;;;;;; image-type image-type-from-file-name image-type-from-file-header
;;;;;; image-type-from-buffer image-type-from-data) "image" "image.el"
-;;;;;; (20300 47034))
+;;;;;; (20341 55868))
;;; Generated autoloads from image.el
(autoload 'image-type-from-data "image" "\
(autoload 'imagemagick-register-types "image" "\
Register file types that can be handled by ImageMagick.
-This adds the file types returned by `imagemagick-types'
-\(excluding the ones in `imagemagick-types-inhibit') to
-`auto-mode-alist' and `image-type-file-name-regexps', so that
-Emacs visits them in Image mode.
+This registers the ImageMagick types listed in `imagemagick-types',
+excluding those listed in `imagemagick-types-inhibit'.
+
+Registered image types are added to `auto-mode-alist', so that
+Emacs visits them in Image mode. They are also added to
+`image-type-file-name-regexps', so that the `image-type' function
+recognizes these files as having image type `imagemagick'.
If Emacs is compiled without ImageMagick support, do nothing.
;;;;;; image-dired-jump-thumbnail-buffer image-dired-delete-tag
;;;;;; image-dired-tag-files image-dired-show-all-from-dir image-dired-display-thumbs
;;;;;; image-dired-dired-with-window-configuration image-dired-dired-toggle-marked-thumbs)
-;;;;;; "image-dired" "image-dired.el" (20229 34587))
+;;;;;; "image-dired" "image-dired.el" (20309 60936))
;;; Generated autoloads from image-dired.el
(autoload 'image-dired-dired-toggle-marked-thumbs "image-dired" "\
\f
;;;### (autoloads (auto-image-file-mode insert-image-file image-file-name-regexp
;;;;;; image-file-name-regexps image-file-name-extensions) "image-file"
-;;;;;; "image-file.el" (20229 34587))
+;;;;;; "image-file.el" (20309 60936))
;;; Generated autoloads from image-file.el
(defvar image-file-name-extensions (purecopy '("png" "jpeg" "jpg" "gif" "tiff" "tif" "xbm" "xpm" "pbm" "pgm" "ppm" "pnm" "svg")) "\
;;;***
\f
;;;### (autoloads (image-bookmark-jump image-mode-as-text image-minor-mode
-;;;;;; image-mode) "image-mode" "image-mode.el" (20274 22975))
+;;;;;; image-mode) "image-mode" "image-mode.el" (20309 60936))
;;; Generated autoloads from image-mode.el
(autoload 'image-mode "image-mode" "\
;;;***
\f
;;;### (autoloads (imenu imenu-add-menubar-index imenu-add-to-menubar
-;;;;;; imenu-sort-function) "imenu" "imenu.el" (20229 34587))
+;;;;;; imenu-sort-function) "imenu" "imenu.el" (20321 38938))
;;; Generated autoloads from imenu.el
(defvar imenu-sort-function nil "\
\f
;;;### (autoloads (indian-2-column-to-ucs-region in-is13194-pre-write-conversion
;;;;;; in-is13194-post-read-conversion indian-compose-string indian-compose-region)
-;;;;;; "ind-util" "language/ind-util.el" (20229 34587))
+;;;;;; "ind-util" "language/ind-util.el" (20309 60936))
;;; Generated autoloads from language/ind-util.el
(autoload 'indian-compose-region "ind-util" "\
\f
;;;### (autoloads (inferior-lisp inferior-lisp-prompt inferior-lisp-load-command
;;;;;; inferior-lisp-program inferior-lisp-filter-regexp) "inf-lisp"
-;;;;;; "progmodes/inf-lisp.el" (20229 34587))
+;;;;;; "progmodes/inf-lisp.el" (20309 60936))
;;; Generated autoloads from progmodes/inf-lisp.el
(defvar inferior-lisp-filter-regexp (purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'") "\
;;;;;; Info-goto-emacs-key-command-node Info-goto-emacs-command-node
;;;;;; Info-mode info-finder info-apropos Info-index Info-directory
;;;;;; Info-on-current-buffer info-standalone info-emacs-manual
-;;;;;; info info-other-window) "info" "info.el" (20242 46528))
+;;;;;; info info-other-window) "info" "info.el" (20330 2046))
;;; Generated autoloads from info.el
(autoload 'info-other-window "info" "\
\f
;;;### (autoloads (info-complete-file info-complete-symbol info-lookup-file
;;;;;; info-lookup-symbol info-lookup-reset) "info-look" "info-look.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from info-look.el
(autoload 'info-lookup-reset "info-look" "\
\f
;;;### (autoloads (info-xref-docstrings info-xref-check-all-custom
;;;;;; info-xref-check-all info-xref-check) "info-xref" "info-xref.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from info-xref.el
(autoload 'info-xref-check "info-xref" "\
;;;***
\f
;;;### (autoloads (batch-info-validate Info-validate Info-split Info-split-threshold
-;;;;;; Info-tagify) "informat" "informat.el" (20229 34587))
+;;;;;; Info-tagify) "informat" "informat.el" (20309 60936))
;;; Generated autoloads from informat.el
(autoload 'Info-tagify "informat" "\
\f
;;;### (autoloads (isearch-process-search-multibyte-characters isearch-toggle-input-method
;;;;;; isearch-toggle-specified-input-method) "isearch-x" "international/isearch-x.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from international/isearch-x.el
(autoload 'isearch-toggle-specified-input-method "isearch-x" "\
;;;***
\f
-;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (isearchb-activate) "isearchb" "isearchb.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from isearchb.el
(autoload 'isearchb-activate "isearchb" "\
;;;### (autoloads (iso-cvt-define-menu iso-cvt-write-only iso-cvt-read-only
;;;;;; iso-sgml2iso iso-iso2sgml iso-iso2duden iso-iso2gtex iso-gtex2iso
;;;;;; iso-tex2iso iso-iso2tex iso-german iso-spanish) "iso-cvt"
-;;;;;; "international/iso-cvt.el" (20229 34587))
+;;;;;; "international/iso-cvt.el" (20309 60936))
;;; Generated autoloads from international/iso-cvt.el
(autoload 'iso-spanish "iso-cvt" "\
;;;***
\f
;;;### (autoloads nil "iso-transl" "international/iso-transl.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from international/iso-transl.el
(or key-translation-map (setq key-translation-map (make-sparse-keymap)))
(define-key key-translation-map "\C-x8" 'iso-transl-ctl-x-8-map)
;;;;;; ispell-complete-word ispell-continue ispell-buffer ispell-comments-and-strings
;;;;;; ispell-region ispell-change-dictionary ispell-kill-ispell
;;;;;; ispell-help ispell-pdict-save ispell-word ispell-personal-dictionary)
-;;;;;; "ispell" "textmodes/ispell.el" (20229 34587))
+;;;;;; "ispell" "textmodes/ispell.el" (20341 56798))
;;; Generated autoloads from textmodes/ispell.el
(put 'ispell-check-comments 'safe-local-variable (lambda (a) (memq a '(nil t exclusive))))
(autoload 'ispell-region "ispell" "\
Interactively check a region for spelling errors.
-Return nil if spell session is quit,
- otherwise returns shift offset amount for last line processed.
+Return nil if spell session was terminated, otherwise returns shift offset
+amount for last line processed.
\(fn REG-START REG-END &optional RECHECKP SHIFT)" t nil)
positive, and disable it otherwise. If called from Lisp, enable
the mode if ARG is omitted or nil.
-Ispell minor mode is a buffer-local mior mode. When enabled,
+Ispell minor mode is a buffer-local minor mode. When enabled,
typing SPC or RET warns you if the previous word is incorrectly
spelled.
To abort spell checking of a message region and send the message anyway,
use the `x' command. (Any subsequent regions will be checked.)
-The `X' command aborts the message send so that you can edit the buffer.
+The `X' command aborts sending the message so that you can edit the buffer.
To spell-check whenever a message is sent, include the appropriate lines
in your .emacs file:
;;;***
\f
-;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (iswitchb-mode) "iswitchb" "iswitchb.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from iswitchb.el
(defvar iswitchb-mode nil "\
;;;### (autoloads (read-hiragana-string japanese-zenkaku-region japanese-hankaku-region
;;;;;; japanese-hiragana-region japanese-katakana-region japanese-zenkaku
;;;;;; japanese-hankaku japanese-hiragana japanese-katakana setup-japanese-environment-internal)
-;;;;;; "japan-util" "language/japan-util.el" (20229 34587))
+;;;;;; "japan-util" "language/japan-util.el" (20309 60936))
;;; Generated autoloads from language/japan-util.el
(autoload 'setup-japanese-environment-internal "japan-util" "\
;;;***
\f
;;;### (autoloads (jka-compr-uninstall jka-compr-handler) "jka-compr"
-;;;;;; "jka-compr.el" (20250 40679))
+;;;;;; "jka-compr.el" (20309 60936))
;;; Generated autoloads from jka-compr.el
(defvar jka-compr-inhibit nil "\
;;;***
\f
-;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20229 34587))
+;;;### (autoloads (js-mode) "js" "progmodes/js.el" (20309 60936))
;;; Generated autoloads from progmodes/js.el
(autoload 'js-mode "js" "\
\f
;;;### (autoloads (keypad-setup keypad-numlock-shifted-setup keypad-shifted-setup
;;;;;; keypad-numlock-setup keypad-setup) "keypad" "emulation/keypad.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from emulation/keypad.el
(defvar keypad-setup nil "\
;;;***
\f
;;;### (autoloads (kinsoku) "kinsoku" "international/kinsoku.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from international/kinsoku.el
(autoload 'kinsoku "kinsoku" "\
;;;***
\f
-;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (kkc-region) "kkc" "international/kkc.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from international/kkc.el
(defvar kkc-after-update-conversion-functions nil "\
;;;### (autoloads (kmacro-end-call-mouse kmacro-end-and-call-macro
;;;;;; kmacro-end-or-call-macro kmacro-start-macro-or-insert-counter
;;;;;; kmacro-call-macro kmacro-end-macro kmacro-start-macro kmacro-exec-ring-item)
-;;;;;; "kmacro" "kmacro.el" (20229 34587))
+;;;;;; "kmacro" "kmacro.el" (20309 60936))
;;; Generated autoloads from kmacro.el
(global-set-key "\C-x(" 'kmacro-start-macro)
(global-set-key "\C-x)" 'kmacro-end-macro)
;;;***
\f
;;;### (autoloads (setup-korean-environment-internal) "korea-util"
-;;;;;; "language/korea-util.el" (20229 34587))
+;;;;;; "language/korea-util.el" (20309 60936))
;;; Generated autoloads from language/korea-util.el
(defvar default-korean-keyboard (purecopy (if (string-match "3" (or (getenv "HANGUL_KEYBOARD_TYPE") "")) "3" "")) "\
;;;***
\f
;;;### (autoloads (landmark landmark-test-run) "landmark" "play/landmark.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from play/landmark.el
(defalias 'landmark-repeat 'landmark-test-run)
\f
;;;### (autoloads (lao-compose-region lao-composition-function lao-transcribe-roman-to-lao-string
;;;;;; lao-transcribe-single-roman-syllable-to-lao lao-compose-string)
-;;;;;; "lao-util" "language/lao-util.el" (20229 34587))
+;;;;;; "lao-util" "language/lao-util.el" (20309 60936))
;;; Generated autoloads from language/lao-util.el
(autoload 'lao-compose-string "lao-util" "\
\f
;;;### (autoloads (latexenc-find-file-coding-system latexenc-coding-system-to-inputenc
;;;;;; latexenc-inputenc-to-coding-system latex-inputenc-coding-alist)
-;;;;;; "latexenc" "international/latexenc.el" (20229 34587))
+;;;;;; "latexenc" "international/latexenc.el" (20309 60936))
;;; Generated autoloads from international/latexenc.el
(defvar latex-inputenc-coding-alist (purecopy '(("ansinew" . windows-1252) ("applemac" . mac-roman) ("ascii" . us-ascii) ("cp1250" . windows-1250) ("cp1252" . windows-1252) ("cp1257" . cp1257) ("cp437de" . cp437) ("cp437" . cp437) ("cp850" . cp850) ("cp852" . cp852) ("cp858" . cp858) ("cp865" . cp865) ("latin1" . iso-8859-1) ("latin2" . iso-8859-2) ("latin3" . iso-8859-3) ("latin4" . iso-8859-4) ("latin5" . iso-8859-5) ("latin9" . iso-8859-15) ("next" . next) ("utf8" . utf-8) ("utf8x" . utf-8))) "\
;;;***
\f
;;;### (autoloads (latin1-display-ucs-per-lynx latin1-display latin1-display)
-;;;;;; "latin1-disp" "international/latin1-disp.el" (20229 34587))
+;;;;;; "latin1-disp" "international/latin1-disp.el" (20309 60936))
;;; Generated autoloads from international/latin1-disp.el
(defvar latin1-display nil "\
;;;***
\f
;;;### (autoloads (ld-script-mode) "ld-script" "progmodes/ld-script.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/ld-script.el
(autoload 'ld-script-mode "ld-script" "\
;;;***
\f
;;;### (autoloads (ledit-from-lisp-mode ledit-mode) "ledit" "ledit.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from ledit.el
(defconst ledit-save-files t "\
;;;***
\f
-;;;### (autoloads (life) "life" "play/life.el" (20229 34587))
+;;;### (autoloads (life) "life" "play/life.el" (20309 60936))
;;; Generated autoloads from play/life.el
(autoload 'life "life" "\
;;;***
\f
;;;### (autoloads (global-linum-mode linum-mode linum-format) "linum"
-;;;;;; "linum.el" (20229 34587))
+;;;;;; "linum.el" (20309 60936))
;;; Generated autoloads from linum.el
(defvar linum-format 'dynamic "\
;;;***
\f
-;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (unload-feature) "loadhist" "loadhist.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from loadhist.el
(autoload 'unload-feature "loadhist" "\
;;;***
\f
;;;### (autoloads (locate-with-filter locate locate-ls-subdir-switches)
-;;;;;; "locate" "locate.el" (20229 34587))
+;;;;;; "locate" "locate.el" (20309 60936))
;;; Generated autoloads from locate.el
(defvar locate-ls-subdir-switches (purecopy "-al") "\
;;;***
\f
-;;;### (autoloads (log-edit) "log-edit" "vc/log-edit.el" (20229 34587))
+;;;### (autoloads (log-edit) "log-edit" "vc/log-edit.el" (20309 60936))
;;; Generated autoloads from vc/log-edit.el
(autoload 'log-edit "log-edit" "\
;;;***
\f
-;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20279
-;;;;;; 40897))
+;;;### (autoloads (log-view-mode) "log-view" "vc/log-view.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from vc/log-view.el
(autoload 'log-view-mode "log-view" "\
;;;***
\f
-;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (longlines-mode) "longlines" "longlines.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from longlines.el
(autoload 'longlines-mode "longlines" "\
;;;***
\f
;;;### (autoloads (print-region lpr-region print-buffer lpr-buffer
-;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (20229
-;;;;;; 34587))
+;;;;;; lpr-command lpr-switches printer-name) "lpr" "lpr.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from lpr.el
(defvar lpr-windows-system (memq system-type '(ms-dos windows-nt)) "\
;;;***
\f
;;;### (autoloads (ls-lisp-support-shell-wildcards) "ls-lisp" "ls-lisp.el"
-;;;;;; (20273 55604))
+;;;;;; (20309 60936))
;;; Generated autoloads from ls-lisp.el
(defvar ls-lisp-support-shell-wildcards t "\
;;;***
\f
-;;;### (autoloads (lunar-phases) "lunar" "calendar/lunar.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (lunar-phases) "lunar" "calendar/lunar.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calendar/lunar.el
(autoload 'lunar-phases "lunar" "\
;;;***
\f
-;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (m4-mode) "m4-mode" "progmodes/m4-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/m4-mode.el
(autoload 'm4-mode "m4-mode" "\
;;;***
\f
;;;### (autoloads (macroexpand-all) "macroexp" "emacs-lisp/macroexp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/macroexp.el
(autoload 'macroexpand-all "macroexp" "\
;;;***
\f
;;;### (autoloads (apply-macro-to-region-lines kbd-macro-query insert-kbd-macro
-;;;;;; name-last-kbd-macro) "macros" "macros.el" (20229 34587))
+;;;;;; name-last-kbd-macro) "macros" "macros.el" (20309 60936))
;;; Generated autoloads from macros.el
(autoload 'name-last-kbd-macro "macros" "\
;;;***
\f
;;;### (autoloads (what-domain mail-extract-address-components) "mail-extr"
-;;;;;; "mail/mail-extr.el" (20237 28610))
+;;;;;; "mail/mail-extr.el" (20309 60936))
;;; Generated autoloads from mail/mail-extr.el
(autoload 'mail-extract-address-components "mail-extr" "\
\f
;;;### (autoloads (mail-hist-put-headers-into-history mail-hist-keep-history
;;;;;; mail-hist-enable mail-hist-define-keys) "mail-hist" "mail/mail-hist.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/mail-hist.el
(autoload 'mail-hist-define-keys "mail-hist" "\
;;;### (autoloads (mail-fetch-field mail-unquote-printable-region
;;;;;; mail-unquote-printable mail-quote-printable-region mail-quote-printable
;;;;;; mail-file-babyl-p mail-dont-reply-to-names mail-use-rfc822)
-;;;;;; "mail-utils" "mail/mail-utils.el" (20229 34587))
+;;;;;; "mail-utils" "mail/mail-utils.el" (20315 8755))
;;; Generated autoloads from mail/mail-utils.el
(defvar mail-use-rfc822 nil "\
\(fn FILE)" nil nil)
(autoload 'mail-quote-printable "mail-utils" "\
-Convert a string to the \"quoted printable\" Q encoding.
+Convert a string to the \"quoted printable\" Q encoding if necessary.
+If the string contains only ASCII characters and no troublesome ones,
+we return it unconverted.
+
If the optional argument WRAPPER is non-nil,
we add the wrapper characters =?ISO-8859-1?Q?....?=.
;;;***
\f
;;;### (autoloads (define-mail-abbrev build-mail-abbrevs mail-abbrevs-setup
-;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20229
-;;;;;; 34587))
+;;;;;; mail-abbrevs-mode) "mailabbrev" "mail/mailabbrev.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from mail/mailabbrev.el
(defvar mail-abbrevs-mode nil "\
\f
;;;### (autoloads (mail-complete mail-completion-at-point-function
;;;;;; define-mail-alias expand-mail-aliases mail-complete-style)
-;;;;;; "mailalias" "mail/mailalias.el" (20229 34587))
+;;;;;; "mailalias" "mail/mailalias.el" (20309 60936))
;;; Generated autoloads from mail/mailalias.el
(defvar mail-complete-style 'angles "\
;;;***
\f
;;;### (autoloads (mailclient-send-it) "mailclient" "mail/mailclient.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/mailclient.el
(autoload 'mailclient-send-it "mailclient" "\
\f
;;;### (autoloads (makefile-imake-mode makefile-bsdmake-mode makefile-makepp-mode
;;;;;; makefile-gmake-mode makefile-automake-mode makefile-mode)
-;;;;;; "make-mode" "progmodes/make-mode.el" (20229 34587))
+;;;;;; "make-mode" "progmodes/make-mode.el" (20309 60936))
;;; Generated autoloads from progmodes/make-mode.el
(autoload 'makefile-mode "make-mode" "\
;;;***
\f
-;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (make-command-summary) "makesum" "makesum.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from makesum.el
(autoload 'make-command-summary "makesum" "\
;;;***
\f
;;;### (autoloads (Man-bookmark-jump man-follow man) "man" "man.el"
-;;;;;; (20292 53022))
+;;;;;; (20309 60936))
;;; Generated autoloads from man.el
(defalias 'manual-entry 'man)
;;;***
\f
-;;;### (autoloads (master-mode) "master" "master.el" (20229 34587))
+;;;### (autoloads (master-mode) "master" "master.el" (20309 60936))
;;; Generated autoloads from master.el
(autoload 'master-mode "master" "\
;;;***
\f
;;;### (autoloads (minibuffer-depth-indicate-mode) "mb-depth" "mb-depth.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mb-depth.el
(defvar minibuffer-depth-indicate-mode nil "\
;;;;;; message-forward-make-body message-forward message-recover
;;;;;; message-supersede message-cancel-news message-followup message-wide-reply
;;;;;; message-reply message-news message-mail message-mode) "message"
-;;;;;; "gnus/message.el" (20279 40897))
+;;;;;; "gnus/message.el" (20309 60936))
;;; Generated autoloads from gnus/message.el
(define-mail-user-agent 'message-user-agent 'message-mail 'message-send-and-exit 'message-kill-buffer 'message-send-hook)
;;;***
\f
;;;### (autoloads (metapost-mode metafont-mode) "meta-mode" "progmodes/meta-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/meta-mode.el
(autoload 'metafont-mode "meta-mode" "\
\f
;;;### (autoloads (metamail-region metamail-buffer metamail-interpret-body
;;;;;; metamail-interpret-header) "metamail" "mail/metamail.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/metamail.el
(autoload 'metamail-interpret-header "metamail" "\
\f
;;;### (autoloads (mh-fully-kill-draft mh-send-letter mh-user-agent-compose
;;;;;; mh-smail-batch mh-smail-other-window mh-smail) "mh-comp"
-;;;;;; "mh-e/mh-comp.el" (20229 34587))
+;;;;;; "mh-e/mh-comp.el" (20309 60936))
;;; Generated autoloads from mh-e/mh-comp.el
(autoload 'mh-smail "mh-comp" "\
;;;***
\f
-;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20229 34587))
+;;;### (autoloads (mh-version) "mh-e" "mh-e/mh-e.el" (20309 60936))
;;; Generated autoloads from mh-e/mh-e.el
(put 'mh-progs 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (mh-folder-mode mh-nmail mh-rmail) "mh-folder"
-;;;;;; "mh-e/mh-folder.el" (20229 34587))
+;;;;;; "mh-e/mh-folder.el" (20309 60936))
;;; Generated autoloads from mh-e/mh-folder.el
(autoload 'mh-rmail "mh-folder" "\
;;;***
\f
;;;### (autoloads (midnight-delay-set clean-buffer-list) "midnight"
-;;;;;; "midnight.el" (20229 34587))
+;;;;;; "midnight.el" (20309 60936))
;;; Generated autoloads from midnight.el
(autoload 'clean-buffer-list "midnight" "\
;;;***
\f
;;;### (autoloads (minibuffer-electric-default-mode) "minibuf-eldef"
-;;;;;; "minibuf-eldef.el" (20229 34587))
+;;;;;; "minibuf-eldef.el" (20309 60936))
;;; Generated autoloads from minibuf-eldef.el
(defvar minibuffer-electric-default-mode nil "\
;;;***
\f
;;;### (autoloads (list-dynamic-libraries butterfly) "misc" "misc.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from misc.el
(autoload 'butterfly "misc" "\
\f
;;;### (autoloads (multi-isearch-files-regexp multi-isearch-files
;;;;;; multi-isearch-buffers-regexp multi-isearch-buffers multi-isearch-setup)
-;;;;;; "misearch" "misearch.el" (20229 34587))
+;;;;;; "misearch" "misearch.el" (20309 60936))
;;; Generated autoloads from misearch.el
(add-hook 'isearch-mode-hook 'multi-isearch-setup)
;;;***
\f
;;;### (autoloads (mixal-mode) "mixal-mode" "progmodes/mixal-mode.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/mixal-mode.el
(autoload 'mixal-mode "mixal-mode" "\
;;;***
\f
;;;### (autoloads (mm-default-file-encoding) "mm-encode" "gnus/mm-encode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/mm-encode.el
(autoload 'mm-default-file-encoding "mm-encode" "\
;;;***
\f
;;;### (autoloads (mm-inline-external-body mm-extern-cache-contents)
-;;;;;; "mm-extern" "gnus/mm-extern.el" (20229 34587))
+;;;;;; "mm-extern" "gnus/mm-extern.el" (20309 60936))
;;; Generated autoloads from gnus/mm-extern.el
(autoload 'mm-extern-cache-contents "mm-extern" "\
;;;***
\f
;;;### (autoloads (mm-inline-partial) "mm-partial" "gnus/mm-partial.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/mm-partial.el
(autoload 'mm-inline-partial "mm-partial" "\
;;;***
\f
;;;### (autoloads (mm-url-insert-file-contents-external mm-url-insert-file-contents)
-;;;;;; "mm-url" "gnus/mm-url.el" (20229 34587))
+;;;;;; "mm-url" "gnus/mm-url.el" (20309 60936))
;;; Generated autoloads from gnus/mm-url.el
(autoload 'mm-url-insert-file-contents "mm-url" "\
;;;***
\f
;;;### (autoloads (mm-uu-dissect-text-parts mm-uu-dissect) "mm-uu"
-;;;;;; "gnus/mm-uu.el" (20229 34587))
+;;;;;; "gnus/mm-uu.el" (20314 47703))
;;; Generated autoloads from gnus/mm-uu.el
(autoload 'mm-uu-dissect "mm-uu" "\
;;;***
\f
;;;### (autoloads (mml-attach-file mml-to-mime) "mml" "gnus/mml.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/mml.el
(autoload 'mml-to-mime "mml" "\
;;;***
\f
;;;### (autoloads (mml1991-sign mml1991-encrypt) "mml1991" "gnus/mml1991.el"
-;;;;;; (20291 32066))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/mml1991.el
(autoload 'mml1991-encrypt "mml1991" "\
\f
;;;### (autoloads (mml2015-self-encrypt mml2015-sign mml2015-encrypt
;;;;;; mml2015-verify-test mml2015-verify mml2015-decrypt-test mml2015-decrypt)
-;;;;;; "mml2015" "gnus/mml2015.el" (20229 34587))
+;;;;;; "mml2015" "gnus/mml2015.el" (20309 60936))
;;; Generated autoloads from gnus/mml2015.el
(autoload 'mml2015-decrypt "mml2015" "\
;;;***
\f
-;;;### (autoloads (m2-mode) "modula2" "progmodes/modula2.el" (20159
-;;;;;; 42847))
+;;;### (autoloads (m2-mode) "modula2" "progmodes/modula2.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/modula2.el
(defalias 'modula-2-mode 'm2-mode)
;;;***
\f
;;;### (autoloads (denato-region nato-region unmorse-region morse-region)
-;;;;;; "morse" "play/morse.el" (20229 34587))
+;;;;;; "morse" "play/morse.el" (20309 60936))
;;; Generated autoloads from play/morse.el
(autoload 'morse-region "morse" "\
;;;***
\f
;;;### (autoloads (mouse-drag-drag mouse-drag-throw) "mouse-drag"
-;;;;;; "mouse-drag.el" (20229 34587))
+;;;;;; "mouse-drag.el" (20309 60936))
;;; Generated autoloads from mouse-drag.el
(autoload 'mouse-drag-throw "mouse-drag" "\
;;;***
\f
-;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (mouse-sel-mode) "mouse-sel" "mouse-sel.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from mouse-sel.el
(defvar mouse-sel-mode nil "\
;;;***
\f
-;;;### (autoloads (mpc) "mpc" "mpc.el" (20229 34587))
+;;;### (autoloads (mpc) "mpc" "mpc.el" (20309 60936))
;;; Generated autoloads from mpc.el
(autoload 'mpc "mpc" "\
;;;***
\f
-;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (20229 34587))
+;;;### (autoloads (mpuz) "mpuz" "play/mpuz.el" (20309 60936))
;;; Generated autoloads from play/mpuz.el
(autoload 'mpuz "mpuz" "\
;;;***
\f
-;;;### (autoloads (msb-mode) "msb" "msb.el" (20229 34587))
+;;;### (autoloads (msb-mode) "msb" "msb.el" (20309 60936))
;;; Generated autoloads from msb.el
(defvar msb-mode nil "\
;;;;;; describe-current-coding-system describe-current-coding-system-briefly
;;;;;; describe-coding-system describe-character-set list-charset-chars
;;;;;; read-charset list-character-sets) "mule-diag" "international/mule-diag.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from international/mule-diag.el
(autoload 'list-character-sets "mule-diag" "\
;;;;;; coding-system-translation-table-for-decode coding-system-pre-write-conversion
;;;;;; coding-system-post-read-conversion lookup-nested-alist set-nested-alist
;;;;;; truncate-string-to-width store-substring string-to-sequence)
-;;;;;; "mule-util" "international/mule-util.el" (20229 34587))
+;;;;;; "mule-util" "international/mule-util.el" (20309 60936))
;;; Generated autoloads from international/mule-util.el
(autoload 'string-to-sequence "mule-util" "\
;;;### (autoloads (network-connection network-connection-to-service
;;;;;; whois-reverse-lookup whois finger ftp run-dig dns-lookup-host
;;;;;; nslookup nslookup-host ping traceroute route arp netstat
-;;;;;; iwconfig ifconfig) "net-utils" "net/net-utils.el" (20229
-;;;;;; 34587))
+;;;;;; iwconfig ifconfig) "net-utils" "net/net-utils.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from net/net-utils.el
(autoload 'ifconfig "net-utils" "\
;;;***
\f
-;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (20279
-;;;;;; 40897))
+;;;### (autoloads (netrc-credentials) "netrc" "net/netrc.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from net/netrc.el
(autoload 'netrc-credentials "netrc" "\
;;;***
\f
;;;### (autoloads (open-network-stream) "network-stream" "net/network-stream.el"
-;;;;;; (20236 7740))
+;;;;;; (20332 33075))
;;; Generated autoloads from net/network-stream.el
(autoload 'open-network-stream "network-stream" "\
;;;;;; uncomment-region comment-kill comment-set-column comment-indent
;;;;;; comment-indent-default comment-normalize-vars comment-multi-line
;;;;;; comment-padding comment-style comment-column) "newcomment"
-;;;;;; "newcomment.el" (20296 49978))
+;;;;;; "newcomment.el" (20332 33075))
;;; Generated autoloads from newcomment.el
(defalias 'indent-for-comment 'comment-indent)
;;;***
\f
;;;### (autoloads (newsticker-start newsticker-running-p) "newst-backend"
-;;;;;; "net/newst-backend.el" (20229 34587))
+;;;;;; "net/newst-backend.el" (20309 60936))
;;; Generated autoloads from net/newst-backend.el
(autoload 'newsticker-running-p "newst-backend" "\
;;;***
\f
;;;### (autoloads (newsticker-plainview) "newst-plainview" "net/newst-plainview.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/newst-plainview.el
(autoload 'newsticker-plainview "newst-plainview" "\
;;;***
\f
;;;### (autoloads (newsticker-show-news) "newst-reader" "net/newst-reader.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/newst-reader.el
(autoload 'newsticker-show-news "newst-reader" "\
;;;***
\f
;;;### (autoloads (newsticker-start-ticker newsticker-ticker-running-p)
-;;;;;; "newst-ticker" "net/newst-ticker.el" (20229 34587))
+;;;;;; "newst-ticker" "net/newst-ticker.el" (20309 60936))
;;; Generated autoloads from net/newst-ticker.el
(autoload 'newsticker-ticker-running-p "newst-ticker" "\
;;;***
\f
;;;### (autoloads (newsticker-treeview) "newst-treeview" "net/newst-treeview.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/newst-treeview.el
(autoload 'newsticker-treeview "newst-treeview" "\
;;;***
\f
;;;### (autoloads (nndiary-generate-nov-databases) "nndiary" "gnus/nndiary.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/nndiary.el
(autoload 'nndiary-generate-nov-databases "nndiary" "\
;;;***
\f
-;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (nndoc-add-type) "nndoc" "gnus/nndoc.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/nndoc.el
(autoload 'nndoc-add-type "nndoc" "\
;;;***
\f
;;;### (autoloads (nnfolder-generate-active-file) "nnfolder" "gnus/nnfolder.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/nnfolder.el
(autoload 'nnfolder-generate-active-file "nnfolder" "\
;;;***
\f
;;;### (autoloads (nnml-generate-nov-databases) "nnml" "gnus/nnml.el"
-;;;;;; (20280 61753))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/nnml.el
(autoload 'nnml-generate-nov-databases "nnml" "\
;;;***
\f
;;;### (autoloads (disable-command enable-command disabled-command-function)
-;;;;;; "novice" "novice.el" (20229 34587))
+;;;;;; "novice" "novice.el" (20309 60936))
;;; Generated autoloads from novice.el
(defvar disabled-command-function 'disabled-command-function "\
;;;***
\f
;;;### (autoloads (nroff-mode) "nroff-mode" "textmodes/nroff-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/nroff-mode.el
(autoload 'nroff-mode "nroff-mode" "\
;;;***
\f
;;;### (autoloads (nxml-glyph-display-string) "nxml-glyph" "nxml/nxml-glyph.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from nxml/nxml-glyph.el
(autoload 'nxml-glyph-display-string "nxml-glyph" "\
;;;***
\f
-;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (nxml-mode) "nxml-mode" "nxml/nxml-mode.el" (20317
+;;;;;; 29729))
;;; Generated autoloads from nxml/nxml-mode.el
(autoload 'nxml-mode "nxml-mode" "\
If `nxml-slash-auto-complete-flag' is non-nil, then inserting a `</'
automatically inserts the rest of the end-tag.
-\\[nxml-complete] performs completion on the symbol preceding point.
+\\[completion-at-point] performs completion on the symbol preceding point.
\\[nxml-dynamic-markup-word] uses the contents of the current buffer
to choose a tag to put around the word preceding point.
;;;***
\f
;;;### (autoloads (nxml-enable-unicode-char-name-sets) "nxml-uchnm"
-;;;;;; "nxml/nxml-uchnm.el" (20229 34587))
+;;;;;; "nxml/nxml-uchnm.el" (20309 60936))
;;; Generated autoloads from nxml/nxml-uchnm.el
(autoload 'nxml-enable-unicode-char-name-sets "nxml-uchnm" "\
\f
;;;### (autoloads (org-babel-mark-block org-babel-previous-src-block
;;;;;; org-babel-next-src-block org-babel-goto-named-result org-babel-goto-named-src-block
-;;;;;; org-babel-goto-src-block-head org-babel-sha1-hash org-babel-execute-subtree
-;;;;;; org-babel-execute-buffer org-babel-map-call-lines org-babel-map-inline-src-blocks
+;;;;;; org-babel-goto-src-block-head org-babel-hide-result-toggle-maybe
+;;;;;; org-babel-sha1-hash org-babel-execute-subtree org-babel-execute-buffer
+;;;;;; org-babel-map-executables org-babel-map-call-lines org-babel-map-inline-src-blocks
;;;;;; org-babel-map-src-blocks org-babel-open-src-block-result
;;;;;; org-babel-switch-to-session-with-code org-babel-switch-to-session
;;;;;; org-babel-initiate-session org-babel-load-in-session org-babel-insert-header-arg
;;;;;; org-babel-pop-to-session-maybe org-babel-load-in-session-maybe
;;;;;; org-babel-expand-src-block-maybe org-babel-view-src-block-info
;;;;;; org-babel-execute-maybe org-babel-execute-safely-maybe) "ob"
-;;;;;; "org/ob.el" (20230 13182))
+;;;;;; "org/ob.el" (20345 9613))
;;; Generated autoloads from org/ob.el
(autoload 'org-babel-execute-safely-maybe "ob" "\
(put 'org-babel-map-call-lines 'lisp-indent-function '1)
+(autoload 'org-babel-map-executables "ob" "\
+
+
+\(fn FILE &rest BODY)" nil (quote macro))
+
+(put 'org-babel-map-executables 'lisp-indent-function '1)
+
(autoload 'org-babel-execute-buffer "ob" "\
Execute source code blocks in a buffer.
Call `org-babel-execute-src-block' on every source block in
\(fn &optional INFO)" t nil)
+(autoload 'org-babel-hide-result-toggle-maybe "ob" "\
+Toggle visibility of result at point.
+
+\(fn)" t nil)
+
(autoload 'org-babel-goto-src-block-head "ob" "\
Go to the beginning of the current code block.
;;;***
\f
;;;### (autoloads (org-babel-describe-bindings) "ob-keys" "org/ob-keys.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/ob-keys.el
(autoload 'org-babel-describe-bindings "ob-keys" "\
;;;***
\f
;;;### (autoloads (org-babel-lob-get-info org-babel-lob-execute-maybe
-;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (20229 34587))
+;;;;;; org-babel-lob-ingest) "ob-lob" "org/ob-lob.el" (20345 9613))
;;; Generated autoloads from org/ob-lob.el
(autoload 'org-babel-lob-ingest "ob-lob" "\
\f
;;;### (autoloads (org-babel-tangle org-babel-tangle-file org-babel-load-file
;;;;;; org-babel-tangle-lang-exts) "ob-tangle" "org/ob-tangle.el"
-;;;;;; (20229 34587))
+;;;;;; (20344 35712))
;;; Generated autoloads from org/ob-tangle.el
(defvar org-babel-tangle-lang-exts '(("emacs-lisp" . "el")) "\
;;;***
\f
;;;### (autoloads (inferior-octave) "octave-inf" "progmodes/octave-inf.el"
-;;;;;; (20291 32066))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/octave-inf.el
(autoload 'inferior-octave "octave-inf" "\
;;;***
\f
;;;### (autoloads (octave-mode) "octave-mod" "progmodes/octave-mod.el"
-;;;;;; (20291 32066))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/octave-mod.el
(autoload 'octave-mode "octave-mod" "\
;;;;;; org-map-entries org-open-link-from-string org-open-at-point-global
;;;;;; org-insert-link-global org-store-link org-run-like-in-org-mode
;;;;;; turn-on-orgstruct++ turn-on-orgstruct orgstruct-mode org-global-cycle
-;;;;;; org-mode org-babel-do-load-languages) "org" "org/org.el"
-;;;;;; (20236 7740))
+;;;;;; org-mode org-version org-babel-do-load-languages) "org" "org/org.el"
+;;;;;; (20345 9613))
;;; Generated autoloads from org/org.el
(autoload 'org-babel-do-load-languages "org" "\
\(fn SYM VALUE)" nil nil)
+(autoload 'org-version "org" "\
+Show the org-mode version in the echo area.
+With prefix arg HERE, insert it at point.
+
+\(fn &optional HERE)" t nil)
+
(autoload 'org-mode "org" "\
Outline-based notes management and organizer, alias
\"Carsten's outline-mode for keeping track of everything.\"
;;;;;; org-diary org-agenda-list-stuck-projects org-tags-view org-todo-list
;;;;;; org-search-view org-agenda-list org-batch-store-agenda-views
;;;;;; org-store-agenda-views org-batch-agenda-csv org-batch-agenda
-;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (20236 7740))
+;;;;;; org-agenda) "org-agenda" "org/org-agenda.el" (20344 35712))
;;; Generated autoloads from org/org-agenda.el
(autoload 'org-agenda "org-agenda" "\
\f
;;;### (autoloads (org-archive-subtree-default-with-confirmation
;;;;;; org-archive-subtree-default) "org-archive" "org/org-archive.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-archive.el
(autoload 'org-archive-subtree-default "org-archive" "\
;;;### (autoloads (org-export-as-ascii org-export-region-as-ascii
;;;;;; org-replace-region-by-ascii org-export-as-ascii-to-buffer
;;;;;; org-export-as-utf8-to-buffer org-export-as-utf8 org-export-as-latin1-to-buffer
-;;;;;; org-export-as-latin1) "org-ascii" "org/org-ascii.el" (20229
-;;;;;; 34587))
+;;;;;; org-export-as-latin1) "org-ascii" "org/org-ascii.el" (20345
+;;;;;; 9613))
;;; Generated autoloads from org/org-ascii.el
(autoload 'org-export-as-latin1 "org-ascii" "\
;;;***
\f
-;;;### (autoloads (org-attach) "org-attach" "org/org-attach.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (org-attach) "org-attach" "org/org-attach.el" (20345
+;;;;;; 9613))
;;; Generated autoloads from org/org-attach.el
(autoload 'org-attach "org-attach" "\
;;;***
\f
;;;### (autoloads (org-bbdb-anniversaries) "org-bbdb" "org/org-bbdb.el"
-;;;;;; (20230 13182))
+;;;;;; (20345 9613))
;;; Generated autoloads from org/org-bbdb.el
(autoload 'org-bbdb-anniversaries "org-bbdb" "\
;;;***
\f
;;;### (autoloads (org-capture-import-remember-templates org-capture-insert-template-here
-;;;;;; org-capture) "org-capture" "org/org-capture.el" (20236 7740))
+;;;;;; org-capture) "org-capture" "org/org-capture.el" (20345 9613))
;;; Generated autoloads from org/org-capture.el
(autoload 'org-capture "org-capture" "\
;;;***
\f
;;;### (autoloads (org-clock-persistence-insinuate org-get-clocktable)
-;;;;;; "org-clock" "org/org-clock.el" (20236 7740))
+;;;;;; "org-clock" "org/org-clock.el" (20345 9613))
;;; Generated autoloads from org/org-clock.el
(autoload 'org-get-clocktable "org-clock" "\
;;;***
\f
;;;### (autoloads (org-datetree-find-date-create) "org-datetree"
-;;;;;; "org/org-datetree.el" (20229 34587))
+;;;;;; "org/org-datetree.el" (20345 9613))
;;; Generated autoloads from org/org-datetree.el
(autoload 'org-datetree-find-date-create "org-datetree" "\
;;;### (autoloads (org-export-as-docbook org-export-as-docbook-pdf-and-open
;;;;;; org-export-as-docbook-pdf org-export-region-as-docbook org-replace-region-by-docbook
;;;;;; org-export-as-docbook-to-buffer org-export-as-docbook-batch)
-;;;;;; "org-docbook" "org/org-docbook.el" (20229 34587))
+;;;;;; "org-docbook" "org/org-docbook.el" (20345 9613))
;;; Generated autoloads from org/org-docbook.el
(autoload 'org-export-as-docbook-batch "org-docbook" "\
\f
;;;### (autoloads (org-insert-export-options-template org-export-as-org
;;;;;; org-export-visible org-export) "org-exp" "org/org-exp.el"
-;;;;;; (20236 7740))
+;;;;;; (20344 35712))
;;; Generated autoloads from org/org-exp.el
(autoload 'org-export "org-exp" "\
;;;***
\f
;;;### (autoloads (org-feed-show-raw-feed org-feed-goto-inbox org-feed-update
-;;;;;; org-feed-update-all) "org-feed" "org/org-feed.el" (20229
-;;;;;; 34587))
+;;;;;; org-feed-update-all) "org-feed" "org/org-feed.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from org/org-feed.el
(autoload 'org-feed-update-all "org-feed" "\
;;;***
\f
;;;### (autoloads (org-footnote-normalize org-footnote-action) "org-footnote"
-;;;;;; "org/org-footnote.el" (20282 42537))
+;;;;;; "org/org-footnote.el" (20344 35712))
;;; Generated autoloads from org/org-footnote.el
(autoload 'org-footnote-action "org-footnote" "\
;;;### (autoloads (org-freemind-to-org-mode org-freemind-from-org-sparse-tree
;;;;;; org-freemind-from-org-mode org-freemind-from-org-mode-node
;;;;;; org-freemind-show org-export-as-freemind) "org-freemind"
-;;;;;; "org/org-freemind.el" (20229 34587))
+;;;;;; "org/org-freemind.el" (20309 60936))
;;; Generated autoloads from org/org-freemind.el
(autoload 'org-export-as-freemind "org-freemind" "\
;;;### (autoloads (org-export-htmlize-generate-css org-export-as-html
;;;;;; org-export-region-as-html org-replace-region-by-html org-export-as-html-to-buffer
;;;;;; org-export-as-html-batch org-export-as-html-and-open) "org-html"
-;;;;;; "org/org-html.el" (20229 34587))
+;;;;;; "org/org-html.el" (20344 35712))
;;; Generated autoloads from org/org-html.el
(put 'org-export-html-style-include-default 'safe-local-variable 'booleanp)
\f
;;;### (autoloads (org-export-icalendar-combine-agenda-files org-export-icalendar-all-agenda-files
;;;;;; org-export-icalendar-this-file) "org-icalendar" "org/org-icalendar.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-icalendar.el
(autoload 'org-export-icalendar-this-file "org-icalendar" "\
;;;### (autoloads (org-id-store-link org-id-find-id-file org-id-find
;;;;;; org-id-goto org-id-get-with-outline-drilling org-id-get-with-outline-path-completion
;;;;;; org-id-get org-id-copy org-id-get-create) "org-id" "org/org-id.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-id.el
(autoload 'org-id-get-create "org-id" "\
;;;***
\f
;;;### (autoloads (org-indent-mode) "org-indent" "org/org-indent.el"
-;;;;;; (20229 34587))
+;;;;;; (20344 35712))
;;; Generated autoloads from org/org-indent.el
(autoload 'org-indent-mode "org-indent" "\
;;;***
\f
;;;### (autoloads (org-irc-store-link) "org-irc" "org/org-irc.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-irc.el
(autoload 'org-irc-store-link "org-irc" "\
;;;### (autoloads (org-export-as-pdf-and-open org-export-as-pdf org-export-as-latex
;;;;;; org-export-region-as-latex org-replace-region-by-latex org-export-as-latex-to-buffer
;;;;;; org-export-as-latex-batch) "org-latex" "org/org-latex.el"
-;;;;;; (20229 34587))
+;;;;;; (20344 35712))
;;; Generated autoloads from org/org-latex.el
(autoload 'org-export-as-latex-batch "org-latex" "\
\f
;;;### (autoloads (org-lparse-region org-replace-region-by org-lparse-to-buffer
;;;;;; org-lparse-batch org-lparse-and-open) "org-lparse" "org/org-lparse.el"
-;;;;;; (20236 7740))
+;;;;;; (20344 35712))
;;; Generated autoloads from org/org-lparse.el
(autoload 'org-lparse-and-open "org-lparse" "\
;;;***
\f
;;;### (autoloads (org-mobile-create-sumo-agenda org-mobile-pull
-;;;;;; org-mobile-push) "org-mobile" "org/org-mobile.el" (20230
-;;;;;; 13182))
+;;;;;; org-mobile-push) "org-mobile" "org/org-mobile.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from org/org-mobile.el
(autoload 'org-mobile-push "org-mobile" "\
;;;***
\f
;;;### (autoloads (org-export-as-odf-and-open org-export-as-odf org-export-odt-convert
-;;;;;; org-export-as-odt org-export-region-as-odt org-replace-region-by-odt
-;;;;;; org-export-as-odt-to-buffer org-export-as-odt-batch org-export-as-odt-and-open)
-;;;;;; "org-odt" "org/org-odt.el" (20236 7740))
+;;;;;; org-export-as-odt org-export-as-odt-batch org-export-as-odt-and-open)
+;;;;;; "org-odt" "org/org-odt.el" (20344 35712))
;;; Generated autoloads from org/org-odt.el
(autoload 'org-export-as-odt-and-open "org-odt" "\
\(fn)" nil nil)
-(autoload 'org-export-as-odt-to-buffer "org-odt" "\
-Call `org-lparse-odt` with output to a temporary buffer.
-No file is created. The prefix ARG is passed through to `org-lparse-to-buffer'.
-
-\(fn ARG)" t nil)
-
-(autoload 'org-replace-region-by-odt "org-odt" "\
-Assume the current region has org-mode syntax, and convert it to ODT.
-This can be used in any buffer. For example, you could write an
-itemized list in org-mode syntax in an ODT buffer and then use this
-command to convert it.
-
-\(fn BEG END)" t nil)
-
-(autoload 'org-export-region-as-odt "org-odt" "\
-Convert region from BEG to END in org-mode buffer to ODT.
-If prefix arg BODY-ONLY is set, omit file header, footer, and table of
-contents, and only produce the region of converted text, useful for
-cut-and-paste operations.
-If BUFFER is a buffer or a string, use/create that buffer as a target
-of the converted ODT. If BUFFER is the symbol `string', return the
-produced ODT as a string and leave not buffer behind. For example,
-a Lisp program could call this function in the following way:
-
- (setq odt (org-export-region-as-odt beg end t 'string))
-
-When called interactively, the output buffer is selected, and shown
-in a window. A non-interactive call will only return the buffer.
-
-\(fn BEG END &optional BODY-ONLY BUFFER)" t nil)
-
(autoload 'org-export-as-odt "org-odt" "\
Export the outline as a OpenDocumentText file.
If there is an active region, export only the region. The prefix
;;;***
\f
;;;### (autoloads (org-plot/gnuplot) "org-plot" "org/org-plot.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-plot.el
(autoload 'org-plot/gnuplot "org-plot" "\
\f
;;;### (autoloads (org-publish-current-project org-publish-current-file
;;;;;; org-publish-all org-publish) "org-publish" "org/org-publish.el"
-;;;;;; (20236 7740))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-publish.el
(defalias 'org-publish-project 'org-publish)
\f
;;;### (autoloads (org-remember-handler org-remember org-remember-apply-template
;;;;;; org-remember-annotation org-remember-insinuate) "org-remember"
-;;;;;; "org/org-remember.el" (20229 34587))
+;;;;;; "org/org-remember.el" (20309 60936))
;;; Generated autoloads from org/org-remember.el
(autoload 'org-remember-insinuate "org-remember" "\
;;;***
\f
;;;### (autoloads (org-table-to-lisp orgtbl-mode turn-on-orgtbl)
-;;;;;; "org-table" "org/org-table.el" (20236 7740))
+;;;;;; "org-table" "org/org-table.el" (20345 9613))
;;; Generated autoloads from org/org-table.el
(autoload 'turn-on-orgtbl "org-table" "\
;;;***
\f
;;;### (autoloads (org-export-as-taskjuggler-and-open org-export-as-taskjuggler)
-;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20236 7740))
+;;;;;; "org-taskjuggler" "org/org-taskjuggler.el" (20309 60936))
;;; Generated autoloads from org/org-taskjuggler.el
(autoload 'org-export-as-taskjuggler "org-taskjuggler" "\
\f
;;;### (autoloads (org-timer-set-timer org-timer-item org-timer-change-times-in-region
;;;;;; org-timer org-timer-start) "org-timer" "org/org-timer.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from org/org-timer.el
(autoload 'org-timer-start "org-timer" "\
;;;***
\f
;;;### (autoloads (org-export-as-xoxo) "org-xoxo" "org/org-xoxo.el"
-;;;;;; (20229 34587))
+;;;;;; (20345 9613))
;;; Generated autoloads from org/org-xoxo.el
(autoload 'org-export-as-xoxo "org-xoxo" "\
;;;***
\f
;;;### (autoloads (outline-minor-mode outline-mode) "outline" "outline.el"
-;;;;;; (20229 34587))
+;;;;;; (20330 53092))
;;; Generated autoloads from outline.el
(put 'outline-regexp 'safe-local-variable 'stringp)
(put 'outline-heading-end-regexp 'safe-local-variable 'stringp)
;;;### (autoloads (list-packages describe-package package-initialize
;;;;;; package-refresh-contents package-install-file package-install-from-buffer
;;;;;; package-install package-enable-at-startup) "package" "emacs-lisp/package.el"
-;;;;;; (20299 26170))
+;;;;;; (20317 26260))
;;; Generated autoloads from emacs-lisp/package.el
(defvar package-enable-at-startup t "\
;;;***
\f
-;;;### (autoloads (show-paren-mode) "paren" "paren.el" (20229 34587))
+;;;### (autoloads (show-paren-mode) "paren" "paren.el" (20309 60936))
;;; Generated autoloads from paren.el
(defvar show-paren-mode nil "\
;;;***
\f
;;;### (autoloads (parse-time-string) "parse-time" "calendar/parse-time.el"
-;;;;;; (20296 49978))
+;;;;;; (20309 60936))
;;; Generated autoloads from calendar/parse-time.el
(put 'parse-time-rules 'risky-local-variable t)
;;;***
\f
-;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20273
-;;;;;; 55692))
+;;;### (autoloads (pascal-mode) "pascal" "progmodes/pascal.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/pascal.el
(autoload 'pascal-mode "pascal" "\
;;;***
\f
;;;### (autoloads (password-in-cache-p password-cache-expiry password-cache)
-;;;;;; "password-cache" "password-cache.el" (20229 34587))
+;;;;;; "password-cache" "password-cache.el" (20309 60936))
;;; Generated autoloads from password-cache.el
(defvar password-cache t "\
;;;***
\f
;;;### (autoloads (pcase-let pcase-let* pcase) "pcase" "emacs-lisp/pcase.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/pcase.el
(autoload 'pcase "pcase" "\
;;;***
\f
-;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (pcomplete/cvs) "pcmpl-cvs" "pcmpl-cvs.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from pcmpl-cvs.el
(autoload 'pcomplete/cvs "pcmpl-cvs" "\
;;;***
\f
;;;### (autoloads (pcomplete/tar pcomplete/make pcomplete/bzip2 pcomplete/gzip)
-;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20254 62253))
+;;;;;; "pcmpl-gnu" "pcmpl-gnu.el" (20309 60936))
;;; Generated autoloads from pcmpl-gnu.el
(autoload 'pcomplete/gzip "pcmpl-gnu" "\
;;;***
\f
;;;### (autoloads (pcomplete/mount pcomplete/umount pcomplete/kill)
-;;;;;; "pcmpl-linux" "pcmpl-linux.el" (20229 34587))
+;;;;;; "pcmpl-linux" "pcmpl-linux.el" (20309 60936))
;;; Generated autoloads from pcmpl-linux.el
(autoload 'pcomplete/kill "pcmpl-linux" "\
;;;***
\f
-;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (pcomplete/rpm) "pcmpl-rpm" "pcmpl-rpm.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from pcmpl-rpm.el
(autoload 'pcomplete/rpm "pcmpl-rpm" "\
\f
;;;### (autoloads (pcomplete/scp pcomplete/ssh pcomplete/chgrp pcomplete/chown
;;;;;; pcomplete/which pcomplete/xargs pcomplete/rm pcomplete/rmdir
-;;;;;; pcomplete/cd) "pcmpl-unix" "pcmpl-unix.el" (20259 55615))
+;;;;;; pcomplete/cd) "pcmpl-unix" "pcmpl-unix.el" (20309 60936))
;;; Generated autoloads from pcmpl-unix.el
(autoload 'pcomplete/cd "pcmpl-unix" "\
\f
;;;### (autoloads (pcomplete-shell-setup pcomplete-comint-setup pcomplete-list
;;;;;; pcomplete-help pcomplete-expand pcomplete-continue pcomplete-expand-and-complete
-;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20229
-;;;;;; 34587))
+;;;;;; pcomplete-reverse pcomplete) "pcomplete" "pcomplete.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from pcomplete.el
(autoload 'pcomplete "pcomplete" "\
\f
;;;### (autoloads (cvs-dired-use-hook cvs-dired-action cvs-status
;;;;;; cvs-update cvs-examine cvs-quickdir cvs-checkout) "pcvs"
-;;;;;; "vc/pcvs.el" (20253 16827))
+;;;;;; "vc/pcvs.el" (20309 60936))
;;; Generated autoloads from vc/pcvs.el
(autoload 'cvs-checkout "pcvs" "\
;;;***
\f
-;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (20229 34587))
+;;;### (autoloads nil "pcvs-defs" "vc/pcvs-defs.el" (20309 60936))
;;; Generated autoloads from vc/pcvs-defs.el
(defvar cvs-global-menu (let ((m (make-sparse-keymap "PCL-CVS"))) (define-key m [status] `(menu-item ,(purecopy "Directory Status") cvs-status :help ,(purecopy "A more verbose status of a workarea"))) (define-key m [checkout] `(menu-item ,(purecopy "Checkout Module") cvs-checkout :help ,(purecopy "Check out a module from the repository"))) (define-key m [update] `(menu-item ,(purecopy "Update Directory") cvs-update :help ,(purecopy "Fetch updates from the repository"))) (define-key m [examine] `(menu-item ,(purecopy "Examine Directory") cvs-examine :help ,(purecopy "Examine the current state of a workarea"))) (fset 'cvs-global-menu m)) "\
;;;***
\f
;;;### (autoloads (perl-mode) "perl-mode" "progmodes/perl-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20341 24416))
;;; Generated autoloads from progmodes/perl-mode.el
(put 'perl-indent-level 'safe-local-variable 'integerp)
(put 'perl-continued-statement-offset 'safe-local-variable 'integerp)
;;;***
\f
;;;### (autoloads (picture-mode) "picture" "textmodes/picture.el"
-;;;;;; (20291 63109))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/picture.el
(autoload 'picture-mode "picture" "\
;;;***
\f
-;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (plstore-open) "plstore" "gnus/plstore.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/plstore.el
(autoload 'plstore-open "plstore" "\
;;;***
\f
;;;### (autoloads (po-find-file-coding-system) "po" "textmodes/po.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/po.el
(autoload 'po-find-file-coding-system "po" "\
;;;***
\f
-;;;### (autoloads (pong) "pong" "play/pong.el" (20229 34587))
+;;;### (autoloads (pong) "pong" "play/pong.el" (20309 60936))
;;; Generated autoloads from play/pong.el
(autoload 'pong "pong" "\
;;;***
\f
-;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (20229 34587))
+;;;### (autoloads (pop3-movemail) "pop3" "gnus/pop3.el" (20309 60936))
;;; Generated autoloads from gnus/pop3.el
(autoload 'pop3-movemail "pop3" "\
\f
;;;### (autoloads (pp-macroexpand-last-sexp pp-eval-last-sexp pp-macroexpand-expression
;;;;;; pp-eval-expression pp pp-buffer pp-to-string) "pp" "emacs-lisp/pp.el"
-;;;;;; (20270 25925))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/pp.el
(autoload 'pp-to-string "pp" "\
;;;;;; pr-ps-buffer-print pr-ps-buffer-using-ghostscript pr-ps-buffer-preview
;;;;;; pr-ps-directory-ps-print pr-ps-directory-print pr-ps-directory-using-ghostscript
;;;;;; pr-ps-directory-preview pr-interface) "printing" "printing.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from printing.el
(autoload 'pr-interface "printing" "\
;;;***
\f
-;;;### (autoloads (proced) "proced" "proced.el" (20229 34587))
+;;;### (autoloads (proced) "proced" "proced.el" (20309 60936))
;;; Generated autoloads from proced.el
(autoload 'proced "proced" "\
;;;***
\f
;;;### (autoloads (run-prolog mercury-mode prolog-mode) "prolog"
-;;;;;; "progmodes/prolog.el" (20293 40451))
+;;;;;; "progmodes/prolog.el" (20309 60936))
;;; Generated autoloads from progmodes/prolog.el
(autoload 'prolog-mode "prolog" "\
;;;***
\f
-;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (bdf-directory-list) "ps-bdf" "ps-bdf.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from ps-bdf.el
(defvar bdf-directory-list (if (memq system-type '(ms-dos windows-nt)) (list (expand-file-name "fonts/bdf" installation-directory)) '("/usr/local/share/emacs/fonts/bdf")) "\
;;;***
\f
-;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (ps-mode) "ps-mode" "progmodes/ps-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/ps-mode.el
(autoload 'ps-mode "ps-mode" "\
;;;;;; ps-spool-region ps-spool-buffer-with-faces ps-spool-buffer
;;;;;; ps-print-region-with-faces ps-print-region ps-print-buffer-with-faces
;;;;;; ps-print-buffer ps-print-customize ps-print-color-p ps-paper-type
-;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (20229
-;;;;;; 36386))
+;;;;;; ps-page-dimensions-database) "ps-print" "ps-print.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from ps-print.el
(defvar ps-page-dimensions-database (purecopy (list (list 'a4 (/ (* 72 21.0) 2.54) (/ (* 72 29.7) 2.54) "A4") (list 'a3 (/ (* 72 29.7) 2.54) (/ (* 72 42.0) 2.54) "A3") (list 'letter (* 72 8.5) (* 72 11.0) "Letter") (list 'legal (* 72 8.5) (* 72 14.0) "Legal") (list 'letter-small (* 72 7.68) (* 72 10.16) "LetterSmall") (list 'tabloid (* 72 11.0) (* 72 17.0) "Tabloid") (list 'ledger (* 72 17.0) (* 72 11.0) "Ledger") (list 'statement (* 72 5.5) (* 72 8.5) "Statement") (list 'executive (* 72 7.5) (* 72 10.0) "Executive") (list 'a4small (* 72 7.47) (* 72 10.85) "A4Small") (list 'b4 (* 72 10.125) (* 72 14.33) "B4") (list 'b5 (* 72 7.16) (* 72 10.125) "B5") '(addresslarge 236.0 99.0 "AddressLarge") '(addresssmall 236.0 68.0 "AddressSmall") '(cuthanging13 90.0 222.0 "CutHanging13") '(cuthanging15 90.0 114.0 "CutHanging15") '(diskette 181.0 136.0 "Diskette") '(eurofilefolder 139.0 112.0 "EuropeanFilefolder") '(eurofoldernarrow 526.0 107.0 "EuroFolderNarrow") '(eurofolderwide 526.0 136.0 "EuroFolderWide") '(euronamebadge 189.0 108.0 "EuroNameBadge") '(euronamebadgelarge 223.0 136.0 "EuroNameBadgeLarge") '(filefolder 230.0 37.0 "FileFolder") '(jewelry 76.0 136.0 "Jewelry") '(mediabadge 180.0 136.0 "MediaBadge") '(multipurpose 126.0 68.0 "MultiPurpose") '(retaillabel 90.0 104.0 "RetailLabel") '(shipping 271.0 136.0 "Shipping") '(slide35mm 26.0 104.0 "Slide35mm") '(spine8mm 187.0 26.0 "Spine8mm") '(topcoated 425.19685 136.0 "TopCoatedPaper") '(topcoatedpaper 396.0 136.0 "TopcoatedPaper150") '(vhsface 205.0 127.0 "VHSFace") '(vhsspine 400.0 50.0 "VHSSpine") '(zipdisk 156.0 136.0 "ZipDisk"))) "\
;;;***
\f
;;;### (autoloads (jython-mode python-mode python-after-info-look
-;;;;;; run-python) "python" "progmodes/python.el" (20278 20028))
+;;;;;; run-python) "python" "progmodes/python.el" (20309 60936))
;;; Generated autoloads from progmodes/python.el
(add-to-list 'interpreter-mode-alist (cons (purecopy "jython") 'jython-mode))
;;;***
\f
;;;### (autoloads (quoted-printable-decode-region) "qp" "gnus/qp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/qp.el
(autoload 'quoted-printable-decode-region "qp" "\
;;;;;; quail-defrule quail-install-decode-map quail-install-map
;;;;;; quail-define-rules quail-show-keyboard-layout quail-set-keyboard-layout
;;;;;; quail-define-package quail-use-package quail-title) "quail"
-;;;;;; "international/quail.el" (20229 34587))
+;;;;;; "international/quail.el" (20330 53092))
;;; Generated autoloads from international/quail.el
(autoload 'quail-title "quail" "\
\f
;;;### (autoloads (quickurl-list quickurl-list-mode quickurl-edit-urls
;;;;;; quickurl-browse-url-ask quickurl-browse-url quickurl-add-url
-;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20229
-;;;;;; 34587))
+;;;;;; quickurl-ask quickurl) "quickurl" "net/quickurl.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from net/quickurl.el
(defconst quickurl-reread-hook-postfix "\n;; Local Variables:\n;; eval: (progn (require 'quickurl) (add-hook 'local-write-file-hooks (lambda () (quickurl-read) nil)))\n;; End:\n" "\
;;;***
\f
;;;### (autoloads (rcirc-track-minor-mode rcirc-connect rcirc) "rcirc"
-;;;;;; "net/rcirc.el" (20280 61753))
+;;;;;; "net/rcirc.el" (20325 32214))
;;; Generated autoloads from net/rcirc.el
(autoload 'rcirc "rcirc" "\
;;;***
\f
-;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (20290
-;;;;;; 11197))
+;;;### (autoloads (remote-compile) "rcompile" "net/rcompile.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from net/rcompile.el
(autoload 'remote-compile "rcompile" "\
;;;***
\f
;;;### (autoloads (re-builder) "re-builder" "emacs-lisp/re-builder.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/re-builder.el
(defalias 'regexp-builder 're-builder)
;;;***
\f
-;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20229 34587))
+;;;### (autoloads (recentf-mode) "recentf" "recentf.el" (20309 60936))
;;; Generated autoloads from recentf.el
(defvar recentf-mode nil "\
;;;;;; string-rectangle delete-whitespace-rectangle open-rectangle
;;;;;; insert-rectangle yank-rectangle kill-rectangle extract-rectangle
;;;;;; delete-extract-rectangle delete-rectangle) "rect" "rect.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from rect.el
(define-key ctl-x-r-map "c" 'clear-rectangle)
(define-key ctl-x-r-map "k" 'kill-rectangle)
;;;***
\f
-;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (refill-mode) "refill" "textmodes/refill.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from textmodes/refill.el
(autoload 'refill-mode "refill" "\
;;;***
\f
;;;### (autoloads (reftex-reset-scanning-information reftex-mode
-;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20229 34587))
+;;;;;; turn-on-reftex) "reftex" "textmodes/reftex.el" (20309 60936))
;;; Generated autoloads from textmodes/reftex.el
(autoload 'turn-on-reftex "reftex" "\
;;;***
\f
;;;### (autoloads (reftex-citation) "reftex-cite" "textmodes/reftex-cite.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/reftex-cite.el
(autoload 'reftex-citation "reftex-cite" "\
;;;***
\f
;;;### (autoloads (reftex-isearch-minor-mode) "reftex-global" "textmodes/reftex-global.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/reftex-global.el
(autoload 'reftex-isearch-minor-mode "reftex-global" "\
;;;***
\f
;;;### (autoloads (reftex-index-phrases-mode) "reftex-index" "textmodes/reftex-index.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/reftex-index.el
(autoload 'reftex-index-phrases-mode "reftex-index" "\
;;;***
\f
;;;### (autoloads (reftex-all-document-files) "reftex-parse" "textmodes/reftex-parse.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/reftex-parse.el
(autoload 'reftex-all-document-files "reftex-parse" "\
;;;***
\f
-;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20229
-;;;;;; 34587))
+;;;### (autoloads nil "reftex-vars" "textmodes/reftex-vars.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from textmodes/reftex-vars.el
(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
;;;***
\f
;;;### (autoloads (regexp-opt-depth regexp-opt) "regexp-opt" "emacs-lisp/regexp-opt.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/regexp-opt.el
(autoload 'regexp-opt "regexp-opt" "\
\f
;;;### (autoloads (remember-diary-extract-entries remember-clipboard
;;;;;; remember-other-frame remember) "remember" "textmodes/remember.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/remember.el
(autoload 'remember "remember" "\
;;;***
\f
-;;;### (autoloads (repeat) "repeat" "repeat.el" (20229 34587))
+;;;### (autoloads (repeat) "repeat" "repeat.el" (20309 60936))
;;; Generated autoloads from repeat.el
(autoload 'repeat "repeat" "\
;;;***
\f
;;;### (autoloads (reporter-submit-bug-report) "reporter" "mail/reporter.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/reporter.el
(autoload 'reporter-submit-bug-report "reporter" "\
;;;***
\f
;;;### (autoloads (reposition-window) "reposition" "reposition.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from reposition.el
(autoload 'reposition-window "reposition" "\
;;;***
\f
;;;### (autoloads (global-reveal-mode reveal-mode) "reveal" "reveal.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from reveal.el
(autoload 'reveal-mode "reveal" "\
;;;***
\f
;;;### (autoloads (make-ring ring-p) "ring" "emacs-lisp/ring.el"
-;;;;;; (20229 34587))
+;;;;;; (20321 41303))
;;; Generated autoloads from emacs-lisp/ring.el
(autoload 'ring-p "ring" "\
;;;***
\f
-;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (20229 34587))
+;;;### (autoloads (rlogin) "rlogin" "net/rlogin.el" (20309 60936))
;;; Generated autoloads from net/rlogin.el
(autoload 'rlogin "rlogin" "\
;;;;;; rmail-secondary-file-directory rmail-primary-inbox-list rmail-highlighted-headers
;;;;;; rmail-retry-ignored-headers rmail-displayed-headers rmail-ignored-headers
;;;;;; rmail-user-mail-address-regexp rmail-movemail-variant-p)
-;;;;;; "rmail" "mail/rmail.el" (20288 55881))
+;;;;;; "rmail" "mail/rmail.el" (20315 8755))
;;; Generated autoloads from mail/rmail.el
(autoload 'rmail-movemail-variant-p "rmail" "\
;;;***
\f
;;;### (autoloads (rmail-output-body-to-file rmail-output-as-seen
-;;;;;; rmail-output) "rmailout" "mail/rmailout.el" (20229 34587))
+;;;;;; rmail-output) "rmailout" "mail/rmailout.el" (20309 60936))
;;; Generated autoloads from mail/rmailout.el
(put 'rmail-output-file-alist 'risky-local-variable t)
;;;***
\f
;;;### (autoloads (rng-c-load-schema) "rng-cmpct" "nxml/rng-cmpct.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from nxml/rng-cmpct.el
(autoload 'rng-c-load-schema "rng-cmpct" "\
;;;***
\f
;;;### (autoloads (rng-nxml-mode-init) "rng-nxml" "nxml/rng-nxml.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from nxml/rng-nxml.el
(autoload 'rng-nxml-mode-init "rng-nxml" "\
;;;***
\f
;;;### (autoloads (rng-validate-mode) "rng-valid" "nxml/rng-valid.el"
-;;;;;; (20277 28925))
+;;;;;; (20309 60936))
;;; Generated autoloads from nxml/rng-valid.el
(autoload 'rng-validate-mode "rng-valid" "\
;;;***
\f
-;;;### (autoloads (rng-xsd-compile) "rng-xsd" "nxml/rng-xsd.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (rng-xsd-compile) "rng-xsd" "nxml/rng-xsd.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from nxml/rng-xsd.el
(put 'http://www\.w3\.org/2001/XMLSchema-datatypes 'rng-dt-compile 'rng-xsd-compile)
;;;***
\f
;;;### (autoloads (robin-use-package robin-modify-package robin-define-package)
-;;;;;; "robin" "international/robin.el" (20209 49217))
+;;;;;; "robin" "international/robin.el" (20309 60936))
;;; Generated autoloads from international/robin.el
(autoload 'robin-define-package "robin" "\
;;;***
\f
;;;### (autoloads (toggle-rot13-mode rot13-other-window rot13-region
-;;;;;; rot13-string rot13) "rot13" "rot13.el" (20229 34587))
+;;;;;; rot13-string rot13) "rot13" "rot13.el" (20309 60936))
;;; Generated autoloads from rot13.el
(autoload 'rot13 "rot13" "\
;;;***
\f
;;;### (autoloads (rst-minor-mode rst-mode) "rst" "textmodes/rst.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/rst.el
(add-to-list 'auto-mode-alist (purecopy '("\\.re?st\\'" . rst-mode)))
;;;***
\f
;;;### (autoloads (ruby-mode) "ruby-mode" "progmodes/ruby-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20330 53092))
;;; Generated autoloads from progmodes/ruby-mode.el
(autoload 'ruby-mode "ruby-mode" "\
;;;***
\f
-;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (ruler-mode) "ruler-mode" "ruler-mode.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from ruler-mode.el
(defvar ruler-mode nil "\
;;;***
\f
-;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (rx rx-to-string) "rx" "emacs-lisp/rx.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/rx.el
(autoload 'rx-to-string "rx" "\
;;;***
\f
-;;;### (autoloads (savehist-mode) "savehist" "savehist.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (savehist-mode) "savehist" "savehist.el" (20314
+;;;;;; 46279))
;;; Generated autoloads from savehist.el
(defvar savehist-mode nil "\
;;;***
\f
;;;### (autoloads (dsssl-mode scheme-mode) "scheme" "progmodes/scheme.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/scheme.el
(autoload 'scheme-mode "scheme" "\
;;;***
\f
;;;### (autoloads (gnus-score-mode) "score-mode" "gnus/score-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/score-mode.el
(autoload 'gnus-score-mode "score-mode" "\
;;;***
\f
;;;### (autoloads (scroll-all-mode) "scroll-all" "scroll-all.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from scroll-all.el
(defvar scroll-all-mode nil "\
;;;***
\f
;;;### (autoloads (scroll-lock-mode) "scroll-lock" "scroll-lock.el"
-;;;;;; (20273 55692))
+;;;;;; (20309 60936))
;;; Generated autoloads from scroll-lock.el
(autoload 'scroll-lock-mode "scroll-lock" "\
;;;***
\f
-;;;### (autoloads nil "secrets" "net/secrets.el" (20300 47034))
+;;;### (autoloads nil "secrets" "net/secrets.el" (20309 60936))
;;; Generated autoloads from net/secrets.el
(when (featurep 'dbusbind)
(autoload 'secrets-show-secrets "secrets" nil t))
;;;***
\f
;;;### (autoloads (semantic-mode semantic-default-submodes) "semantic"
-;;;;;; "cedet/semantic.el" (20300 47034))
+;;;;;; "cedet/semantic.el" (20309 60936))
;;; Generated autoloads from cedet/semantic.el
(defvar semantic-default-submodes '(global-semantic-idle-scheduler-mode global-semanticdb-minor-mode) "\
;;;;;; mail-personal-alias-file mail-default-reply-to mail-archive-file-name
;;;;;; mail-header-separator send-mail-function mail-interactive
;;;;;; mail-self-blind mail-specify-envelope-from mail-from-style)
-;;;;;; "sendmail" "mail/sendmail.el" (20277 28925))
+;;;;;; "sendmail" "mail/sendmail.el" (20320 14810))
;;; Generated autoloads from mail/sendmail.el
(defvar mail-from-style 'default "\
;;;***
\f
;;;### (autoloads (server-save-buffers-kill-terminal server-mode
-;;;;;; server-force-delete server-start) "server" "server.el" (20275
-;;;;;; 12606))
+;;;;;; server-force-delete server-start) "server" "server.el" (20341
+;;;;;; 60214))
;;; Generated autoloads from server.el
(put 'server-host 'risky-local-variable t)
;;;***
\f
-;;;### (autoloads (ses-mode) "ses" "ses.el" (20279 40897))
+;;;### (autoloads (ses-mode) "ses" "ses.el" (20309 60936))
;;; Generated autoloads from ses.el
(autoload 'ses-mode "ses" "\
;;;***
\f
;;;### (autoloads (html-mode sgml-mode) "sgml-mode" "textmodes/sgml-mode.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/sgml-mode.el
(autoload 'sgml-mode "sgml-mode" "\
;;;***
\f
;;;### (autoloads (sh-mode) "sh-script" "progmodes/sh-script.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/sh-script.el
(put 'sh-shell 'safe-local-variable 'symbolp)
;;;***
\f
;;;### (autoloads (list-load-path-shadows) "shadow" "emacs-lisp/shadow.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/shadow.el
(autoload 'list-load-path-shadows "shadow" "\
;;;***
\f
;;;### (autoloads (shadow-initialize shadow-define-regexp-group shadow-define-literal-group
-;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (20229
-;;;;;; 34587))
+;;;;;; shadow-define-cluster) "shadowfile" "shadowfile.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from shadowfile.el
(autoload 'shadow-define-cluster "shadowfile" "\
;;;***
\f
;;;### (autoloads (shell shell-dumb-shell-regexp) "shell" "shell.el"
-;;;;;; (20300 47034))
+;;;;;; (20321 41252))
;;; Generated autoloads from shell.el
(defvar shell-dumb-shell-regexp (purecopy "cmd\\(proxy\\)?\\.exe") "\
;;;***
\f
-;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20298
-;;;;;; 5305))
+;;;### (autoloads (shr-insert-document) "shr" "gnus/shr.el" (20327
+;;;;;; 64029))
;;; Generated autoloads from gnus/shr.el
(autoload 'shr-insert-document "shr" "\
;;;***
\f
;;;### (autoloads (sieve-upload-and-bury sieve-upload sieve-manage)
-;;;;;; "sieve" "gnus/sieve.el" (20229 34587))
+;;;;;; "sieve" "gnus/sieve.el" (20309 60936))
;;; Generated autoloads from gnus/sieve.el
(autoload 'sieve-manage "sieve" "\
;;;***
\f
;;;### (autoloads (sieve-mode) "sieve-mode" "gnus/sieve-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/sieve-mode.el
(autoload 'sieve-mode "sieve-mode" "\
;;;***
\f
-;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (simula-mode) "simula" "progmodes/simula.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from progmodes/simula.el
(autoload 'simula-mode "simula" "\
;;;***
\f
;;;### (autoloads (skeleton-pair-insert-maybe skeleton-insert skeleton-proxy-new
-;;;;;; define-skeleton) "skeleton" "skeleton.el" (20229 34587))
+;;;;;; define-skeleton) "skeleton" "skeleton.el" (20309 60936))
;;; Generated autoloads from skeleton.el
(defvar skeleton-filter-function 'identity "\
;;;***
\f
;;;### (autoloads (smerge-start-session smerge-mode smerge-ediff)
-;;;;;; "smerge-mode" "vc/smerge-mode.el" (20273 55692))
+;;;;;; "smerge-mode" "vc/smerge-mode.el" (20309 60936))
;;; Generated autoloads from vc/smerge-mode.el
(autoload 'smerge-ediff "smerge-mode" "\
;;;***
\f
;;;### (autoloads (smiley-buffer smiley-region) "smiley" "gnus/smiley.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/smiley.el
(autoload 'smiley-region "smiley" "\
;;;***
\f
;;;### (autoloads (smtpmail-send-queued-mail smtpmail-send-it) "smtpmail"
-;;;;;; "mail/smtpmail.el" (20283 8297))
+;;;;;; "mail/smtpmail.el" (20314 46279))
;;; Generated autoloads from mail/smtpmail.el
(autoload 'smtpmail-send-it "smtpmail" "\
;;;***
\f
-;;;### (autoloads (snake) "snake" "play/snake.el" (20229 34587))
+;;;### (autoloads (snake) "snake" "play/snake.el" (20309 60936))
;;; Generated autoloads from play/snake.el
(autoload 'snake "snake" "\
;;;***
\f
;;;### (autoloads (snmpv2-mode snmp-mode) "snmp-mode" "net/snmp-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/snmp-mode.el
(autoload 'snmp-mode "snmp-mode" "\
;;;***
\f
-;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (sunrise-sunset) "solar" "calendar/solar.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from calendar/solar.el
(autoload 'sunrise-sunset "solar" "\
;;;***
\f
-;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (solitaire) "solitaire" "play/solitaire.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from play/solitaire.el
(autoload 'solitaire "solitaire" "\
\f
;;;### (autoloads (reverse-region sort-columns sort-regexp-fields
;;;;;; sort-fields sort-numeric-fields sort-pages sort-paragraphs
-;;;;;; sort-lines sort-subr) "sort" "sort.el" (20229 34587))
+;;;;;; sort-lines sort-subr) "sort" "sort.el" (20320 14810))
;;; Generated autoloads from sort.el
(put 'sort-fold-case 'safe-local-variable 'booleanp)
;;;***
\f
-;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (spam-initialize) "spam" "gnus/spam.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from gnus/spam.el
(autoload 'spam-initialize "spam" "\
\f
;;;### (autoloads (spam-report-deagentize spam-report-agentize spam-report-url-to-file
;;;;;; spam-report-url-ping-mm-url spam-report-process-queue) "spam-report"
-;;;;;; "gnus/spam-report.el" (20229 34587))
+;;;;;; "gnus/spam-report.el" (20309 60936))
;;; Generated autoloads from gnus/spam-report.el
(autoload 'spam-report-process-queue "spam-report" "\
;;;***
\f
;;;### (autoloads (speedbar-get-focus speedbar-frame-mode) "speedbar"
-;;;;;; "speedbar.el" (20229 34587))
+;;;;;; "speedbar.el" (20315 2375))
;;; Generated autoloads from speedbar.el
(defalias 'speedbar 'speedbar-frame-mode)
;;;***
\f
-;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (snarf-spooks spook) "spook" "play/spook.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from play/spook.el
(autoload 'spook "spook" "\
;;;;;; sql-ms sql-ingres sql-solid sql-mysql sql-sqlite sql-informix
;;;;;; sql-sybase sql-oracle sql-product-interactive sql-connect
;;;;;; sql-mode sql-help sql-add-product-keywords) "sql" "progmodes/sql.el"
-;;;;;; (20303 23227))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/sql.el
(autoload 'sql-add-product-keywords "sql" "\
;;;***
\f
;;;### (autoloads (srecode-template-mode) "srecode/srt-mode" "cedet/srecode/srt-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from cedet/srecode/srt-mode.el
(autoload 'srecode-template-mode "srecode/srt-mode" "\
;;;***
\f
;;;### (autoloads (starttls-open-stream) "starttls" "gnus/starttls.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from gnus/starttls.el
(autoload 'starttls-open-stream "starttls" "\
;;;;;; strokes-mode strokes-list-strokes strokes-load-user-strokes
;;;;;; strokes-help strokes-describe-stroke strokes-do-complex-stroke
;;;;;; strokes-do-stroke strokes-read-complex-stroke strokes-read-stroke
-;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (20229
-;;;;;; 34587))
+;;;;;; strokes-global-set-stroke) "strokes" "strokes.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from strokes.el
(autoload 'strokes-global-set-stroke "strokes" "\
;;;***
\f
;;;### (autoloads (studlify-buffer studlify-word studlify-region)
-;;;;;; "studly" "play/studly.el" (19845 45374))
+;;;;;; "studly" "play/studly.el" (20309 60936))
;;; Generated autoloads from play/studly.el
(autoload 'studlify-region "studly" "\
;;;***
\f
;;;### (autoloads (global-subword-mode subword-mode) "subword" "progmodes/subword.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/subword.el
(autoload 'subword-mode "subword" "\
;;;***
\f
;;;### (autoloads (sc-cite-original) "supercite" "mail/supercite.el"
-;;;;;; (20273 55692))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/supercite.el
(autoload 'sc-cite-original "supercite" "\
;;;***
\f
-;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (gpm-mouse-mode) "t-mouse" "t-mouse.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from t-mouse.el
(define-obsolete-function-alias 't-mouse-mode 'gpm-mouse-mode "23.1")
;;;***
\f
-;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (20229 34587))
+;;;### (autoloads (tabify untabify) "tabify" "tabify.el" (20309 60936))
;;; Generated autoloads from tabify.el
(autoload 'untabify "tabify" "\
;;;;;; table-recognize table-insert-row-column table-insert-column
;;;;;; table-insert-row table-insert table-point-left-cell-hook
;;;;;; table-point-entered-cell-hook table-load-hook table-cell-map-hook)
-;;;;;; "table" "textmodes/table.el" (20229 34587))
+;;;;;; "table" "textmodes/table.el" (20309 60936))
;;; Generated autoloads from textmodes/table.el
(defvar table-cell-map-hook nil "\
;;;***
\f
;;;### (autoloads (tabulated-list-mode) "tabulated-list" "emacs-lisp/tabulated-list.el"
-;;;;;; (20257 13883))
+;;;;;; (20328 25588))
;;; Generated autoloads from emacs-lisp/tabulated-list.el
(autoload 'tabulated-list-mode "tabulated-list" "\
;;;***
\f
-;;;### (autoloads (talk talk-connect) "talk" "talk.el" (20229 34587))
+;;;### (autoloads (talk talk-connect) "talk" "talk.el" (20309 60936))
;;; Generated autoloads from talk.el
(autoload 'talk-connect "talk" "\
;;;***
\f
-;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (20273 55692))
+;;;### (autoloads (tar-mode) "tar-mode" "tar-mode.el" (20324 28875))
;;; Generated autoloads from tar-mode.el
(autoload 'tar-mode "tar-mode" "\
;;;***
\f
;;;### (autoloads (tcl-help-on-word inferior-tcl tcl-mode) "tcl"
-;;;;;; "progmodes/tcl.el" (20229 34587))
+;;;;;; "progmodes/tcl.el" (20309 60936))
;;; Generated autoloads from progmodes/tcl.el
(autoload 'tcl-mode "tcl" "\
;;;***
\f
-;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (20229 34587))
+;;;### (autoloads (rsh telnet) "telnet" "net/telnet.el" (20309 60936))
;;; Generated autoloads from net/telnet.el
(autoload 'telnet "telnet" "\
;;;***
\f
;;;### (autoloads (serial-term ansi-term term make-term) "term" "term.el"
-;;;;;; (20256 47696))
+;;;;;; (20309 60936))
;;; Generated autoloads from term.el
(autoload 'make-term "term" "\
;;;***
\f
-;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (terminal-emulator) "terminal" "terminal.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from terminal.el
(autoload 'terminal-emulator "terminal" "\
;;;***
\f
;;;### (autoloads (testcover-this-defun) "testcover" "emacs-lisp/testcover.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/testcover.el
(autoload 'testcover-this-defun "testcover" "\
;;;***
\f
-;;;### (autoloads (tetris) "tetris" "play/tetris.el" (20229 34587))
+;;;### (autoloads (tetris) "tetris" "play/tetris.el" (20309 60936))
;;; Generated autoloads from play/tetris.el
(autoload 'tetris "tetris" "\
;;;;;; tex-start-commands tex-start-options slitex-run-command latex-run-command
;;;;;; tex-run-command tex-offer-save tex-main-file tex-first-line-header-regexp
;;;;;; tex-directory tex-shell-file-name) "tex-mode" "textmodes/tex-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/tex-mode.el
(defvar tex-shell-file-name nil "\
;;;***
\f
;;;### (autoloads (texi2info texinfo-format-region texinfo-format-buffer)
-;;;;;; "texinfmt" "textmodes/texinfmt.el" (20229 34587))
+;;;;;; "texinfmt" "textmodes/texinfmt.el" (20309 60936))
;;; Generated autoloads from textmodes/texinfmt.el
(autoload 'texinfo-format-buffer "texinfmt" "\
;;;***
\f
;;;### (autoloads (texinfo-mode texinfo-close-quote texinfo-open-quote)
-;;;;;; "texinfo" "textmodes/texinfo.el" (20229 34587))
+;;;;;; "texinfo" "textmodes/texinfo.el" (20309 60936))
;;; Generated autoloads from textmodes/texinfo.el
(defvar texinfo-open-quote (purecopy "``") "\
\f
;;;### (autoloads (thai-composition-function thai-compose-buffer
;;;;;; thai-compose-string thai-compose-region) "thai-util" "language/thai-util.el"
-;;;;;; (20273 55692))
+;;;;;; (20309 60936))
;;; Generated autoloads from language/thai-util.el
(autoload 'thai-compose-region "thai-util" "\
\f
;;;### (autoloads (list-at-point number-at-point symbol-at-point
;;;;;; sexp-at-point thing-at-point bounds-of-thing-at-point forward-thing)
-;;;;;; "thingatpt" "thingatpt.el" (20229 34587))
+;;;;;; "thingatpt" "thingatpt.el" (20309 60936))
;;; Generated autoloads from thingatpt.el
(autoload 'forward-thing "thingatpt" "\
\f
;;;### (autoloads (thumbs-dired-setroot thumbs-dired-show thumbs-dired-show-marked
;;;;;; thumbs-show-from-dir thumbs-find-thumb) "thumbs" "thumbs.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from thumbs.el
(autoload 'thumbs-find-thumb "thumbs" "\
;;;;;; tibetan-post-read-conversion tibetan-compose-buffer tibetan-decompose-buffer
;;;;;; tibetan-decompose-string tibetan-decompose-region tibetan-compose-region
;;;;;; tibetan-compose-string tibetan-transcription-to-tibetan tibetan-tibetan-to-transcription
-;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20229
-;;;;;; 34587))
+;;;;;; tibetan-char-p) "tibet-util" "language/tibet-util.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from language/tibet-util.el
(autoload 'tibetan-char-p "tibet-util" "\
;;;***
\f
;;;### (autoloads (tildify-buffer tildify-region) "tildify" "textmodes/tildify.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from textmodes/tildify.el
(autoload 'tildify-region "tildify" "\
\f
;;;### (autoloads (emacs-init-time emacs-uptime display-time-world
;;;;;; display-time-mode display-time display-time-day-and-date)
-;;;;;; "time" "time.el" (20230 55355))
+;;;;;; "time" "time.el" (20309 60936))
;;; Generated autoloads from time.el
(defvar display-time-day-and-date nil "\
;;;;;; time-to-day-in-year date-leap-year-p days-between date-to-day
;;;;;; time-add time-subtract time-since days-to-time time-less-p
;;;;;; seconds-to-time date-to-time) "time-date" "calendar/time-date.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from calendar/time-date.el
(autoload 'date-to-time "time-date" "\
;;;***
\f
;;;### (autoloads (time-stamp-toggle-active time-stamp) "time-stamp"
-;;;;;; "time-stamp.el" (20229 34587))
+;;;;;; "time-stamp.el" (20309 60936))
;;; Generated autoloads from time-stamp.el
(put 'time-stamp-format 'safe-local-variable 'stringp)
(put 'time-stamp-time-zone 'safe-local-variable 'string-or-null-p)
;;;;;; timeclock-workday-remaining-string timeclock-reread-log timeclock-query-out
;;;;;; timeclock-change timeclock-status-string timeclock-out timeclock-in
;;;;;; timeclock-modeline-display) "timeclock" "calendar/timeclock.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from calendar/timeclock.el
(autoload 'timeclock-modeline-display "timeclock" "\
;;;***
\f
;;;### (autoloads (batch-titdic-convert titdic-convert) "titdic-cnv"
-;;;;;; "international/titdic-cnv.el" (20287 35000))
+;;;;;; "international/titdic-cnv.el" (20309 60936))
;;; Generated autoloads from international/titdic-cnv.el
(autoload 'titdic-convert "titdic-cnv" "\
;;;***
\f
;;;### (autoloads (tmm-prompt tmm-menubar-mouse tmm-menubar) "tmm"
-;;;;;; "tmm.el" (20229 34587))
+;;;;;; "tmm.el" (20309 60936))
;;; Generated autoloads from tmm.el
(define-key global-map "\M-`" 'tmm-menubar)
(define-key global-map [menu-bar mouse-1] 'tmm-menubar-mouse)
\f
;;;### (autoloads (todo-show todo-cp todo-mode todo-print todo-top-priorities
;;;;;; todo-insert-item todo-add-item-non-interactively todo-add-category)
-;;;;;; "todo-mode" "calendar/todo-mode.el" (20229 34587))
+;;;;;; "todo-mode" "calendar/todo-mode.el" (20309 60936))
;;; Generated autoloads from calendar/todo-mode.el
(autoload 'todo-add-category "todo-mode" "\
\f
;;;### (autoloads (tool-bar-local-item-from-menu tool-bar-add-item-from-menu
;;;;;; tool-bar-local-item tool-bar-add-item toggle-tool-bar-mode-from-frame)
-;;;;;; "tool-bar" "tool-bar.el" (20279 40897))
+;;;;;; "tool-bar" "tool-bar.el" (20309 60936))
;;; Generated autoloads from tool-bar.el
(autoload 'toggle-tool-bar-mode-from-frame "tool-bar" "\
;;;***
\f
;;;### (autoloads (tpu-edt-on tpu-edt-mode) "tpu-edt" "emulation/tpu-edt.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from emulation/tpu-edt.el
(defvar tpu-edt-mode nil "\
;;;***
\f
;;;### (autoloads (tpu-mapper) "tpu-mapper" "emulation/tpu-mapper.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emulation/tpu-mapper.el
(autoload 'tpu-mapper "tpu-mapper" "\
;;;***
\f
-;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (20229 34587))
+;;;### (autoloads (tq-create) "tq" "emacs-lisp/tq.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/tq.el
(autoload 'tq-create "tq" "\
;;;***
\f
;;;### (autoloads (trace-function-background trace-function trace-buffer)
-;;;;;; "trace" "emacs-lisp/trace.el" (20229 34587))
+;;;;;; "trace" "emacs-lisp/trace.el" (20309 60936))
;;; Generated autoloads from emacs-lisp/trace.el
(defvar trace-buffer (purecopy "*trace-output*") "\
;;;### (autoloads (tramp-unload-tramp tramp-completion-handle-file-name-completion
;;;;;; tramp-completion-handle-file-name-all-completions tramp-unload-file-name-handlers
;;;;;; tramp-file-name-handler tramp-syntax tramp-mode) "tramp"
-;;;;;; "net/tramp.el" (20300 47034))
+;;;;;; "net/tramp.el" (20343 48993))
;;; Generated autoloads from net/tramp.el
(defvar tramp-mode t "\
;;;***
\f
;;;### (autoloads (tramp-ftp-enable-ange-ftp) "tramp-ftp" "net/tramp-ftp.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from net/tramp-ftp.el
(autoload 'tramp-ftp-enable-ange-ftp "tramp-ftp" "\
;;;***
\f
-;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (help-with-tutorial) "tutorial" "tutorial.el" (20341
+;;;;;; 56798))
;;; Generated autoloads from tutorial.el
(autoload 'help-with-tutorial "tutorial" "\
;;;***
\f
;;;### (autoloads (tai-viet-composition-function) "tv-util" "language/tv-util.el"
-;;;;;; (19845 45374))
+;;;;;; (20309 60936))
;;; Generated autoloads from language/tv-util.el
(autoload 'tai-viet-composition-function "tv-util" "\
;;;***
\f
;;;### (autoloads (2C-split 2C-associate-buffer 2C-two-columns) "two-column"
-;;;;;; "textmodes/two-column.el" (20229 34587))
+;;;;;; "textmodes/two-column.el" (20309 60936))
;;; Generated autoloads from textmodes/two-column.el
(autoload '2C-command "two-column" () t 'keymap)
(global-set-key "\C-x6" '2C-command)
;;;;;; type-break type-break-mode type-break-keystroke-threshold
;;;;;; type-break-good-break-interval type-break-good-rest-interval
;;;;;; type-break-interval type-break-mode) "type-break" "type-break.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from type-break.el
(defvar type-break-mode nil "\
;;;***
\f
-;;;### (autoloads (uce-reply-to-uce) "uce" "mail/uce.el" (20229 34587))
+;;;### (autoloads (uce-reply-to-uce) "uce" "mail/uce.el" (20309 60936))
;;; Generated autoloads from mail/uce.el
(autoload 'uce-reply-to-uce "uce" "\
;;;;;; ucs-normalize-NFKC-string ucs-normalize-NFKC-region ucs-normalize-NFKD-string
;;;;;; ucs-normalize-NFKD-region ucs-normalize-NFC-string ucs-normalize-NFC-region
;;;;;; ucs-normalize-NFD-string ucs-normalize-NFD-region) "ucs-normalize"
-;;;;;; "international/ucs-normalize.el" (20229 34587))
+;;;;;; "international/ucs-normalize.el" (20309 60936))
;;; Generated autoloads from international/ucs-normalize.el
(autoload 'ucs-normalize-NFD-region "ucs-normalize" "\
;;;***
\f
;;;### (autoloads (ununderline-region underline-region) "underline"
-;;;;;; "textmodes/underline.el" (20229 34587))
+;;;;;; "textmodes/underline.el" (20309 60936))
;;; Generated autoloads from textmodes/underline.el
(autoload 'underline-region "underline" "\
;;;***
\f
;;;### (autoloads (unrmail batch-unrmail) "unrmail" "mail/unrmail.el"
-;;;;;; (20235 41048))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/unrmail.el
(autoload 'batch-unrmail "unrmail" "\
;;;***
\f
-;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (unsafep) "unsafep" "emacs-lisp/unsafep.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emacs-lisp/unsafep.el
(autoload 'unsafep "unsafep" "\
;;;***
\f
;;;### (autoloads (url-retrieve-synchronously url-retrieve) "url"
-;;;;;; "url/url.el" (20290 11197))
+;;;;;; "url/url.el" (20309 60936))
;;; Generated autoloads from url/url.el
(autoload 'url-retrieve "url" "\
;;;***
\f
;;;### (autoloads (url-register-auth-scheme url-get-authentication)
-;;;;;; "url-auth" "url/url-auth.el" (20238 49468))
+;;;;;; "url-auth" "url/url-auth.el" (20309 60936))
;;; Generated autoloads from url/url-auth.el
(autoload 'url-get-authentication "url-auth" "\
;;;***
\f
;;;### (autoloads (url-cache-extract url-is-cached url-store-in-cache)
-;;;;;; "url-cache" "url/url-cache.el" (20273 2111))
+;;;;;; "url-cache" "url/url-cache.el" (20309 60936))
;;; Generated autoloads from url/url-cache.el
(autoload 'url-store-in-cache "url-cache" "\
;;;***
\f
-;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (20229 34587))
+;;;### (autoloads (url-cid) "url-cid" "url/url-cid.el" (20309 60936))
;;; Generated autoloads from url/url-cid.el
(autoload 'url-cid "url-cid" "\
;;;***
\f
;;;### (autoloads (url-dav-vc-registered url-dav-supported-p) "url-dav"
-;;;;;; "url/url-dav.el" (20229 34587))
+;;;;;; "url/url-dav.el" (20309 60936))
;;; Generated autoloads from url/url-dav.el
(autoload 'url-dav-supported-p "url-dav" "\
;;;***
\f
-;;;### (autoloads (url-file) "url-file" "url/url-file.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (url-file) "url-file" "url/url-file.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from url/url-file.el
(autoload 'url-file "url-file" "\
;;;***
\f
;;;### (autoloads (url-open-stream url-gateway-nslookup-host) "url-gw"
-;;;;;; "url/url-gw.el" (20229 34587))
+;;;;;; "url/url-gw.el" (20309 60936))
;;; Generated autoloads from url/url-gw.el
(autoload 'url-gateway-nslookup-host "url-gw" "\
\f
;;;### (autoloads (url-insert-file-contents url-file-local-copy url-copy-file
;;;;;; url-file-handler url-handler-mode) "url-handlers" "url/url-handlers.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from url/url-handlers.el
(defvar url-handler-mode nil "\
;;;***
\f
;;;### (autoloads (url-http-options url-http-file-attributes url-http-file-exists-p
-;;;;;; url-http) "url-http" "url/url-http.el" (20277 28925))
+;;;;;; url-http) "url-http" "url/url-http.el" (20316 49235))
;;; Generated autoloads from url/url-http.el
(autoload 'url-http "url-http" "\
When retrieval is completed, the function CALLBACK is executed with
CBARGS as the arguments.
-\(fn URL CALLBACK CBARGS)" nil nil)
+Optional arg RETRY-BUFFER, if non-nil, specifies the buffer of a
+previous `url-http' call, which is being re-attempted.
+
+\(fn URL CALLBACK CBARGS &optional RETRY-BUFFER)" nil nil)
(autoload 'url-http-file-exists-p "url-http" "\
;;;***
\f
-;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (20229 34587))
+;;;### (autoloads (url-irc) "url-irc" "url/url-irc.el" (20309 60936))
;;; Generated autoloads from url/url-irc.el
(autoload 'url-irc "url-irc" "\
;;;***
\f
-;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (url-ldap) "url-ldap" "url/url-ldap.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from url/url-ldap.el
(autoload 'url-ldap "url-ldap" "\
;;;***
\f
;;;### (autoloads (url-mailto url-mail) "url-mailto" "url/url-mailto.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from url/url-mailto.el
(autoload 'url-mail "url-mailto" "\
;;;***
\f
;;;### (autoloads (url-data url-generic-emulator-loader url-info
-;;;;;; url-man) "url-misc" "url/url-misc.el" (20229 34587))
+;;;;;; url-man) "url-misc" "url/url-misc.el" (20309 60936))
;;; Generated autoloads from url/url-misc.el
(autoload 'url-man "url-misc" "\
;;;***
\f
;;;### (autoloads (url-snews url-news) "url-news" "url/url-news.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from url/url-news.el
(autoload 'url-news "url-news" "\
\f
;;;### (autoloads (url-ns-user-pref url-ns-prefs isInNet isResolvable
;;;;;; dnsResolve dnsDomainIs isPlainHostName) "url-ns" "url/url-ns.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from url/url-ns.el
(autoload 'isPlainHostName "url-ns" "\
;;;***
\f
;;;### (autoloads (url-generic-parse-url url-recreate-url) "url-parse"
-;;;;;; "url/url-parse.el" (20273 55604))
+;;;;;; "url/url-parse.el" (20309 60936))
;;; Generated autoloads from url/url-parse.el
(autoload 'url-recreate-url "url-parse" "\
;;;***
\f
;;;### (autoloads (url-setup-privacy-info) "url-privacy" "url/url-privacy.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from url/url-privacy.el
(autoload 'url-setup-privacy-info "url-privacy" "\
;;;***
\f
;;;### (autoloads (url-queue-retrieve) "url-queue" "url/url-queue.el"
-;;;;;; (20291 32066))
+;;;;;; (20335 9743))
;;; Generated autoloads from url/url-queue.el
(autoload 'url-queue-retrieve "url-queue" "\
;;;;;; url-pretty-length url-strip-leading-spaces url-eat-trailing-space
;;;;;; url-get-normalized-date url-lazy-message url-normalize-url
;;;;;; url-insert-entities-in-string url-parse-args url-debug url-debug)
-;;;;;; "url-util" "url/url-util.el" (20229 34587))
+;;;;;; "url-util" "url/url-util.el" (20309 60936))
;;; Generated autoloads from url/url-util.el
(defvar url-debug nil "\
;;;***
\f
;;;### (autoloads (ask-user-about-supersession-threat ask-user-about-lock)
-;;;;;; "userlock" "userlock.el" (20229 34587))
+;;;;;; "userlock" "userlock.el" (20309 60936))
;;; Generated autoloads from userlock.el
(autoload 'ask-user-about-lock "userlock" "\
\f
;;;### (autoloads (utf-7-imap-pre-write-conversion utf-7-pre-write-conversion
;;;;;; utf-7-imap-post-read-conversion utf-7-post-read-conversion)
-;;;;;; "utf-7" "international/utf-7.el" (20229 34587))
+;;;;;; "utf-7" "international/utf-7.el" (20309 60936))
;;; Generated autoloads from international/utf-7.el
(autoload 'utf-7-post-read-conversion "utf-7" "\
;;;***
\f
-;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20229 34587))
+;;;### (autoloads (utf7-encode) "utf7" "gnus/utf7.el" (20309 60936))
;;; Generated autoloads from gnus/utf7.el
(autoload 'utf7-encode "utf7" "\
\f
;;;### (autoloads (uudecode-decode-region uudecode-decode-region-internal
;;;;;; uudecode-decode-region-external) "uudecode" "mail/uudecode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from mail/uudecode.el
(autoload 'uudecode-decode-region-external "uudecode" "\
;;;;;; vc-print-log vc-retrieve-tag vc-create-tag vc-merge vc-insert-headers
;;;;;; vc-revision-other-window vc-root-diff vc-ediff vc-version-ediff
;;;;;; vc-diff vc-version-diff vc-register vc-next-action vc-before-checkin-hook
-;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20275
-;;;;;; 43867))
+;;;;;; vc-checkin-hook vc-checkout-hook) "vc" "vc/vc.el" (20333
+;;;;;; 51787))
;;; Generated autoloads from vc/vc.el
(defvar vc-checkout-hook nil "\
;;;***
\f
;;;### (autoloads (vc-annotate) "vc-annotate" "vc/vc-annotate.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/vc-annotate.el
(autoload 'vc-annotate "vc-annotate" "\
;;;***
\f
-;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (20296 49978))
+;;;### (autoloads nil "vc-arch" "vc/vc-arch.el" (20309 60936))
;;; Generated autoloads from vc/vc-arch.el
(defun vc-arch-registered (file)
(if (vc-find-root file "{arch}/=tagging-method")
;;;***
\f
-;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20300 47034))
+;;;### (autoloads nil "vc-bzr" "vc/vc-bzr.el" (20332 33075))
;;; Generated autoloads from vc/vc-bzr.el
(defconst vc-bzr-admin-dirname ".bzr" "\
;;;***
\f
-;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20296 49978))
+;;;### (autoloads nil "vc-cvs" "vc/vc-cvs.el" (20309 60936))
;;; Generated autoloads from vc/vc-cvs.el
(defun vc-cvs-registered (f)
"Return non-nil if file F is registered with CVS."
;;;***
\f
-;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20229 34587))
+;;;### (autoloads (vc-dir) "vc-dir" "vc/vc-dir.el" (20309 60936))
;;; Generated autoloads from vc/vc-dir.el
(autoload 'vc-dir "vc-dir" "\
;;;***
\f
;;;### (autoloads (vc-do-command) "vc-dispatcher" "vc/vc-dispatcher.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/vc-dispatcher.el
(autoload 'vc-do-command "vc-dispatcher" "\
;;;***
\f
-;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20303 23227))
+;;;### (autoloads nil "vc-git" "vc/vc-git.el" (20341 24416))
;;; Generated autoloads from vc/vc-git.el
(defun vc-git-registered (file)
"Return non-nil if FILE is registered with git."
;;;***
\f
-;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20296 49978))
+;;;### (autoloads nil "vc-hg" "vc/vc-hg.el" (20320 14810))
;;; Generated autoloads from vc/vc-hg.el
(defun vc-hg-registered (file)
"Return non-nil if FILE is registered with hg."
;;;***
\f
-;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20296 49978))
+;;;### (autoloads nil "vc-mtn" "vc/vc-mtn.el" (20309 60936))
;;; Generated autoloads from vc/vc-mtn.el
(defconst vc-mtn-admin-dir "_MTN" "\
;;;***
\f
;;;### (autoloads (vc-rcs-master-templates) "vc-rcs" "vc/vc-rcs.el"
-;;;;;; (20296 49978))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/vc-rcs.el
(defvar vc-rcs-master-templates (purecopy '("%sRCS/%s,v" "%s%s,v" "%sRCS/%s")) "\
;;;***
\f
;;;### (autoloads (vc-sccs-master-templates) "vc-sccs" "vc/vc-sccs.el"
-;;;;;; (20296 49978))
+;;;;;; (20309 60936))
;;; Generated autoloads from vc/vc-sccs.el
(defvar vc-sccs-master-templates (purecopy '("%sSCCS/s.%s" "%ss.%s" vc-sccs-search-project-dir)) "\
;;;***
\f
-;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20296 49978))
+;;;### (autoloads nil "vc-svn" "vc/vc-svn.el" (20309 60936))
;;; Generated autoloads from vc/vc-svn.el
(defun vc-svn-registered (f)
(let ((admin-dir (cond ((and (eq system-type 'windows-nt)
;;;***
\f
;;;### (autoloads (vera-mode) "vera-mode" "progmodes/vera-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/vera-mode.el
(add-to-list 'auto-mode-alist (cons (purecopy "\\.vr[hi]?\\'") 'vera-mode))
;;;***
\f
;;;### (autoloads (verilog-mode) "verilog-mode" "progmodes/verilog-mode.el"
-;;;;;; (20279 40897))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/verilog-mode.el
(autoload 'verilog-mode "verilog-mode" "\
;;;***
\f
;;;### (autoloads (vhdl-mode) "vhdl-mode" "progmodes/vhdl-mode.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from progmodes/vhdl-mode.el
(autoload 'vhdl-mode "vhdl-mode" "\
;;;***
\f
-;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (20104 14925))
+;;;### (autoloads (vi-mode) "vi" "emulation/vi.el" (20309 60936))
;;; Generated autoloads from emulation/vi.el
(autoload 'vi-mode "vi" "\
;;;### (autoloads (viqr-pre-write-conversion viqr-post-read-conversion
;;;;;; viet-encode-viqr-buffer viet-encode-viqr-region viet-decode-viqr-buffer
;;;;;; viet-decode-viqr-region viet-encode-viscii-char) "viet-util"
-;;;;;; "language/viet-util.el" (20229 34587))
+;;;;;; "language/viet-util.el" (20309 60936))
;;; Generated autoloads from language/viet-util.el
(autoload 'viet-encode-viscii-char "viet-util" "\
;;;;;; view-mode view-buffer-other-frame view-buffer-other-window
;;;;;; view-buffer view-file-other-frame view-file-other-window
;;;;;; view-file kill-buffer-if-not-modified view-remove-frame-by-deleting)
-;;;;;; "view" "view.el" (20265 7997))
+;;;;;; "view" "view.el" (20324 28875))
;;; Generated autoloads from view.el
(defvar view-remove-frame-by-deleting t "\
Exiting View mode will then discard the user's edits. Setting
EXIT-ACTION to `kill-buffer-if-not-modified' avoids this.
+This function does not enable View mode if the buffer's major-mode
+has a `special' mode-class, because such modes usually have their
+own View-like bindings.
+
\(fn BUFFER &optional EXIT-ACTION)" t nil)
(autoload 'view-buffer-other-window "view" "\
argument. This function is called when finished viewing buffer. Use
this argument instead of explicitly setting `view-exit-action'.
+This function does not enable View mode if the buffer's major-mode
+has a `special' mode-class, because such modes usually have their
+own View-like bindings.
+
\(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
(autoload 'view-buffer-other-frame "view" "\
argument. This function is called when finished viewing buffer. Use
this argument instead of explicitly setting `view-exit-action'.
+This function does not enable View mode if the buffer's major-mode
+has a `special' mode-class, because such modes usually have their
+own View-like bindings.
+
\(fn BUFFER &optional NOT-RETURN EXIT-ACTION)" t nil)
(autoload 'view-mode "view" "\
;;;***
\f
-;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (vip-mode vip-setup) "vip" "emulation/vip.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from emulation/vip.el
(autoload 'vip-setup "vip" "\
;;;***
\f
;;;### (autoloads (viper-mode toggle-viper-mode) "viper" "emulation/viper.el"
-;;;;;; (20300 47034))
+;;;;;; (20309 60936))
;;; Generated autoloads from emulation/viper.el
(autoload 'toggle-viper-mode "viper" "\
;;;***
\f
;;;### (autoloads (warn lwarn display-warning) "warnings" "emacs-lisp/warnings.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from emacs-lisp/warnings.el
(defvar warning-prefix-function nil "\
;;;***
\f
;;;### (autoloads (wdired-change-to-wdired-mode) "wdired" "wdired.el"
-;;;;;; (20229 34587))
+;;;;;; (20309 60936))
;;; Generated autoloads from wdired.el
(autoload 'wdired-change-to-wdired-mode "wdired" "\
;;;***
\f
-;;;### (autoloads (webjump) "webjump" "net/webjump.el" (20229 34587))
+;;;### (autoloads (webjump) "webjump" "net/webjump.el" (20309 60936))
;;; Generated autoloads from net/webjump.el
(autoload 'webjump "webjump" "\
;;;***
\f
;;;### (autoloads (which-function-mode which-func-mode) "which-func"
-;;;;;; "progmodes/which-func.el" (20232 10689))
+;;;;;; "progmodes/which-func.el" (20309 60936))
;;; Generated autoloads from progmodes/which-func.el
(put 'which-func-format 'risky-local-variable t)
(put 'which-func-current 'risky-local-variable t)
;;;### (autoloads (whitespace-report-region whitespace-report whitespace-cleanup-region
;;;;;; whitespace-cleanup global-whitespace-toggle-options whitespace-toggle-options
;;;;;; global-whitespace-newline-mode global-whitespace-mode whitespace-newline-mode
-;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20229 34587))
+;;;;;; whitespace-mode) "whitespace" "whitespace.el" (20309 60936))
;;; Generated autoloads from whitespace.el
(autoload 'whitespace-mode "whitespace" "\
;;;***
\f
;;;### (autoloads (widget-minor-mode widget-browse-other-window widget-browse
-;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (20273 55693))
+;;;;;; widget-browse-at) "wid-browse" "wid-browse.el" (20309 60936))
;;; Generated autoloads from wid-browse.el
(autoload 'widget-browse-at "wid-browse" "\
;;;***
\f
;;;### (autoloads (widget-setup widget-insert widget-delete widget-create
-;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (20271
-;;;;;; 46782))
+;;;;;; widget-prompt-value widgetp) "wid-edit" "wid-edit.el" (20329
+;;;;;; 31524))
;;; Generated autoloads from wid-edit.el
(autoload 'widgetp "wid-edit" "\
;;;***
\f
;;;### (autoloads (windmove-default-keybindings windmove-down windmove-right
-;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (20250
-;;;;;; 40679))
+;;;;;; windmove-up windmove-left) "windmove" "windmove.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from windmove.el
(autoload 'windmove-left "windmove" "\
;;;***
\f
;;;### (autoloads (winner-mode winner-mode) "winner" "winner.el"
-;;;;;; (20237 28610))
+;;;;;; (20309 60936))
;;; Generated autoloads from winner.el
(defvar winner-mode nil "\
;;;***
\f
;;;### (autoloads (woman-bookmark-jump woman-find-file woman-dired-find-file
-;;;;;; woman woman-locale) "woman" "woman.el" (20229 34587))
+;;;;;; woman woman-locale) "woman" "woman.el" (20309 60936))
;;; Generated autoloads from woman.el
(defvar woman-locale nil "\
;;;***
\f
;;;### (autoloads (wordstar-mode) "ws-mode" "emulation/ws-mode.el"
-;;;;;; (20229 34587))
+;;;;;; (20320 14810))
;;; Generated autoloads from emulation/ws-mode.el
(autoload 'wordstar-mode "ws-mode" "\
;;;***
\f
-;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20229 34587))
+;;;### (autoloads (xesam-search) "xesam" "net/xesam.el" (20309 60936))
;;; Generated autoloads from net/xesam.el
(autoload 'xesam-search "xesam" "\
;;;***
\f
;;;### (autoloads (xml-parse-region xml-parse-file) "xml" "xml.el"
-;;;;;; (20258 34747))
+;;;;;; (20309 60936))
;;; Generated autoloads from xml.el
(autoload 'xml-parse-file "xml" "\
;;;***
\f
;;;### (autoloads (xmltok-get-declared-encoding-position) "xmltok"
-;;;;;; "nxml/xmltok.el" (20229 34587))
+;;;;;; "nxml/xmltok.el" (20309 60936))
;;; Generated autoloads from nxml/xmltok.el
(autoload 'xmltok-get-declared-encoding-position "xmltok" "\
;;;***
\f
-;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20229
-;;;;;; 34587))
+;;;### (autoloads (xterm-mouse-mode) "xt-mouse" "xt-mouse.el" (20309
+;;;;;; 60936))
;;; Generated autoloads from xt-mouse.el
(defvar xterm-mouse-mode nil "\
;;;***
\f
;;;### (autoloads (yenc-extract-filename yenc-decode-region) "yenc"
-;;;;;; "gnus/yenc.el" (20229 34587))
+;;;;;; "gnus/yenc.el" (20309 60936))
;;; Generated autoloads from gnus/yenc.el
(autoload 'yenc-decode-region "yenc" "\
;;;***
\f
;;;### (autoloads (psychoanalyze-pinhead apropos-zippy insert-zippyism
-;;;;;; yow) "yow" "play/yow.el" (20229 34587))
+;;;;;; yow) "yow" "play/yow.el" (20309 60936))
;;; Generated autoloads from play/yow.el
(autoload 'yow "yow" "\
;;;***
\f
-;;;### (autoloads (zone) "zone" "play/zone.el" (20229 34587))
+;;;### (autoloads (zone) "zone" "play/zone.el" (20309 60936))
;;; Generated autoloads from play/zone.el
(autoload 'zone "zone" "\
;;;;;; "calc/calc-fin.el" "calc/calc-forms.el" "calc/calc-frac.el"
;;;;;; "calc/calc-funcs.el" "calc/calc-graph.el" "calc/calc-help.el"
;;;;;; "calc/calc-incom.el" "calc/calc-keypd.el" "calc/calc-lang.el"
-;;;;;; "calc/calc-loaddefs.el" "calc/calc-macs.el" "calc/calc-map.el"
-;;;;;; "calc/calc-math.el" "calc/calc-menu.el" "calc/calc-misc.el"
-;;;;;; "calc/calc-mode.el" "calc/calc-mtx.el" "calc/calc-nlfit.el"
-;;;;;; "calc/calc-poly.el" "calc/calc-prog.el" "calc/calc-rewr.el"
-;;;;;; "calc/calc-rules.el" "calc/calc-sel.el" "calc/calc-stat.el"
-;;;;;; "calc/calc-store.el" "calc/calc-stuff.el" "calc/calc-trail.el"
-;;;;;; "calc/calc-units.el" "calc/calc-vec.el" "calc/calc-yank.el"
-;;;;;; "calc/calcalg2.el" "calc/calcalg3.el" "calc/calccomp.el"
-;;;;;; "calc/calcsel2.el" "calendar/cal-bahai.el" "calendar/cal-coptic.el"
-;;;;;; "calendar/cal-french.el" "calendar/cal-html.el" "calendar/cal-islam.el"
-;;;;;; "calendar/cal-iso.el" "calendar/cal-julian.el" "calendar/cal-loaddefs.el"
-;;;;;; "calendar/cal-mayan.el" "calendar/cal-menu.el" "calendar/cal-move.el"
-;;;;;; "calendar/cal-persia.el" "calendar/cal-tex.el" "calendar/cal-x.el"
-;;;;;; "calendar/diary-loaddefs.el" "calendar/hol-loaddefs.el" "cdl.el"
-;;;;;; "cedet/cedet-cscope.el" "cedet/cedet-files.el" "cedet/cedet-global.el"
-;;;;;; "cedet/cedet-idutils.el" "cedet/cedet.el" "cedet/ede/auto.el"
-;;;;;; "cedet/ede/autoconf-edit.el" "cedet/ede/base.el" "cedet/ede/cpp-root.el"
-;;;;;; "cedet/ede/custom.el" "cedet/ede/dired.el" "cedet/ede/emacs.el"
-;;;;;; "cedet/ede/files.el" "cedet/ede/generic.el" "cedet/ede/linux.el"
-;;;;;; "cedet/ede/loaddefs.el" "cedet/ede/locate.el" "cedet/ede/make.el"
-;;;;;; "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el" "cedet/ede/pmake.el"
-;;;;;; "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el" "cedet/ede/proj-comp.el"
-;;;;;; "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el" "cedet/ede/proj-misc.el"
-;;;;;; "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el" "cedet/ede/proj-scheme.el"
-;;;;;; "cedet/ede/proj-shared.el" "cedet/ede/proj.el" "cedet/ede/project-am.el"
-;;;;;; "cedet/ede/shell.el" "cedet/ede/simple.el" "cedet/ede/source.el"
-;;;;;; "cedet/ede/speedbar.el" "cedet/ede/srecode.el" "cedet/ede/system.el"
-;;;;;; "cedet/ede/util.el" "cedet/inversion.el" "cedet/mode-local.el"
-;;;;;; "cedet/pulse.el" "cedet/semantic/analyze.el" "cedet/semantic/analyze/complete.el"
-;;;;;; "cedet/semantic/analyze/debug.el" "cedet/semantic/analyze/fcn.el"
-;;;;;; "cedet/semantic/analyze/refs.el" "cedet/semantic/bovine.el"
-;;;;;; "cedet/semantic/bovine/c-by.el" "cedet/semantic/bovine/c.el"
-;;;;;; "cedet/semantic/bovine/debug.el" "cedet/semantic/bovine/el.el"
-;;;;;; "cedet/semantic/bovine/gcc.el" "cedet/semantic/bovine/make-by.el"
-;;;;;; "cedet/semantic/bovine/make.el" "cedet/semantic/bovine/scm-by.el"
-;;;;;; "cedet/semantic/bovine/scm.el" "cedet/semantic/chart.el"
-;;;;;; "cedet/semantic/complete.el" "cedet/semantic/ctxt.el" "cedet/semantic/db-debug.el"
-;;;;;; "cedet/semantic/db-ebrowse.el" "cedet/semantic/db-el.el"
-;;;;;; "cedet/semantic/db-file.el" "cedet/semantic/db-find.el" "cedet/semantic/db-global.el"
-;;;;;; "cedet/semantic/db-javascript.el" "cedet/semantic/db-mode.el"
-;;;;;; "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el"
+;;;;;; "calc/calc-macs.el" "calc/calc-map.el" "calc/calc-math.el"
+;;;;;; "calc/calc-menu.el" "calc/calc-misc.el" "calc/calc-mode.el"
+;;;;;; "calc/calc-mtx.el" "calc/calc-nlfit.el" "calc/calc-poly.el"
+;;;;;; "calc/calc-prog.el" "calc/calc-rewr.el" "calc/calc-rules.el"
+;;;;;; "calc/calc-sel.el" "calc/calc-stat.el" "calc/calc-store.el"
+;;;;;; "calc/calc-stuff.el" "calc/calc-trail.el" "calc/calc-units.el"
+;;;;;; "calc/calc-vec.el" "calc/calc-yank.el" "calc/calcalg2.el"
+;;;;;; "calc/calcalg3.el" "calc/calccomp.el" "calc/calcsel2.el"
+;;;;;; "calendar/cal-bahai.el" "calendar/cal-coptic.el" "calendar/cal-french.el"
+;;;;;; "calendar/cal-html.el" "calendar/cal-islam.el" "calendar/cal-iso.el"
+;;;;;; "calendar/cal-julian.el" "calendar/cal-loaddefs.el" "calendar/cal-mayan.el"
+;;;;;; "calendar/cal-menu.el" "calendar/cal-move.el" "calendar/cal-persia.el"
+;;;;;; "calendar/cal-tex.el" "calendar/cal-x.el" "calendar/diary-loaddefs.el"
+;;;;;; "calendar/hol-loaddefs.el" "cdl.el" "cedet/cedet-cscope.el"
+;;;;;; "cedet/cedet-files.el" "cedet/cedet-global.el" "cedet/cedet-idutils.el"
+;;;;;; "cedet/cedet.el" "cedet/ede/auto.el" "cedet/ede/autoconf-edit.el"
+;;;;;; "cedet/ede/base.el" "cedet/ede/cpp-root.el" "cedet/ede/custom.el"
+;;;;;; "cedet/ede/dired.el" "cedet/ede/emacs.el" "cedet/ede/files.el"
+;;;;;; "cedet/ede/generic.el" "cedet/ede/linux.el" "cedet/ede/locate.el"
+;;;;;; "cedet/ede/make.el" "cedet/ede/makefile-edit.el" "cedet/ede/pconf.el"
+;;;;;; "cedet/ede/pmake.el" "cedet/ede/proj-archive.el" "cedet/ede/proj-aux.el"
+;;;;;; "cedet/ede/proj-comp.el" "cedet/ede/proj-elisp.el" "cedet/ede/proj-info.el"
+;;;;;; "cedet/ede/proj-misc.el" "cedet/ede/proj-obj.el" "cedet/ede/proj-prog.el"
+;;;;;; "cedet/ede/proj-scheme.el" "cedet/ede/proj-shared.el" "cedet/ede/proj.el"
+;;;;;; "cedet/ede/project-am.el" "cedet/ede/shell.el" "cedet/ede/simple.el"
+;;;;;; "cedet/ede/source.el" "cedet/ede/speedbar.el" "cedet/ede/srecode.el"
+;;;;;; "cedet/ede/system.el" "cedet/ede/util.el" "cedet/inversion.el"
+;;;;;; "cedet/mode-local.el" "cedet/pulse.el" "cedet/semantic/analyze.el"
+;;;;;; "cedet/semantic/analyze/complete.el" "cedet/semantic/analyze/debug.el"
+;;;;;; "cedet/semantic/analyze/fcn.el" "cedet/semantic/analyze/refs.el"
+;;;;;; "cedet/semantic/bovine.el" "cedet/semantic/bovine/c-by.el"
+;;;;;; "cedet/semantic/bovine/c.el" "cedet/semantic/bovine/debug.el"
+;;;;;; "cedet/semantic/bovine/el.el" "cedet/semantic/bovine/gcc.el"
+;;;;;; "cedet/semantic/bovine/make-by.el" "cedet/semantic/bovine/make.el"
+;;;;;; "cedet/semantic/bovine/scm-by.el" "cedet/semantic/bovine/scm.el"
+;;;;;; "cedet/semantic/chart.el" "cedet/semantic/complete.el" "cedet/semantic/ctxt.el"
+;;;;;; "cedet/semantic/db-debug.el" "cedet/semantic/db-ebrowse.el"
+;;;;;; "cedet/semantic/db-el.el" "cedet/semantic/db-file.el" "cedet/semantic/db-find.el"
+;;;;;; "cedet/semantic/db-global.el" "cedet/semantic/db-javascript.el"
+;;;;;; "cedet/semantic/db-mode.el" "cedet/semantic/db-ref.el" "cedet/semantic/db-typecache.el"
;;;;;; "cedet/semantic/db.el" "cedet/semantic/debug.el" "cedet/semantic/decorate.el"
;;;;;; "cedet/semantic/decorate/include.el" "cedet/semantic/decorate/mode.el"
;;;;;; "cedet/semantic/dep.el" "cedet/semantic/doc.el" "cedet/semantic/ede-grammar.el"
;;;;;; "cedet/semantic/fw.el" "cedet/semantic/grammar-wy.el" "cedet/semantic/grammar.el"
;;;;;; "cedet/semantic/html.el" "cedet/semantic/ia-sb.el" "cedet/semantic/ia.el"
;;;;;; "cedet/semantic/idle.el" "cedet/semantic/imenu.el" "cedet/semantic/java.el"
-;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/loaddefs.el"
-;;;;;; "cedet/semantic/mru-bookmark.el" "cedet/semantic/sb.el" "cedet/semantic/scope.el"
-;;;;;; "cedet/semantic/senator.el" "cedet/semantic/sort.el" "cedet/semantic/symref.el"
-;;;;;; "cedet/semantic/symref/cscope.el" "cedet/semantic/symref/filter.el"
-;;;;;; "cedet/semantic/symref/global.el" "cedet/semantic/symref/grep.el"
-;;;;;; "cedet/semantic/symref/idutils.el" "cedet/semantic/symref/list.el"
-;;;;;; "cedet/semantic/tag-file.el" "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el"
+;;;;;; "cedet/semantic/lex-spp.el" "cedet/semantic/lex.el" "cedet/semantic/mru-bookmark.el"
+;;;;;; "cedet/semantic/sb.el" "cedet/semantic/scope.el" "cedet/semantic/senator.el"
+;;;;;; "cedet/semantic/sort.el" "cedet/semantic/symref.el" "cedet/semantic/symref/cscope.el"
+;;;;;; "cedet/semantic/symref/filter.el" "cedet/semantic/symref/global.el"
+;;;;;; "cedet/semantic/symref/grep.el" "cedet/semantic/symref/idutils.el"
+;;;;;; "cedet/semantic/symref/list.el" "cedet/semantic/tag-file.el"
+;;;;;; "cedet/semantic/tag-ls.el" "cedet/semantic/tag-write.el"
;;;;;; "cedet/semantic/tag.el" "cedet/semantic/texi.el" "cedet/semantic/util-modes.el"
;;;;;; "cedet/semantic/util.el" "cedet/semantic/wisent.el" "cedet/semantic/wisent/comp.el"
;;;;;; "cedet/semantic/wisent/java-tags.el" "cedet/semantic/wisent/javascript.el"
;;;;;; "cedet/srecode/el.el" "cedet/srecode/expandproto.el" "cedet/srecode/extract.el"
;;;;;; "cedet/srecode/fields.el" "cedet/srecode/filters.el" "cedet/srecode/find.el"
;;;;;; "cedet/srecode/getset.el" "cedet/srecode/insert.el" "cedet/srecode/java.el"
-;;;;;; "cedet/srecode/loaddefs.el" "cedet/srecode/map.el" "cedet/srecode/mode.el"
-;;;;;; "cedet/srecode/semantic.el" "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el"
-;;;;;; "cedet/srecode/table.el" "cedet/srecode/template.el" "cedet/srecode/texi.el"
-;;;;;; "cus-dep.el" "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el"
-;;;;;; "dos-vars.el" "dos-w32.el" "dynamic-setting.el" "emacs-lisp/assoc.el"
-;;;;;; "emacs-lisp/authors.el" "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el"
-;;;;;; "emacs-lisp/byte-opt.el" "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el"
-;;;;;; "emacs-lisp/cl-loaddefs.el" "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el"
-;;;;;; "emacs-lisp/cl-specs.el" "emacs-lisp/cust-print.el" "emacs-lisp/eieio-base.el"
-;;;;;; "emacs-lisp/eieio-custom.el" "emacs-lisp/eieio-datadebug.el"
-;;;;;; "emacs-lisp/eieio-opt.el" "emacs-lisp/eieio-speedbar.el"
-;;;;;; "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el" "emacs-lisp/gulp.el"
-;;;;;; "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el" "emacs-lisp/regi.el"
-;;;;;; "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el" "emacs-lisp/tcover-unsafep.el"
-;;;;;; "emulation/cua-gmrk.el" "emulation/cua-rect.el" "emulation/edt-lk201.el"
-;;;;;; "emulation/edt-mapper.el" "emulation/edt-pc.el" "emulation/edt-vt100.el"
-;;;;;; "emulation/tpu-extras.el" "emulation/viper-cmd.el" "emulation/viper-ex.el"
-;;;;;; "emulation/viper-init.el" "emulation/viper-keym.el" "emulation/viper-macs.el"
-;;;;;; "emulation/viper-mous.el" "emulation/viper-util.el" "erc/erc-backend.el"
-;;;;;; "erc/erc-goodies.el" "erc/erc-ibuffer.el" "erc/erc-lang.el"
-;;;;;; "eshell/em-alias.el" "eshell/em-banner.el" "eshell/em-basic.el"
-;;;;;; "eshell/em-cmpl.el" "eshell/em-dirs.el" "eshell/em-glob.el"
-;;;;;; "eshell/em-hist.el" "eshell/em-ls.el" "eshell/em-pred.el"
-;;;;;; "eshell/em-prompt.el" "eshell/em-rebind.el" "eshell/em-script.el"
-;;;;;; "eshell/em-smart.el" "eshell/em-term.el" "eshell/em-unix.el"
-;;;;;; "eshell/em-xtra.el" "eshell/esh-arg.el" "eshell/esh-cmd.el"
-;;;;;; "eshell/esh-ext.el" "eshell/esh-groups.el" "eshell/esh-io.el"
+;;;;;; "cedet/srecode/map.el" "cedet/srecode/mode.el" "cedet/srecode/semantic.el"
+;;;;;; "cedet/srecode/srt-wy.el" "cedet/srecode/srt.el" "cedet/srecode/table.el"
+;;;;;; "cedet/srecode/template.el" "cedet/srecode/texi.el" "cus-dep.el"
+;;;;;; "dframe.el" "dired-aux.el" "dired-x.el" "dos-fns.el" "dos-vars.el"
+;;;;;; "dos-w32.el" "dynamic-setting.el" "emacs-lisp/assoc.el" "emacs-lisp/authors.el"
+;;;;;; "emacs-lisp/avl-tree.el" "emacs-lisp/bindat.el" "emacs-lisp/byte-opt.el"
+;;;;;; "emacs-lisp/chart.el" "emacs-lisp/cl-extra.el" "emacs-lisp/cl-loaddefs.el"
+;;;;;; "emacs-lisp/cl-macs.el" "emacs-lisp/cl-seq.el" "emacs-lisp/cl-specs.el"
+;;;;;; "emacs-lisp/cust-print.el" "emacs-lisp/eieio-base.el" "emacs-lisp/eieio-custom.el"
+;;;;;; "emacs-lisp/eieio-datadebug.el" "emacs-lisp/eieio-opt.el"
+;;;;;; "emacs-lisp/eieio-speedbar.el" "emacs-lisp/eieio.el" "emacs-lisp/find-gc.el"
+;;;;;; "emacs-lisp/gulp.el" "emacs-lisp/lisp-mnt.el" "emacs-lisp/package-x.el"
+;;;;;; "emacs-lisp/regi.el" "emacs-lisp/smie.el" "emacs-lisp/tcover-ses.el"
+;;;;;; "emacs-lisp/tcover-unsafep.el" "emulation/cua-gmrk.el" "emulation/cua-rect.el"
+;;;;;; "emulation/edt-lk201.el" "emulation/edt-mapper.el" "emulation/edt-pc.el"
+;;;;;; "emulation/edt-vt100.el" "emulation/tpu-extras.el" "emulation/viper-cmd.el"
+;;;;;; "emulation/viper-ex.el" "emulation/viper-init.el" "emulation/viper-keym.el"
+;;;;;; "emulation/viper-macs.el" "emulation/viper-mous.el" "emulation/viper-util.el"
+;;;;;; "erc/erc-backend.el" "erc/erc-goodies.el" "erc/erc-ibuffer.el"
+;;;;;; "erc/erc-lang.el" "eshell/em-alias.el" "eshell/em-banner.el"
+;;;;;; "eshell/em-basic.el" "eshell/em-cmpl.el" "eshell/em-dirs.el"
+;;;;;; "eshell/em-glob.el" "eshell/em-hist.el" "eshell/em-ls.el"
+;;;;;; "eshell/em-pred.el" "eshell/em-prompt.el" "eshell/em-rebind.el"
+;;;;;; "eshell/em-script.el" "eshell/em-smart.el" "eshell/em-term.el"
+;;;;;; "eshell/em-unix.el" "eshell/em-xtra.el" "eshell/esh-arg.el"
+;;;;;; "eshell/esh-cmd.el" "eshell/esh-ext.el" "eshell/esh-io.el"
;;;;;; "eshell/esh-module.el" "eshell/esh-opt.el" "eshell/esh-proc.el"
;;;;;; "eshell/esh-util.el" "eshell/esh-var.el" "ezimage.el" "foldout.el"
;;;;;; "format-spec.el" "forms-d2.el" "forms-pass.el" "fringe.el"
;;;;;; "vc/ediff-ptch.el" "vc/ediff-vers.el" "vc/ediff-wind.el"
;;;;;; "vc/pcvs-info.el" "vc/pcvs-parse.el" "vc/pcvs-util.el" "vc/vc-dav.el"
;;;;;; "vcursor.el" "vt-control.el" "vt100-led.el" "w32-fns.el"
-;;;;;; "w32-vars.el" "x-dnd.el") (20303 23285 822071))
+;;;;;; "w32-vars.el" "x-dnd.el") (20345 10919 58375))
;;;***
\f
(load "widget")
(load "custom")
(load "emacs-lisp/map-ynp")
-(load "cus-start")
(load "international/mule")
(load "international/mule-conf")
(load "env")
(load "format")
(load "bindings")
+(load "cus-start")
(load "window") ; Needed here for `replace-buffer-in-windows'.
(setq load-source-file-function 'load-with-code-conversion)
(load "files")
(if (fboundp 'x-create-frame)
(progn
(load "fringe")
+ ;; Needed by `imagemagick-register-types'
+ (load "emacs-lisp/regexp-opt")
(load "image")
(load "international/fontset")
(load "dnd")
(versions (mapcar (function (lambda (name)
(string-to-number (substring name (length base)))))
files)))
+ (setq emacs-bzr-version (condition-case nil (emacs-bzr-get-version)
+ (error nil)))
;; `emacs-version' is a constant, so we shouldn't change it with `setq'.
(defconst emacs-version
(format "%s.%d"
:group 'news)
(defcustom binhex-decoder-program "hexbin"
- "*Non-nil value should be a string that names a binhex decoder.
+ "Non-nil value should be a string that names a binhex decoder.
The program should expect to read binhex data on its standard
input and write the converted data to its standard output."
:type 'string
:group 'binhex)
(defcustom binhex-decoder-switches '("-d")
- "*List of command line flags passed to the command `binhex-decoder-program'."
+ "List of command line flags passed to the command `binhex-decoder-program'."
:group 'binhex
:type '(repeat string))
(defcustom binhex-use-external
(executable-find binhex-decoder-program)
- "*Use external binhex program."
+ "Use external binhex program."
:version "22.1"
:group 'binhex
:type 'boolean)
(set (make-local-variable 'message-strip-special-text-properties) nil))
(rfc822-goto-eoh)
(forward-line 1)
- (let ((signature (buffer-substring (point) (point-max))))
+ ;; Move the mail signature to the proper place.
+ (let ((signature (buffer-substring (point) (point-max)))
+ (inhibit-read-only t))
(delete-region (point) (point-max))
(insert signature)
(backward-char (length signature)))
(add-text-properties (1+ user-point) (point) prompt-properties)
(insert "\n\nIn " (emacs-version) "\n")
+ (if (stringp emacs-bzr-version)
+ (insert "Bzr revision: " emacs-bzr-version "\n"))
(if (fboundp 'x-server-vendor)
(condition-case nil
;; This is used not only for X11 but also W32 and others.
(defvar feedmail-queue-runner-is-active nil
- "*Non-nil means we're inside the logic of the queue-running loop.
+ "Non-nil means we're inside the logic of the queue-running loop.
That is, iterating over all messages in the queue to send them. In
that case, the value is the name of the queued message file currently
being processed. This can be used for differentiating customized code
(defvar feedmail-mail-send-hook nil
- "*See documentation for `feedmail-mail-send-hook-splitter'.")
+ "See documentation for `feedmail-mail-send-hook-splitter'.")
(defvar feedmail-mail-send-hook-queued nil
- "*See documentation for `feedmail-mail-send-hook-splitter'.")
+ "See documentation for `feedmail-mail-send-hook-splitter'.")
(defun feedmail-confirm-addresses-hook-example ()
(defvar feedmail-is-a-resend nil
- "*Non-nil means the message is a Resend (in the RFC-822 sense).
+ "Non-nil means the message is a Resend (in the RFC-822 sense).
This affects the composition of certain headers. feedmail sets this
variable as soon as it starts prepping the message text buffer, so any
user-supplied functions can rely on it. Users shouldn't set or change this
;; feedmail-buffer-to-binmail, feedmail-buffer-to-sendmail, and
-;; feedmail-buffer-to-smptmail are the only things provided for values
+;; feedmail-buffer-to-smtpmail are the only things provided for values
;; for the variable feedmail-buffer-eating-function. It's pretty easy
;; to write your own, though.
(defun feedmail-buffer-to-binmail (prepped errors-to addr-listoid)
(defvar footnote-signature-separator (if (boundp 'message-signature-separator)
message-signature-separator
"^-- $")
- "*String used to recognize .signatures.")
+ "String used to recognize .signatures.")
;;; Private variables
:group 'mail)
(defcustom hashcash-default-payment 20
- "*The default number of bits to pay to unknown users.
+ "The default number of bits to pay to unknown users.
If this is zero, no payment header will be generated.
See `hashcash-payment-alist'."
:type 'integer
:group 'hashcash)
(defcustom hashcash-payment-alist '()
- "*An association list mapping email addresses to payment amounts.
+ "An association list mapping email addresses to payment amounts.
Elements may consist of (ADDR AMOUNT) or (ADDR STRING AMOUNT), where
ADDR is the email address of the intended recipient and AMOUNT is
the value of hashcash payment to be made to that user. STRING, if
:group 'hashcash)
(defcustom hashcash-default-accept-payment 20
- "*The default minimum number of bits to accept on incoming payments."
+ "The default minimum number of bits to accept on incoming payments."
:type 'integer
:group 'hashcash)
(defcustom hashcash-accept-resources `((,user-mail-address nil))
- "*An association list mapping hashcash resources to payment amounts.
+ "An association list mapping hashcash resources to payment amounts.
Resources named here are to be accepted in incoming payments. If the
corresponding AMOUNT is NIL, the value of `hashcash-default-accept-payment'
is used instead."
:group 'hashcash)
(defcustom hashcash-path (executable-find "hashcash")
- "*The path to the hashcash binary."
+ "The path to the hashcash binary."
:group 'hashcash)
(defcustom hashcash-extra-generate-parameters nil
- "*A list of parameter strings passed to `hashcash-path' when minting.
+ "A list of parameter strings passed to `hashcash-path' when minting.
For example, you may want to set this to '(\"-Z2\") to reduce header length."
:type '(repeat string)
:group 'hashcash)
(defcustom hashcash-double-spend-database "hashcash.db"
- "*The path to the double-spending database."
+ "The path to the double-spending database."
:group 'hashcash)
(defcustom hashcash-in-news nil
- "*Specifies whether or not hashcash payments should be made to newsgroups."
+ "Specifies whether or not hashcash payments should be made to newsgroups."
:type 'boolean
:group 'hashcash)
;;
(defcustom mail-extr-guess-middle-initial nil
- "*Whether to try to guess middle initial from mail address.
+ "Whether to try to guess middle initial from mail address.
If true, then when we see an address like \"John Smith <jqs@host.com>\"
we will assume that \"John Q. Smith\" is the fellow's name."
:type 'boolean
:group 'mail-extr)
(defcustom mail-extr-ignore-single-names nil
- "*Whether to ignore a name that is just a single word.
+ "Whether to ignore a name that is just a single word.
If true, then when we see an address like \"Idiot <dumb@stupid.com>\"
we will act as though we couldn't find a full name in the address."
:type 'boolean
(defcustom mail-extr-full-name-prefixes
(purecopy
"\\(Prof\\|D[Rr]\\|Mrs?\\|Rev\\|Rabbi\\|SysOp\\|LCDR\\)\\.?[ \t\n]")
- "*Matches prefixes to the full name that identify a person's position.
+ "Matches prefixes to the full name that identify a person's position.
These are stripped from the full name because they do not contribute to
uniquely identifying the person."
:type 'regexp
:group 'mail-extr)
(defcustom mail-extr-@-binds-tighter-than-! nil
- "*Whether the local mail transport agent looks at ! before @."
+ "Whether the local mail transport agent looks at ! before @."
:type 'boolean
:group 'mail-extr)
(defcustom mail-extr-mangle-uucp nil
- "*Whether to throw away information in UUCP addresses
+ "Whether to throw away information in UUCP addresses
by translating things like \"foo!bar!baz@host\" into \"baz@bar.UUCP\"."
:type 'boolean
:group 'mail-extr)
))
(defcustom mail-extr-disable-voodoo "\\cj"
- "*If it is a regexp, names matching it will never be modified.
+ "If it is a regexp, names matching it will never be modified.
If it is neither nil nor a string, modifying of names will never take
place. It affects how `mail-extract-address-components' works."
:type '(choice (regexp :size 0)
previous/next input.")
(defcustom mail-hist-history-size (or kill-ring-max 1729)
- "*The maximum number of elements in a mail field's history.
+ "The maximum number of elements in a mail field's history.
Oldest elements are dumped first."
:type 'integer
:group 'mail-hist)
;;;###autoload
(defcustom mail-hist-keep-history t
- "*Non-nil means keep a history for headers and text of outgoing mail."
+ "Non-nil means keep a history for headers and text of outgoing mail."
:type 'boolean
:group 'mail-hist)
(cdr (assoc header mail-hist-header-ring-alist)))
(defcustom mail-hist-text-size-limit nil
- "*Don't store any header or body with more than this many characters.
+ "Don't store any header or body with more than this many characters.
If the value is nil, that means no limit on text size."
:type '(choice (const nil) integer)
:group 'mail-hist)
(message "Parsing %s... done" file))
(defvar mail-alias-separator-string ", "
- "*A string inserted between addresses in multi-address mail aliases.
+ "A string inserted between addresses in multi-address mail aliases.
This has to contain a comma, so \", \" is a reasonable value. You might
also want something like \",\\n \" to get each address on its own line.")
(defvar mail-abbrev-mode-regexp
"^\\(Resent-\\)?\\(To\\|From\\|CC\\|BCC\\|Reply-to\\):"
- "*Regexp to select mail-headers in which mail abbrevs should be expanded.
+ "Regexp to select mail-headers in which mail abbrevs should be expanded.
This string will be handed to `looking-at' with point at the beginning
of the current line; if it matches, abbrev mode will be turned on, otherwise
it will be turned off. (You don't need to worry about continuation lines.)
:group 'processes)
(defcustom metamail-program-name "metamail"
- "*Metamail program name."
+ "Metamail program name."
:type 'string
:group 'metamail)
(defcustom metamail-mailer-name "emacs"
- "*Mailer name set to MM_MAILER environment variable."
+ "Mailer name set to MM_MAILER environment variable."
:type 'string
:group 'metamail)
(defvar metamail-environment '("KEYHEADS=*" "MM_QUIET=1")
- "*Environment variables passed to `metamail'.
+ "Environment variables passed to `metamail'.
It must be a list of strings that have the format ENVVARNAME=VALUE.
It is not expected to be altered globally by `set' or `setq'.
Instead, change its value temporary using `let' or `let*' form.")
(defcustom metamail-switches '("-x" "-d" "-z")
- "*Switches for `metamail' program.
+ "Switches for `metamail' program.
`-z' is required to remove zap file.
It is not expected to be altered globally by `set' or `setq'.
Instead, change its value temporary using `let' or `let*' form.
)
(defcustom mspools-update nil
- "*Non-nil means update *spools* buffer after visiting any folder."
+ "Non-nil means update *spools* buffer after visiting any folder."
:type 'boolean
:group 'mspools)
(defcustom mspools-suffix "spool"
- "*Extension used for spool files (not including full stop)."
+ "Extension used for spool files (not including full stop)."
:type 'string
:group 'mspools)
(defcustom mspools-using-vm (fboundp 'vm)
- "*Non-nil if VM is used as mail reader, otherwise RMAIL is used."
+ "Non-nil if VM is used as mail reader, otherwise RMAIL is used."
:type 'boolean
:group 'mspools)
(if (boundp 'vm-folder-directory)
vm-folder-directory
"~/MAIL/")
- "*Directory where mail folders are kept. Ensure it has a trailing /.
+ "Directory where mail folders are kept. Ensure it has a trailing /.
Defaults to `vm-folder-directory' if bound else to ~/MAIL/."
:type 'directory
:group 'mspools)
(defcustom mspools-vm-system-mail (or (getenv "MAIL")
(concat rmail-spool-directory
(user-login-name)))
- "*Spool file for main mailbox. Only used by VM.
+ "Spool file for main mailbox. Only used by VM.
This needs to be set to your primary mail spool - mspools will not run
without it. By default this will be set to the environment variable
$MAIL. Otherwise it will use `rmail-spool-directory' to guess where
;; FIXME this is unused since 23.1.
(defvar rmail-decode-mime-charset t
- "*Non-nil means a message is decoded by MIME's charset specification.
+ "Non-nil means a message is decoded by MIME's charset specification.
If this variable is nil, or the message has not MIME specification,
the message is decoded as normal way.
(eval-when-compile (require 'speedbar))
(defvar rmail-speedbar-match-folder-regexp "^[A-Z0-9]+\\(\\.[A-Z0-9]+\\)?$"
- "*This regex is used to match folder names to be displayed in speedbar.
+ "This regex is used to match folder names to be displayed in speedbar.
Enabling this will permit speedbar to display your folders for easy
browsing, and moving of messages.")
;;;***
\f
;;;### (autoloads (unforward-rmail-message undigestify-rmail-message)
-;;;;;; "undigest" "undigest.el" "a31a35802a2adbc51be42959c3043dbd")
+;;;;;; "undigest" "undigest.el" "9f270a2571bbbbfabc27498a8d4089c7")
;;; Generated autoloads from undigest.el
(autoload 'undigestify-rmail-message "undigest" "\
(define-key map "\C-c\C-w" 'mail-signature)
(define-key map "\C-c\C-c" 'mail-send-and-exit)
(define-key map "\C-c\C-s" 'mail-send)
- (define-key map "\C-c\C-i" 'mail-attach-file)
+ (define-key map "\C-c\C-i" 'mail-insert-file)
;; FIXME add this? "b" = bury buffer. It's in the menu-bar.
;;; (define-key map "\C-c\C-b" 'mail-dont-send)
;;;###autoload
(defvar sendmail-coding-system nil
- "*Coding system for encoding the outgoing mail.
+ "Coding system for encoding the outgoing mail.
This has higher priority than the default `buffer-file-coding-system'
and `default-sendmail-coding-system',
but lower priority than the local value of `buffer-file-coding-system'.
(defcustom rmail-forward-separator-regex
"^----.*\\([Ff]orwarded\\|[Oo]riginal\\).*[Mm]essage"
- "*Regexp to match the string that introduces forwarded messages.
+ "Regexp to match the string that introduces forwarded messages.
This is not a header, but a string contained in the body of the message.
You may need to customize it for local needs."
:type 'regexp
:group 'news)
(defcustom uudecode-decoder-program "uudecode"
- "*Non-nil value should be a string that names a uu decoder.
+ "Non-nil value should be a string that names a uu decoder.
The program should expect to read uu data on its standard
input and write the converted data to its standard output."
:type 'string
:group 'uudecode)
(defcustom uudecode-decoder-switches nil
- "*List of command line flags passed to `uudecode-decoder-program'."
+ "List of command line flags passed to `uudecode-decoder-program'."
:group 'uudecode
:type '(repeat string))
(defcustom uudecode-use-external
(executable-find uudecode-decoder-program)
- "*Use external uudecode program."
+ "Use external uudecode program."
:version "22.1"
:group 'uudecode
:type 'boolean)
#
install:
- mkdir "$(INSTALL_DIR)/lisp"
- - $(DEL) ../same-dir.tst
- - $(DEL) "$(INSTALL_DIR)/same-dir.tst"
- echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"
+ - $(DEL) ../$(DIRNAME)_same-dir.tst
+ - $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
+ echo SameDirTest > "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
#ifdef COPY_LISP_SOURCE
$(IFNOTSAMEDIR) $(MAKE) $(MFLAGS) install-lisp-$(SHELLTYPE) $(ENDIF)
#else
# $(IFNOTSAMEDIR) $(CP) international/latin-*.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
# $(IFNOTSAMEDIR) $(CP) international/mule-conf.el "$(INSTALL_DIR)/lisp/international" $(ENDIF)
#endif
- - $(DEL) ../same-dir.tst
- - $(DEL) "$(INSTALL_DIR)/same-dir.tst"
+ - $(DEL) ../$(DIRNAME)_same-dir.tst
+ - $(DEL) "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
# Need to copy *.el files first, to avoid "source file is newer" annoyance
# since cp does not preserve time stamps
(defvar minibuffer-default-in-prompt-regexps
'(("\\( (default\\>.*)\\):? \\'" . 1) ("\\( \\[.*\\]\\):? *\\'" . 1))
- "*A list of regexps matching the parts of minibuffer prompts showing defaults.
+ "A list of regexps matching the parts of minibuffer prompts showing defaults.
When `minibuffer-electric-default-mode' is active, these regexps are
used to identify the portions of prompts to elide.
(defvar completion-extra-properties nil
"Property list of extra properties of the current completion job.
These include:
-`:annotation-function': Function to add annotations in the completions buffer.
- The function takes a completion and should either return nil, or a string
- that will be displayed next to the completion. The function can access the
- completion data via `minibuffer-completion-table' and related variables.
+
+`:annotation-function': Function to annotate the completions buffer.
+ The function must accept one argument, a completion string,
+ and return either nil or a string which is to be displayed
+ next to the completion (but which is not part of the
+ completion). The function can access the completion data via
+ `minibuffer-completion-table' and related variables.
+
`:exit-function': Function to run after completion is performed.
- The function takes at least 2 parameters (STRING and STATUS) where STRING
- is the text to which the field was completed and STATUS indicates what
- kind of operation happened: if text is now complete it's `finished', if text
- cannot be further completed but completion is not finished, it's `sole', if
- text is a valid completion but may be further completed, it's `exact', and
- other STATUSes may be added in the future.")
+
+ The function must accept two arguments, STRING and STATUS.
+ STRING is the text to which the field was completed, and
+ STATUS indicates what kind of operation happened:
+ `finished' - text is now complete
+ `sole' - text cannot be further completed but
+ completion is not finished
+ `exact' - text is a valid completion but may be further
+ completed.")
(defvar completion-annotate-function
nil
(let ((map (make-sparse-keymap)))
;; FIXME: Only works if completion-in-region-mode was activated via
;; completion-at-point called directly.
- (define-key map "?" 'completion-help-at-point)
+ (define-key map "\M-?" 'completion-help-at-point)
(define-key map "\t" 'completion-at-point)
map)
"Keymap activated during `completion-in-region'.")
(funcall (or read-file-name-function #'read-file-name-default)
prompt dir default-filename mustmatch initial predicate))
+(defvar minibuffer-local-filename-syntax
+ (let ((table (make-syntax-table))
+ (punctuation (car (string-to-syntax "."))))
+ ;; Convert all punctuation entries to symbol.
+ (map-char-table (lambda (c syntax)
+ (when (eq (car syntax) punctuation)
+ (modify-syntax-entry c "_" table)))
+ table)
+ (mapc
+ (lambda (c)
+ (modify-syntax-entry c "." table))
+ '(?/ ?: ?\\))
+ table)
+ "Syntax table to be used in minibuffer for reading file name.")
+
;; minibuffer-completing-file-name is a variable used internally in minibuf.c
;; to determine whether to use minibuffer-local-filename-completion-map or
;; minibuffer-local-completion-map. It shouldn't be exported to Elisp.
(lambda ()
(with-current-buffer
(window-buffer (minibuffer-selected-window))
- (read-file-name--defaults dir initial)))))
+ (read-file-name--defaults dir initial))))
+ (set-syntax-table minibuffer-local-filename-syntax))
(completing-read prompt 'read-file-name-internal
pred mustmatch insdef
'file-name-history default-filename)))
(defvar list-dynamic-libraries--loaded-only-p)
(make-variable-buffer-local 'list-dynamic-libraries--loaded-only-p)
+(defun list-dynamic-libraries--loaded (from)
+ "Compute the \"Loaded from\" column.
+Internal use only."
+ (if from
+ (let ((name (car from))
+ (path (or (cdr from) "<unknown>")))
+ ;; This is a roundabout way to change the tooltip without
+ ;; having to replace the default printer function
+ (propertize name
+ 'display (propertize name
+ 'help-echo (concat "Loaded from: " path))))
+ ""))
+
(defun list-dynamic-libraries--refresh ()
"Recompute the list of dynamic libraries.
Internal use only."
(when (or from
(not list-dynamic-libraries--loaded-only-p))
(push (list id (vector (symbol-name id)
- (or from "")
+ (list-dynamic-libraries--loaded from)
(mapconcat 'identity (cdr lib) ", ")))
tabulated-list-entries)))))
nil))))))
(defvar mouse-throw-with-scroll-bar nil
- "*Set direction of mouse-throwing.
+ "Set direction of mouse-throwing.
If nil, the text moves in the direction the mouse moves.
If t, the scroll bar moves in the direction the mouse moves.")
(defconst mouse-throw-magnifier-min -6)
;;; mouse.el --- window system-independent mouse support
-;; Copyright (C) 1993-1995, 1999-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 1999-2012 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: hardware, mouse
(= click-count 1)))
;; Suppress automatic hscrolling, because that is a nuisance
;; when setting point near the right fringe (but see below).
- (automatic-hscrolling-saved automatic-hscrolling)
- (automatic-hscrolling nil)
+ (auto-hscroll-mode-saved auto-hscroll-mode)
+ (auto-hscroll-mode nil)
event end end-point)
(setq mouse-selection-click-count click-count)
;; Automatic hscrolling did not occur during the call to
;; `read-event'; but if the user subsequently drags the
;; mouse, go ahead and hscroll.
- (let ((automatic-hscrolling automatic-hscrolling-saved))
+ (let ((auto-hscroll-mode auto-hscroll-mode-saved))
(redisplay))
(setq end (event-end event)
end-point (posn-point end))
;;; mpc.el --- A client for the Music Player Daemon -*- coding: utf-8; lexical-binding: t -*-
-;; Copyright (C) 2006-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2006-2012 Free Software Foundation, Inc.
;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
;; Keywords: multimedia
(abs res))
res))))))))
-(defun mpc-string-prefix-p (str1 str2)
- ;; FIXME: copied from pcvs-util.el.
- "Tell whether STR1 is a prefix of STR2."
- (eq t (compare-strings str2 nil (length str1) str1 nil nil)))
+(define-obsolete-function-alias 'mpc-string-prefix-p 'string-prefix-p "24.2")
;; This can speed up mpc--song-search significantly. The table may grow
;; very large, tho. It's only bounded by the fact that it gets flushed
(process-put (mpc-proc) prop
(delq nil
(mapcar (lambda (x)
- (if (mpc-string-prefix-p name x)
+ (if (string-prefix-p name x)
nil x))
new)))))
(mpc-tagbrowser-refresh)))
:group 'msb)
(defvar msb-files-by-directory-sort-key 0
- "*The sort key for files sorted by directory.")
+ "The sort key for files sorted by directory.")
(defcustom msb-max-menu-items 15
"The maximum number of items in a menu.
:group 'msb)
(defvar msb-horizontal-shift-function (lambda () 0)
- "*Function that specifies how many pixels to shift the top menu leftwards.")
+ "Function that specifies how many pixels to shift the top menu leftwards.")
(defcustom msb-display-invisible-buffers-p nil
"Show invisible buffers or not.
:group 'msb)
(defvar msb-item-handling-function 'msb-item-handler
- "*The appearance of a buffer menu.
+ "The appearance of a buffer menu.
The default function to call for handling the appearance of a menu
item. It should take two arguments, BUFFER and MAX-BUFFER-NAME-LENGTH,
(end-of-buffer (while t (funcall mwheel-scroll-up-function)))))
(t (error "Bad binding in mwheel-scroll"))))
(if curwin (select-window curwin)))
- ;; If there is a temporarily active region, deactivate it iff
+ ;; If there is a temporarily active region, deactivate it if
;; scrolling moves point.
(when opoint
(with-current-buffer buffer
(when (/= opoint (point))
- (deactivate-mark)))))
+ ;; Call `deactivate-mark' at the original position, so that
+ ;; the original region is saved to the X selection.
+ (let ((newpoint (point)))
+ (goto-char opoint)
+ (deactivate-mark)
+ (goto-char newpoint))))))
(when (and mouse-wheel-click-event mouse-wheel-inhibit-click-time)
(if mwheel-inhibit-click-event-timer
(cancel-timer mwheel-inhibit-click-event-timer)
(defvar ange-ftp-multi-msgs
"^150-\\|^220-\\|^230-\\|^226\\|^25.-\\|^221-\\|^200-\\|^331-\\|^4[25]1-\\|^530-"
- "*Regular expression matching the start of a multiline FTP reply.")
+ "Regular expression matching the start of a multiline FTP reply.")
(defvar ange-ftp-good-msgs
"^220 \\|^230 \\|^226 \\|^25. \\|^221 \\|^200 \\|^[Hh]ash mark"
- "*Regular expression matching FTP \"success\" messages.")
+ "Regular expression matching FTP \"success\" messages.")
;; CMS and the odd VMS machine say 200 Port rather than 200 PORT.
;; Also CMS machines use a multiline 550- reply to say that you
(if (eq system-type 'hpux)
"stty -onlcr -echo\n"
"stty -echo nl\n")
- "*Set up terminal after logging in to the gateway machine.
+ "Set up terminal after logging in to the gateway machine.
This command should stop the terminal from echoing each command, and
arrange to strip out trailing ^M characters.")
;; ange@hplb.hpl.hp.com says this should not be changed.
(defvar ange-ftp-hash-mark-msgs
"[hH]ash mark [^0-9]*\\([0-9]+\\)"
- "*Regexp matching the FTP client's output upon doing a HASH command.")
+ "Regexp matching the FTP client's output upon doing a HASH command.")
(defun ange-ftp-guess-hash-mark-size (proc)
(if ange-ftp-send-hash
(defcustom ange-ftp-bs2000-additional-pubsets
nil
- "*List of additional pubsets available to all users."
+ "List of additional pubsets available to all users."
:group 'ange-ftp
:type '(repeat string))
;; it in anonymous cases. If it's not anonymous the next regexp
;; applies.
("^/\\([^:@]+@\\)?\\([^:]+\\):/*" . "ftp://\\1\\2/")
- ,@(if (memq system-type '(windows-nt ms-dos cygwin))
+ ,@(if (memq system-type '(windows-nt ms-dos))
'(("^\\([a-zA-Z]:\\)[\\/]" . "file:///\\1/")
("^[\\/][\\/]+" . "file://")))
("^/+" . "file:///"))
(defun browse-url-file-url (file)
"Return the URL corresponding to FILE.
Use variable `browse-url-filename-alist' to map filenames to URLs."
- ;; De-munge Cygwin filenames before passing them to Windows browser.
- (if (eq system-type 'cygwin)
- (let ((winfile (with-output-to-string
- (call-process "cygpath" nil standard-output
- nil "-m" file))))
- (setq file (substring winfile 0 -1))))
(let ((coding (and (default-value 'enable-multibyte-characters)
(or file-name-coding-system
default-file-name-coding-system))))
;; I don't expect users to want fontify'ing without highlighting.
(defcustom goto-address-fontify-p t
- "*Non-nil means URLs and e-mail addresses in buffer are fontified.
+ "Non-nil means URLs and e-mail addresses in buffer are fontified.
But only if `goto-address-highlight-p' is also non-nil."
:type 'boolean
:group 'goto-address)
(defcustom goto-address-highlight-p t
- "*Non-nil means URLs and e-mail addresses in buffer are highlighted."
+ "Non-nil means URLs and e-mail addresses in buffer are highlighted."
:type 'boolean
:group 'goto-address)
(defcustom goto-address-fontify-maximum-size 30000
- "*Maximum size of file in which to fontify and/or highlight URLs.
+ "Maximum size of file in which to fontify and/or highlight URLs.
A value of t means there is no limit--fontify regardless of the size."
:type '(choice (integer :tag "Maximum size") (const :tag "No limit" t))
:group 'goto-address)
:type '(repeat string))
(defcustom imap-process-connection-type nil
- "*Value for `process-connection-type' to use for Kerberos4, GSSAPI, shell, and SSL.
+ "Value for `process-connection-type' to use for Kerberos4, GSSAPI, shell, and SSL.
The `process-connection-type' variable controls the type of device
used to communicate with subprocesses. Values are nil to use a
pipe, or t or `pty' to use a pty. The value has no effect if the
(symbol-name system-type))
1.0
0.1)
- "*How long to wait between checking for the end of output.
+ "How long to wait between checking for the end of output.
Shorter values mean quicker response, but is more CPU intensive."
:type 'number
:group 'imap)
:prefix "quickurl-")
(defcustom quickurl-url-file (convert-standard-filename "~/.quickurls")
- "*File that contains the URL list."
+ "File that contains the URL list."
:type 'file
:group 'quickurl)
(defcustom quickurl-format-function (lambda (url) (format "<URL:%s>" (quickurl-url-url url)))
- "*Function to format the URL before insertion into the current buffer."
+ "Function to format the URL before insertion into the current buffer."
:type 'function
:group 'quickurl)
(string<
(downcase (quickurl-url-description x))
(downcase (quickurl-url-description y))))))
- "*Function to sort the URL list."
+ "Function to sort the URL list."
:type 'function
:group 'quickurl)
(defcustom quickurl-grab-lookup-function #'current-word
- "*Function to grab the thing to lookup."
+ "Function to grab the thing to lookup."
:type 'function
:group 'quickurl)
(defcustom quickurl-assoc-function #'assoc-ignore-case
- "*Function to use for alist lookup into `quickurl-urls'."
+ "Function to use for alist lookup into `quickurl-urls'."
:type 'function
:group 'quickurl)
(defcustom quickurl-completion-ignore-case t
- "*Should `quickurl-ask' ignore case when doing the input lookup?"
+ "Should `quickurl-ask' ignore case when doing the input lookup?"
:type 'boolean
:group 'quickurl)
(defcustom quickurl-prefix ";; -*- lisp -*-\n\n"
- "*Text to write to `quickurl-url-file' before writing the URL list."
+ "Text to write to `quickurl-url-file' before writing the URL list."
:type 'string
:group 'quickurl)
(defcustom quickurl-postfix ""
- "*Text to write to `quickurl-url-file' after writing the URL list.
+ "Text to write to `quickurl-url-file' after writing the URL list.
See the constant `quickurl-reread-hook-postfix' for some example text that
could be used here."
:group 'quickurl)
(defcustom quickurl-list-mode-hook nil
- "*Hooks for `quickurl-list-mode'."
+ "Hooks for `quickurl-list-mode'."
:type 'hook
:group 'quickurl)
:group 'rcirc)
(defcustom rcirc-fill-flag t
- "*Non-nil means line-wrap messages printed in channel buffers."
+ "Non-nil means line-wrap messages printed in channel buffers."
:type 'boolean
:group 'rcirc)
(defcustom rcirc-fill-column nil
- "*Column beyond which automatic line-wrapping should happen.
+ "Column beyond which automatic line-wrapping should happen.
If nil, use value of `fill-column'. If 'frame-width, use the
maximum frame width."
:type '(choice (const :tag "Value of `fill-column'")
:group 'rcirc)
(defcustom rcirc-fill-prefix nil
- "*Text to insert before filled lines.
+ "Text to insert before filled lines.
If nil, calculate the prefix dynamically to line up text
underneath each nick."
:type '(choice (const :tag "Dynamic" nil)
(make-variable-buffer-local 'rcirc-omit-mode)
(defcustom rcirc-time-format "%H:%M "
- "*Describes how timestamps are printed.
+ "Describes how timestamps are printed.
Used as the first arg to `format-time-string'."
:type 'string
:group 'rcirc)
(defcustom rcirc-input-ring-size 1024
- "*Size of input history ring."
+ "Size of input history ring."
:type 'integer
:group 'rcirc)
(defcustom rcirc-read-only-flag t
- "*Non-nil means make text in IRC buffers read-only."
+ "Non-nil means make text in IRC buffers read-only."
:type 'boolean
:group 'rcirc)
(defcustom rcirc-buffer-maximum-lines nil
- "*The maximum size in lines for rcirc buffers.
+ "The maximum size in lines for rcirc buffers.
Channel buffers are truncated from the top to be no greater than this
number. If zero or nil, no truncating is done."
:type '(choice (const :tag "No truncation" nil)
:group 'rcirc)
(defcustom rcirc-scroll-show-maximum-output t
- "*If non-nil, scroll buffer to keep the point at the bottom of
+ "If non-nil, scroll buffer to keep the point at the bottom of
the window."
:type 'boolean
:group 'rcirc)
:group 'rcirc)
(defcustom rcirc-auto-authenticate-flag t
- "*Non-nil means automatically send authentication string to server.
+ "Non-nil means automatically send authentication string to server.
See also `rcirc-authinfo'."
:type 'boolean
:group 'rcirc)
(defcustom rcirc-authenticate-before-join t
- "*Non-nil means authenticate to services before joining channels.
+ "Non-nil means authenticate to services before joining channels.
Currently only works with NickServ on some networks."
:version "24.1"
:type 'boolean
:type 'string
:group 'rcirc)
+(defcustom rcirc-kill-channel-buffers nil
+ "When non-nil, kill channel buffers when the server buffer is killed.
+Only the channel buffers associated with the server in question
+will be killed."
+ :version "24.2"
+ :type 'boolean
+ :group 'rcirc)
+
(defvar rcirc-nick nil)
(defvar rcirc-prompt-start-marker nil)
:group 'rcirc)
(defun rcirc-kill-buffer-hook ()
- "Part the channel when killing an rcirc buffer."
+ "Part the channel when killing an rcirc buffer.
+
+If `rcirc-kill-channel-buffers' is non-nil and the killed buffer
+is a server buffer, kills all of the channel buffers associated
+with it."
(when (eq major-mode 'rcirc-mode)
(when (and rcirc-log-flag
rcirc-log-directory)
(rcirc-log-write))
- (rcirc-clean-up-buffer "Killed buffer")))
+ (rcirc-clean-up-buffer "Killed buffer")
+ (when (and rcirc-buffer-alist ;; it's a server buffer
+ rcirc-kill-channel-buffers)
+ (dolist (channel rcirc-buffer-alist)
+ (kill-buffer (cdr channel))))))
(defun rcirc-change-major-mode-hook ()
"Part the channel when changing the major-mode."
(let ((channel (if (> (length channel) 0) channel target)))
(rcirc-send-string process (concat "PART " channel " :" rcirc-id-string))))
-(defun-rcirc-command quit (reason all)
- "Send a quit message to server with REASON.
-When called with prefix, quit all servers."
- (interactive "sQuit reason: \nP")
- (dolist (p (if all
- (rcirc-process-list)
- (list process)))
- (rcirc-send-string p (concat "QUIT :"
- (if (not (zerop (length reason)))
- reason
- rcirc-id-string)))))
+(defun-rcirc-command quit (reason)
+ "Send a quit message to server with REASON."
+ (interactive "sQuit reason: ")
+ (rcirc-send-string process (concat "QUIT :"
+ (if (not (zerop (length reason)))
+ reason
+ rcirc-id-string))))
(defun-rcirc-command nick (nick)
"Change nick to NICK."
:group 'snmp)
(defvar snmp-tempo-tags nil
- "*Tempo tags for SNMP mode.")
+ "Tempo tags for SNMP mode.")
(defvar snmpv2-tempo-tags nil
- "*Tempo tags for SNMPv2 mode.")
+ "Tempo tags for SNMPv2 mode.")
;; Enable fontification for SNMP MIBs
;; could get a wrapper hook, or defer to open-network-stream-function.
(defvar socks-override-functions nil
- "*Whether to overwrite the open-network-stream function with the SOCKSified
+ "Whether to overwrite the open-network-stream function with the SOCKSified
version.")
(require 'network-stream)
\f
;; Replacement functions for open-network-stream, etc.
(defvar socks-noproxy nil
- "*List of regexps matching hosts that we should not socksify connections to")
+ "List of regexps matching hosts that we should not socksify connections to")
(defun socks-find-route (host service)
(let ((route socks-server)
\f
(defcustom socks-nslookup-program "nslookup"
- "*If non-NIL then a string naming the nslookup program."
+ "If non-NIL then a string naming the nslookup program."
:type '(choice (const :tag "None" :value nil) string)
:group 'socks)
;; Define FTP method ...
;;;###tramp-autoload
(defconst tramp-ftp-method "ftp"
- "*When this method name is used, forward all calls to Ange-FTP.")
+ "When this method name is used, forward all calls to Ange-FTP.")
;; ... and add it to the method list.
;;;###tramp-autoload
;;;###tramp-autoload
(defcustom tramp-gvfs-methods '("dav" "davs" "obex" "synce")
- "*List of methods for remote files, accessed with GVFS."
+ "List of methods for remote files, accessed with GVFS."
:group 'tramp
:version "23.2"
:type '(repeat (choice (const "dav")
(add-to-list 'tramp-default-user-alist '("\\`synce\\'" nil nil))
(defcustom tramp-gvfs-zeroconf-domain "local"
- "*Zeroconf domain to be used for discovering services, like host names."
+ "Zeroconf domain to be used for discovering services, like host names."
:group 'tramp
:version "23.2"
:type 'string)
(with-current-buffer (tramp-get-buffer vec)
(erase-buffer)
(tramp-message vec 6 "%s %s" command (mapconcat 'identity args " "))
- (setq result (apply 'tramp-local-call-process command nil t nil args))
+ (setq result (apply 'tramp-compat-call-process command nil t nil args))
(tramp-message vec 6 "%s" (buffer-string))
result)))
;; Define HTTP tunnel method ...
;;;###tramp-autoload
(defconst tramp-gw-tunnel-method "tunnel"
- "*Method to connect HTTP gateways.")
+ "Method to connect HTTP gateways.")
;; ... and port.
(defconst tramp-gw-default-tunnel-port 8080
- "*Default port for HTTP gateways.")
+ "Default port for HTTP gateways.")
;; Define SOCKS method ...
;;;###tramp-autoload
(defconst tramp-gw-socks-method "socks"
- "*Method to connect SOCKS servers.")
+ "Method to connect SOCKS servers.")
;; ... and port.
(defconst tramp-gw-default-socks-port 1080
- "*Default port for SOCKS servers.")
+ "Default port for SOCKS servers.")
;; Autoload the socks library. It is used only when we access a SOCKS server.
(autoload 'socks-open-network-stream "socks")
;; `dired-insert-set-properties'.
(defcustom tramp-inline-compress-start-size 4096
- "*The minimum size of compressing where inline transfer.
+ "The minimum size of compressing where inline transfer.
When inline transfer, compress transferred data of file
whose size is this value or above (up to `tramp-copy-size-limit').
If it is nil, no compression at all will be applied."
:type '(choice (const nil) integer))
(defcustom tramp-copy-size-limit 10240
- "*The maximum file size where inline copying is preferred over an out-of-the-band copy.
+ "The maximum file size where inline copying is preferred over an out-of-the-band copy.
If it is nil, inline out-of-the-band copy will be used without a check."
:group 'tramp
:type '(choice (const nil) integer))
;;;###tramp-autoload
(defcustom tramp-terminal-type "dumb"
- "*Value of TERM environment variable for logging in to remote host.
+ "Value of TERM environment variable for logging in to remote host.
Because Tramp wants to parse the output of the remote shell, it is easily
confused by ANSI color escape sequences and suchlike. Often, shell init
files conditionalize this setup based on the TERM environment variable."
'(tramp-default-remote-path "/bin" "/usr/bin" "/usr/sbin" "/usr/local/bin"
"/local/bin" "/local/freeware/bin" "/local/gnu/bin"
"/usr/freeware/bin" "/usr/pkg/bin" "/usr/contrib/bin")
- "*List of directories to search for executables on remote host.
+ "List of directories to search for executables on remote host.
For every remote host, this variable will be set buffer local,
keeping the list of existing directories on that host.
"CDPATH=" "HISTORY=" "MAIL=" "MAILCHECK=" "MAILPATH=" "PAGER=\"\""
"autocorrect=" "correct=")
- "*List of environment variables to be set on the remote host.
+ "List of environment variables to be set on the remote host.
Each element should be a string of the form ENVVARNAME=VALUE. An
entry ENVVARNAME= disables the corresponding environment variable,
:type '(repeat string))
(defcustom tramp-sh-extra-args '(("/bash\\'" . "-norc -noprofile"))
- "*Alist specifying extra arguments to pass to the remote shell.
+ "Alist specifying extra arguments to pass to the remote shell.
Entries are (REGEXP . ARGS) where REGEXP is a regular expression
matching the shell file name and ARGS is a string specifying the
arguments.
;; Define SMB method ...
;;;###tramp-autoload
(defconst tramp-smb-method "smb"
- "*Method to connect SAMBA and M$ SMB servers.")
+ "Method to connect SAMBA and M$ SMB servers.")
;; ... and add it to the method list.
;;;###tramp-autoload
'((tramp-parse-netrc "~/.netrc"))))
(defcustom tramp-smb-program "smbclient"
- "*Name of SMB client to run."
+ "Name of SMB client to run."
:group 'tramp
:type 'string)
(defcustom tramp-smb-conf "/dev/null"
- "*Path of the smb.conf file.
+ "Path of the smb.conf file.
If it is nil, no smb.conf will be added to the `tramp-smb-program'
call, letting the SMB client use the default one."
:group 'tramp
:type '(choice (const nil) (file :must-match t)))
(defvar tramp-smb-version nil
- "*Version string of the SMB client.")
+ "Version string of the SMB client.")
(defconst tramp-smb-prompt "^smb: .+> \\|^\\s-+Server\\s-+Comment$"
"Regexp used as prompt in smbclient.")
;; Maybe we need once a real Tramp mode, with key bindings etc.
;;;###autoload
(defcustom tramp-mode t
- "*Whether Tramp is enabled.
+ "Whether Tramp is enabled.
If it is set to nil, all remote file names are used literally."
:group 'tramp
:type 'boolean)
(defcustom tramp-verbose 3
- "*Verbosity level for Tramp messages.
+ "Verbosity level for Tramp messages.
Any level x includes messages for all levels 1 .. x-1. The levels are
0 silent (no tramp messages at all)
:group 'tramp)))
(defcustom tramp-auto-save-directory nil
- "*Put auto-save files in this directory, if set.
+ "Put auto-save files in this directory, if set.
The idea is to use a local directory so that auto-saving is faster."
:group 'tramp
:type '(choice (const nil) string))
(if (memq system-type '(windows-nt))
(getenv "COMSPEC")
"/bin/sh")
- "*Use this program for encoding and decoding commands on the local host.
+ "Use this program for encoding and decoding commands on the local host.
This shell is used to execute the encoding and decoding command on the
local host, so if you want to use `~' in those commands, you should
choose a shell here which groks tilde expansion. `/bin/sh' normally
(if (string-match "cmd\\.exe" tramp-encoding-shell)
"/c"
"-c")
- "*Use this switch together with `tramp-encoding-shell' for local commands.
+ "Use this switch together with `tramp-encoding-shell' for local commands.
See the variable `tramp-encoding-shell' for more information."
:group 'tramp
:type 'string)
(defcustom tramp-encoding-command-interactive
(unless (string-match "cmd\\.exe" tramp-encoding-shell) "-i")
- "*Use this switch together with `tramp-encoding-shell' for interactive shells.
+ "Use this switch together with `tramp-encoding-shell' for interactive shells.
See the variable `tramp-encoding-shell' for more information."
:version "24.1"
:group 'tramp
;;;###tramp-autoload
(defvar tramp-methods nil
- "*Alist of methods for remote files.
+ "Alist of methods for remote files.
This is a list of entries of the form (NAME PARAM1 PARAM2 ...).
Each NAME stands for a remote access method. Each PARAM is a
pair of the form (KEY VALUE). The following KEYs are defined:
(t "ssh")))
;; Fallback.
(t "ftp"))
- "*Default method to use for transferring files.
+ "Default method to use for transferring files.
See `tramp-methods' for possibilities.
Also see `tramp-default-method-alist'."
:group 'tramp
;;;###tramp-autoload
(defcustom tramp-default-method-alist nil
- "*Default method to use for specific host/user pairs.
+ "Default method to use for specific host/user pairs.
This is an alist of items (HOST USER METHOD). The first matching item
specifies the method to use for a file name which does not specify a
method. HOST and USER are regular expressions or nil, which is
(choice :tag "Method name" string (const nil)))))
(defcustom tramp-default-user nil
- "*Default user to use for transferring files.
+ "Default user to use for transferring files.
It is nil by default; otherwise settings in configuration files like
\"~/.ssh/config\" would be overwritten. Also see `tramp-default-user-alist'.
;;;###tramp-autoload
(defcustom tramp-default-user-alist nil
- "*Default user to use for specific method/host pairs.
+ "Default user to use for specific method/host pairs.
This is an alist of items (METHOD HOST USER). The first matching item
specifies the user to use for a file name which does not specify a
user. METHOD and USER are regular expressions or nil, which is
(choice :tag " User name" string (const nil)))))
(defcustom tramp-default-host (system-name)
- "*Default host to use for transferring files.
+ "Default host to use for transferring files.
Useful for su and sudo methods mostly."
:group 'tramp
:type 'string)
(defcustom tramp-default-proxies-alist nil
- "*Route to be followed for specific host/user pairs.
+ "Route to be followed for specific host/user pairs.
This is an alist of items (HOST USER PROXY). The first matching
item specifies the proxy to be passed for a file name located on
a remote target matching USER@HOST. HOST and USER are regular
(regexp-opt
(list "localhost" "localhost6" (system-name) "127\.0\.0\.1" "::1") t)
"\\'")
- "*Host names which are regarded as local host.")
+ "Host names which are regarded as local host.")
(defvar tramp-completion-function-alist nil
- "*Alist of methods for remote files.
+ "Alist of methods for remote files.
This is a list of entries of the form \(NAME PAIR1 PAIR2 ...\).
Each NAME stands for a remote access method. Each PAIR is of the form
\(FUNCTION FILE\). FUNCTION is responsible to extract user names and host
(defcustom tramp-local-end-of-line
(if (memq system-type '(windows-nt)) "\r\n" "\n")
- "*String used for end of line in local processes."
+ "String used for end of line in local processes."
:version "24.1"
:group 'tramp
:type 'string)
(defcustom tramp-rsh-end-of-line "\n"
- "*String used for end of line in rsh connections.
+ "String used for end of line in rsh connections.
I don't think this ever needs to be changed, so please tell me about it
if you need to change this.
Also see the method parameter `tramp-password-end-of-line' and the normal
(defcustom tramp-default-password-end-of-line
tramp-rsh-end-of-line
- "*String used for end of line after sending a password.
+ "String used for end of line after sending a password.
This variable provides the default value for the method parameter
`tramp-password-end-of-line', see `tramp-methods' for more details.
(defcustom tramp-login-prompt-regexp
".*ogin\\( .*\\)?: *"
- "*Regexp matching login-like prompts.
+ "Regexp matching login-like prompts.
The regexp should match at end of buffer.
Sometimes the prompt is reported to look like \"login as:\"."
(defcustom tramp-password-prompt-regexp
"^.*\\([pP]assword\\|[pP]assphrase\\).*:\^@? *"
- "*Regexp matching password-like prompts.
+ "Regexp matching password-like prompts.
The regexp should match at end of buffer.
The `sudo' program appears to insert a `^@' character into the prompt."
;; Here comes a list of regexes, separated by \\|
"Received signal [0-9]+"
"\\).*")
- "*Regexp matching a `login failed' message.
+ "Regexp matching a `login failed' message.
The regexp should match at end of buffer."
:group 'tramp
:type 'regexp)
:type 'regexp)
(defconst tramp-temp-name-prefix "tramp."
- "*Prefix to use for temporary files.
+ "Prefix to use for temporary files.
If this is a relative file name (such as \"tramp.\"), it is considered
relative to the directory name returned by the function
`tramp-compat-temporary-file-directory' (which see). It may also be an
((equal tramp-syntax 'sep) "/[")
((equal tramp-syntax 'url) "/")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching the very beginning of Tramp file names.
+ "String matching the very beginning of Tramp file names.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-prefix-regexp
(concat "^" (regexp-quote tramp-prefix-format))
- "*Regexp matching the very beginning of Tramp file names.
+ "Regexp matching the very beginning of Tramp file names.
Should always start with \"^\". Derived from `tramp-prefix-format'.")
(defconst tramp-method-regexp
"[a-zA-Z_0-9-]+"
- "*Regexp matching methods identifiers.")
+ "Regexp matching methods identifiers.")
(defconst tramp-postfix-method-format
(cond ((equal tramp-syntax 'ftp) ":")
((equal tramp-syntax 'sep) "/")
((equal tramp-syntax 'url) "://")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching delimiter between method and user or host names.
+ "String matching delimiter between method and user or host names.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-postfix-method-regexp
(regexp-quote tramp-postfix-method-format)
- "*Regexp matching delimiter between method and user or host names.
+ "Regexp matching delimiter between method and user or host names.
Derived from `tramp-postfix-method-format'.")
(defconst tramp-user-regexp "[^:/ \t]+"
- "*Regexp matching user names.")
+ "Regexp matching user names.")
;;;###tramp-autoload
(defconst tramp-prefix-domain-format "%"
- "*String matching delimiter between user and domain names.")
+ "String matching delimiter between user and domain names.")
;;;###tramp-autoload
(defconst tramp-prefix-domain-regexp
(regexp-quote tramp-prefix-domain-format)
- "*Regexp matching delimiter between user and domain names.
+ "Regexp matching delimiter between user and domain names.
Derived from `tramp-prefix-domain-format'.")
(defconst tramp-domain-regexp "[-a-zA-Z0-9_.]+"
- "*Regexp matching domain names.")
+ "Regexp matching domain names.")
(defconst tramp-user-with-domain-regexp
(concat "\\(" tramp-user-regexp "\\)"
tramp-prefix-domain-regexp
"\\(" tramp-domain-regexp "\\)")
- "*Regexp matching user names with domain names.")
+ "Regexp matching user names with domain names.")
(defconst tramp-postfix-user-format "@"
- "*String matching delimiter between user and host names.
+ "String matching delimiter between user and host names.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-postfix-user-regexp
(regexp-quote tramp-postfix-user-format)
- "*Regexp matching delimiter between user and host names.
+ "Regexp matching delimiter between user and host names.
Derived from `tramp-postfix-user-format'.")
(defconst tramp-host-regexp "[a-zA-Z0-9_.-]+"
- "*Regexp matching host names.")
+ "Regexp matching host names.")
(defconst tramp-prefix-ipv6-format
(cond ((equal tramp-syntax 'ftp) "[")
((equal tramp-syntax 'sep) "")
((equal tramp-syntax 'url) "[")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching left hand side of IPv6 addresses.
+ "String matching left hand side of IPv6 addresses.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-prefix-ipv6-regexp
(regexp-quote tramp-prefix-ipv6-format)
- "*Regexp matching left hand side of IPv6 addresses.
+ "Regexp matching left hand side of IPv6 addresses.
Derived from `tramp-prefix-ipv6-format'.")
;; The following regexp is a bit sloppy. But it shall serve our
;; "::ffff:192.168.0.1".
(defconst tramp-ipv6-regexp
"\\(?:\\(?:[a-zA-Z0-9]+\\)?:\\)+[a-zA-Z0-9.]+"
- "*Regexp matching IPv6 addresses.")
+ "Regexp matching IPv6 addresses.")
(defconst tramp-postfix-ipv6-format
(cond ((equal tramp-syntax 'ftp) "]")
((equal tramp-syntax 'sep) "")
((equal tramp-syntax 'url) "]")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching right hand side of IPv6 addresses.
+ "String matching right hand side of IPv6 addresses.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-postfix-ipv6-regexp
(regexp-quote tramp-postfix-ipv6-format)
- "*Regexp matching right hand side of IPv6 addresses.
+ "Regexp matching right hand side of IPv6 addresses.
Derived from `tramp-postfix-ipv6-format'.")
(defconst tramp-prefix-port-format
((equal tramp-syntax 'sep) "#")
((equal tramp-syntax 'url) ":")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching delimiter between host names and port numbers.")
+ "String matching delimiter between host names and port numbers.")
(defconst tramp-prefix-port-regexp
(regexp-quote tramp-prefix-port-format)
- "*Regexp matching delimiter between host names and port numbers.
+ "Regexp matching delimiter between host names and port numbers.
Derived from `tramp-prefix-port-format'.")
(defconst tramp-port-regexp "[0-9]+"
- "*Regexp matching port numbers.")
+ "Regexp matching port numbers.")
(defconst tramp-host-with-port-regexp
(concat "\\(" tramp-host-regexp "\\)"
tramp-prefix-port-regexp
"\\(" tramp-port-regexp "\\)")
- "*Regexp matching host names with port numbers.")
+ "Regexp matching host names with port numbers.")
(defconst tramp-postfix-host-format
(cond ((equal tramp-syntax 'ftp) ":")
((equal tramp-syntax 'sep) "]")
((equal tramp-syntax 'url) "")
(t (error "Wrong `tramp-syntax' defined")))
- "*String matching delimiter between host names and localnames.
+ "String matching delimiter between host names and localnames.
Used in `tramp-make-tramp-file-name'.")
(defconst tramp-postfix-host-regexp
(regexp-quote tramp-postfix-host-format)
- "*Regexp matching delimiter between host names and localnames.
+ "Regexp matching delimiter between host names and localnames.
Derived from `tramp-postfix-host-format'.")
(defconst tramp-localname-regexp ".*$"
- "*Regexp matching localnames.")
+ "Regexp matching localnames.")
;;; File name format:
"\\(" tramp-localname-regexp "\\)")
2 4 5 8)
- "*List of five elements (REGEXP METHOD USER HOST FILE), detailing \
+ "List of five elements (REGEXP METHOD USER HOST FILE), detailing \
the Tramp file name structure.
The first element REGEXP is a regular expression matching a Tramp file
((equal tramp-syntax 'sep) tramp-file-name-regexp-separate)
((equal tramp-syntax 'url) tramp-file-name-regexp-url)
(t (error "Wrong `tramp-syntax' defined")))
- "*Regular expression matching file names handled by Tramp.
+ "Regular expression matching file names handled by Tramp.
This regexp should match Tramp file names but no other file names.
When tramp.el is loaded, this regular expression is prepended to
`file-name-handler-alist', and that is searched sequentially. Thus,
((equal tramp-syntax 'sep) tramp-completion-file-name-regexp-separate)
((equal tramp-syntax 'url) tramp-completion-file-name-regexp-url)
(t (error "Wrong `tramp-syntax' defined")))
- "*Regular expression matching file names handled by Tramp completion.
+ "Regular expression matching file names handled by Tramp completion.
This regexp should match partial Tramp file names only.
Please note that the entry in `file-name-handler-alist' is made when
;; Parentheses in docstring starting at beginning of line are escaped.
;; Fontification is messed up when
;; `open-paren-in-column-0-is-defun-start' set to t.
- "*If non-nil, chunksize for sending input to local process.
+ "If non-nil, chunksize for sending input to local process.
It is necessary only on systems which have a buggy `process-send-string'
implementation. The necessity, whether this variable must be set, can be
checked via the following code:
;; Emacs 23+ only.
'copy-directory
;; Emacs 24+ only.
- 'file-equal-p 'file-subdir-of-p
+ 'file-equal-p 'file-in-directory-p
;; XEmacs only.
'dired-make-relative-symlink
'vm-imap-move-mail 'vm-pop-move-mail 'vm-spool-move-mail))
(defvar webjump-sites
webjump-sample-sites
- "*Hotlist for WebJump.
+ "Hotlist for WebJump.
The hotlist is represented as an association list, with the CAR of each cell
being the name of the Web site, and the CDR being the definition for the URL of
;;;###autoload
(defvar comment-start nil
- "*String to insert to start a new comment, or nil if no comment syntax.")
+ "String to insert to start a new comment, or nil if no comment syntax.")
;;;###autoload(put 'comment-start 'safe-local-variable 'string-or-null-p)
;;;###autoload
(defvar comment-start-skip nil
- "*Regexp to match the start of a comment plus everything up to its body.
+ "Regexp to match the start of a comment plus everything up to its body.
If there are any \\(...\\) pairs, the comment delimiter text is held to begin
at the place matched by the close of the first pair.")
;;;###autoload(put 'comment-start-skip 'safe-local-variable 'string-or-null-p)
;;;###autoload
(defvar comment-end (purecopy "")
- "*String to insert to end a new comment.
+ "String to insert to end a new comment.
Should be an empty string if comments are terminated by end-of-line.")
;;;###autoload(put 'comment-end 'safe-local-variable 'string-or-null-p)
(defcustom comment-inline-offset 1
"Inline comments have to be preceded by at least this many spaces.
-This is usefull when style-conventions require a certain minimal offset.
+This is useful when style-conventions require a certain minimal offset.
Python's PEP8 for example recommends two spaces, so you could do:
\(add-hook 'python-mode-hook
- (lambda nil (set (make-local-variable 'comment-inline-offset) 2)))
+ (lambda () (set (make-local-variable 'comment-inline-offset) 2)))
See `comment-padding' for whole-line comments."
+ :version "24.2"
:type 'integer
:group 'comment)
(- (or comment-fill-column fill-column)
(save-excursion (end-of-line) (current-column)))))
(other nil)
- (min (save-excursion
- (skip-chars-backward " \t")
- (if (bolp) 0 (+ comment-inline-offset (current-column))))))
+ (min (save-excursion (skip-chars-backward " \t")
+ (if (bolp) 0 (+ comment-inline-offset (current-column))))))
;; Fix up the range.
(if (< max min) (setq max min))
;; Don't move past the fill column.
- `dismissed' if the notification was dismissed by the user
- `close-notification' if the notification was closed
by a call to CloseNotification
+ - `undefined' if the notification server hasn't provided
+ a reason
This function returns a notification id, an integer, which can be
used to manipulate the notification item with
-`notifications-close-notification'."
+`notifications-close-notification' or the `:replaces-id' argument
+of another `notifications-notify' call."
(let ((title (plist-get params :title))
(body (plist-get params :body))
(app-name (plist-get params :app-name))
"Glyph set corresponding to Windows Glyph List 4.")
(defvar nxml-glyph-set-hook nil
- "*Hook for determining the set of glyphs in a face.
+ "Hook for determining the set of glyphs in a face.
The hook will receive a single argument FACE. If it can determine
the set of glyphs representable by FACE, it must set the variable
`nxml-glyph-set' and return non-nil. Otherwise, it must return nil.
:group 'relax-ng)
(defvar rng-complete-end-tags-after-< t
- "*Non-nil means immediately after < complete on end-tag names.
+ "Non-nil means immediately after < complete on end-tag names.
Complete on start-tag names regardless.")
(defvar rng-nxml-easy-menu
:group 'erc-hecomplete)
(defcustom erc-nick-completion-ignore-case t
- "*Non-nil means don't consider case significant in nick completion.
+ "Non-nil means don't consider case significant in nick completion.
Case will be automatically corrected when non-nil.
For instance if you type \"dely TAB\" the word completes and changes to
\"delYsid\"."
(erc-get-channel-nickname-list)))
(defcustom erc-nick-completion-postfix ": "
- "*When `erc-complete' is used in the first word after the prompt,
+ "When `erc-complete' is used in the first word after the prompt,
add this string when a unique expansion was found."
:group 'erc-hecomplete
:type 'string)
;; User Variables:
(defcustom fast-lock-minimum-size 25600
- "*Minimum size of a buffer for cached fontification.
+ "Minimum size of a buffer for cached fontification.
Only buffers more than this can have associated Font Lock cache files saved.
If nil, means cache files are never created.
If a list, each element should be a cons pair of the form (MAJOR-MODE . SIZE),
(defcustom fast-lock-cache-directories '("~/.emacs-flc")
; - `internal', keep each file's Font Lock cache file in the same file.
; - `external', keep each file's Font Lock cache file in the same directory.
- "*Directories in which Font Lock cache files are saved and read.
+ "Directories in which Font Lock cache files are saved and read.
Each item should be either DIR or a cons pair of the form (REGEXP . DIR) where
DIR is a directory name (relative or absolute) and REGEXP is a regexp.
(put 'fast-lock-cache-directories 'risky-local-variable t)
(defcustom fast-lock-save-events '(kill-buffer kill-emacs)
- "*Events under which caches will be saved.
+ "Events under which caches will be saved.
Valid events are `save-buffer', `kill-buffer' and `kill-emacs'.
If concurrent editing sessions use the same associated cache file for a file's
buffer, then you should add `save-buffer' to this list."
:group 'fast-lock)
(defcustom fast-lock-save-others t
- "*If non-nil, save Font Lock cache files irrespective of file owner.
+ "If non-nil, save Font Lock cache files irrespective of file owner.
If nil, means only buffer files known to be owned by you can have associated
Font Lock cache files saved. Ownership may be unknown for networked files."
:type 'boolean
:group 'fast-lock)
(defcustom fast-lock-verbose font-lock-verbose
- "*If non-nil, means show status messages for cache processing.
+ "If non-nil, means show status messages for cache processing.
If a number, only buffers greater than this size have processing messages."
:type '(choice (const :tag "never" nil)
(other :tag "always" t)
:group 'i18n)
(defcustom iso-accents-insert-offset nonascii-insert-offset
- "*Offset added by ISO Accents mode to character codes 0200 and above."
+ "Offset added by ISO Accents mode to character codes 0200 and above."
:type 'integer
:group 'iso-acc)
"Association list for ISO accent combinations, for the chosen language.")
(defcustom iso-accents-mode nil
- "*Non-nil enables ISO Accents mode.
+ "Non-nil enables ISO Accents mode.
Setting this variable makes it local to the current buffer.
See the function `iso-accents-mode'."
:type 'boolean
(make-variable-buffer-local 'iso-accents-mode)
(defcustom iso-accents-enable '(?' ?` ?^ ?\" ?~ ?/)
- "*List of accent keys that become prefixes in ISO Accents mode.
+ "List of accent keys that become prefixes in ISO Accents mode.
The default is (?' ?` ?^ ?\" ?~ ?/), which contains all the supported
accent keys. If you set this variable to a list in which some of those
characters are missing, the missing ones do not act as accents.
;; Maintainer: FSF
;; Created: 13 Jan 1986
;; Keywords: mail
+;; Obsolete-since: 24.2
;;; Commentary:
;; Author: Mike Williams <mdub@bigfoot.com>
;; Keywords: mouse
+;; Obsolete-since: 24.2
;; This file is part of GNU Emacs.
interprogram-paste-function
mouse-sel-original-interprogram-paste-function))))
+(make-obsolete 'mouse-sel-mode "use the normal mouse modes" "24.2")
+
;;=== Internal Variables/Constants ========================================
(defvar mouse-sel-primary-thing nil
;;; Code:
(defvar resume-emacs-args-file (expand-file-name "~/.emacs_args")
- "*This file is where arguments are placed for a suspended Emacs job.")
+ "This file is where arguments are placed for a suspended Emacs job.")
(defvar resume-emacs-args-buffer " *Command Line Args*"
"Buffer that is used by `resume-process-args'.")
"Abbrev table used while in scribe mode.")
(defcustom scribe-fancy-paragraphs nil
- "*Non-nil makes Scribe mode use a different style of paragraph separation."
+ "Non-nil makes Scribe mode use a different style of paragraph separation."
:type 'boolean
:group 'scribe)
(defcustom scribe-electric-quote nil
- "*Non-nil makes insert of double quote use `` or '' depending on context."
+ "Non-nil makes insert of double quote use `` or '' depending on context."
:type 'boolean
:group 'scribe)
(defcustom scribe-electric-parenthesis nil
- "*Non-nil makes parenthesis char ( (]}> ) automatically insert its close
+ "Non-nil makes parenthesis char ( (]}> ) automatically insert its close
if typed after an @Command form."
:type 'boolean
:group 'scribe)
+2012-04-14 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-point-at-end-of-empty-headline): Only try to match
+ `org-todo-line-regexp' when the value is non-nil, e.g. in non-org
+ modes.
+ (org-fontify-meta-lines-and-blocks-1): Prevent errors when trying
+ to fontify beyond (point-max).
+
+ * org-clock.el (org-clock-task-overrun-text)
+ (org-task-overrun, org-clock-get-clock-string)
+ (org-clock-update-mode-line)
+ (org-clock-notify-once-if-expired): Rename `org-task-overrun'
+ and `org-task-overrun-text' to `org-clock-task-overrun' and
+ `org-clock-task-overrun-text' respectively.
+ (org-task-overrun-text): New alias.
+
+ * org-table.el (org-table-eval-formula): Fix bug about handling
+ remote references as durations.
+ (org-table-get-range): Fix bug: make sure references to $0 are
+ correctly handled.
+
+ * org-pcomplete.el (pcomplete/org-mode/file-option):
+ Fix bug in `pcomplete/org-mode/file-option'.
+ (org-thing-at-point): Also match line options like LATEX_CLASS
+ when pcompleting from LATEX_.
+
+ * org-agenda.el (org-agenda-filter-make-matcher)
+ (org-agenda-filter-apply): Allow filtering entries out by
+ category. Using `C-u <' from the agenda view will redisplay
+ the agenda without entries from categories of the current line.
+
+2012-04-14 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-C.el (org-babel-C-ensure-main-wrap):
+ Add an explicit return to automatically generated main methods.
+
+2012-04-14 Matt Lundin <mdl@imapmail.org>
+
+ * org.el (org-after-todo-state-change-hook):
+ Fix docstring to reflect name change of state to `org-state'.
+
+2012-04-14 Mike Sperber <sperber@deinprogramm.de> (tiny change)
+
+ * org-footnote.el (org-footnote-normalize):
+ Correctly pass keyword arguments to `org-export-preprocess-string'.
+
+2012-04-03 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-todo): Fix regression: rename `state' to
+ `org-state'.
+ (org-use-effective-time): Fix group and type.
+
+2012-04-02 Bastien Guerry <bzg@gnu.org>
+
+ * org-clock.el (org-clock-out-if-current): Fix regression: rename
+ `org-clock-state' to `org-state' to match the name of the
+ dynamically-scoped variable in `org-todo'.
+
+ * org-agenda.el (entry, org-diary, org-class): Fix regression:
+ rename `org-entry' to `entry'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-todo): Fix regression in `org-todo'.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-C.el (org-babel-C-execute): Add .exe to the end of compiled
+ C files on windows.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-code): Escape all lines when exporting
+ Org-mode blocks.
+
+ * ob.el (org-babel-parse-src-block-match): Make use of the new
+ language argument to org-babel-strip-protective-commas.
+ (org-babel-parse-inline-src-block-match): Make use of the new
+ language argument to org-babel-strip-protective-commas.
+ (org-babel-strip-protective-commas): Now accepts a language
+ argument.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-fast-tag-selection): Fix an bug when listing tags
+ for completion.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu> (tiny change)
+
+ * org.el (org-delete-property-globally): Fixed a bug that left
+ blank line in place of the property, instead of removing the line.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * ob-maxima.el (org-babel-maxima-command): Add group information
+ to the defcustom.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-mode): Use `buffer-face-mode' to remap the 'default
+ face to 'org-default.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-ascii.el (org-export-as-ascii): Fix escaping of underscores
+ in links.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el: Prevent a bug while defining the menu by requiring
+ `org-beamer' when necessary.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-table.el (orgtbl-self-insert-command): Use
+ `backward-delete-char' instead of `delete-backward-char' as this
+ last command gets caught by the compiler which says to not use it
+ in programs. `backward-delete-char' is just an alias for
+ `delete-backward-char' which is internally remapped to
+ `org-delete-backward-char' for optimization purpose.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-latex.el (org-export-latex-subcontent): Bugfix: when
+ `org-export-latex-low-levels' is nil, do not export low levels.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-insert-result): Fix bug in indented wrapped
+ results insertion.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-tags): Include `org-tag-alist' in the list of
+ possible completions, even when there are tags defined in the
+ buffer.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-mime.el (org-mime-htmlize): Set
+ `org-export-with-LaTeX-fragments' correctly.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-tags): Don't add a column when there is only one
+ tag offered for completion.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-fast-tag-selection): Include tags from
+ `org-tag-alist' when completing with the TAB key.
+
+2012-04-01 Shoji Nishimura <nishimura.shoji@gmail.com> (tiny change)
+
+ * org.el (org-display-inline-images): Honor the ̀beg' parameter.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-latex.el (org-export-latex-subcontent): Don't insert a
+ linebreak when itemizing a subtree that is just a headline.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-lob.el (org-babel-lob-get-info): Removed extra []s when
+ parsing inline call_foo lines.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-maxima.el (org-babel-maxima-command): The maxima command used
+ should be configurable (defaults to maxima-command if defined).
+ (org-babel-execute:maxima): The maxima command used should be
+ configurable (defaults to maxima-command if defined).
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-C.el (org-babel-C-execute): Add the local directory to the
+ library search path for C/C++ block compilation.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-where-is-src-block-result): Don't truncate
+ results name on call line execution.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu> (tiny change)
+
+ * org-colview.el (org-columns-cleanup-item): Handle case of empty
+ headline
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-delete-definitions): Fix LaTeX
+ export error when a src block produces fake footnotes.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-read-date): Don't mention `parse-time-weekdays' and
+ `parse-time-months' in the docstring.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-agenda.el (org-agenda-filter-apply): Bugfix: Add let
+ binding.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-colview.el (org-columns-compute): Also consider inline tasks
+ when computing the sum.
+
+2012-04-01 Thomas Morgan <tlm@ziiuu.com> (tiny change)
+
+ * org-habit.el (org-habit-insert-consistency-graphs): Fix
+ alignment of consistency graph in filtered agenda view.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-latex.el (org-export-as-latex): Fix bug in setting the
+ export directory according to the LaTeX options.
+
+2012-04-01 K.Nagashima <uni.naga@gmail.com> (tiny change)
+
+ * org.el (org-show-subtree): Make interactive.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu>
+
+ * org-clock.el: (org-clock-get-table-data): Make sure todo-only
+ does not leak when it is set by make-org-tags-macher.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-cycle-internal-local): Don't try to hide drawers
+ within subtrees in this function, it slows cycling down.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-agenda.el (org-agenda-custom-commands-local-options): Fix
+ incorrect custom option definition.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-colview.el (org-columns-display-here): Bugfix: use the date
+ as the value for the ITEM column when displaying a summary.
+
+2012-04-01 Martyn Jago <martyn.jago@btinternet.com>
+
+ * ob-lilypond.el: Re-direct homepage to Worg.
+
+2012-04-01 Martyn Jago <martyn.jago@btinternet.com>
+
+ * ob-lilypond.el: Leave versioning to Org.
+
+2012-04-01 Martyn Jago <martyn.jago@btinternet.com>
+
+ * ob-lilypond.el: Fix compiler warning.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-entity-caption): Enumerate entities
+ that have either a caption or a label.
+ (org-odt-label-styles, org-odt-category-map-alist): Add a
+ separator between sequence number and caption. Introduced two
+ new label styles for handling of math formula and math label.
+ (org-odt-format-label-definition)
+ (org-export-odt-format-formula): Propagate above changes.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-enforce-todo-dependencies): Fix docstring.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-odt-category-strings): New custom
+ variable.
+ (org-odt-category-map-alist): Modify interpretation. Don't
+ use the same field to double up as both a OpenDocument
+ variable and a category string. Entries in this list now
+ specify only the OpenDocument variable. Category strings are
+ obtained through an indirect lookup of
+ `org-export-odt-category-strings'. Use same OpenDocument
+ variables as what LibreOffice uses for various entities. Fix
+ docstring.
+ (org-odt-add-label-definition)
+ (org-odt-format-label-definition)
+ (org-odt-format-label-reference): Propagate above changes.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-latex.el (org-export-as-latex): Check TeX-master correctly.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-category-map-alist): Update docstring.
+ (org-export-odt-user-categories)
+ (org-export-odt-get-category-from-label)
+ (org-odt-get-label-category-and-style): Remove.
+ (org-odt-add-label-definition): Propagate above changes.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org.el (org-refile): Don't allow creation of parents when using
+ the refile command to go to a headline.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-org-link): Resolve links to headlines
+ as section numbers only if section numbering is on.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (format-spec): Require 'format-spec.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-latex.el (org-export-as-latex): Fix TeX-master declaration.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu> (tiny change)
+
+ * org.el (org-imenu-get-tree): Check that looking-at succeeds
+ before using match results.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-exp-blocks.el (org-ditaa-jar-path): Make a defcustom.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-lparse.el (org-do-lparse): Make effective setting of
+ `org-export-headline-levels' available to the ODT exporter. Also
+ remove some stale comments.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-begin-toc): Handle named HTML entities in
+ per-language string for "Table Of Contents".
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-exp-blocks.el (org-ditaa-jar-path): Fix merge conflict.
+
+2012-04-01 Shaun Johnson <shaun@slugfest.demon.co.uk> (tiny change)
+
+ * org-exp-blocks.el (org-ditaa-jar-path): Better heuristic to find
+ the libary name.
+
+2012-04-01 Suvayu Ali <fatkasuvayu+linux@gmail.com>
+
+ * org-src.el (org-edit-src-code): Change let bind to let*, e.g. if
+ case-fold-search is bound to nil globally, the
+ (case-fold-search t) doesn't work until we get to the body.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-latex.el (org-export-latex-tables): Allow to use
+ sidewaystable.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-expand-noweb-references): Fix bug in src name
+ regexp when using *org-babel-use-quick-and-dirty-noweb-expansion*.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org.el (org-scan-tags): Require one or more spaces (+) between
+ keyword and headline.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-agenda.el (org-prepare-agenda): Don't reset
+ `org-done-keywords-for-agenda' when `org-agenda-multi'.
+
+2012-04-01 Thomas Morgan <tlm@ziiuu.com> (tiny change)
+
+ * org-habit.el (org-habit-insert-consistency-graphs): Fix bug
+ while inserting habit graph in the agenda buffer.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-src.el (org-src-edit-buffer-p): New function.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-agenda.el (org-agenda-skip-if): Fix the order conditions are
+ being checked. Also enhance the docstring a bit.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org-agenda.el (org-agenda-tree-to-indirect-buffer): Fix the
+ display of indirect agenda window.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org> (tiny change)
+
+ * org.el (org-create-formula-image, org-dvipng-color): Fix XEmacs
+ compatibility bug.
+
+2012-04-01 Carsten Dominik <carsten.dominik@gmail.com> (tiny change)
+
+ * org-clock.el (org-clock-get-table-data): Bind org-scanner-tags
+ to tags-list and org-trust-scanner-tags to t while evaluating the
+ matcher, since the matcher is always evaluated at the current
+ entry.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu> (tiny change)
+
+ * org.el (org-scan-tags): Bind org-trust-scanner-tags to t while
+ evaluating the matcher, since the matcher is always evaluated at
+ the current entry.
+
+2012-04-01 Ilya Shlyakhter <ilya_shl@alum.mit.edu> (tiny change)
+
+ * ob-lilypond.el (ly-compile-lilyfile): Fixed misplaced comma in a
+ quoting expression.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-merge-params): Add "eval" as acceptable noweb
+ argument.
+ (org-babel-noweb-p): The "eval" argument only expands during
+ evaluation.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-strip-protective-commas): Declared.
+
+ * org-agenda.el (org-agenda-filtered-by-category): Declared.
+ (org-agenda-filter-apply): Capture free variable.
+
+ * org-footnote.el (org-skip-whitespace): Declared.
+
+ * org-mobile.el (org-agenda-filter): Declared.
+
+ * org-src.el (org-strip-protective-commas): Declared.
+
+2012-04-01 Sebastien Vauban <sva@mygooglest.com> (tiny change)
+
+ * org.el (org-version): Add autoload cookie.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-attach.el (org-attach-store-link-p): Remove spurious quote
+ in customization form choice.
+
+2012-04-01 Tassilo Horn <tassilo@member.fsf.org>
+
+ * org-contacts.el (org-contacts-check-mail-address): Add missing
+ word to `y-or-n-p' question.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-sh.el (org-babel-execute:sh): Pass all params to subroutine.
+ (org-babel-sh-evaluate): Apply :shebang and :padline to shell script
+ execution.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-insert-result): Ensure correct order for empty
+ result wrapping blocks.
+
+2012-04-01 Martyn Jago <martyn.jago@btinternet.com>
+
+ * ob-lilypond.el: Make auditioning of midi and pdf asynchronous,
+ and add easy pdf generation in the form of `ly-gen-pdf' variable.
+
+2012-04-01 Deech <deech@deech-ThinkPad-X200.none> (tiny change)
+
+ * ob-tangle.el (org-babel-spec-to-string): The link generated by
+ org-store-link is escaped twice when tangling with ":comments yes"
+ flag.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-html.el (org-export-as-html): Remove another useless space
+ before tag.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-html.el (org-export-as-html): Remove another useless space
+ before tag.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-html.el (org-export-as-html): Remove useless space before
+ tag.
+
+2012-04-01 Sebastien Vauban <sva@mygooglest.com> (tiny change)
+
+ * org.el (org-version): Add autoload cookie.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-get-category): Save match data.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-tangle.el (org-babel-tangle): Don't prompt for a file name if
+ :tangle is specified.
+
+ * ob.el (org-babel-expand-noweb-references): Widen buffer when
+ expanding noweb references.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-table.el (sbe): Don't accidentally leave a `t' value when
+ variables are force interpreted as strings.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-bbdb.el (org-bbdb-open, org-bbdb-open-old)
+ (org-bbdb-open-new): Pass record name to avoid dynamic scoping.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-bbdb.el (bbdb-record-get-field, bbdb-search-name)
+ (bbdb-search-organization): Declare functions to silence byte
+ compiler.
+
+2012-04-01 Bernt Hansen <bernt@norang.ca>
+
+ * org.el (org-clone-subtree-with-time-shift): Fix task cloning for
+ repeating tasks using .+n and ++n syntax
+
+2012-04-01 Karl Fogel <kfogel@red-bean.com> (tiny change)
+
+ * org-agenda.el (org-agenda-highlight-todo): Handle the case of a
+ heading that has a date but no todo keyword.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-find-named-result): Fix code block replacement
+ with results.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Do not normalize
+ labels when sort-only is non-nil.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Remove an useless part
+ of the function.
+ (org-insert-footnote-reference-near-definition): Remove function.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Fix normalization of
+ inline footnotes with no footnote section.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-bbdb.el (org-bbdb-old): Replace `defvar' after loading 'bbdb
+ to check for old or new version by a check for the required
+ function in `org-bbdb-open' and `org-bbdb-store-link'.
+ (org-bbdb-store-link, org-bbdb-open): Check which version of bbdb is
+ to be used.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-find-named-result): Don't miss a code block
+ when there are confounding spaces after the result name.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-lob.el (org-babel-block-lob-one-liner-regexp): Less greedy
+ regular expressions.
+ (org-babel-inline-lob-one-liner-regexp): Less greedy regular
+ expressions.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-examplize-region): Fixed bug in examplization.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-link-search): Search for #+name affiliated keywords
+ and invisible targets.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-lparse.el (org-lparse-end-footnote-definition): Cleanup
+ newlines in a transcoded footnote definition. This ensures that
+ the line that is currently being processed by `org-do-lparse' loop
+ doesn't get broken up into multiple lines. Fix for the following
+ bug -
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Force a paragraph
+ break after the last footnote definition. This is an an implicit
+ assumption made by the org-lparse.el library. With this change,
+ footnote definitions can reliably be exported with ODT backend.
+ See http://lists.gnu.org/archive/html/emacs-orgmode/2012-02/msg01013.html.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-ditaa.el (org-ditaa-jar-path): Fix a recursive load error.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-list.el (org-list-struct): Fix small bug introduced by
+ commit 8b7a3f249803aba612f9ad3ae50c2fc986247da4 in Org's git repo.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-ditaa.el (org-ditaa-jar-path): Already defined in
+ org-exp-blocks.el.
+
+ * org-exp-blocks.el (org-ditaa-jar-path): Declare appropriately
+ for the fact that this is really now a Babel thing -- even if it
+ is used here and the definition should remain here for reasons of
+ load dependencies.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-bbdb.el (org-bbdb-old): Wrap `defvar' so the variable gets
+ defined after bbdb was loaded.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org-latex.el (org-export-latex-tables): Don't add spurious
+ preceding newline if caption is not above a longtable.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-insert-toc): Remove this stray,
+ dysfunctional routine. This possibly has crept in because of the
+ broken merges between "maint" and "origin" branches.
+ (org-odt-begin-table): Don't emit an empty paragraph when a table is
+ neither labeled nor captioned.
+ (org-odt-init-outfile): Remove reference to an unused variable.
+
+2012-04-01 Viktor Rosenfeld <listuser36@googlemail.com>
+
+ * ob-sql.el (org-babel-execute:sql): Add support for MonetDB to
+ SQL code blocks.
+
+2012-04-01 Andreas Leha <andreas.leha@med.uni-goettingen.de>
+
+ * ob.el (org-babel-goto-named-src-block): Pushing the point to the
+ org-mark-ring and guessing at the code block name to jump to.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-agenda.el (org-agenda-tree-to-indirect-buffer): Fix handling
+ of indirect buffer and window.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-forbidden-blocks): Allow footnotes
+ in verse blocks.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-forbidden-blocks): Allow footnotes
+ in verse blocks.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-exp.el (org-table-clean-before-export): Ignore table rows
+ defining parameters for formulas during export.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-list.el (org-list-get-item-number): New function.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-list.el (org-list-ending-method, org-list-end-regexp):
+ Removed variables.
+ (org-in-item-p, org-list-separating-blank-lines-number)
+ (org-list-parse-list, org-list-struct): Apply changes.
+
+ * org-exp.el (org-export-mark-list-end)
+ (org-export-mark-list-properties): Apply changes.
+
+ * org-latex.el (org-export-latex-lists): Apply changes.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-cycle-internal-local): Correctly unfold headlines
+ containing an inlinetask.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-structure-template-alist): Fix missing angle
+ brackets for muse export style.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org.el (org-recenter-calendar): Use `with-selected-window' to
+ select calendar window and save currently selected window and
+ current buffer.
+
+2012-04-01 Toby S. Cubitt <tsc25@cantab.net> (tiny change)
+
+ * org.el (org-goto): call org-refile-get-location with NO-EXCLUDE
+ argument set, otherwise not only are headlines in the current
+ subtree excluded, but it throws an error if point happens not to
+ be within a subtree (e.g. at start of buffer).
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org.el (org-scan-tags): Fix highlighting in sparse-tree.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-clock.el (org-in-clocktable-p): Moved to org.el.
+
+ * org.el (org-in-clocktable-p): New function. Moved from
+ org-clock.el
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-exp.el (org-export-get-title-from-subtree): Don't format
+ tags in title if title headline does not have tags.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-cycle-internal-local): Fix bug: hide drawers in
+ inline tasks too.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-preamble): Don't insert TOC here.
+ Delay it till the end of export.
+ (org-odt-begin-document-body): Make a note of the default
+ position of TOC in `org-lparse-dyn-first-heading-pos'.
+ (org-odt-insert-toc): Insert TOC as directed by
+ [TABLE-OF-CONTENTS] line or at the default position.
+ (org-odt-end-export): Call `org-odt-insert-toc'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-preview-latex-fragment): Throw an error when called
+ from a non-file buffer.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-capture.el (org-capture-place-item): Don't search for
+ position in existing list if :exact-position was supplied.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-font-lock-defaults): Fix bug in done headline
+ fontification.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-textbox): Honor user-specified width
+ in captioned images.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-update-property-plist): Fix bug in property list
+ updates.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-balanced-split): Explicit checking if list
+ before calling member.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-sqlite.el (org-babel-execute:sqlite): Specify the use of ","
+ as the separator to `org-table-convert-region'. Fixes errors when
+ only one result per line of output.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-strip-protective-commas): Use
+ `org-strip-protective-commas'.
+
+ * org-exp.el (org-export-select-backend-specific-text): Use
+ `org-strip-protective-commas'.
+
+ * org-src.el (org-edit-src-code): Use
+ `org-strip-protective-commas'.
+
+ * org.el (org-strip-protective-commas): Single definition for this
+ functionality.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-sql.el: Mention ob-sqlite in the comments of ob-sql.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-capture.el (org-capture-prepare-finalize-hook): New hook.
+ Run before the finalization process starts.
+ (org-capture-finalize): Run new hook.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-entry-get): Generalize to multiple "prop+"
+ properties.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org-src.el (org-src-mode-map): Rebinding `org-edit-src-save' in
+ the `org-src-mode-map'.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org.el (org-recenter-calendar): Use `with-selected-window' to
+ select calendar window and save currently selected window and
+ current buffer.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-list.el (org-list-ending-method, org-list-end-regexp):
+ Removed variables.
+ (org-in-item-p, org-list-separating-blank-lines-number)
+ (org-list-parse-list, org-list-struct): Apply changes.
+
+ * org-exp.el (org-export-mark-list-end)
+ (org-export-mark-list-properties): Apply changes.
+
+ * org-latex.el (org-export-latex-lists): Apply changes.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-entry-get): Accumulate properties from subtree
+ property drawers.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-entry-get): Accumulate properties from subtree
+ property drawers.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-odt-image-size-probe-method)
+ (org-odt-do-image-size): Use imagemagick preferentially to
+ determine image sizes.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-as-odt-to-buffer)
+ (org-replace-region-by-odt, org-export-region-as-odt): Remove
+ these interactive functions. They are of questionable value.
+
+2012-04-01 Toby S. Cubitt <tsc25@cantab.net> (tiny change)
+
+ * org.el (org-goto): call org-refile-get-location with NO-EXCLUDE
+ argument set, otherwise not only are headlines in the current
+ subtree excluded, but it throws an error if point happens not to
+ be within a subtree (e.g. at start of buffer).
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-exp.el (org-export-kill-product-buffer-when-displayed)
+ (org-export-initial-scope, org-export-date-timestamp-format)
+ (org-export-with-tasks, org-export-email-info)
+ (org-export-table-remove-empty-lines): Add version tag.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-cycle-internal-local): Correctly unfold headlines
+ containing an inlinetask.
+
+2012-04-01 Bernt Hansen <bernt@norang.ca>
+
+ * org-clock.el (org-clock-out): Do not delete the current clocking
+ task when org-clock-out-hook clocks in another task
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org.el (org-scan-tags): Fix highlighting in sparse-tree.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-odt-convert-processes): Re-define
+ (org-export-odt-convert-capabilities): Fix an accidental
+ regression.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-odt-convert-capabilities): Change the
+ default value.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-clock.el (org-in-clocktable-p): Moved to org.el.
+
+ * org.el (org-in-clocktable-p): New function. Moved from org-clock.el
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-exp.el (org-export-get-title-from-subtree): Don't format
+ tags in title if title headline does not have tags.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-blank-before-new-entry)
+ (org-export-footnotes-seen, org-export-footnotes-data): Fix bogus
+ declarations.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-beginning-of-line, org-end-of-line): Fix special C-a
+ and C-e behaviour with visual lines.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org-exp-blocks.el (org-export-blocks): Changed the name of
+ exporting comment blocks given that it seems regular comment
+ blocks no longer export.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-get-export-buffer): Access current
+ export buffer.
+ (org-babel-exp-in-export-file): Access current export buffer.
+ (org-babel-exp-src-block): Access current export buffer.
+ (org-babel-exp-inline-src-blocks): Access current export buffer.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * ob-exp.el (org-babel-exp-in-export-file)
+ (org-babel-exp-src-block, org-babel-exp-inline-src-blocks): Allow
+ org-current-export-file to contain a buffer.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-lparse.el (org-lparse-do-convert): Replace `call-process'
+ with `shell-command-to-string'.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-create-definition): Fix space
+ insertion when creating a new footnote. This fixes newline
+ munching when `org-footnote-section' is nil and blank lines
+ stacking when it isn't nil.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Make sure that
+ footnotes are moved to a single place during export.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-cycle-internal-global): Prevent the display of
+ messages when cycling from with a Gnus article buffer.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-normalize): Ensure footnote
+ definition will be inserted at the end of the section
+ corresponding to to its first reference.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-footnote.el (org-footnote-at-definition-p): Make sure to
+ move point at the beginning of the separator before skiping white
+ spaces. Refactor code.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-src-block): Strip noweb references on
+ export when "strip-export".
+
+ * ob.el (org-babel-common-header-args-w-values): New noweb
+ header value.
+ (org-babel-merge-params): New noweb header value.
+ (org-babel-noweb-p): New noweb header value.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-tangle.el (org-babel-tangle-clean): Just use default value.
+
+ * ob.el (org-babel-noweb-wrap): Add default value.
+ (org-babel-expand-noweb-references): Just use default value.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-exp.el (org-export-select-backend-specific-text): Always
+ preserve original indentation as a text property so that lists do
+ not get broken by indentation at column 0.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-expand-noweb-references): Don't allow newlines
+ in source names in noweb references.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-fill-line-break-nobreak-p): New function.
+ (org-set-autofill-regexps): Add previous function to
+ `fill-nobreak-predicate'.
+
+2012-04-01 Vitalie Spinu <spinuvit@gmail.com>
+
+ * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation
+ visibility regardless of local user customization.
+
+2012-04-01 Vitalie Spinu <spinuvit@gmail.com>
+
+ * ob-R.el (org-babel-R-evaluate-session): Inhibit R evaluation
+ visibility regardless of local user customization.
+
+2012-04-01 Carsten Dominik <carsten.dominik@gmail.com>
+
+ * org-inlinetask.el (org-inlinetask-show-first-star): New option.
+ (org-inlinetask-fontify): Honor `org-inlinetask-show-first-star'.
+
+ * org-indent.el (org-indent-set-line-properties): Honor
+ `org-inlinetask-show-first-star'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-regexps-and-options): Ensure `org-drawers'
+ doesn't contain duplicates.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-at-drawer-p): Normalize the docstring to match other
+ `org-at-*-p' docstrings.
+ (org-indent-block, org-indent-drawer, org-at-block-p): New
+ functions.
+ (org-metaright): Use the new functions to indent a drawer or a
+ block depending on the context. Also update the docstring.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-regexps-and-options): Set the value of
+ `org-drawers' by adding the value of the infile #+DRAWERS option
+ to that of the existing `org-drawers'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-cycle-internal-local): Fix bug: hide drawers in
+ inline tasks too.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-inlinetask.el (org-inlinetask-toggle-visibility): Use
+ `org-show-entry' instead of `outline-flag-region' to keep the
+ drawers folded when unfolding an inline task.
+
+2012-04-01 Torsten Anders <torsten.anders@beds.ac.uk> (tiny change)
+
+ * org-beamer.el (org-beamer-environments-default): Add support and
+ keybinding for the `exampleblock' environment.
+
+2012-04-01 Michael Brand <michael.ch.brand@gmail.com>
+
+ * org.el (org-open-link-from-string): Regard `reference-buffer'
+ when setting `org-inhibit-startup'.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-non-block-elements): Don't insert extra
+ space between inline src block and results on export.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-get-inline-src-block-matches): Allow *any*
+ punctuation to proceed an inline src block.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-get-inline-src-block-matches): Add ( to the
+ list of characters allowed to proceed an inline src block.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-tangle.el (org-babel-tangle-clean): Use the customizable
+ noweb wrappers.
+
+ * ob.el (org-babel-noweb-wrap-start): Begin a noweb reference.
+ (org-babel-noweb-wrap-end): End a noweb reference.
+ (org-babel-noweb-wrap): Apply the customizable noweb wrappers.
+ (org-babel-expand-noweb-references): Use the customizable noweb
+ wrappers.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-beginning-of-line): Handle case when there's no
+ character after box.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-preamble): Don't insert TOC here.
+ Delay it till the end of export.
+ (org-odt-begin-document-body): Make a note of the default
+ position of TOC in `org-lparse-dyn-first-heading-pos'.
+ (org-odt-insert-toc): Insert TOC as directed by
+ [TABLE-OF-CONTENTS] line or at the default position.
+ (org-odt-end-export): Call `org-odt-insert-toc'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-preview-latex-fragment): Throw an error when called
+ from a non-file buffer.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-insert-property-drawer): Not an interactive
+ command anymore.
+ (org-insert-drawer): With a prefix argument, insert a property
+ drawer. Check for headline within the region before inserting the
+ drawer. Don't include special drawers in the completion table.
+ (org-mode-map): New keybinding `C-c C-x d' for
+ `org-insert-drawer'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-insert-drawer): Support completion over known drawer
+ names and inserting a drawer around the current region.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-insert-drawer): New function.
+ (org-insert-property-drawer): Use it.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-list.el (org-mark-list): New function.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-pcomplete.el (pcomplete/org-mode/drawer): New function to
+ complete drawer at point.
+ (org-thing-at-point): Use it.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-meta-return): Use `newline-and-indent' when in a
+ property drawer.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-structure-template-alist): Fix docstring: the
+ feature is not experimental anymore.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-agenda.el (org-agenda-show-and-scroll-up): Allow `C-u' to
+ display the item without unfolding drawers and logbooks.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-src.el (org-edit-src-code): Make sure `buffer-file-name' is
+ always nil.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-structure-template-alist): Fix missing angle
+ brackets for muse export style.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-read-date): New parameter `inactive' when reading
+ for insertion of inactive timestamps.
+ (org-time-stamp, org-read-date-display): Use the new
+ parameter.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-expand-noweb-references): Only allow
+ reference names which start and end with non-whitespace characters.
+ Also, raise errors as appropriate given org-babel-noweb-error-langs.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-src.el (org-src-in-org-buffer): Save and restore
+ `buffer-undo-list' after editing.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-common-header-args-w-values): Add new header
+ argument.
+ (org-babel-expand-noweb-references): Use header argument rather than
+ customization variable.
+
+2012-04-01 David Maus <dmaus@ictsoc.de>
+
+ * org-capture.el (org-capture-place-item): Don't search for
+ position in existing list if :exact-position was supplied.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-noweb-separator): Custom variable for
+ accumulated noweb references.
+ (org-babel-expand-noweb-references): Allow separator for noweb
+ references.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-beginning-of-line): In an item, special position
+ for C-a is after check-box, if any.
+ (org-special-ctrl-a/e): Modify doc-string accordingly.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-export-odt-format-formula): Use :style
+ property to specify custom table styles.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-call-line-template): Control export of
+ additional call line information.
+ (org-babel-exp-non-block-elements): Fancier call line export.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-entity-frame-styles): Add frame params
+ for images that are anchored as character.
+ (org-export-odt-format-image): Handle new anchor type
+ "as-char".
+ (org-export-odt-default-image-sizes-alist): Misc. change.
+ (org-export-odt-format-formula): Misc. change.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-check-src-block): Don't report valid header
+ arguments as suspicious.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-non-block-elements): Map over both
+ inline src blocks and call lines on export.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-label-styles): Add a new style.
+ (org-odt-category-map-alist): Use it.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-table-style-format): New. Template for
+ auto-generated table styles.
+ (org-odt-automatic-styles, org-odt-object-counters): New
+ variables.
+ (org-odt-add-automatic-style): New function.
+ (org-odt-write-automatic-styles): New function. Create
+ automatic styles for tables that have custom :rel-width.
+ (org-odt-begin-table): Parse attributes specified with
+ "#+ATTR_ODT: " option and use it to create an automatic table
+ style.
+ (org-odt-save-as-outfile): Call
+ `org-odt-add-write-automatic-styles'.
+ (org-odt-init-outfile): Init newly add variables.
+ (org-odt-section-count): Remove it.
+ (org-odt-begin-section): Use `org-odt-add-automatic-style' to
+ generate an automatic section name.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-map-executables): Correctly position point when
+ mapping hits an inline code block.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-execute-src-block): Ensure params are
+ incorporated *before* checking if evaluation is legal.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-lob-one-liners): Ensure `end' is a
+ marker so it is updated as required during export.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org-src.el (org-src-in-org-buffer): Run commands in the parent
+ buffer.
+ (org-edit-src-save): Use new macro.
+ (org-src-tangle): Tangle the parent buffer.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-font-lock-defaults): Fix bug in done
+ headline fontification.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-font-lock-defaults): Fix bug in done
+ headline fontification.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-return): Act normally when in code blocks.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-in-src-block-p): New function.
+ (org-context): Return new contexts :clocktable and :src-block.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-set-tags-command, org-set-tags): Make ̀C-u C-c
+ C-q' do the right thing even when point is before the first
+ heading.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-noweb-p): Disambiguate intersection name.
+
+2012-04-01 Jambunathan K <kjambunathan@gmail.com>
+
+ * org-odt.el (org-odt-format-textbox): Honor user-specified
+ width in captioned images.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-map-src-blocks): Replace gensym with make-symbol.
+ (org-babel-map-inline-src-blocks): Replace gensym with make-symbol.
+ (org-babel-map-call-lines): Replace gensym with make-symbol.
+ (org-babel-map-executables): Replace gensym with make-symbol.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-results): Alter a copy of info.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-html.el (org-export-as-html): Initialize
+ `html-pre-real-contents' correctly.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-html.el (org-export-as-html): Initialize
+ `html-pre-real-contents' correctly.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-code): Ensure code block name is a
+ string on export.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-code-template): Customizable code
+ block export format string.
+ (org-babel-exp-code): Customizable code block export.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-clojure.el (org-babel-execute:clojure): Removed dependency
+ on deprecated swank-clojure.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-map-src-blocks): Don't pollute symbol space.
+ (org-babel-map-inline-src-blocks): Don't pollute symbol space.
+ (org-babel-map-call-lines): Don't pollute symbol space.
+ (org-babel-map-executables): Map over *all* executable Org-mode
+ elements.
+ (org-babel-execute-buffer): Execute elements in buffer order instead
+ of arbitrarily.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org.el (org-ctrl-c-ctrl-c): Fix a naive structure backup.
+ Those must be done with `copy-tree'.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org-src.el (org-edit-src-code): Referenced code block should
+ not be evaluated on code block edit.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org.el (org-structure-template-alist): Use uppercase for
+ keywords.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-insert-result): Capitalize RESULTS in :wrap'd
+ code block results.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-results-keyword): New user-configurable
+ results keyword.
+ (org-babel-where-is-src-block-result): Use new user-configurable
+ results keyword.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-indent.el (org-indent-refresh-maybe): Check for new
+ headlines from the beginning of the line to be sure to catch
+ any newly inserted headline there.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-exp.el (org-babel-exp-src-block): Use `org-babel-noweb-p'.
+ (org-babel-exp-inline-src-blocks): Use `org-babel-noweb-p'.
+
+ * ob-tangle.el (org-babel-tangle-collect-blocks): Use
+ `org-babel-noweb-p'.
+
+ * ob.el (org-babel-execute-src-block): Use `org-babel-noweb-p'.
+ (org-babel-expand-src-block): Use `org-babel-noweb-p'.
+ (org-babel-load-in-session): Use `org-babel-noweb-p'.
+ (org-babel-merge-params): Use `org-babel-noweb-p'.
+ (org-babel-noweb-p): New function used to determine if noweb
+ expansion should be carried out in a given context.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-update-property-plist): Fix bug in property list
+ updates.
+
+2012-04-01 François Pinard <pinard@iro.umontreal.ca> (tiny change)
+
+ * org.el (org-kill-line): Use `kill-visual-line' in
+ `visual-line-mode'.
+
+2012-04-01 Bernt Hansen <bernt@norang.ca>
+
+ * org-agenda.el (org-agenda-switch-to): Widen org buffer only if point is
+ outside the current restriction
+
+2012-04-01 Bernt Hansen <bernt@norang.ca>
+
+ * org-agenda.el (org-agenda-clock-in): Save restriction when clocking in from the agenda
+
+2012-04-01 Bernt Hansen <bernt@norang.ca>
+
+ * org.el: Honour existing restrictions when regenerating the agenda
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-agenda.el: New alias for `list-diary-entries-hook'.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-common-header-args-w-values): Add the new
+ header argument name.
+ (org-babel-insert-result): Respect the value of the :wrap header
+ argument when inserting results.
+ (org-babel-result-end): Find the end of arbitrarily named result
+ blocks.
+
+2012-04-01 Nicolas Goaziou <n.goaziou@gmail.com>
+
+ * org-indent.el (org-indent-refresh-maybe): Check for new
+ headlines from the beginning of the line to be sure to catch
+ any newly inserted headline there.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * org.el (org-update-property-plist): Remove old instances of
+ property when adding a new value for property.
+
+2012-04-01 Martyn Jago <martyn.jago@btinternet.com>
+
+ * ob-emacs-lisp.el: A comment on the last line of an emacs-lisp
+ code block would cause an error when the block is was executed. This
+ fix cures this behaviour.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-expand-noweb-references): Resurrect dropped
+ pieces of a previous patch.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-maxima.el (org-babel-execute:maxima): Fix compiler warning.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-expand-noweb-references): Resurrect dropped
+ pieces of a previous patch.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob-maxima.el (org-babel-execute:maxima): Fix compiler warning.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-eshell.el (org-eshell-open): Use (goto-char (point-max))
+ instead of (end-of-buffer).
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-bbdb.el (name): Declare variable.
+ (bbdb-record-get-field, bbdb-search-name)
+ (bbdb-search-organization): Declare as part of ext:bbdb.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-mobile.el (org-mobile-push): Use `org-agenda-tag-filter'
+ instead of the obsolete `org-agenda-filter'.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * org-agenda.el: Add an alias for `org-agenda-filter'.
+ (diary-list-entries-hook): Use the non-obsolete hook.
+ (org-agenda-filter-apply): Silent compiler warning.
+
+2012-04-01 Bastien Guerry <bzg@gnu.org>
+
+ * ob-ditaa.el (org-ditaa-jar-path): Make a defcustom.
+ (org-ditaa-jar-option): New option.
+ (org-babel-execute:ditaa): Use it.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-balanced-split): Explicit checking if list
+ before calling member.
+
+2012-04-01 Eric Schulte <eric.schulte@gmx.com>
+
+ * ob.el (org-babel-balanced-split): Explicit checking if list
+ before calling member.
+
2012-02-14 Chong Yidong <cyd@gnu.org>
* org-footnote.el: Remove bogus defvar values (Bug#10745).
Remove hard-wired configuration of minted export
(org-export-latex-minted-with-line-numbers): Remove variable.
-2010-12-11 Bastien Guerry <bzg@altern.org>
+2010-12-11 Bastien Guerry <bzg@gnu.org>
* org-clock.el (org-dblock-write:clocktable): Fix double
reference to `link' in let construct.
* org.el (org-make-link-string): Don't escape characters in link
type.
-2010-11-11 Bastien Guerry <bzg@altern.org>
+2010-11-11 Bastien Guerry <bzg@gnu.org>
* org-capture.el (org-capture-templates): Update docstring to
advertise %:org-date.
* ob-keys.el (org-babel-key-bindings): Key bindings for block
demarcation.
-2010-11-11 Bastien Guerry <bzg@altern.org>
+2010-11-11 Bastien Guerry <bzg@gnu.org>
* org.el (org-link-types): Add the "message" link type.
* org.el (org-link-types): Add 'message:' link type to default
link types.
-2010-11-11 Bastien Guerry <bzg@altern.org>
+2010-11-11 Bastien Guerry <bzg@gnu.org>
* org-gnus.el (org-gnus-store-link): Add the :date property to
gnus links, allowing the use of %:date in capture templates.
* org.el (org-src-fontify-natively): Set to nil by default.
Supply cutomize interface.
-2010-11-11 Bastien Guerry <bzg@altern.org>
+2010-11-11 Bastien Guerry <bzg@gnu.org>
* org-ascii.el (org-export-as-ascii): Fix bug in ASCII export: use
`org-bracket-link-analytic-regexp++' to match the link type.
(org-org-menu): Remove the entry to configure LaTeX snippet
processing.
-2010-11-11 Bastien Guerry <bzg@altern.org>
+2010-11-11 Bastien Guerry <bzg@gnu.org>
* org-agenda.el (org-agenda-clock-goto): Use `\C-c\C-x\C-j' for
`org-clock-goto' and `J' for `org-agenda-clock-goto'. If the
* org-html.el (org-export-html-close-lists-maybe): Check if raw
HTML stuff was actually made from an example.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-latex.el: Items are no longer skipped when their first line
ends on a protected element.
* org-exp-blocks.el (org-export-blocks-preprocess):
Cleanup trailing newline after block.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-exp.el: Comment regexp now matches documentation. No more
protection check when deleting comments before export.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-exp.el (org-export-preprocess-string):
Now using `org-export-handle-include-files-recurse' to resolve
included files.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-agenda.el (org-agenda-get-deadlines)
(org-agenda-get-scheduled):
now instead of resetting on the cyclic repeating date. This makes it
much more obvious when you missed a repeating task after the repeater.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-exp.el (org-export-mark-blockquote-verse-center):
Consider environments that end at eob.
from latex backend specific instructions (#+LaTeX) are already
protected and won't be treated as normal environments.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-set-timer): Fix typo in the docstring.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-set-timer): Use a prefix argument.
See the docstring of the function.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-set-timer): Fix bug about canceling
timers.
t before calling `org-clock-out', so that that function can
know its call context.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-default-timer): New variable.
(org-timer-set-timer): Use the new variable. Also offer the
* org-compat.el (org-overlays-at): Function removed.
(org-overlays-in): Function removed.
-2010-07-19 Bastien Guerry <bzg@altern.org>
+2010-07-19 Bastien Guerry <bzg@gnu.org>
* org-clock.el (org-clock-set-current): Just return the headline
itself, strip the TODO keyword, the priority cookie and the tags.
* org-publish.el (org-publish-aux-preprocess): Control case
sensitivity.
-2010-04-10 Bastien Guerry <bzg@altern.org>
+2010-04-10 Bastien Guerry <bzg@gnu.org>
* org.el (org-splice-latex-header): Fix typo.
restricted, as an agenda mode.
(org-agenda-fontify-priorities): Allow simple colors as values.
-2010-04-10 Bastien Guerry <bzg@altern.org>
+2010-04-10 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-current-timer): Rename from
`org-timer-last-timer'.
* org-exp.el (org-export-format-source-code-or-example):
Fix textarea tag.
-2010-04-10 Bastien Guerry <bzg@altern.org>
+2010-04-10 Bastien Guerry <bzg@gnu.org>
* org-clock.el (org-clock-current-task): New variable to store
last clocked in task.
(org-columns-compile-format): Support the additional parameter in
org-columns-compile-map.
-2009-11-13 Bastien Guerry <bzg@altern.org>
+2009-11-13 Bastien Guerry <bzg@gnu.org>
* org.el (org-mode-hook): Turn `org-mode-hook' into a customizable
variable.
* org.el (org-shifttab): Interpret arg differently when using only
odd levels.
-2009-10-01 Bastien Guerry <bzg@altern.org>
+2009-10-01 Bastien Guerry <bzg@gnu.org>
* org.el (org-check-agenda-file): Use a more explicit message.
* org-exp.el (org-export-remove-special-table-lines): Don't remove
normal lines.
-2009-10-01 Bastien Guerry <bzg@altern.org>
+2009-10-01 Bastien Guerry <bzg@gnu.org>
* org.el (org-offer-links-in-entry): Don't use "Select link" as a
prompt in the temporary window.
* org-gnus.el (org-gnus-store-link): Restore the linking to a
website.
-2009-09-02 Bastien Guerry <bzg@altern.org>
+2009-09-02 Bastien Guerry <bzg@gnu.org>
* org-latex.el (org-export-latex-first-lines): Bugfix.
(org-remember-apply-template): Use `org-remember-escaped-%' to
detect escaped % signs.
-2009-09-02 Bastien Guerry <bzg@altern.org>
+2009-09-02 Bastien Guerry <bzg@gnu.org>
* org-timer.el (org-timer-set-timer): Use `org-notify' and play a
sound when showing the notification.
* org-exp.el (org-export-format-source-code-or-example):
Use listing package if requested by the user.
-2009-09-02 Bastien Guerry <bzg@altern.org>
+2009-09-02 Bastien Guerry <bzg@gnu.org>
* org.el (org-iswitchb): Fix bug when aborting the `org-iswitchb'
command before actually switching to a buffer.
* org-macs.el (org-unmodified): Turn of modification hooks while
running this macro.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-adapt-indentation): Slightly improve the docstring.
(org-occur): Sends an error when the user inputs an empty string.
(org-priority): Bugfix: the tag alignement should happen within
save-excursion.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-make-link-regexps): Don't exclude parentheses from
`org-plain-link-re'.
* org-clock.el (org-clock-in): Bugfix: recognize timestamps with
an abbreviated format for days.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-protocol.el (org-protocol-default-template-key):
New option.
(org-update-parent-todo-statistics): Possibly use the new allowed
value of `org-provide-todo-statistics'.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-timer.el: Add autoload cookie.
(org-update-parent-todo-statistics): Possibly use the new
'all-headline value from `org-provide-todo-statistics'.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-clock.el (org-dblock-write:clocktable): Add a new option
:timestamp which allows display of timestamps in clock reports.
* org.el (org-eval-in-calendar): Select the right frame.
(org-save-frame-excursion): Remove this macro.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-list.el (org-list-beginning-re): Bugfix: don't use * when
trying to find the beginning of a list.
(org-id-method): Use `org-id-uuid-program'.
(org-id-new): Use `org-id-uuid-program'.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-exp.el (org-export-number-lines): Allow whitespace in code
references. Allow the -r switch to remove the references in the
* org-clock.el (org-show-notification-handler): New option.
(org-show-notification): Use the new option.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-eval-in-calendar): Fix a bug about calendar
navigation when `calendar-setup' value is 'calendar-only.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (orgstruct++-mode): Fix typo in docstring.
(org-insert-link): Clean up: (or (...)) => (...)
(org-insert-link): Use TAB for stored links completion.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-get-refile-targets): Fix bug: don't ignore case when
building the list of targets.
* org-plot.el (org-plot/gnuplot): Run with an idle timer to avoid
premature deletion of the data when using org-plot in a script.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org-clock.el (org-clock-in-prepare-hook): New hook.
(org-clock-in): Use this new hook.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-special-ctrl-a/e): Explicitly bind the value
'reversed for this option to the "true line boundary first"
* org-exp.el (org-export-splice-attributes): New function.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
Daniel M German <dmg@uvic.org>
Sebastian Rose <sebastian_rose@gmx.de>
Ross Patterson <me@rpatterson.net>
* org-exp.el (org-export-as-ascii): Improve export of plain lists.
-2009-08-06 Bastien Guerry <bzg@altern.org>
+2009-08-06 Bastien Guerry <bzg@gnu.org>
* org.el (org-toggle-fixed-width-section): Bug fix: insert a
column and a space, not only a column.
* org-archive.el (org-archive-to-archive-sibling): Handle top
level headlines better.
-2008-10-26 Bastien Guerry <bzg@altern.org>
+2008-10-26 Bastien Guerry <bzg@gnu.org>
* org-export-latex.el (org-export-latex-classes):
Add \usepackage{graphicx} to the default list of packages.
New functions, similar to the outline versions, but invisible headings
are OK.
-2008-10-12 Bastien Guerry <bzg@altern.org>
+2008-10-12 Bastien Guerry <bzg@gnu.org>
* org.el (org-auto-repeat-maybe): Insert a space between
the timestamp's type and the timestamp itself.
* org.el (org-map-entries): Protect the keyword-selecting variables.
-2008-10-12 Bastien Guerry <bzg@altern.org>
+2008-10-12 Bastien Guerry <bzg@gnu.org>
* org-agenda.el (org-agenda-to-appt): Make sure the function check
against all agenda files.
2008-10-12 Carsten Dominik <dominik@science.uva.nl>
- Bastien Guerry <bzg@altern.org>
+ Bastien Guerry <bzg@gnu.org>
* org-list.el: New file, aggregating list functions from org.el
and org-export-latex.el.
* org-agenda.el (org-agenda-to-appt): Fix bug with appointment
time before 1am.
-2008-10-12 Bastien Guerry <bzg@altern.org>
+2008-10-12 Bastien Guerry <bzg@gnu.org>
* org-export-latex.el (org-export-latex-keywords-maybe): Bug fix.
* org-compat.el (org-propertize): New function.
-2008-10-12 Bastien Guerry <bzg@altern.org>
+2008-10-12 Bastien Guerry <bzg@gnu.org>
* org-export-latex.el (org-export-latex-tables): Protect exported
tables from further special chars conversion.
* org.el (org-log-note-extra): New variable.
-2008-10-12 Bastien Guerry <bzg@altern.org>
+2008-10-12 Bastien Guerry <bzg@gnu.org>
* org.el (org-additional-option-like-keywords): Add keywords for
the _QUOTE, _VERSE and _SRC environments.
(org-structure-template-alist): New, experimental option.
(org-complete): Call `org-complete-expand-structure-template'.
-2008-06-17 Bastien Guerry <bzg@altern.org>
+2008-06-17 Bastien Guerry <bzg@gnu.org>
* org-export-latex.el (org-export-latex-preprocess):
Add support for blockquotes.
(cond
((equal org-babel-c-variant 'c) ".c")
((equal org-babel-c-variant 'cpp) ".cpp"))))
- (tmp-bin-file (org-babel-temp-file "C-bin-"))
+ (tmp-bin-file (org-babel-temp-file
+ "C-bin-"
+ (if (equal system-type 'windows-nt) ".exe" "")))
(cmdline (cdr (assoc :cmdline params)))
(flags (cdr (assoc :flags params)))
(full-body (org-babel-C-expand body params))
"Wrap body in a \"main\" function call if none exists."
(if (string-match "^[ \t]*[intvod]+[ \t\n\r]*main[ \t]*(.*)" body)
body
- (format "int main() {\n%s\n}\n" body)))
+ (format "int main() {\n%s\nreturn(0);\n}\n" body)))
(defun org-babel-prep-session:C (session params)
"This function does nothing as C is a compiled language with no
(with-temp-buffer
(insert (org-babel-chomp body))
(let ((ess-local-process-name
- (process-name (get-buffer-process session))))
+ (process-name (get-buffer-process session)))
+ (ess-eval-visibly-p nil))
(ess-eval-buffer nil)))
(let ((tmp-file (org-babel-temp-file "R-")))
(org-babel-comint-eval-invisibly-and-wait-for-file
;;; ob-asymptote.el --- org-babel functions for asymptote evaluation
-;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
;; Author: Eric Schulte
;; Keywords: literate programming, reproducible research
;;; - clojure (at least 1.2.0)
;;; - clojure-mode
;;; - slime
-;;; - swank-clojure
;;; By far, the best way to install these components is by following
;;; the directions as set out by Phil Hagelberg (Technomancy) on the
(defun org-babel-execute:clojure (body params)
"Execute a block of Clojure code with Babel."
- (require 'slime) (require 'swank-clojure)
+ (require 'slime)
(with-temp-buffer
(insert (org-babel-expand-body:clojure body params))
((lambda (result)
(condition-case nil (org-babel-script-escape result)
(error result)))))
(slime-eval
- `(swank:interactive-eval-region
+ `(swank:eval-and-grab-output
,(buffer-substring-no-properties (point-min) (point-max)))
(cdr (assoc :package params))))))
(require 'ob)
(defvar org-babel-default-header-args:ditaa
- '((:results . "file")
- (:exports . "results")
- (:java . "-Dfile.encoding=UTF-8"))
+ '((:results . "file") (:exports . "results") (:java . "-Dfile.encoding=UTF-8"))
"Default arguments for evaluating a ditaa source block.")
-(defcustom org-ditaa-jar-path nil
- "Path for the ditaa jar file."
- :group 'org-babel
- :type 'string)
-
-(defcustom org-ditaa-jar-option "-jar"
- "Option for the ditaa jar file.
-Do not leave leading or trailing spaces in this string."
- :group 'org-babel
- :type 'string)
-
+(defvar org-ditaa-jar-path)
(defun org-babel-execute:ditaa (body params)
"Execute a block of Ditaa code with org-babel.
This function is called by `org-babel-execute-src-block'."
(cmdline (cdr (assoc :cmdline params)))
(java (cdr (assoc :java params)))
(in-file (org-babel-temp-file "ditaa-"))
- (cmd (concat "java " java " " org-ditaa-jar-option " "
+ (cmd (concat "java " java " -jar "
(shell-quote-argument
(expand-file-name org-ditaa-jar-path))
" " cmdline
(result-params (cdr (assoc :result-params params)))
(print-level nil) (print-length nil)
(body (if (> (length vars) 0)
- (concat "(let ("
- (mapconcat
- (lambda (var)
- (format "%S" (print `(,(car var) ',(cdr var)))))
- vars "\n ")
- ")\n" body ")")
- body)))
+ (concat "(let ("
+ (mapconcat
+ (lambda (var)
+ (format "%S" (print `(,(car var) ',(cdr var)))))
+ vars "\n ")
+ ")\n" body "\n)")
+ (concat body "\n"))))
(if (or (member "code" result-params)
(member "pp" result-params))
(concat "(pp " body ")") body)))
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Eric Schulte
+;; Authors: Eric Schulte
;; Dan Davison
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
(defvar org-babel-ref-split-regexp)
(declare-function org-babel-lob-get-info "ob-lob" ())
(declare-function org-babel-eval-wipe-error-buffer "ob-eval" ())
-(add-to-list 'org-export-interblocks '(src org-babel-exp-inline-src-blocks))
-(add-to-list 'org-export-interblocks '(lob org-babel-exp-lob-one-liners))
+(add-to-list 'org-export-interblocks '(src org-babel-exp-non-block-elements))
(org-export-blocks-add-block '(src org-babel-exp-src-block nil))
When set to nil no code will be evaluated as part of the export
process."
:group 'org-babel
+ :version "24.1"
:type 'boolean)
(put 'org-export-babel-evaluate 'safe-local-variable (lambda (x) (eq x nil)))
(nth 1 info)))
(org-babel-exp-do-export info 'block hash)))))
-(defun org-babel-exp-inline-src-blocks (start end)
- "Process inline source blocks between START and END for export.
-See `org-babel-exp-src-block' for export options, currently the
-options and are taken from `org-babel-default-inline-header-args'."
+(defvar org-babel-default-lob-header-args)
+(defun org-babel-exp-non-block-elements (start end)
+ "Process inline source and call lines between START and END for export."
(interactive)
(save-excursion
(goto-char start)
- (while (and (< (point) end)
- (re-search-forward org-babel-inline-src-block-regexp end t))
- (let* ((info (save-match-data (org-babel-parse-inline-src-block-match)))
- (params (nth 2 info)))
- (save-match-data
- (goto-char (match-beginning 2))
+ (unless (markerp end)
+ (let ((m (make-marker)))
+ (set-marker m end (current-buffer))
+ (setq end m)))
+ (let ((rx (concat "\\(" org-babel-inline-src-block-regexp
+ "\\|" org-babel-lob-one-liner-regexp "\\)")))
+ (while (and (< (point) (marker-position end))
+ (re-search-forward rx end t))
+ (if (save-excursion
+ (goto-char (match-beginning 0))
+ (looking-at org-babel-inline-src-block-regexp))
+ (progn
+ (forward-char 1)
+ (let* ((info (save-match-data
+ (org-babel-parse-inline-src-block-match)))
+ (params (nth 2 info)))
+ (save-match-data
+ (goto-char (match-beginning 2))
+ (unless (org-babel-in-example-or-verbatim)
+ ;; expand noweb references in the original file
+ (setf (nth 1 info)
+ (if (and (cdr (assoc :noweb params))
+ (string= "yes" (cdr (assoc :noweb params))))
+ (org-babel-expand-noweb-references
+ info (get-file-buffer org-current-export-file))
+ (nth 1 info)))
+ (let ((code-replacement (save-match-data
+ (org-babel-exp-do-export
+ info 'inline))))
+ (if code-replacement
+ (progn (replace-match code-replacement nil nil nil 1)
+ (delete-char 1))
+ (org-babel-examplize-region (match-beginning 1)
+ (match-end 1))
+ (forward-char 2)))))))
(unless (org-babel-in-example-or-verbatim)
- ;; expand noweb references in the original file
- (setf (nth 1 info)
- (if (and (cdr (assoc :noweb params))
- (string= "yes" (cdr (assoc :noweb params))))
- (org-babel-expand-noweb-references
- info (get-file-buffer org-current-export-file))
- (nth 1 info)))
- (let ((code-replacement (save-match-data
- (org-babel-exp-do-export info 'inline))))
- (if code-replacement
- (replace-match code-replacement nil nil nil 1)
- (org-babel-examplize-region (match-beginning 1) (match-end 1))
- (forward-char 2)))))))))
+ (let* ((lob-info (org-babel-lob-get-info))
+ (inlinep (match-string 11))
+ (inline-start (match-end 11))
+ (inline-end (match-end 0))
+ (rep (let ((lob-info (org-babel-lob-get-info)))
+ (save-match-data
+ (org-babel-exp-do-export
+ (list "emacs-lisp" "results"
+ (org-babel-merge-params
+ org-babel-default-header-args
+ org-babel-default-lob-header-args
+ (org-babel-params-from-properties)
+ (org-babel-parse-header-arguments
+ (org-babel-clean-text-properties
+ (concat ":var results="
+ (mapconcat #'identity
+ (butlast lob-info)
+ " ")))))
+ "" nil (car (last lob-info)))
+ 'lob)))))
+ (if inlinep
+ (save-excursion
+ (goto-char inline-start)
+ (delete-region inline-start inline-end)
+ (insert rep))
+ (replace-match rep t t)))))))))
(defun org-babel-in-example-or-verbatim ()
"Return true if point is in example or verbatim code.
(org-in-block-p org-list-forbidden-blocks)
(org-between-regexps-p "^[ \t]*#\\+begin_src" "^[ \t]*#\\+end_src")))
-(defvar org-babel-default-lob-header-args)
-(defun org-babel-exp-lob-one-liners (start end)
- "Process Library of Babel calls between START and END for export.
-See `org-babel-exp-src-block' for export options. Currently the
-options are taken from `org-babel-default-header-args'."
- (interactive)
- (save-excursion
- (goto-char start)
- (while (and (< (point) end)
- (re-search-forward org-babel-lob-one-liner-regexp end t))
- (unless (org-babel-in-example-or-verbatim)
- (let* ((lob-info (org-babel-lob-get-info))
- (inlinep (match-string 11))
- (inline-start (match-end 11))
- (inline-end (match-end 0))
- (rep (let ((lob-info (org-babel-lob-get-info)))
- (save-match-data
- (org-babel-exp-do-export
- (list "emacs-lisp" "results"
- (org-babel-merge-params
- org-babel-default-header-args
- org-babel-default-lob-header-args
- (org-babel-params-from-properties)
- (org-babel-parse-header-arguments
- (org-babel-clean-text-properties
- (concat ":var results="
- (mapconcat #'identity
- (butlast lob-info) " ")))))
- "" nil (car (last lob-info)))
- 'lob)))))
- (setq end (+ end (- (length rep)
- (- (length (match-string 0))
- (length (or (match-string 11) ""))))))
- (if inlinep
- (save-excursion
- (goto-char inline-start)
- (delete-region inline-start inline-end)
- (insert rep))
- (replace-match rep t t)))))))
-
(defun org-babel-exp-do-export (info type &optional hash)
"Return a string with the exported content of a code block.
The function respects the value of the :exports header argument."
"#+BEGIN_SRC %lang%flags\n%body\n#+END_SRC"
`(("lang" . ,(nth 0 info))
("flags" . ,((lambda (f) (when f (concat " " f))) (nth 3 info)))
- ("body" . ,(nth 1 info)))))
+ ("body" . ,(if (string= (nth 0 info) "org")
+ (replace-regexp-in-string "^" "," (nth 1 info))
+ (nth 1 info))))))
(defun org-babel-exp-results (info type &optional silent hash)
"Evaluate and return the results of the current code block for export.
;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
;; Authors: Sergey Litvinov
-;; Eric Schulte
+;; Eric Schulte
;; Keywords: literate programming, reproducible research, fortran
;; Homepage: http://orgmode.org
-;; Version: 7.8.02
-;; This file is part of GNU Emacs.
-
-;; GNU Emacs is free software: you can redistribute it and/or modify
+;; This program is free software; you can redistribute it and/or modify
;; it under the terms of the GNU General Public License as published by
-;; the Free Software Foundation, either version 3 of the License, or
-;; (at your option) any later version.
-
-;; GNU Emacs is distributed in the hope that it will be useful,
+;; the Free Software Foundation; either version 3, or (at your option)
+;; any later version.
+;;
+;; This program is distributed in the hope that it will be useful,
;; but WITHOUT ANY WARRANTY; without even the implied warranty of
;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
;; GNU General Public License for more details.
-
+;;
;; You should have received a copy of the GNU General Public License
-;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+;; along with GNU Emacs; see the file COPYING. If not, write to the
+;; Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+;; Boston, MA 02110-1301, USA.
;;; Commentary:
;; Org-Babel support for evaluating fortran code.
-;; Based on ob-C.el by Eric Schulte.
;;; Code:
(require 'ob)
;;; ob-js.el --- org-babel functions for Javascript
-;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Author: Eric Schulte
;; Keywords: literate programming, reproducible research, js
(defcustom org-babel-js-cmd "node"
"Name of command used to evaluate js blocks."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defvar org-babel-js-function-wrapper
;; Author: Martyn Jago
;; Keywords: babel language, literate programming
-;; Homepage: https://github.com/mjago/ob-lilypond
+;; Homepage: http://orgmode.org/worg/org-contrib/babel/languages/ob-doc-lilypond.html
;; This file is part of GNU Emacs.
(require 'ob)
(require 'ob-eval)
(require 'ob-tangle)
+(require 'outline)
(defalias 'lilypond-mode 'LilyPond-mode)
-(declare-function show-all "outline" ())
-
(add-to-list 'org-babel-tangle-lang-exts '("LilyPond" . "ly"))
(defvar org-babel-default-header-args:lilypond '()
"Default header arguments for js code blocks.")
-(defconst ly-version "0.3"
- "The version number of the file ob-lilypond.el.")
-
(defvar ly-compile-post-tangle t
"Following the org-babel-tangle (C-c C-v t) command,
ly-compile-post-tangle determines whether ob-lilypond should
(message (concat "Arrange mode has been "
(if ly-arrange-mode "ENABLED." "DISABLED."))))
-(defun ly-version (&optional insert-at-point)
- (interactive)
- (let ((version (format "ob-lilypond version %s" ly-version)))
- (when insert-at-point (insert version))
- (message version)))
-
- (defun ly-switch-extension (file-name ext)
+(defun ly-switch-extension (file-name ext)
"Utility command to swap current FILE-NAME extension with EXT"
(concat (file-name-sans-extension
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Joel Boehland
-;; Eric Schulte
-;; David T. O'Toole <dto@gnu.org>
+;; Authors: Joel Boehland
+;; Eric Schulte
+;; David T. O'Toole <dto@gnu.org>
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
For example a value of \"(progn ;; %s\\n %%s)\" would ignore the
current directory string."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defun org-babel-expand-body:lisp (body params)
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Eric Schulte
-;; Dan Davison
+;; Authors: Eric Schulte
+;; Dan Davison
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
"Files used to populate the `org-babel-library-of-babel'.
To add files to this list use the `org-babel-lob-ingest' command."
:group 'org-babel
+ :version "24.1"
:type 'list)
(defvar org-babel-default-lob-header-args '((:exports . "results"))
(defconst org-babel-block-lob-one-liner-regexp
(concat
- "^\\([ \t]*\\)#\\+call:[ \t]+\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)"
- "\(\\([^\n]*\\)\)\\(\\[.+\\]\\|\\)[ \t]*\\(\\([^\n]*\\)\\)?")
+ "^\\([ \t]*?\\)#\\+call:[ \t]+\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)"
+ "\(\\([^\n]*?\\)\)\\(\\[.+\\]\\|\\)[ \t]*\\(\\([^\n]*\\)\\)?")
"Regexp to match non-inline calls to predefined source block functions.")
(defconst org-babel-inline-lob-one-liner-regexp
(concat
- "\\([^\n]*\\)call_\\([^\(\)\n]+?\\)\\(\\[\\(.*\\)\\]\\|\\(\\)\\)"
- "\(\\([^\n]*\\)\)\\(\\[\\(.*?\\)\\]\\)?")
+ "\\([^\n]*?\\)call_\\([^\(\)\n]+?\\)\\(\\[\\(.*?\\)\\]\\|\\(\\)\\)"
+ "\(\\([^\n]*?\\)\)\\(\\[\\(.*?\\)\\]\\)?")
"Regexp to match inline calls to predefined source block functions.")
(defconst org-babel-lob-one-liner-regexp
(list
(format "%s%s(%s)%s"
(nonempty 3 12)
- (if (not (= 0 (length (nonempty 5 13))))
- (concat "[" (nonempty 5 13) "]") "")
+ (if (not (= 0 (length (nonempty 5 14))))
+ (concat "[" (nonempty 5 14) "]") "")
(or (nonempty 7 16) "")
(or (nonempty 8 19) ""))
(nonempty 9 18)))
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
;; Author: Eric S Fraga
-;; Eric Schulte
+;; Eric Schulte
;; Keywords: literate programming, reproducible research, maxima
;; Homepage: http://orgmode.org
(defvar org-babel-default-header-args:maxima '())
+(defcustom org-babel-maxima-command
+ (if (boundp 'maxima-command) maxima-command "maxima")
+ "Command used to call maxima on the shell."
+ :group 'org-babel)
+
(defun org-babel-maxima-expand (body params)
"Expand a block of Maxima code according to its header arguments."
(let ((vars (mapcar #'cdr (org-babel-get-header params :var))))
(result
(let* ((cmdline (cdr (assoc :cmdline params)))
(in-file (org-babel-temp-file "maxima-" ".max"))
- (cmd (format "maxima --very-quiet -r 'batchload(%S)$' %s"
- in-file cmdline)))
+ (cmd (format "%s --very-quiet -r 'batchload(%S)$' %s"
+ org-babel-maxima-command in-file cmdline)))
(with-temp-file in-file (insert (org-babel-maxima-expand body params)))
(message cmd)
((lambda (raw) ;; " | grep -v batch | grep -v 'replaced' | sed '/^$/d' "
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Dan Davison
-;; Eric Schulte
+;; Authors: Dan Davison
+;; Eric Schulte
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Authors: Thorsten Jolitz
-;; Eric Schulte
+;; Eric Schulte
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
(defcustom org-babel-picolisp-cmd "pil"
"Name of command used to evaluate picolisp blocks."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defun org-babel-expand-body:picolisp (body params &optional processed-params)
(defcustom org-plantuml-jar-path nil
"Path to the plantuml.jar file."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defun org-babel-execute:plantuml (body params)
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Eric Schulte
-;; Dan Davison
+;; Authors: Eric Schulte
+;; Dan Davison
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Eric Schulte
-;; Dan Davison
+;; Authors: Eric Schulte
+;; Dan Davison
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
;;; ob-scheme.el --- org-babel functions for Scheme
-;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Author: Eric Schulte
;; Keywords: literate programming, reproducible research, scheme
(defcustom org-babel-scheme-cmd "guile"
"Name of command used to evaluate scheme blocks."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defun org-babel-expand-body:scheme (body params)
;;; Commentary:
;; Org-Babel support for evaluating sql source code.
+;; (see also ob-sqlite.el)
;;
;; SQL is somewhat unique in that there are many different engines for
;; the evaluation of sql (Mysql, PostgreSQL, etc...), so much of this
(member "code" result-params)
(equal (point-min) (point-max)))
(buffer-string)
- (org-table-convert-region (point-min) (point-max))
+ (org-table-convert-region (point-min) (point-max)
+ (if (or (member :csv others)
+ (member :column others)
+ (member :line others)
+ (member :list others)
+ (member :html others) separator)
+ nil
+ '(4)))
(org-babel-sqlite-table-or-scalar
(org-babel-sqlite-offset-colnames
(org-table-to-lisp) headers-p))))))
NOTE: by default string variable names are interpreted as
references to source-code blocks, to force interpretation of a
-cell's value as a string, prefix the identifier with two \"$\"s
-rather than a single \"$\" (i.e. \"$$2\" instead of \"$2\" in the
-example above.
+cell's value as a string, prefix the identifier a \"$\" (e.g.,
+\"$$2\" instead of \"$2\" or \"$@2$2\" instead of \"@2$2\").
NOTE: it is also possible to pass header arguments to the code
block. In this case a table cell should hold the string value of
(delq nil (mapcar
(lambda (el)
(if (eq '$ el)
- (setq quote t)
+ (prog1 nil (setq quote t))
(prog1 (if quote
(format "\"%s\"" el)
(org-babel-clean-text-properties el))
written in this language. If no entry is found in this list,
then the name of the language is used."
:group 'org-babel-tangle
+ :version "24.1"
:type '(repeat
(cons
(string "Language name")
(defcustom org-babel-post-tangle-hook nil
"Hook run in code files tangled by `org-babel-tangle'."
:group 'org-babel
+ :version "24.1"
:type 'hook)
(defcustom org-babel-pre-tangle-hook '(save-buffer)
"Hook run at the beginning of `org-babel-tangle'."
:group 'org-babel
+ :version "24.1"
:type 'hook)
(defcustom org-babel-tangle-body-hook nil
"Hook run over the contents of each code block body."
:group 'org-babel
+ :version "24.1"
:type 'hook)
(defcustom org-babel-tangle-comment-format-beg "[[%link][%source-name]]"
Whether or not comments are inserted during tangling is
controlled by the :comments header argument."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defcustom org-babel-tangle-comment-format-end "%source-name ends here"
Whether or not comments are inserted during tangling is
controlled by the :comments header argument."
:group 'org-babel
+ :version "24.1"
:type 'string)
(defcustom org-babel-process-comment-text #'org-babel-trim
should take a single string argument and return a string
result. The default value is `org-babel-trim'."
:group 'org-babel
+ :version "24.1"
:type 'function)
(defun org-babel-find-file-noselect-refresh (file)
(when only-this-block
(unless (org-babel-where-is-src-block-head)
(error "Point is not currently inside of a code block"))
- (unless target-file
- (setq target-file
- (read-from-minibuffer "Tangle to: " (buffer-file-name))))
+ (save-match-data
+ (unless (or (cdr (assoc :tangle (nth 2 (org-babel-get-src-block-info))))
+ target-file)
+ (setq target-file
+ (read-from-minibuffer "Tangle to: " (buffer-file-name)))))
(narrow-to-region (match-beginning 0) (match-end 0)))
(save-excursion
(let ((block-counter 0)
(start-line file link source-name params body comment)"
(let* ((start-line (nth 0 spec))
(file (nth 1 spec))
- (link (org-link-escape (nth 2 spec)))
+ (link (nth 2 spec))
(source-name (nth 3 spec))
(body (nth 5 spec))
(comment (nth 6 spec))
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
-;; Author: Eric Schulte
+;; Authors: Eric Schulte
;; Dan Davison
;; Keywords: literate programming, reproducible research
;; Homepage: http://orgmode.org
(declare-function org-list-struct "org-list" ())
(declare-function org-list-prevs-alist "org-list" (struct))
(declare-function org-list-get-list-end "org-list" (item struct prevs))
+(declare-function org-strip-protective-commas "org" (beg end))
(defgroup org-babel nil
"Code block evaluation and management in `org-mode' documents."
`org-babel-no-eval-on-ctrl-c-ctrl-c' variable can be used to
remove code block execution from the C-c C-c keybinding."
:group 'org-babel
+ :version "24.1"
:type '(choice boolean function))
;; don't allow this variable to be changed through file settings
(put 'org-confirm-babel-evaluate 'safe-local-variable (lambda (x) (eq x t)))
(defcustom org-babel-no-eval-on-ctrl-c-ctrl-c nil
"Remove code block evaluation from the C-c C-c key binding."
:group 'org-babel
+ :version "24.1"
:type 'boolean)
+(defcustom org-babel-results-keyword "RESULTS"
+ "Keyword used to name results generated by code blocks.
+Should be either RESULTS or NAME however any capitalization may
+be used."
+ :group 'org-babel
+ :type 'string)
+
(defvar org-babel-src-name-regexp
"^[ \t]*#\\+name:[ \t]*"
"Regular expression used to match a source name line.")
(first-line-p (= 1 (line-number-at-pos)))
(orig (point)))
(let ((search-for (cond ((and src-at-0-p first-line-p "src_"))
- (first-line-p "[ \t]src_")
- (t "[ \f\t\n\r\v]src_")))
+ (first-line-p "[[:punct:] \t]src_")
+ (t "[[:punct:] \f\t\n\r\v]src_")))
(lower-limit (if first-line-p
nil
(- (point-at-bol) 1))))
(noeval)
(noweb . ((yes no tangle)))
(noweb-ref . :any)
+ (noweb-sep . :any)
(padline . ((yes no)))
(results . ((file list vector table scalar verbatim)
(raw org html latex code pp wrap)
block."
(interactive)
(let ((info (or info (org-babel-get-src-block-info))))
- (when (org-babel-confirm-evaluate info)
+ (when (org-babel-confirm-evaluate
+ (let ((i info))
+ (setf (nth 2 i) (org-babel-merge-params (nth 2 info) params))
+ i))
(let* ((lang (nth 0 info))
(params (if params
(org-babel-process-params
;; TODO: report malformed code block
;; TODO: report incompatible combinations of header arguments
;; TODO: report uninitialized variables
- (let ((too-close 2)) ;; <- control closeness to report potential match
+ (let ((too-close 2) ;; <- control closeness to report potential match
+ (names (mapcar #'symbol-name org-babel-header-arg-names)))
(dolist (header (mapcar (lambda (arg) (substring (symbol-name (car arg)) 1))
(and (org-babel-where-is-src-block-head)
(org-babel-parse-header-arguments
(org-babel-clean-text-properties
(match-string 4))))))
- (dolist (name (mapcar #'symbol-name org-babel-header-arg-names))
+ (dolist (name names)
(when (and (not (string= header name))
- (<= (org-babel-edit-distance header name) too-close))
+ (<= (org-babel-edit-distance header name) too-close)
+ (not (member header names)))
(error "supplied header \"%S\" is suspiciously close to \"%S\""
header name))))
(message "No suspicious header arguments found.")))
(goto-char point))))
(def-edebug-spec org-babel-map-call-lines (form body))
+;;;###autoload
+(defmacro org-babel-map-executables (file &rest body)
+ (declare (indent 1))
+ (let ((tempvar (make-symbol "file"))
+ (rx (make-symbol "rx")))
+ `(let* ((,tempvar ,file)
+ (,rx (concat "\\(" org-babel-src-block-regexp
+ "\\|" org-babel-inline-src-block-regexp
+ "\\|" org-babel-lob-one-liner-regexp "\\)"))
+ (visited-p (or (null ,tempvar)
+ (get-file-buffer (expand-file-name ,tempvar))))
+ (point (point)) to-be-removed)
+ (save-window-excursion
+ (when ,tempvar (find-file ,tempvar))
+ (setq to-be-removed (current-buffer))
+ (goto-char (point-min))
+ (while (re-search-forward ,rx nil t)
+ (goto-char (match-beginning 1))
+ (when (looking-at org-babel-inline-src-block-regexp)(forward-char 1))
+ (save-match-data ,@body)
+ (goto-char (match-end 0))))
+ (unless visited-p (kill-buffer to-be-removed))
+ (goto-char point))))
+(def-edebug-spec org-babel-map-executables (form body))
+
;;;###autoload
(defun org-babel-execute-buffer (&optional arg)
"Execute source code blocks in a buffer.
(interactive "P")
(org-babel-eval-wipe-error-buffer)
(org-save-outline-visibility t
- (org-babel-map-src-blocks nil
- (org-babel-execute-src-block arg))
- (org-babel-map-inline-src-blocks nil
- (org-babel-execute-src-block arg))
- (org-babel-map-call-lines nil
- (org-babel-lob-execute-maybe))))
+ (org-babel-map-executables nil
+ (if (looking-at org-babel-lob-one-liner-regexp)
+ (org-babel-lob-execute-maybe)
+ (org-babel-execute-src-block arg)))))
;;;###autoload
(defun org-babel-execute-subtree (&optional arg)
(when hash (kill-new hash) (message hash))))
(add-hook 'org-ctrl-c-ctrl-c-hook 'org-babel-hash-at-point)
+(defun org-babel-result-hide-spec ()
+ "Hide portions of results lines.
+Add `org-babel-hide-result' as an invisibility spec for hiding
+portions of results lines."
+ (add-to-invisibility-spec '(org-babel-hide-result . t)))
+(add-hook 'org-mode-hook 'org-babel-result-hide-spec)
+
+(defvar org-babel-hide-result-overlays nil
+ "Overlays hiding results.")
+
+(defun org-babel-result-hide-all ()
+ "Fold all results in the current buffer."
+ (interactive)
+ (org-babel-show-result-all)
+ (save-excursion
+ (while (re-search-forward org-babel-result-regexp nil t)
+ (save-excursion (goto-char (match-beginning 0))
+ (org-babel-hide-result-toggle-maybe)))))
+
+(defun org-babel-show-result-all ()
+ "Unfold all results in the current buffer."
+ (mapc 'delete-overlay org-babel-hide-result-overlays)
+ (setq org-babel-hide-result-overlays nil))
+
+;;;###autoload
+(defun org-babel-hide-result-toggle-maybe ()
+ "Toggle visibility of result at point."
+ (interactive)
+ (let ((case-fold-search t))
+ (if (save-excursion
+ (beginning-of-line 1)
+ (looking-at org-babel-result-regexp))
+ (progn (org-babel-hide-result-toggle)
+ t) ;; to signal that we took action
+ nil))) ;; to signal that we did not
+
+(defun org-babel-hide-result-toggle (&optional force)
+ "Toggle the visibility of the current result."
+ (interactive)
+ (save-excursion
+ (beginning-of-line)
+ (if (re-search-forward org-babel-result-regexp nil t)
+ (let ((start (progn (beginning-of-line 2) (- (point) 1)))
+ (end (progn
+ (while (looking-at org-babel-multi-line-header-regexp)
+ (forward-line 1))
+ (goto-char (- (org-babel-result-end) 1)) (point)))
+ ov)
+ (if (memq t (mapcar (lambda (overlay)
+ (eq (overlay-get overlay 'invisible)
+ 'org-babel-hide-result))
+ (overlays-at start)))
+ (if (or (not force) (eq force 'off))
+ (mapc (lambda (ov)
+ (when (member ov org-babel-hide-result-overlays)
+ (setq org-babel-hide-result-overlays
+ (delq ov org-babel-hide-result-overlays)))
+ (when (eq (overlay-get ov 'invisible)
+ 'org-babel-hide-result)
+ (delete-overlay ov)))
+ (overlays-at start)))
+ (setq ov (make-overlay start end))
+ (overlay-put ov 'invisible 'org-babel-hide-result)
+ ;; make the block accessible to isearch
+ (overlay-put
+ ov 'isearch-open-invisible
+ (lambda (ov)
+ (when (member ov org-babel-hide-result-overlays)
+ (setq org-babel-hide-result-overlays
+ (delq ov org-babel-hide-result-overlays)))
+ (when (eq (overlay-get ov 'invisible)
+ 'org-babel-hide-result)
+ (delete-overlay ov))))
+ (push ov org-babel-hide-result-overlays)))
+ (error "Not looking at a result line"))))
+
+;; org-tab-after-check-for-cycling-hook
+(add-hook 'org-tab-first-hook 'org-babel-hide-result-toggle-maybe)
+;; Remove overlays when changing major mode
+(add-hook 'org-mode-hook
+ (lambda () (org-add-hook 'change-major-mode-hook
+ 'org-babel-show-result-all 'append 'local)))
+
(defvar org-file-properties)
(defun org-babel-params-from-properties (&optional lang)
"Retrieve parameters specified as properties.
;; get block body less properties, protective commas, and indentation
(with-temp-buffer
(save-match-data
- (insert (org-babel-strip-protective-commas body))
+ (insert (org-babel-strip-protective-commas body lang))
(unless preserve-indentation (org-do-remove-indentation))
(buffer-string)))
(org-babel-merge-params
(lang-headers (intern (concat "org-babel-default-header-args:" lang))))
(list lang
(org-babel-strip-protective-commas
- (org-babel-clean-text-properties (match-string 5)))
+ (org-babel-clean-text-properties (match-string 5)) lang)
(org-babel-merge-params
org-babel-default-inline-header-args
(org-babel-params-from-properties lang)
(catch 'is-a-code-block
(when (re-search-forward
(concat org-babel-result-regexp
- "[ \t]" (regexp-quote name) "[ \t\n\f\v\r]") nil t)
+ "[ \t]" (regexp-quote name) "[ \t\n\f\v\r]+") nil t)
(when (and (string= "name" (downcase (match-string 1)))
- (or (looking-at org-babel-src-block-regexp)
+ (or (beginning-of-line 1)
+ (looking-at org-babel-src-block-regexp)
(looking-at org-babel-multi-line-header-regexp)))
(throw 'is-a-code-block (org-babel-find-named-result name (point))))
(beginning-of-line 0) (point)))))
(inlinep (when (org-babel-get-inline-src-block-matches)
(match-end 0)))
(name (if on-lob-line
- (nth 0 (org-babel-lob-get-info))
+ (mapconcat #'identity (butlast (org-babel-lob-get-info)) "")
(nth 4 (or info (org-babel-get-src-block-info 'light)))))
(head (unless on-lob-line (org-babel-where-is-src-block-head)))
found beg end)
(lambda (el) " ")
(org-number-sequence 1 indent) "")
"")
- "#+results"
+ "#+" org-babel-results-keyword
(when hash (concat "["hash"]"))
":"
(when name (concat " " name)) "\n"))
(setq results-switches
(if results-switches (concat " " results-switches) ""))
(flet ((wrap (start finish)
- (goto-char beg) (insert (concat start "\n"))
(goto-char end) (insert (concat finish "\n"))
+ (goto-char beg) (insert (concat start "\n"))
+ (goto-char end) (goto-char (point-at-eol))
(setq end (point-marker)))
(proper-list-p (it) (and (listp it) (null (cdr (last it))))))
;; insert results based on type
(prvs (org-list-prevs-alist struct)))
(org-list-get-list-end (point-at-bol) struct prvs)))
((looking-at "^\\([ \t]*\\):RESULTS:")
- (re-search-forward (concat "^" (match-string 1) ":END:")))
+ (progn (re-search-forward (concat "^" (match-string 1) ":END:"))
+ (forward-char 1) (point)))
(t
(let ((case-fold-search t)
(blocks-re (regexp-opt
(defun org-babel-examplize-region (beg end &optional results-switches)
"Comment out region using the inline '==' or ': ' org example quote."
(interactive "*r")
- (flet ((chars-between (b e) (string-match "[\\S]" (buffer-substring b e))))
+ (flet ((chars-between (b e)
+ (not (string-match "^[\\s]*$" (buffer-substring b e)))))
(if (or (chars-between (save-excursion (goto-char beg) (point-at-bol)) beg)
(chars-between end (save-excursion (goto-char end) (point-at-eol))))
(save-excursion
(with-temp-buffer
(insert body) (goto-char (point-min))
(setq index (point))
- (while (and (re-search-forward "<<\\(.+?\\)>>" nil t))
+ (while (and (re-search-forward "<<\\([^ \t\n].+?[^ \t\n]\\|[^ \t\n]\\)>>"
+ nil t))
(save-match-data (setf source-name (match-string 1)))
(save-match-data (setq evaluate (string-match "\(.*\)" source-name)))
(save-match-data
(setq index (point))
(nb-add
(with-current-buffer parent-buffer
+ (save-restriction
+ (widen)
(mapconcat ;; interpose PREFIX between every line
#'identity
(split-string
(when (org-babel-ref-goto-headline-id source-name)
(org-babel-ref-headline-body)))
;; find the expansion of reference in this buffer
- (let ((rx (concat rx-prefix source-name))
+ (let ((rx (concat rx-prefix source-name "[ \t\n]"))
expansion)
(save-excursion
(goto-char (point-min))
(while (re-search-forward rx nil t)
(let* ((i (org-babel-get-src-block-info 'light))
(body (org-babel-expand-noweb-references i))
+ (sep (or (cdr (assoc :noweb-sep (nth 2 i)))
+ "\n"))
(full (if comment
((lambda (cs)
(concat (c-wrap (car cs)) "\n"
(c-wrap (cadr cs))))
(org-babel-tangle-comment-links i))
body)))
- (setq expansion (concat expansion full))))
+ (setq expansion (cons sep (cons full expansion)))))
(org-babel-map-src-blocks nil
(let ((i (org-babel-get-src-block-info 'light)))
(when (equal (or (cdr (assoc :noweb-ref (nth 2 i)))
(nth 4 i))
source-name)
(let* ((body (org-babel-expand-noweb-references i))
+ (sep (or (cdr (assoc :noweb-sep (nth 2 i)))
+ "\n"))
(full (if comment
((lambda (cs)
(concat (c-wrap (car cs)) "\n"
(c-wrap (cadr cs))))
(org-babel-tangle-comment-links i))
body)))
- (setq expansion (concat expansion full))))))))
- expansion)
+ (setq expansion
+ (cons sep (cons full expansion)))))))))
+ (and expansion
+ (mapconcat #'identity (nreverse (cdr expansion)) "")))
;; possibly raise an error if named block doesn't exist
(if (member lang org-babel-noweb-error-langs)
(error "%s" (concat
"could not be resolved (see "
"`org-babel-noweb-error-langs')"))
"")))
- "[\n\r]") (concat "\n" prefix)))))
+ "[\n\r]") (concat "\n" prefix))))))
(nb-add (buffer-substring index (point-max)))))
new-body))
(when text
(set-text-properties 0 (length text) nil text) text))
-(defun org-babel-strip-protective-commas (body)
+(defun org-babel-strip-protective-commas (body &optional lang)
"Strip protective commas from bodies of source blocks."
- (when body
- (replace-regexp-in-string "^,#" "#" body)))
+ (with-temp-buffer
+ (insert body)
+ (if (and lang (string= lang "org"))
+ (progn (goto-char (point-min))
+ (while (re-search-forward "^[ \t]*\\(,\\)" nil t)
+ (replace-match "" nil nil nil 1)))
+ (org-strip-protective-commas (point-min) (point-max)))
+ (buffer-string)))
(defun org-babel-script-escape (str &optional force)
"Safely convert tables into elisp lists."
;; Keep custom values for `org-agenda-filter-preset' compatible with
;; the new variable `org-agenda-tag-filter-preset'.
-(if (fboundp 'defvaralias)
- (defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset)
- (defvaralias 'org-agenda-filter 'org-agenda-tag-filter))
+(defvaralias 'org-agenda-filter-preset 'org-agenda-tag-filter-preset)
(defconst org-agenda-custom-commands-local-options
`(repeat :tag "Local settings for this command. Remember to quote values"
(string :tag "+tag or -tag"))))
(list :tag "Set daily/weekly entry types"
(const org-agenda-entry-types)
- (set :greedy t :value (:deadline :scheduled :timestamp :sexp)
- (const :deadline)
- (const :scheduled)
- (const :timestamp)
- (const :sexp)))
+ (list
+ (const :format "" quote)
+ (set :greedy t :value (:deadline :scheduled :timestamp :sexp)
+ (const :deadline)
+ (const :scheduled)
+ (const :timestamp)
+ (const :sexp))))
(list :tag "Standard skipping condition"
:value (org-agenda-skip-function '(org-agenda-skip-entry-if))
(const org-agenda-skip-function)
desc A description string to be displayed in the dispatcher menu.
cmd An agenda command, similar to the above. However, tree commands
- are no allowed, but instead you can get agenda and global todo list.
+ are not allowed, but instead you can get agenda and global todo list.
So valid commands for a set are:
(agenda \"\" settings)
(alltodo \"\" settings)
to make his option also apply to the tags-todo list."
:group 'org-agenda-skip
:group 'org-agenda-todo-list
+ :version "24.1"
:type '(choice
(const :tag "Ignore future timestamp todos" future)
(const :tag "Ignore past or present timestamp todos" past)
because you will take care of it on the day when scheduled."
:group 'org-agenda-skip
:group 'org-agenda-daily/weekly
+ :version "24.1"
:type '(choice
(const :tag "Alwas show prewarning" nil)
(const :tag "Remove prewarning if entry is scheduled" t)
Setting it to nil is good if matcher strings are very long and/or if
you want to use two-column display (see `org-agenda-menu-two-column')."
:group 'org-agenda
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-menu-two-column nil
If you use this, you probably want to set `org-agenda-menu-show-matcher'
to nil."
:group 'org-agenda
+ :version "24.1"
:type 'boolean)
(defcustom org-finalize-agenda-hook nil
"Non-nil means `org-agenda-follow-mode' displays only the
current item's tree, in an indirect buffer."
:group 'org-agenda
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-show-outline-path t
"Non-nil means use leading zero for military times in agenda.
For example, 9:30am would become 09:30 rather than 9:30."
:group 'org-agenda-daily/weekly
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-timegrid-use-ampm nil
"When set, show AM/PM style timestamps on the timegrid."
:group 'org-agenda
+ :version "24.1"
:type 'boolean)
(defun org-agenda-time-of-day-to-ampm (time)
to today. WHen nil, just move one day forward even if the date stays
in the past."
:group 'org-agenda-daily/weekly
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-include-diary nil
"If non-nil, include entries within their deadline warning period.
Custom commands can set this variable in the options section."
:group 'org-agenda-daily/weekly
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-repeating-timestamp-show-all t
:short-face face for clock intervals that are too short"
:group 'org-agenda-daily/weekly
:group 'org-clock
+ :version "24.1"
:type 'plist)
(defcustom org-agenda-log-mode-add-notes t
is a regexp marked with braces like \"{abc}\", this will also switch to
boolean search."
:group 'org-agenda-search-view
+ :version "24.1"
:type 'boolean)
(if (fboundp 'defvaralias)
"Non-nil means, search words must be matches as complete words.
When nil, they may also match part of a word."
:group 'org-agenda-search-view
+ :version "24.1"
:type 'boolean)
(defgroup org-agenda-time-grid nil
(defcustom org-agenda-show-current-time-in-grid t
"Non-nil means show the current time in the time grid."
:group 'org-agenda-time-grid
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-current-time-string
"now - - - - - - - - - - - - - - - - - - - - - - - - -"
"The string for the current time marker in the agenda."
:group 'org-agenda-time-grid
+ :version "24.1"
:type 'string)
(defgroup org-agenda-sorting nil
"Text preceding item pulled into the agenda by inactive time stamps.
These entries are added to the agenda when pressing \"[\"."
:group 'org-agenda-line-format
+ :version "24.1"
:type '(list
(string :tag "Scheduled today ")
(string :tag "Scheduled previously")))
"Non-nil means remove time ranges specifications in agenda
items that span on several days."
:group 'org-agenda-line-format
+ :version "24.1"
:type 'boolean)
(defcustom org-agenda-default-appointment-duration nil
returns a face, or nil if does not want to specify a face and let
the normal rules apply."
:group 'org-agenda-line-format
+ :version "24.1"
:type 'function)
(defcustom org-agenda-category-icon-alist nil
(\"Emacs\" '(space . (:width (16))))"
:group 'org-agenda-line-format
+ :version "24.1"
:type '(alist :key-type (string :tag "Regexp matching category")
:value-type (choice (list :tag "Icon"
(string :tag "File or data")
the custom function `set-category' on the selected entries.
Note that functions in this alist don't need to be quoted."
:type 'alist
+ :version "24.1"
:group 'org-agenda)
(eval-when-compile
(setcdr ass (cdr entry))
(push entry org-agenda-custom-commands))))
-;;; Define the org-agenda-mode
+;;; Define the Org-agenda-mode
(defvar org-agenda-mode-map (make-sparse-keymap)
"Keymap for `org-agenda-mode'.")
(defun org-prepare-agenda (&optional name)
(setq org-todo-keywords-for-agenda nil)
- (setq org-done-keywords-for-agenda nil)
(setq org-drawers-for-agenda nil)
(unless org-agenda-persistent-filter
(setq org-agenda-tag-filter nil
(make-string (window-width) org-agenda-block-separator))
"\n"))
(narrow-to-region (point) (point-max)))
+ (setq org-done-keywords-for-agenda nil)
(org-agenda-reset-markers)
(setq org-agenda-contributing-files nil)
(setq org-agenda-columns-active nil)
(defun org-agenda-skip-if (subtree conditions)
"Checks current entity for CONDITIONS.
If SUBTREE is non-nil, the entire subtree is checked. Otherwise, only
-the entry, i.e. the text before the next heading is checked.
+the entry (i.e. the text before the next heading) is checked.
CONDITIONS is a list of symbols, boolean OR is used to combine the results
from different tests. Valid conditions are:
would skip all entries with \"TODO\" or \"WAITING\" keywords.
-Instead of a list a keyword class may be given
+Instead of a list, a keyword class may be given. For example:
(org-agenda-skip-entry-if 'nottodo 'done)
would skip entries that haven't been marked with any of \"DONE\"
-keywords. Possible classes are: `todo', `done', `any'.
+keywords. Possible classes are: `todo', `done', `any'.
If any of these conditions is met, this function returns the end point of
the entity, causing the search to continue from there. This is a function
(stringp (nth 1 m))
(not (re-search-forward (nth 1 m) end t)))
(and (or
- (setq m (memq 'todo conditions))
- (setq m (memq 'nottodo conditions)))
+ (setq m (memq 'nottodo conditions))
+ (setq m (memq 'todo conditions)))
(org-agenda-skip-if-todo m end)))
end)))
;;; Diary integration
(defvar org-disable-agenda-to-diary nil) ;Dynamically-scoped param.
-(defvar diary-list-entries-hook)
+(defvar list-diary-entries-hook)
(defvar diary-time-regexp)
(defun org-get-entries-from-diary (date)
"Get the (Emacs Calendar) diary entries for DATE."
(diary-display-hook '(fancy-diary-display))
(diary-display-function 'fancy-diary-display)
(pop-up-frames nil)
- (diary-list-entries-hook
- (cons 'org-diary-default-entry diary-list-entries-hook))
+ (list-diary-entries-hook
+ (cons 'org-diary-default-entry list-diary-entries-hook))
(diary-file-name-prefix-function nil) ; turn this feature off
(diary-modify-entry-list-string-function 'org-modify-diary-entry-string)
entries
(let ((pl (text-property-any 0 (length x) 'org-heading t x)))
(setq re (get-text-property 0 'org-todo-regexp x))
(when (and re
+ ;; Test `pl' because if there's no heading content,
+ ;; there's no point matching to highlight. Note
+ ;; that if we didn't test `pl' first, and there
+ ;; happened to be no keyword from `org-todo-regexp'
+ ;; on this heading line, then the `equal' comparison
+ ;; afterwards would spuriously succeed in the case
+ ;; where `pl' is nil -- causing an args-out-of-range
+ ;; error when we try to add text properties to text
+ ;; that isn't there.
+ pl
(equal (string-match (concat "\\(\\.*\\)" re "\\( +\\)")
- x (or pl 0)) pl))
+ x pl) pl))
(add-text-properties
(or (match-end 1) (match-end 0)) (match-end 0)
(list 'face (org-get-todo-face (match-string 2 x)))
(recenter window-line)))
(defvar org-global-tags-completion-table nil)
-(defvar org-agenda-filtered-by-category nil)
(defvar org-agenda-filter-form nil)
+(defvar org-agenda-filtered-by-category nil)
(defun org-agenda-filter-by-category (strip)
"Keep only those lines in the agenda buffer that have a specific category.
(dolist (x (delete-dups
(append (get 'org-agenda-category-filter
:preset-filter) org-agenda-category-filter)))
- (setq f1 (list 'equal (substring x 1) 'cat))
+ (if (equal "-" (substring x 0 1))
+ (setq f1 (list 'not (list 'equal (substring x 1) 'cat)))
+ (setq f1 (list 'equal (substring x 1) 'cat)))
(push f1 f))
(cons 'and (nreverse f))))
(let (tags cat)
(if (eq type 'tag)
(setq org-agenda-tag-filter filter)
- (setq org-agenda-category-filter filter
- org-agenda-filtered-by-category t))
+ (setq org-agenda-category-filter filter))
(setq org-agenda-filter-form (org-agenda-filter-make-matcher))
+ (if (and (eq type 'category)
+ (not (equal (substring (car filter) 0 1) "-")))
+ ;; Only set `org-agenda-filtered-by-category' to t
+ ;; when a unique category is used as the filter
+ (setq org-agenda-filtered-by-category t))
(org-agenda-set-mode-name)
(save-excursion
(goto-char (point-min))
(beginning-of-line 2))
(beginning-of-line 2))))
(if (get-char-property (point) 'invisible)
- (org-agenda-previous-line))))
+ (ignore-errors (org-agenda-previous-line)))))
(defun org-agenda-filter-hide-line (type)
(let (ov)
(if (and current-prefix-arg (listp current-prefix-arg))
(org-agenda-do-tree-to-indirect-buffer)
(let ((agenda-window (selected-window))
- (indirect-window (get-buffer-window org-last-indirect-buffer)))
+ (indirect-window
+ (and org-last-indirect-buffer
+ (get-buffer-window org-last-indirect-buffer))))
(save-window-excursion (org-agenda-do-tree-to-indirect-buffer))
(unwind-protect
(progn
- (unless indirect-window
+ (unless (and indirect-window (window-live-p indirect-window))
(setq indirect-window (split-window agenda-window)))
(select-window indirect-window)
(switch-to-buffer org-last-indirect-buffer :norecord)
(fit-window-to-buffer indirect-window))
- (select-window agenda-window)))))
+ (select-window (get-buffer-window org-agenda-buffer-name))))))
(defun org-agenda-do-tree-to-indirect-buffer ()
"Same as `org-agenda-tree-to-indirect-buffer' without saving window."
(defcustom org-agenda-insert-diary-extract-time nil
"Non-nil means extract any time specification from the diary entry."
:group 'org-agenda
+ :version "24.1"
:type 'boolean)
(defun org-agenda-add-entry-to-org-agenda-diary-file (type text &optional d1 d2)
(defcustom org-archive-reversed-order nil
"Non-nil means make the tree first child under the archive heading, not last."
:group 'org-archive
+ :version "24.1"
:type 'boolean)
(defcustom org-archive-sibling-heading "Archive"
(defcustom org-archive-subtree-add-inherited-tags 'infile
"Non-nil means append inherited tags when archiving a subtree."
:group 'org-archive
+ :version "24.1"
:type '(choice
(const :tag "Never" nil)
(const :tag "When archiving a subtree to the same file" infile)
;;; org-ascii.el --- ASCII export for Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
link (concat (match-string 1 line) path)
type (match-string 2 line)
desc0 (match-string 5 line)
- desc (or desc0 link))
+ desc0 (replace-regexp-in-string "\\\\_" "_" desc0)
+ desc (or desc0 link)
+ desc (replace-regexp-in-string "\\\\_" "_" desc))
(if (and (> (length link) 8)
(equal (substring link 0 8) "coderef:"))
(setq line (replace-match
;;; org-attach.el --- Manage file attachments to org-mode tasks
-;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
;; Author: John Wiegley <johnw@newartisans.com>
;; Keywords: org data task
(defcustom org-attach-store-link-p nil
"Non-nil means store a link to a file when attaching it."
:group 'org-attach
+ :version "24.1"
:type '(choice
(const :tag "Don't store link" nil)
(const :tag "Link to origin location" t)
- (const :tag "Link to the attach-dir location" 'attached)))
+ (const :tag "Link to the attach-dir location" attached)))
;;;###autoload
(defun org-attach ()
;;; org-bbdb.el --- Support for links to BBDB entries from within Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
-;; Author: Carsten Dominik <carsten at orgmode dot org>,
-;; Thomas Baumann <thomas dot baumann at ch dot tum dot de>
+;; Authors: Carsten Dominik <carsten at orgmode dot org>
+;; Thomas Baumann <thomas dot baumann at ch dot tum dot de>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
;;
(&optional dont-check-disk already-in-db-buffer))
(declare-function bbdb-split "ext:bbdb" (string separators))
(declare-function bbdb-string-trim "ext:bbdb" (string))
-(declare-function bbdb-record-get-field "ext:bbdb"
- (fn file &optional arglist fileonly))
-;; These two functions below are part of BBDB3:
-(declare-function bbdb-search-name "ext:bbdb" (regexp &optional layout))
-(declare-function bbdb-search-organization "ext:bbdb" (regexp &optional layout))
+(declare-function bbdb-record-get-field "ext:bbdb" (record field))
+(declare-function bbdb-search-name "ext:bbdb-com" (regexp &optional layout))
+(declare-function bbdb-search-organization "ext:bbdb-com" (regexp &optional layout))
(declare-function calendar-leap-year-p "calendar" (year))
(declare-function diary-ordinal-suffix "diary-lib" (n))
(defvar date) ;; dynamically scoped from Org
-(defvar name) ;; dynamically scoped from Org
-
-;; Support for version 2.35
-(defvar org-bbdb-old (fboundp 'bbdb-record-get-field-internal))
;; Customization
;; This is BBDB, we make this link!
(let* ((rec (bbdb-current-record))
(name (bbdb-record-name rec))
- (company (if org-bbdb-old
+ (company (if (fboundp 'bbdb-record-getprop)
(bbdb-record-getprop rec 'company)
(car (bbdb-record-get-field rec 'organization))))
(link (org-make-link "bbdb:" name)))
(defun org-bbdb-open (name)
"Follow a BBDB link to NAME."
- (require 'bbdb)
+ (require 'bbdb-com)
(let ((inhibit-redisplay (not debug-on-error))
(bbdb-electric-p nil))
- (if org-bbdb-old
- (org-bbdb-open-old)
- (org-bbdb-open-new))))
+ (if (fboundp 'bbdb-name)
+ (org-bbdb-open-old name)
+ (org-bbdb-open-new name))))
-(defun org-bbdb-open-old ()
+(defun org-bbdb-open-old (name)
(catch 'exit
;; Exact match on name
(bbdb-name (concat "\\`" name "\\'") nil)
(delete-window (get-buffer-window "*BBDB*"))
(error "No matching BBDB record"))))
-(defun org-bbdb-open-new ()
+(defun org-bbdb-open-new (name)
(catch 'exit
;; Exact match on name
(bbdb-search-name (concat "\\`" name "\\'") nil)
;;; org-beamer.el --- Beamer-specific LaTeX export for org-mode
;;
-;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
;;
;; Author: Carsten Dominik <carsten.dominik AT gmail DOT com>
;; Maintainer: Carsten Dominik <carsten.dominik AT gmail DOT com>
(defcustom org-beamer-use-parts nil
""
:group 'org-beamer
+ :version "24.1"
:type 'boolean)
(defcustom org-beamer-frame-level 1
You can set this to 4 as well, if you at the same time set
`org-beamer-use-parts' to make the top levels `\part'."
:group 'org-beamer
+ :version "24.1"
:type '(choice
(const :tag "Frames need a BEAMER_env property" nil)
(integer :tag "Specific level makes a frame")))
"Default options string to use for frames, should contains the [brackets].
And example for this is \"[allowframebreaks]\"."
:group 'org-beamer
+ :version "24.1"
:type '(string :tag "[options]"))
(defcustom org-beamer-column-view-format
"%45ITEM %10BEAMER_env(Env) %10BEAMER_envargs(Env Args) %4BEAMER_col(Col) %8BEAMER_extra(Extra)"
"Default column view format that should be used to fill the template."
:group 'org-beamer
+ :version "24.1"
:type '(choice
(const :tag "Do not insert Beamer column view format" nil)
(string :tag "Beamer column view format")))
When a beamer template is filled, this will be the default for
BEAMER_HEADER_EXTRA, which will be inserted just before \\begin{document}."
:group 'org-beamer
+ :version "24.1"
:type '(choice
(const :tag "Do not insert Beamer themes" nil)
(string :tag "Beamer themes")))
close The closing string of the environment."
:group 'org-beamer
+ :version "24.1"
:type '(repeat
(list
(string :tag "Environment")
(envs (append org-beamer-environments-extra
org-beamer-environments-default))
(props (org-get-text-property-any 0 'org-props text))
- (in "") (out "") option action defaction environment extra
+ (in "") (out "") org-beamer-option org-beamer-action org-beamer-defaction org-beamer-environment org-beamer-extra
columns-option column-option
env have-text ass tmp)
(if (= frame-level 0) (setq frame-level nil))
(setq in (org-fill-template
"\\begin{frame}%a%A%o%T%S%x"
- (list (cons "a" (or action ""))
- (cons "A" (or defaction ""))
- (cons "o" (or option org-beamer-frame-default-options ""))
- (cons "x" (if extra (concat "\n" extra) ""))
+ (list (cons "a" (or org-beamer-action ""))
+ (cons "A" (or org-beamer-defaction ""))
+ (cons "o" (or org-beamer-option org-beamer-frame-default-options ""))
+ (cons "x" (if org-beamer-extra (concat "\n" org-beamer-extra) ""))
(cons "h" "%s")
(cons "T" (if (string-match "\\S-" text)
"\n\\frametitle{%s}" ""))
(setq have-text (string-match "\\S-" text))
(setq in (org-fill-template
(nth 2 ass)
- (list (cons "a" (or action ""))
- (cons "A" (or defaction ""))
- (cons "o" (or option ""))
- (cons "x" (if extra (concat "\n" extra) ""))
+ (list (cons "a" (or org-beamer-action ""))
+ (cons "A" (or org-beamer-defaction ""))
+ (cons "o" (or org-beamer-option ""))
+ (cons "x" (if org-beamer-extra (concat "\n" org-beamer-extra) ""))
(cons "h" "%s")
(cons "H" (if have-text (concat "{" text "}") ""))
(cons "U" (if have-text (concat "[" text "]") ""))))
(cons text (cdr (assoc level default))))
(t nil))))
-(defvar extra)
-(defvar option)
-(defvar action)
-(defvar defaction)
-(defvar environment)
+(defvar org-beamer-extra)
+(defvar org-beamer-option)
+(defvar org-beamer-action)
+(defvar org-beamer-defaction)
+(defvar org-beamer-environment)
(defun org-beamer-get-special (props)
"Extract an option, action, and default action string from text.
-The variables option, action, defaction, extra are all scoped into
-this function dynamically."
+The variables org-beamer-option, org-beamer-action, org-beamer-defaction,
+org-beamer-extra are all scoped into this function dynamically."
(let (tmp)
- (setq environment (org-beamer-assoc-not-empty "BEAMER_env" props))
- (setq extra (org-beamer-assoc-not-empty "BEAMER_extra" props))
- (when extra
- (setq extra (replace-regexp-in-string "\\\\n" "\n" extra)))
+ (setq org-beamer-environment (org-beamer-assoc-not-empty "BEAMER_env" props))
+ (setq org-beamer-extra (org-beamer-assoc-not-empty "BEAMER_extra" props))
+ (when org-beamer-extra
+ (setq org-beamer-extra (replace-regexp-in-string "\\\\n" "\n" org-beamer-extra)))
(setq tmp (org-beamer-assoc-not-empty "BEAMER_envargs" props))
(when tmp
(setq tmp (copy-sequence tmp))
(if (string-match "\\[<[^][<>]*>\\]" tmp)
- (setq defaction (match-string 0 tmp)
+ (setq org-beamer-defaction (match-string 0 tmp)
tmp (replace-match "" t t tmp)))
(if (string-match "\\[[^][]*\\]" tmp)
- (setq option (match-string 0 tmp)
+ (setq org-beamer-option (match-string 0 tmp)
tmp (replace-match "" t t tmp)))
(if (string-match "<[^<>]*>" tmp)
- (setq action (match-string 0 tmp)
+ (setq org-beamer-action (match-string 0 tmp)
tmp (replace-match "" t t tmp))))))
(defun org-beamer-assoc-not-empty (elt list)
(defcustom org-beamer-fragile-re "\\\\\\(verb\\|lstinline\\)\\|^[ \t]*\\\\begin{\\(verbatim\\|lstlisting\\|minted\\)}"
"If this regexp matches in a frame, the frame is marked as fragile."
:group 'org-beamer
+ :version "24.1"
:type 'regexp)
(defface org-beamer-tag '((t (:box (:line-width 1 :color grey40))))
(defcustom org-beamer-outline-frame-title "Outline"
"Default title of a frame containing an outline."
:group 'org-beamer
+ :version "24.1"
:type '(string :tag "Outline frame title")
)
You might want to put e.g. [allowframebreaks=0.9] here. Remember to
include square brackets."
:group 'org-beamer
+ :version "24.1"
:type '(string :tag "Outline frame options")
)
(add-hook 'org-export-preprocess-before-selecting-backend-code-hook
'org-beamer-select-beamer-code)
-(defun org-insert-beamer-options-template (kind)
+(defun org-insert-beamer-options-template (&optional kind)
"Insert a settings template, to make sure users do this right."
(interactive (progn
(message "Current [s]ubtree or [g]lobal?")
;;; org-bibtex.el --- Org links to BibTeX entries
;;
-;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
;;
-;; Author: Bastien Guerry <bzg at altern dot org>
-;; Carsten Dominik <carsten dot dominik at gmail dot com>
-;; Eric Schulte <schulte dot eric at gmail dot com>
+;; Authors: Bastien Guerry <bzg at altern dot org>
+;; Carsten Dominik <carsten dot dominik at gmail dot com>
+;; Eric Schulte <schulte dot eric at gmail dot com>
;; Keywords: org, wp, remember
;;
;; This file is part of GNU Emacs.
(eval-when-compile
(require 'cl))
-(defvar description nil) ; dynamically scoped from org.el
+(defvar org-bibtex-description nil) ; dynamically scoped from org.el
(defvar org-id-locations)
(declare-function bibtex-beginning-of-entry "bibtex" ())
(defcustom org-bibtex-autogen-keys nil
"Set to a truth value to use `bibtex-generate-autokey' to generate keys."
:group 'org-bibtex
+ :version "24.1"
:type 'boolean)
(defcustom org-bibtex-prefix nil
"Optional prefix for all bibtex property names.
For example setting to 'BIB_' would allow interoperability with fireforg."
:group 'org-bibtex
+ :version "24.1"
:type 'string)
(defcustom org-bibtex-treat-headline-as-title t
the property. If this value is t, `org-bibtex-check' will ignore
a missing title field."
:group 'org-bibtex
+ :version "24.1"
:type 'boolean)
(defcustom org-bibtex-export-arbitrary-fields nil
ensure that other org-properties, such as CATEGORY or LOGGING are
not placed in the exported bibtex entry."
:group 'org-bibtex
+ :version "24.1"
:type 'boolean)
(defcustom org-bibtex-key-property "CUSTOM_ID"
to enable global links, but only with great caution, as global
IDs must be unique."
:group 'org-bibtex
+ :version "24.1"
:type 'string)
(defcustom org-bibtex-tags nil
"List of tag(s) that should be added to new bib entries."
:group 'org-bibtex
+ :version "24.1"
:type '(repeat :tag "Tag" (string)))
(defcustom org-bibtex-tags-are-keywords nil
defined in `org-bibtex-tags' or `org-bibtex-no-export-tags' will
not be exported."
:group 'org-bibtex
+ :version "24.1"
:type 'boolean)
(defcustom org-bibtex-no-export-tags nil
"List of tag(s) that should not be converted to keywords.
This variable is relevant only if `org-bibtex-export-tags-as-keywords` is t."
:group 'org-bibtex
+ :version "24.1"
:type '(repeat :tag "Tag" (string)))
(defcustom org-bibtex-type-property-name "btype"
"Property in which to store bibtex entry type (e.g., article)."
:group 'org-bibtex
+ :version "24.1"
:type 'string)
\f
:btype (or (cdr (assoc "=type=" entry)) "[no type]")
:type "bibtex"
:link link
- :description description))))
+ :description org-bibtex-description))))
(defun org-create-file-search-in-bibtex ()
"Create the search string and description for a BibTeX database entry."
(bibtex-autokey-titleword-case-convert-function 'identity)
(bibtex-autokey-titleword-length 'infty)
(bibtex-autokey-year-title-separator ": "))
- (setq description (bibtex-generate-autokey)))
+ (setq org-bibtex-description (bibtex-generate-autokey)))
;; Now parse the entry, get the key and return it.
(save-excursion
(bibtex-beginning-of-entry)
;;; org-capture.el --- Fast note taking in Org-mode
-;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
info | %:type %:file %:node
calendar | %:type %:date"
:group 'org-capture
+ :version "24.1"
:type
'(repeat
(choice :value ("" "" entry (file "~/org/notes.org") "")
The capture buffer is still current when this hook runs and it is
widened to the entire buffer."
:group 'org-capture
+ :version "24.1"
:type 'hook)
(defcustom org-capture-after-finalize-hook nil
"Hook that is run right after a capture process is finalized.
Suitable for window cleanup"
:group 'org-capture
+ :version "24.1"
:type 'hook)
;;; The property list for keeping information about the capture process
(target-entry-p (org-capture-get :target-entry-p))
(ind 0)
beg end)
- (cond
- ((org-capture-get :exact-position)
- (goto-char (org-capture-get :exact-position)))
- ((not target-entry-p)
- ;; Insert as top-level entry, either at beginning or at end of file
- (setq beg (point-min) end (point-max)))
- (t
- (setq beg (1+ (point-at-eol))
- end (save-excursion (outline-next-heading) (point)))))
- (if (org-capture-get :prepend)
- (progn
- (goto-char beg)
- (if (org-list-search-forward (org-item-beginning-re) end t)
- (progn
- (goto-char (match-beginning 0))
- (setq ind (org-get-indentation)))
- (goto-char end)
- (setq ind 0)))
- (goto-char end)
- (if (org-list-search-backward (org-item-beginning-re) beg t)
+ (if (org-capture-get :exact-position)
+ (goto-char (org-capture-get :exact-position))
+ (cond
+ ((not target-entry-p)
+ ;; Insert as top-level entry, either at beginning or at end of file
+ (setq beg (point-min) end (point-max)))
+ (t
+ (setq beg (1+ (point-at-eol))
+ end (save-excursion (outline-next-heading) (point)))))
+ (if (org-capture-get :prepend)
(progn
- (setq ind (org-get-indentation))
- (org-end-of-item))
- (setq ind 0)))
+ (goto-char beg)
+ (if (org-list-search-forward (org-item-beginning-re) end t)
+ (progn
+ (goto-char (match-beginning 0))
+ (setq ind (org-get-indentation)))
+ (goto-char end)
+ (setq ind 0)))
+ (goto-char end)
+ (if (org-list-search-backward (org-item-beginning-re) beg t)
+ (progn
+ (setq ind (org-get-indentation))
+ (org-end-of-item))
+ (setq ind 0))))
;; Remove common indentation
(setq txt (org-remove-indentation txt))
;; Make sure this is indeed an item
;;; org-clock.el --- The time clocking code for Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
(const :tag "All task time" all)
(const :tag "Automatically, `all' or since `repeat'" auto)))
-(defcustom org-task-overrun-text nil
+(defvaralias 'org-task-overrun-text 'org-clock-task-overrun-text)
+(defcustom org-clock-task-overrun-text nil
"The extra modeline text that should indicate that the clock is overrun.
The can be nil to indicate that instead of adding text, the clock time
should get a different face (`org-mode-line-clock-overrun').
When this is a string, it is prepended to the clock string as an indication,
also using the face `org-mode-line-clock-overrun'."
:group 'org-clock
+ :version "24.1"
:type '(choice
(const :tag "Just mark the time string" nil)
(string :tag "Text to prepend")))
:formatter nil)
"Default properties for clock tables."
:group 'org-clock
+ :version "24.1"
:type 'plist)
(defcustom org-clock-clocktable-formatter 'org-clocktable-write-default
"Function to turn clocking data into a table.
For more information, see `org-clocktable-write-default'."
:group 'org-clocktable
+ :version "24.1"
:type 'function)
;; FIXME: translate es and nl last string "Clock summary at"
("nl" "Bestand" "N" "Tijdstip" "Hoofding" "Duur" "ALLES" "Totale duur" "Bestandstijd" "Clock summary at"))
"Terms used in clocktable, translated to different languages."
:group 'org-clocktable
+ :version "24.1"
:type 'alist)
(defcustom org-clock-clocktable-default-properties '(:maxlevel 2 :scope file)
(defcustom org-clock-report-include-clocking-task nil
"When non-nil, include the current clocking task time in clock reports."
:group 'org-clock
+ :version "24.1"
:type 'boolean)
(defcustom org-clock-resolve-expert nil
"Non-nil means do not show the splash buffer with the clock resolver."
:group 'org-clock
+ :version "24.1"
:type 'boolean)
(defvar org-clock-in-prepare-hook nil
(insert (format "[%c] %-15s %s\n" i cat task))
(cons i marker)))))
-(defvar org-task-overrun nil
+(defvar org-clock-task-overrun nil
"Internal flag indicating if the clock has overrun the planned time.")
(defvar org-clock-update-period 60
"Number of seconds between mode line clock string updates.")
(work-done-str
(org-propertize
(format org-time-clocksum-format h m)
- 'face (if (and org-task-overrun (not org-task-overrun-text))
+ 'face (if (and org-clock-task-overrun (not org-clock-task-overrun-text))
'org-mode-line-clock-overrun 'org-mode-line-clock)))
(effort-str (format org-time-clocksum-format effort-h effort-m))
(clockstr (org-propertize
(defun org-clock-update-mode-line ()
(if org-clock-effort
(org-clock-notify-once-if-expired)
- (setq org-task-overrun nil))
+ (setq org-clock-task-overrun nil))
(setq org-mode-line-string
(org-propertize
(let ((clock-string (org-clock-get-clock-string))
'local-map org-clock-mode-line-map
'mouse-face (if (featurep 'xemacs) 'highlight 'mode-line-highlight)
))
- (if (and org-task-overrun org-task-overrun-text)
+ (if (and org-clock-task-overrun org-clock-task-overrun-text)
(setq org-mode-line-string
(concat (org-propertize
- org-task-overrun-text
+ org-clock-task-overrun-text
'face 'org-mode-line-clock-overrun) org-mode-line-string)))
(force-mode-line-update))
(when (org-clocking-p)
(let ((effort-in-minutes (org-duration-string-to-minutes org-clock-effort))
(clocked-time (org-clock-get-clocked-time)))
- (if (setq org-task-overrun
+ (if (setq org-clock-task-overrun
(if (or (null effort-in-minutes) (zerop effort-in-minutes))
nil
(>= clocked-time effort-in-minutes)))
(remove-hook 'before-change-functions
'org-clock-remove-overlays 'local))))
-(defvar state) ;; dynamically scoped into this function
+(defvar org-state) ;; dynamically scoped into this function
(defun org-clock-out-if-current ()
"Clock out if the current entry contains the running clock.
This is used to stop the clock after a TODO entry is marked DONE,
org-clock-out-when-done
(marker-buffer org-clock-marker)
(or (and (eq t org-clock-out-when-done)
- (member state org-done-keywords))
+ (member org-state org-done-keywords))
(and (listp org-clock-out-when-done)
- (member state org-clock-out-when-done)))
+ (member org-state org-clock-out-when-done)))
(equal (or (buffer-base-buffer (org-clocking-buffer))
(org-clocking-buffer))
(or (buffer-base-buffer (current-buffer))
(org-combine-plists org-clock-clocktable-default-properties props))))
(org-update-dblock))
-(defun org-in-clocktable-p ()
- "Check if the cursor is in a clocktable."
- (let ((pos (point)) start)
- (save-excursion
- (end-of-line 1)
- (and (re-search-backward "^[ \t]*#\\+BEGIN:[ \t]+clocktable" nil t)
- (setq start (match-beginning 0))
- (re-search-forward "^[ \t]*#\\+END:.*" nil t)
- (>= (match-end 0) pos)
- start))))
-
(defun org-day-of-week (day month year)
"Returns the day of the week as an integer."
(nth 6
(tags (plist-get params :tags))
(properties (plist-get params :properties))
(inherit-property-p (plist-get params :inherit-props))
+ todo-only
(matcher (if tags (cdr (org-make-tags-matcher tags))))
cc range-text st p time level hdl props tsp tbl)
;;; org-colview.el --- Column View in Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
(point-at-bol) (point-at-eol)))))
;; In agenda, just get the `txt' property
(org-no-properties
- (org-get-at-bol 'txt))))
+ (or (org-get-at-bol 'txt)
+ (buffer-substring
+ (point) (progn (end-of-line) (point)))))))
(assoc property props))
width (or (cdr (assoc property org-columns-current-maxwidths))
(nth 2 column)
'org-whitespace (* 2 (1- (org-reduced-level (- (match-end 1) (match-beginning 1))))))
(and (match-end 2) (not (assoc "TODO" fmt)) (concat " " (match-string 2 item)))
(and (match-end 3) (not (assoc "PRIORITY" fmt)) (concat " " (match-string 3 item)))
- " " (save-match-data (org-columns-compact-links (match-string 4 item)))
+ " " (save-match-data (org-columns-compact-links (or (match-string 4 item) "")))
(and (match-end 5) (not (assoc "TAGS" fmt)) (concat " " (match-string 5 item)))))
(add-text-properties
0 (1+ (match-end 1))
(overlay-put ov 'display (format fmt val)))))
org-columns-overlays))))
+(defvar org-inlinetask-min-level
+ (if (featurep 'org-inlinetask) org-inlinetask-min-level 15))
(defun org-columns-compute (property)
"Sum the values of property PROPERTY hierarchically, for the entire buffer."
(interactive)
(fun (nth 6 ass))
(calc (or (nth 7 ass) 'identity))
(beg org-columns-top-level-marker)
- last-level val valflag flag end sumpos sum-alist sum str str1 useval)
+ (inminlevel org-inlinetask-min-level)
+ (last-level org-inlinetask-min-level)
+ val valflag flag end sumpos sum-alist sum str str1 useval)
(save-excursion
;; Find the region to compute
(goto-char beg)
;; Walk the tree from the back and do the computations
(while (re-search-backward re beg t)
(setq sumpos (match-beginning 0)
- last-level level
+ last-level (if (not (or (zerop level) (eq level inminlevel)))
+ level last-level)
level (org-outline-level)
val (org-entry-get nil property)
valflag (and val (string-match "\\S-" val)))
(cond
((< level last-level)
;; put the sum of lower levels here as a property
- (setq sum (when (aref lvals last-level)
- (apply fun (aref lvals last-level)))
- flag (aref lflag last-level) ; any valid entries from children?
+ (setq sum (+ (if (and (/= last-level inminlevel)
+ (aref lvals last-level))
+ (apply fun (aref lvals last-level)) 0)
+ (if (aref lvals inminlevel)
+ (apply fun (aref lvals inminlevel)) 0))
+ flag (or (aref lflag last-level) ; any valid entries from children?
+ (aref lflag inminlevel)) ; or inline tasks?
str (org-columns-number-to-string sum format printf)
str1 (org-add-props (copy-sequence str) nil 'org-computed t 'face 'bold)
useval (if flag str1 (if valflag val ""))
;;; org-compat.el --- Compatibility code for Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
(defun org-encrypt-entries ()
"Encrypt all top-level entries in the current buffer."
(interactive)
- (org-scan-tags
- 'org-encrypt-entry
- (cdr (org-make-tags-matcher org-crypt-tag-matcher))))
+ (let (todo-only)
+ (org-scan-tags
+ 'org-encrypt-entry
+ (cdr (org-make-tags-matcher org-crypt-tag-matcher))
+ todo-only)))
(defun org-decrypt-entries ()
"Decrypt all entries in the current buffer."
(interactive)
- (org-scan-tags
- 'org-decrypt-entry
- (cdr (org-make-tags-matcher org-crypt-tag-matcher))))
+ (let (todo-only)
+ (org-scan-tags
+ 'org-decrypt-entry
+ (cdr (org-make-tags-matcher org-crypt-tag-matcher))
+ todo-only)))
(defun org-crypt-use-before-save-magic ()
"Add a hook to automatically encrypt entries before a file is saved to disk."
(t "ctags-exuberant"))
"Full path to the ctags executable file."
:group 'org-ctags
+ :version "24.1"
:type 'file)
(defcustom org-ctags-open-link-functions
org-ctags-ask-append-topic)
"List of functions to be prepended to ORG-OPEN-LINK-FUNCTIONS when ORG-CTAGS is active."
:group 'org-ctags
+ :version "24.1"
:type 'hook
:options '(org-ctags-find-tag
org-ctags-ask-rebuild-tags-file-then-find-tag
Created as a local variable in each buffer.")
(defcustom org-ctags-new-topic-template
- "* <<%t>>\n\n\n\n\n\n"
+ " <<%t>>\n\n\n\n\n\n"
"Text to insert when creating a new org file via opening a hyperlink.
The following patterns are replaced in the string:
`%t' - replaced with the capitalized title of the hyperlink"
;;; org-datetree.el --- Create date entries in a tree
-;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;;; org-docbook.el --- DocBook exporter for org-mode
;;
-;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
;;
;; Emacs Lisp Archive Entry
;; Filename: org-docbook.el
(defcustom org-export-docbook-footnote-separator "<superscript>, </superscript>"
"Text used to separate footnotes."
:group 'org-export-docbook
+ :version "24.1"
:type 'string)
(defcustom org-export-docbook-emphasis-alist
Object (FO) files. You can use either `fo/docbook.xsl' that
comes with DocBook, or any customization layer you may have."
:group 'org-export-docbook
+ :version "24.1"
:type 'string)
(defcustom org-export-docbook-xslt-proc-command nil
For example, this will replace \"\\nsup\" with \"[not a superset of]\"
in backends where the corresponding character is not available."
:group 'org-entities
+ :version "24.1"
:type 'boolean)
(defcustom org-entities-user nil
If you define new entities here that require specific LaTeX packages to be
loaded, add these packages to `org-export-latex-packages-alist'."
:group 'org-entities
+ :version "24.1"
:type '(repeat
(list
(string :tag "name ")
;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
;; Author: Konrad Hinsen <konrad.hinsen AT fastmail.net>
-;; Version: 0.1
;; This file is part of GNU Emacs.
;; using the dot utility. For information on dot see
;; http://www.graphviz.org/
;;
-;; comment :: Wrap comments with titles and author information, in
-;; their own divs with author-specific ids allowing for css
-;; coloring of comments based on the author.
+;; export-comment :: Wrap comments with titles and author information,
+;; in their own divs with author-specific ids allowing for
+;; css coloring of comments based on the author.
;;
;;; Adding new blocks
;;
(eval-when-compile
(require 'cl))
(require 'org)
+(require 'find-func)
(defun org-export-blocks-set (var value)
"Set the value of `org-export-blocks' and install fontification."
value))
(defcustom org-export-blocks
- '((comment org-export-blocks-format-comment t)
+ '((export-comment org-export-blocks-format-comment t)
(ditaa org-export-blocks-format-ditaa nil)
(dot org-export-blocks-format-dot nil))
"Use this alist to associate block types with block exporting functions.
(defcustom org-export-blocks-postblock-hook nil
"Run after blocks have been processed with `org-export-blocks-preprocess'."
:group 'org-export-general
+ :version "24.1"
:type 'hook)
(defun org-export-blocks-html-quote (body &optional open close)
;;--------------------------------------------------------------------------------
;; ditaa: create images from ASCII art using the ditaa utility
-(defvar org-ditaa-jar-path (expand-file-name
+(defcustom org-ditaa-jar-path (expand-file-name
"ditaa.jar"
(file-name-as-directory
(expand-file-name
(file-name-as-directory
(expand-file-name
"../contrib"
- (file-name-directory (or load-file-name buffer-file-name)))))))
- "Path to the ditaa jar executable.")
+ (file-name-directory (find-library-name "org")))))))
+ "Path to the ditaa jar executable."
+ :group 'org-babel
+ :type 'string)
(defvar org-export-current-backend) ; dynamically bound in org-exp.el
(defun org-export-blocks-format-ditaa (body &rest headers)
This applied to the commands `org-export-as-html-and-open' and
`org-export-as-pdf-and-open'."
:group 'org-export-general
+ :version "24.1"
:type 'boolean)
(defcustom org-export-run-in-background nil
"The initial scope when exporting with `org-export'.
This variable can be either set to 'buffer or 'subtree."
:group 'org-export-general
+ :version "24.1"
:type '(choice
(const :tag "Export current buffer" 'buffer)
(const :tag "Export current subtree" 'subtree)))
(defcustom org-export-date-timestamp-format "%Y-%m-%d"
"Time string format for Org timestamps in the #+DATE option."
:group 'org-export-general
+ :version "24.1"
:type 'string)
(defvar org-export-page-description ""
nil remove all tasks before export
list of TODO kwds keep only tasks with these keywords"
:group 'org-export-general
+ :version "24.1"
:type '(choice
(const :tag "All tasks" t)
(const :tag "No tasks" nil)
This option can also be set with the +OPTIONS line,
e.g. \"email:t\"."
:group 'org-export-general
+ :version "24.1"
:type 'boolean)
(defcustom org-export-creator-info t
This is the global equivalent of the :remove-nil-lines option
when locally sending a table with #+ORGTBL."
:group 'org-export-tables
+ :version "24.1"
:type 'boolean)
(defcustom org-export-prefer-native-exporter-for-tables nil
":[ \t]*\\(.*\\)") nil t)
(if (not (eq backend org-export-current-backend))
(delete-region (point-at-bol) (min (1+ (point-at-eol)) (point-max)))
- (replace-match "\\1\\2" t)
- (add-text-properties
- (point-at-bol) (min (1+ (point-at-eol)) (point-max))
- `(org-protected t original-indentation ,ind org-native-text t))))
+ (let ((ind (get-text-property (point-at-bol) 'original-indentation)))
+ (replace-match "\\1\\2" t)
+ (add-text-properties
+ (point-at-bol) (min (1+ (point-at-eol)) (point-max))
+ `(org-protected t original-indentation ,ind org-native-text t)))))
;; Delete #+ATTR_BACKEND: stuff of another backend. Those
;; matching the current backend will be taken care of by
;; `org-export-attach-captions-and-attributes'
(while (re-search-forward (concat "^[ \t]*#\\+BEGIN_" backend-name "\\>.*\n?")
nil t)
(setq beg (match-beginning 0) beg-content (match-end 0))
- (setq ind (save-excursion (goto-char beg) (org-get-indentation)))
+ (setq ind (or (get-text-property beg 'original-indentation)
+ (save-excursion (goto-char beg) (org-get-indentation))))
(when (re-search-forward (concat "^[ \t]*#\\+END_" backend-name "\\>.*\n?")
nil t)
(setq end (match-end 0) end-content (match-beginning 0))
beg-content end-content
`(org-protected t original-indentation ,ind org-native-text t))
;; strip protective commas
- (save-excursion
- (save-match-data
- (goto-char beg-content)
- (let ((front-line (save-excursion
- (re-search-forward
- "[^[:space:]]" end-content t)
- (goto-char (match-beginning 0))
- (current-column))))
- (while (re-search-forward "^[ \t]*\\(,\\)" end-content t)
- (when (= (current-column) front-line)
- (replace-match "" nil nil nil 1))))))
+ (org-strip-protective-commas beg-content end-content)
(delete-region (match-beginning 0) (match-end 0))
(save-excursion
(goto-char beg)
(top (point-at-bol))
(top-ind (org-list-get-ind top struct)))
(goto-char bottom)
- (when (and (not (eq org-list-ending-method 'indent))
- (not (looking-at "[ \t]*$"))
+ (when (and (not (looking-at "[ \t]*$"))
(looking-at org-list-end-re))
(replace-match ""))
(unless (bolp) (insert "\n"))
;; useful to line processing exporters.
(goto-char bottom)
(when (or (looking-at "^ORG-LIST-END-MARKER\n")
- (and (not (eq org-list-ending-method 'indent))
- (not (looking-at "[ \t]*$"))
+ (and (not (looking-at "[ \t]*$"))
(looking-at org-list-end-re)))
(replace-match ""))
(unless (bolp) (insert "\n"))
;; This is a subtree, we take the title from the first heading
(goto-char rbeg)
(looking-at org-todo-line-tags-regexp)
- (setq title (if (eq tags t)
+ (setq title (if (and (eq tags t) (match-string 4))
(format "%s\t%s" (match-string 3) (match-string 4))
(match-string 3)))
(org-unmodified
((org-table-cookie-line-p x)
;; This line contains formatting cookies, discard it
nil)
- ((string-match "^[ \t]*| *[!_^/] *|" x)
+ ((string-match "^[ \t]*| *\\([!_^/$]\\|\\\\\\$\\) *|" x)
;; ignore this line
nil)
((or (string-match "^\\([ \t]*\\)|-+\\+" x)
color."
:group 'org-faces
:group 'org-todo
+ :version "24.1"
:type '(repeat
(cons (choice (const todo) (const tag) (const priority))
(choice (const :foreground) (const :background)))))
When nil, format these as normal Org. This is the default, because the
content of these blocks will still be treated as Org syntax."
:group 'org-faces
+ :version "24.1"
:type 'boolean)
(defface org-clock-overlay ;; copied from secondary-selection
level org-n-level-faces"
:group 'org-appearance
:group 'org-faces
+ :version "24.1"
:type 'boolean)
(defface org-latex-and-export-specials
(declare-function org-show-context "org" (&optional key))
(declare-function org-trim "org" (s))
(declare-function outline-next-heading "outline")
+(declare-function org-skip-whitespace "org" ())
(defvar org-outline-regexp-bol) ; defined in org.el
(defvar org-odd-levels-only) ; defined in org.el
(org-re "^\\[\\([0-9]+\\|fn:[-_[:word:]]+\\)\\]")
"Regular expression matching the definition of a footnote.")
-(defvar org-footnote-forbidden-blocks '("example" "verse" "src" "ascii" "beamer"
- "docbook" "html" "latex" "odt")
+(defconst org-footnote-forbidden-blocks
+ '("ascii" "beamer" "comment" "docbook" "example" "html" "latex" "odt" "src")
"Names of blocks where footnotes are not allowed.")
(defgroup org-footnote nil
(match-end 0) (1- end)))))))))
(defun org-footnote-at-definition-p ()
- "Is the cursor at a footnote definition?
+ "Is point within a footnote definition?
-This matches only pure definitions like [1] or [fn:name] at the beginning
-of a line. It does not match references like [fn:name:definition], where the
-footnote text is included and defined locally.
+This matches only pure definitions like [1] or [fn:name] at the
+beginning of a line. It does not match references like
+\[fn:name:definition], where the footnote text is included and
+defined locally.
-The return value will be nil if not at a footnote definition, and a list with
-label, start, end and definition of the footnote otherwise."
+The return value will be nil if not at a footnote definition, and
+a list with label, start, end and definition of the footnote
+otherwise."
(when (save-excursion (beginning-of-line) (org-footnote-in-valid-context-p))
(save-excursion
(end-of-line)
+ ;; Footnotes definitions are separated by new headlines or blank
+ ;; lines.
(let ((lim (save-excursion (re-search-backward
(concat org-outline-regexp-bol
"\\|^[ \t]*$") nil t))))
(when (re-search-backward org-footnote-definition-re lim t)
- (end-of-line)
- (list (org-match-string-no-properties 1)
- (match-beginning 0)
- (save-match-data
- ;; In a message, limit search to signature.
- (let ((bound (and (derived-mode-p 'message-mode)
- (save-excursion
- (goto-char (point-max))
- (re-search-backward
- message-signature-separator nil t)))))
- (or (and (re-search-forward
+ (let ((label (org-match-string-no-properties 1))
+ (beg (match-beginning 0))
+ (beg-def (match-end 0))
+ ;; In message-mode, do not search after signature.
+ (end (let ((bound (and (derived-mode-p 'message-mode)
+ (save-excursion
+ (goto-char (point-max))
+ (re-search-backward
+ message-signature-separator nil t)))))
+ (if (progn
+ (end-of-line)
+ (re-search-forward
(concat org-outline-regexp-bol "\\|"
org-footnote-definition-re "\\|"
- "^[ \t]*$")
- bound 'move)
- (progn (skip-chars-forward " \t\n") (point-at-bol)))
- (point))))
- (org-trim (buffer-substring-no-properties
- (match-end 0) (point)))))))))
+ "^[ \t]*$") bound 'move))
+ (progn (goto-char (match-beginning 0))
+ (org-skip-whitespace)
+ (point-at-bol))
+ (point)))))
+ (list label beg end
+ (org-trim (buffer-substring-no-properties beg-def end)))))))))
(defun org-footnote-get-next-reference (&optional label backward limit)
"Return complete reference of the next footnote.
(unless (bolp) (newline))
(set-marker max nil))))
;; Insert footnote label.
- (insert "\n[" label "] ")
+ (when (zerop (org-back-over-empty-lines)) (newline))
+ (insert "[" label "] \n")
+ (backward-char)
;; Only notify user about next possible action when in an Org
;; buffer, as the bindings may have different meanings otherwise.
(when (eq major-mode 'org-mode)
(goto-char (point-min))
(while (setq ref (org-footnote-get-next-reference))
(let* ((lbl (car ref))
+ (pos (nth 1 ref))
;; When footnote isn't anonymous, check if it's label
;; (REF) is already stored in REF-TABLE. In that case,
;; extract number used to identify it (MARKER). If
;; If EXPORT-PROPS isn't nil, also add `org-footnote'
;; property to it, so it can be easily recognized by
;; exporters.
- (if sort-only
- (goto-char (nth 2 ref))
+ (if sort-only (goto-char (nth 2 ref))
(delete-region (nth 1 ref) (nth 2 ref))
(goto-char (nth 1 ref))
(let ((new-ref (format "[%d]" marker)))
org-footnote-fill-after-inline-note-extraction
(org-fill-paragraph)))
;; Add label (REF), identifier (MARKER), definition (DEF)
- ;; and type (INLINEP) to REF-TABLE if data was unknown.
+ ;; type (INLINEP) and position (POS) to REF-TABLE if data
+ ;; was unknown.
(unless a
(let ((def (or (nth 3 ref) ; inline
(and export-props
(org-combine-plists
export-props
'(:todo-keywords t :tags t :priority t))))
- (org-export-preprocess-string def parameters))
+ (apply #'org-export-preprocess-string def parameters))
def)
- inlinep) ref-table)))))
+ ;; Reference beginning position is a marker
+ ;; to preserve it during further buffer
+ ;; modifications.
+ inlinep (copy-marker pos)) ref-table)))))
;; 2. Find and remove the footnote section, if any. Also
;; determine where footnotes shall be inserted (INS-POINT).
- (goto-char (point-min))
(cond
- ((and org-footnote-section
- (eq major-mode 'org-mode)
- (re-search-forward
+ ((and org-footnote-section (eq major-mode 'org-mode))
+ (goto-char (point-min))
+ (if (re-search-forward
(concat "^\\*[ \t]+" (regexp-quote org-footnote-section)
- "[ \t]*$")
- nil t))
- (delete-region (match-beginning 0) (org-end-of-subtree t)))
- ((eq major-mode 'org-mode)
+ "[ \t]*$") nil t)
+ (delete-region (match-beginning 0) (org-end-of-subtree t t)))
+ ;; A new footnote section is inserted by default at the end of
+ ;; the buffer.
(goto-char (point-max))
+ (skip-chars-backward " \r\t\n")
+ (forward-line)
(unless (bolp) (newline)))
+ ;; No footnote section set: Footnotes will be added at the end
+ ;; of the section containing their first reference.
+ ((eq major-mode 'org-mode))
(t
;; Remove any left-over tag in the buffer, if one is set up.
(when org-footnote-tag-for-non-org-mode-files
(let ((tag (concat "^" (regexp-quote
org-footnote-tag-for-non-org-mode-files)
"[ \t]*$")))
+ (goto-char (point-min))
(while (re-search-forward tag nil t)
(replace-match "")
(delete-region (point) (progn (forward-line) (point))))))
(lambda (x)
(cond
;; When only sorting, ignore inline footnotes.
- ((and sort-only (nth 3 x)) nil)
+ ;; Also clear position marker.
+ ((and sort-only (nth 3 x))
+ (set-marker (nth 4 x) nil) nil)
;; No definition available: provide one.
((not (nth 2 x))
- (append (butlast x 2)
- (list (format "DEFINITION NOT FOUND: %s" (car x))
- (nth 3 x))))
+ (append
+ (list (car x) (nth 1 x)
+ (format "DEFINITION NOT FOUND: %s" (car x)))
+ (nthcdr 3 x)))
(t x)))
ref-table)))
(setq ref-table (nreverse ref-table))
;; 4. Remove left-over definitions in the buffer.
- (mapc (lambda (x) (unless (nth 3 x)
- (org-footnote-delete-definitions (car x))))
+ (mapc (lambda (x)
+ (unless (nth 3 x) (org-footnote-delete-definitions (car x))))
ref-table)
;; 5. Insert the footnotes again in the buffer, at the
;; appropriate spot.
;; Cases when footnotes should be inserted in one place.
((or (not (eq major-mode 'org-mode))
org-footnote-section
- (not sort-only))
+ export-props)
;; Insert again the section title, if any. Ensure that title,
;; or the subsequent footnotes, will be separated by a blank
;; lines from the rest of the document. In an Org buffer,
(skip-chars-backward " \t\n\r")
(delete-region (point) ins-point)
(unless (bolp) (newline))
- ;; Keep one blank line between footnotes and signature.
- (when (and (derived-mode-p 'message-mode)
- (save-excursion
- (re-search-forward message-signature-separator nil t)))
- (open-line 1))
(when org-footnote-tag-for-non-org-mode-files
(insert "\n" org-footnote-tag-for-non-org-mode-files "\n")))
((and org-footnote-section (not export-props))
(insert "* " org-footnote-section "\n")))
(set-marker ins-point nil)
;; Insert the footnotes, separated by a blank line.
- (insert (mapconcat (lambda (x) (format "\n[%s] %s"
- (nth (if sort-only 0 1) x) (nth 2 x)))
- ref-table "\n"))
- (unless (eobp) (insert "\n"))
+ (insert
+ (mapconcat
+ (lambda (x)
+ ;; Clean markers.
+ (set-marker (nth 4 x) nil)
+ (format "\n[%s] %s" (nth (if sort-only 0 1) x) (nth 2 x)))
+ ref-table "\n"))
+ (unless (eobp) (insert "\n\n"))
;; When exporting, add newly inserted markers along with their
;; associated definition to `org-export-footnotes-seen'.
- (when export-props
- (setq org-export-footnotes-seen ref-table)))
- ;; Else, insert each definition at the end of the section
- ;; containing their first reference. Happens only in Org files
- ;; with no special footnote section, and only when doing
- ;; sorting.
- (t (mapc 'org-insert-footnote-reference-near-definition
- ref-table))))))
-
-(defun org-insert-footnote-reference-near-definition (entry)
- "Find first reference of footnote ENTRY and insert the definition there.
-ENTRY is (fn-label num-mark definition)."
- (when (car entry)
- (goto-char (point-min))
- (let ((ref (org-footnote-get-next-reference (car entry))))
- (when ref
- (goto-char (nth 2 ref))
- (org-footnote-goto-local-insertion-point)
- (insert (format "\n[%s] %s\n" (car entry) (nth 2 entry)))))))
+ (when export-props (setq org-export-footnotes-seen ref-table)))
+ ;; Each footnote definition has to be inserted at the end of
+ ;; the section where its first reference belongs.
+ (t
+ (mapc
+ (lambda (x)
+ (let ((pos (nth 4 x)))
+ (goto-char pos)
+ ;; Clean marker.
+ (set-marker pos nil))
+ (org-footnote-goto-local-insertion-point)
+ (insert (format "\n[%s] %s\n"
+ (if sort-only (car x) (nth 1 x))
+ (nth 2 x))))
+ ref-table))))))
(defun org-footnote-goto-local-insertion-point ()
"Find insertion point for footnote, just before next outline heading."
(ndef 0))
(while (re-search-forward def-re nil t)
(let ((full-def (org-footnote-at-definition-p)))
- (delete-region (nth 1 full-def) (nth 2 full-def)))
- (incf ndef))
+ (when full-def
+ (delete-region (nth 1 full-def) (nth 2 full-def))
+ (incf ndef))))
ndef)))
(defun org-footnote-delete (&optional label)
;; with this setting now, but not before??? Was this perhaps a java
;; bug or is it a windows xp bug (some resource gets exhausted if you
;; use sticky keys which I do).
+ :version "24.1"
:group 'org-freemind)
(defun org-freemind-org-text-to-freemind-subnode/note (node-name start end drawers-regexp)
So if following a link to a Gnus article takes ages, try setting
this variable to `t'."
:group 'org-link-store
+ :version "24.1"
:type 'boolean)
(defcustom org-habit-today-glyph ?!
"Glyph character used to identify today."
:group 'org-habit
+ :version "24.1"
:type 'character)
(defcustom org-habit-completed-glyph ?*
"Glyph character used to show completed days on which a task was done."
:group 'org-habit
+ :version "24.1"
:type 'character)
(defface org-habit-clear-face
(let ((inhibit-read-only t) l c
(buffer-invisibility-spec '(org-link))
(moment (time-subtract (current-time)
- (list 0 (* 3600 org-extend-today-until) 0))))
+ (list 0 (* 3600 org-extend-today-until) 0)))
+ disabled-overlays)
+ ;; Disable filters; this helps with alignment if there are links.
+ (mapc (lambda (ol)
+ (when (overlay-get ol 'invisible)
+ (overlay-put ol 'invisible nil)
+ (setq disabled-overlays (cons ol disabled-overlays))))
+ (overlays-in (point-min) (point-max)))
(save-excursion
(goto-char (if line (point-at-bol) (point-min)))
(while (not (eobp))
(delete-char (min (+ 1 org-habit-preceding-days
org-habit-following-days)
(- (line-end-position) (point))))
- (insert (org-habit-build-graph
- habit
- (time-subtract moment
- (days-to-time org-habit-preceding-days))
- moment
- (time-add moment
- (days-to-time org-habit-following-days))))))
- (forward-line)))))
+ (insert-before-markers
+ (org-habit-build-graph
+ habit
+ (time-subtract moment (days-to-time org-habit-preceding-days))
+ moment
+ (time-add moment (days-to-time org-habit-following-days))))))
+ (forward-line)))
+ (mapc (lambda (ol) (overlay-put ol 'invisible t))
+ disabled-overlays)))
(defun org-habit-toggle-habits ()
"Toggle display of habits in an agenda buffer."
(defcustom org-export-html-footnote-separator "<sup>, </sup>"
"Text used to separate footnotes."
:group 'org-export-html
+ :version "24.1"
:type 'string)
(defcustom org-export-html-coding-system nil
#+MATHJAX: scale:\"133\" align:\"right\" mathml:t path:\"/MathJax/\""
:group 'org-export-html
+ :version "24.1"
:type '(list :greedy t
(list :tag "path (the path from where to load MathJax.js)"
(const :format " " path) (string))
</script>"
"The MathJax setup for XHTML files."
:group 'org-export-html
+ :version "24.1"
:type 'string)
(defcustom org-export-html-tag-class-prefix ""
to the headline (e.g. \"sec-2\"). When set to `nil', don't insert
HTML anchors in headlines."
:group 'org-export-html
+ :version "24.1"
:type 'string)
(defcustom org-export-html-preamble t
If you need to use a \"%\" character, you need to escape it
like that: \"%%\"."
:group 'org-export-html
+ :version "24.1"
:type 'string)
(defcustom org-export-html-postamble 'auto
If you need to use a \"%\" character, you need to escape it
like that: \"%%\"."
:group 'org-export-html
+ :version "24.1"
:type 'string)
(defcustom org-export-html-home/up-format
is ignored by some browsers (like Firefox, Safari). Opera does it right
though."
:group 'org-export-tables
+ :version "24.1"
:type 'boolean)
(defcustom org-export-html-table-use-header-tags-for-first-column nil
(">" . ">"))
"Alist of characters to be converted by `org-html-protect'."
:group 'org-export-html
+ :version "24.1"
:type '(repeat (cons (string :tag "Character")
(string :tag "HTML equivalent"))))
DIV, the second one for the content DIV and the third one for the
postamble DIV."
:group 'org-export-html
+ :version "24.1"
:type '(list
(string :tag " Div for the preamble:")
(string :tag " Div for the content:")
;; insert html preamble
(when (plist-get opt-plist :html-preamble)
(let ((html-pre (plist-get opt-plist :html-preamble))
- html-pre-real-contents)
+ (html-pre-real-contents ""))
(cond ((stringp html-pre)
(setq html-pre-real-contents
(format-spec html-pre `((?t . ,title) (?a . ,author)
(if (string-match
(org-re "[ \t]+:\\([[:alnum:]_@:]+\\):[ \t]*$") txt)
(setq txt (replace-match
- " <span class=\"tag\"> \\1</span>" t nil txt)))
+ " <span class=\"tag\">\\1</span>" t nil txt)))
(if (string-match quote-re0 txt)
(setq txt (replace-match "" t t txt)))
(setq snumber (org-section-number level))
"done" "todo")
" " (org-export-html-get-todo-kwd-class-name
(match-string 2 line))
- "\"> " (match-string 2 line)
+ "\">" (match-string 2 line)
"</span>" (substring line (match-end 2)))))
;; Does this contain a reference to a footnote?
- The alarm will go off N minutes before the event
- only a DISPLAY action is defined."
:group 'org-export-icalendar
+ :version "24.1"
:type 'integer)
(defcustom org-icalendar-combined-name "OrgMode"
(defcustom org-icalendar-combined-description nil
"Calendar description for the combined iCalendar (all agenda files)."
:group 'org-export-icalendar
+ :version "24.1"
:type 'string)
(defcustom org-icalendar-use-plain-timestamp t
(defcustom org-icalendar-honor-noexport-tag nil
"Non-nil means don't export entries with a tag in `org-export-exclude-tags'."
:group 'org-export-icalendar
+ :version "24.1"
:type 'boolean)
(defcustom org-icalendar-use-deadline '(event-if-not-todo todo-due)
- \":%Y%m%dT%H%M%SZ\" for time expressed in Universal Time"
:group 'org-export-icalendar
+ :version "24.1"
:type '(choice
(const :tag "Local time" ":%Y%m%dT%H%M%S")
(const :tag "Explicit local time" ";TZID=%Z:%Y%m%dT%H%M%S")
(if (or org-indent-modified-headline-flag
(save-excursion
(goto-char beg)
+ (beginning-of-line)
(re-search-forward org-outline-regexp-bol end t)))
(let ((end (save-excursion
(goto-char end)
This should be the state `org-inlinetask-insert-task' should use by
default, or nil of no state should be assigned."
:group 'org-inlinetask
+ :version "24.1"
:type '(choice
(const :tag "No state" nil)
(string :tag "Specific state")))
will cause \\usepackage[utf8x]{inputenc} to be used for buffers that
are written as utf8 files."
:group 'org-export-latex
+ :version "24.1"
:type '(repeat
(cons
(string :tag "Derived from buffer")
(defcustom org-export-latex-tag-markup "\\textbf{%s}"
"Markup for tags, as a printf format."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-timestamp-markup "\\textit{%s}"
(defcustom org-export-latex-timestamp-inactive-markup "\\textit{%s}"
"A printf format string to be applied to inactive time stamps."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-timestamp-keyword-markup "\\texttt{%s}"
the link, the second with the link description. If it contains
only one, the %s will be filled with the link."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-hyperref-format "\\hyperref[%s]{%s}"
The format must contain one or two %s instances. The first one
will be filled with the link, the second with its description."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-footnote-separator "\\textsuperscript{,}\\,"
"Text used to separate footnotes."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-quotes
for allowed characters before/after the quote, the second
string defines the replacement string for this quote."
:group 'org-export-latex
+ :version "24.1"
:type '(list
(cons :tag "Opening quote"
(string :tag "Regexp for char before")
"When non-nil, the caption is set above the table. When nil,
the caption is set below the table."
:group 'org-export-latex
+ :version "24.1"
:type 'boolean)
(defcustom org-export-latex-tables-column-borders nil
`org-export-latex-listings' variable) can be named in the style
of noweb."
:group 'org-export-latex
+ :version "24.1"
:type 'boolean)
(defcustom org-export-latex-minted-langs
pygmentize -L lexers
"
:group 'org-export-latex
+ :version "24.1"
:type '(repeat
(list
(symbol :tag "Major mode ")
Note that the same options will be applied to blocks of all
languages."
:group 'org-export-latex
+ :version "24.1"
:type '(repeat
(list
(string :tag "Listings option name ")
as the start of the minted environment. Note that the same
options will be applied to blocks of all languages."
:group 'org-export-latex
+ :version "24.1"
:type '(repeat
(list
(string :tag "Minted option name ")
(defcustom org-latex-default-figure-position "htb"
"Default position for latex figures."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-tabular-environment "tabular"
"Default environment used to build tables."
:group 'org-export-latex
+ :version "24.1"
:type 'string)
(defcustom org-export-latex-inline-image-extensions
"bibtex %b"
"pdflatex -interaction nonstopmode -output-directory %o %f"
"pdflatex -interaction nonstopmode -output-directory %o %f"))
+ (const :tag "2 runs of xelatex"
+ ("xelatex -interaction nonstopmode -output-directory %o %f"
+ "xelatex -interaction nonstopmode -output-directory %o %f"))
+ (const :tag "3 runs of xelatex"
+ ("xelatex -interaction nonstopmode -output-directory %o %f"
+ "xelatex -interaction nonstopmode -output-directory %o %f"
+ "xelatex -interaction nonstopmode -output-directory %o %f"))
+ (const :tag "xelatex,bibtex,xelatex,xelatex"
+ ("xelatex -interaction nonstopmode -output-directory %o %f"
+ "bibtex %b"
+ "xelatex -interaction nonstopmode -output-directory %o %f"
+ "xelatex -interaction nonstopmode -output-directory %o %f"))
(const :tag "texi2dvi"
("texi2dvi -p -b -c -V %f"))
(const :tag "rubber"
'("aux" "idx" "log" "out" "toc" "nav" "snm" "vrb")
"The list of file extensions to consider as LaTeX logfiles."
:group 'org-export-pdf
+ :version "24.1"
:type '(repeat (string :tag "Extension")))
(defcustom org-export-pdf-remove-logfiles t
(concat
(file-name-as-directory
(or pub-dir
- (org-export-directory :LaTeX ext-plist)))
+ (org-export-directory :LaTeX org-export-latex-options-plist)))
(file-name-sans-extension
(or (and subtree-p
(org-entry-get rbeg "EXPORT_FILE_NAME" t))
(concat filename ".tex")
filename)))
(auto-insert nil); Avoid any auto-insert stuff for the new file
- (TeX-master t) ; Avoid the Query for TeX master from AUCTeX
+ (TeX-master (boundp 'TeX-master))
(buffer (if to-buffer
(cond
((eq to-buffer 'string) (get-buffer-create
org-export-target-aliases))))
(sectioning org-export-latex-sectioning)
(depth org-export-latex-sectioning-depth)
- main-heading sub-heading)
+ main-heading sub-heading ctnt)
(when (symbolp (car sectioning))
(setq sectioning (funcall (car sectioning) level heading))
(when sectioning
(delete-region (point-at-bol 0) (point))
(insert (format "\\begin{%s}\n"
(symbol-name org-export-latex-low-levels))))
- (insert (format "\n\\item %s\\\\\n%s%%"
- heading
- (if label (format "\\label{%s}" label) "")))
- (insert (org-export-latex-content content))
+ (let ((ctnt (org-export-latex-content content)))
+ (insert (format (if (not (equal (replace-regexp-in-string "\n" "" ctnt) ""))
+ "\n\\item %s\\\\\n%s%%"
+ "\n\\item %s\n%s%%")
+ heading
+ (if label (format "\\label{%s}" label) "")))
+ (insert ctnt))
(cond ((stringp subcontent) (insert subcontent))
((listp subcontent) (org-export-latex-sub subcontent)))
(insert (format "\\end{%s} %% ends low level\n"
(symbol-name org-export-latex-low-levels))))
- ((listp org-export-latex-low-levels)
+ ((and (listp org-export-latex-low-levels)
+ org-export-latex-low-levels)
(if (string-match "% ends low level$"
(buffer-substring (point-at-bol 0) (point)))
(delete-region (point-at-bol 0) (point))
'org-label raw-table)
longtblp (and attr (stringp attr)
(string-match "\\<longtable\\>" attr))
- tblenv (if (and attr (stringp attr)
- (or (string-match (regexp-quote "table*") attr)
- (string-match "\\<multicolumn\\>" attr)))
- "table*" "table")
+ tblenv (if (and attr (stringp attr))
+ (cond ((string-match "\\<sidewaystable\\>" attr)
+ "sidewaystable")
+ ((or (string-match (regexp-quote "table*") attr)
+ (string-match "\\<multicolumn\\>" attr))
+ "table*")
+ (t "table"))
+ "table")
tabular-env
(if (and attr (stringp attr)
(string-match "\\(tabular.\\)" attr))
(if shortn (concat "[" shortn "]") "")
(or caption "")
(if label (format "\\label{%s}" label) "")))
- (if (and longtblp caption) "\\\\\n" "\n")
+ (if (and longtblp caption org-export-latex-table-caption-above)
+ "\\\\\n" "\n")
(if (and org-export-latex-tables-centered (not longtblp))
"\\begin{center}\n")
(if (not longtblp)
"Convert plain text lists in current buffer into LaTeX lists."
;; `org-list-end-re' output has changed since preprocess from
;; org-exp.el. Make sure it is taken into account.
- (let ((org-list-ending-method
- (if (eq org-list-ending-method 'regexp) 'regexp 'both))
- (org-list-end-re "^ORG-LIST-END-MARKER\n"))
+ (let ((org-list-end-re "^ORG-LIST-END-MARKER\n"))
(mapc
(lambda (e)
;; For each type of context allowed for list export (E), find
:group 'org-plain-lists
:type '(choice (const :tag "dot like in \"2.\"" ?.)
(const :tag "paren like in \"2)\"" ?\))
- (const :tab "both" t)))
+ (const :tag "both" t)))
(defcustom org-alphabetical-lists nil
"Non-nil means single character alphabetical bullets are allowed.
26 items will fallback to standard numbering. Alphabetical
counters like \"[@c]\" will be recognized."
:group 'org-plain-lists
+ :version "24.1"
:type 'boolean)
(defcustom org-list-two-spaces-after-bullet-regexp nil
(const :tag "never" nil)
(regexp)))
-(defcustom org-list-ending-method 'both
- "Determine where plain lists should end.
-Valid values are: `regexp', `indent' or `both'.
-
-When set to `regexp', Org will look into two variables,
-`org-empty-line-terminates-plain-lists' and the more general
-`org-list-end-regexp', to determine what will end lists.
-
-When set to `indent', a list will end whenever a line following
-an item, but not starting one, is less or equally indented than
-the first item of the list.
-
-When set to `both', each of the preceding methods is applied to
-determine lists endings. This is the default method."
- :group 'org-plain-lists
- :type '(choice
- (const :tag "With a regexp defining ending" regexp)
- (const :tag "With indentation of regular (no bullet) text" indent)
- (const :tag "With both methods" both)))
-
(defcustom org-empty-line-terminates-plain-lists nil
"Non-nil means an empty line ends all plain list levels.
-This variable only makes sense if `org-list-ending-method' is set
-to `regexp' or `both'. This is then equivalent to set
-`org-list-end-regexp' to \"^[ \\t]*$\"."
+Otherwise, two of them will be necessary."
:group 'org-plain-lists
:type 'boolean)
-(defcustom org-list-end-regexp "^[ \t]*\n[ \t]*\n"
- "Regexp matching the end of all plain list levels.
-It must start with \"^\" and end with \"\\n\". It defaults to 2
-blank lines. `org-empty-line-terminates-plain-lists' has
-precedence over it."
- :group 'org-plain-lists
- :type 'string)
-
(defcustom org-list-automatic-rules '((bullet . t)
(checkbox . t)
(indent . t))
outdenting a list whose bullet is * to column 0 will
change that bullet to \"-\"."
:group 'org-plain-lists
+ :version "24.1"
:type '(alist :tag "Sets of rules"
:key-type
(choice
\\[org-move-item-down], \\[org-next-item] and
\\[org-previous-item]."
:group 'org-plain-lists
+ :version "24.1"
:type 'boolean)
(defvar org-checkbox-statistics-hook nil
By setting this to a small number, usually 1 or 2, one can more
clearly distinguish sub-items in a list."
:group 'org-plain-lists
+ :version "24.1"
:type 'integer)
(defcustom org-list-radio-list-templates
\f
;;; Predicates and regexps
-(defconst org-list-end-re (if org-empty-line-terminates-plain-lists
- "^[ \t]*\n"
- org-list-end-regexp)
+(defconst org-list-end-re (if org-empty-line-terminates-plain-lists "^[ \t]*\n"
+ "^[ \t]*\n[ \t]*\n")
"Regex corresponding to the end of a list.
It depends on `org-empty-line-terminates-plain-lists'.")
(not (org-in-block-p org-list-forbidden-blocks)))
(defun org-in-item-p ()
- "Return item beginning position when in a plain list, nil otherwise.
-This checks `org-list-ending-method'."
+ "Return item beginning position when in a plain list, nil otherwise."
(save-excursion
(beginning-of-line)
(let* ((case-fold-search t)
;; to compute its boundaries END-BOUNDS. When point is
;; in-between, move cursor before regexp beginning.
(let ((hl 0) (i -1) end-bounds)
- (when (and (not (eq org-list-ending-method 'indent))
- (progn
+ (when (and (progn
(while (setq i (string-match
"[\r\n]" org-list-end-re (1+ i)))
(setq hl (1+ hl)))
(< (point) (cdr end-bounds)))
(goto-char (car end-bounds))
(forward-line -1)))
- ;; Look for an item, less indented that reference line if
- ;; `org-list-ending-method' isn't `regexp'.
+ ;; Look for an item, less indented that reference line.
(catch 'exit
(while t
(let ((ind (org-get-indentation)))
(cond
;; This is exactly what we want.
- ((and (looking-at item-re)
- (or (< ind ind-ref)
- (eq org-list-ending-method 'regexp)))
+ ((and (looking-at item-re) (< ind ind-ref))
(throw 'exit (point)))
;; At upper bound of search or looking at the end of a
;; previous list: search is over.
((<= (point) lim-up) (throw 'exit nil))
- ((and (not (eq org-list-ending-method 'indent))
- (looking-at org-list-end-re))
- (throw 'exit nil))
+ ((looking-at org-list-end-re) (throw 'exit nil))
;; Skip blocks, drawers, inline-tasks, blank lines
((and (looking-at "^[ \t]*#\\+end_")
(re-search-backward "^[ \t]*#\\+begin_" lim-up t)))
(forward-line -1))
;; Looking at a list ending regexp. Dismiss useless
;; data recorded above BEG-CELL. Jump to part 2.
- ((and (not (eq org-list-ending-method 'indent))
- (looking-at org-list-end-re))
+ ((looking-at org-list-end-re)
(throw 'exit
(setq itm-lst
(memq (assq (car beg-cell) itm-lst) itm-lst))))
((looking-at item-re)
(push (funcall assoc-at-point ind) itm-lst)
(push (cons ind (point)) end-lst)
- (when (or (and (eq org-list-ending-method 'regexp)
- (<= ind (cdr beg-cell)))
- (< ind text-min-ind))
- (setq beg-cell (cons (point) ind)))
+ (when (< ind text-min-ind) (setq beg-cell (cons (point) ind)))
(forward-line -1))
;; Skip blocks, drawers, inline tasks, blank lines.
((and (looking-at "^[ \t]*#\\+end_")
(forward-line -1))
((looking-at "^[ \t]*$")
(forward-line -1))
- ;; From there, point is not at an item. Unless ending
- ;; method is `regexp', interpret line's indentation:
+ ;; From there, point is not at an item. Interpret
+ ;; line's indentation:
;; - text at column 0 is necessarily out of any list.
;; Dismiss data recorded above BEG-CELL. Jump to
;; part 2.
;; - any other case may be an ending position for an
;; hypothetical item above. Store it and proceed.
- ((eq org-list-ending-method 'regexp) (forward-line -1))
((zerop ind)
(throw 'exit
(setq itm-lst
(next-single-property-change (point) 'org-example nil lim-down)))
;; Looking at a list ending regexp. Save point as an
;; ending position and jump to part 3.
- ((and (not (eq org-list-ending-method 'indent))
- (looking-at org-list-end-re))
+ ((looking-at org-list-end-re)
(throw 'exit (push (cons 0 (point)) end-lst-2)))
((looking-at item-re)
;; Point is at an item. Add data to ITM-LST-2. It may
;; Ind is lesser or equal than BEG-CELL's. The list is
;; over: store point as an ending position and jump to
;; part 3.
- ((and (not (eq org-list-ending-method 'regexp))
- (<= ind (cdr beg-cell)))
+ ((<= ind (cdr beg-cell))
(throw 'exit
(push (cons 0 (funcall end-before-blank)) end-lst-2)))
;; Else, if ind is lesser or equal than previous item's,
;; this is an ending position: store it. In any case,
;; skip block or drawer at point, and move to next line.
(t
- (when (and (not (eq org-list-ending-method 'regexp))
- (<= ind (nth 1 (car itm-lst-2))))
+ (when (<= ind (nth 1 (car itm-lst-2)))
(push (cons ind (point)) end-lst-2))
(cond
((and (looking-at "^[ \t]*#\\+begin_")
(point))))))))
(cond
;; Trivial cases where there should be none.
- ((or (and (not (eq org-list-ending-method 'indent))
- org-empty-line-terminates-plain-lists)
- (not insert-blank-p)) 0)
+ ((or org-empty-line-terminates-plain-lists (not insert-blank-p)) 0)
;; When `org-blank-before-new-entry' says so, it is 1.
((eq insert-blank-p t) 1)
;; `plain-list-item' is 'auto. Count blank lines separating
(goto-char top)
(when delete
(delete-region top bottom)
- (when (and (not (eq org-list-ending-method 'indent))
- (not (looking-at "[ \t]*$"))
- (looking-at org-list-end-re))
+ (when (and (not (looking-at "[ \t]*$")) (looking-at org-list-end-re))
(replace-match "")))
out))
(error "Cannot convert from %s format to %s format?"
in-fmt out-fmt)))
(convert-process (car how))
- (program (car convert-process))
- (dummy (and (or program (error "Converter not configured"))
- (or (executable-find program)
- (error "Cannot find converter %s" program))))
(out-file (concat (file-name-sans-extension in-file) "."
(nth 1 (or (cdr how) out-fmt))))
+ (extra-options (or (nth 2 (cdr how)) ""))
(out-dir (file-name-directory in-file))
- (arglist (mapcar (lambda (arg)
- (format-spec
- arg `((?i . ,in-file)
- (?I . ,(browse-url-file-url in-file))
- (?f . ,out-fmt)
- (?o . ,out-file)
- (?O . ,(browse-url-file-url out-file))
- (?d . ,out-dir)
- (?D . ,(browse-url-file-url out-dir)))))
- (cdr convert-process))))
+ (cmd (format-spec convert-process
+ `((?i . ,(shell-quote-argument in-file))
+ (?I . ,(browse-url-file-url in-file))
+ (?f . ,out-fmt)
+ (?o . ,out-file)
+ (?O . ,(browse-url-file-url out-file))
+ (?d . , (shell-quote-argument out-dir))
+ (?D . ,(browse-url-file-url out-dir))
+ (?x . ,extra-options)))))
(when (file-exists-p out-file)
(delete-file out-file))
- (message "Executing %s %s" program (mapconcat 'identity arglist " "))
- (apply 'call-process program nil nil nil arglist)
+ (message "Executing %s" cmd)
+ (let ((cmd-output (shell-command-to-string cmd)))
+ (message "%s" cmd-output))
+
(cond
((file-exists-p out-file)
- (message "Exported to %s using %s" out-file program)
+ (message "Exported to %s" out-file)
(when prefix-arg
(message "Opening %s..." out-file)
(org-open-file out-file))
- out-file
- ;; (set-buffer (find-file-noselect out-file))
- )
+ out-file)
(t
(message "Export to %s failed" out-file)
nil))))
(org-lparse-par-open-stashed 0)
;; list related vars
- (org-lparse-list-level 0) ; list level starts at 1. A
- ; value of 0 implies we are
- ; outside of any list
- (org-lparse-list-item-count 0)
- org-lparse-list-stack
+ (org-lparse-list-stack '())
;; list-table related vars
org-lparse-list-table-p
(setq umax-toc (if (integerp org-export-with-toc)
(min org-export-with-toc umax)
umax))
+ (setq org-lparse-opt-plist
+ (plist-put org-lparse-opt-plist :headline-levels umax))
(when (and org-export-with-toc (not body-only))
(setq lines (org-lparse-prepare-toc
(org-lparse-end-environment 'fixedwidth))
(throw 'nextline nil))
- ;; Notes: The baseline version of org-html.el (git commit
- ;; 3d802e), while encountering a *line-long* protected text,
- ;; does one of the following two things based on the state
- ;; of the export buffer.
-
- ;; 1. If a paragraph element has just been opened and
- ;; contains only whitespace as content, insert the
- ;; protected text as part of the previous paragraph.
-
- ;; 2. If the paragraph element has already been opened and
- ;; contains some valid content insert the protected text
- ;; as part of the current paragraph.
-
- ;; I think --->
-
- ;; Scenario 1 mentioned above kicks in when a block of
- ;; protected text has to be inserted en bloc. For example,
- ;; this happens, when inserting an source or example block
- ;; or preformatted content enclosed in #+backend,
- ;; #+begin_backend ... #+end_backend)
-
- ;; Scenario 2 mentioned above kicks in when the protected
- ;; text is part of a running sentence. For example this
- ;; happens in the case of an *multiline* LaTeX equation that
- ;; needs to be inserted verbatim.
-
- ;; org-html.el in the master branch seems to do some
- ;; jugglery by moving paragraphs around. Inorder to make
- ;; these changes backend-agnostic introduce a new text
- ;; property org-native-text and impose the added semantics
- ;; that these protected blocks appear outside of a
- ;; conventional paragraph element.
- ;;
- ;; Extra Note: Check whether org-example and org-native-text
- ;; are entirely equivalent.
-
- ;; Fixes bug reported by Christian Moe concerning verbatim
- ;; LaTeX fragments.
- ;; on git commit 533ba3f90250a1f25f494c390d639ea6274f235c
- ;; http://repo.or.cz/w/org-mode/org-jambu.git/shortlog/refs/heads/staging
- ;; See http://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg01379.html
-
;; Native Text
(when (and (get-text-property 0 'org-native-text line)
;; Make sure it is the entire line that is protected
table-buffer (nreverse table-buffer)
table-orig-buffer (nreverse table-orig-buffer))
(org-lparse-end-paragraph)
+ (when org-lparse-list-table-p
+ (error "Regular tables are not allowed in a list-table block"))
(org-lparse-insert 'TABLE table-buffer table-orig-buffer)))
;; Normal lines
-
(t
;; This line either is list item or end a list.
(when (get-text-property 0 'list-item line)
(org-lparse-end 'FOOTNOTE-DEFINITION n)
(setq org-lparse-insert-tag-with-newlines 'both)
(let ((footnote-def (org-lparse-end-collect)))
+ ;; Cleanup newlines in footnote definition. This ensures that a
+ ;; transcoded line is never (wrongly) broken in to multiple lines.
+ (let ((pos 0))
+ (while (string-match "[\r\n]+" footnote-def pos)
+ (setq pos (1+ (match-beginning 0)))
+ (setq footnote-def (replace-match " " t t footnote-def))))
(push (cons n footnote-def) org-lparse-footnote-definitions)))
(defvar org-lparse-collect-buffer nil
("d" . description)))))
;; following vars are bound during `org-do-lparse'
-(defvar org-lparse-list-level)
-(defvar org-lparse-list-item-count)
(defvar org-lparse-list-stack)
(defvar org-lparse-list-table:table-row)
(defvar org-lparse-list-table:lines)
;; https://lists.gnu.org/archive/html/emacs-orgmode/2011-03/msg01101.html
(defun org-lparse-begin-list (ltype)
- (incf org-lparse-list-level)
- (push org-lparse-list-item-count org-lparse-list-stack)
- (setq org-lparse-list-item-count 0)
- (cond
- ((not org-lparse-list-table-p)
- (org-lparse-begin 'LIST ltype))
- ;; process LIST-TABLE
- ((= 1 org-lparse-list-level)
- ;; begin LIST-TABLE
- (setq org-lparse-list-table:lines nil)
- (setq org-lparse-list-table:table-row nil))
- ((= 2 org-lparse-list-level)
- (ignore))
- (t
- (org-lparse-begin 'LIST ltype))))
+ (push ltype org-lparse-list-stack)
+ (let ((list-level (length org-lparse-list-stack)))
+ (cond
+ ((not org-lparse-list-table-p)
+ (org-lparse-begin 'LIST ltype))
+ ;; process LIST-TABLE
+ ((= 1 list-level)
+ ;; begin LIST-TABLE
+ (setq org-lparse-list-table:lines nil)
+ (setq org-lparse-list-table:table-row nil))
+ ((= 2 list-level)
+ (ignore))
+ (t
+ (org-lparse-begin 'LIST ltype)))))
(defun org-lparse-end-list (ltype)
- (setq org-lparse-list-item-count (pop org-lparse-list-stack))
- (decf org-lparse-list-level)
- (cond
- ((not org-lparse-list-table-p)
- (org-lparse-end 'LIST ltype))
- ;; process LIST-TABLE
- ((= 0 org-lparse-list-level)
- ;; end LIST-TABLE
- (insert (org-lparse-format-list-table
- (nreverse org-lparse-list-table:lines))))
- ((= 1 org-lparse-list-level)
- (ignore))
- (t
- (org-lparse-end 'LIST ltype))))
+ (pop org-lparse-list-stack)
+ (let ((list-level (length org-lparse-list-stack)))
+ (cond
+ ((not org-lparse-list-table-p)
+ (org-lparse-end 'LIST ltype))
+ ;; process LIST-TABLE
+ ((= 0 list-level)
+ ;; end LIST-TABLE
+ (insert (org-lparse-format-list-table
+ (nreverse org-lparse-list-table:lines))))
+ ((= 1 list-level)
+ (ignore))
+ (t
+ (org-lparse-end 'LIST ltype)))))
(defun org-lparse-begin-list-item (ltype &optional arg headline)
- (incf org-lparse-list-item-count)
- (cond
- ((not org-lparse-list-table-p)
- (org-lparse-begin 'LIST-ITEM ltype arg headline))
- ;; process LIST-TABLE
- ((and (= 1 org-lparse-list-level)
- (= 1 org-lparse-list-item-count))
- ;; begin TABLE-ROW for LIST-TABLE
- (setq org-lparse-list-table:table-row nil)
- (org-lparse-begin-list-table:table-cell))
- ((and (= 2 org-lparse-list-level)
- (= 1 org-lparse-list-item-count))
- ;; begin TABLE-CELL for LIST-TABLE
- (org-lparse-begin-list-table:table-cell))
- (t
- (org-lparse-begin 'LIST-ITEM ltype arg headline))))
+ (let ((list-level (length org-lparse-list-stack)))
+ (cond
+ ((not org-lparse-list-table-p)
+ (org-lparse-begin 'LIST-ITEM ltype arg headline))
+ ;; process LIST-TABLE
+ ((= 1 list-level)
+ ;; begin TABLE-ROW for LIST-TABLE
+ (setq org-lparse-list-table:table-row nil)
+ (org-lparse-begin-list-table:table-cell))
+ ((= 2 list-level)
+ ;; begin TABLE-CELL for LIST-TABLE
+ (org-lparse-begin-list-table:table-cell))
+ (t
+ (org-lparse-begin 'LIST-ITEM ltype arg headline)))))
(defun org-lparse-end-list-item (ltype)
- (decf org-lparse-list-item-count)
- (cond
- ((not org-lparse-list-table-p)
- (org-lparse-end 'LIST-ITEM ltype))
- ;; process LIST-TABLE
- ((and (= 1 org-lparse-list-level)
- (= 0 org-lparse-list-item-count))
- ;; end TABLE-ROW for LIST-TABLE
- (org-lparse-end-list-table:table-cell)
- (push (nreverse org-lparse-list-table:table-row)
- org-lparse-list-table:lines))
- ((= 2 org-lparse-list-level)
- ;; end TABLE-CELL for LIST-TABLE
- (org-lparse-end-list-table:table-cell))
- (t
- (org-lparse-end 'LIST-ITEM ltype))))
+ (let ((list-level (length org-lparse-list-stack)))
+ (cond
+ ((not org-lparse-list-table-p)
+ (org-lparse-end 'LIST-ITEM ltype))
+ ;; process LIST-TABLE
+ ((= 1 list-level)
+ ;; end TABLE-ROW for LIST-TABLE
+ (org-lparse-end-list-table:table-cell)
+ (push (nreverse org-lparse-list-table:table-row)
+ org-lparse-list-table:lines))
+ ((= 2 list-level)
+ ;; end TABLE-CELL for LIST-TABLE
+ (org-lparse-end-list-table:table-cell))
+ (t
+ (org-lparse-end 'LIST-ITEM ltype)))))
(defvar org-lparse-list-table:table-cell-open)
(defun org-lparse-begin-list-table:table-cell ()
;;; org-mac-message.el --- Links to Apple Mail.app messages from within Org-mode
-;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
-;; Author: John Wiegley <johnw@gnu.org>
-;; Christopher Suckling <suckling at gmail dot com>
+;; Authors: John Wiegley <johnw@gnu.org>
+;; Christopher Suckling <suckling at gmail dot com>
;; Keywords: outlines, hypermedia, calendar, wp
(defcustom org-mobile-files-exclude-regexp ""
"A regexp to exclude files from `org-mobile-files'."
:group 'org-mobile
+ :version "24.1"
:type 'regexp)
(defcustom org-mobile-directory ""
application. Before turning this on, check of MobileOrg does already
support it - at the time of this writing it did not yet."
:group 'org-mobile
+ :version "24.1"
:type 'boolean)
(defcustom org-mobile-encryption-tempfile "~/orgtmpcrypt"
This must be local file on your local machine (not on the WebDAV server).
You might want to put this file into a directory where only you have access."
:group 'org-mobile
+ :version "24.1"
:type 'directory)
(defcustom org-mobile-encryption-password ""
this variable empty - Org will then ask for the password once per Emacs
session."
:group 'org-mobile
+ :version "24.1"
:type '(string :tag "Password"))
(defvar org-mobile-encryption-password-session nil)
all the custom agendas and the default ones
list a list of selection key(s) as string."
:group 'org-mobile
+ :version "24.1"
:type '(choice
(const :tag "Default Agendas" default)
(const :tag "Custom Agendas" custom)
(replace-match "")
(just-one-space))
-(defvar rest)
+(defvar org-mouse-rest)
(defun org-mouse-replace-match-and-surround (newtext &optional fixedcase
literal string subexp)
"The same as `replace-match', but surrounds the replacement with spaces."
- (apply 'replace-match rest)
+ (apply 'replace-match org-mouse-rest)
(save-excursion
(goto-char (match-beginning (or subexp 0)))
(just-one-space)
(replace-match replace-text))
(forward-line))))
-(defvar _cmd) ;dynamically scoped from `org-with-remote-undo'.
+(defvar org-mouse-cmd) ;dynamically scoped from `org-with-remote-undo'.
(defun org-mouse-do-remotely (command)
; (org-agenda-check-no-diary)
(setq marker (copy-marker (point)))
(goto-char (max (point-at-bol) (- (point-at-eol) anticol)))
(funcall command)
- (message "_cmd: %S" _cmd)
+ (message "_cmd: %S" org-mouse-cmd)
(message "this-command: %S" this-command)
(unless (eq (marker-position marker) (marker-position endmarker))
(setq newhead (org-get-heading))))
-;;; org-odt.el --- OpenDocumentText export for Org-mode
+;;; org-odt.el --- OpenDocument Text exporter for Org-mode
;; Copyright (C) 2010-2012 Free Software Foundation, Inc.
(defgroup org-export-odt nil
"Options specific for ODT export of Org-mode files."
:tag "Org Export ODT"
- :group 'org-export)
+ :group 'org-export
+ :version "24.1")
+
+(defvar org-lparse-dyn-first-heading-pos) ; let bound during org-do-lparse
+(defun org-odt-insert-toc ()
+ (goto-char (point-min))
+ (cond
+ ((re-search-forward
+ "\\(<text:p [^>]*>\\)?\\s-*\\[TABLE-OF-CONTENTS\\]\\s-*\\(</text:p>\\)?"
+ nil t)
+ (replace-match ""))
+ (t
+ (goto-char org-lparse-dyn-first-heading-pos)))
+ (insert (org-odt-format-toc)))
(defun org-odt-end-export ()
+ (org-odt-insert-toc)
(org-odt-fixup-label-references)
;; remove empty paragraphs
(const :tag "Not set" nil)
(directory :tag "Schema directory"))
:group 'org-export-odt
+ :version "24.1"
:set
(lambda (var value)
"Set `org-export-odt-schema-dir'.
If unspecified, the file named \"OrgOdtContentTemplate.xml\"
under `org-odt-styles-dir' is used."
:type 'file
- :group 'org-export-odt)
+ :group 'org-export-odt
+ :version "24.1")
(defcustom org-export-odt-styles-file nil
"Default styles file for use with ODT export.
#+ODT_STYLES_FILE: \"/path/to/styles.xml\" or
#+ODT_STYLES_FILE: (\"/path/to/file.ott\" (\"styles.xml\" \"image/hdr.png\"))."
:group 'org-export-odt
+ :version "24.1"
:type
'(choice
(const :tag "Factory settings" nil)
(defvar org-export-odt-embed-images t
"Should the images be copied in to the odt file or just linked?")
-(defvar org-export-odt-inline-images 'maybe) ; counterpart of
- ; `org-export-html-inline-images'
-
+(defvar org-export-odt-inline-images 'maybe)
(defcustom org-export-odt-inline-image-extensions
'("png" "jpeg" "jpg" "gif")
"Extensions of image files that can be inlined into HTML."
:type '(repeat (string :tag "Extension"))
- :group 'org-export-odt)
+ :group 'org-export-odt
+ :version "24.1")
(defcustom org-export-odt-pixels-per-inch display-pixels-per-inch
- ;; FIXME add docstring
- ""
+ "Scaling factor for converting images pixels to inches.
+Use this for sizing of embedded images. See Info node `(org)
+Images in ODT export' for more information."
:type 'float
- :group 'org-export-odt)
+ :group 'org-export-odt
+ :version "24.1")
(defcustom org-export-odt-create-custom-styles-for-srcblocks t
"Whether custom styles for colorized source blocks be automatically created.
This variable is effective only if
`org-export-odt-fontify-srcblocks' is turned on."
:group 'org-export-odt
+ :version "24.1"
:type 'boolean)
(defvar org-export-odt-default-org-styles-alist
variable, the list of valid values are populated based on
`org-export-odt-convert-capabilities'."
:group 'org-export-odt
+ :version "24.1"
:type '(choice :convert-widget
(lambda (w)
(apply 'widget-convert (widget-type w)
--visit=MyFile --funcall org-export-as-odt-batch"
(org-lparse-batch "odt"))
-;;;###autoload
-(defun org-export-as-odt-to-buffer (arg)
- "Call `org-lparse-odt` with output to a temporary buffer.
-No file is created. The prefix ARG is passed through to `org-lparse-to-buffer'."
- (interactive "P")
- (org-lparse-to-buffer "odt" arg))
-
-;;;###autoload
-(defun org-replace-region-by-odt (beg end)
- "Assume the current region has org-mode syntax, and convert it to ODT.
-This can be used in any buffer. For example, you could write an
-itemized list in org-mode syntax in an ODT buffer and then use this
-command to convert it."
- (interactive "r")
- (org-replace-region-by "odt" beg end))
-
-;;;###autoload
-(defun org-export-region-as-odt (beg end &optional body-only buffer)
- "Convert region from BEG to END in org-mode buffer to ODT.
-If prefix arg BODY-ONLY is set, omit file header, footer, and table of
-contents, and only produce the region of converted text, useful for
-cut-and-paste operations.
-If BUFFER is a buffer or a string, use/create that buffer as a target
-of the converted ODT. If BUFFER is the symbol `string', return the
-produced ODT as a string and leave not buffer behind. For example,
-a Lisp program could call this function in the following way:
-
- (setq odt (org-export-region-as-odt beg end t 'string))
-
-When called interactively, the output buffer is selected, and shown
-in a window. A non-interactive call will only return the buffer."
- (interactive "r\nP")
- (org-lparse-region "odt" beg end body-only buffer))
-
;;; org-export-as-odt
;;;###autoload
(defun org-export-as-odt (arg &optional hidden ext-plist
'("<text:date style:data-style-name=\"%s\" text:date-value=\"%s\">"
. "</text:date>") date "N75" iso-date))
;; separator
- "<text:p text:style-name=\"OrgSubtitle\"/>"))
- ;; toc
- (org-odt-format-toc))))
+ "<text:p text:style-name=\"OrgSubtitle\"/>")))))
(defun org-odt-begin-document-body (opt-plist)
(org-odt-begin-office-body)
- (insert (org-odt-format-preamble opt-plist)))
+ (insert (org-odt-format-preamble opt-plist))
+ (setq org-lparse-dyn-first-heading-pos (point)))
(defvar org-lparse-body-only) ; let bound during org-do-lparse
(defvar org-lparse-to-buffer) ; let bound during org-do-lparse
(defun org-odt-end-outline-text ()
(ignore))
+(defun org-odt-begin-section (style &optional name)
+ (let ((default-name (car (org-odt-add-automatic-style "Section"))))
+ (org-lparse-insert-tag
+ "<text:section text:style-name=\"%s\" text:name=\"%s\">"
+ style (or name default-name))))
+
+(defun org-odt-end-section ()
+ (org-lparse-insert-tag "</text:section>"))
+
(defun org-odt-begin-paragraph (&optional style)
(org-lparse-insert-tag
"<text:p%s>" (org-odt-get-extra-attrs-for-paragraph-style style)))
(list))
(t (error "Unknown environment %s" style))))
-(defvar org-lparse-list-level) ; dynamically bound in org-do-lparse
+(defvar org-lparse-list-stack) ; dynamically bound in org-do-lparse
+(defvar org-odt-list-stack-stashed)
(defun org-odt-begin-list (ltype)
(setq ltype (or (org-lparse-html-list-type-to-canonical-list-type ltype)
ltype))
(let* ((style-name (org-odt-get-style-name-for-entity 'list ltype))
- (extra (concat (when (= org-lparse-list-level 1)
- " text:continue-numbering=\"false\"")
+ (extra (concat (if (or org-lparse-list-table-p
+ (and (= 1 (length org-lparse-list-stack))
+ (null org-odt-list-stack-stashed)))
+ " text:continue-numbering=\"false\""
+ " text:continue-numbering=\"true\"")
(when style-name
(format " text:style-name=\"%s\"" style-name)))))
(case ltype
(ordered
(assert (not headline) t)
(let* ((counter arg) (extra ""))
- (org-lparse-insert-tag "<text:list-item>")
+ (org-lparse-insert-tag (if (= (length org-lparse-list-stack)
+ (length org-odt-list-stack-stashed))
+ "<text:list-header>" "<text:list-item>"))
(org-lparse-begin-paragraph)))
(unordered
(let* ((id arg) (extra ""))
- (org-lparse-insert-tag "<text:list-item>")
+ (org-lparse-insert-tag (if (= (length org-lparse-list-stack)
+ (length org-odt-list-stack-stashed))
+ "<text:list-header>" "<text:list-item>"))
(org-lparse-begin-paragraph)
(insert (if headline (org-odt-format-target headline id)
(org-odt-format-bookmark "" id)))))
ltype))
(case ltype
((ordered unordered)
- (org-lparse-insert-tag "</text:list-item>"))
+ (org-lparse-insert-tag (if (= (length org-lparse-list-stack)
+ (length org-odt-list-stack-stashed))
+ (prog1 "</text:list-header>"
+ (setq org-odt-list-stack-stashed nil))
+ "</text:list-item>")))
(description
(org-lparse-end-list-item-1)
(org-lparse-end-list 'description)
(org-lparse-end-list-item-1))
(t (error "Unknown list type"))))
+(defun org-odt-discontinue-list ()
+ (let ((stashed-stack org-lparse-list-stack))
+ (loop for list-type in stashed-stack
+ do (org-lparse-end-list-item-1 list-type)
+ (org-lparse-end-list list-type))
+ (setq org-odt-list-stack-stashed stashed-stack)))
+
+(defun org-odt-continue-list ()
+ (setq org-odt-list-stack-stashed (nreverse org-odt-list-stack-stashed))
+ (loop for list-type in org-odt-list-stack-stashed
+ do (org-lparse-begin-list list-type)
+ (org-lparse-begin-list-item list-type)))
+
;; Following variables are let bound when table emission is in
;; progress. See org-lparse.el.
(defvar org-lparse-table-begin-marker)
formatting of numbered display equations. Do not delete this
style from the list."
:group 'org-export-odt
+ :version "24.1"
:type '(choice
(const :tag "None" nil)
(repeat :tag "Table Styles"
:key-type symbol
:value-type (const :tag "True" t))))))
+(defvar org-odt-table-style-format
+ "
+<style:style style:name=\"%s\" style:family=\"table\">
+ <style:table-properties style:rel-width=\"%d%%\" fo:margin-top=\"0cm\" fo:margin-bottom=\"0.20cm\" table:align=\"center\"/>
+</style:style>
+"
+ "Template for auto-generated Table styles.")
+
+(defvar org-odt-automatic-styles '()
+ "Registry of automatic styles for various OBJECT-TYPEs.
+The variable has the following form:
+\(\(OBJECT-TYPE-A
+ \(\(OBJECT-NAME-A.1 OBJECT-PROPS-A.1\)
+ \(OBJECT-NAME-A.2 OBJECT-PROPS-A.2\) ...\)\)
+ \(OBJECT-TYPE-B
+ \(\(OBJECT-NAME-B.1 OBJECT-PROPS-B.1\)
+ \(OBJECT-NAME-B.2 OBJECT-PROPS-B.2\) ...\)\)
+ ...\).
+
+OBJECT-TYPEs could be \"Section\", \"Table\", \"Figure\" etc.
+OBJECT-PROPS is (typically) a plist created by passing
+\"#+ATTR_ODT: \" option to `org-lparse-get-block-params'.
+
+Use `org-odt-add-automatic-style' to add update this variable.'")
+
+(defvar org-odt-object-counters nil
+ "Running counters for various OBJECT-TYPEs.
+Use this to generate automatic names and style-names. See
+`org-odt-add-automatic-style'.")
+
+(defun org-odt-write-automatic-styles ()
+ "Write automatic styles to \"content.xml\"."
+ (with-current-buffer
+ (find-file-noselect (expand-file-name "content.xml") t)
+ ;; position the cursor
+ (goto-char (point-min))
+ (re-search-forward " </office:automatic-styles>" nil t)
+ (goto-char (match-beginning 0))
+ ;; write automatic table styles
+ (loop for (style-name props) in
+ (plist-get org-odt-automatic-styles 'Table) do
+ (when (setq props (or (plist-get props :rel-width) 96))
+ (insert (format org-odt-table-style-format style-name props))))))
+
+(defun org-odt-add-automatic-style (object-type &optional object-props)
+ "Create an automatic style of type OBJECT-TYPE with param OBJECT-PROPS.
+OBJECT-PROPS is (typically) a plist created by passing
+\"#+ATTR_ODT: \" option of the object in question to
+`org-lparse-get-block-params'.
+
+Use `org-odt-object-counters' to generate an automatic
+OBJECT-NAME and STYLE-NAME. If OBJECT-PROPS is non-nil, add a
+new entry in `org-odt-automatic-styles'. Return (OBJECT-NAME
+. STYLE-NAME)."
+ (assert (stringp object-type))
+ (let* ((object (intern object-type))
+ (seqvar object)
+ (seqno (1+ (or (plist-get org-odt-object-counters seqvar) 0)))
+ (object-name (format "%s%d" object-type seqno)) style-name)
+ (setq org-odt-object-counters
+ (plist-put org-odt-object-counters seqvar seqno))
+ (when object-props
+ (setq style-name (format "Org%s" object-name))
+ (setq org-odt-automatic-styles
+ (plist-put org-odt-automatic-styles object
+ (append (list (list style-name object-props))
+ (plist-get org-odt-automatic-styles object)))))
+ (cons object-name style-name)))
+
+(defvar org-odt-table-indentedp nil)
(defun org-odt-begin-table (caption label attributes)
- (setq org-odt-table-style attributes)
+ (setq org-odt-table-indentedp (not (null org-lparse-list-stack)))
+ (when org-odt-table-indentedp
+ ;; Within the Org file, the table is appearing within a list item.
+ ;; OpenDocument doesn't allow table to appear within list items.
+ ;; Temporarily terminate the list, emit the table and then
+ ;; re-continue the list.
+ (org-odt-discontinue-list)
+ ;; Put the Table in an indented section.
+ (let ((level (length org-odt-list-stack-stashed)))
+ (org-odt-begin-section (format "OrgIndentedSection-Level-%d" level))))
+ (setq attributes (org-lparse-get-block-params attributes))
+ (setq org-odt-table-style (plist-get attributes :style))
(setq org-odt-table-style-spec
(assoc org-odt-table-style org-export-odt-table-styles))
- (when label
+ (when (or label caption)
(insert
(org-odt-format-stylized-paragraph
'table (org-odt-format-entity-caption label caption "__Table__"))))
- (org-lparse-insert-tag
- "<table:table table:name=\"%s\" table:style-name=\"%s\">"
- (or label "") (or (nth 1 org-odt-table-style-spec) "OrgTable"))
+ (let ((name-and-style (org-odt-add-automatic-style "Table" attributes)))
+ (org-lparse-insert-tag
+ "<table:table table:name=\"%s\" table:style-name=\"%s\">"
+ (car name-and-style) (or (nth 1 org-odt-table-style-spec)
+ (cdr name-and-style) "OrgTable")))
(setq org-lparse-table-begin-marker (point)))
(defvar org-lparse-table-colalign-info)
((equal spec "table-cell:style-name")
(replace-match table-cell-style t t))))))
(goto-char (point-max))
- (org-lparse-insert-tag "</table:table>"))
+ (org-lparse-insert-tag "</table:table>")
+ (when org-odt-table-indentedp
+ (org-odt-end-section)
+ (org-odt-continue-list)))
(defun org-odt-begin-table-rowgroup (&optional is-header-row)
(when org-lparse-table-rowgrp-open
(org-lparse-end 'TABLE-ROWGROUP))
(org-lparse-insert-tag (if is-header-row
- "<table:table-header-rows>"
- "<table:table-rows>"))
+ "<table:table-header-rows>"
+ "<table:table-rows>"))
(setq org-lparse-table-rowgrp-open t)
(setq org-lparse-table-cur-rowgrp-is-hdr is-header-row))
(org-lparse-end-paragraph))
(defun org-odt-begin-toc (lang-specific-heading max-level)
+ ;; Strings in `org-export-language-setup' can contain named html
+ ;; entities. Replace those with utf-8 equivalents.
+ (let ((i 0) entity rpl)
+ (while (string-match "&\\([^#].*?\\);" lang-specific-heading i)
+ (setq entity (match-string 1 lang-specific-heading))
+ (if (not (setq rpl (org-entity-get-representation entity 'utf8)))
+ (setq i (match-end 0))
+ (setq i (+ (match-beginning 0) (length rpl)))
+ (setq lang-specific-heading
+ (replace-match rpl t t lang-specific-heading)))))
(insert
(format "
<text:table-of-content text:style-name=\"Sect2\" text:protected=\"true\" text:name=\"Table of Contents1\">
(concat snumber ". "))
headline
(and tags
- (concat
- (org-lparse-format 'SPACES 3)
- (org-lparse-format 'FONTIFY tags "tag")))))
+ (concat
+ (org-lparse-format 'SPACES 3)
+ (org-lparse-format 'FONTIFY tags "tag")))))
(when todo
(setq headline (org-lparse-format 'FONTIFY headline "todo")))
(defun org-odt-format-link (desc href &optional attr)
(cond
((and (= (string-to-char href) ?#) (not org-odt-suppress-xref))
- (setq href (concat org-export-odt-bookmark-prefix (substring href 1)))
+ (setq href (substring href 1))
(let ((xref-format "text"))
(when (numberp desc)
(setq desc (format "%d" desc) xref-format "number"))
+ (when (listp desc)
+ (setq desc (mapconcat 'identity desc ".") xref-format "chapter"))
+ (setq href (concat org-export-odt-bookmark-prefix href))
(org-odt-format-tags
'("<text:bookmark-ref text:reference-format=\"%s\" text:ref-name=\"%s\">" .
"</text:bookmark-ref>")
blocks in the exported file. For colorization to work, you need
to make available an enhanced version of `htmlfontify' library."
:type 'boolean
- :group 'org-export-odt)
+ :group 'org-export-odt
+ :version "24.1")
(defun org-odt-format-source-line-with-line-number-and-label
(line rpllbl num fontifier par-style)
(org-odt-copy-image-file thefile) thelink))))
(org-export-odt-format-image thefile href)))
-(defun org-export-odt-format-formula (src href &optional embed-as)
- "Create image tag with source and attributes."
+(defvar org-odt-entity-labels-alist nil
+ "Associate Labels with the Labeled entities.
+Each element of the alist is of the form (LABEL-NAME
+CATEGORY-NAME SEQNO LABEL-STYLE-NAME). LABEL-NAME is same as
+that specified by \"#+LABEL: ...\" line. CATEGORY-NAME is the
+type of the entity that LABEL-NAME is attached to. CATEGORY-NAME
+can be one of \"Table\", \"Figure\" or \"Equation\". SEQNO is
+the unique number assigned to the referenced entity on a
+per-CATEGORY basis. It is generated sequentially and is 1-based.
+LABEL-STYLE-NAME is a key `org-odt-label-styles'.
+
+See `org-odt-add-label-definition' and
+`org-odt-fixup-label-references'.")
+
+(defun org-export-odt-format-formula (src href)
(save-match-data
(let* ((caption (org-find-text-property-in-string 'org-caption src))
(caption (and caption (org-xml-format-desc caption)))
(label (org-find-text-property-in-string 'org-label src))
(latex-frag (org-find-text-property-in-string 'org-latex-src src))
- (embed-as (or embed-as
- (and latex-frag
+ (embed-as (or (and latex-frag
(org-find-text-property-in-string
'org-latex-src-embed-type src))
(if (or caption label) 'paragraph 'character)))
(org-lparse-end-paragraph)
(org-lparse-insert-list-table
`((,(org-odt-format-entity
- (if caption "CaptionedDisplayFormula" "DisplayFormula")
- href width height :caption caption :label nil)
- ,(if (not label) ""
- (org-odt-format-entity-caption label nil "__MathFormula__"))))
- nil nil nil "OrgEquation" nil '((1 "c" 8) (2 "c" 1)))
+ (if (not (or caption label)) "DisplayFormula"
+ "CaptionedDisplayFormula")
+ href width height :caption caption :label label)
+ ,(if (not (or caption label)) ""
+ (let* ((label-props (car org-odt-entity-labels-alist)))
+ (setcar (last label-props) "math-label")
+ (apply 'org-odt-format-label-definition
+ caption label-props)))))
+ nil nil nil ":style \"OrgEquation\"" nil '((1 "c" 8) (2 "c" 1)))
(throw 'nextline nil))))))
(defvar org-odt-embedded-formulas-count 0)
(message "Embedding %s as %s ..."
(substring-no-properties path) target-file)
- (make-directory target-dir)
- (org-odt-create-manifest-file-entry
- "application/vnd.oasis.opendocument.formula" target-dir "1.2")
-
- (case (org-odt-is-formula-link-p src-file)
- (mathml
- (copy-file src-file target-file 'overwrite))
- (odf
- (org-odt-zip-extract-one src-file "content.xml" target-dir))
- (t
- (error "%s is not a formula file" src-file)))
-
- (org-odt-create-manifest-file-entry "text/xml" target-file))
+ (make-directory target-dir)
+ (org-odt-create-manifest-file-entry
+ "application/vnd.oasis.opendocument.formula" target-dir "1.2")
+
+ (case (org-odt-is-formula-link-p src-file)
+ (mathml
+ (copy-file src-file target-file 'overwrite))
+ (odf
+ (org-odt-zip-extract-one src-file "content.xml" target-dir))
+ (t
+ (error "%s is not a formula file" src-file)))
+
+ (org-odt-create-manifest-file-entry "text/xml" target-file))
target-file))
(defun org-odt-format-inline-formula (thefile)
(not fragment)))
(type (if (equal type-1 "id") "file" type-1))
(filename path)
- (thefile path))
+ (thefile path)
+ sec-frag sec-nos)
(cond
;; check for inlined images
((and (member type '("file"))
(org-odt-is-formula-link-p filename)
(or (not descp)))
(org-odt-format-inline-formula thefile))
+ ;; code references
((string= type "coderef")
(let* ((ref fragment)
(lineno-or-ref (cdr (assoc ref org-export-code-refs)))
(or desc "%s"))
lineno-or-ref))
(org-odt-format-link (org-xml-format-desc desc) href)))))
+ ;; links to headlines
+ ((and (string= type "")
+ (or (not thefile) (string= thefile ""))
+ (plist-get org-lparse-opt-plist :section-numbers)
+ (setq sec-frag fragment)
+ (org-find-text-property-in-string 'org-no-description fragment)
+ (or (string-match "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag)
+ (and (setq sec-frag
+ (loop for alias in org-export-target-aliases do
+ (when (member fragment (cdr alias))
+ (return (car alias)))))
+ (string-match "\\`sec\\(\\(-[0-9]+\\)+\\)" sec-frag)))
+ (setq sec-nos (org-split-string (match-string 1 sec-frag) "-"))
+ (<= (length sec-nos) (plist-get org-lparse-opt-plist
+ :headline-levels)))
+ (let ((org-odt-suppress-xref nil))
+ (org-odt-format-link sec-nos (concat "#" sec-frag) attr)))
(t
(when (string= type "file")
(setq thefile
"</text:h>") text level level)))
(defun org-odt-format-headline (title extra-targets tags
- &optional snumber level)
+ &optional snumber level)
(concat
(org-lparse-format 'EXTRA-TARGETS extra-targets)
(attr-plist (org-lparse-get-block-params attr))
(user-frame-anchor
(car (assoc-string (plist-get attr-plist :anchor)
- (if (or caption label)
- '(("paragraph") ("page"))
- '(("character") ("paragraph") ("page"))) t)))
+ '(("as-char") ("paragraph") ("page")) t)))
(user-frame-style
(and user-frame-anchor (plist-get attr-plist :style)))
(user-frame-attrs
(embed-as (cond
(latex-frag
(symbol-name
- (or (org-find-text-property-in-string
- 'org-latex-src-embed-type src) 'character)))
+ (case (org-find-text-property-in-string
+ 'org-latex-src-embed-type src)
+ (paragraph 'paragraph)
+ (t 'as-char))))
(user-frame-anchor)
(t "paragraph")))
(size (org-odt-image-size-from-file
(org-odt-format-tags
'("<draw:text-box %s>" . "</draw:text-box>")
text (concat (format " fo:min-height=\"%0.2fcm\"" (or height .2))
- (format " fo:min-width=\"%0.2fcm\"" (or width .2))))
+ (unless width
+ (format " fo:min-width=\"%0.2fcm\"" (or width .2)))))
width nil style extra anchor-type))
(defun org-odt-format-inlinetask (heading content
content) nil nil "OrgInlineTaskFrame" " style:rel-width=\"100%\"")))
(defvar org-odt-entity-frame-styles
- '(("CharacterImage" "__Figure__" ("OrgInlineImage" nil "as-char"))
+ '(("As-CharImage" "__Figure__" ("OrgInlineImage" nil "as-char"))
("ParagraphImage" "__Figure__" ("OrgDisplayImage" nil "paragraph"))
("PageImage" "__Figure__" ("OrgPageImage" nil "page"))
+ ("CaptionedAs-CharImage" "__Figure__"
+ ("OrgCaptionedImage"
+ " style:rel-width=\"100%\" style:rel-height=\"scale\"" "paragraph")
+ ("OrgInlineImage" nil "as-char"))
("CaptionedParagraphImage" "__Figure__"
("OrgCaptionedImage"
" style:rel-width=\"100%\" style:rel-height=\"scale\"" "paragraph")
target-file))
(defvar org-export-odt-image-size-probe-method
- '(emacs imagemagick force)
- "Ordered list of methods by for determining size of an embedded
- image.")
+ (append (and (executable-find "identify") '(imagemagick)) ; See Bug#10675
+ '(emacs fixed))
+ "Ordered list of methods for determining image sizes.")
(defvar org-export-odt-default-image-sizes-alist
- '(("character" . (5 . 0.4))
+ '(("as-char" . (5 . 0.4))
("paragraph" . (5 . 5)))
"Hardcoded image dimensions one for each of the anchor
methods.")
(pixels-to-cms (cdr size-in-pixels)))))))
(case probe-method
(emacs
- (size-in-cms (ignore-errors (image-size (create-image file) 'pixels))))
+ (size-in-cms (ignore-errors ; Emacs could be in batch mode
+ (clear-image-cache)
+ (image-size (create-image file) 'pixels))))
(imagemagick
(size-in-cms
(let ((dim (shell-command-to-string
(setq width (* scale width) height (* scale height)))))
(cons width height)))
-(defvar org-odt-entity-labels-alist nil
- "Associate Labels with the Labeled entities.
-Each element of the alist is of the form (LABEL-NAME
-CATEGORY-NAME SEQNO LABEL-STYLE-NAME). LABEL-NAME is same as
-that specified by \"#+LABEL: ...\" line. CATEGORY-NAME is the
-type of the entity that LABEL-NAME is attached to. CATEGORY-NAME
-can be one of \"Table\", \"Figure\" or \"Equation\". SEQNO is
-the unique number assigned to the referenced entity on a
-per-CATEGORY basis. It is generated sequentially and is 1-based.
-LABEL-STYLE-NAME is a key `org-odt-label-styles'.
-
-See `org-odt-add-label-definition' and
-`org-odt-fixup-label-references'.")
-
(defvar org-odt-entity-counts-plist nil
"Plist of running counters of SEQNOs for each of the CATEGORY-NAMEs.
See `org-odt-entity-labels-alist' for known CATEGORY-NAMEs.")
(defvar org-odt-label-styles
- '(("text" "(%n)" "text" "(%n)")
- ("category-and-value" "%e %n%c" "category-and-value" "%e %n"))
+ '(("math-formula" "%c" "text" "(%n)")
+ ("math-label" "(%n)" "text" "(%n)")
+ ("category-and-value" "%e %n: %c" "category-and-value" "%e %n")
+ ("value" "%e %n: %c" "value" "%n"))
"Specify how labels are applied and referenced.
This is an alist where each element is of the
form (LABEL-STYLE-NAME LABEL-ATTACH-FMT LABEL-REF-MODE
%n is replaced with SEQNO. See
`org-odt-format-label-reference'.")
+(defcustom org-export-odt-category-strings
+ '(("en" "Table" "Figure" "Equation" "Equation"))
+ "Specify category strings for various captionable entities.
+Captionable entity can be one of a Table, an Embedded Image, a
+LaTeX fragment (generated with dvipng) or a Math Formula.
+
+For example, when `org-export-default-language' is \"en\", an
+embedded image will be captioned as \"Figure 1: Orgmode Logo\".
+If you want the images to be captioned instead as \"Illustration
+1: Orgmode Logo\", then modify the entry for \"en\" as shown
+below.
+
+ \(setq org-export-odt-category-strings
+ '\(\(\"en\" \"Table\" \"Illustration\"
+ \"Equation\" \"Equation\"\)\)\)"
+ :group 'org-export-odt
+ :version "24.1"
+ :type '(repeat (list (string :tag "Language tag")
+ (choice :tag "Table"
+ (const :tag "Use Default" nil)
+ (string :tag "Category string"))
+ (choice :tag "Figure"
+ (const :tag "Use Default" nil)
+ (string :tag "Category string"))
+ (choice :tag "Math Formula"
+ (const :tag "Use Default" nil)
+ (string :tag "Category string"))
+ (choice :tag "Dvipng Image"
+ (const :tag "Use Default" nil)
+ (string :tag "Category string")))))
+
(defvar org-odt-category-map-alist
- '(("__Table__" "Table" "category-and-value")
- ("__Figure__" "Figure" "category-and-value")
- ("__MathFormula__" "Equation" "text")
- ("__DvipngImage__" "Equation" "category-and-value"))
- "Map a CATEGORY-HANDLE to CATEGORY-NAME and LABEL-STYLE.
-This is an alist where each element is of the form
-\\(CATEGORY-HANDLE CATEGORY-NAME LABEL-STYLE\\). CATEGORY_HANDLE
-could either be one of the internal handles (as seen above) or be
-derived from the \"#+LABEL:<label-name>\" specification. See
-`org-export-odt-get-category-from-label'. CATEGORY-NAME and
-LABEL-STYLE are used for generating ODT labels. See
-`org-odt-label-styles'.")
-
-(defvar org-export-odt-user-categories
- '("Illustration" "Table" "Text" "Drawing" "Equation" "Figure"))
-
-(defvar org-export-odt-get-category-from-label nil
- "Should category of label be inferred from label itself.
-When this option is non-nil, a label is parsed in to two
-component parts delimited by a \":\" (colon) as shown here -
-#+LABEL:[CATEGORY-HANDLE:]EXTRA. The CATEGORY-HANDLE is mapped
-to a CATEGORY-NAME and LABEL-STYLE using
-`org-odt-category-map-alist'. (If no such map is provided and
-CATEGORY-NAME is set to CATEGORY-HANDLE and LABEL-STYLE is set to
-\"category-and-value\"). If CATEGORY-NAME so obtained is listed
-under `org-export-odt-user-categories' then the user specified
-styles are used. Otherwise styles as determined by the internal
-CATEGORY-HANDLE is used. See
-`org-odt-get-label-category-and-style' for details.")
-
-(defun org-odt-get-label-category-and-style (label default-category)
- "See `org-export-odt-get-category-from-label'."
- (let ((default-category-map
- (assoc default-category org-odt-category-map-alist))
- user-category user-category-map category)
- (cond
- ((not org-export-odt-get-category-from-label)
- default-category-map)
- ((not (setq user-category
- (save-match-data
- (and (string-match "\\`\\(.*\\):.+" label)
- (match-string 1 label)))))
- default-category-map)
- (t
- (setq user-category-map
- (or (assoc user-category org-odt-category-map-alist)
- (list nil user-category "category-and-value"))
- category (nth 1 user-category-map))
- (if (member category org-export-odt-user-categories)
- user-category-map
- default-category-map)))))
+ '(("__Table__" "Table" "value")
+ ("__Figure__" "Illustration" "value")
+ ("__MathFormula__" "Text" "math-formula")
+ ("__DvipngImage__" "Equation" "value")
+ ;; ("__Table__" "Table" "category-and-value")
+ ;; ("__Figure__" "Figure" "category-and-value")
+ ;; ("__DvipngImage__" "Equation" "category-and-value")
+ )
+ "Map a CATEGORY-HANDLE to OD-VARIABLE and LABEL-STYLE.
+This is a list where each entry is of the form \\(CATEGORY-HANDLE
+OD-VARIABLE LABEL-STYLE\\). CATEGORY_HANDLE identifies the
+captionable entity in question. OD-VARIABLE is the OpenDocument
+sequence counter associated with the entity. These counters are
+declared within
+\"<text:sequence-decls>...</text:sequence-decls>\" block of
+`org-export-odt-content-template-file'. LABEL-STYLE is a key
+into `org-odt-label-styles' and specifies how a given entity
+should be captioned and referenced.
+
+The position of a CATEGORY-HANDLE in this list is used as an
+index in to per-language entry for
+`org-export-odt-category-strings' to retrieve a CATEGORY-NAME.
+This CATEGORY-NAME is then used for qualifying the user-specified
+captions on export.")
(defun org-odt-add-label-definition (label default-category)
"Create an entry in `org-odt-entity-labels-alist' and return it."
- (setq label (substring-no-properties label))
- (let* ((label-props (org-odt-get-label-category-and-style
- label default-category))
- (category (nth 1 label-props))
- (counter category)
- (label-style (nth 2 label-props))
- (sequence-var (intern (mapconcat
- 'downcase
- (org-split-string counter) "-")))
+ (let* ((label-props (assoc default-category org-odt-category-map-alist))
+ ;; identify the sequence number
+ (counter (nth 1 label-props))
+ (sequence-var (intern counter))
(seqno (1+ (or (plist-get org-odt-entity-counts-plist sequence-var)
0)))
- (label-props (list label category seqno label-style)))
+ ;; assign an internal label, if user has not provided one
+ (label (if label (substring-no-properties label)
+ (format "%s-%s" default-category seqno)))
+ ;; identify label style
+ (label-style (nth 2 label-props))
+ ;; grok language setting
+ (en-strings (assoc-default "en" org-export-odt-category-strings))
+ (lang (plist-get org-lparse-opt-plist :language))
+ (lang-strings (assoc-default lang org-export-odt-category-strings))
+ ;; retrieve localized category sting
+ (pos (- (length org-odt-category-map-alist)
+ (length (memq label-props org-odt-category-map-alist))))
+ (category (or (nth pos lang-strings) (nth pos en-strings)))
+ (label-props (list label category counter seqno label-style)))
+ ;; synchronize internal counters
(setq org-odt-entity-counts-plist
(plist-put org-odt-entity-counts-plist sequence-var seqno))
+ ;; stash label properties for later retrieval
(push label-props org-odt-entity-labels-alist)
label-props))
-(defun org-odt-format-label-definition (caption label category seqno label-style)
+(defun org-odt-format-label-definition (caption label category counter
+ seqno label-style)
(assert label)
(format-spec
(cadr (assoc-string label-style org-odt-label-styles t))
`((?e . ,category)
(?n . ,(org-odt-format-tags
'("<text:sequence text:ref-name=\"%s\" text:name=\"%s\" text:formula=\"ooow:%s+1\" style:num-format=\"1\">" . "</text:sequence>")
- (format "%d" seqno) label category category))
- (?c . ,(or (and caption (concat ": " caption)) "")))))
+ (format "%d" seqno) label counter counter))
+ (?c . ,(or caption "")))))
-(defun org-odt-format-label-reference (label category seqno label-style)
+(defun org-odt-format-label-reference (label category counter
+ seqno label-style)
(assert label)
(save-match-data
(let* ((fmt (cddr (assoc-string label-style org-odt-label-styles t)))
(format "Unable to resolve reference to label \"%s\"" label))))))
(defun org-odt-format-entity-caption (label caption category)
- (or (and label
- (apply 'org-odt-format-label-definition
- caption (org-odt-add-label-definition label category)))
- caption ""))
+ (if (not (or label caption)) ""
+ (apply 'org-odt-format-label-definition caption
+ (org-odt-add-label-definition label category))))
(defun org-odt-format-tags (tag text &rest args)
(let ((prefix (when org-lparse-encode-pending "@"))
org-odt-embedded-images-count 0
org-odt-embedded-formulas-count 0
org-odt-entity-labels-alist nil
+ org-odt-list-stack-stashed nil
+ org-odt-automatic-styles nil
+ org-odt-object-counters nil
org-odt-entity-counts-plist nil)
content-file))
regular use. Turn this on if you need to examine the xml
visually."
:group 'org-export-odt
+ :version "24.1"
:type 'boolean)
(defvar hfy-user-sheet-assoc) ; bound during org-do-lparse
(defun org-odt-save-as-outfile (target opt-plist)
+ ;; write automatic styles
+ (org-odt-write-automatic-styles)
+
;; write meta file
(org-odt-update-meta-file opt-plist)
xmlns:ooo=\"http://openoffice.org/2004/office\"
office:version=\"1.2\">
<office:meta>" "\n"
- (org-odt-format-author)
- (org-odt-format-tags
- '("\n<meta:initial-creator>" . "</meta:initial-creator>") author)
- (org-odt-format-tags '("\n<dc:date>" . "</dc:date>") date)
- (org-odt-format-tags
- '("\n<meta:creation-date>" . "</meta:creation-date>") date)
- (org-odt-format-tags '("\n<meta:generator>" . "</meta:generator>")
- (when org-export-creator-info
- (format "Org-%s/Emacs-%s"
- org-version emacs-version)))
- (org-odt-format-tags '("\n<meta:keyword>" . "</meta:keyword>") keywords)
- (org-odt-format-tags '("\n<dc:subject>" . "</dc:subject>") description)
- (org-odt-format-tags '("\n<dc:title>" . "</dc:title>") title)
- "\n"
- " </office:meta>" "</office:document-meta>")
+ (org-odt-format-author)
+ (org-odt-format-tags
+ '("\n<meta:initial-creator>" . "</meta:initial-creator>") author)
+ (org-odt-format-tags '("\n<dc:date>" . "</dc:date>") date)
+ (org-odt-format-tags
+ '("\n<meta:creation-date>" . "</meta:creation-date>") date)
+ (org-odt-format-tags '("\n<meta:generator>" . "</meta:generator>")
+ (when org-export-creator-info
+ (format "Org-%s/Emacs-%s"
+ org-version emacs-version)))
+ (org-odt-format-tags '("\n<meta:keyword>" . "</meta:keyword>") keywords)
+ (org-odt-format-tags '("\n<dc:subject>" . "</dc:subject>") description)
+ (org-odt-format-tags '("\n<dc:title>" . "</dc:title>") title)
+ "\n"
+ " </office:meta>" "</office:document-meta>")
nil (expand-file-name "meta.xml")))
;; create a manifest entry for meta.xml
(replace-match ""))))
(defcustom org-export-odt-convert-processes
- '(("BasicODConverter"
- ("soffice" "-norestore" "-invisible" "-headless"
- "\"macro:///BasicODConverter.Main.Convert(%I,%f,%O)\""))
+ '(("LibreOffice"
+ "soffice --headless --convert-to %f%x --outdir %d %i")
("unoconv"
- ("unoconv" "-f" "%f" "-o" "%d" "%i")))
+ "unoconv -f %f -o %d %i"))
"Specify a list of document converters and their usage.
The converters in this list are offered as choices while
customizing `org-export-odt-convert-process'.
-This variable is an alist where each element is of the
-form (CONVERTER-NAME CONVERTER-PROCESS). CONVERTER-NAME is name
-of the converter. CONVERTER-PROCESS specifies the command-line
-syntax of the converter and is of the form (CONVERTER-PROGRAM
-ARG1 ARG2 ...). CONVERTER-PROGRAM is the name of the executable.
-ARG1, ARG2 etc are command line options that are passed to
-CONVERTER-PROGRAM. Format specifiers can be used in the ARGs and
-they are interpreted as below:
+This variable is a list where each element is of the
+form (CONVERTER-NAME CONVERTER-CMD). CONVERTER-NAME is the name
+of the converter. CONVERTER-CMD is the shell command for the
+converter and can contain format specifiers. These format
+specifiers are interpreted as below:
%i input file name in full
%I input file name as a URL
%o output file name in full
%O output file name as a URL
%d output dir in full
-%D output dir as a URL."
+%D output dir as a URL.
+%x extra options as set in `org-export-odt-convert-capabilities'."
:group 'org-export-odt
+ :version "24.1"
:type
'(choice
(const :tag "None" nil)
(alist :tag "Converters"
:key-type (string :tag "Converter Name")
- :value-type (group (cons (string :tag "Executable")
- (repeat (string :tag "Command line args")))))))
+ :value-type (group (string :tag "Command line")))))
-(defcustom org-export-odt-convert-process nil
+(defcustom org-export-odt-convert-process "LibreOffice"
"Use this converter to convert from \"odt\" format to other formats.
During customization, the list of converter names are populated
from `org-export-odt-convert-processes'."
:group 'org-export-odt
+ :version "24.1"
:type '(choice :convert-widget
(lambda (w)
(apply 'widget-convert (widget-type w)
(defcustom org-export-odt-convert-capabilities
'(("Text"
- ("odt" "ott" "doc" "rtf")
- (("pdf" "pdf") ("odt" "odt") ("xhtml" "html") ("rtf" "rtf")
- ("ott" "ott") ("doc" "doc") ("ooxml" "xml") ("html" "html")))
+ ("odt" "ott" "doc" "rtf" "docx")
+ (("pdf" "pdf") ("odt" "odt") ("rtf" "rtf") ("ott" "ott")
+ ("doc" "doc" ":\"MS Word 97\"") ("docx" "docx") ("html" "html")))
("Web"
- ("html" "xhtml") (("pdf" "pdf") ("odt" "txt") ("html" "html")))
+ ("html")
+ (("pdf" "pdf") ("odt" "odt") ("html" "html")))
("Spreadsheet"
- ("ods" "ots" "xls" "csv")
- (("pdf" "pdf") ("ots" "ots") ("html" "html") ("csv" "csv")
- ("ods" "ods") ("xls" "xls") ("xhtml" "xhtml") ("ooxml" "xml")))
+ ("ods" "ots" "xls" "csv" "xlsx")
+ (("pdf" "pdf") ("ots" "ots") ("html" "html") ("csv" "csv") ("ods" "ods")
+ ("xls" "xls") ("xlsx" "xlsx")))
("Presentation"
- ("odp" "otp" "ppt")
- (("pdf" "pdf") ("swf" "swf") ("odp" "odp") ("xhtml" "xml")
- ("otp" "otp") ("ppt" "ppt") ("odg" "odg") ("html" "html"))))
+ ("odp" "otp" "ppt" "pptx")
+ (("pdf" "pdf") ("swf" "swf") ("odp" "odp") ("otp" "otp") ("ppt" "ppt")
+ ("pptx" "pptx") ("odg" "odg"))))
"Specify input and output formats of `org-export-odt-convert-process'.
More correctly, specify the set of input and output formats that
the user is actually interested in.
form (DOCUMENT-CLASS INPUT-FMT-LIST OUTPUT-FMT-ALIST).
INPUT-FMT-LIST is a list of INPUT-FMTs. OUTPUT-FMT-ALIST is an
alist where each element is of the form (OUTPUT-FMT
-OUTPUT-FILE-EXTENSION).
+OUTPUT-FILE-EXTENSION EXTRA-OPTIONS).
The variable is interpreted as follows:
`org-export-odt-convert-process' can take any document that is in
- It is used as the value of \"%f\" specifier in
`org-export-odt-convert-process'.
+EXTRA-OPTIONS is used as the value of \"%x\" specifier in
+`org-export-odt-convert-process'.
+
DOCUMENT-CLASS is used to group a set of file formats in
INPUT-FMT-LIST in to a single class.
See default setting of this variable for an typical
configuration."
:group 'org-export-odt
+ :version "24.1"
:type
'(choice
(const :tag "None" nil)
- (alist :key-type (string :tag "Document Class")
+ (alist :tag "Capabilities"
+ :key-type (string :tag "Document Class")
:value-type
(group (repeat :tag "Input formats" (string :tag "Input format"))
(alist :tag "Output formats"
:key-type (string :tag "Output format")
:value-type
- (group (string :tag "Output file extension")))))))
+ (group (string :tag "Output file extension")
+ (choice
+ (const :tag "None" nil)
+ (string :tag "Extra options"))))))))
(declare-function org-create-math-formula "org"
(latex-frag &optional mathml-file))
;; create a manifest entry for styles.xml
(org-odt-create-manifest-file-entry "text/xml" "styles.xml"))
-(defvar org-export-odt-factory-settings
- "d4328fb9d1b6cb211d4320ff546829f26700dc5e"
- "SHA1 hash of OrgOdtStyles.xml.")
-
(defun org-odt-configure-outline-numbering (level)
"Outline numbering is retained only upto LEVEL.
To disable outline numbering pass a LEVEL of 0."
(or (file-name-nondirectory buffer-file-name)))
"." "odf")
(file-name-directory buffer-file-name))))
- (message "default val is %s" odf-filename)
(read-file-name "ODF filename: " nil odf-filename nil
(file-name-nondirectory odf-filename)))))
(let* ((org-lparse-backend 'odf)
;;;###autoload
(defun org-export-as-odf-and-open ()
- "Export LaTeX fragment as OpenDocument formula and immediately open it.
+ "Export LaTeX fragment as OpenDocument formula and immediately open it.
Use `org-export-as-odf' to read LaTeX fragment and OpenDocument
formula file."
(interactive)
(re-search-backward "^[ \t]*#\\+\\([A-Z_]+\\):.*"
(line-beginning-position) t))
(cons "file-option" (match-string-no-properties 1)))
- ((string-match "\\`[ \t]*#\\+[a-zA-Z]*\\'" line-to-here)
+ ((string-match "\\`[ \t]*#\\+[a-zA-Z_]*\\'" line-to-here)
(cons "file-option" nil))
((equal (char-before beg) ?\[)
(cons "link" nil))
(if (string-match "^#\\+\\([A-Z_]+:?\\)" x)
(match-string 1 x)))
(org-split-string (org-get-current-options) "\n"))
- org-additional-option-like-keywords)))))
+ (copy-sequence org-additional-option-like-keywords))))))
(substring pcomplete-stub 2)))
(defvar org-startup-options)
;;; org-protocol.el --- Intercept calls from emacsclient to trigger custom actions.
-
-;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
-
-;; Author: Bastien Guerry <bzg AT gnu DOT org>
-;; Daniel M German <dmg AT uvic DOT org>
-;; Sebastian Rose <sebastian_rose AT gmx DOT de>
-;; Ross Patterson <me AT rpatterson DOT net>
+;;
+;; Copyright (C) 2008-2012 Free Software Foundation, Inc.
+;;
+;; Authors: Bastien Guerry <bzg AT gnu DOT org>
+;; Daniel M German <dmg AT uvic DOT org>
+;; Sebastian Rose <sebastian_rose AT gmx DOT de>
+;; Ross Patterson <me AT rpatterson DOT net>
;; Maintainer: Sebastian Rose <sebastian_rose AT gmx DOT de>
;; Keywords: org, emacsclient, wp
:type 'alist)
(defcustom org-protocol-protocol-alist nil
- "* Register custom handlers for org-protocol.
+ " Register custom handlers for org-protocol.
Each element of this list must be of the form:
You can overwrite this default per project in your
`org-publish-project-alist', using `:sitemap-sort-files'."
:group 'org-publish
+ :version "24.1"
:type 'symbol)
(defcustom org-publish-sitemap-sort-folders 'first
You can overwrite this default per project in your
`org-publish-project-alist', using `:sitemap-sort-folders'."
:group 'org-publish
+ :version "24.1"
:type 'symbol)
(defcustom org-publish-sitemap-sort-ignore-case nil
You can overwrite this default per project in your
`org-publish-project-alist', using `:sitemap-ignore-case'."
:group 'org-publish
+ :version "24.1"
:type 'boolean)
(defcustom org-publish-sitemap-date-format "%Y-%m-%d"
"Format for `format-time-string' which is used to print a date
in the sitemap."
:group 'org-publish
+ :version "24.1"
:type 'string)
(defcustom org-publish-sitemap-file-entry-format "%t"
%a is the author.
%d is the date formatted using `org-publish-sitemap-date-format'."
:group 'org-publish
+ :version "24.1"
:type 'string)
+;;; org-special-blocks.el --- handle Org special blocks
;; Copyright (C) 2009-2012 Free Software Foundation, Inc.
;; Author: Chris Gray <chrismgray@gmail.com>
(declare-function org-switch-to-buffer-other-window "org" (&rest args))
(declare-function org-pop-to-buffer-same-window
"org-compat" (&optional buffer-or-name norecord label))
+(declare-function org-strip-protective-commas "org" (beg end))
+(declare-function org-base-buffer "org" (buffer))
(defcustom org-edit-src-region-extra nil
"Additional regexps to identify regions for editing with `org-edit-src-code'.
(defcustom org-src-lang-modes
'(("ocaml" . tuareg) ("elisp" . emacs-lisp) ("ditaa" . artist)
("asymptote" . asy) ("dot" . fundamental) ("sqlite" . sql)
- ("calc" . fundamental) ("C" . c) ("cpp" . c++))
+ ("calc" . fundamental) ("C" . c) ("cpp" . c++)
+ ("screen" . shell-script))
"Alist mapping languages to their major mode.
The key is the language name, the value is the string that should
be inserted as the name of the major mode. For many languages this is
(interactive)
(unless (eq context 'save)
(setq org-edit-src-saved-temp-window-config (current-window-configuration)))
- (let ((mark (and (org-region-active-p) (mark)))
- (case-fold-search t)
- (info (org-edit-src-find-region-and-lang))
- (full-info (org-babel-get-src-block-info))
- (org-mode-p (derived-mode-p 'org-mode)) ;; derived-mode-p is reflexive
- (beg (make-marker))
- (end (make-marker))
- (allow-write-back-p (null code))
- block-nindent total-nindent ovl lang lang-f single lfmt buffer msg
- begline markline markcol line col transmitted-variables)
+ (let* ((mark (and (org-region-active-p) (mark)))
+ (case-fold-search t)
+ (info (org-edit-src-find-region-and-lang))
+ (full-info (org-babel-get-src-block-info 'light))
+ (org-mode-p (derived-mode-p 'org-mode)) ;; derived-mode-p is reflexive
+ (beg (make-marker))
+ (end (make-marker))
+ (allow-write-back-p (null code))
+ block-nindent total-nindent ovl lang lang-f single lfmt buffer msg
+ begline markline markcol line col transmitted-variables)
(if (not info)
nil
(setq beg (move-marker beg (nth 0 info))
(error "Language mode `%s' fails with: %S" lang-f (nth 1 e)))))
(dolist (pair transmitted-variables)
(org-set-local (car pair) (cadr pair)))
- (when (eq major-mode 'org-mode)
- (goto-char (point-min))
- (while (re-search-forward "^," nil t)
- (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent)))
- (replace-match "")))
+ (if (eq major-mode 'org-mode)
+ (progn
+ (goto-char (point-min))
+ (while (re-search-forward "^," nil t)
+ (if (eq (org-current-line) line) (setq total-nindent (1+ total-nindent)))
+ (replace-match "")))
+ (org-strip-protective-commas (point-min) (point-max)))
(when markline
(org-goto-line (1+ (- markline begline)))
(org-move-to-column
"Construct the buffer name for a source editing buffer."
(concat "*Org Src " org-buffer-name "[ " lang " ]*"))
+(defun org-src-edit-buffer-p (&optional buffer)
+ "Test whether BUFFER (or the current buffer if BUFFER is nil)
+is a source block editing buffer."
+ (let ((buffer (org-base-buffer (or buffer (current-buffer)))))
+ (and (buffer-name buffer)
+ (string-match "\\`*Org Src " (buffer-name buffer))
+ (local-variable-p 'org-edit-src-beg-marker buffer)
+ (local-variable-p 'org-edit-src-end-marker buffer))))
+
(defun org-edit-src-find-buffer (beg end)
"Find a source editing buffer that is already editing the region BEG to END."
(catch 'exit
"If non-nil, the effect of TAB in a code block is as if it were
issued in the language major mode buffer."
:type 'boolean
+ :version "24.1"
:group 'org-babel)
(defun org-src-native-tab-command-maybe ()
except maybe locally in a special file that has mostly tables with long
fields."
:group 'org-table
+ :version "24.1"
:type 'boolean)
(defcustom org-table-fix-formulas-confirm nil
"Whether the user should confirm when Org fixes formulas."
:group 'org-table-editing
+ :version "24.1"
:type '(choice
(const :tag "with yes-or-no" yes-or-no-p)
(const :tag "with y-or-n" y-or-n-p)
'days, and the output will be a fraction of seconds, minutes or
days."
:group 'org-table-calculation
+ :version "24.1"
:type '(choice (symbol :tag "Seconds" 'seconds)
(symbol :tag "Minutes" 'minutes)
(symbol :tag "Hours " 'hours)
characters. Beware that modifying the display can prevent the
field from being used in another formula."
:group 'org-table-settings
+ :version "24.1"
:type 'string)
(defcustom org-table-formula-evaluate-inline t
(defun org-table-line-to-dline (line &optional above)
"Turn a buffer line number into a data line number.
If there is no data line in this line, return nil.
-If there is no matching dline (most likely the reference was a hline), the
+If there is no matching dline (most likely te reference was a hline), the
first dline below it is used. When ABOVE is non-nil, the one above is used."
(catch 'exit
(let ((ll (length org-table-dlines))
(looking-at org-table-auto-recalculate-regexp))
(org-table-recalculate) t))
-(defvar modes)
+(defvar org-table-modes)
(defsubst org-set-calc-mode (var &optional value)
(if (stringp var)
(setq var (assoc var '(("D" calc-angle-mode deg)
("F" calc-prefer-frac t)
("S" calc-symbolic-mode t)))
value (nth 2 var) var (nth 1 var)))
- (if (memq var modes)
- (setcar (cdr (memq var modes)) value)
- (cons var (cons value modes)))
- modes)
+ (if (memq var org-table-modes)
+ (setcar (cdr (memq var org-table-modes)) value)
+ (cons var (cons value org-table-modes)))
+ org-table-modes)
(defun org-table-eval-formula (&optional arg equation
suppress-align suppress-const
(replace-match
(save-match-data
(org-table-make-reference
- (org-table-get-remote-range
- (match-string 1 form) (match-string 2 form))
+ (let ((rmtrng (org-table-get-remote-range
+ (match-string 1 form) (match-string 2 form))))
+ (if duration
+ (if (listp rmtrng)
+ (mapcar (lambda(x) (org-table-time-string-to-seconds x)) rmtrng)
+ (org-table-time-string-to-seconds rmtrng))
+ rmtrng))
keep-empty numbers lispp))
t t form)))
;; Insert complex ranges
; (setq r2 (or r2 r1) c2 (or c2 c1))
(if (not r1) (setq r1 thisline))
(if (not r2) (setq r2 thisline))
- (if (not c1) (setq c1 col))
- (if (not c2) (setq c2 col))
+ (if (or (not c1) (= 0 c1)) (setq c1 col))
+ (if (or (not c2) (= 0 c2)) (setq c2 col))
(if (and (not corners-only)
(or (not rangep) (and (= r1 r2) (= c1 c2))))
;; just one field
(looking-at "[^|\n]* +|"))
(let (org-table-may-need-update)
(goto-char (1- (match-end 0)))
- (delete-char -1)
+ (backward-delete-char 1)
(goto-char (match-beginning 0))
(self-insert-command N))
(setq org-table-may-need-update t)
(defcustom org-export-taskjuggler-extension ".tjp"
"Extension of TaskJuggler files."
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'string)
(defcustom org-export-taskjuggler-project-tag "taskjuggler_project"
"Tag, property or todo used to find the tree containing all
the tasks for the project."
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'string)
(defcustom org-export-taskjuggler-resource-tag "taskjuggler_resource"
"Tag, property or todo used to find the tree containing all the
resources for the project."
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'string)
(defcustom org-export-taskjuggler-target-version 2.4
"Which version of TaskJuggler the exporter is targeting."
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'number)
(defcustom org-export-taskjuggler-default-project-version "1.0"
"Default version string for the project."
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'string)
(defcustom org-export-taskjuggler-default-project-duration 280
in the root node of the task tree, i.e. the tree that has been marked
with `org-export-taskjuggler-project-tag'"
:group 'org-export-taskjuggler
+ :version "24.1"
:type 'integer)
(defcustom org-export-taskjuggler-default-reports
}")
"Default reports for the project."
:group 'org-export-taskjuggler
+ :version "24.1"
:type '(repeat (string :tag "Report")))
(defcustom org-export-taskjuggler-default-global-properties
The global properties are inserted after the project declaration
but before any resource and task declarations."
:group 'org-export-taskjuggler
+ :version "24.1"
:type '(string :tag "Preamble"))
;;; Hooks
"The default timer when a timer is set.
When 0, the user is prompted for a value."
:group 'org-time
+ :version "24.1"
:type 'number)
(defvar org-timer-start-hook nil
(defcustom org-wl-link-remove-filter nil
"Remove filter condition if message is filter folder."
:group 'org-wl
+ :version "24.1"
:type 'boolean)
(defcustom org-wl-shimbun-prefer-web-links nil
"If non-nil create web links for shimbun messages."
:group 'org-wl
+ :version "24.1"
:type 'boolean)
(defcustom org-wl-nntp-prefer-web-links nil
When folder name contains string \"gmane\" link to gmane,
googlegroups otherwise."
:type 'boolean
+ :version "24.1"
:group 'org-wl)
(defcustom org-wl-disable-folder-check t
"Disable check for new messages when open a link."
:type 'boolean
+ :version "24.1"
:group 'org-wl)
(defcustom org-wl-namazu-default-index nil
"Default namazu search index."
:type 'directory
+ :version "24.1"
:group 'org-wl)
;; Declare external functions and variables
;;; org-xoxo.el --- XOXO export for Org-mode
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;;; org.el --- Outline-based notes management and organizer
;; Carstens outline-mode for keeping track of everything.
-;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2004-2012 Free Software Foundation, Inc.
;;
;; Author: Carsten Dominik <carsten at orgmode dot org>
;; Maintainer: Bastien Guerry <bzg at gnu dot org>
;; Keywords: outlines, hypermedia, calendar, wp
;; Homepage: http://orgmode.org
-;; Version: 7.8.03
+;; Version: 7.8.09
;;
;; This file is part of GNU Emacs.
;;
(require 'gnus-sum))
(require 'calendar)
+(require 'format-spec)
;; Emacs 22 calendar compatibility: Make sure the new variables are available
(when (fboundp 'defvaralias)
requirements) is loaded."
:group 'org-babel
:set 'org-babel-do-load-languages
+ :version "24.1"
:type '(alist :tag "Babel Languages"
:key-type
(choice
Otherwise they inherit the ID property with a new unique
identifier."
:type 'boolean
+ :version "24.1"
:group 'org-id)
;;; Version
-(defconst org-version "7.8.03"
+(defconst org-version "7.8.09"
"The version number of the file org.el.")
+;;;###autoload
(defun org-version (&optional here)
"Show the org-mode version in the echo area.
With prefix arg HERE, insert it at point."
(defcustom org-log-buffer-setup-hook nil
"Hook that is run after an Org log buffer is created."
:group 'org
+ :version "24.1"
:type 'hook)
(defvar org-modules) ; defined below
(const :tag "All headlines in active region" t)
(const :tag "In active region, headlines at the same level than the first one" 'start-level)
(string :tag "Tags/Property/Todo matcher"))
+ :version "24.1"
:group 'org-todo
:group 'org-archive)
This option can also be set with the +OPTIONS line, e.g. \"^:nil\"."
:group 'org-startup
:group 'org-export-translation
+ :version "24.1"
:type '(choice
(const :tag "Always interpret" t)
(const :tag "Only with braces" {})
#+STARTUP: beamer"
:group 'org-startup
+ :version "24.1"
:type 'boolean)
(defcustom org-startup-align-all-tables nil
#+STARTUP: inlineimages
#+STARTUP: noinlineimages"
:group 'org-startup
+ :version "24.1"
:type 'boolean)
(defcustom org-insert-mode-line-in-empty-file nil
Any other non-nil value will result in a query to the user, if it is
OK to kill that hidden subtree. When nil, kill without remorse."
:group 'org-edit-structure
+ :version "24.1"
:type '(choice
(const :tag "Do not protect hidden subtrees" nil)
(const :tag "Protect hidden subtrees with a security query" t)
allows insertion and backward-delete right before ellipses.
FIXME: maybe in this case we should not even show?"
:group 'org-edit-structure
+ :version "24.1"
:type '(choice
(const :tag "Do not check" nil)
(const :tag "Throw error when trying to edit" error)
When nil, the link search tries to match a phrase with all words
in the search text."
:group 'org-link-follow
+ :version "24.1"
:type '(choice
(const :tag "Use fuzzy text search" nil)
(const :tag "Match only exact headline" t)
(defcustom org-confirm-shell-link-not-regexp ""
"A regexp to skip confirmation for shell links."
:group 'org-link-follow
+ :version "24.1"
:type 'regexp)
(defcustom org-confirm-elisp-link-function 'yes-or-no-p
(defcustom org-confirm-elisp-link-not-regexp ""
"A regexp to skip confirmation for Elisp links."
:group 'org-link-follow
+ :version "24.1"
:type 'regexp)
(defconst org-file-apps-defaults-gnu
will temporarily be changed to `time'."
:group 'org-refile
:group 'org-progress
+ :version "24.1"
:type '(choice
(const :tag "No logging" nil)
(const :tag "Record timestamp" time)
you need to clear the cache manually by pressing `C-0 C-c C-w' or, if you
find that easier, `C-u C-u C-u C-c C-w'."
:group 'org-refile
+ :version "24.1"
:type 'boolean)
(defcustom org-refile-use-outline-path nil
do so sometimes: in that case, the first line of the region is
converted to a headline before refiling."
:group 'org-refile
+ :version "24.1"
:type 'boolean)
(defgroup org-todo nil
(defcustom org-after-todo-state-change-hook nil
"Hook which is run after the state of a TODO item was changed.
The new state (a string with a TODO keyword, or nil) is available in the
-Lisp variable `state'."
+Lisp variable `org-state'."
:group 'org-todo
:type 'hook)
Also, if a parent has an :ORDERED: property, switching an entry to DONE will
be blocked if any prior sibling is not yet done.
Finally, if the parent is blocked because of ordered siblings of its own,
-the child will also be blocked.
-This variable needs to be set before org.el is loaded, and you need to
-restart Emacs after a change to make the change effective. The only way
-to change is while Emacs is running is through the customize interface."
+the child will also be blocked."
:set (lambda (var val)
(set var val)
(if val
in a TODO_TYP set. But you can specify another task here.
alternatively, set the :REPEAT_TO_STATE: property of the entry."
:group 'org-todo
+ :version "24.1"
:type '(choice (const :tag "Head of sequence" nil)
(string :tag "Specific state")))
The user can set a different function here, which should take a string
as an argument and return the numeric priority."
:group 'org-priorities
+ :version "24.1"
:type 'function)
(defgroup org-time nil
This may t or nil, or the symbol `org-read-date-prefer-future'."
:group 'org-agenda
:group 'org-time
+ :version "24.1"
:type '(choice
(const :tag "Use org-read-date-prefer-future"
org-read-date-prefer-future)
A workaround for this problem is to use diary sexp dates for time
stamps outside of this range."
:group 'org-time
+ :version "24.1"
:type 'boolean)
(defcustom org-read-date-display-live t
For example, if `org-extend-today-until' is 8, and it's 4am, then the
\"effective time\" of any timestamps between midnight and 8am will be
23:59 of the previous day."
- :group 'boolean
- :type 'integer)
+ :group 'org-time
+ :version "24.1"
+ :type 'boolean)
(defcustom org-edit-timestamp-down-means-later nil
"Non-nil means S-down will increase the time in a time stamp.
'org-complete-tags-always-offer-all-agenda-tags)
t)))"
:group 'org-tags
+ :version "24.1"
:type 'boolean)
(defvar org-file-tags nil
(org-entry-get (point) \"Effort\"))))
(org-minutes-to-hh:mm-string (- effort clocksum))))))"
:group 'org-properties
+ :version "24.1"
:type 'alist)
(defcustom org-use-property-inheritance nil
"Non-nil means signal an error when image creation of LaTeX snippets fails.
When nil, just push out a message."
:group 'org-latex
+ :version "24.1"
:type 'boolean)
(defcustom org-latex-to-mathml-jar-file nil
"Value of\"%j\" in `org-latex-to-mathml-convert-command'.
When using MathToWeb as the converter, specify the full-path to
your mathtoweb.jar file."
:group 'org-latex
+ :version "24.1"
:type '(choice
(const :tag "None" nil)
(file :tag "JAR file" :must-match t)))
When using MathToWeb as the converter, set this to
\"java -jar %j -unicode -force -df %o %I\"."
:group 'org-latex
+ :version "24.1"
:type '(choice
(const :tag "None" nil)
(string :tag "\nShell command")))
:group 'org-export-latex
:set 'org-set-packages-alist
:get 'org-get-packages-alist
+ :version "24.1"
:type '(repeat
(choice
(list :tag "options/package pair"
For example, a value '(title) for this list will make the document's title
appear in the buffer without the initial #+TITLE: keyword."
:group 'org-appearance
+ :version "24.1"
:type '(set (const :tag "#+AUTHOR" author)
(const :tag "#+DATE" date)
(const :tag "#+EMAIL" email)
"Non-nil means show entities as UTF8 characters.
When nil, the \\name form remains in the buffer."
:group 'org-appearance
+ :version "24.1"
:type 'boolean)
(defcustom org-pretty-entities-include-sub-superscripts t
"Non-nil means, pretty entity display includes formatting sub/superscripts."
:group 'org-appearance
+ :version "24.1"
:type 'boolean)
(defvar org-emph-re nil
(defun org-update-property-plist (key val props)
"Update PROPS with KEY and VAL."
- (if (string= "+" (substring key (- (length key) 1)))
- (let* ((key (substring key 0 (- (length key) 1)))
- (previous (cdr (assoc key props))))
- (cons (cons key (concat previous " " val))
- (org-remove-if (lambda (p) (string= (car p) key)) props)))
- (cons (cons key val) props)))
+ (let* ((appending (string= "+" (substring key (- (length key) 1))))
+ (key (if appending (substring key 0 (- (length key) 1)) key))
+ (remainder (org-remove-if (lambda (p) (string= (car p) key)) props))
+ (previous (cdr (assoc key props))))
+ (if appending
+ (cons (cons key (if previous (concat previous " " val) val)) remainder)
+ (cons (cons key val) remainder))))
(defconst org-block-regexp
"^[ \t]*#\\+begin_?\\([^ \n]+\\)\\(\\([^\n]+\\)\\)?\n\\([^\000]+?\\)#\\+end_?\\1[ \t]*$"
;; FIXME: Occasionally check by commenting these, to make sure
;; no other functions uses these, forgetting to let-bind them.
(defvar entry)
-(defvar last-state)
+(defvar org-last-state)
(defvar date)
;; Defined somewhere in this file, but used before definition.
"Matches an headline, putting stars and text into groups.
Stars are put in group 1 and the trimmed body in group 2.")
+(defvar buffer-face-mode-face)
+
;;;###autoload
(define-derived-mode org-mode outline-mode "Org"
"Outline-based notes management and organizer, alias
(set (make-local-variable 'pcomplete-parse-arguments-function)
'org-parse-arguments)
(set (make-local-variable 'pcomplete-termination-string) "")
- (set (make-local-variable 'face-remapping-alist)
- '((default org-default)))
+ (when (>= emacs-major-version 23)
+ (set (make-local-variable 'buffer-face-mode-face) 'org-default)
+ (buffer-face-mode))
;; If empty file that did not turn on org-mode automatically, make it to.
(if (and org-insert-mode-line-in-empty-file
(defcustom org-src-fontify-natively nil
"When non-nil, fontify code in code blocks."
:type 'boolean
+ :version "24.1"
:group 'org-appearance
:group 'org-babel)
(when (re-search-forward
(concat "^[ \t]*#\\+end" (match-string 4) "\\>.*")
nil t) ;; on purpose, we look further than LIMIT
- (setq end (match-end 0) end1 (1- (match-beginning 0)))
+ (setq end (min (point-max) (match-end 0))
+ end1 (min (point-max) (1- (match-beginning 0))))
(setq block-end (match-beginning 0))
(when quoting
(remove-text-properties beg end
'(face org-block))) ; end of source block
((not org-fontify-quote-and-verse-blocks))
((string= block-type "quote")
- (add-text-properties beg1 (1+ end1) '(face org-quote)))
+ (add-text-properties beg1 (min (point-max) (1+ end1)) '(face org-quote)))
((string= block-type "verse")
- (add-text-properties beg1 (1+ end1) '(face org-verse))))
+ (add-text-properties beg1 (min (point-max) (1+ end1)) '(face org-verse))))
(add-text-properties beg beg1 '(face org-block-begin-line))
- (add-text-properties (1+ end) (1+ end1) '(face org-block-end-line))
+ (add-text-properties (min (point-max) (1+ end)) (min (point-max) (1+ end1))
+ '(face org-block-end-line))
t))
((member dc1 '("title:" "author:" "email:" "date:"))
(add-text-properties
((not (member (char-after beg) '(?\ ?\t)))
;; just any other in-buffer setting, but not indented
(add-text-properties
- beg (1+ (match-end 0))
+ beg (match-end 0)
'(font-lock-fontified t face org-meta-line))
t)
((or (member dc1 '("begin:" "end:" "caption:" "label:"
'(font-lock-fontified t face font-lock-comment-face)))
(t nil))))))
+(defun org-strip-protective-commas (beg end)
+ "Strip protective commas between BEG and END in the current buffer."
+ (interactive "r")
+ (save-excursion
+ (save-match-data
+ (goto-char beg)
+ (let ((front-line (save-excursion
+ (re-search-forward
+ "[^[:space:]]" end t)
+ (goto-char (match-beginning 0))
+ (current-column))))
+ (while (re-search-forward "^[ \t]*\\(,\\)\\([*]\\|#\\+\\)" end t)
+ (goto-char (match-beginning 1))
+ (when (= (current-column) front-line)
+ (replace-match "" nil nil nil 1)))))))
+
(defun org-activate-angle-links (limit)
"Run through the buffer and add overlays to links."
(if (re-search-forward org-angle-link-re limit t)
(if org-fontify-done-headline
(list (format org-heading-keyword-regexp-format
(concat
- "\\("
+ "\\(?:"
(mapconcat 'regexp-quote org-done-keywords "\\|")
"\\)"))
'(2 'org-headline-done t))
(if (org-at-item-p)
(org-list-set-item-visibility (point-at-bol) struct 'children)
(org-show-entry)
- (show-children)
+ (org-with-limited-levels (show-children))
+ ;; FIXME: This slows down the func way too much.
+ ;; How keep drawers hidden in subtree anyway?
+ ;; (when (memq 'org-cycle-hide-drawers org-cycle-hook)
+ ;; (org-cycle-hide-drawers 'subtree))
+
;; Fold every list in subtree to top-level items.
(when (eq org-cycle-include-plain-lists 'integrate)
(save-excursion
in an indirect buffer, in overview mode. You can dive into the tree in
that copy, use org-occur and incremental search to find a location.
When pressing RET or `Q', the command returns to the original buffer in
-which the visibility is still unchanged. After RET is will also jump to
+which the visibility is still unchanged. After RET it will also jump to
the location selected in the indirect buffer and expose the headline
hierarchy above."
(interactive "P")
(selected-point
(if (eq interface 'outline)
(car (org-get-location (current-buffer) org-goto-help))
- (let ((pa (org-refile-get-location "Goto")))
+ (let ((pa (org-refile-get-location "Goto" nil nil t)))
(org-refile-check-position pa)
(nth 3 pa)))))
(if selected-point
repeater intact.
- the start days in the repeater in the original entry will be shifted
to past the last clone.
-I this way you can spell out a number of instances of a repeating task,
+In this way you can spell out a number of instances of a repeating task,
and still retain the repeater to cover future instances of the task."
(interactive "nNumber of clones to produce: \nsDate shift per clone (e.g. +1w, empty to copy unchanged): ")
(let (beg end template task idprop
(setq end (point))
(setq template (buffer-substring beg end))
(when (and doshift
- (string-match "<[^<>\n]+ \\+[0-9]+[dwmy][^<>\n]*>" template))
+ (string-match "<[^<>\n]+ [.+]?\\+[0-9]+[dwmy][^<>\n]*>" template))
(delete-region beg end)
(setq end beg)
(setq nmin 0 nmax (1+ nmax) n-no-remove nmax))
(while (re-search-forward org-ts-regexp nil t)
(save-excursion
(goto-char (match-beginning 0))
- (if (looking-at "<[^<>\n]+\\( +\\+[0-9]+[dwmy]\\)")
+ (if (looking-at "<[^<>\n]+\\( +[.+]?\\+[0-9]+[dwmy]\\)")
(delete-region (match-beginning 1) (match-end 1)))))))
(setq task (buffer-string)))
(insert task))
(defun org-sort (with-case)
"Call `org-sort-entries', `org-table-sort-lines' or `org-sort-list'.
-Optional argument WITH-CASE means sort case-sensitively.
-With a double prefix argument, also remove duplicate entries."
+Optional argument WITH-CASE means sort case-sensitively."
(interactive "P")
(cond
((org-at-table-p) (org-call-with-arg 'org-table-sort-lines with-case))
(defun org-get-category (&optional pos force-refresh)
"Get the category applying to position POS."
- (if force-refresh (org-refresh-category-properties))
- (let ((pos (or pos (point))))
- (or (get-text-property pos 'org-category)
- (progn (org-refresh-category-properties)
- (get-text-property pos 'org-category)))))
+ (save-match-data
+ (if force-refresh (org-refresh-category-properties))
+ (let ((pos (or pos (point))))
+ (or (get-text-property pos 'org-category)
+ (progn (org-refresh-category-properties)
+ (get-text-property pos 'org-category))))))
(defun org-refresh-category-properties ()
"Refresh category text properties in the buffer."
(setq link (plist-get org-store-link-plist :link)
desc (or (plist-get org-store-link-plist :description) link)))
- ((equal (buffer-name) "*Org Edit Src Example*")
+ ((org-src-edit-buffer-p)
(let (label gc)
(while (or (not label)
(save-excursion
(interactive "sLink: \nP")
(let ((reference-buffer (or reference-buffer (current-buffer))))
(with-temp-buffer
- (let ((org-inhibit-startup t))
+ (let ((org-inhibit-startup (not reference-buffer)))
(org-mode)
(insert s)
(goto-char (point-min))
(t (concat "Refile subtree \""
heading-text "\" to")))
default-buffer
- org-refile-allow-creating-parent-nodes
+ (and (not (equal '(4) goto))
+ org-refile-allow-creating-parent-nodes)
goto))))))
(setq file (nth 1 it)
re (nth 2 it)
"<example>\n?\n</example>")
("q" "#+begin_quote\n?\n#+end_quote"
"<quote>\n?\n</quote>")
- ("v" "#+begin_verse\n?\n#+end_verse"
- "<verse>\n?\n/verse>")
- ("c" "#+begin_center\n?\n#+end_center"
- "<center>\n?\n/center>")
- ("l" "#+begin_latex\n?\n#+end_latex"
+ ("v" "#+BEGIN_VERSE\n?\n#+END_VERSE"
+ "<verse>\n?\n</verse>")
+ ("c" "#+BEGIN_CENTER\n?\n#+END_CENTER"
+ "<center>\n?\n</center>")
+ ("l" "#+BEGIN_LaTeX\n?\n#+END_LaTeX"
"<literal style=\"latex\">\n?\n</literal>")
("L" "#+latex: "
"<literal style=\"latex\">?</literal>")
(interpret (nth 1 ass))
(done-word (nth 3 ass))
(final-done-word (nth 4 ass))
- (last-state (or this ""))
+ (org-last-state (or this ""))
(completion-ignore-case t)
(member (member this org-todo-keywords-1))
(tail (cdr member))
- (state (cond
- ((and org-todo-key-trigger
- (or (and (equal arg '(4))
- (eq org-use-fast-todo-selection 'prefix))
- (and (not arg) org-use-fast-todo-selection
- (not (eq org-use-fast-todo-selection
- 'prefix)))))
- ;; Use fast selection
- (org-fast-todo-selection))
- ((and (equal arg '(4))
- (or (not org-use-fast-todo-selection)
- (not org-todo-key-trigger)))
+ (org-state (cond
+ ((and org-todo-key-trigger
+ (or (and (equal arg '(4))
+ (eq org-use-fast-todo-selection 'prefix))
+ (and (not arg) org-use-fast-todo-selection
+ (not (eq org-use-fast-todo-selection
+ 'prefix)))))
+ ;; Use fast selection
+ (org-fast-todo-selection))
+ ((and (equal arg '(4))
+ (or (not org-use-fast-todo-selection)
+ (not org-todo-key-trigger)))
;; Read a state with completion
(org-icompleting-read
"State: " (mapcar (lambda(x) (list x))
nil)))
(t
(car tail))))
- (state (or
- (run-hook-with-args-until-success
- 'org-todo-get-default-hook state last-state)
- state))
- (next (if state (concat " " state " ") " "))
- (change-plist (list :type 'todo-state-change :from this :to state
+ (org-state (or
+ (run-hook-with-args-until-success
+ 'org-todo-get-default-hook org-state org-last-state)
+ org-state))
+ (next (if org-state (concat " " org-state " ") " "))
+ (change-plist (list :type 'todo-state-change :from this :to org-state
:position startpos))
dolog now-done-p)
(when org-blocker-hook
(run-hook-with-args-until-failure
'org-blocker-hook change-plist))))
(if (org-called-interactively-p 'interactive)
- (error "TODO state change from %s to %s blocked" this state)
+ (error "TODO state change from %s to %s blocked" this org-state)
;; fail silently
- (message "TODO state change from %s to %s blocked" this state)
+ (message "TODO state change from %s to %s blocked" this org-state)
(throw 'exit nil))))
(store-match-data match-data)
(replace-match next t t)
(unless (pos-visible-in-window-p hl-pos)
(message "TODO state changed to %s" (org-trim next)))
(unless head
- (setq head (org-get-todo-sequence-head state)
+ (setq head (org-get-todo-sequence-head org-state)
ass (assoc head org-todo-kwd-alist)
interpret (nth 1 ass)
done-word (nth 3 ass)
(when (memq arg '(nextset previousset))
(message "Keyword-Set %d/%d: %s"
(- (length org-todo-sets) -1
- (length (memq (assoc state org-todo-sets) org-todo-sets)))
+ (length (memq (assoc org-state org-todo-sets) org-todo-sets)))
(length org-todo-sets)
- (mapconcat 'identity (assoc state org-todo-sets) " ")))
+ (mapconcat 'identity (assoc org-state org-todo-sets) " ")))
(setq org-last-todo-state-is-todo
- (not (member state org-done-keywords)))
- (setq now-done-p (and (member state org-done-keywords)
+ (not (member org-state org-done-keywords)))
+ (setq now-done-p (and (member org-state org-done-keywords)
(not (member this org-done-keywords))))
(and logging (org-local-logging logging))
(when (and (or org-todo-log-states org-log-done)
(not (eq org-inhibit-logging t))
(not (memq arg '(nextset previousset))))
;; we need to look at recording a time and note
- (setq dolog (or (nth 1 (assoc state org-todo-log-states))
+ (setq dolog (or (nth 1 (assoc org-state org-todo-log-states))
(nth 2 (assoc this org-todo-log-states))))
(if (and (eq dolog 'note) (eq org-inhibit-logging 'note))
(setq dolog 'time))
- (when (and state
- (member state org-not-done-keywords)
+ (when (and org-state
+ (member org-state org-not-done-keywords)
(not (member this org-not-done-keywords)))
;; This is now a todo state and was not one before
;; If there was a CLOSED time stamp, get rid of it.
;; It is now done, and it was not done before
(org-add-planning-info 'closed (org-current-effective-time))
(if (and (not dolog) (eq 'note org-log-done))
- (org-add-log-setup 'done state this 'findpos 'note)))
- (when (and state dolog)
+ (org-add-log-setup 'done org-state this 'findpos 'note)))
+ (when (and org-state dolog)
;; This is a non-nil state, and we need to log it
- (org-add-log-setup 'state state this 'findpos dolog)))
+ (org-add-log-setup 'state org-state this 'findpos dolog)))
;; Fixup tag positioning
- (org-todo-trigger-tag-changes state)
+ (org-todo-trigger-tag-changes org-state)
(and org-auto-align-tags (not org-setting-tags) (org-set-tags nil t))
(when org-provide-todo-statistics
(org-update-parent-todo-statistics))
(run-hooks 'org-after-todo-state-change-hook)
- (if (and arg (not (member state org-done-keywords)))
- (setq head (org-get-todo-sequence-head state)))
+ (if (and arg (not (member org-state org-done-keywords)))
+ (setq head (org-get-todo-sequence-head org-state)))
(put-text-property (point-at-bol) (point-at-eol) 'org-todo-head head)
;; Do we need to trigger a repeat?
(when now-done-p
(save-match-data
(setq org-agenda-headline-snapshot-before-repeat
(org-get-heading))))
- (org-auto-repeat-maybe state))
+ (org-auto-repeat-maybe org-state))
;; Fixup cursor location if close to the keyword
(if (and (outline-on-heading-p)
(not (bolp))
This function is run automatically after each state change to a DONE state."
;; last-state is dynamically scoped into this function
(let* ((repeat (org-get-repeat))
- (aa (assoc last-state org-todo-kwd-alist))
+ (aa (assoc org-last-state org-todo-kwd-alist))
(interpret (nth 1 aa))
(head (nth 2 aa))
(whata '(("d" . day) ("m" . month) ("y" . year)))
(setq to-state (or (org-entry-get nil "REPEAT_TO_STATE")
org-todo-repeat-to-state))
(unless (and to-state (member to-state org-todo-keywords-1))
- (setq to-state (if (eq interpret 'type) last-state head)))
+ (setq to-state (if (eq interpret 'type) org-last-state head)))
(org-todo to-state)
(when (or org-log-repeat (org-entry-get nil "CLOCK"))
(org-entry-put nil "LAST_REPEAT" (format-time-string
(setq org-log-note-how 'note))
;; Set up for taking a record
(org-add-log-setup 'state (or done-word (car org-done-keywords))
- last-state
+ org-last-state
'findpos org-log-repeat)))
(org-back-to-heading t)
(org-add-planning-info nil nil 'closed)
a file becomes an N^2 operation - but with this variable set, it scales
as N.")
-(defun org-scan-tags (action matcher &optional todo-only start-level)
+(defun org-scan-tags (action matcher todo-only &optional start-level)
"Scan headline tags with inheritance and produce output ACTION.
ACTION can be `sparse-tree' to produce a sparse tree in the current buffer,
MATCHER is a Lisp form to be evaluated, testing if a given set of tags
qualifies a headline for inclusion. When TODO-ONLY is non-nil,
-only lines with a TODO keyword are included in the output.
+only lines with a not-done TODO keyword are included in the output.
+This should be the same variable that was scoped into
+and set by `org-make-tags-matcher' when it constructed MATCHER.
START-LEVEL can be a string with asterisks, reducing the scope to
headlines matching this string."
(and org-highlight-sparse-tree-matches
(org-get-heading) (match-end 0)
(org-highlight-new-match
- (match-beginning 0) (match-beginning 1)))
+ (match-beginning 1) (match-end 1)))
(org-show-context 'tags-tree))
((eq action 'agenda)
(setq txt (org-agenda-format-item
(if (member x org-use-tag-inheritance) x nil))
tags)))))
-(defvar todo-only) ;; dynamically scoped
-
(defun org-match-sparse-tree (&optional todo-only match)
"Create a sparse tree according to tags string MATCH.
MATCH can contain positive and negative selection of tags, like
(org-agenda-files))))))))
(defun org-make-tags-matcher (match)
- "Create the TAGS/TODO matcher form for the selection string MATCH."
- ;; todo-only is scoped dynamically into this function, and the function
- ;; may change it if the matcher asks for it.
+ "Create the TAGS/TODO matcher form for the selection string MATCH.
+
+The variable `todo-only' is scoped dynamically into this function; it will be
+set to t if the matcher restricts matching to TODO entries,
+otherwise will not be touched.
+
+Returns a cons of the selection string MATCH and the constructed
+lisp form implementing the matcher. The matcher is to be
+evaluated at an Org entry, with point on the headline,
+and returns t if the entry matches the
+selection string MATCH. The returned lisp form references
+two variables with information about the entry, which must be
+bound around the form's evaluation: todo, the TODO keyword at the
+entry (or nil of none); and tags-list, the list of all tags at the
+entry including inherited ones. Additionally, the category
+of the entry (if any) must be specified as the text property
+'org-category on the headline.
+
+See also `org-scan-tags'.
+"
+ (declare (special todo-only))
+ (unless (boundp 'todo-only)
+ (error "org-make-tags-matcher expects todo-only to be scoped in"))
(unless match
;; Get a new match request, with completion
(let ((org-last-tags-completion-table
(setq matcher (if todomatcher
(list 'and tagsmatcher todomatcher)
tagsmatcher))
+ (when todo-only
+ (setq matcher (list 'and '(member todo org-not-done-keywords)
+ matcher)))
(cons match0 matcher)))
(defun org-op-to-function (op &optional stringp)
current-tags inherited-tags table
(if org-fast-tag-selection-include-todo
org-todo-key-alist))
- (let ((org-add-colon-after-tag-completion t))
+ (let ((org-add-colon-after-tag-completion (< 1 (length table))))
(org-trim
(org-icompleting-read "Tags: "
'org-tags-completion-function
org-done-keywords-for-agenda
org-todo-keyword-alist-for-agenda
org-drawers-for-agenda
- org-tag-alist-for-agenda)
+ org-tag-alist-for-agenda
+ todo-only)
(cond
((eq match t) (setq matcher t))
(progn
(org-prepare-agenda-buffers
(list (buffer-file-name (current-buffer))))
- (setq res (org-scan-tags func matcher nil start-level)))
+ (setq res (org-scan-tags func matcher todo-only start-level)))
;; Get the right scope
(cond
((and scope (listp scope) (symbolp (car scope)))
(save-restriction
(widen)
(goto-char (point-min))
- (setq res (append res (org-scan-tags func matcher))))))))))
+ (setq res (append res (org-scan-tags func matcher todo-only))))))))))
res)))
;;;; Properties
;; retrieve it, but specify the wanted property
(cdr (assoc property (org-entry-properties nil 'special property)))
(let ((range (unless (org-before-first-heading-p)
- (org-get-property-block))))
- (when (and range (goto-char (car range)))
- ((lambda (val) (when val (if literal-nil val (org-not-nil val))))
- (cond
- ((re-search-forward
- (org-re-property property) (cdr range) t)
- (if (match-end 1) (org-match-string-no-properties 1) ""))
- ((re-search-forward
- (org-re-property (concat property "+")) (cdr range) t)
- (cdr (assoc
- property
- (org-update-property-plist
- (concat property "+")
- (if (match-end 1) (org-match-string-no-properties 1) "")
- (list (or (assoc property org-file-properties)
- (assoc property org-global-properties)
- (assoc property org-global-properties-fixed)
- ))))))))))))))
+ (org-get-property-block)))
+ (props (list (or (assoc property org-file-properties)
+ (assoc property org-global-properties)
+ (assoc property org-global-properties-fixed))))
+ val)
+ (flet ((ap (key)
+ (when (re-search-forward
+ (org-re-property key) (cdr range) t)
+ (setq props
+ (org-update-property-plist
+ key
+ (if (match-end 1)
+ (org-match-string-no-properties 1) "")
+ props)))))
+ (when (and range (goto-char (car range)))
+ (ap property)
+ (goto-char (car range))
+ (while (ap (concat property "+")))
+ (setq val (cdr (assoc property props)))
+ (when val (if literal-nil val (org-not-nil val))))))))))
(defun org-property-or-variable-value (var &optional inherit)
"Check if there is a property fixing the value of VAR.
(org-re-property property)
nil t)
(setq cnt (1+ cnt))
- (replace-match ""))
+ (delete-region (match-beginning 0) (1+ (point-at-eol))))
(message "Property \"%s\" removed from %d entries" property cnt)))))
(defvar org-columns-current-fmt-compiled) ; defined in org-colview.el
(defvar org-read-date-analyze-futurep nil)
(defvar org-read-date-analyze-forced-year nil)
-(defun org-read-date (&optional with-time to-time from-string prompt
+(defun org-read-date (&optional org-with-time to-time from-string prompt
default-time default-input)
"Read a date, possibly a time, and make things smooth for the user.
The prompt will suggest to enter an ISO date, but you can also enter anything
+2w --> two weeks from today
++5 --> five days from default date
-The function understands only English month and weekday abbreviations,
-but this can be configured with the variables `parse-time-months' and
-`parse-time-weekdays'.
+The function understands only English month and weekday abbreviations.
While prompting, a calendar is popped up - you can also select the
date with the mouse (button 1). The calendar shows a period of three
user."
(require 'parse-time)
(let* ((org-time-stamp-rounding-minutes
- (if (equal with-time '(16)) '(0 0) org-time-stamp-rounding-minutes))
+ (if (equal org-with-time '(16)) '(0 0) org-time-stamp-rounding-minutes))
(org-dcst org-display-custom-times)
(ct (org-current-time))
- (def (or org-overriding-default-time default-time ct))
- (defdecode (decode-time def))
+ (org-def (or org-overriding-default-time default-time ct))
+ (org-defdecode (decode-time org-def))
(dummy (progn
- (when (< (nth 2 defdecode) org-extend-today-until)
- (setcar (nthcdr 2 defdecode) -1)
- (setcar (nthcdr 1 defdecode) 59)
- (setq def (apply 'encode-time defdecode)
- defdecode (decode-time def)))))
+ (when (< (nth 2 org-defdecode) org-extend-today-until)
+ (setcar (nthcdr 2 org-defdecode) -1)
+ (setcar (nthcdr 1 org-defdecode) 59)
+ (setq org-def (apply 'encode-time org-defdecode)
+ org-defdecode (decode-time org-def)))))
(calendar-frame-setup nil)
(calendar-setup nil)
(calendar-move-hook nil)
(calendar-view-diary-initially-flag nil)
(calendar-view-holidays-initially-flag nil)
(timestr (format-time-string
- (if with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") def))
+ (if org-with-time "%Y-%m-%d %H:%M" "%Y-%m-%d") org-def))
(prompt (concat (if prompt (concat prompt " ") "")
(format "Date+time [%s]: " timestr)))
ans (org-ans0 "") org-ans1 org-ans2 final)
(calendar)
(unwind-protect
(progn
- (calendar-forward-day (- (time-to-days def)
+ (calendar-forward-day (- (time-to-days org-def)
(calendar-absolute-from-gregorian
(calendar-current-date))))
(org-eval-in-calendar nil t)
(delete-overlay org-read-date-overlay)
(setq org-read-date-overlay nil)))))
- (setq final (org-read-date-analyze ans def defdecode))
+ (setq final (org-read-date-analyze ans org-def org-defdecode))
(when org-read-date-analyze-forced-year
(message "Year was forced into %s"
(nth 2 final) (nth 1 final))
(format "%04d-%02d-%02d" (nth 5 final) (nth 4 final) (nth 3 final))))))
-(defvar def)
-(defvar defdecode)
-(defvar with-time)
+(defvar org-def)
+(defvar org-defdecode)
+(defvar org-with-time)
(defun org-read-date-display ()
"Display the current date prompt interpretation in the minibuffer."
(when org-read-date-display-live
(let* ((ans (concat (buffer-substring (point-at-bol) (point-max))
" " (or org-ans1 org-ans2)))
(org-end-time-was-given nil)
- (f (org-read-date-analyze ans def defdecode))
+ (f (org-read-date-analyze ans org-def org-defdecode))
(fmts (if org-dcst
org-time-stamp-custom-formats
org-time-stamp-formats))
- (fmt (if (or with-time
+ (fmt (if (or org-with-time
(and (boundp 'org-time-was-given) org-time-was-given))
(cdr fmts)
(car fmts)))
(make-overlay (1- (point-at-eol)) (point-at-eol)))
(org-overlay-display org-read-date-overlay txt 'secondary-selection))))
-(defun org-read-date-analyze (ans def defdecode)
+(defun org-read-date-analyze (ans org-def org-defdecode)
"Analyze the combined answer of the date prompt."
;; FIXME: cleanup and comment
(let ((nowdecode (decode-time (current-time)))
(when (string-match "\\`[ \t]*\\.[ \t]*\\'" ans)
(setq ans "+0"))
- (when (setq delta (org-read-date-get-relative ans (current-time) def))
+ (when (setq delta (org-read-date-get-relative ans (current-time) org-def))
(setq ans (replace-match "" t t ans)
deltan (car delta)
deltaw (nth 1 delta)
(substring ans (match-end 7))))))
(setq tl (parse-time-string ans)
- day (or (nth 3 tl) (nth 3 defdecode))
+ day (or (nth 3 tl) (nth 3 org-defdecode))
month (or (nth 4 tl)
(if (and org-read-date-prefer-future
(nth 3 tl) (< (nth 3 tl) (nth 3 nowdecode)))
(prog1 (1+ (nth 4 nowdecode)) (setq futurep t))
- (nth 4 defdecode)))
+ (nth 4 org-defdecode)))
year (or (and (not kill-year) (nth 5 tl))
(if (and org-read-date-prefer-future
(nth 4 tl) (< (nth 4 tl) (nth 4 nowdecode)))
(prog1 (1+ (nth 5 nowdecode)) (setq futurep t))
- (nth 5 defdecode)))
- hour (or (nth 2 tl) (nth 2 defdecode))
- minute (or (nth 1 tl) (nth 1 defdecode))
+ (nth 5 org-defdecode)))
+ hour (or (nth 2 tl) (nth 2 org-defdecode))
+ minute (or (nth 1 tl) (nth 1 org-defdecode))
second (or (nth 0 tl) 0)
wday (nth 6 tl))
(condition-case nil
(ignore (encode-time second minute hour day month year))
(error
- (setq year (nth 5 defdecode))
+ (setq year (nth 5 org-defdecode))
(setq org-read-date-analyze-forced-year t))))
(setq org-read-date-analyze-futurep futurep)
(list second minute hour day month year)))
(defvar parse-time-weekdays)
-
(defun org-read-date-get-relative (s today default)
"Check string S for special relative date string.
TODAY and DEFAULT are internal times, for today and for a default.
(defun org-recenter-calendar (date)
"If the calendar is visible, recenter it to DATE."
- (let* ((win (selected-window))
- (cwin (get-buffer-window "*Calendar*" t))
- (calendar-move-hook nil))
+ (let ((cwin (get-buffer-window "*Calendar*" t)))
(when cwin
- (select-window cwin)
- (calendar-goto-date (if (listp date) date
- (calendar-gregorian-from-absolute date)))
- (select-window win))))
+ (let ((calendar-move-hook nil))
+ (with-selected-window cwin
+ (calendar-goto-date (if (listp date) date
+ (calendar-gregorian-from-absolute date))))))))
(defun org-goto-calendar (&optional arg)
"Go to the Emacs calendar at the current date.
For example, if the value of this variable is ((\"hours\" . 60)), then an
effort string \"2hours\" is equivalent to 120 minutes."
:group 'org-agenda
+ :version "24.1"
:type '(alist :key-type (string :tag "Modifier")
:value-type (number :tag "Minutes")))
display all fragments in the buffer.
The images can be removed again with \\[org-ctrl-c-ctrl-c]."
(interactive "P")
+ (unless buffer-file-name
+ (error "Can't preview LaTeX fragment in a non-file buffer"))
(org-remove-latex-fragment-image-overlays)
(save-excursion
(save-restriction
(dvifile (concat texfilebase ".dvi"))
(pngfile (concat texfilebase ".png"))
(fnh (if (featurep 'xemacs)
- (font-height (get-face-font 'default))
+ (font-height (face-font 'default))
(face-attribute 'default :height nil)))
(scale (or (plist-get options (if buffer :scale :html-scale)) 1.0))
(dpi (number-to-string (* scale (floor (* 0.9 (if buffer fnh 140.))))))
(if (not (file-exists-p dvifile))
(progn (message "Failed to create dvi file from %s" texfile) nil)
(condition-case nil
- (call-process "dvipng" nil nil nil
+ (if (featurep 'xemacs)
+ (call-process "dvipng" nil nil nil
"-fg" fg "-bg" bg
- "-D" dpi
- ;;"-x" scale "-y" scale
"-T" "tight"
"-o" pngfile
dvifile)
+ (call-process "dvipng" nil nil nil
+ "-fg" fg "-bg" bg
+ "-D" dpi
+ ;;"-x" scale "-y" scale
+ "-T" "tight"
+ "-o" pngfile
+ dvifile))
(error nil))
(if (not (file-exists-p pngfile))
(if org-format-latex-signal-error
"Return an rgb color specification for dvipng."
(apply 'format "rgb %s %s %s"
(mapcar 'org-normalize-color
- (color-values (face-attribute 'default attr nil)))))
+ (if (featurep 'xemacs)
+ (color-rgb-components
+ (face-property 'default
+ (cond ((eq attr :foreground) 'foreground)
+ ((eq attr :background) 'background))))
+ (color-values (face-attribute 'default attr nil))))))
(defun org-normalize-color (value)
"Return string to be used as color value for an RGB component."
(save-restriction
(widen)
(setq beg (or beg (point-min)) end (or end (point-max)))
- (goto-char (point-min))
+ (goto-char beg)
(let ((re (concat "\\[\\[\\(\\(file:\\)\\|\\([./~]\\)\\)\\([^]\n]+?"
(substring (org-image-file-name-regexp) 0 -2)
"\\)\\]" (if include-linked "" "\\]")))
(org-defkey org-mode-map "\C-i" 'org-cycle)
(org-defkey org-mode-map [(tab)] 'org-cycle)
(org-defkey org-mode-map [(control tab)] 'org-force-cycle-archived)
-(org-defkey org-mode-map [(meta tab)] 'pcomplete)
(org-defkey org-mode-map "\M-\t" 'pcomplete)
-(org-defkey org-mode-map "\M-\C-i" 'pcomplete)
;; The following line is necessary under Suse GNU/Linux
(unless (featurep 'xemacs)
(org-defkey org-mode-map [S-iso-lefttab] 'org-shifttab))
(looking-at "[^|\n]* |"))
(let (org-table-may-need-update)
(goto-char (1- (match-end 0)))
- (delete-char -1)
+ (backward-delete-char 1)
(goto-char (match-beginning 0))
(self-insert-command N)))
(t
;; only if function was called with an argument. Send list only
;; if at top item.
(let* ((struct (org-list-struct))
- (new-struct struct)
- (firstp (= (org-list-get-top-point struct) (point-at-bol))))
+ (firstp (= (org-list-get-top-point struct) (point-at-bol)))
+ old-struct)
(when arg
- (setq new-struct (copy-tree struct))
+ (setq old-struct (copy-tree struct))
(if firstp
;; If at first item of sub-list, add check-box to every
;; item at the same level.
(mapc
(lambda (pos)
- (unless (org-list-get-checkbox pos new-struct)
- (org-list-set-checkbox pos new-struct "[ ]")))
+ (unless (org-list-get-checkbox pos struct)
+ (org-list-set-checkbox pos struct "[ ]")))
(org-list-get-all-items
- (point-at-bol) new-struct (org-list-prevs-alist new-struct)))
- (org-list-set-checkbox (point-at-bol) new-struct "[ ]")))
+ (point-at-bol) struct (org-list-prevs-alist struct)))
+ (org-list-set-checkbox (point-at-bol) struct "[ ]")))
(org-list-write-struct
- new-struct (org-list-parents-alist new-struct) struct)
+ struct (org-list-parents-alist struct) old-struct)
(when arg (org-update-checkbox-count-maybe))
(when firstp (org-list-send-list 'maybe))))
((save-excursion (beginning-of-line 1) (looking-at org-dblock-start-re))
(org-inside-LaTeX-fragment-p)]
["Insert citation" org-reftex-citation t]
"--"
- ["Template for BEAMER" org-insert-beamer-options-template t])
+ ["Template for BEAMER" (progn (require 'org-beamer)
+ (org-insert-beamer-options-template)) t])
"--"
("MobileOrg"
["Push Files and Views" org-mobile-push t]
(eval form)
(error (format "%%![Error: %s]" error))))
+(defun org-in-clocktable-p ()
+ "Check if the cursor is in a clocktable."
+ (let ((pos (point)) start)
+ (save-excursion
+ (end-of-line 1)
+ (and (re-search-backward "^[ \t]*#\\+BEGIN:[ \t]+clocktable" nil t)
+ (setq start (match-beginning 0))
+ (re-search-forward "^[ \t]*#\\+END:.*" nil t)
+ (>= (match-end 0) pos)
+ start))))
+
(defun org-in-commented-line ()
"Is point in a line starting with `#'?"
(equal (char-after (point-at-bol)) ?#))
((not (eq last-command this-command)) (point))
(t refpos)))))
((org-at-item-p)
- (goto-char
- (if (eq special t)
- (cond ((> pos (match-end 0)) (match-end 0))
- ((= pos (point)) (match-end 0))
- (t (point)))
- (cond ((> pos (point)) (point))
- ((not (eq last-command this-command)) (point))
- (t (match-end 0))))))))
+ ;; Being at an item and not looking at an the item means point
+ ;; was previously moved to beginning of a visual line, which
+ ;; doesn't contain the item. Therefore, do nothing special,
+ ;; just stay here.
+ (when (looking-at org-list-full-item-re)
+ ;; Set special position at first white space character after
+ ;; bullet, and check-box, if any.
+ (let ((after-bullet
+ (let ((box (match-end 3)))
+ (if (not box) (match-end 1)
+ (let ((after (char-after box)))
+ (if (and after (= after ? )) (1+ box) box))))))
+ ;; Special case: Move point to special position when
+ ;; currently after it or at beginning of line.
+ (if (eq special t)
+ (when (or (> pos after-bullet) (= (point) pos))
+ (goto-char after-bullet))
+ ;; Reversed case: Move point to special position when
+ ;; point was already at beginning of line and command is
+ ;; repeated.
+ (when (and (= (point) pos) (eq last-command this-command))
+ (goto-char after-bullet))))))))
(org-no-warnings
(and (featurep 'xemacs) (setq zmacs-region-stays t)))))
(move-end-of-line 1)
(when (overlays-at (1- (point))) (backward-char 1)))
;; At an item: Move before any hidden text.
- (t (call-interactively 'end-of-line)))
+ (t (call-interactively
+ (cond ((org-bound-and-true-p line-move-visual) 'end-of-visual-line)
+ ((fboundp 'move-end-of-line) 'move-end-of-line)
+ (t 'end-of-line)))))
(org-no-warnings
(and (featurep 'xemacs) (setq zmacs-region-stays t)))))
If the heading only contains a TODO keyword, it is still still considered
empty."
(and (looking-at "[ \t]*$")
- (save-excursion
- (beginning-of-line 1)
- (let ((case-fold-search nil))
- (looking-at org-todo-line-regexp)))
- (string= (match-string 3) "")))
+ (when org-todo-line-regexp
+ (save-excursion
+ (beginning-of-line 1)
+ (let ((case-fold-search nil))
+ (looking-at org-todo-line-regexp)
+ (string= (match-string 3) ""))))))
(defun org-at-heading-or-item-p ()
(or (org-at-heading-p) (org-at-item-p)))
(defun org-show-subtree ()
"Show everything after this heading at deeper levels."
+ (interactive)
(outline-flag-region
(point)
(save-excursion
(goto-char (point-max))
(while (re-search-backward re nil t)
(setq level (org-reduced-level (funcall outline-level)))
- (when (<= level n)
- (looking-at org-complex-heading-regexp)
+ (when (and (<= level n)
+ (looking-at org-complex-heading-regexp))
(setq head (org-link-display-format
(org-match-string-no-properties 4))
m (org-imenu-new-marker))
"Normal hook to be run after outline visibility changes.")
(defvar outline-mode-hook nil
- "*This hook is run when outline mode starts.")
+ "This hook is run when outline mode starts.")
(defvar outline-blank-line nil
- "*Non-nil means to leave unhidden blank line before heading.")
+ "Non-nil means to leave unhidden blank line before heading.")
;;;###autoload
(define-derived-mode outline-mode text-mode "Outline"
(show-all)))
\f
(defvar outline-level 'outline-level
- "*Function of no args to compute a header's nesting level in an outline.
+ "Function of no args to compute a header's nesting level in an outline.
It can assume point is at the beginning of a header line and that the match
data reflects the `outline-regexp'.")
;;;###autoload(put 'outline-level 'risky-local-variable t)
'show-paren-mismatch "22.1")
(defvar show-paren-highlight-openparen t
- "*Non-nil turns on openparen highlighting when matching forward.")
+ "Non-nil turns on openparen highlighting when matching forward.")
(defvar show-paren-idle-timer nil)
;;; pcmpl-rpm.el --- functions for dealing with rpm completions
-;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1999-2012 Free Software Foundation, Inc.
;; Package: pcomplete
;; Functions:
+;; FIXME rpm -qa can be slow, so:
+;; Adding --nodigest --nosignature is MUCH faster.
+;; (Probably need to test --help for those options though.)
+;; Consider caching the result (cf woman).
+;; Consider printing an explanatory message before running -qa.
+;;
+;; Seems pointless for this to be a defsubst.
(defsubst pcmpl-rpm-packages ()
(split-string (pcomplete-process-result "rpm" "-q" "-a")))
'("--changelog"
"--dbpath"
"--dump"
+ "--file"
"--ftpport" ;nyi for the next four
"--ftpproxy"
"--httpport"
(pcomplete-here*))
((pcomplete-test "--rcfile")
(pcomplete-here* (pcomplete-entries)))
+ ((pcomplete-test "--file")
+ (pcomplete-here* (pcomplete-entries)))
((pcomplete-test "--root")
(pcomplete-here* (pcomplete-dirs)))
((pcomplete-test "--scripts")
(pcomplete-opt "af.p(pcmpl-rpm-files)ilsdcvR")
(if (pcomplete-test "-[^-]*p" 'first 1)
(pcomplete-here (pcmpl-rpm-files))
- (pcomplete-here (pcmpl-rpm-packages))))))
+ (if (pcomplete-test "-[^-]*f" 'first 1)
+ (pcomplete-here* (pcomplete-entries))
+ (pcomplete-here (pcmpl-rpm-packages)))))))
((pcomplete-test "--pipe")
(pcomplete-here* (funcall pcomplete-command-completion-function)))
((pcomplete-test "--rmsource")
(defun pcomplete--common-quoted-suffix (s1 s2)
;; FIXME: Copied in comint.el.
"Find the common suffix between S1 and S2 where S1 is the expanded S2.
-S1 is expected to be the unquoted and expanded version of S1.
+S1 is expected to be the unquoted and expanded version of S2.
Returns (PS1 . PS2), i.e. the shortest prefixes of S1 and S2, such that
S1 = (concat PS1 SS1) and S2 = (concat PS2 SS2) and
SS1 = (unquote SS2)."
(let* ((cs (comint--common-suffix s1 s2))
(ss1 (substring s1 (- (length s1) cs)))
(qss1 (pcomplete-quote-argument ss1))
- qc)
+ qc s2b)
(if (and (not (equal ss1 qss1))
(setq qc (pcomplete-quote-argument (substring ss1 0 1)))
- (eq t (compare-strings s2 (- (length s2) cs (length qc) -1)
- (- (length s2) cs -1)
+ (setq s2b (- (length s2) cs (length qc) -1))
+ (>= s2b 0) ;bug#11158.
+ (eq t (compare-strings s2 s2b (- (length s2) cs -1)
qc nil nil)))
;; The difference found is just that one char is quoted in S2
;; but not in S1, keep looking before this difference.
(pcomplete--common-quoted-suffix
(substring s1 0 (- (length s1) cs))
- (substring s2 0 (- (length s2) cs (length qc) -1)))
+ (substring s2 0 s2b))
(cons (substring s1 0 (- (length s1) cs))
(substring s2 0 (- (length s2) cs))))))
"*Number of steps `animate-string' will place a char before its last position.")
(defvar animation-buffer-name nil
- "*String naming the default buffer for animations.
+ "String naming the default buffer for animations.
When nil animations displayed in the buffer named *Animation*.")
;;;###autoload
"Reads in the PHRASE-FILE, returns it as a vector of strings.
Emit STARTMSG and ENDMSG before and after. Caches the result; second
and subsequent calls on the same file won't go to disk."
+ (or (file-readable-p phrase-file)
+ (error "Cannot read file `%s'" phrase-file))
(let ((sym (intern-soft phrase-file cookie-cache)))
(and sym (not (equal (symbol-function sym)
(nth 5 (file-attributes phrase-file))))
;; look rectangular, but spacings SHOULD be at least 2 (MUST BE at least 1).
(defconst gomoku-square-width 4
- "*Horizontal spacing between squares on the Gomoku board.")
+ "Horizontal spacing between squares on the Gomoku board.")
(defconst gomoku-square-height 2
- "*Vertical spacing between squares on the Gomoku board.")
+ "Vertical spacing between squares on the Gomoku board.")
(defconst gomoku-x-offset 3
- "*Number of columns between the Gomoku board and the side of the window.")
+ "Number of columns between the Gomoku board and the side of the window.")
(defconst gomoku-y-offset 1
- "*Number of lines between the Gomoku board and the top of the window.")
+ "Number of lines between the Gomoku board and the top of the window.")
(defvar gomoku-mode-map
'(("O" . 'gomoku-O)
("X" . 'gomoku-X)
("[-|/\\]" 0 (if gomoku-emacs-won 'gomoku-O 'gomoku-X)))
- "*Font lock rules for Gomoku.")
+ "Font lock rules for Gomoku.")
(put 'gomoku-mode 'front-sticky
(put 'gomoku-mode 'rear-nonsticky '(intangible)))
;; look rectangular, but spacings SHOULD be at least 2 (MUST BE at least 1).
(defconst landmark-square-width 2
- "*Horizontal spacing between squares on the Landmark board.")
+ "Horizontal spacing between squares on the Landmark board.")
(defconst landmark-square-height 1
- "*Vertical spacing between squares on the Landmark board.")
+ "Vertical spacing between squares on the Landmark board.")
(defconst landmark-x-offset 3
- "*Number of columns between the Landmark board and the side of the window.")
+ "Number of columns between the Landmark board and the side of the window.")
(defconst landmark-y-offset 1
- "*Number of lines between the Landmark board and the top of the window.")
+ "Number of lines between the Landmark board and the top of the window.")
;;;_ + LANDMARK MODE AND KEYMAP.
(defvar landmark-emacs-won ()
- "*For making font-lock use the winner's face for the line.")
+ "For making font-lock use the winner's face for the line.")
(defface landmark-font-lock-face-O '((((class color)) :foreground "red")
(t :weight bold))
("[-|/\\]" 0 (if landmark-emacs-won
'landmark-font-lock-face-O
'landmark-font-lock-face-X)))
- "*Font lock rules for Landmark.")
+ "Font lock rules for Landmark.")
(put 'landmark-mode 'front-sticky
(put 'landmark-mode 'rear-nonsticky '(intangible)))
;;; yow.el --- quote random zippyisms
-;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1993-1995, 2000-2012 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Author: Richard Mlynarik
;;; Commentary:
;; Important pinheadery for GNU Emacs.
-;;
-;; See cookie1.el for implementation. Note --- the `n' argument of yow
-;; from the 18.xx implementation is no longer; we only support *random*
-;; random access now.
;;; Code:
:prefix "yow-"
:group 'games)
-(defcustom yow-file (concat data-directory "yow.lines")
+(defcustom yow-file (expand-file-name "yow.lines" data-directory)
"File containing pertinent pinhead phrases."
:type 'file
:group 'yow)
"The timer we use to decide when to zone out, or nil if none.")
(defvar zone-timeout nil
- "*Seconds to timeout the zoning.
+ "Seconds to timeout the zoning.
If nil, don't interrupt for about 1^26 seconds.")
;; Vector of functions that zone out. `zone' will execute one of
;;;; the lyfe so short the craft so long to lerne --chaucer
(defvar zone-pgm-random-life-wait nil
- "*Seconds to wait between successive `life' generations.
+ "Seconds to wait between successive `life' generations.
If nil, `zone-pgm-random-life' chooses a value from 0-3 (inclusive).")
(defvar life-patterns) ; from life.el
version-string)))
(defvar ada-mode-hook nil
- "*List of functions to call when Ada mode is invoked.
+ "List of functions to call when Ada mode is invoked.
This hook is automatically executed after the `ada-mode' is
fully loaded.
This is a good place to add Ada environment specific bindings.")
:group 'languages)
(defcustom ada-auto-case t
- "*Non-nil means automatically change case of preceding word while typing.
+ "Non-nil means automatically change case of preceding word while typing.
Casing is done according to `ada-case-keyword', `ada-case-identifier'
and `ada-case-attribute'."
:type 'boolean :group 'ada)
(defcustom ada-broken-decl-indent 0
- "*Number of columns to indent a broken declaration.
+ "Number of columns to indent a broken declaration.
An example is :
declare
:type 'integer :group 'ada)
(defcustom ada-broken-indent 2
- "*Number of columns to indent the continuation of a broken line.
+ "Number of columns to indent the continuation of a broken line.
An example is :
My_Var : My_Type := (Field1 =>
:type 'integer :group 'ada)
(defcustom ada-continuation-indent ada-broken-indent
- "*Number of columns to indent the continuation of broken lines in parenthesis.
+ "Number of columns to indent the continuation of broken lines in parenthesis.
An example is :
Func (Param1,
:type 'integer :group 'ada)
(defcustom ada-case-attribute 'ada-capitalize-word
- "*Function to call to adjust the case of Ada attributes.
+ "Function to call to adjust the case of Ada attributes.
It may be `downcase-word', `upcase-word', `ada-loose-case-word',
`ada-capitalize-word' or `ada-no-auto-case'."
:type '(choice (const downcase-word)
(defcustom ada-case-exception-file
(list (convert-standard-filename' "~/.emacs_case_exceptions"))
- "*List of special casing exceptions dictionaries for identifiers.
+ "List of special casing exceptions dictionaries for identifiers.
The first file is the one where new exceptions will be saved by Emacs
when you call `ada-create-case-exception'.
:group 'ada)
(defcustom ada-case-keyword 'downcase-word
- "*Function to call to adjust the case of an Ada keywords.
+ "Function to call to adjust the case of an Ada keywords.
It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
`ada-capitalize-word'."
:type '(choice (const downcase-word)
:group 'ada)
(defcustom ada-case-identifier 'ada-loose-case-word
- "*Function to call to adjust the case of an Ada identifier.
+ "Function to call to adjust the case of an Ada identifier.
It may be `downcase-word', `upcase-word', `ada-loose-case-word' or
`ada-capitalize-word'."
:type '(choice (const downcase-word)
:group 'ada)
(defcustom ada-clean-buffer-before-saving t
- "*Non-nil means remove trailing spaces and untabify the buffer before saving."
+ "Non-nil means remove trailing spaces and untabify the buffer before saving."
:type 'boolean :group 'ada)
(make-obsolete-variable 'ada-clean-buffer-before-saving
"use the `write-file-functions' hook."
(defcustom ada-indent 3
- "*Size of Ada indentation.
+ "Size of Ada indentation.
An example is :
procedure Foo is
:type 'integer :group 'ada)
(defcustom ada-indent-after-return t
- "*Non-nil means automatically indent after RET or LFD."
+ "Non-nil means automatically indent after RET or LFD."
:type 'boolean :group 'ada)
(defcustom ada-indent-align-comments t
- "*Non-nil means align comments on previous line comments, if any.
+ "Non-nil means align comments on previous line comments, if any.
If nil, indentation is calculated as usual.
Note that indentation is calculated only if `ada-indent-comment-as-code' is t.
:type 'boolean :group 'ada)
(defcustom ada-indent-comment-as-code t
- "*Non-nil means indent comment lines as code.
+ "Non-nil means indent comment lines as code.
A nil value means do not auto-indent comments."
:type 'boolean :group 'ada)
(defcustom ada-indent-handle-comment-special nil
- "*Non-nil if comment lines should be handled specially inside parenthesis.
+ "Non-nil if comment lines should be handled specially inside parenthesis.
By default, if the line that contains the open parenthesis has some
text following it, then the following lines will be indented in the
same column as this text. This will not be true if the first line is
:type 'boolean :group 'ada)
(defcustom ada-indent-is-separate t
- "*Non-nil means indent 'is separate' or 'is abstract' if on a single line."
+ "Non-nil means indent 'is separate' or 'is abstract' if on a single line."
:type 'boolean :group 'ada)
(defcustom ada-indent-record-rel-type 3
- "*Indentation for 'record' relative to 'type' or 'use'.
+ "Indentation for 'record' relative to 'type' or 'use'.
An example is:
type A is
:type 'integer :group 'ada)
(defcustom ada-indent-renames ada-broken-indent
- "*Indentation for renames relative to the matching function statement.
+ "Indentation for renames relative to the matching function statement.
If `ada-indent-return' is null or negative, the indentation is done relative to
the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
:type 'integer :group 'ada)
(defcustom ada-indent-return 0
- "*Indentation for 'return' relative to the matching 'function' statement.
+ "Indentation for 'return' relative to the matching 'function' statement.
If `ada-indent-return' is null or negative, the indentation is done relative to
the open parenthesis (if there is no parenthesis, `ada-broken-indent' is used).
:type 'integer :group 'ada)
(defcustom ada-indent-to-open-paren t
- "*Non-nil means indent according to the innermost open parenthesis."
+ "Non-nil means indent according to the innermost open parenthesis."
:type 'boolean :group 'ada)
(defcustom ada-fill-comment-prefix "-- "
- "*Text inserted in the first columns when filling a comment paragraph.
+ "Text inserted in the first columns when filling a comment paragraph.
Note: if you modify this variable, you will have to invoke `ada-mode'
again to take account of the new value."
:type 'string :group 'ada)
(defcustom ada-fill-comment-postfix " --"
- "*Text inserted at the end of each line when filling a comment paragraph.
+ "Text inserted at the end of each line when filling a comment paragraph.
Used by `ada-fill-comment-paragraph-postfix'."
:type 'string :group 'ada)
(defcustom ada-label-indent -4
- "*Number of columns to indent a label.
+ "Number of columns to indent a label.
An example is:
procedure Foo is
:type 'integer :group 'ada)
(defcustom ada-language-version 'ada95
- "*Ada language version; one of `ada83', `ada95', `ada2005'."
+ "Ada language version; one of `ada83', `ada95', `ada2005'."
:type '(choice (const ada83) (const ada95) (const ada2005)) :group 'ada)
(defcustom ada-move-to-declaration nil
- "*Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'."
+ "Non-nil means `ada-move-to-start' moves to the subprogram declaration, not to 'begin'."
:type 'boolean :group 'ada)
(defcustom ada-popup-key '[down-mouse-3]
- "*Key used for binding the contextual menu.
+ "Key used for binding the contextual menu.
If nil, no contextual menu is available."
:type '(restricted-sexp :match-alternatives (stringp vectorp))
:group 'ada)
(split-string (or (getenv "ADA_INCLUDE_PATH") "") ":")
'("/usr/adainclude" "/usr/local/adainclude"
"/opt/gnu/adainclude"))
- "*Default list of directories to search for Ada files.
+ "Default list of directories to search for Ada files.
See the description for the `ff-search-directories' variable. This variable
is the initial value of `ada-search-directories-internal'."
:type '(repeat (choice :tag "Directory"
`ada-search-directories'.")
(defcustom ada-stmt-end-indent 0
- "*Number of columns to indent the end of a statement on a separate line.
+ "Number of columns to indent the end of a statement on a separate line.
An example is:
if A = B
:type 'integer :group 'ada)
(defcustom ada-tab-policy 'indent-auto
- "*Control the behavior of the TAB key.
+ "Control the behavior of the TAB key.
Must be one of :
`indent-rigidly' : always adds `ada-indent' blanks at the beginning of the line.
`indent-auto' : use indentation functions in this file.
:group 'ada)
(defcustom ada-use-indent ada-broken-indent
- "*Indentation for the lines in a 'use' statement.
+ "Indentation for the lines in a 'use' statement.
An example is:
use Ada.Text_IO,
:type 'integer :group 'ada)
(defcustom ada-when-indent 3
- "*Indentation for 'when' relative to 'exception' or 'case'.
+ "Indentation for 'when' relative to 'exception' or 'case'.
An example is:
case A is
:type 'integer :group 'ada)
(defcustom ada-with-indent ada-broken-indent
- "*Indentation for the lines in a 'with' statement.
+ "Indentation for the lines in a 'with' statement.
An example is:
with Ada.Text_IO,
:type 'integer :group 'ada)
(defcustom ada-which-compiler 'gnat
- "*Name of the compiler to use.
+ "Name of the compiler to use.
This will determine what features are made available through the Ada mode.
The possible choices are:
`gnat': Use Ada Core Technologies' GNAT compiler. Add some cross-referencing
["Entry family" ada-entry-family t]
["Select" ada-select t]
["Accept" ada-accept t]
- ["Or accept" ada-or-accep t]
+ ["Or accept" ada-or-accept t]
["Or delay" ada-or-delay t]
["Or terminate" ada-or-terminate t]
["---" nil nil]
;; ------ User variables
(defcustom ada-xref-other-buffer t
- "*If nil, always display the cross-references in the same buffer.
+ "If nil, always display the cross-references in the same buffer.
Otherwise create either a new buffer or a new frame."
:type 'boolean :group 'ada)
(defcustom ada-xref-create-ali nil
- "*If non-nil, run gcc whenever the cross-references are not up-to-date.
+ "If non-nil, run gcc whenever the cross-references are not up-to-date.
If nil, the cross-reference mode never runs gcc."
:type 'boolean :group 'ada)
(defcustom ada-xref-confirm-compile nil
- "*If non-nil, ask for confirmation before compiling or running the application."
+ "If non-nil, ask for confirmation before compiling or running the application."
:type 'boolean :group 'ada)
(defcustom ada-krunch-args "0"
- "*Maximum number of characters for filenames created by `gnatkr'.
+ "Maximum number of characters for filenames created by `gnatkr'.
Set to 0, if you don't use crunched filenames. This should be a string."
:type 'string :group 'ada)
:type 'string :group 'ada)
(defcustom ada-gnatls-args '("-v")
- "*Arguments to pass to `gnatls' to find location of the runtime.
+ "Arguments to pass to `gnatls' to find location of the runtime.
Typical use is to pass `--RTS=soft-floats' on some systems that support it.
You can also add `-I-' if you do not want the current directory to be included.
(defcustom ada-prj-default-check-cmd
(concat "${cross_prefix}gnatmake -u -c -gnatc ${gnatmake_opt} ${full_current}"
" -cargs ${comp_opt}")
- "*Default command to be used to compile a single file.
+ "Default command to be used to compile a single file.
Emacs will substitute the current filename for ${full_current}, or add
the filename at the end. This is the same syntax as in the project file."
:type 'string :group 'ada)
(defcustom ada-prj-default-comp-cmd
(concat "${cross_prefix}gnatmake -u -c ${gnatmake_opt} ${full_current} -cargs"
" ${comp_opt}")
- "*Default command to be used to compile a single file.
+ "Default command to be used to compile a single file.
Emacs will substitute the current filename for ${full_current}, or add
the filename at the end. This is the same syntax as in the project file."
:type 'string :group 'ada)
(defcustom ada-prj-default-debugger "${cross_prefix}gdb"
- "*Default name of the debugger."
+ "Default name of the debugger."
:type 'string :group 'ada)
(defcustom ada-prj-default-make-cmd
(concat "${cross_prefix}gnatmake -o ${main} ${main} ${gnatmake_opt} "
"-cargs ${comp_opt} -bargs ${bind_opt} -largs ${link_opt}")
- "*Default command to be used to compile the application.
+ "Default command to be used to compile the application.
This is the same syntax as in the project file."
:type 'string :group 'ada)
(defcustom ada-prj-default-project-file ""
- "*Name of the current project file.
+ "Name of the current project file.
Emacs will not try to use the search algorithm to find the project file if
this string is not empty. It is set whenever a project file is found."
:type '(file :must-match t) :group 'ada)
(defcustom ada-gnatstub-opts "-q -I${src_dir}"
- "*Options to pass to `gnatsub' to generate the body of a package.
+ "Options to pass to `gnatsub' to generate the body of a package.
This has the same syntax as in the project file (with variable substitution)."
:type 'string :group 'ada)
(defcustom ada-always-ask-project nil
- "*If nil, use default values when no project file was found.
+ "If nil, use default values when no project file was found.
Otherwise, ask the user for the name of the project file to use."
:type 'boolean :group 'ada)
"True if we are running on Windows.")
(defcustom ada-tight-gvd-integration nil
- "*If non-nil, a new Emacs frame will be swallowed in GVD when debugging.
+ "If non-nil, a new Emacs frame will be swallowed in GVD when debugging.
If GVD is not the debugger used, nothing happens."
:type 'boolean :group 'ada)
(defcustom ada-xref-search-with-egrep t
- "*If non-nil, use egrep to find the possible declarations for an entity.
+ "If non-nil, use egrep to find the possible declarations for an entity.
This alternate method is used when the exact location was not found in the
information provided by GNAT. However, it might be expensive if you have a lot
of sources, since it will search in all the files in your project."
(integer :tag "Hidden if longer than" :value 3)))
(defcustom antlr-indent-comment 'tab
- "*Non-nil, if the indentation should touch lines in block comments.
+ "Non-nil, if the indentation should touch lines in block comments.
If nil, no continuation line of a block comment is changed. If t, they
are changed according to `c-indentation-line'. When not nil and not t,
they are only changed by \\[antlr-indent-command]."
(boolean :tag "Indent-tabs-mode"))))
(defcustom antlr-indent-style "java"
- "*If non-nil, cc-mode indentation style used for `antlr-mode'.
+ "If non-nil, cc-mode indentation style used for `antlr-mode'.
See `c-set-style' and for details, where the most interesting part in
`c-style-alist' is the value of `c-basic-offset'."
:group 'antlr
;;;===========================================================================
(defcustom antlr-options-use-submenus t
- "*Non-nil, if the major mode menu should include option submenus.
+ "Non-nil, if the major mode menu should include option submenus.
If nil, the menu just includes a command to insert options. Otherwise,
it includes four submenus to insert file/grammar/rule/subrule options."
:group 'antlr
:type 'boolean)
(defcustom antlr-tool-version 20701
- "*The version number of the Antlr tool.
+ "The version number of the Antlr tool.
The value is an integer of the form XYYZZ which stands for vX.YY.ZZ.
This variable is used to warn about non-supported options and to supply
version correct option values when using \\[antlr-insert-option].
:type 'integer)
(defcustom antlr-options-auto-colon t
- "*Non-nil, if `:' is inserted with a rule or subrule options section.
+ "Non-nil, if `:' is inserted with a rule or subrule options section.
A `:' is only inserted if this value is non-nil, if a rule or subrule
option is inserted with \\[antlr-insert-option], if there was no rule or
subrule options section before, and if a `:' is not already present
:type '(repeat (symbol :tag "Style symbol")))
(defcustom antlr-options-push-mark t
- "*Non-nil, if inserting an option should set & push mark.
+ "Non-nil, if inserting an option should set & push mark.
If nil, never set mark when inserting an option with command
\\[antlr-insert-option]. If t, always set mark via `push-mark'. If a
number, only set mark if point was outside the options area before and
(sexp :tag "If outside options" :format "%t" :value outside)))
(defcustom antlr-options-assign-string " = "
- "*String containing `=' to use between option name and value.
+ "String containing `=' to use between option name and value.
This string is only used if the option to insert did not exist before
or if there was no `=' after it. In other words, the spacing around an
existing `=' won't be changed when changing an option value."
;;;===========================================================================
(defcustom antlr-tool-command "java antlr.Tool"
- "*Command used in \\[antlr-run-tool] to run the Antlr tool.
+ "Command used in \\[antlr-run-tool] to run the Antlr tool.
This variable should include all options passed to Antlr except the
option \"-glib\" which is automatically suggested if necessary."
:group 'antlr
:type 'string)
(defcustom antlr-ask-about-save t
- "*If not nil, \\[antlr-run-tool] asks which buffers to save.
+ "If not nil, \\[antlr-run-tool] asks which buffers to save.
Otherwise, it saves all modified buffers before running without asking."
:group 'antlr
:type 'boolean)
(defcustom antlr-makefile-specification
'("\n" ("GENS" "GENS%d" " \\\n\t") "$(ANTLR)")
- "*Variable to specify the appearance of the generated makefile rules.
+ "Variable to specify the appearance of the generated makefile rules.
This variable influences the output of \\[antlr-show-makefile-rules].
It looks like \(RULE-SEP GEN-VAR-SPEC COMMAND).
formats.")
(defvar antlr-unknown-file-formats '("?%s?.g" "?%s?")
- "*Formats which specify the names of unknown files.
+ "Formats which specify the names of unknown files.
The value looks like \(SUPER-GRAMMAR-FILE-FORMAT SUPER-EVOCAB-FORMAT).
SUPER-GRAMMAR-FORMAT is a format string, it specifies with substitution
;;;===========================================================================
(defcustom antlr-imenu-name t ; (featurep 'xemacs) ; TODO: Emacs-21 bug?
- "*Non-nil, if a \"Index\" menu should be added to the menubar.
+ "Non-nil, if a \"Index\" menu should be added to the menubar.
If it is a string, it is used instead \"Index\". Requires package
imenu."
:group 'antlr
;;;===========================================================================
(defcustom antlr-font-lock-maximum-decoration 'inherit
- "*The maximum decoration level for fontifying actions.
+ "The maximum decoration level for fontifying actions.
Value `none' means, do not fontify actions, just normal grammar code
according to `antlr-font-lock-additional-keywords'. Value `inherit'
means, use value of `font-lock-maximum-decoration'. Any other value is
:group 'languages)
(defcustom asm-comment-char ?\;
- "*The comment-start character assumed by Asm mode."
+ "The comment-start character assumed by Asm mode."
:type 'character
:group 'asm)
new-beg new-end need-new-beg need-new-end)
;; Locate the barrier before the changed region
(goto-char (if beg-lit-limits (car beg-lit-limits) beg))
- (c-syntactic-skip-backward "^;{}" (max (- beg 2048) (point-min)))
+ (c-syntactic-skip-backward "^;{}" (c-determine-limit 512))
(setq new-beg (point))
;; Remove the syntax-table properties from each pertinent <...> pair.
;; Locate the barrier after END.
(goto-char (if end-lit-limits (cdr end-lit-limits) end))
- (c-syntactic-re-search-forward "[;{}]"
- (min (+ end 2048) (point-max)) 'end)
+ (c-syntactic-re-search-forward "[;{}]" (c-determine-+ve-limit 512) 'end)
(setq new-end (point))
;; Remove syntax-table properties from the remaining pertinent <...>
A sample value might look like: `\\(_P\\|_PROTO\\)'.")
+;; *Warning for cc-mode developers*
+;;
+;; `cc-imenu-objc-generic-expression' elements depend on
+;; `cc-imenu-c++-generic-expression'. So if you change this
+;; expression, you need to change following variables,
+;; `cc-imenu-objc-generic-expression-*-index',
+;; too. `cc-imenu-objc-function' uses these *-index variables, in
+;; order to know where the each regexp *group \\(foobar\\)* elements
+;; are started.
+;;
+;; *-index variables are initialized during `cc-imenu-objc-generic-expression'
+;; being initialized.
+;;
+
(defvar cc-imenu-c++-generic-expression
`(
;; Try to match ::operator definitions first. Otherwise `X::operator new ()'
")"
"[.," c-alnum " \t\n\r]*"
"{"
- )) 1))
- "Imenu generic expression for Java mode. See
-`imenu-generic-expression'.")
-
-;; *Warning for cc-mode developers*
-;;
-;; `cc-imenu-objc-generic-expression' elements depend on
-;; `cc-imenu-c++-generic-expression'. So if you change this
-;; expression, you need to change following variables,
-;; `cc-imenu-objc-generic-expression-*-index',
-;; too. `cc-imenu-objc-function' uses these *-index variables, in
-;; order to know where the each regexp *group \\(foobar\\)* elements
-;; are started.
-;;
-;; *-index variables are initialized during `cc-imenu-objc-generic-expression'
-;; being initialized.
-;;
+ )) 1))
+ "Imenu generic expression for Java mode. See `imenu-generic-expression'.")
;; Internal variables
(defvar cc-imenu-objc-generic-expression-noreturn-index nil)
"\\|"
;; > General function name regexp
;; Pick a token by (match-string 3)
- (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 5
+ (car (cdr (nth 2 cc-imenu-c++-generic-expression))) ; -> index += 6
(prog2 (setq cc-imenu-objc-generic-expression-general-func-index 3) "")
;; > Special case for definitions using phony prototype macros like:
;; > `int main _PROTO( (int argc,char *argv[]) )'.
(concat
"\\|"
(car (cdr (nth 3 cc-imenu-c++-generic-expression))) ; -> index += 1
- (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "")
+ (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 10) "")
)
- (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 8) "")
+ (prog2 (setq cc-imenu-objc-generic-expression-objc-base-index 9) "")
"") ; -> index += 0
- (prog2 (setq cc-imenu-objc-generic-expression-proto-index 8) "")
+ (prog2 (setq cc-imenu-objc-generic-expression-proto-index 9) "")
;;
;; For Objective-C
;; Pick a token by (match-string 8 or 9)
:group 'languages)
(defcustom cfengine-indent 2
- "*Size of a CFEngine indentation step in columns."
+ "Size of a CFEngine indentation step in columns."
:group 'cfengine
:type 'integer)
(defcustom c-macro-shrink-window-flag nil
- "*Non-nil means shrink the *Macroexpansion* window to fit its contents."
+ "Non-nil means shrink the *Macroexpansion* window to fit its contents."
:type 'boolean
:group 'c-macro)
(defcustom c-macro-prompt-flag nil
- "*Non-nil makes `c-macro-expand' prompt for preprocessor arguments."
+ "Non-nil makes `c-macro-expand' prompt for preprocessor arguments."
:type 'boolean
:group 'c-macro)
:group 'c-macro)
(defcustom c-macro-cppflags ""
- "*Preprocessor flags used by `c-macro-expand'."
+ "Preprocessor flags used by `c-macro-expand'."
:type 'string
:group 'c-macro)
This is bound before running `compilation-filter-hook'.")
(defvar compilation-first-column 1
- "*This is how compilers number the first column, usually 1 or 0.
+ "This is how compilers number the first column, usually 1 or 0.
If this is buffer-local in the destination buffer, Emacs obeys
that value, otherwise it uses the value in the *compilation*
buffer. This enables a major-mode to specify its own value.")
;;;###autoload
(defvar compilation-process-setup-function nil
- "*Function to call to customize the compilation process.
+ "Function to call to customize the compilation process.
This function is called immediately before the compilation process is
started. It can be used to set any variables or functions that are used
while processing the output of the compilation process.")
(defvar compilation-locs ())
(defvar compilation-debug nil
- "*Set this to t before creating a *compilation* buffer.
+ "Set this to t before creating a *compilation* buffer.
Then every error line will have a debug text property with the matcher that
fit this line and the match data. Use `describe-text-properties'.")
;; (make-variable-buffer-local 'compilation-buffer-modtime)
(defvar compilation-skip-to-next-location t
- "*If non-nil, skip multiple error messages for the same source location.")
+ "If non-nil, skip multiple error messages for the same source location.")
(defcustom compilation-skip-threshold 1
"Compilation motion commands skip less important messages.
:prefix "cpp-")
(defcustom cpp-config-file (convert-standard-filename ".cpp.el")
- "*File name to save cpp configuration."
+ "File name to save cpp configuration."
:type 'file
:group 'cpp)
:type '(choice (const invisible) (face)))
(defcustom cpp-known-face 'invisible
- "*Face used for known cpp symbols."
+ "Face used for known cpp symbols."
:type 'cpp-face
:group 'cpp)
(defcustom cpp-unknown-face 'highlight
- "*Face used for unknown cpp symbols."
+ "Face used for unknown cpp symbols."
:type 'cpp-face
:group 'cpp)
(defcustom cpp-face-type 'light
- "*Indicate what background face type you prefer.
+ "Indicate what background face type you prefer.
Can be either light or dark for color screens, mono for monochrome
screens, and none if you don't use a window system and don't have
a color-capable display."
:group 'cpp)
(defcustom cpp-known-writable t
- "*Non-nil means you are allowed to modify the known conditionals."
+ "Non-nil means you are allowed to modify the known conditionals."
:type 'boolean
:group 'cpp)
(defcustom cpp-unknown-writable t
- "*Non-nil means you are allowed to modify the unknown conditionals."
+ "Non-nil means you are allowed to modify the unknown conditionals."
:type 'boolean
:group 'cpp)
:group 'faces)
(defvar cwarn-mode nil
- "*Non-nil when Cwarn mode is active.
+ "Non-nil when Cwarn mode is active.
Never set this variable directly, use the command `cwarn-mode'
instead.")
:group 'languages)
(defcustom dcl-basic-offset 4
- "*Number of columns to indent a block in DCL.
+ "Number of columns to indent a block in DCL.
A block is the commands between THEN-ELSE-ENDIF and between the commands
dcl-block-begin-regexp and dcl-block-end-regexp.
(defcustom dcl-continuation-offset 6
- "*Number of columns to indent a continuation line in DCL.
+ "Number of columns to indent a continuation line in DCL.
A continuation line is a line that follows a line ending with `-'.
The meaning of this variable may be changed if
(defcustom dcl-margin-offset 8
- "*Indentation for the first command line in DCL.
+ "Indentation for the first command line in DCL.
The first command line in a file or after a SUBROUTINE statement is indented
this much. Other command lines are indented the same number of columns as
the preceding command line.
(defcustom dcl-margin-label-offset 2
- "*Number of columns to indent a margin label in DCL.
+ "Number of columns to indent a margin label in DCL.
A margin label is a label that doesn't begin or end a block, i.e. it
doesn't match dcl-block-begin-regexp or dcl-block-end-regexp."
:type 'integer
(defcustom dcl-comment-line-regexp "^\\$!"
- "*Regexp describing the start of a comment line in DCL.
+ "Regexp describing the start of a comment line in DCL.
Comment lines are not indented."
:type 'regexp
:group 'dcl)
(defcustom dcl-block-begin-regexp "loop[0-9]*:"
- "*Regexp describing a command that begins an indented block in DCL.
+ "Regexp describing a command that begins an indented block in DCL.
Set to nil to only indent at THEN-ELSE-ENDIF."
:type 'regexp
:group 'dcl)
(defcustom dcl-block-end-regexp "endloop[0-9]*:"
- "*Regexp describing a command that ends an indented block in DCL.
+ "Regexp describing a command that ends an indented block in DCL.
Set to nil to only indent at THEN-ELSE-ENDIF."
:type 'regexp
:group 'dcl)
(defcustom dcl-calc-command-indent-function nil
- "*Function to calculate indentation for a command line in DCL.
+ "Function to calculate indentation for a command line in DCL.
If this variable is non-nil it is called as a function:
\(func INDENT-TYPE CUR-INDENT EXTRA-INDENT LAST-POINT THIS-POINT)
(defcustom dcl-calc-cont-indent-function 'dcl-calc-cont-indent-relative
- "*Function to calculate indentation for a continuation line.
+ "Function to calculate indentation for a continuation line.
If this variable is non-nil it is called as a function:
\(func CUR-INDENT EXTRA-INDENT)
(defcustom dcl-tab-always-indent t
- "*Controls the operation of the TAB key in DCL mode.
+ "Controls the operation of the TAB key in DCL mode.
If t, pressing TAB always indents the current line.
If nil, pressing TAB indents the current line if point is at the left margin.
Data lines (i.e. lines not part of a command line or continuation line) are
(defcustom dcl-electric-characters t
- "*Non-nil means reindent immediately when a label, ELSE or ENDIF is inserted."
+ "Non-nil means reindent immediately when a label, ELSE or ENDIF is inserted."
:type 'boolean
:group 'dcl)
(defcustom dcl-tempo-comma ", "
- "*Text to insert when a comma is needed in a template, in DCL mode."
+ "Text to insert when a comma is needed in a template, in DCL mode."
:type 'string
:group 'dcl)
(defcustom dcl-tempo-left-paren "("
- "*Text to insert when a left parenthesis is needed in a template in DCL."
+ "Text to insert when a left parenthesis is needed in a template in DCL."
:type 'string
:group 'dcl)
(defcustom dcl-tempo-right-paren ")"
- "*Text to insert when a right parenthesis is needed in a template in DCL."
+ "Text to insert when a right parenthesis is needed in a template in DCL."
:type 'string
:group 'dcl)
; I couldn't decide what looked best, so I'll let you decide...
; Remember, you can also customize this with imenu-submenu-name-format.
(defcustom dcl-imenu-label-labels "Labels"
- "*Imenu menu title for sub-listing with label names."
+ "Imenu menu title for sub-listing with label names."
:type 'string
:group 'dcl)
(defcustom dcl-imenu-label-goto "GOTO"
- "*Imenu menu title for sub-listing with GOTO statements."
+ "Imenu menu title for sub-listing with GOTO statements."
:type 'string
:group 'dcl)
(defcustom dcl-imenu-label-gosub "GOSUB"
- "*Imenu menu title for sub-listing with GOSUB statements."
+ "Imenu menu title for sub-listing with GOSUB statements."
:type 'string
:group 'dcl)
(defcustom dcl-imenu-label-call "CALL"
- "*Imenu menu title for sub-listing with CALL statements."
+ "Imenu menu title for sub-listing with CALL statements."
:type 'string
:group 'dcl)
(,dcl-imenu-label-goto "\\s-GOTO[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)
(,dcl-imenu-label-gosub "\\s-GOSUB[ \t]+\\([A-Za-z0-9_\$]+\\)" 1)
(,dcl-imenu-label-call "\\s-CALL[ \t]+\\([A-Za-z0-9_\$]+\\)" 1))
- "*Default imenu generic expression for DCL.
+ "Default imenu generic expression for DCL.
The default includes SUBROUTINE labels in the main listing and
sub-listings for other labels, CALL, GOTO and GOSUB statements.
(defcustom dcl-mode-hook nil
- "*Hook called by `dcl-mode'."
+ "Hook called by `dcl-mode'."
:type 'hook
:group 'dcl)
(defcustom dcl-electric-reindent-regexps
(list "endif" "else" dcl-label-r)
- "*Regexps that can trigger an electric reindent.
+ "Regexps that can trigger an electric reindent.
A list of regexps that will trigger a reindent if the last letter
is defined as dcl-electric-character.
"True if in debug mode.")
(defcustom delphi-search-path "."
- "*Directories to search when finding external units.
+ "Directories to search when finding external units.
It is a list of directory strings. If only a single directory,
it can be a single string instead of a list. If a directory
ends in \"...\" then that directory is recursively searched."
:group 'delphi)
(defcustom delphi-indent-level 3
- "*Indentation of Delphi statements with respect to containing block.
+ "Indentation of Delphi statements with respect to containing block.
E.g.
begin
:group 'delphi)
(defcustom delphi-compound-block-indent 0
- "*Extra indentation for blocks in compound statements. E.g.
+ "Extra indentation for blocks in compound statements. E.g.
// block indent = 0 vs // block indent = 2
if b then if b then
:group 'delphi)
(defcustom delphi-case-label-indent delphi-indent-level
- "*Extra indentation for case statement labels. E.g.
+ "Extra indentation for case statement labels. E.g.
// case indent = 0 vs // case indent = 3
case value of case value of
:group 'delphi)
(defcustom delphi-verbose t ; nil
- "*If true then Delphi token processing progress is reported to the user."
+ "If true then Delphi token processing progress is reported to the user."
:type 'boolean
:group 'delphi)
(defcustom delphi-tab-always-indents t
- "*Non-nil means TAB in Delphi mode should always reindent the current line,
+ "Non-nil means TAB in Delphi mode should always reindent the current line,
regardless of where in the line point is when the TAB command is used."
:type 'boolean
:group 'delphi)
(defcustom delphi-newline-always-indents t
- "*Non-nil means NEWLINE in Delphi mode should always reindent the current
+ "Non-nil means NEWLINE in Delphi mode should always reindent the current
line, insert a blank line and move to the default indent column of the blank
line. If nil, then no indentation occurs, and NEWLINE does the usual
behavior. This is useful when one needs to do customized indentation that
:group 'delphi)
(defcustom delphi-comment-face 'font-lock-comment-face
- "*Face used to color Delphi comments."
+ "Face used to color Delphi comments."
:type 'face
:group 'delphi)
(defcustom delphi-string-face 'font-lock-string-face
- "*Face used to color Delphi strings."
+ "Face used to color Delphi strings."
:type 'face
:group 'delphi)
(defcustom delphi-keyword-face 'font-lock-keyword-face
- "*Face used to color Delphi keywords."
+ "Face used to color Delphi keywords."
:type 'face
:group 'delphi)
(defcustom delphi-other-face nil
- "*Face used to color everything else."
+ "Face used to color everything else."
:type '(choice (const :tag "None" nil) face)
:group 'delphi)
(defcustom ebnf-horizontal-orientation nil
- "*Non-nil means productions are drawn horizontally."
+ "Non-nil means productions are drawn horizontally."
:type 'boolean
:version "20"
:group 'ebnf-displacement)
(defcustom ebnf-horizontal-max-height nil
- "*Non-nil means to use maximum production height in horizontal orientation.
+ "Non-nil means to use maximum production height in horizontal orientation.
It is only used when `ebnf-horizontal-orientation' is non-nil."
:type 'boolean
(defcustom ebnf-production-horizontal-space 0.0 ; use ebnf2ps default value
- "*Specify horizontal space in points between productions.
+ "Specify horizontal space in points between productions.
Value less or equal to zero forces ebnf2ps to set a proper default value."
:type 'number
(defcustom ebnf-production-vertical-space 0.0 ; use ebnf2ps default value
- "*Specify vertical space in points between productions.
+ "Specify vertical space in points between productions.
Value less or equal to zero forces ebnf2ps to set a proper default value."
:type 'number
(defcustom ebnf-justify-sequence 'center
- "*Specify justification of terms in a sequence inside alternatives.
+ "Specify justification of terms in a sequence inside alternatives.
Valid values are:
(defcustom ebnf-special-show-delimiter t
- "*Non-nil means special delimiter (character `?') is shown."
+ "Non-nil means special delimiter (character `?') is shown."
:type 'boolean
:version "20"
:group 'ebnf-special)
(defcustom ebnf-special-font '(7 Courier "Black" "Gray95" bold italic)
- "*Specify special font.
+ "Specify special font.
See documentation for `ebnf-production-font'."
:type '(list :tag "Special Font"
(defcustom ebnf-special-shape 'bevel
- "*Specify special box shape.
+ "Specify special box shape.
See documentation for `ebnf-non-terminal-shape'."
:type '(radio :tag "Special Shape"
(defcustom ebnf-special-shadow nil
- "*Non-nil means special box will have a shadow."
+ "Non-nil means special box will have a shadow."
:type 'boolean
:version "20"
:group 'ebnf-special)
(defcustom ebnf-special-border-width 0.5
- "*Specify border width for special box."
+ "Specify border width for special box."
:type 'number
:version "20"
:group 'ebnf-special)
(defcustom ebnf-special-border-color "Black"
- "*Specify border color for special box."
+ "Specify border color for special box."
:type 'string
:version "20"
:group 'ebnf-special)
(defcustom ebnf-except-font '(7 Courier "Black" "Gray90" bold italic)
- "*Specify except font.
+ "Specify except font.
See documentation for `ebnf-production-font'."
:type '(list :tag "Except Font"
(defcustom ebnf-except-shape 'bevel
- "*Specify except box shape.
+ "Specify except box shape.
See documentation for `ebnf-non-terminal-shape'."
:type '(radio :tag "Except Shape"
(defcustom ebnf-except-shadow nil
- "*Non-nil means except box will have a shadow."
+ "Non-nil means except box will have a shadow."
:type 'boolean
:version "20"
:group 'ebnf-except)
(defcustom ebnf-except-border-width 0.25
- "*Specify border width for except box."
+ "Specify border width for except box."
:type 'number
:version "20"
:group 'ebnf-except)
(defcustom ebnf-except-border-color "Black"
- "*Specify border color for except box."
+ "Specify border color for except box."
:type 'string
:version "20"
:group 'ebnf-except)
(defcustom ebnf-repeat-font '(7 Courier "Black" "Gray85" bold italic)
- "*Specify repeat font.
+ "Specify repeat font.
See documentation for `ebnf-production-font'."
:type '(list :tag "Repeat Font"
(defcustom ebnf-repeat-shape 'bevel
- "*Specify repeat box shape.
+ "Specify repeat box shape.
See documentation for `ebnf-non-terminal-shape'."
:type '(radio :tag "Repeat Shape"
(defcustom ebnf-repeat-shadow nil
- "*Non-nil means repeat box will have a shadow."
+ "Non-nil means repeat box will have a shadow."
:type 'boolean
:version "20"
:group 'ebnf-repeat)
(defcustom ebnf-repeat-border-width 0.0
- "*Specify border width for repeat box."
+ "Specify border width for repeat box."
:type 'number
:version "20"
:group 'ebnf-repeat)
(defcustom ebnf-repeat-border-color "Black"
- "*Specify border color for repeat box."
+ "Specify border color for repeat box."
:type 'string
:version "20"
:group 'ebnf-repeat)
(defcustom ebnf-terminal-font '(7 Courier "Black" "White")
- "*Specify terminal font.
+ "Specify terminal font.
See documentation for `ebnf-production-font'."
:type '(list :tag "Terminal Font"
(defcustom ebnf-terminal-shape 'miter
- "*Specify terminal box shape.
+ "Specify terminal box shape.
See documentation for `ebnf-non-terminal-shape'."
:type '(radio :tag "Terminal Shape"
(defcustom ebnf-terminal-shadow nil
- "*Non-nil means terminal box will have a shadow."
+ "Non-nil means terminal box will have a shadow."
:type 'boolean
:version "20"
:group 'ebnf-terminal)
(defcustom ebnf-terminal-border-width 1.0
- "*Specify border width for terminal box."
+ "Specify border width for terminal box."
:type 'number
:version "20"
:group 'ebnf-terminal)
(defcustom ebnf-terminal-border-color "Black"
- "*Specify border color for terminal box."
+ "Specify border color for terminal box."
:type 'string
:version "20"
:group 'ebnf-terminal)
(defcustom ebnf-production-name-p t
- "*Non-nil means production name will be printed."
+ "Non-nil means production name will be printed."
:type 'boolean
:version "20"
:group 'ebnf-production)
(defcustom ebnf-sort-production nil
- "*Specify how productions are sorted.
+ "Specify how productions are sorted.
Valid values are:
(defcustom ebnf-production-font '(10 Helvetica "Black" "White" bold)
- "*Specify production header font.
+ "Specify production header font.
It is a list with the following form:
(defcustom ebnf-non-terminal-font '(7 Helvetica "Black" "White")
- "*Specify non-terminal font.
+ "Specify non-terminal font.
See documentation for `ebnf-production-font'."
:type '(list :tag "Non-Terminal Font"
(defcustom ebnf-non-terminal-shape 'round
- "*Specify non-terminal box shape.
+ "Specify non-terminal box shape.
Valid values are:
(defcustom ebnf-non-terminal-shadow nil
- "*Non-nil means non-terminal box will have a shadow."
+ "Non-nil means non-terminal box will have a shadow."
:type 'boolean
:version "20"
:group 'ebnf-non-terminal)
(defcustom ebnf-non-terminal-border-width 1.0
- "*Specify border width for non-terminal box."
+ "Specify border width for non-terminal box."
:type 'number
:version "20"
:group 'ebnf-non-terminal)
(defcustom ebnf-non-terminal-border-color "Black"
- "*Specify border color for non-terminal box."
+ "Specify border color for non-terminal box."
:type 'string
:version "20"
:group 'ebnf-non-terminal)
(defcustom ebnf-arrow-shape 'hollow
- "*Specify the arrow shape.
+ "Specify the arrow shape.
Valid values are:
(defcustom ebnf-chart-shape 'round
- "*Specify chart flow shape.
+ "Specify chart flow shape.
See documentation for `ebnf-non-terminal-shape'."
:type '(radio :tag "Chart Flow Shape"
(defcustom ebnf-user-arrow nil
- "*Specify a sexp for user arrow shape (a PostScript code).
+ "Specify a sexp for user arrow shape (a PostScript code).
When evaluated, the sexp should return nil or a string containing PostScript
code. PostScript code should draw a right arrow.
(defcustom ebnf-syntax 'ebnf
- "*Specify syntax to be recognized.
+ "Specify syntax to be recognized.
Valid values are:
(defcustom ebnf-lex-comment-char ?\;
- "*Specify the line comment character.
+ "Specify the line comment character.
It's used only when `ebnf-syntax' is `ebnf'."
:type 'character
(defcustom ebnf-lex-eop-char ?.
- "*Specify the end of production character.
+ "Specify the end of production character.
It's used only when `ebnf-syntax' is `ebnf'."
:type 'character
(defcustom ebnf-terminal-regexp nil
- "*Specify how it's a terminal name.
+ "Specify how it's a terminal name.
If it's nil, the terminal name must be enclosed by `\"'.
If it's a string, it should be a regexp that it'll be used to determine a
(defcustom ebnf-case-fold-search nil
- "*Non-nil means ignore case on matching.
+ "Non-nil means ignore case on matching.
It's only used when `ebnf-terminal-regexp' is non-nil and when `ebnf-syntax' is
`ebnf'."
(defcustom ebnf-iso-alternative-p nil
- "*Non-nil means use alternative ISO EBNF.
+ "Non-nil means use alternative ISO EBNF.
It's only used when `ebnf-syntax' is `iso-ebnf'.
(defcustom ebnf-iso-normalize-p nil
- "*Non-nil means normalize ISO EBNF syntax names.
+ "Non-nil means normalize ISO EBNF syntax names.
Normalize a name means that several contiguous spaces inside name become a
single space, so \"A B C\" is normalized to \"A B C\".
(defcustom ebnf-file-suffix-regexp "\.[Bb][Nn][Ff]$"
- "*Specify file name suffix that contains EBNF.
+ "Specify file name suffix that contains EBNF.
See `ebnf-eps-directory' command."
:type 'regexp
(defcustom ebnf-eps-prefix "ebnf--"
- "*Specify EPS prefix file name.
+ "Specify EPS prefix file name.
See `ebnf-eps-buffer' and `ebnf-eps-region' commands."
:type 'string
(defcustom ebnf-eps-header-font '(11 Helvetica "Black" "White" bold)
- "*Specify EPS header font.
+ "Specify EPS header font.
See documentation for `ebnf-production-font'.
(defcustom ebnf-eps-header nil
- "*Specify EPS header.
+ "Specify EPS header.
The value should be a string, a symbol or nil.
(defcustom ebnf-eps-footer-font '(7 Helvetica "Black" "White" bold)
- "*Specify EPS footer font.
+ "Specify EPS footer font.
See documentation for `ebnf-production-font'.
(defcustom ebnf-eps-footer nil
- "*Specify EPS footer.
+ "Specify EPS footer.
The value should be a string, a symbol or nil.
(defcustom ebnf-entry-percentage 0.5 ; middle
- "*Specify entry height on alternatives.
+ "Specify entry height on alternatives.
It must be a float between 0.0 (top) and 1.0 (bottom)."
:type 'number
(defcustom ebnf-default-width 0.6
- "*Specify additional border width over default terminal, non-terminal or
+ "Specify additional border width over default terminal, non-terminal or
special."
:type 'number
:version "20"
;; Printing color requires x-color-values.
(defcustom ebnf-color-p (or (fboundp 'x-color-values) ; Emacs
(fboundp 'color-instance-rgb-components)) ; XEmacs
- "*Non-nil means use color."
+ "Non-nil means use color."
:type 'boolean
:version "20"
:group 'ebnf2ps)
(defcustom ebnf-line-width 1.0
- "*Specify flow line width."
+ "Specify flow line width."
:type 'number
:version "20"
:group 'ebnf2ps)
(defcustom ebnf-line-color "Black"
- "*Specify flow line color."
+ "Specify flow line color."
:type 'string
:version "20"
:group 'ebnf2ps)
(if (eq ebnf-arrow-shape 'none)
0.0
(* (sqrt 5.0) 0.65 ebnf-line-width))
- "*Specify extra width for arrow shape drawing.
+ "Specify extra width for arrow shape drawing.
The extra width is used to avoid that the arrowhead and the terminal border
overlap. It depends on `ebnf-arrow-shape' and `ebnf-line-width'."
(defcustom ebnf-arrow-scale 1.0
- "*Specify the arrow scale.
+ "Specify the arrow scale.
Values lower than 1.0, shrink the arrow.
Values greater than 1.0, expand the arrow."
(defcustom ebnf-debug-ps nil
- "*Non-nil means to generate PostScript debug procedures.
+ "Non-nil means to generate PostScript debug procedures.
It is intended to help PostScript programmers in debugging."
:type 'boolean
(defcustom ebnf-use-float-format t
- "*Non-nil means use `%f' float format.
+ "Non-nil means use `%f' float format.
The advantage of using float format is that ebnf2ps generates a little short
PostScript file.
(defcustom ebnf-stop-on-error nil
- "*Non-nil means signal error and stop. Otherwise, signal error and continue."
+ "Non-nil means signal error and stop. Otherwise, signal error and continue."
:type 'boolean
:version "20"
:group 'ebnf2ps)
(defcustom ebnf-yac-ignore-error-recovery nil
- "*Non-nil means ignore error recovery.
+ "Non-nil means ignore error recovery.
It's only used when `ebnf-syntax' is `yacc'."
:type 'boolean
(defcustom ebnf-ignore-empty-rule nil
- "*Non-nil means ignore empty rules.
+ "Non-nil means ignore empty rules.
It's interesting to set this variable if your Yacc/Bison grammar has a lot of
middle action rule."
(defcustom ebnf-optimize nil
- "*Non-nil means optimize syntactic chart of rules.
+ "Non-nil means optimize syntactic chart of rules.
The following optimizations are done:
(defcustom ebnf-log nil
- "*Non-nil means generate log messages.
+ "Non-nil means generate log messages.
The log messages are generated into the buffer *Ebnf2ps Log*.
These messages are intended to help debugging ebnf2ps."
(defcustom ebrowse-search-path nil
- "*List of directories to search for source files in a class tree.
+ "List of directories to search for source files in a class tree.
Elements should be directory names; nil as an element means to try
to find source files relative to the location of the BROWSE file loaded."
:group 'ebrowse
(defcustom ebrowse-view/find-hook nil
- "*Hooks run after finding or viewing a member or class."
+ "Hooks run after finding or viewing a member or class."
:group 'ebrowse
:type 'hook)
(defcustom ebrowse-not-found-hook nil
- "*Hooks run when finding or viewing a member or class was not successful."
+ "Hooks run when finding or viewing a member or class was not successful."
:group 'ebrowse
:type 'hook)
(defcustom ebrowse-electric-list-mode-hook nil
- "*Hook called by `ebrowse-electric-position-mode'."
+ "Hook called by `ebrowse-electric-position-mode'."
:group 'ebrowse
:type 'hook)
(defcustom ebrowse-max-positions 50
- "*Number of markers saved on electric position stack."
+ "Number of markers saved on electric position stack."
:group 'ebrowse
:type 'integer)
(defcustom ebrowse-tree-mode-hook nil
- "*Hook run in each new tree buffer."
+ "Hook run in each new tree buffer."
:group 'ebrowse-tree
:type 'hook)
(defcustom ebrowse-tree-buffer-name "*Tree*"
- "*The default name of class tree buffers."
+ "The default name of class tree buffers."
:group 'ebrowse-tree
:type 'string)
(defcustom ebrowse--indentation 4
- "*The amount by which subclasses are indented in the tree."
+ "The amount by which subclasses are indented in the tree."
:group 'ebrowse-tree
:type 'integer)
(defcustom ebrowse-source-file-column 40
- "*The column in which source file names are displayed in the tree."
+ "The column in which source file names are displayed in the tree."
:group 'ebrowse-tree
:type 'integer)
(defcustom ebrowse-tree-left-margin 2
- "*Amount of space left at the left side of the tree display.
+ "Amount of space left at the left side of the tree display.
This space is used to display markers."
:group 'ebrowse-tree
:type 'integer)
(defcustom ebrowse-default-declaration-column 25
- "*The column in which member declarations are displayed in member buffers."
+ "The column in which member declarations are displayed in member buffers."
:group 'ebrowse-member
:type 'integer)
(defcustom ebrowse-default-column-width 25
- "*The width of the columns in member buffers (short display form)."
+ "The width of the columns in member buffers (short display form)."
:group 'ebrowse-member
:type 'integer)
(defcustom ebrowse-member-buffer-name "*Members*"
- "*The name of the buffer for member display."
+ "The name of the buffer for member display."
:group 'ebrowse-member
:type 'string)
(defcustom ebrowse-member-mode-hook nil
- "*Run in each new member buffer."
+ "Run in each new member buffer."
:group 'ebrowse-member
:type 'hook)
(defface ebrowse-tree-mark
'((((min-colors 88)) (:foreground "red1"))
(t (:foreground "red")))
- "*The face used for the mark character in the tree."
+ "The face used for the mark character in the tree."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-tree-mark-face 'ebrowse-tree-mark "22.1")
(defface ebrowse-root-class
'((((min-colors 88)) (:weight bold :foreground "blue1"))
(t (:weight bold :foreground "blue")))
- "*The face used for root classes in the tree."
+ "The face used for root classes in the tree."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-root-class-face 'ebrowse-root-class "22.1")
(defface ebrowse-file-name
'((t (:italic t)))
- "*The face for filenames displayed in the tree."
+ "The face for filenames displayed in the tree."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-file-name-face 'ebrowse-file-name "22.1")
(defface ebrowse-default
'((t nil))
- "*Face for everything else in the tree not having other faces."
+ "Face for everything else in the tree not having other faces."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-default-face 'ebrowse-default "22.1")
(defface ebrowse-member-attribute
'((((min-colors 88)) (:foreground "red1"))
(t (:foreground "red")))
- "*Face used to display member attributes."
+ "Face used to display member attributes."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-member-attribute-face
'ebrowse-member-attribute "22.1")
(defface ebrowse-member-class
'((t (:foreground "purple")))
- "*Face used to display the class title in member buffers."
+ "Face used to display the class title in member buffers."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-member-class-face
'ebrowse-member-class "22.1")
(defface ebrowse-progress
'((((min-colors 88)) (:background "blue1"))
(t (:background "blue")))
- "*Face for progress indicator."
+ "Face for progress indicator."
:group 'ebrowse-faces)
(define-obsolete-face-alias 'ebrowse-progress-face 'ebrowse-progress "22.1")
;; prefix `\C-c\C-m' to browse commands.
(defvar ebrowse-global-map nil
- "*Keymap for Ebrowse commands.")
+ "Keymap for Ebrowse commands.")
(defvar ebrowse-global-prefix-key "\C-c\C-m"
;;;###autoload
(defvar tags-file-name nil
- "*File name of tags table.
+ "File name of tags table.
To switch to a new tags table, setting this variable is sufficient.
If you set this variable, do not also set `tags-table-list'.
Use the `etags' program to make a tags table file.")
;;;###autoload
(defcustom tags-case-fold-search 'default
- "*Whether tags operations should be case-sensitive.
+ "Whether tags operations should be case-sensitive.
A value of t means case-insensitive, a value of nil means case-sensitive.
Any other value means use the setting of `case-fold-search'."
:group 'etags
;;;###autoload
;; Use `visit-tags-table-buffer' to cycle through tags tables in this list.
(defcustom tags-table-list nil
- "*List of file names of tags tables to search.
+ "List of file names of tags tables to search.
An element that is a directory means the file \"TAGS\" in that directory.
To switch to a new list of tags tables, setting this variable is sufficient.
If you set this variable, do not also set `tags-file-name'.
;;;###autoload
(defcustom tags-compression-info-list
(purecopy '("" ".Z" ".bz2" ".gz" ".xz" ".tgz"))
- "*List of extensions tried by etags when jka-compr is used.
+ "List of extensions tried by etags when jka-compr is used.
An empty string means search the non-compressed file.
These extensions will be tried only if jka-compr was activated
\(i.e. via customize of `auto-compression-mode' or by calling the function
;;;###autoload
(defcustom tags-add-tables 'ask-user
- "*Control whether to add a new tags table to the current list.
+ "Control whether to add a new tags table to the current list.
t means do; nil means don't (always start a new list).
Any other value means ask the user whether to add a new tags table
to the current list (as opposed to starting a new list)."
(other :tag "Ask" ask-user)))
(defcustom tags-revert-without-query nil
- "*Non-nil means reread a TAGS table without querying, if it has changed."
+ "Non-nil means reread a TAGS table without querying, if it has changed."
:group 'etags
:type 'boolean)
;;;###autoload
(defcustom find-tag-hook nil
- "*Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'.
+ "Hook to be run by \\[find-tag] after finding a tag. See `run-hooks'.
The value in the buffer in which \\[find-tag] is done is used,
not the value in the buffer \\[find-tag] goes to."
:group 'etags
;;;###autoload
(defcustom find-tag-default-function nil
- "*A function of no arguments used by \\[find-tag] to pick a default tag.
+ "A function of no arguments used by \\[find-tag] to pick a default tag.
If nil, and the symbol that is the value of `major-mode'
has a `find-tag-default-function' property (see `put'), that is used.
Otherwise, `find-tag-default' is used."
:type '(choice (const nil) function))
(defcustom find-tag-marker-ring-length 16
- "*Length of marker rings `find-tag-marker-ring' and `tags-location-ring'."
+ "Length of marker rings `find-tag-marker-ring' and `tags-location-ring'."
:group 'etags
:type 'integer
:version "20.3")
(defcustom tags-tag-face 'default
- "*Face for tags in the output of `tags-apropos'."
+ "Face for tags in the output of `tags-apropos'."
:group 'etags
:type 'face
:version "21.1")
(re-search-backward re bol t)))))
\f
(defcustom tags-loop-revert-buffers nil
- "*Non-nil means tags-scanning loops should offer to reread changed files.
+ "Non-nil means tags-scanning loops should offer to reread changed files.
These loops normally read each file into Emacs, but when a file
is already visited, they use the existing buffer.
When this flag is non-nil, they offer to revert the existing buffer
;; This used to default to `other', but that doesn't seem to have any
;; significance. fx 2000-02-11.
(defcustom executable-insert t ; 'other
- "*Non-nil means offer to add a magic number to a file.
+ "Non-nil means offer to add a magic number to a file.
This takes effect when you switch to certain major modes,
including Shell-script mode (`sh-mode').
When you type \\[executable-set-magic], it always offers to add or
(defcustom executable-query 'function
- "*If non-nil, ask user before changing an existing magic number.
+ "If non-nil, ask user before changing an existing magic number.
When this is `function', only ask when called non-interactively."
:type '(choice (const :tag "Don't Ask" nil)
(const :tag "Ask when non-interactive" function)
(defcustom executable-magicless-file-regexp "/[Mm]akefile$\\|/\\.\\(z?profile\\|bash_profile\\|z?login\\|bash_login\\|z?logout\\|bash_logout\\|.+shrc\\|esrc\\|rcrc\\|[kz]shenv\\)$"
- "*On files with this kind of name no magic is inserted or changed."
+ "On files with this kind of name no magic is inserted or changed."
:type 'regexp
:group 'executable)
(defcustom executable-prefix "#! "
- "*Interpreter magic number prefix inserted when there was no magic number."
+ "Interpreter magic number prefix inserted when there was no magic number."
:type 'string
:group 'executable)
(defcustom executable-chmod 73
- "*After saving, if the file is not executable, set this mode.
+ "After saving, if the file is not executable, set this mode.
This mode passed to `set-file-modes' is taken absolutely when negative, or
relative to the files existing modes. Do nothing if this is nil.
Typical values are 73 (+x) or -493 (rwxr-xr-x)."
(defvar executable-command nil)
(defcustom executable-self-display "tail"
- "*Command you use with argument `+2' to make text files self-display.
+ "Command you use with argument `+2' to make text files self-display.
Note that the like of `more' doesn't work too well under Emacs \\[shell]."
:type 'string
:group 'executable)
(defvar executable-font-lock-keywords
'(("\\`#!.*/\\([^ \t\n]+\\)" 1 font-lock-keyword-face t))
- "*Rules for highlighting executable scripts' magic number.
+ "Rules for highlighting executable scripts' magic number.
This can be included in `font-lock-keywords' by modes that call `executable'.")
(defvar f90-font-lock-keywords
f90-font-lock-keywords-2
- "*Default expressions to highlight in F90 mode.
+ "Default expressions to highlight in F90 mode.
Can be overridden by the value of `font-lock-maximum-decoration'.")
(setq flymake-timer
(run-at-time nil 1 'flymake-on-timer-event (current-buffer)))
- (when flymake-start-syntax-check-on-find-file
- (flymake-start-syntax-check)))))
+ (when (and flymake-start-syntax-check-on-find-file
+ ;; Since we write temp files in current dir, there's no point
+ ;; trying if the directory is read-only (bug#8954).
+ (file-writable-p (file-name-directory buffer-file-name)))
+ (with-demoted-errors
+ (flymake-start-syntax-check))))))
;; Turning the mode OFF.
(t
(defcustom glasses-original-separator "_"
- "*String to be displayed as `glasses-separator' in separator positions.
+ "String to be displayed as `glasses-separator' in separator positions.
For instance, if you set it to \"_\" and set `glasses-separator' to \"-\",
underscore separators are displayed as hyphens.
If `glasses-original-separator' is an empty string, no such display change is
;;;###autoload
(defcustom grep-window-height nil
- "*Number of lines in a grep window. If nil, use `compilation-window-height'."
+ "Number of lines in a grep window. If nil, use `compilation-window-height'."
:type '(choice (const :tag "Default" nil)
integer)
:version "22.1"
:group 'grep)
(defcustom grep-scroll-output nil
- "*Non-nil to scroll the *grep* buffer window as output appears.
+ "Non-nil to scroll the *grep* buffer window as output appears.
Setting it causes the grep commands to put point at the end of their
output window so that the end of the output is always visible rather
("tex" . "*.tex")
("texi" . "*.texi")
("asm" . "*.[sS]"))
- "*Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
+ "Alist of aliases for the FILES argument to `lgrep' and `rgrep'."
:type 'alist
:group 'grep)
(defcustom grep-find-ignored-directories
vc-directory-exclusion-list
- "*List of names of sub-directories which `rgrep' shall not recurse into.
+ "List of names of sub-directories which `rgrep' shall not recurse into.
If an element is a cons cell, the car is called on the search directory
to determine whether cdr should not be recursed into."
:type '(choice (repeat :tag "Ignored directories" string)
(unless (string-match-p "/\\'" s)
(concat "*" s)))
completion-ignored-extensions)))
- "*List of file names which `rgrep' and `lgrep' shall exclude.
+ "List of file names which `rgrep' and `lgrep' shall exclude.
If an element is a cons cell, the car is called on the search directory
to determine whether cdr should not be excluded."
:type '(choice (repeat :tag "Ignored file" string)
:group 'grep)
(defcustom grep-error-screen-columns nil
- "*If non-nil, column numbers in grep hits are screen columns.
+ "If non-nil, column numbers in grep hits are screen columns.
See `compilation-error-screen-columns'"
:type '(choice (const :tag "Default" nil)
integer)
(shell-quote-argument ")")
" -prune -o "))
(and grep-find-ignored-files
- (concat (shell-quote-argument "(")
+ (concat (shell-quote-argument "!") " -type d "
+ (shell-quote-argument "(")
;; we should use shell-quote-argument here
" -name "
(mapconcat
(defvar gud-dbx-history nil)
(defcustom gud-dbx-directories nil
- "*A list of directories that dbx should search for source code.
+ "A list of directories that dbx should search for source code.
If nil, only source files in the program directory
will be known to dbx.
(defvar gud-xdb-history nil)
(defcustom gud-xdb-directories nil
- "*A list of directories that xdb should search for source code.
+ "A list of directories that xdb should search for source code.
If nil, only source files in the program directory
will be known to xdb.
;; List of Java source file directories.
(defvar gud-jdb-directories (list ".")
- "*A list of directories that gud jdb should search for source code.
+ "A list of directories that gud jdb should search for source code.
The file names should be absolute, or relative to the current
directory.
:group 'languages)
(defcustom hs-hide-comments-when-hiding-all t
- "*Hide the comments too when you do an `hs-hide-all'."
+ "Hide the comments too when you do an `hs-hide-all'."
:type 'boolean
:group 'hideshow)
(defcustom hs-minor-mode-hook nil
- "*Hook called when hideshow minor mode is activated or deactivated."
+ "Hook called when hideshow minor mode is activated or deactivated."
:type 'hook
:group 'hideshow
:version "21.1")
(defcustom hs-isearch-open 'code
- "*What kind of hidden blocks to open when doing `isearch'.
+ "What kind of hidden blocks to open when doing `isearch'.
One of the following symbols:
code -- open only code blocks
(bibtex-mode ("@\\S(*\\(\\s(\\)" 1))
(java-mode "{" "}" "/[*/]" nil nil)
(js-mode "{" "}" "/[*/]" nil)))
- "*Alist for initializing the hideshow variables for different modes.
+ "Alist for initializing the hideshow variables for different modes.
Each element has the form
(MODE START END COMMENT-START FORWARD-SEXP-FUNC ADJUST-BEG-FUNC).
whitespace. Case does not matter.")
(defvar hs-hide-all-non-comment-function nil
- "*Function called if non-nil when doing `hs-hide-all' for non-comments.")
+ "Function called if non-nil when doing `hs-hide-all' for non-comments.")
(defvar hs-allow-nesting nil
- "*If non-nil, hiding remembers internal blocks.
+ "If non-nil, hiding remembers internal blocks.
This means that when the outer block is shown again,
any previously hidden internal blocks remain hidden.")
(defvar hs-hide-hook nil
- "*Hook called (with `run-hooks') at the end of commands to hide text.
+ "Hook called (with `run-hooks') at the end of commands to hide text.
These commands include the toggling commands (when the result is to hide
a block), `hs-hide-all', `hs-hide-block' and `hs-hide-level'.")
(defvar hs-show-hook nil
- "*Hook called (with `run-hooks') at the end of commands to show text.
+ "Hook called (with `run-hooks') at the end of commands to show text.
These commands include the toggling commands (when the result is to show
a block), `hs-show-all' and `hs-show-block'.")
(defvar hs-set-up-overlay nil
- "*Function called with one arg, OV, a newly initialized overlay.
+ "Function called with one arg, OV, a newly initialized overlay.
Hideshow puts a unique overlay on each range of text to be hidden
in the buffer. Here is a simple example of how to use this variable:
(forward-comment (point-max)))
(re-search-forward re (point-max) t))
(if (match-beginning 1)
- ;; we have found a block beginning
+ ;; We have found a block beginning.
(progn
(goto-char (match-beginning 1))
- (if hs-hide-all-non-comment-function
- (funcall hs-hide-all-non-comment-function)
- (hs-hide-block-at-point t)))
+ (unless (if hs-hide-all-non-comment-function
+ (funcall hs-hide-all-non-comment-function)
+ (hs-hide-block-at-point t))
+ ;; Go to end of matched data to prevent from getting stuck
+ ;; with an endless loop.
+ (goto-char (match-end 0))))
;; found a comment, probably
(let ((c-reg (hs-inside-comment-p)))
(when (and c-reg (car c-reg))
:group 'languages)
(defcustom icon-indent-level 4
- "*Indentation of Icon statements with respect to containing block."
+ "Indentation of Icon statements with respect to containing block."
:type 'integer
:group 'icon)
(defcustom icon-brace-imaginary-offset 0
- "*Imagined indentation of a Icon open brace that actually follows a statement."
+ "Imagined indentation of a Icon open brace that actually follows a statement."
:type 'integer
:group 'icon)
(defcustom icon-brace-offset 0
- "*Extra indentation for braces, compared with other text in same context."
+ "Extra indentation for braces, compared with other text in same context."
:type 'integer
:group 'icon)
(defcustom icon-continued-statement-offset 4
- "*Extra indent for Icon lines not starting new statements."
+ "Extra indent for Icon lines not starting new statements."
:type 'integer
:group 'icon)
(defcustom icon-continued-brace-offset 0
- "*Extra indent for Icon substatements that start with open-braces.
+ "Extra indent for Icon substatements that start with open-braces.
This is in addition to `icon-continued-statement-offset'."
:type 'integer
:group 'icon)
(defcustom icon-auto-newline nil
- "*Non-nil means automatically newline before and after braces Icon code.
+ "Non-nil means automatically newline before and after braces Icon code.
This applies when braces are inserted."
:type 'boolean
:group 'icon)
(defcustom icon-tab-always-indent t
- "*Non-nil means TAB in Icon mode should always reindent the current line.
+ "Non-nil means TAB in Icon mode should always reindent the current line.
It will then reindent, regardless of where in the line point is
when the TAB command is used."
:type 'boolean
"Obsolete variable. See `idlwave-html-help-location'.")
(defcustom idlwave-help-use-dedicated-frame t
- "*Non-nil means, use a separate frame for Online Help if possible."
+ "Non-nil means, use a separate frame for Online Help if possible."
:group 'idlwave-online-help
:type 'boolean)
:type 'symbol)
(defcustom idlwave-help-fontify-source-code nil
- "*Non-nil means, fontify source code displayed as help like normal code."
+ "Non-nil means, fontify source code displayed as help like normal code."
:group 'idlwave-online-help
:type 'boolean)
(defcustom idlwave-help-source-try-header t
- "*Non-nil means, try to find help in routine header when displaying source.
+ "Non-nil means, try to find help in routine header when displaying source.
Routines which are not documented in the system manual use their source as
help text. When this variable is non-nil, we try to find a description of
the help item in the first routine doclib header above the routine definition.
(defcustom idlwave-help-doclib-name "name"
- "*A regexp for the heading word to search for in doclib headers
+ "A regexp for the heading word to search for in doclib headers
which specifies the `name' section. Can be used for localization
support."
:group 'idlwave-online-help
:type 'string)
(defcustom idlwave-help-doclib-keyword "KEYWORD"
- "*A regexp for the heading word to search for in doclib headers
+ "A regexp for the heading word to search for in doclib headers
which specifies the `keywords' section. Can be used for localization
support."
:group 'idlwave-online-help
:group 'idlwave)
(defcustom idlwave-shell-prompt-pattern "^\r? ?IDL> "
- "*Regexp to match IDL prompt at beginning of a line.
+ "Regexp to match IDL prompt at beginning of a line.
For example, \"^\r?IDL> \" or \"^\r?WAVE> \".
The \"^\r?\" is needed, to indicate the beginning of the line, with
optional return character (which IDL seems to output randomly).
:type 'regexp)
(defcustom idlwave-shell-process-name "idl"
- "*Name to be associated with the IDL process. The buffer for the
+ "Name to be associated with the IDL process. The buffer for the
process output is made by surrounding this name with `*'s."
:group 'idlwave-shell-general-setup
:type 'string)
;; (defcustom idlwave-shell-automatic-start...) See idlwave.el
(defcustom idlwave-shell-use-dedicated-window nil
- "*Non-nil means, never replace the shell frame with another buffer."
+ "Non-nil means, never replace the shell frame with another buffer."
:group 'idlwave-shell-general-setup
:type 'boolean)
(defcustom idlwave-shell-use-dedicated-frame nil
- "*Non-nil means, IDLWAVE should use a special frame to display shell buffer."
+ "Non-nil means, IDLWAVE should use a special frame to display shell buffer."
:group 'idlwave-shell-general-setup
:type 'boolean)
(cons symbol sexp)))
(defcustom idlwave-shell-raise-frame t
- "*Non-nil means, `idlwave-shell' raises the frame showing the shell window."
+ "Non-nil means, `idlwave-shell' raises the frame showing the shell window."
:group 'idlwave-shell-general-setup
:type 'boolean)
(defcustom idlwave-shell-arrows-do-history t
- "*Non-nil means UP and DOWN arrows move through command history.
+ "Non-nil means UP and DOWN arrows move through command history.
This variable can have 3 values:
nil Arrows just move the cursor
t Arrows force the cursor back to the current command line and
;; FIXME: add comint-input-ring-size?
(defcustom idlwave-shell-use-toolbar t
- "*Non-nil means, use the debugging toolbar in all IDL related buffers.
+ "Non-nil means, use the debugging toolbar in all IDL related buffers.
Starting the shell will then add the toolbar to all idlwave-mode buffers.
Exiting the shell will removed everywhere.
Available on XEmacs and on Emacs 21.x or later.
:type 'boolean)
(defcustom idlwave-shell-temp-pro-prefix "/tmp/idltemp"
- "*The prefix for temporary IDL files used when compiling regions.
+ "The prefix for temporary IDL files used when compiling regions.
It should be an absolute pathname.
The full temporary file name is obtained by using `make-temp-file'
so that the name will be unique among multiple Emacs processes."
:type 'string)
(defvar idlwave-shell-fix-inserted-breaks nil
- "*OBSOLETE VARIABLE, is no longer used.
+ "OBSOLETE VARIABLE, is no longer used.
The documentation of this variable used to be:
If non-nil then run `idlwave-shell-remove-breaks' to clean up IDL messages.")
(defcustom idlwave-shell-prefix-key "\C-c\C-d"
- "*The prefix key for the debugging map `idlwave-shell-mode-prefix-map'.
+ "The prefix key for the debugging map `idlwave-shell-mode-prefix-map'.
This variable must already be set when idlwave-shell.el is loaded.
Setting it in the mode-hook is too late."
:group 'idlwave-shell-general-setup
"Obsolete variable. See `idlwave-shell-debug-modifiers'.")
(defcustom idlwave-shell-use-truename nil
- "*Non-nil means, use `file-truename' when looking for buffers.
+ "Non-nil means, use `file-truename' when looking for buffers.
If this variable is non-nil, Emacs will use the function `file-truename' to
resolve symbolic links in the file paths printed by e.g., STOP commands.
This means, unvisited files will be loaded under their truename.
:type 'string)
(defcustom idlwave-shell-mode-hook '()
- "*Hook for customizing `idlwave-shell-mode'."
+ "Hook for customizing `idlwave-shell-mode'."
:group 'idlwave-shell-general-setup
:type 'hook)
(defcustom idlwave-shell-show-commands
'(run misc breakpoint)
- "*A list of command types to show output from in the shell.
+ "A list of command types to show output from in the shell.
Possibilities are 'run, 'debug, 'breakpoint, and 'misc. Unselected
types are not displayed in the shell. The type 'everything causes all
the copious shell traffic to be displayed."
(string :tag "Command"))))
(defvar idlwave-shell-print-expression-function nil
- "*OBSOLETE VARIABLE, is no longer used.")
+ "OBSOLETE VARIABLE, is no longer used.")
(defcustom idlwave-shell-separate-examine-output t
- "*Non-nil means, put output of examine commands in their own buffer."
+ "Non-nil means, put output of examine commands in their own buffer."
:group 'idlwave-shell-command-setup
:type 'boolean)
(cons variable sexp)))
(defcustom idlwave-shell-query-for-class t
- "*Non-nil means query the shell for object class on object completions."
+ "Non-nil means query the shell for object class on object completions."
:group 'idlwave-shell-command-setup
:type 'boolean)
(defcustom idlwave-shell-use-input-mode-magic nil
- "*Non-nil means, IDLWAVE should check for input mode spells in output.
+ "Non-nil means, IDLWAVE should check for input mode spells in output.
The spells are strings printed by your IDL program and matched
by the regular expressions in `idlwave-shell-input-mode-spells'.
When these expressions match, IDLWAVE switches to character input mode and
(regexp :tag "Line-mode regexp")))
(defcustom idlwave-shell-breakpoint-popup-menu t
- "*If non-nil, provide a menu on mouse-3 on breakpoint lines, and
+ "If non-nil, provide a menu on mouse-3 on breakpoint lines, and
popup help text on the line."
:group 'idlwave-shell-command-setup
:type 'boolean)
:group 'idlwave)
(defcustom idlwave-shell-mark-stop-line t
- "*Non-nil means, mark the source code line where IDL is currently stopped.
+ "Non-nil means, mark the source code line where IDL is currently stopped.
Value decides about the method which is used to mark the line. Valid values
are:
(const :tag "Face or arrow." t)))
(defcustom idlwave-shell-overlay-arrow ">"
- "*The overlay arrow to display at source lines where execution halts.
+ "The overlay arrow to display at source lines where execution halts.
We use a single character by default, since the main block of IDL procedures
often has no indentation. Where possible, IDLWAVE will use overlays to
display the stop-lines. The arrow is only used on character-based terminals.
:type 'string)
(defcustom idlwave-shell-stop-line-face 'highlight
- "*The face for `idlwave-shell-stop-line-overlay'.
+ "The face for `idlwave-shell-stop-line-overlay'.
Allows you to choose the font, color and other properties for
line where IDL is stopped. See also `idlwave-shell-mark-stop-line'."
:group 'idlwave-shell-highlighting-and-faces
:type 'symbol)
(defcustom idlwave-shell-electric-stop-color "Violet"
- "*The color for the default face or overlay arrow when stopped."
+ "The color for the default face or overlay arrow when stopped."
:group 'idlwave-shell-highlighting-and-faces
:type 'string)
(condition-case nil
(set-face-foreground 'idlwave-shell-electric-stop-line nil)
(error nil)))
- "*The face for `idlwave-shell-stop-line-overlay' when in electric debug mode.
+ "The face for `idlwave-shell-stop-line-overlay' when in electric debug mode.
Allows you to choose the font, color and other properties for the line
where IDL is stopped, when in Electric Debug Mode."
:group 'idlwave-shell-highlighting-and-faces
:type 'symbol)
(defcustom idlwave-shell-mark-breakpoints t
- "*Non-nil means, mark breakpoints in the source files.
+ "Non-nil means, mark breakpoints in the source files.
Valid values are:
nil Do not mark breakpoints.
'face Highlight line with `idlwave-shell-breakpoint-face'.
"Obsolete variable. See `idlwave-shell-mark-breakpoints'.")
(defcustom idlwave-shell-breakpoint-face 'idlwave-shell-bp
- "*The face for breakpoint lines in the source code.
+ "The face for breakpoint lines in the source code.
Allows you to choose the font, color and other properties for
lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
:group 'idlwave-shell-highlighting-and-faces
(defcustom idlwave-shell-disabled-breakpoint-face
'idlwave-shell-disabled-bp
- "*The face for disabled breakpoint lines in the source code.
+ "The face for disabled breakpoint lines in the source code.
Allows you to choose the font, color and other properties for
lines which have a breakpoint. See also `idlwave-shell-mark-breakpoints'."
:group 'idlwave-shell-highlighting-and-faces
(defcustom idlwave-shell-expression-face 'secondary-selection
- "*The face for `idlwave-shell-expression-overlay'.
+ "The face for `idlwave-shell-expression-overlay'.
Allows you to choose the font, color and other properties for
the expression printed by IDL."
:group 'idlwave-shell-highlighting-and-faces
:type 'symbol)
(defcustom idlwave-shell-output-face 'secondary-selection
- "*The face for `idlwave-shell-output-overlay'.
+ "The face for `idlwave-shell-output-overlay'.
Allows you to choose the font, color and other properties for
the expression output by IDL."
:group 'idlwave-shell-highlighting-and-faces
"^% Skipped to:"
"^% Stop encountered:"
)
- "*A list of regular expressions matching IDL messages.
+ "A list of regular expressions matching IDL messages.
These are the messages containing file and line information where
IDL is currently stopped.")
(defconst idlwave-shell-trace-message-re
"^% At " ;; First line of a trace message
- "*A regular expression matching IDL trace messages. These are the
+ "A regular expression matching IDL trace messages. These are the
messages containing file and line information of a current
traceback.")
(defconst idlwave-shell-step-messages
'("^% Stepped to:"
)
- "*A list of regular expressions matching stepped execution messages.
+ "A list of regular expressions matching stepped execution messages.
These are IDL messages containing file and line information where
IDL has currently stepped.")
(defvar idlwave-shell-break-message "^% Breakpoint at:"
- "*Regular expression matching an IDL breakpoint message line.")
+ "Regular expression matching an IDL breakpoint message line.")
(defconst idlwave-shell-electric-debug-help
" ==> IDLWAVE Electric Debug Mode Help <==
"\\([ \t]*\n[ \t]*[^ \t\n]+\\)*" ; continuation lines file name (6)
"\\)" ; end line number group (5)
)
- "*A regular expression to parse out the file name and line number.
+ "A regular expression to parse out the file name and line number.
The 1st group should match the subroutine name.
The 3rd group is the line number.
The 5th group is the file name.
:group 'idlwave)
(defcustom idlwave-main-block-indent 2
- "*Extra indentation for the main block of code.
+ "Extra indentation for the main block of code.
That is the block between the FUNCTION/PRO statement and the END
statement for that program unit."
:group 'idlwave-code-formatting
:type 'integer)
(defcustom idlwave-block-indent 3
- "*Extra indentation applied to block lines.
+ "Extra indentation applied to block lines.
If you change this, you probably also want to change `idlwave-end-offset'."
:group 'idlwave-code-formatting
:type 'integer)
(defcustom idlwave-end-offset -3
- "*Extra indentation applied to block END lines.
+ "Extra indentation applied to block END lines.
A value equal to negative `idlwave-block-indent' will make END lines
line up with the block BEGIN lines."
:group 'idlwave-code-formatting
:type 'integer)
(defcustom idlwave-continuation-indent 3
- "*Extra indentation applied to continuation lines.
+ "Extra indentation applied to continuation lines.
This extra offset applies to the first of a set of continuation lines.
The following lines receive the same indentation as the first."
:group 'idlwave-code-formatting
:type 'integer)
(defcustom idlwave-max-extra-continuation-indent 40
- "*Maximum additional indentation for special continuation indent.
+ "Maximum additional indentation for special continuation indent.
Several special indentations are tried to help line up continuation
lines in routine calls or definitions, other statements with
parentheses, or assignment statements. This variable specifies a
:type 'integer)
(defcustom idlwave-indent-to-open-paren t
- "*Non-nil means, indent continuation lines to innermost open parenthesis.
+ "Non-nil means, indent continuation lines to innermost open parenthesis.
This indentation occurs even if otherwise disallowed by
`idlwave-max-extra-continuation-indent'. Matching parens and the
interleaving args are lined up. Example:
:type 'boolean)
(defcustom idlwave-indent-parens-nested nil
- "*Non-nil means, indent continuation lines with parens by nesting
+ "Non-nil means, indent continuation lines with parens by nesting
lines at consecutively deeper levels."
:group 'idlwave-code-formatting
:type 'boolean)
(defcustom idlwave-hanging-indent t
- "*If set non-nil then comment paragraphs are indented under the
+ "If set non-nil then comment paragraphs are indented under the
hanging indent given by `idlwave-hang-indent-regexp' match in the first line
of the paragraph."
:group 'idlwave-code-formatting
:type 'boolean)
(defcustom idlwave-hang-indent-regexp "- "
- "*Regular expression matching the position of the hanging indent
+ "Regular expression matching the position of the hanging indent
in the first line of a comment paragraph. The size of the indent
extends to the end of the match for the regular expression."
:group 'idlwave-code-formatting
:type 'regexp)
(defcustom idlwave-use-last-hang-indent nil
- "*If non-nil then use last match on line for `idlwave-indent-regexp'."
+ "If non-nil then use last match on line for `idlwave-indent-regexp'."
:group 'idlwave-code-formatting
:type 'boolean)
(defcustom idlwave-fill-comment-line-only t
- "*If non-nil then auto fill will only operate on comment lines."
+ "If non-nil then auto fill will only operate on comment lines."
:group 'idlwave-code-formatting
:type 'boolean)
(defcustom idlwave-auto-fill-split-string t
- "*If non-nil then auto fill will split strings with the IDL `+' operator.
+ "If non-nil then auto fill will split strings with the IDL `+' operator.
When the line end falls within a string, string concatenation with the
'+' operator will be used to distribute a long string over lines.
If nil and a string is split then a terminal beep and warning are issued.
:type 'boolean)
(defcustom idlwave-split-line-string t
- "*If non-nil then `idlwave-split-line' will split strings with `+'.
+ "If non-nil then `idlwave-split-line' will split strings with `+'.
When the splitting point of a line falls inside a string, split the string
using the `+' string concatenation operator. If nil and a string is
split then a terminal beep and warning are issued."
:type 'boolean)
(defcustom idlwave-no-change-comment ";;;"
- "*The indentation of a comment that starts with this regular
+ "The indentation of a comment that starts with this regular
expression will not be changed. Note that the indentation of a comment
at the beginning of a line is never changed."
:group 'idlwave-code-formatting
:type 'string)
(defcustom idlwave-begin-line-comment nil
- "*A comment anchored at the beginning of line.
+ "A comment anchored at the beginning of line.
A comment matching this regular expression will not have its
indentation changed. If nil the default is \"^;\", i.e., any line
beginning with a \";\". Expressions for comments at the beginning of
'regexp))
(defcustom idlwave-code-comment ";;[^;]"
- "*A comment that starts with this regular expression on a line by
+ "A comment that starts with this regular expression on a line by
itself is indented as if it is a part of IDL code. As a result if
the comment is not preceded by whitespace it is unchanged."
:group 'idlwave-code-formatting
:group 'idlwave)
(defcustom idlwave-use-library-catalogs t
- "*Non-nil means search the IDL path for library catalog files.
+ "Non-nil means search the IDL path for library catalog files.
These files, named .idlwave_catalog, document routine information for
individual directories and libraries of IDL .pro files. Many popular
:type 'boolean)
(defcustom idlwave-init-rinfo-when-idle-after 10
- "*Seconds of idle time before routine info is automatically initialized.
+ "Seconds of idle time before routine info is automatically initialized.
Initializing the routine info can take a long time, in particular if a
large number of library catalogs are involved. When Emacs is idle for
more than the number of seconds specified by this variable, it starts
:type 'number)
(defcustom idlwave-scan-all-buffers-for-routine-info t
- "*Non-nil means, scan buffers for IDL programs when updating info.
+ "Non-nil means, scan buffers for IDL programs when updating info.
The scanning is done by the command `idlwave-update-routine-info'.
The following values are allowed:
(const :tag "Current buffer only" 'current)))
(defcustom idlwave-query-shell-for-routine-info t
- "*Non-nil means query the shell for info about compiled routines.
+ "Non-nil means query the shell for info about compiled routines.
Querying the shell is useful to get information about compiled modules,
and it is turned on by default. However, when you have a complete library
scan, this is not necessary."
(defcustom idlwave-auto-routine-info-updates
'(find-file save-buffer kill-buffer compile-buffer)
- "*Controls under what circumstances routine info is updated automatically.
+ "Controls under what circumstances routine info is updated automatically.
Possible values:
nil Never
t All available
(const :tag "After a buffer was compiled successfully, update shell info" compile-buffer))))
(defcustom idlwave-rinfo-max-source-lines 5
- "*Maximum number of source files displayed in the Routine Info window.
+ "Maximum number of source files displayed in the Routine Info window.
When an integer, it is the maximum number of source files displayed.
A value of t means to show all source files."
:group 'idlwave-routine-info
;; Configuration files
(defcustom idlwave-config-directory
(convert-standard-filename "~/.idlwave")
- "*Directory for configuration files and user-library catalog."
+ "Directory for configuration files and user-library catalog."
:group 'idlwave-routine-info
:type 'file)
(defvar idlwave-path-file "idlpath.el")
(defvar idlwave-libinfo-file nil
- "*Obsolete variable, no longer used.")
+ "Obsolete variable, no longer used.")
(defcustom idlwave-special-lib-alist nil
"Alist of regular expressions matching special library directories.
,idlwave-tmp)))
(defcustom idlwave-completion-force-default-case nil
- "*Non-nil means, completion will always honor `idlwave-completion-case'.
+ "Non-nil means, completion will always honor `idlwave-completion-case'.
When nil, only the completion of a mixed case or upper case string
will honor the default settings in `idlwave-completion-case', while
the completion of lower case strings will be completed entirely in
:type 'boolean)
(defcustom idlwave-complete-empty-string-as-lower-case nil
- "*Non-nil means, the empty string is considered downcase for completion.
+ "Non-nil means, the empty string is considered downcase for completion.
The case of what is already in the buffer determines the case of completions.
When this variable is non-nil, the empty string is considered to be downcase.
Completing on the empty string then offers downcase versions of the possible
`idlwave-completion-case'.")
(defcustom idlwave-buffer-case-takes-precedence nil
- "*Non-nil means, the case of tokens in buffers dominates over system stuff.
+ "Non-nil means, the case of tokens in buffers dominates over system stuff.
To make this possible, we need to re-case everything each time we update
the routine info from the buffers. This is slow.
The default is to consider the case given in the system and library files
:type 'boolean)
(defcustom idlwave-highlight-help-links-in-completion t
- "*Non-nil means, highlight completions for which system help is available.
+ "Non-nil means, highlight completions for which system help is available.
Help can then be accessed with mouse-3.
This option is only effective when the online help system is installed."
:group 'idlwave-completion
(defcustom idlwave-completion-show-classes 1
- "*Number of classes to show when completing object methods and keywords.
+ "Number of classes to show when completing object methods and keywords.
When completing methods or keywords for an object with unknown class,
the *Completions* buffer will show the valid classes for each completion
like this:
(integer :tag "Number of classes shown" 1)))
(defcustom idlwave-completion-fontify-classes t
- "*Non-nil means, fontify the classes in completions buffer.
+ "Non-nil means, fontify the classes in completions buffer.
This makes it easier to distinguish the completion items from the extra
class info listed. See `idlwave-completion-show-classes'."
:group 'idlwave-completion
(boolean :tag "Determine class for this method")))))
(defcustom idlwave-store-inquired-class t
- "*Non-nil means, store class of a method call as text property on `->'.
+ "Non-nil means, store class of a method call as text property on `->'.
IDLWAVE sometimes has to ask the user for the class associated with a
particular object method call. This happens during the commands
`idlwave-routine-info' and `idlwave-complete', depending upon the
:type 'boolean)
(defcustom idlwave-class-arrow-face 'bold
- "*Face to highlight object operator arrows `->' which carry a class property.
+ "Face to highlight object operator arrows `->' which carry a class property.
When IDLWAVE stores a class name as text property on an object arrow
\(see variable `idlwave-store-inquired-class', it highlights the arrow
with this font in order to remind the user that this arrow is special."
:type 'symbol)
(defcustom idlwave-resize-routine-help-window t
- "*Non-nil means, resize the Routine-info *Help* window to fit the content."
+ "Non-nil means, resize the Routine-info *Help* window to fit the content."
:group 'idlwave-completion
:type 'boolean)
(defcustom idlwave-keyword-completion-adds-equal t
- "*Non-nil means, completion automatically adds `=' after completed keywords."
+ "Non-nil means, completion automatically adds `=' after completed keywords."
:group 'idlwave-completion
:type 'boolean)
(defcustom idlwave-function-completion-adds-paren t
- "*Non-nil means, completion automatically adds `(' after completed function.
+ "Non-nil means, completion automatically adds `(' after completed function.
nil means, don't add anything.
A value of `2' means, also add the closing parenthesis and position cursor
between the two."
(const :tag "()" 2)))
(defcustom idlwave-completion-restore-window-configuration t
- "*Non-nil means, try to restore the window configuration after completion.
+ "Non-nil means, try to restore the window configuration after completion.
When completion is not unique, Emacs displays a list of completions.
This messes up your window configuration. With this variable set, IDLWAVE
restores the old configuration after successful completion."
:group 'idlwave)
(defcustom idlwave-do-actions nil
- "*Non-nil means performs actions when indenting.
+ "Non-nil means performs actions when indenting.
The actions that can be performed are listed in `idlwave-indent-action-table'."
:group 'idlwave-abbrev-and-indent-action
:type 'boolean)
(defcustom idlwave-abbrev-start-char "\\"
- "*A single character string used to start abbreviations in abbrev mode.
+ "A single character string used to start abbreviations in abbrev mode.
Possible characters to chose from: ~`\%
or even '?'. '.' is not a good choice because it can make structure
field names act like abbrevs in certain circumstances.
:type 'string)
(defcustom idlwave-surround-by-blank nil
- "*Non-nil means, enable `idlwave-surround'.
+ "Non-nil means, enable `idlwave-surround'.
If non-nil, `=',`<',`>',`&',`,', `->' are surrounded with spaces by
`idlwave-surround'.
See help for `idlwave-indent-action-table' for symbols using `idlwave-surround'.
:type 'boolean)
(defcustom idlwave-pad-keyword t
- "*Non-nil means pad '=' in keywords (routine calls or defs) like assignment.
+ "Non-nil means pad '=' in keywords (routine calls or defs) like assignment.
Whenever `idlwave-surround' is non-nil then this affects how '=' is
padded for keywords and for variables. If t, pad the same as for
assignments. If nil then spaces are removed. With any other value,
(const :tag "Keep space near `='" 'keep)))
(defcustom idlwave-show-block t
- "*Non-nil means point blinks to block beginning for `idlwave-show-begin'."
+ "Non-nil means point blinks to block beginning for `idlwave-show-begin'."
:group 'idlwave-abbrev-and-indent-action
:type 'boolean)
(defcustom idlwave-expand-generic-end nil
- "*Non-nil means expand generic END to ENDIF/ENDELSE/ENDWHILE etc."
+ "Non-nil means expand generic END to ENDIF/ENDELSE/ENDWHILE etc."
:group 'idlwave-abbrev-and-indent-action
:type 'boolean)
(defcustom idlwave-reindent-end t
- "*Non-nil means re-indent line after END was typed."
+ "Non-nil means re-indent line after END was typed."
:group 'idlwave-abbrev-and-indent-action
:type 'boolean)
(defcustom idlwave-abbrev-move t
- "*Non-nil means the abbrev hook can move point.
+ "Non-nil means the abbrev hook can move point.
Set to nil by `idlwave-expand-region-abbrevs'. To see the abbrev
definitions, use the command `list-abbrevs', for abbrevs that move
point. Moving point is useful, for example, to place point between
:type 'boolean)
(defcustom idlwave-abbrev-change-case nil
- "*Non-nil means all abbrevs will be forced to either upper or lower case.
+ "Non-nil means all abbrevs will be forced to either upper or lower case.
If the value t, all expanded abbrevs will be upper case.
If the value is 'down then abbrevs will be forced to lower case.
If nil, the case will not change.
:type 'boolean)
(defcustom idlwave-reserved-word-upcase nil
- "*Non-nil means, reserved words will be made upper case via abbrev expansion.
+ "Non-nil means, reserved words will be made upper case via abbrev expansion.
If nil case of reserved words is controlled by `idlwave-abbrev-change-case'.
Has effect only if in abbrev-mode."
:group 'idlwave-abbrev-and-indent-action
;; '(capitalize-word -1) t)
(defvar idlwave-indent-action-table nil
- "*Associated array containing action lists of search string (car),
+ "Associated array containing action lists of search string (car),
and function as a cdr. This table is used by `idlwave-indent-line'.
See documentation for `idlwave-do-action' for a complete description of
the action lists.
See help on `idlwave-action-and-binding' for examples.")
(defvar idlwave-indent-expand-table nil
- "*Associated array containing action lists of search string (car),
+ "Associated array containing action lists of search string (car),
and function as a cdr. The table is used by the
`idlwave-indent-and-action' function. See documentation for
`idlwave-do-action' for a complete description of the action lists.
;
;-
")
- "*A list (PATHNAME STRING) specifying the doc-header template to use for
+ "A list (PATHNAME STRING) specifying the doc-header template to use for
summarizing a file. If PATHNAME is non-nil then this file will be included.
Otherwise STRING is used. If nil, the file summary will be omitted.
For example you might set PATHNAME to the path for the
lib_template.pro file included in the IDL distribution.")
(defcustom idlwave-header-to-beginning-of-file t
- "*Non-nil means, the documentation header will always be at start of file.
+ "Non-nil means, the documentation header will always be at start of file.
When nil, the header is positioned between the PRO/FUNCTION line of
the current routine and the code, allowing several routine headers in
a file."
:type 'boolean)
(defcustom idlwave-timestamp-hook 'idlwave-default-insert-timestamp
- "*The hook function used to update the timestamp of a function."
+ "The hook function used to update the timestamp of a function."
:group 'idlwave-documentation
:type 'function)
(defcustom idlwave-doc-modifications-keyword "HISTORY"
- "*The modifications keyword to use with the log documentation commands.
+ "The modifications keyword to use with the log documentation commands.
A ':' is added to the keyword end.
Inserted by doc-header and used to position logs by doc-modification.
If nil it will not be inserted."
:type 'string)
(defcustom idlwave-doclib-start "^;+\\+"
- "*Regexp matching the start of a document library header."
+ "Regexp matching the start of a document library header."
:group 'idlwave-documentation
:type 'regexp)
(defcustom idlwave-doclib-end "^;+-"
- "*Regexp matching the end of a document library header."
+ "Regexp matching the end of a document library header."
:group 'idlwave-documentation
:type 'regexp)
:group 'idlwave)
(defcustom idlwave-shell-explicit-file-name "idl"
- "*If non-nil, this is the command to run IDL.
+ "If non-nil, this is the command to run IDL.
Should be an absolute file path or path relative to the current environment
execution search path. If you want to specify command line switches
for the IDL program, use `idlwave-shell-command-line-options'.
:type 'string)
(defcustom idlwave-shell-command-line-options nil
- "*A list of command line options for calling the IDL program.
+ "A list of command line options for calling the IDL program.
Since IDL is executed directly without going through a shell like /bin/sh,
this should be a list of strings like '(\"-rt=file\" \"-nw\") with a separate
string for each argument. But you may also give a single string which
:group 'idlwave-external-programs)
(defcustom idlwave-help-application "idlhelp"
- "*The external application providing reference help for programming.
+ "The external application providing reference help for programming.
Obsolete, if the IDL Assistant is being used for help."
:group 'idlwave-external-programs
:type 'string)
(const shift)))
(defcustom idlwave-shell-automatic-start nil
- "*If non-nil attempt invoke `idlwave-shell' if not already running.
+ "If non-nil attempt invoke `idlwave-shell' if not already running.
This is checked when an attempt to send a command to an
IDL process is made."
:group 'idlwave-shell-general-setup
:group 'idlwave)
(defcustom idlwave-startup-message t
- "*Non-nil displays a startup message when `idlwave-mode' is first called."
+ "Non-nil displays a startup message when `idlwave-mode' is first called."
:group 'idlwave-misc
:type 'boolean)
;;;###autoload
(defcustom inferior-lisp-filter-regexp
(purecopy "\\`\\s *\\(:\\(\\w\\|\\s_\\)\\)?\\s *\\'")
- "*What not to save on inferior Lisp's input history.
+ "What not to save on inferior Lisp's input history.
Input matching this regexp is not saved on the input history in Inferior Lisp
mode. Default is whitespace followed by 0 or 1 single-letter colon-keyword
\(as in :a, :c, etc.)"
;;;###autoload
(defcustom inferior-lisp-program (purecopy "lisp")
- "*Program name for invoking an inferior Lisp in Inferior Lisp mode."
+ "Program name for invoking an inferior Lisp in Inferior Lisp mode."
:type 'string
:group 'inferior-lisp)
;;;###autoload
(defcustom inferior-lisp-load-command (purecopy "(load \"%s\")\n")
- "*Format-string for building a Lisp expression to load a file.
+ "Format-string for building a Lisp expression to load a file.
This format string should use `%s' to substitute a file name
and should result in a Lisp expression that will command the inferior Lisp
to load that file. The default works acceptably on most Lisps.
;;;###autoload
(defvar inferior-lisp-mode-hook '()
- "*Hook for customizing Inferior Lisp mode.")
+ "Hook for customizing Inferior Lisp mode.")
(put 'inferior-lisp-mode 'mode-class 'special)
describing the last `lisp-load-file' or `lisp-compile-file' command.")
(defcustom lisp-source-modes '(lisp-mode)
- "*Used to determine if a buffer contains Lisp source code.
+ "Used to determine if a buffer contains Lisp source code.
If it's loaded into a buffer that is in one of these major modes, it's
considered a Lisp source file by `lisp-load-file' and `lisp-compile-file'.
Used by these commands to determine defaults."
"Default font-lock-keywords for `m4 mode'.")
(defcustom m4-mode-hook nil
- "*Hook called by `m4-mode'."
+ "Hook called by `m4-mode'."
:type 'hook
:group 'm4)
:version "22.1")
(defcustom makefile-browser-buffer-name "*Macros and Targets*"
- "*Name of the macro- and target browser buffer."
+ "Name of the macro- and target browser buffer."
:type 'string
:group 'makefile)
(defcustom makefile-target-colon ":"
- "*String to append to all target names inserted by `makefile-insert-target'.
+ "String to append to all target names inserted by `makefile-insert-target'.
\":\" or \"::\" are common values."
:type 'string
:group 'makefile)
(defcustom makefile-macro-assign " = "
- "*String to append to all macro names inserted by `makefile-insert-macro'.
+ "String to append to all macro names inserted by `makefile-insert-macro'.
The normal value should be \" = \", since this is what
standard make expects. However, newer makes such as dmake
allow a larger variety of different macro assignments, so you
:group 'makefile)
(defcustom makefile-electric-keys nil
- "*If non-nil, Makefile mode should install electric keybindings.
+ "If non-nil, Makefile mode should install electric keybindings.
Default is nil."
:type 'boolean
:group 'makefile)
(defcustom makefile-use-curly-braces-for-macros-p nil
- "*Controls the style of generated macro references.
+ "Controls the style of generated macro references.
Non-nil means macro references should use curly braces, like `${this}'.
nil means use parentheses, like `$(this)'."
:type 'boolean
:group 'makefile)
(defcustom makefile-tab-after-target-colon t
- "*If non-nil, insert a TAB after a target colon.
+ "If non-nil, insert a TAB after a target colon.
Otherwise, a space is inserted.
The default is t."
:type 'boolean
:group 'makefile)
(defcustom makefile-browser-leftmost-column 10
- "*Number of blanks to the left of the browser selection mark."
+ "Number of blanks to the left of the browser selection mark."
:type 'integer
:group 'makefile)
(defcustom makefile-browser-cursor-column 10
- "*Column the cursor goes to when it moves up or down in the Makefile browser."
+ "Column the cursor goes to when it moves up or down in the Makefile browser."
:type 'integer
:group 'makefile)
(defcustom makefile-backslash-column 48
- "*Column in which `makefile-backslash-region' inserts backslashes."
+ "Column in which `makefile-backslash-region' inserts backslashes."
:type 'integer
:group 'makefile)
(defcustom makefile-backslash-align t
- "*If non-nil, `makefile-backslash-region' will align backslashes."
+ "If non-nil, `makefile-backslash-region' will align backslashes."
:type 'boolean
:group 'makefile)
(defcustom makefile-browser-selected-mark "+ "
- "*String used to mark selected entries in the Makefile browser."
+ "String used to mark selected entries in the Makefile browser."
:type 'string
:group 'makefile)
(defcustom makefile-browser-unselected-mark " "
- "*String used to mark unselected entries in the Makefile browser."
+ "String used to mark unselected entries in the Makefile browser."
:type 'string
:group 'makefile)
(defcustom makefile-browser-auto-advance-after-selection-p t
- "*If non-nil, cursor will move after item is selected in Makefile browser."
+ "If non-nil, cursor will move after item is selected in Makefile browser."
:type 'boolean
:group 'makefile)
(defcustom makefile-pickup-everything-picks-up-filenames-p nil
- "*If non-nil, `makefile-pickup-everything' picks up filenames as targets.
+ "If non-nil, `makefile-pickup-everything' picks up filenames as targets.
This means it calls `makefile-pickup-filenames-as-targets'.
Otherwise filenames are omitted."
:type 'boolean
:group 'makefile)
(defcustom makefile-cleanup-continuations nil
- "*If non-nil, automatically clean up continuation lines when saving.
+ "If non-nil, automatically clean up continuation lines when saving.
A line is cleaned up by removing all whitespace following a trailing
backslash. This is done silently.
IMPORTANT: Please note that enabling this option causes Makefile mode
:group 'makefile)
(defcustom makefile-mode-hook nil
- "*Normal hook run by `makefile-mode'."
+ "Normal hook run by `makefile-mode'."
:type 'hook
:group 'makefile)
(defcustom makefile-runtime-macros-list
'(("@") ("&") (">") ("<") ("*") ("^") ("+") ("?") ("%") ("$"))
- "*List of macros that are resolved by make at runtime.
+ "List of macros that are resolved by make at runtime.
If you insert a macro reference using `makefile-insert-macro-ref', the name
of the macro is checked against this list. If it can be found its name will
not be enclosed in { } or ( )."
;; ------------------------------------------------------------
(defcustom makefile-brave-make "make"
- "*How to invoke make, for `makefile-query-targets'.
+ "How to invoke make, for `makefile-query-targets'.
This should identify a `make' command that can handle the `-q' option."
:type 'string
:group 'makefile)
(defcustom makefile-query-one-target-method-function
'makefile-query-by-make-minus-q
- "*Function to call to determine whether a make target is up to date.
+ "Function to call to determine whether a make target is up to date.
The function must satisfy this calling convention:
* As its first argument, it must accept the name of the target to
'makefile-query-one-target-method-function)
(defcustom makefile-up-to-date-buffer-name "*Makefile Up-to-date overview*"
- "*Name of the Up-to-date overview buffer."
+ "Name of the Up-to-date overview buffer."
:type 'string
:group 'makefile)
:group 'modula2)
(defcustom m2-end-comment-column 75
- "*Column for aligning the end of a comment, in Modula-2."
+ "Column for aligning the end of a comment, in Modula-2."
:type 'integer
:group 'modula2)
"Keymap used in Modula-2 mode.")
(defcustom m2-indent 5
- "*This variable gives the indentation in Modula-2-Mode."
+ "This variable gives the indentation in Modula-2-Mode."
:type 'integer
:group 'modula2)
(put 'm2-indent 'safe-local-variable
"Syntax table in use in inferior-octave-mode buffers.")
(defcustom inferior-octave-mode-hook nil
- "*Hook to be run when Inferior Octave mode is started."
+ "Hook to be run when Inferior Octave mode is started."
:type 'hook
:group 'octave-inferior)
(put 'pascal-mode 'font-lock-defaults '(pascal-font-lock-keywords nil t))
(defcustom pascal-indent-level 3
- "*Indentation of Pascal statements with respect to containing block."
+ "Indentation of Pascal statements with respect to containing block."
:type 'integer
:group 'pascal)
(defcustom pascal-case-indent 2
- "*Indentation for case statements."
+ "Indentation for case statements."
:type 'integer
:group 'pascal)
(defcustom pascal-auto-newline nil
- "*Non-nil means automatically insert newlines in certain cases.
+ "Non-nil means automatically insert newlines in certain cases.
These include after semicolons and after the punctuation mark after an `end'."
:type 'boolean
:group 'pascal)
(defcustom pascal-indent-nested-functions t
- "*Non-nil means nested functions are indented."
+ "Non-nil means nested functions are indented."
:type 'boolean
:group 'pascal)
(defcustom pascal-tab-always-indent t
- "*Non-nil means TAB in Pascal mode should always reindent the current line.
+ "Non-nil means TAB in Pascal mode should always reindent the current line.
If this is nil, TAB inserts a tab if it is at the end of the line
and follows non-whitespace text."
:type 'boolean
:group 'pascal)
(defcustom pascal-auto-endcomments t
- "*Non-nil means automatically insert comments after certain `end's.
+ "Non-nil means automatically insert comments after certain `end's.
Specifically, this is done after the ends of cases statements and functions.
The name of the function or case is included between the braces."
:type 'boolean
:group 'pascal)
(defcustom pascal-auto-lineup '(all)
- "*List of contexts where auto lineup of :'s or ='s should be done.
+ "List of contexts where auto lineup of :'s or ='s should be done.
Elements can be of type: 'paramlist', 'declaration' or 'case', which will
do auto lineup in parameterlist, declarations or case-statements
respectively. The word 'all' will do all lineups. '(case paramlist) for
:group 'pascal)
(defvar pascal-toggle-completions nil
- "*Non-nil meant \\<pascal-mode-map>\\[pascal-complete-word] would try all possible completions one by one.
+ "Non-nil meant \\<pascal-mode-map>\\[pascal-complete-word] would try all possible completions one by one.
Repeated use of \\[pascal-complete-word] would show you all of them.
Normally, when there is more than one possible completion,
it displays a list of all possible completions.")
(defcustom pascal-type-keywords
'("array" "file" "packed" "char" "integer" "real" "string" "record")
- "*Keywords for types used when completing a word in a declaration or parmlist.
+ "Keywords for types used when completing a word in a declaration or parmlist.
These include integer, real, char, etc.
The types defined within the Pascal program
are handled in another way, and should not be added to this list."
(defcustom pascal-start-keywords
'("begin" "end" "function" "procedure" "repeat" "until" "while"
"read" "readln" "reset" "rewrite" "write" "writeln")
- "*Keywords to complete when standing at the first word of a statement.
+ "Keywords to complete when standing at the first word of a statement.
These are keywords such as begin, repeat, until, readln.
The procedures and variables defined within the Pascal program
are handled in another way, and should not be added to this list."
(defcustom pascal-separator-keywords
'("downto" "else" "mod" "div" "then")
- "*Keywords to complete when NOT standing at the first word of a statement.
+ "Keywords to complete when NOT standing at the first word of a statement.
These are keywords such as downto, else, mod, then.
Variables and function names defined within the Pascal program
are handled in another way, and should not be added to this list."
;;; perl-mode.el --- Perl code editing commands for GNU Emacs
-;; Copyright (C) 1990, 1994, 2001-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1990, 1994, 2001-2012 Free Software Foundation, Inc.
;; Author: William F. Mann
;; Maintainer: FSF
map)
"Keymap used in Perl mode.")
-(autoload 'c-macro-expand "cmacexp"
- "Display the result of expanding all C macros occurring in the region.
-The expansion is entirely correct because it uses the C preprocessor."
- t)
-
(defvar perl-mode-syntax-table
(let ((st (make-syntax-table (standard-syntax-table))))
(modify-syntax-entry ?\n ">" st)
;; we are: we have to go back to the beginning of this
;; "string" and count from there.
(condition-case nil
- (progn
+ (progn
;; Start after the first char since it doesn't have
;; paren-syntax (an alternative would be to let-bind
;; parse-sexp-lookup-properties).
;; s{...}{...}) we're right after the first arg, so we still have to
;; handle the second part.
(when (and twoargs close)
- ;; Skip whitespace and make sure that font-lock will
- ;; refontify the second part in the proper context.
- (put-text-property
- (point) (progn (forward-comment (point-max)) (point))
+ ;; Skip whitespace and make sure that font-lock will
+ ;; refontify the second part in the proper context.
+ (put-text-property
+ (point) (progn (forward-comment (point-max)) (point))
'syntax-multiline t)
- ;;
+ ;;
(when (< (point) limit)
- (put-text-property (point) (1+ (point))
- 'syntax-table
- (if (assoc (char-after)
- perl-quote-like-pairs)
+ (put-text-property (point) (1+ (point))
+ 'syntax-table
+ (if (assoc (char-after)
+ perl-quote-like-pairs)
;; Put an `e' in the cdr to mark this
;; char as "second arg starter".
(string-to-syntax "|e")
(t (funcall (default-value 'font-lock-syntactic-face-function) state))))
(defcustom perl-indent-level 4
- "*Indentation of Perl statements with respect to containing block."
+ "Indentation of Perl statements with respect to containing block."
:type 'integer
:group 'perl)
;;;###autoload(put 'perl-label-offset 'safe-local-variable 'integerp)
(defcustom perl-continued-statement-offset 4
- "*Extra indent for lines not starting new statements."
+ "Extra indent for lines not starting new statements."
:type 'integer
:group 'perl)
(defcustom perl-continued-brace-offset -4
- "*Extra indent for substatements that start with open-braces.
+ "Extra indent for substatements that start with open-braces.
This is in addition to `perl-continued-statement-offset'."
:type 'integer
:group 'perl)
(defcustom perl-brace-offset 0
- "*Extra indentation for braces, compared with other text in same context."
+ "Extra indentation for braces, compared with other text in same context."
:type 'integer
:group 'perl)
(defcustom perl-brace-imaginary-offset 0
- "*Imagined indentation of an open brace that actually follows a statement."
+ "Imagined indentation of an open brace that actually follows a statement."
:type 'integer
:group 'perl)
(defcustom perl-label-offset -2
- "*Offset of Perl label lines relative to usual indentation."
+ "Offset of Perl label lines relative to usual indentation."
:type 'integer
:group 'perl)
(defcustom perl-indent-continued-arguments nil
- "*If non-nil offset of argument lines relative to usual indentation.
+ "If non-nil offset of argument lines relative to usual indentation.
If nil, continued arguments are aligned with the first argument."
:type '(choice integer (const nil))
:group 'perl)
+(defcustom perl-indent-parens-as-block nil
+ "Non-nil means that non-block ()-, {}- and []-groups are indented as blocks.
+The closing bracket is aligned with the line of the opening bracket,
+not the contents of the brackets."
+ :version "24.2"
+ :type 'boolean
+ :group 'perl)
+
(defcustom perl-tab-always-indent tab-always-indent
"Non-nil means TAB in Perl mode always indents the current line.
Otherwise it inserts a tab character if you type it past the first
;; I changed the default to nil for consistency with general Emacs
;; conventions -- rms.
(defcustom perl-tab-to-comment nil
- "*Non-nil means TAB moves to eol or makes a comment in some cases.
+ "Non-nil means TAB moves to eol or makes a comment in some cases.
For lines which don't need indenting, TAB either indents an
existing comment, moves to end-of-line, or if at end-of-line already,
create a new comment."
:group 'perl)
(defcustom perl-nochange ";?#\\|\f\\|\\s(\\|\\(\\w\\|\\s_\\)+:[^:]"
- "*Lines starting with this regular expression are not auto-indented."
+ "Lines starting with this regular expression are not auto-indented."
:type 'regexp
:group 'perl)
(setq shift-amt
(cond ((eq (char-after bof) ?=) 0)
((listp (setq indent (perl-calculate-indent bof))) indent)
+ ((eq 'noindent indent) indent)
((looking-at (or nochange perl-nochange)) 0)
(t
(skip-chars-forward " \t\f")
;; following_quotep minimum_paren-depth_this_scan)
;; Parsing stops if depth in parentheses becomes equal to third arg.
(setq containing-sexp (nth 1 state)))
- (cond ((nth 3 state) state) ; In a quoted string?
+ (cond ((nth 3 state) 'noindent) ; In a quoted string?
((null containing-sexp) ; Line is at top level.
(skip-chars-forward " \t\f")
- (if (= (following-char) ?{)
+ (if (memq (following-char)
+ (if perl-indent-parens-as-block '(?\{ ?\( ?\[) '(?\{)))
0 ; move to beginning of line if it starts a function body
;; indent a little if this is a continuation line
(perl-backward-to-noncomment)
0 perl-continued-statement-offset)
(current-column)
(if (save-excursion (goto-char indent-point)
- (looking-at "[ \t]*{"))
+ (looking-at
+ (if perl-indent-parens-as-block
+ "[ \t]*[{(\[]" "[ \t]*{")))
perl-continued-brace-offset 0)))
;; This line starts a new statement.
;; Position at last unclosed open.
(indent-for-comment)))
(defun prolog-indent-predicate ()
- "*Indent the current predicate."
+ "Indent the current predicate."
(interactive)
(indent-region (prolog-pred-start) (prolog-pred-end) nil))
(defun prolog-indent-buffer ()
- "*Indent the entire buffer."
+ "Indent the entire buffer."
(interactive)
(indent-region (point-min) (point-max) nil))
;; User variables.
(defcustom ps-mode-auto-indent t
- "*Should we use autoindent?"
+ "Should we use autoindent?"
:group 'PostScript-edit
:type 'boolean)
(defcustom ps-mode-tab 4
- "*Number of spaces to use when indenting."
+ "Number of spaces to use when indenting."
:group 'PostScript-edit
:type 'integer)
(defcustom ps-mode-paper-size '(595 842)
- "*Default paper size.
+ "Default paper size.
When inserting an EPSF template these values are used
to set the boundingbox to include the whole page.
(lpr-command (if (memq system-type '(usg-unix-v hpux irix))
"lp" "lpr")))
(lpr-buffer)))
- "*Lisp function to print current buffer as PostScript."
+ "Lisp function to print current buffer as PostScript."
:group 'PostScript-edit
:type 'function)
(defcustom ps-run-prompt "\\(GS\\(<[0-9]+\\)?>\\)+"
- "*Regexp to match prompt in interactive PostScript."
+ "Regexp to match prompt in interactive PostScript."
:group 'PostScript-interaction
:type 'regexp)
("^\\(Current file position is\\) \\([0-9]+\\)"
(1 font-lock-comment-face nil nil)
(2 font-lock-warning-face nil nil))))
- "*Medium level highlighting of messages from the PostScript interpreter.
+ "Medium level highlighting of messages from the PostScript interpreter.
See documentation on font-lock for details."
:group 'PostScript-interaction
(boolean :tag "Laxmatch" :value t))))))
(defcustom ps-run-x '("gs" "-r72" "-sPAPERSIZE=a4")
- "*Command as list to run PostScript with graphic display."
+ "Command as list to run PostScript with graphic display."
:group 'PostScript-interaction
:type '(repeat string))
(defcustom ps-run-dumb '("gs" "-dNODISPLAY")
- "*Command as list to run PostScript without graphic display."
+ "Command as list to run PostScript without graphic display."
:group 'PostScript-interaction
:type '(repeat string))
(defcustom ps-run-init nil
- "*String of commands to send to PostScript to start interactive.
+ "String of commands to send to PostScript to start interactive.
Example: \"executive\"
:type '(choice (const nil) string))
(defcustom ps-run-error-line-numbers nil
- "*What values are used by the PostScript interpreter in error messages?"
+ "What values are used by the PostScript interpreter in error messages?"
:group 'PostScript-interaction
:type '(choice (const :tag "line numbers" t)
(const :tag "byte counts" nil)))
(defcustom ps-run-tmp-dir nil
- "*Name of directory to place temporary file.
+ "Name of directory to place temporary file.
If nil, use `temporary-file-directory'."
:group 'PostScript-interaction
:type '(choice (const nil) directory))
(require 'comint)
(require 'ansi-color)
-(eval-when-compile
- (require 'compile)
- (require 'hippie-exp))
-
-(autoload 'comint-mode "comint")
+(eval-when-compile (require 'compile))
(defgroup python nil
"Silly walks in the Python language."
(defcustom python-pdbtrack-do-tracking-p t
- "*Controls whether the pdbtrack feature is enabled or not.
+ "Controls whether the pdbtrack feature is enabled or not.
When non-nil, pdbtrack is enabled in all comint-based buffers,
e.g. shell interaction buffers and the *Python* buffer.
(make-variable-buffer-local 'python-pdbtrack-do-tracking-p)
(defcustom python-pdbtrack-minor-mode-string " PDB"
- "*Minor-mode sign to be displayed when pdbtrack is active."
+ "Minor-mode sign to be displayed when pdbtrack is active."
:type 'string
:group 'python)
is used by `run-python' et al.")
(defvar python-buffer nil
- "*The current Python process buffer.
+ "The current Python process buffer.
Commands that send text from source buffers to Python processes have
to choose a process to send to. This is determined by buffer-local
res)
(t (concat res s)))))
-(autoload 'comint-check-proc "comint")
-
(defvar python-version-checked nil)
(defun python-check-version (cmd)
"Check that CMD runs a suitable version of Python."
"Caches (directory . file) pair used in the last `python-load-file' command.
Used for determining the default in the next one.")
-(autoload 'comint-get-source "comint")
-
(defun python-load-file (file-name)
"Load a Python file FILE-NAME into the inferior Python process.
If the file has extension `.py' import or reload it as a module.
;; paragraph in a multi-line string properly, so narrow
;; to the string and then fill around (the end of) the
;; current line.
- ((eq t (nth 3 syntax)) ; in fenced string
+ ((nth 3 syntax) ; in fenced string
(goto-char (nth 8 syntax)) ; string start
(setq start (line-beginning-position))
(setq end (condition-case () ; for unbalanced quotes
(defcustom dsssl-sgml-declaration
"<!DOCTYPE style-sheet PUBLIC \"-//James Clark//DTD DSSSL Style Sheet//EN\">
"
- "*An SGML declaration for the DSSSL file.
+ "An SGML declaration for the DSSSL file.
If it is defined as a string this will be inserted into an empty buffer
which is in `dsssl-mode'. It is typically James Clark's style-sheet
doctype, as required for Jade."
;; This is shared by cmuscheme and xscheme.
(defcustom scheme-program-name "scheme"
- "*Program invoked by the `run-scheme' command."
+ "Program invoked by the `run-scheme' command."
:type 'string
:group 'scheme)
values of variables, and for the commands using indentation styles.")
(defvar sh-make-vars-local t
- "*Controls whether indentation variables are local to the buffer.
+ "Controls whether indentation variables are local to the buffer.
If non-nil, indentation variables are made local initially.
If nil, you can later make the variables local by invoking
command `sh-make-vars-local'.
\f
;; Indentation stuff.
(defun sh-must-support-indent ()
- "*Signal an error if the shell type for this buffer is not supported.
+ "Signal an error if the shell type for this buffer is not supported.
Also, the buffer must be in Shell-script mode."
(unless sh-indent-supported-here
(error "This buffer's shell does not support indentation through Emacs")))
;; Is this really worth having?
(defvar sh-learned-buffer-hook nil
- "*An abnormal hook, called with an alist of learned variables.")
+ "An abnormal hook, called with an alist of learned variables.")
;; Example of how to use sh-learned-buffer-hook
;;
;; (defun what-i-learned (list)
the run of whitespace at the beginning of the line.")
(defcustom simula-tab-always-indent simula-tab-always-indent-default
- "*Non-nil means TAB in SIMULA mode should always reindent the current line.
+ "Non-nil means TAB in SIMULA mode should always reindent the current line.
Otherwise TAB indents only when point is within
the run of whitespace at the beginning of the line."
:type 'boolean
"Indentation of SIMULA statements with respect to containing block.")
(defcustom simula-indent-level simula-indent-level-default
- "*Indentation of SIMULA statements with respect to containing block."
+ "Indentation of SIMULA statements with respect to containing block."
:type 'integer
:group 'simula)
"Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE.")
(defcustom simula-substatement-offset simula-substatement-offset-default
- "*Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE."
+ "Extra indentation after DO, THEN, ELSE, WHEN and OTHERWISE."
:type 'integer
:group 'simula)
(defcustom simula-continued-statement-offset
simula-continued-statement-offset-default
- "*Extra indentation for lines not starting a statement or substatement.
+ "Extra indentation for lines not starting a statement or substatement.
If value is a list, each line in a multipleline continued statement
will have the car of the list extra indentation with respect to
the previous line of the statement."
"Offset of SIMULA label lines relative to usual indentation.")
(defcustom simula-label-offset simula-label-offset-default
- "*Offset of SIMULA label lines relative to usual indentation."
+ "Offset of SIMULA label lines relative to usual indentation."
:type 'integer
:group 'simula)
extra ELSE indentation. IF after ELSE is indented as the starting IF.")
(defcustom simula-if-indent simula-if-indent-default
- "*Extra indentation of THEN and ELSE with respect to the starting IF.
+ "Extra indentation of THEN and ELSE with respect to the starting IF.
Value is a cons cell, the car is extra THEN indentation and the cdr
extra ELSE indentation. IF after ELSE is indented as the starting IF."
:type '(cons integer integer)
and the cdr extra OTHERWISE indentation.")
(defcustom simula-inspect-indent simula-inspect-indent-default
- "*Extra indentation of WHEN and OTHERWISE with respect to the INSPECT.
+ "Extra indentation of WHEN and OTHERWISE with respect to the INSPECT.
Value is a cons cell, the car is extra WHEN indentation
and the cdr extra OTHERWISE indentation."
:type '(cons integer integer)
"Non-nil means `simula-indent-line' function may reindent previous line.")
(defcustom simula-electric-indent simula-electric-indent-default
- "*Non-nil means `simula-indent-line' function may reindent previous line."
+ "Non-nil means `simula-indent-line' function may reindent previous line."
:type 'boolean
:group 'simula)
\(as in) `abbrev-table' or nil if they should not be changed.")
(defcustom simula-abbrev-keyword simula-abbrev-keyword-default
- "*Specify how to convert case for SIMULA keywords.
+ "Specify how to convert case for SIMULA keywords.
Value is one of the symbols `upcase', `downcase', `capitalize',
\(as in) `abbrev-table' or nil if they should not be changed."
:type '(choice (const upcase) (const downcase) (const capitalize)(const nil))
\(as in) `abbrev-table', or nil if they should not be changed.")
(defcustom simula-abbrev-stdproc simula-abbrev-stdproc-default
- "*Specify how to convert case for standard SIMULA procedure and class names.
+ "Specify how to convert case for standard SIMULA procedure and class names.
Value is one of the symbols `upcase', `downcase', `capitalize',
\(as in) `abbrev-table', or nil if they should not be changed."
:type '(choice (const upcase) (const downcase) (const capitalize)
:group 'simula)
(defcustom simula-abbrev-file nil
- "*File with extra abbrev definitions for use in SIMULA mode.
+ "File with extra abbrev definitions for use in SIMULA mode.
These are used together with the standard abbrev definitions for SIMULA.
Please note that the standard definitions are required
for SIMULA mode to function correctly."
:group 'languages)
(defcustom tcl-indent-level 4
- "*Indentation of Tcl statements with respect to containing block."
+ "Indentation of Tcl statements with respect to containing block."
:type 'integer
:group 'tcl)
(put 'tcl-indent-level 'safe-local-variable 'integerp)
(defcustom tcl-continued-indent-level 4
- "*Indentation of continuation line relative to first line of command."
+ "Indentation of continuation line relative to first line of command."
:type 'integer
:group 'tcl)
(put 'tcl-continued-indent-level 'safe-local-variable 'integerp)
(defcustom tcl-auto-newline nil
- "*Non-nil means automatically newline before and after braces you insert."
+ "Non-nil means automatically newline before and after braces you insert."
:type 'boolean
:group 'tcl)
(defcustom tcl-tab-always-indent tab-always-indent
- "*Control effect of TAB key.
+ "Control effect of TAB key.
If t (the default), always indent current line.
If nil and point is not in the indentation area at the beginning of
the line, a TAB is inserted.
(defcustom tcl-electric-hash-style nil ;; 'smart
- "*Style of electric hash insertion to use.
+ "Style of electric hash insertion to use.
Possible values are `backslash', meaning that `\\' quoting should be
done; `quote', meaning that `\"' quoting should be done; `smart',
meaning that the choice between `backslash' and `quote' should be
:group 'tcl)
(defcustom tcl-help-directory-list nil
- "*List of topmost directories containing TclX help files."
+ "List of topmost directories containing TclX help files."
:type '(repeat directory)
:group 'tcl)
(defcustom tcl-use-smart-word-finder t
- "*If not nil, use smart way to find current word, for Tcl help feature."
+ "If not nil, use smart way to find current word, for Tcl help feature."
:type 'boolean
:group 'tcl)
(defcustom tcl-application "wish"
- "*Name of Tcl program to run in inferior Tcl mode."
+ "Name of Tcl program to run in inferior Tcl mode."
:type 'string
:group 'tcl)
(defcustom tcl-command-switches nil
- "*List of switches to supply to the `tcl-application' program."
+ "List of switches to supply to the `tcl-application' program."
:type '(repeat string)
:group 'tcl)
(defcustom tcl-prompt-regexp "^\\(% \\|\\)"
- "*If not nil, a regexp that will match the prompt in the inferior process.
+ "If not nil, a regexp that will match the prompt in the inferior process.
If nil, the prompt is the name of the application with \">\" appended.
The default is \"^\\(% \\|\\)\", which will match the default primary
:group 'tcl)
(defcustom inferior-tcl-source-command "source %s\n"
- "*Format-string for building a Tcl command to load a file.
+ "Format-string for building a Tcl command to load a file.
This format string should use `%s' to substitute a file name
and should result in a Tcl expression that will command the
inferior Tcl to load that file. The filename will be appropriately
["Tcl help" tcl-help-on-word tcl-help-directory-list]))
(defvar inferior-tcl-buffer nil
- "*The current inferior-tcl process buffer.
+ "The current inferior-tcl process buffer.
MULTIPLE PROCESS SUPPORT
===========================================================================
:group 'languages)
(defcustom vera-basic-offset 2
- "*Amount of basic offset used for indentation."
+ "Amount of basic offset used for indentation."
:type 'integer
:group 'vera)
(defcustom vera-underscore-is-part-of-word nil
- "*Non-nil means consider the underscore character `_' as part of word.
+ "Non-nil means consider the underscore character `_' as part of word.
An identifier containing underscores is then treated as a single word in
select and move operations. All parts of an identifier separated by underscore
are treated as single words otherwise."
:group 'vera)
(defcustom vera-intelligent-tab t
- "*Non-nil means `TAB' does indentation, word completion and tab insertion.
+ "Non-nil means `TAB' does indentation, word completion and tab insertion.
That is, if preceding character is part of a word then complete word,
else if not at beginning of line then insert tab,
else if last command was a `TAB' or `RET' then dedent one step,
(defcustom verilog-linter
"echo 'No verilog-linter set, see \"M-x describe-variable verilog-linter\"'"
- "*Unix program and arguments to call to run a lint checker on Verilog source.
+ "Unix program and arguments to call to run a lint checker on Verilog source.
Depending on the `verilog-set-compile-command', this may be invoked when
you type \\[compile]. When the compile completes, \\[next-error] will take
you to the next lint error."
(defcustom verilog-coverage
"echo 'No verilog-coverage set, see \"M-x describe-variable verilog-coverage\"'"
- "*Program and arguments to use to annotate for coverage Verilog source.
+ "Program and arguments to use to annotate for coverage Verilog source.
Depending on the `verilog-set-compile-command', this may be invoked when
you type \\[compile]. When the compile completes, \\[next-error] will take
you to the next lint error."
(defcustom verilog-simulator
"echo 'No verilog-simulator set, see \"M-x describe-variable verilog-simulator\"'"
- "*Program and arguments to use to interpret Verilog source.
+ "Program and arguments to use to interpret Verilog source.
Depending on the `verilog-set-compile-command', this may be invoked when
you type \\[compile]. When the compile completes, \\[next-error] will take
you to the next lint error."
(defcustom verilog-compiler
"echo 'No verilog-compiler set, see \"M-x describe-variable verilog-compiler\"'"
- "*Program and arguments to use to compile Verilog source.
+ "Program and arguments to use to compile Verilog source.
Depending on the `verilog-set-compile-command', this may be invoked when
you type \\[compile]. When the compile completes, \\[next-error] will take
you to the next lint error."
(defcustom verilog-preprocessor
;; Very few tools give preprocessed output, so we'll default to Verilog-Perl
"vppreproc __FLAGS__ __FILE__"
- "*Program and arguments to use to preprocess Verilog source.
+ "Program and arguments to use to preprocess Verilog source.
This is invoked with `verilog-preprocess', and depending on the
`verilog-set-compile-command', may also be invoked when you type
\\[compile]. When the compile completes, \\[next-error] will
`verilog-set-compile-command' for more information.")
(defcustom verilog-highlight-translate-off nil
- "*Non-nil means background-highlight code excluded from translation.
+ "Non-nil means background-highlight code excluded from translation.
That is, all code between \"// synopsys translate_off\" and
\"// synopsys translate_on\" is highlighted using a different background color
\(face `verilog-font-lock-translate-off-face').
(put 'verilog-highlight-translate-off 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-lineup 'declarations
- "*Type of statements to lineup across multiple lines.
+ "Type of statements to lineup across multiple lines.
If 'all' is selected, then all line ups described below are done.
If 'declaration', then just declarations are lined up with any
:group 'verilog-mode-indent )
(defcustom verilog-indent-level 3
- "*Indentation of Verilog statements with respect to containing block."
+ "Indentation of Verilog statements with respect to containing block."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-indent-level 'safe-local-variable 'integerp)
(defcustom verilog-indent-level-module 3
- "*Indentation of Module level Verilog statements (eg always, initial).
+ "Indentation of Module level Verilog statements (eg always, initial).
Set to 0 to get initial and always statements lined up on the left side of
your screen."
:group 'verilog-mode-indent
(put 'verilog-indent-level-module 'safe-local-variable 'integerp)
(defcustom verilog-indent-level-declaration 3
- "*Indentation of declarations with respect to containing block.
+ "Indentation of declarations with respect to containing block.
Set to 0 to get them list right under containing block."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-indent-level-declaration 'safe-local-variable 'integerp)
(defcustom verilog-indent-declaration-macros nil
- "*How to treat macro expansions in a declaration.
+ "How to treat macro expansions in a declaration.
If nil, indent as:
input [31:0] a;
input `CP;
(put 'verilog-indent-declaration-macros 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-indent-lists t
- "*How to treat indenting items in a list.
+ "How to treat indenting items in a list.
If t (the default), indent as:
always @( posedge a or
reset ) begin
(put 'verilog-indent-lists 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-indent-level-behavioral 3
- "*Absolute indentation of first begin in a task or function block.
+ "Absolute indentation of first begin in a task or function block.
Set to 0 to get such code to start at the left side of the screen."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-indent-level-behavioral 'safe-local-variable 'integerp)
(defcustom verilog-indent-level-directive 1
- "*Indentation to add to each level of `ifdef declarations.
+ "Indentation to add to each level of `ifdef declarations.
Set to 0 to have all directives start at the left side of the screen."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-indent-level-directive 'safe-local-variable 'integerp)
(defcustom verilog-cexp-indent 2
- "*Indentation of Verilog statements split across lines."
+ "Indentation of Verilog statements split across lines."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-cexp-indent 'safe-local-variable 'integerp)
(defcustom verilog-case-indent 2
- "*Indentation for case statements."
+ "Indentation for case statements."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-case-indent 'safe-local-variable 'integerp)
(defcustom verilog-auto-newline t
- "*True means automatically newline after semicolons."
+ "True means automatically newline after semicolons."
:group 'verilog-mode-indent
:type 'boolean)
(put 'verilog-auto-newline 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-indent-on-newline t
- "*True means automatically indent line after newline."
+ "True means automatically indent line after newline."
:group 'verilog-mode-indent
:type 'boolean)
(put 'verilog-auto-indent-on-newline 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-tab-always-indent t
- "*True means TAB should always re-indent the current line.
+ "True means TAB should always re-indent the current line.
A nil value means TAB will only reindent when at the beginning of the line."
:group 'verilog-mode-indent
:type 'boolean)
(put 'verilog-tab-always-indent 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-tab-to-comment nil
- "*True means TAB moves to the right hand column in preparation for a comment."
+ "True means TAB moves to the right hand column in preparation for a comment."
:group 'verilog-mode-actions
:type 'boolean)
(put 'verilog-tab-to-comment 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-indent-begin-after-if t
- "*If true, indent begin statements following if, else, while, for and repeat.
+ "If true, indent begin statements following if, else, while, for and repeat.
Otherwise, line them up."
:group 'verilog-mode-indent
:type 'boolean)
(defcustom verilog-align-ifelse nil
- "*If true, align `else' under matching `if'.
+ "If true, align `else' under matching `if'.
Otherwise else is lined up with first character on line holding matching if."
:group 'verilog-mode-indent
:type 'boolean)
(put 'verilog-align-ifelse 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-minimum-comment-distance 10
- "*Minimum distance (in lines) between begin and end required before a comment.
+ "Minimum distance (in lines) between begin and end required before a comment.
Setting this variable to zero results in every end acquiring a comment; the
default avoids too many redundant comments in tight quarters."
:group 'verilog-mode-indent
(put 'verilog-minimum-comment-distance 'safe-local-variable 'integerp)
(defcustom verilog-highlight-p1800-keywords nil
- "*True means highlight words newly reserved by IEEE-1800.
+ "True means highlight words newly reserved by IEEE-1800.
These will appear in `verilog-font-lock-p1800-face' in order to gently
suggest changing where these words are used as variables to something else.
A nil value means highlight these words as appropriate for the SystemVerilog
(put 'verilog-highlight-p1800-keywords 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-highlight-grouping-keywords nil
- "*True means highlight grouping keywords 'begin' and 'end' more dramatically.
+ "True means highlight grouping keywords 'begin' and 'end' more dramatically.
If false, these words are in the `font-lock-type-face'; if True then they are in
`verilog-font-lock-ams-face'. Some find that special highlighting on these
grouping constructs allow the structure of the code to be understood at a glance."
(put 'verilog-highlight-grouping-keywords 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-highlight-modules nil
- "*True means highlight module statements for `verilog-load-file-at-point'.
+ "True means highlight module statements for `verilog-load-file-at-point'.
When true, mousing over module names will allow jumping to the
module definition. If false, this is not supported. Setting
this is experimental, and may lead to bad performance."
(put 'verilog-highlight-modules 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-highlight-includes t
- "*True means highlight module statements for `verilog-load-file-at-point'.
+ "True means highlight module statements for `verilog-load-file-at-point'.
When true, mousing over include file names will allow jumping to the
file referenced. If false, this is not supported."
:group 'verilog-mode-indent
(put 'verilog-highlight-includes 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-declare-nettype nil
- "*Non-nil specifies the data type to use with `verilog-auto-input' etc.
+ "Non-nil specifies the data type to use with `verilog-auto-input' etc.
Set this to \"wire\" if the Verilog code uses \"`default_nettype
none\". Note using `default_nettype none isn't recommended practice; this
mode is experimental."
(put 'verilog-auto-declare-nettype 'safe-local-variable `stringp)
(defcustom verilog-auto-wire-type nil
- "*Non-nil specifies the data type to use with `verilog-auto-wire' etc.
+ "Non-nil specifies the data type to use with `verilog-auto-wire' etc.
Set this to \"logic\" for SystemVerilog code, or use `verilog-auto-logic'."
:version "24.1"
:group 'verilog-mode-actions
(put 'verilog-auto-wire-type 'safe-local-variable `stringp)
(defcustom verilog-auto-endcomments t
- "*True means insert a comment /* ... */ after 'end's.
+ "True means insert a comment /* ... */ after 'end's.
The name of the function or case will be set between the braces."
:group 'verilog-mode-actions
:type 'boolean)
(put 'verilog-auto-endcomments 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-delete-trailing-whitespace nil
- "*True means to `delete-trailing-whitespace' in `verilog-auto'."
+ "True means to `delete-trailing-whitespace' in `verilog-auto'."
:version "24.1"
:group 'verilog-mode-actions
:type 'boolean)
(put 'verilog-auto-delete-trailing-whitespace 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-ignore-concat nil
- "*True means ignore signals in {...} concatenations for AUTOWIRE etc.
+ "True means ignore signals in {...} concatenations for AUTOWIRE etc.
This will exclude signals referenced as pin connections in {...}
from AUTOWIRE, AUTOOUTPUT and friends. This flag should be set
for backward compatibility only and not set in new designs; it
(put 'verilog-auto-ignore-concat 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-read-includes nil
- "*True means to automatically read includes before AUTOs.
+ "True means to automatically read includes before AUTOs.
This will do a `verilog-read-defines' and `verilog-read-includes' before
each AUTO expansion. This makes it easier to embed defines and includes,
but can result in very slow reading times if there are many or large
(put 'verilog-auto-read-includes 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-save-policy nil
- "*Non-nil indicates action to take when saving a Verilog buffer with AUTOs.
+ "Non-nil indicates action to take when saving a Verilog buffer with AUTOs.
A value of `force' will always do a \\[verilog-auto] automatically if
needed on every save. A value of `detect' will do \\[verilog-auto]
automatically when it thinks necessary. A value of `ask' will query the
:type '(choice (const nil) (const ask) (const detect) (const force)))
(defcustom verilog-auto-star-expand t
- "*Non-nil indicates to expand a SystemVerilog .* instance ports.
+ "Non-nil indicates to expand a SystemVerilog .* instance ports.
They will be expanded in the same way as if there was a AUTOINST in the
instantiation. See also `verilog-auto-star' and `verilog-auto-star-save'."
:group 'verilog-mode-actions
(put 'verilog-auto-star-expand 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-star-save nil
- "*Non-nil indicates to save to disk SystemVerilog .* instance expansions.
+ "Non-nil indicates to save to disk SystemVerilog .* instance expansions.
A nil value indicates direct connections will be removed before saving.
Only meaningful to those created due to `verilog-auto-star-expand' being set.
"Text from file-local-variables during last evaluation.")
(defvar verilog-diff-function 'verilog-diff-report
- "*Function to run when `verilog-diff-auto' detects differences.
+ "Function to run when `verilog-diff-auto' detects differences.
Function takes three arguments, the original buffer, the
difference buffer, and the point in original buffer with the
first difference.")
("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 1 bold t)
("^In file \\([^ \t]+\\)[ \t]+line[ \t]+\\([0-9]+\\):\n[^\n]*\n[^\n]*\n\\(Warning\\|Error\\|Failure\\)[^\n]*" 2 bold t)
)
- "*Keywords to also highlight in Verilog *compilation* buffers.
+ "Keywords to also highlight in Verilog *compilation* buffers.
Only used in XEmacs; GNU Emacs uses `verilog-error-regexp-emacs-alist'.")
(defcustom verilog-library-flags '("")
- "*List of standard Verilog arguments to use for /*AUTOINST*/.
+ "List of standard Verilog arguments to use for /*AUTOINST*/.
These arguments are used to find files for `verilog-auto', and match
the flags accepted by a standard Verilog-XL simulator.
(put 'verilog-library-flags 'safe-local-variable 'listp)
(defcustom verilog-library-directories '(".")
- "*List of directories when looking for files for /*AUTOINST*/.
+ "List of directories when looking for files for /*AUTOINST*/.
The directory may be relative to the current file, or absolute.
Environment variables are also expanded in the directory names.
Having at least the current directory is a good idea.
(put 'verilog-library-directories 'safe-local-variable 'listp)
(defcustom verilog-library-files '()
- "*List of files to search for modules.
+ "List of files to search for modules.
AUTOINST will use this when it needs to resolve a module name.
This is a complete path, usually to a technology file with many standard
cells defined in it.
(put 'verilog-library-files 'safe-local-variable 'listp)
(defcustom verilog-library-extensions '(".v" ".sv")
- "*List of extensions to use when looking for files for /*AUTOINST*/.
+ "List of extensions to use when looking for files for /*AUTOINST*/.
See also `verilog-library-flags', `verilog-library-directories'."
:type '(repeat string)
:group 'verilog-mode-auto)
(put 'verilog-library-extensions 'safe-local-variable 'listp)
(defcustom verilog-active-low-regexp nil
- "*If set, treat signals matching this regexp as active low.
+ "If set, treat signals matching this regexp as active low.
This is used for AUTORESET and AUTOTIEOFF. For proper behavior,
you will probably also need `verilog-auto-reset-widths' set."
:group 'verilog-mode-auto
(put 'verilog-active-low-regexp 'safe-local-variable 'stringp)
(defcustom verilog-auto-sense-include-inputs nil
- "*If true, AUTOSENSE should include all inputs.
+ "If true, AUTOSENSE should include all inputs.
If nil, only inputs that are NOT output signals in the same block are
included."
:group 'verilog-mode-auto
(put 'verilog-auto-sense-include-inputs 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-sense-defines-constant nil
- "*If true, AUTOSENSE should assume all defines represent constants.
+ "If true, AUTOSENSE should assume all defines represent constants.
When true, the defines will not be included in sensitivity lists. To
maintain compatibility with other sites, this should be set at the bottom
of each Verilog file that requires it, rather than being set globally."
(put 'verilog-auto-sense-defines-constant 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-reset-blocking-in-non t
- "*If true, AUTORESET will reset those signals which were
+ "If true, AUTORESET will reset those signals which were
assigned with blocking assignments (=) even in a block with
non-blocking assignments (<=).
(put 'verilog-auto-reset-blocking-in-non 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-reset-widths t
- "*If true, AUTORESET should determine the width of signals.
+ "If true, AUTORESET should determine the width of signals.
This is then used to set the width of the zero (32'h0 for example). This
is required by some lint tools that aren't smart enough to ignore widths of
the constant zero. This may result in ugly code when parameters determine
(put 'verilog-auto-reset-widths 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-assignment-delay ""
- "*Text used for delays in delayed assignments. Add a trailing space if set."
+ "Text used for delays in delayed assignments. Add a trailing space if set."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-assignment-delay 'safe-local-variable 'stringp)
(defcustom verilog-auto-arg-sort nil
- "*If set, AUTOARG signal names will be sorted, not in declaration order.
+ "If set, AUTOARG signal names will be sorted, not in declaration order.
Declaration order is advantageous with order based instantiations
and is the default for backward compatibility. Sorted order
reduces changes when declarations are moved around in a file, and
(put 'verilog-auto-arg-sort 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-inst-dot-name nil
- "*If true, when creating ports with AUTOINST, use .name syntax.
+ "If true, when creating ports with AUTOINST, use .name syntax.
This will use \".port\" instead of \".port(port)\" when possible.
This is only legal in SystemVerilog files, and will confuse older
simulators. Setting `verilog-auto-inst-vector' to nil may also
(put 'verilog-auto-inst-dot-name 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-inst-param-value nil
- "*If set, AUTOINST will replace parameters with the parameter value.
+ "If set, AUTOINST will replace parameters with the parameter value.
If nil, leave parameters as symbolic names.
Parameters must be in Verilog 2001 format #(...), and if a parameter is not
(put 'verilog-auto-inst-param-value 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-inst-sort nil
- "*If set, AUTOINST signal names will be sorted, not in declaration order.
+ "If set, AUTOINST signal names will be sorted, not in declaration order.
Also affects AUTOINSTPARAM. Declaration order is the default for
backward compatibility, and as some teams prefer signals that are
declared together to remain together. Sorted order reduces
(put 'verilog-auto-inst-sort 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-inst-vector t
- "*If true, when creating default ports with AUTOINST, use bus subscripts.
+ "If true, when creating default ports with AUTOINST, use bus subscripts.
If nil, skip the subscript when it matches the entire bus as declared in
the module (AUTOWIRE signals always are subscripted, you must manually
declare the wire to have the subscripts removed.) Setting this to nil may
(put 'verilog-auto-inst-vector 'safe-local-variable 'verilog-booleanp)
(defcustom verilog-auto-inst-template-numbers nil
- "*If true, when creating templated ports with AUTOINST, add a comment.
+ "If true, when creating templated ports with AUTOINST, add a comment.
If t, the comment will add the line number of the template that
was used for that port declaration. This setting is suggested
'(lambda (x) (memq x '(nil t lhs))))
(defcustom verilog-auto-inst-column 40
- "*Indent-to column number for net name part of AUTOINST created pin."
+ "Indent-to column number for net name part of AUTOINST created pin."
:group 'verilog-mode-indent
:type 'integer)
(put 'verilog-auto-inst-column 'safe-local-variable 'integerp)
(defcustom verilog-auto-input-ignore-regexp nil
- "*If set, when creating AUTOINPUT list, ignore signals matching this regexp.
+ "If set, when creating AUTOINPUT list, ignore signals matching this regexp.
See the \\[verilog-faq] for examples on using this."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-auto-input-ignore-regexp 'safe-local-variable 'stringp)
(defcustom verilog-auto-inout-ignore-regexp nil
- "*If set, when creating AUTOINOUT list, ignore signals matching this regexp.
+ "If set, when creating AUTOINOUT list, ignore signals matching this regexp.
See the \\[verilog-faq] for examples on using this."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-auto-inout-ignore-regexp 'safe-local-variable 'stringp)
(defcustom verilog-auto-output-ignore-regexp nil
- "*If set, when creating AUTOOUTPUT list, ignore signals matching this regexp.
+ "If set, when creating AUTOOUTPUT list, ignore signals matching this regexp.
See the \\[verilog-faq] for examples on using this."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-auto-output-ignore-regexp 'safe-local-variable 'stringp)
(defcustom verilog-auto-tieoff-declaration "wire"
- "*Data type used for the declaration for AUTOTIEOFF. If \"wire\" then
+ "Data type used for the declaration for AUTOTIEOFF. If \"wire\" then
create a wire, if \"assign\" create an assignment, else the data type for
variable creation."
:version "24.1"
(put 'verilog-auto-tieoff-declaration 'safe-local-variable 'stringp)
(defcustom verilog-auto-tieoff-ignore-regexp nil
- "*If set, when creating AUTOTIEOFF list, ignore signals matching this regexp.
+ "If set, when creating AUTOTIEOFF list, ignore signals matching this regexp.
See the \\[verilog-faq] for examples on using this."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-auto-tieoff-ignore-regexp 'safe-local-variable 'stringp)
(defcustom verilog-auto-unused-ignore-regexp nil
- "*If set, when creating AUTOUNUSED list, ignore signals matching this regexp.
+ "If set, when creating AUTOUNUSED list, ignore signals matching this regexp.
See the \\[verilog-faq] for examples on using this."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-auto-unused-ignore-regexp 'safe-local-variable 'stringp)
(defcustom verilog-typedef-regexp nil
- "*If non-nil, regular expression that matches Verilog-2001 typedef names.
+ "If non-nil, regular expression that matches Verilog-2001 typedef names.
For example, \"_t$\" matches typedefs named with _t, as in the C language."
:group 'verilog-mode-auto
:type 'string)
(put 'verilog-typedef-regexp 'safe-local-variable 'stringp)
(defcustom verilog-mode-hook 'verilog-set-compile-command
- "*Hook run after Verilog mode is loaded."
+ "Hook run after Verilog mode is loaded."
:type 'hook
:group 'verilog-mode)
(defcustom verilog-auto-hook nil
- "*Hook run after `verilog-mode' updates AUTOs."
+ "Hook run after `verilog-mode' updates AUTOs."
:group 'verilog-mode-auto
:type 'hook)
(defcustom verilog-before-auto-hook nil
- "*Hook run before `verilog-mode' updates AUTOs."
+ "Hook run before `verilog-mode' updates AUTOs."
:group 'verilog-mode-auto
:type 'hook)
(defcustom verilog-delete-auto-hook nil
- "*Hook run after `verilog-mode' deletes AUTOs."
+ "Hook run after `verilog-mode' deletes AUTOs."
:group 'verilog-mode-auto
:type 'hook)
(defcustom verilog-before-delete-auto-hook nil
- "*Hook run before `verilog-mode' deletes AUTOs."
+ "Hook run before `verilog-mode' deletes AUTOs."
:group 'verilog-mode-auto
:type 'hook)
(defcustom verilog-getopt-flags-hook nil
- "*Hook run after `verilog-getopt-flags' determines the Verilog option lists."
+ "Hook run after `verilog-getopt-flags' determines the Verilog option lists."
:group 'verilog-mode-auto
:type 'hook)
(defcustom verilog-before-getopt-flags-hook nil
- "*Hook run before `verilog-getopt-flags' determines the Verilog option lists."
+ "Hook run before `verilog-getopt-flags' determines the Verilog option lists."
:group 'verilog-mode-auto
:type 'hook)
;; Customization variables:
;;
(defvar verilog-date-scientific-format nil
- "*If non-nil, dates are written in scientific format (e.g. 1997/09/17).
+ "If non-nil, dates are written in scientific format (e.g. 1997/09/17).
If nil, in European format (e.g. 17.09.1997). The brain-dead American
format (e.g. 09/17/1997) is not supported.")
(defvar verilog-company nil
- "*Default name of Company for Verilog header.
+ "Default name of Company for Verilog header.
If set will become buffer local.")
(make-variable-buffer-local 'verilog-company)
(defvar verilog-project nil
- "*Default name of Project for Verilog header.
+ "Default name of Project for Verilog header.
If set will become buffer local.")
(make-variable-buffer-local 'verilog-project)
(defvar verilog-buffer-to-use nil)
(defvar verilog-flag nil)
(defvar verilog-toggle-completions nil
- "*True means \\<verilog-mode-map>\\[verilog-complete-word] should try all possible completions one by one.
+ "True means \\<verilog-mode-map>\\[verilog-complete-word] should try all possible completions one by one.
Repeated use of \\[verilog-complete-word] will show you all of them.
Normally, when there is more than one possible completion,
it displays a list of all possible completions.")
"rtranif1" "semaphore" "time" "tran" "tranif0" "tranif1" "tri" "tri0" "tri1"
"triand" "trior" "trireg" "wand" "wire" "wor" "xnor" "xor"
)
- "*Keywords for types used when completing a word in a declaration or parmlist.
+ "Keywords for types used when completing a word in a declaration or parmlist.
\(integer, real, reg...)")
(defvar verilog-cpp-keywords
'("module" "macromodule" "primitive" "timescale" "define" "ifdef" "ifndef" "else"
"endif")
- "*Keywords to complete when at first word of a line in declarative scope.
+ "Keywords to complete when at first word of a line in declarative scope.
\(initial, always, begin, assign...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.")
"task" "endtask" "primitive" "endprimitive"
)
verilog-type-keywords)
- "*Keywords to complete when at first word of a line in declarative scope.
+ "Keywords to complete when at first word of a line in declarative scope.
\(initial, always, begin, assign...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.")
"endgenerate" "endinterface" "endpackage" "endspecify" "endtask"
"for" "fork" "if" "join" "join_any" "join_none" "repeat" "return"
"while")
- "*Keywords to complete when at first word of a line in behavioral scope.
+ "Keywords to complete when at first word of a line in behavioral scope.
\(begin, if, then, else, for, fork...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.")
(defvar verilog-tf-keywords
'("begin" "break" "fork" "join" "join_any" "join_none" "case" "end" "endtask" "endfunction" "if" "else" "for" "while" "repeat")
- "*Keywords to complete when at first word of a line in a task or function.
+ "Keywords to complete when at first word of a line in a task or function.
\(begin, if, then, else, for, fork.)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.")
(defvar verilog-case-keywords
'("begin" "fork" "join" "join_any" "join_none" "case" "end" "endcase" "if" "else" "for" "repeat")
- "*Keywords to complete when at first word of a line in case scope.
+ "Keywords to complete when at first word of a line in case scope.
\(begin, if, then, else, for, fork...)
The procedures and variables defined within the Verilog program
will be completed at runtime and should not be added to this list.")
(defvar verilog-separator-keywords
'("else" "then" "begin")
- "*Keywords to complete when NOT standing at the first word of a statement.
+ "Keywords to complete when NOT standing at the first word of a statement.
\(else, then, begin...)
Variables and function names defined within the Verilog program
will be completed at runtime and should not be added to this list.")
("tranif1" "inout" "inout")
("xnor" "output")
("xor" "output"))
- "*Map of direction for each positional argument to each gate primitive.")
+ "Map of direction for each positional argument to each gate primitive.")
(defvar verilog-gate-keywords (mapcar `car verilog-gate-ios)
- "*Keywords for gate primitives.")
+ "Keywords for gate primitives.")
(defun verilog-string-diff (str1 str2)
"Return index of first letter where STR1 and STR2 differs."
:group 'vhdl)
(defcustom vhdl-indent-tabs-mode nil
- "*Non-nil means indentation can insert tabs.
+ "Non-nil means indentation can insert tabs.
Overrides local variable `indent-tabs-mode'."
:type 'boolean
:group 'vhdl-mode)
("^ *Compiling \"\\(.+\\)\" " 1)
nil)
)
- "*List of available VHDL compilers and their properties.
+ "List of available VHDL compilers and their properties.
Each list entry specifies the following items for a compiler:
Compiler:
Compiler name : name used in option `vhdl-compiler' to choose compiler
:group 'vhdl-compile)
(defcustom vhdl-compiler "ModelSim"
- "*Specifies the VHDL compiler to be used for syntax analysis.
+ "Specifies the VHDL compiler to be used for syntax analysis.
Select a compiler name from the ones defined in option `vhdl-compiler-alist'."
:type (let ((alist vhdl-compiler-alist) list)
(while alist
:group 'vhdl-compile)
(defcustom vhdl-compile-use-local-error-regexp t
- "*Non-nil means use buffer-local `compilation-error-regexp-alist'.
+ "Non-nil means use buffer-local `compilation-error-regexp-alist'.
In this case, only error message regexps for VHDL compilers are active if
compilation is started from a VHDL buffer. Otherwise, the error message
regexps are appended to the predefined global regexps, and all regexps are
:group 'vhdl-compile)
(defcustom vhdl-makefile-generation-hook nil
- "*Functions to run at the end of Makefile generation.
+ "Functions to run at the end of Makefile generation.
Allows to insert user specific parts into a Makefile.
Example:
:group 'vhdl-compile)
(defcustom vhdl-default-library "work"
- "*Name of default library.
+ "Name of default library.
Is overwritten by project settings if a project is active."
:type 'string
:group 'vhdl-compile)
-- This is a multi-line project description
-- that can be used as a project dependent part of the file header.
"))
- "*List of projects and their properties.
+ "List of projects and their properties.
Name : name used in option `vhdl-project' to choose project
Title : title of project (single-line string)
Default directory: default project directory (absolute path)
:group 'vhdl-project)
(defcustom vhdl-project nil
- "*Specifies the default for the current project.
+ "Specifies the default for the current project.
Select a project name from the ones defined in option `vhdl-project-alist'.
Is used to determine the project title and description to be inserted in file
headers and the source files/directories to be scanned in the hierarchy
:group 'vhdl-project)
(defcustom vhdl-project-file-name '("\\1.prj")
- "*List of file names/paths for importing/exporting project setups.
+ "List of file names/paths for importing/exporting project setups.
\"\\1\" is replaced by the project name (SPC is replaced by `_'), \"\\2\" is
replaced by the user name (allows to have user-specific project setups).
The first entry is used as file name to import/export individual project
:group 'vhdl-project)
(defcustom vhdl-project-auto-load '(startup)
- "*Automatically load project setups from files.
+ "Automatically load project setups from files.
All project setup files that match the file names specified in option
`vhdl-project-file-name' are automatically loaded. The project of the
\(alphabetically) last loaded setup of the first `vhdl-project-file-name'
:group 'vhdl-project)
(defcustom vhdl-project-sort t
- "*Non-nil means projects are displayed in alphabetical order."
+ "Non-nil means projects are displayed in alphabetical order."
:type 'boolean
:group 'vhdl-project)
:group 'vhdl-compose)
(defcustom vhdl-standard '(87 nil)
- "*VHDL standards used.
+ "VHDL standards used.
Basic standard:
VHDL'87 : IEEE Std 1076-1987
VHDL'93 : IEEE Std 1076-1993
:group 'vhdl-style)
(defcustom vhdl-basic-offset 2
- "*Amount of basic offset used for indentation.
+ "Amount of basic offset used for indentation.
This value is used by + and - symbols in `vhdl-offsets-alist'."
:type 'integer
:group 'vhdl-style)
(defcustom vhdl-upper-case-keywords nil
- "*Non-nil means convert keywords to upper case.
+ "Non-nil means convert keywords to upper case.
This is done when typed or expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
:group 'vhdl-style)
(defcustom vhdl-upper-case-types nil
- "*Non-nil means convert standardized types to upper case.
+ "Non-nil means convert standardized types to upper case.
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
:group 'vhdl-style)
(defcustom vhdl-upper-case-attributes nil
- "*Non-nil means convert standardized attributes to upper case.
+ "Non-nil means convert standardized attributes to upper case.
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
:group 'vhdl-style)
(defcustom vhdl-upper-case-enum-values nil
- "*Non-nil means convert standardized enumeration values to upper case.
+ "Non-nil means convert standardized enumeration values to upper case.
This is done when expanded or by the fix case functions."
:type 'boolean
:set (lambda (variable value)
:group 'vhdl-style)
(defcustom vhdl-upper-case-constants t
- "*Non-nil means convert standardized constants to upper case.
+ "Non-nil means convert standardized constants to upper case.
This is done when expanded."
:type 'boolean
:set (lambda (variable value)
:group 'vhdl-style)
(defcustom vhdl-use-direct-instantiation 'standard
- "*Non-nil means use VHDL'93 direct component instantiation.
+ "Non-nil means use VHDL'93 direct component instantiation.
Never : never
Standard: only in VHDL standards that allow it (VHDL'93 and higher)
Always : always"
(defcustom vhdl-entity-file-name '(".*" . "\\&")
(concat
- "*Specifies how the entity file name is obtained.
+ "Specifies how the entity file name is obtained.
The entity file name can be obtained by modifying the entity name (e.g.
attaching or stripping off a substring). The file extension is automatically
taken from the file name of the current buffer."
(defcustom vhdl-architecture-file-name '("\\(.*\\) \\(.*\\)" . "\\1_\\2")
(concat
- "*Specifies how the architecture file name is obtained.
+ "Specifies how the architecture file name is obtained.
The architecture file name can be obtained by modifying the entity
and/or architecture name (e.g. attaching or stripping off a substring). The
file extension is automatically taken from the file name of the current
(defcustom vhdl-configuration-file-name '(".*" . "\\&")
(concat
- "*Specifies how the configuration file name is obtained.
+ "Specifies how the configuration file name is obtained.
The configuration file name can be obtained by modifying the configuration
name (e.g. attaching or stripping off a substring). The file extension is
automatically taken from the file name of the current buffer."
(defcustom vhdl-package-file-name '(".*" . "\\&")
(concat
- "*Specifies how the package file name is obtained.
+ "Specifies how the package file name is obtained.
The package file name can be obtained by modifying the package name (e.g.
attaching or stripping off a substring). The file extension is automatically
taken from the file name of the current buffer. Package files can be created
:group 'vhdl-compose)
(defcustom vhdl-file-name-case 'identity
- "*Specifies how to change case for obtaining file names.
+ "Specifies how to change case for obtaining file names.
When deriving a file name from a VHDL unit name, case can be changed as
follows:
As Is: case is not changed (taken as is)
:group 'vhdl)
(defcustom vhdl-electric-keywords '(vhdl user)
- "*Type of keywords for which electrification is enabled.
+ "Type of keywords for which electrification is enabled.
VHDL keywords: invoke built-in templates
User keywords: invoke user models (see option `vhdl-model-alist')"
:type '(set (const :tag "VHDL keywords" vhdl)
:group 'vhdl-template)
(defcustom vhdl-optional-labels 'process
- "*Constructs for which labels are to be queried.
+ "Constructs for which labels are to be queried.
Template generators prompt for optional labels for:
None : no constructs
Processes only: processes only (also procedurals in VHDL-AMS)
:group 'vhdl-template)
(defcustom vhdl-insert-empty-lines 'unit
- "*Specifies whether to insert empty lines in some templates.
+ "Specifies whether to insert empty lines in some templates.
This improves readability of code. Empty lines are inserted in:
None : no constructs
Design units only: entities, architectures, configurations, packages only
:group 'vhdl-compose)
(defcustom vhdl-argument-list-indent nil
- "*Non-nil means indent argument lists relative to opening parenthesis.
+ "Non-nil means indent argument lists relative to opening parenthesis.
That is, argument, association, and port lists start on the same line as the
opening parenthesis and subsequent lines are indented accordingly.
Otherwise, lists start on a new line and are indented as normal code."
:group 'vhdl-compose)
(defcustom vhdl-association-list-with-formals t
- "*Non-nil means write association lists with formal parameters.
+ "Non-nil means write association lists with formal parameters.
Templates prompt for formal and actual parameters (ports/generics).
When pasting component instantiations, formals are included.
If nil, only a list of actual parameters is entered."
:group 'vhdl-compose)
(defcustom vhdl-conditions-in-parenthesis nil
- "*Non-nil means place parenthesis around condition expressions."
+ "Non-nil means place parenthesis around condition expressions."
:type 'boolean
:group 'vhdl-template)
(defcustom vhdl-zero-string "'0'"
- "*String to use for a logic zero."
+ "String to use for a logic zero."
:type 'string
:group 'vhdl-template)
(defcustom vhdl-one-string "'1'"
- "*String to use for a logic one."
+ "String to use for a logic one."
:type 'string
:group 'vhdl-template)
-------------------------------------------------------------------------------
"
- "*String or file to insert as file header.
+ "String or file to insert as file header.
If the string specifies an existing file name, the contents of the file is
inserted, otherwise the string itself is inserted as file header.
Type `C-j' for newlines.
:group 'vhdl-header)
(defcustom vhdl-file-footer ""
- "*String or file to insert as file footer.
+ "String or file to insert as file footer.
If the string specifies an existing file name, the contents of the file is
inserted, otherwise the string itself is inserted as file footer (i.e. at
the end of the file).
:group 'vhdl-header)
(defcustom vhdl-company-name ""
- "*Name of company to insert in file header.
+ "Name of company to insert in file header.
See option `vhdl-file-header'."
:type 'string
:group 'vhdl-header)
-------------------------------------------------------------------------------
-- Copyright (c) <year> <company>
"
- "*Copyright string to insert in file header.
+ "Copyright string to insert in file header.
Can be multi-line string (type `C-j' for newline) and contain other file
header keywords (see option `vhdl-file-header')."
:type 'string
:group 'vhdl-header)
(defcustom vhdl-platform-spec ""
- "*Specification of VHDL platform to insert in file header.
+ "Specification of VHDL platform to insert in file header.
The platform specification should contain names and versions of the
simulation and synthesis tools used.
See option `vhdl-file-header'."
:group 'vhdl-header)
(defcustom vhdl-date-format "%Y-%m-%d"
- "*Specifies the date format to use in the header.
+ "Specifies the date format to use in the header.
This string is passed as argument to the command `format-time-string'.
For more information on format strings, see the documentation for the
`format-time-string' command (C-h f `format-time-string')."
:group 'vhdl-header)
(defcustom vhdl-modify-date-prefix-string "-- Last update: "
- "*Prefix string of modification date in VHDL file header.
+ "Prefix string of modification date in VHDL file header.
If actualization of the modification date is called (menu,
`\\[vhdl-template-modify]'), this string is searched and the rest
of the line replaced by the current date."
:group 'vhdl-header)
(defcustom vhdl-modify-date-on-saving t
- "*Non-nil means update the modification date when the buffer is saved.
+ "Non-nil means update the modification date when the buffer is saved.
Calls function `\\[vhdl-template-modify]').
NOTE: Activate the new setting in a VHDL buffer by using the menu entry
:group 'vhdl-template)
(defcustom vhdl-reset-kind 'async
- "*Specifies which kind of reset to use in sequential processes."
+ "Specifies which kind of reset to use in sequential processes."
:type '(choice (const :tag "None" none)
(const :tag "Synchronous" sync)
(const :tag "Asynchronous" async))
:group 'vhdl-sequential-process)
(defcustom vhdl-reset-active-high nil
- "*Non-nil means reset in sequential processes is active high.
+ "Non-nil means reset in sequential processes is active high.
Otherwise, reset is active low."
:type 'boolean
:group 'vhdl-sequential-process)
(defcustom vhdl-clock-rising-edge t
- "*Non-nil means rising edge of clock triggers sequential processes.
+ "Non-nil means rising edge of clock triggers sequential processes.
Otherwise, falling edge triggers."
:type 'boolean
:group 'vhdl-sequential-process)
(defcustom vhdl-clock-edge-condition 'standard
- "*Syntax of the clock edge condition.
+ "Syntax of the clock edge condition.
Standard: \"clk'event and clk = '1'\"
Function: \"rising_edge(clk)\""
:type '(choice (const :tag "Standard" standard)
:group 'vhdl-sequential-process)
(defcustom vhdl-clock-name ""
- "*Name of clock signal to use in templates."
+ "Name of clock signal to use in templates."
:type 'string
:group 'vhdl-sequential-process)
(defcustom vhdl-reset-name ""
- "*Name of reset signal to use in templates."
+ "Name of reset signal to use in templates."
:type 'string
:group 'vhdl-sequential-process)
end if;
end process <label>;"
"e" ""))
- "*List of user models.
+ "List of user models.
VHDL models (templates) can be specified by the user in this list. They can be
invoked from the menu, through key bindings (`C-c C-m ...'), or by keyword
electrification (i.e. overriding existing or creating new keywords, see
(defcustom vhdl-compose-architecture-name '(".*" . "str")
(concat
- "*Specifies how the component architecture name is obtained.
+ "Specifies how the component architecture name is obtained.
The component architecture name can be obtained by modifying the entity name
\(e.g. attaching or stripping off a substring).
If TO STRING is empty, the architecture name is queried."
(defcustom vhdl-compose-configuration-name
'("\\(.*\\) \\(.*\\)" . "\\1_\\2_cfg")
(concat
- "*Specifies how the configuration name is obtained.
+ "Specifies how the configuration name is obtained.
The configuration name can be obtained by modifying the entity and/or
architecture name (e.g. attaching or stripping off a substring). The string
that is matched against the regexp is the concatenation of the entity and the
(defcustom vhdl-components-package-name
'((".*" . "\\&_components") . "components")
(concat
- "*Specifies how the name for the components package is obtained.
+ "Specifies how the name for the components package is obtained.
The components package is a package containing all component declarations for
the current design. Its name can be obtained by modifying the project name
\(e.g. attaching or stripping off a substring). If no project is defined, the
:group 'vhdl-compose)
(defcustom vhdl-use-components-package nil
- "*Non-nil means use a separate components package for component declarations.
+ "Non-nil means use a separate components package for component declarations.
Otherwise, component declarations are inserted and searched for in the
architecture declarative parts."
:type 'boolean
:group 'vhdl-compose)
(defcustom vhdl-compose-include-header t
- "*Non-nil means include a header in automatically generated files."
+ "Non-nil means include a header in automatically generated files."
:type 'boolean
:group 'vhdl-compose)
(defcustom vhdl-compose-create-files 'single
- "*Specifies whether new files should be created for the new component.
+ "Specifies whether new files should be created for the new component.
The component's entity and architecture are inserted:
None : in current buffer
Single file : in new single file
:group 'vhdl-compose)
(defcustom vhdl-compose-configuration-create-file nil
- "*Specifies whether a new file should be created for the configuration.
+ "Specifies whether a new file should be created for the configuration.
If non-nil, a new file is created for the configuration.
The file name is obtained from variable `vhdl-configuration-file-name'."
:type 'boolean
:group 'vhdl-compose)
(defcustom vhdl-compose-configuration-hierarchical t
- "*Specifies whether hierarchical configurations should be created.
+ "Specifies whether hierarchical configurations should be created.
If non-nil, automatically created configurations are hierarchical and include
the whole hierarchy of subcomponents. Otherwise the configuration only
includes one level of subcomponents."
:group 'vhdl-compose)
(defcustom vhdl-compose-configuration-use-subconfiguration t
- "*Specifies whether subconfigurations should be used inside configurations.
+ "Specifies whether subconfigurations should be used inside configurations.
If non-nil, automatically created configurations use configurations in binding
indications for subcomponents, if such configurations exist. Otherwise,
entities are used in binding indications for subcomponents."
:group 'vhdl-compose)
(defcustom vhdl-include-port-comments nil
- "*Non-nil means include port comments when a port is pasted."
+ "Non-nil means include port comments when a port is pasted."
:type 'boolean
:group 'vhdl-port)
(defcustom vhdl-include-direction-comments nil
- "*Non-nil means include port direction in instantiations as comments."
+ "Non-nil means include port direction in instantiations as comments."
:type 'boolean
:group 'vhdl-port)
(defcustom vhdl-include-type-comments nil
- "*Non-nil means include generic/port type in instantiations as comments."
+ "Non-nil means include generic/port type in instantiations as comments."
:type 'boolean
:group 'vhdl-port)
(defcustom vhdl-include-group-comments 'never
- "*Specifies whether to include group comments and spacings.
+ "Specifies whether to include group comments and spacings.
The comments and empty lines between groups of ports are pasted:
Never : never
Declarations: in entity/component/constant/signal declarations only
(defcustom vhdl-actual-port-name '(".*" . "\\&")
(concat
- "*Specifies how actual port names are obtained from formal port names.
+ "Specifies how actual port names are obtained from formal port names.
In a component instantiation, an actual port name can be obtained by
modifying the formal port name (e.g. attaching or stripping off a substring)."
vhdl-name-doc-string)
(defcustom vhdl-instance-name '(".*" . "\\&_%d")
(concat
- "*Specifies how an instance name is obtained.
+ "Specifies how an instance name is obtained.
The instance name can be obtained by modifying the name of the component to be
instantiated (e.g. attaching or stripping off a substring). \"%d\" is replaced
by a unique number (starting with 1).
(defcustom vhdl-testbench-entity-name '(".*" . "\\&_tb")
(concat
- "*Specifies how the testbench entity name is obtained.
+ "Specifies how the testbench entity name is obtained.
The entity name of a testbench can be obtained by modifying the name of
the component to be tested (e.g. attaching or stripping off a substring)."
vhdl-name-doc-string)
(defcustom vhdl-testbench-architecture-name '(".*" . "")
(concat
- "*Specifies how the testbench architecture name is obtained.
+ "Specifies how the testbench architecture name is obtained.
The testbench architecture name can be obtained by modifying the name of
the component to be tested (e.g. attaching or stripping off a substring).
If TO STRING is empty, the architecture name is queried."
(defcustom vhdl-testbench-configuration-name vhdl-compose-configuration-name
(concat
- "*Specifies how the testbench configuration name is obtained.
+ "Specifies how the testbench configuration name is obtained.
The configuration name of a testbench can be obtained by modifying the entity
and/or architecture name (e.g. attaching or stripping off a substring). The
string that is matched against the regexp is the concatenation of the entity
(defcustom vhdl-testbench-dut-name '(".*" . "DUT")
(concat
- "*Specifies how a DUT instance name is obtained.
+ "Specifies how a DUT instance name is obtained.
The design-under-test instance name (i.e. the component instantiated in the
testbench) can be obtained by modifying the component name (e.g. attaching
or stripping off a substring)."
:group 'vhdl-testbench)
(defcustom vhdl-testbench-include-header t
- "*Non-nil means include a header in automatically generated files."
+ "Non-nil means include a header in automatically generated files."
:type 'boolean
:group 'vhdl-testbench)
-- clock
signal Clk : std_logic := '1';
"
- "*String or file to be inserted in the testbench declarative part.
+ "String or file to be inserted in the testbench declarative part.
If the string specifies an existing file name, the contents of the file is
inserted, otherwise the string itself is inserted in the testbench
architecture before the BEGIN keyword.
wait until Clk = '1';
end process WaveGen_Proc;
"
- "*String or file to be inserted in the testbench statement part.
+ "String or file to be inserted in the testbench statement part.
If the string specifies an existing file name, the contents of the file is
inserted, otherwise the string itself is inserted in the testbench
architecture before the END keyword.
:group 'vhdl-testbench)
(defcustom vhdl-testbench-initialize-signals nil
- "*Non-nil means initialize signals with `0' when declared in testbench."
+ "Non-nil means initialize signals with `0' when declared in testbench."
:type 'boolean
:group 'vhdl-testbench)
(defcustom vhdl-testbench-include-library t
- "*Non-nil means a library/use clause for std_logic_1164 is included."
+ "Non-nil means a library/use clause for std_logic_1164 is included."
:type 'boolean
:group 'vhdl-testbench)
(defcustom vhdl-testbench-include-configuration t
- "*Non-nil means a testbench configuration is attached at the end."
+ "Non-nil means a testbench configuration is attached at the end."
:type 'boolean
:group 'vhdl-testbench)
(defcustom vhdl-testbench-create-files 'single
- "*Specifies whether new files should be created for the testbench.
+ "Specifies whether new files should be created for the testbench.
testbench entity and architecture are inserted:
None : in current buffer
Single file : in new single file
(defcustom vhdl-testbench-entity-file-name vhdl-entity-file-name
(concat
- "*Specifies how the testbench entity file name is obtained.
+ "Specifies how the testbench entity file name is obtained.
The entity file name can be obtained by modifying the testbench entity name
\(e.g. attaching or stripping off a substring). The file extension is
automatically taken from the file name of the current buffer. Testbench
(defcustom vhdl-testbench-architecture-file-name vhdl-architecture-file-name
(concat
- "*Specifies how the testbench architecture file name is obtained.
+ "Specifies how the testbench architecture file name is obtained.
The architecture file name can be obtained by modifying the testbench entity
and/or architecture name (e.g. attaching or stripping off a substring). The
string that is matched against the regexp is the concatenation of the entity
:group 'vhdl)
(defcustom vhdl-self-insert-comments t
- "*Non-nil means various templates automatically insert help comments."
+ "Non-nil means various templates automatically insert help comments."
:type 'boolean
:group 'vhdl-comment)
(defcustom vhdl-prompt-for-comments t
- "*Non-nil means various templates prompt for user definable comments."
+ "Non-nil means various templates prompt for user definable comments."
:type 'boolean
:group 'vhdl-comment)
(defcustom vhdl-inline-comment-column 40
- "*Column to indent and align inline comments to.
+ "Column to indent and align inline comments to.
Overrides local option `comment-column'.
NOTE: Activate the new setting in a VHDL buffer by using the menu entry
:group 'vhdl-comment)
(defcustom vhdl-end-comment-column 79
- "*End of comment column.
+ "End of comment column.
Comments that exceed this column number are wrapped.
NOTE: Activate the new setting in a VHDL buffer by using the menu entry
:group 'vhdl)
(defcustom vhdl-auto-align t
- "*Non-nil means align some templates automatically after generation."
+ "Non-nil means align some templates automatically after generation."
:type 'boolean
:group 'vhdl-align)
(defcustom vhdl-align-groups t
- "*Non-nil means align groups of code lines separately.
+ "Non-nil means align groups of code lines separately.
A group of code lines is a region of consecutive lines between two lines that
match the regexp in option `vhdl-align-group-separate'."
:type 'boolean
:group 'vhdl-align)
(defcustom vhdl-align-group-separate "^\\s-*$"
- "*Regexp for matching a line that separates groups of lines for alignment.
+ "Regexp for matching a line that separates groups of lines for alignment.
Examples:
\"^\\s-*$\": matches an empty line
\"^\\s-*\\(--.*\\)?$\": matches an empty line or a comment-only line"
:group 'vhdl-align)
(defcustom vhdl-align-same-indent t
- "*Non-nil means align blocks with same indent separately.
+ "Non-nil means align blocks with same indent separately.
When a region or the entire buffer is aligned, the code is divided into
blocks of same indent which are aligned separately (except for argument/port
lists). This gives nicer alignment in most cases.
:group 'vhdl)
(defcustom vhdl-highlight-keywords t
- "*Non-nil means highlight VHDL keywords and other standardized words.
+ "Non-nil means highlight VHDL keywords and other standardized words.
The following faces are used:
`font-lock-keyword-face' : keywords
`font-lock-type-face' : standardized types
:group 'vhdl-highlight)
(defcustom vhdl-highlight-names t
- "*Non-nil means highlight declaration names and construct labels.
+ "Non-nil means highlight declaration names and construct labels.
The following faces are used:
`font-lock-function-name-face' : names in declarations of units,
subprograms, components, as well as labels of VHDL constructs
:group 'vhdl-highlight)
(defcustom vhdl-highlight-special-words nil
- "*Non-nil means highlight words with special syntax.
+ "Non-nil means highlight words with special syntax.
The words with syntax and color specified in option `vhdl-special-syntax-alist'
are highlighted accordingly.
Can be used for visual support of naming conventions.
:group 'vhdl-highlight)
(defcustom vhdl-highlight-forbidden-words nil
- "*Non-nil means highlight forbidden words.
+ "Non-nil means highlight forbidden words.
The reserved words specified in option `vhdl-forbidden-words' or having the
syntax specified in option `vhdl-forbidden-syntax' are highlighted in a
warning color (face `vhdl-font-lock-reserved-words-face') to indicate not to
:group 'vhdl-highlight)
(defcustom vhdl-highlight-verilog-keywords nil
- "*Non-nil means highlight Verilog keywords as reserved words.
+ "Non-nil means highlight Verilog keywords as reserved words.
Verilog keywords are highlighted in a warning color (face
`vhdl-font-lock-reserved-words-face') to indicate not to use them.
:group 'vhdl-highlight)
(defcustom vhdl-highlight-translate-off nil
- "*Non-nil means background-highlight code excluded from translation.
+ "Non-nil means background-highlight code excluded from translation.
That is, all code between \"-- pragma translate_off\" and
\"-- pragma translate_on\" is highlighted using a different background color
\(face `vhdl-font-lock-translate-off-face').
:group 'vhdl-highlight)
(defcustom vhdl-highlight-case-sensitive nil
- "*Non-nil means consider case for highlighting.
+ "Non-nil means consider case for highlighting.
Possible trade-off:
non-nil also upper-case VHDL words are highlighted, but case of words with
special syntax is not considered
'(("generic/constant" "\\w+_[cg]" "Gold3" "BurlyWood1")
("type" "\\w+_t" "ForestGreen" "PaleGreen")
("variable" "\\w+_v" "Grey50" "Grey80"))
- "*List of special syntax to be highlighted.
+ "List of special syntax to be highlighted.
If option `vhdl-highlight-special-words' is non-nil, words with the specified
syntax (as regular expression) are highlighted in the corresponding color.
:group 'vhdl-highlight)
(defcustom vhdl-forbidden-words '()
- "*List of forbidden words to be highlighted.
+ "List of forbidden words to be highlighted.
If option `vhdl-highlight-forbidden-words' is non-nil, these reserved
words are highlighted in a warning color to indicate not to use them.
:group 'vhdl-highlight)
(defcustom vhdl-forbidden-syntax ""
- "*Syntax of forbidden words to be highlighted.
+ "Syntax of forbidden words to be highlighted.
If option `vhdl-highlight-forbidden-words' is non-nil, words with this
syntax are highlighted in a warning color to indicate not to use them.
Can be used to highlight too long identifiers (e.g. \"\\w\\w\\w\\w\\w\\w\\w\\w\\w\\w+\"
:group 'vhdl-highlight)
(defcustom vhdl-directive-keywords '("pragma" "synopsys")
- "*List of compiler directive keywords recognized for highlighting.
+ "List of compiler directive keywords recognized for highlighting.
NOTE: Activate the new setting in a VHDL buffer by re-fontifying it (menu
entry \"Fontify Buffer\")."
:group 'vhdl)
(defcustom vhdl-speedbar-auto-open nil
- "*Non-nil means automatically open speedbar at startup.
+ "Non-nil means automatically open speedbar at startup.
Alternatively, the speedbar can be opened from the VHDL menu."
:type 'boolean
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-display-mode 'files
- "*Specifies the default displaying mode when opening speedbar.
+ "Specifies the default displaying mode when opening speedbar.
Alternatively, the displaying mode can be selected from the speedbar menu or
by typing `f' (files), `h' (directory hierarchy) or `H' (project hierarchy)."
:type '(choice (const :tag "Files" files)
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-scan-limit '(10000000 (1000000 50))
- "*Limits scanning of large files and netlists.
+ "Limits scanning of large files and netlists.
Design units: maximum file size to scan for design units
Hierarchy (instances of subcomponents):
File size: maximum file size to scan for instances (in bytes)
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-jump-to-unit t
- "*Non-nil means jump to the design unit code when opened in a buffer.
+ "Non-nil means jump to the design unit code when opened in a buffer.
The buffer cursor position is left unchanged otherwise."
:type 'boolean
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-update-on-saving t
- "*Automatically update design hierarchy when buffer is saved."
+ "Automatically update design hierarchy when buffer is saved."
:type 'boolean
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-save-cache '(hierarchy display)
- "*Automatically save modified hierarchy caches when exiting Emacs.
+ "Automatically save modified hierarchy caches when exiting Emacs.
Hierarchy: design hierarchy information
Display: displaying information (which design units to expand)"
:type '(set (const :tag "Hierarchy" hierarchy)
:group 'vhdl-speedbar)
(defcustom vhdl-speedbar-cache-file-name ".emacs-vhdl-cache-\\1-\\2"
- "*Name of file for saving hierarchy cache.
+ "Name of file for saving hierarchy cache.
\"\\1\" is replaced by the project name if a project is specified,
\"directory\" otherwise. \"\\2\" is replaced by the user name (allows for
different users to have cache files in the same directory). Can also have
:group 'vhdl)
(defcustom vhdl-index-menu nil
- "*Non-nil means add an index menu for a source file when loading.
+ "Non-nil means add an index menu for a source file when loading.
Alternatively, the speedbar can be used. Note that the index menu scans a file
when it is opened, while speedbar only scans the file upon request."
:type 'boolean
:group 'vhdl-menu)
(defcustom vhdl-source-file-menu nil
- "*Non-nil means add a menu of all source files in current directory.
+ "Non-nil means add a menu of all source files in current directory.
Alternatively, the speedbar can be used."
:type 'boolean
:group 'vhdl-menu)
(defcustom vhdl-hideshow-menu nil
- "*Non-nil means add hideshow menu and functionality at startup.
+ "Non-nil means add hideshow menu and functionality at startup.
Hideshow can also be enabled from the VHDL Mode menu.
Hideshow allows hiding code of various VHDL constructs.
:group 'vhdl-menu)
(defcustom vhdl-hide-all-init nil
- "*Non-nil means hide all design units initially after a file is loaded."
+ "Non-nil means hide all design units initially after a file is loaded."
:type 'boolean
:group 'vhdl-menu)
:group 'vhdl)
(defcustom vhdl-print-two-column t
- "*Non-nil means print code in two columns and landscape format.
+ "Non-nil means print code in two columns and landscape format.
Adjusts settings in a way that PostScript printing (\"File\" menu, `ps-print')
prints VHDL files in a nice two-column landscape style.
:group 'vhdl-print)
(defcustom vhdl-print-customize-faces t
- "*Non-nil means use an optimized set of faces for PostScript printing.
+ "Non-nil means use an optimized set of faces for PostScript printing.
NOTE: Activate the new setting by restarting Emacs.
Overrides `ps-print' settings locally."
:group 'vhdl)
(defcustom vhdl-intelligent-tab t
- "*Non-nil means `TAB' does indentation, word completion and tab insertion.
+ "Non-nil means `TAB' does indentation, word completion and tab insertion.
That is, if preceding character is part of a word then complete word,
else if not at beginning of line then insert tab,
else if last command was a `TAB' or `RET' then dedent one step,
:group 'vhdl-misc)
(defcustom vhdl-indent-syntax-based t
- "*Non-nil means indent lines of code based on their syntactic context.
+ "Non-nil means indent lines of code based on their syntactic context.
Otherwise, a line is indented like the previous nonblank line. This can be
useful in large files where syntax-based indentation gets very slow."
:type 'boolean
:group 'vhdl-misc)
(defcustom vhdl-word-completion-case-sensitive nil
- "*Non-nil means word completion using `TAB' is case sensitive.
+ "Non-nil means word completion using `TAB' is case sensitive.
That is, `TAB' completes words that start with the same letters and case.
Otherwise, case is ignored."
:type 'boolean
:group 'vhdl-misc)
(defcustom vhdl-word-completion-in-minibuffer t
- "*Non-nil enables word completion in minibuffer (for template prompts).
+ "Non-nil enables word completion in minibuffer (for template prompts).
NOTE: Activate the new setting by restarting Emacs."
:type 'boolean
:group 'vhdl-misc)
(defcustom vhdl-underscore-is-part-of-word nil
- "*Non-nil means consider the underscore character `_' as part of word.
+ "Non-nil means consider the underscore character `_' as part of word.
An identifier containing underscores is then treated as a single word in
select and move operations. All parts of an identifier separated by underscore
are treated as single words otherwise.
;; Internal variables
(defvar vhdl-menu-max-size 20
- "*Specifies the maximum size of a menu before splitting it into submenus.")
+ "Specifies the maximum size of a menu before splitting it into submenus.")
(defvar vhdl-progress-interval 1
- "*Interval used to update progress status during long operations.
+ "Interval used to update progress status during long operations.
If a number, percentage complete gets updated after each interval of
that many seconds. To inhibit all messages, set this option to nil.")
(defvar vhdl-inhibit-startup-warnings-p nil
- "*If non-nil, inhibits start up compatibility warnings.")
+ "If non-nil, inhibits start up compatibility warnings.")
(defvar vhdl-strict-syntax-p nil
- "*If non-nil, all syntactic symbols must be found in `vhdl-offsets-alist'.
+ "If non-nil, all syntactic symbols must be found in `vhdl-offsets-alist'.
If the syntactic symbol for a particular line does not match a symbol
in the offsets alist, an error is generated, otherwise no error is
reported and the syntactic symbol is ignored.")
(defvar vhdl-echo-syntactic-information-p nil
- "*If non-nil, syntactic info is echoed when the line is indented.")
+ "If non-nil, syntactic info is echoed when the line is indented.")
(defconst vhdl-offsets-alist-default
'((string . -1000)
more information.")
(defvar vhdl-offsets-alist (copy-alist vhdl-offsets-alist-default)
- "*Association list of syntactic element symbols and indentation offsets.
+ "Association list of syntactic element symbols and indentation offsets.
As described below, each cons cell in this list has the form:
(SYNTACTIC-SYMBOL . OFFSET)
package-body -- inside a package body")
(defvar vhdl-comment-only-line-offset 0
- "*Extra offset for line which contains only the start of a comment.
+ "Extra offset for line which contains only the start of a comment.
Can contain an integer or a cons cell of the form:
(NON-ANCHORED-OFFSET . ANCHORED-OFFSET)
Just an integer as value is equivalent to (<val> . 0)")
(defvar vhdl-special-indent-hook nil
- "*Hook for user defined special indentation adjustments.
+ "Hook for user defined special indentation adjustments.
This hook gets called after a line is indented by the mode.")
(defvar vhdl-style-alist
(setq vhdl-style-alist (cons default vhdl-style-alist))))
(defvar vhdl-mode-hook nil
- "*Hook called by `vhdl-mode'.")
+ "Hook called by `vhdl-mode'.")
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;; which-func.el --- print current function in mode line
-;; Copyright (C) 1994, 1997-1998, 2001-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1994, 1997-1998, 2001-2012 Free Software Foundation, Inc.
;; Author: Alex Rezinsky <alexr@msil.sps.mot.com>
;; (doesn't seem to be responsive any more)
:group 'tools
:version "20.3")
-(defcustom which-func-modes
- '(emacs-lisp-mode c-mode c++-mode perl-mode cperl-mode python-mode
- makefile-mode sh-mode fortran-mode f90-mode ada-mode
- diff-mode)
+(defcustom which-func-modes t
+ ;; '(emacs-lisp-mode c-mode c++-mode objc-mode perl-mode cperl-mode python-mode
+ ;; makefile-mode sh-mode fortran-mode f90-mode ada-mode
+ ;; diff-mode)
"List of major modes for which Which Function mode should be used.
For other modes it is disabled. If this is equal to t,
then Which Function mode is enabled in any major mode that supports it."
:group 'which-func
+ :version "24.2" ; explicit list -> t
:type '(choice (const :tag "All modes" t)
(repeat (symbol :tag "Major mode"))))
"Name of xscheme buffer that we're currently interacting with.")
(defvar xscheme-expressions-ring-max 30
- "*Maximum length of Scheme expressions ring.")
+ "Maximum length of Scheme expressions ring.")
(defvar xscheme-expressions-ring nil
"List of expressions recently transmitted to the Scheme process.")
:group 'lisp)
(defcustom scheme-band-name nil
- "*Band loaded by the `run-scheme' command."
+ "Band loaded by the `run-scheme' command."
:type '(choice (const nil) string)
:group 'xscheme)
(defcustom scheme-program-arguments nil
- "*Arguments passed to the Scheme program by the `run-scheme' command."
+ "Arguments passed to the Scheme program by the `run-scheme' command."
:type '(choice (const nil) string)
:group 'xscheme)
(let ((km (copy-keymap recentf--shortcuts-keymap)))
(set-keymap-parent km widget-keymap)
(define-key km "q" 'recentf-cancel-dialog)
+ (define-key km "n" 'next-line)
+ (define-key km "p" 'previous-line)
(define-key km [follow-link] "\C-m")
km)
"Keymap used in recentf dialogs.")
"Keymap that defines the responses to questions in `query-replace'.
The \"bindings\" in this map are not commands; they are answers.
The valid answers include `act', `skip', `act-and-show',
-`exit', `act-and-exit', `edit', `delete-and-edit', `recenter',
-`automatic', `backup', `exit-prefix', and `help'.")
+`exit', `act-and-exit', `edit', `edit-replacement', `delete-and-edit',
+`recenter', `automatic', `backup', `exit-prefix', `quit', and `help'.")
(defvar multi-query-replace-map
(let ((map (make-sparse-keymap)))
nil " *SL*" nil
:global t
:group 'windows
- :group 'scrolling
(if scroll-all-mode
(add-hook 'post-command-hook 'scroll-all-check-to-scroll)
(remove-hook 'post-command-hook 'scroll-all-check-to-scroll)))
;;;###autoload
(put 'server-auth-dir 'risky-local-variable t)
+(defcustom server-auth-key nil
+ "Server authentication key.
+
+Normally, the authentication key is randomly generated when the
+server starts, which guarantees some level of security. It is
+recommended to leave it that way. Using a long-lived shared key
+will decrease security (especially since the key is transmitted as
+plain text).
+
+In some situations however, it can be difficult to share randomly
+generated passwords with remote hosts (eg. no shared directory),
+so you can set the key with this variable and then copy the
+server file to the remote host (with possible changes to IP
+address and/or port if that applies).
+
+The key must consist of 64 ASCII printable characters except for
+space (this means characters from ! to ~; or from code 33 to 126).
+
+You can use \\[server-generate-key] to get a random authentication
+key."
+ :group 'server
+ :type '(choice
+ (const :tag "Random" nil)
+ (string :tag "Password"))
+ :version "24.2")
+
(defcustom server-raise-frame t
"If non-nil, raise frame when switching to a buffer."
:group 'server
(server-log (format "Status changed to %s: %s" (process-status proc) msg) proc)
(server-delete-client proc))
+(defun server--on-display-p (frame display)
+ (and (equal (frame-parameter frame 'display) display)
+ ;; Note: TTY frames still get a `display' parameter set to the value of
+ ;; $DISPLAY. This is useful when running from that tty frame
+ ;; sub-processes that want to connect to the X server, but that means we
+ ;; have to be careful here not to be tricked into thinking those frames
+ ;; are on `display'.
+ (not (eq (framep frame) t))))
+
(defun server-select-display (display)
;; If the current frame is on `display' we're all set.
;; Similarly if we are unable to open frames on other displays, there's
;; nothing more we can do.
(unless (or (not (fboundp 'make-frame-on-display))
- (equal (frame-parameter (selected-frame) 'display) display))
+ (server--on-display-p (selected-frame) display))
;; Otherwise, look for an existing frame there and select it.
(dolist (frame (frame-list))
- (when (equal (frame-parameter frame 'display) display)
+ (when (server--on-display-p frame display)
(select-frame frame)))
;; If there's no frame on that display yet, create and select one.
- (unless (equal (frame-parameter (selected-frame) 'display) display)
+ (unless (server--on-display-p (selected-frame) display)
(let* ((buffer (generate-new-buffer " *server-dummy*"))
(frame (make-frame-on-display
display
(unless safe
(error "The directory `%s' is unsafe" dir)))))
+(defun server-generate-key ()
+ "Generate and return a random authentication key.
+The key is a 64-byte string of random chars in the range `!'..`~'.
+If called interactively, also inserts it into current buffer."
+ (interactive)
+ (let ((auth-key
+ (loop repeat 64
+ collect (+ 33 (random 94)) into auth
+ finally return (concat auth))))
+ (if (called-interactively-p 'interactive)
+ (insert auth-key))
+ auth-key))
+
+(defun server-get-auth-key ()
+ "Return server's authentication key.
+
+If `server-auth-key' is nil, just call `server-generate-key'.
+Otherwise, if `server-auth-key' is a valid key, return it.
+If the key is not valid, signal an error."
+ (if server-auth-key
+ (if (string-match-p "^[!-~]\\{64\\}$" server-auth-key)
+ server-auth-key
+ (error "The key '%s' is invalid" server-auth-key))
+ (server-generate-key)))
+
;;;###autoload
(defun server-start (&optional leave-dead inhibit-prompt)
"Allow this Emacs process to be a server for client processes.
-This starts a server communications subprocess through which
-client \"editors\" can send your editing commands to this Emacs
-job. To use the server, set up the program `emacsclient' in the
-Emacs distribution as your standard \"editor\".
+This starts a server communications subprocess through which client
+\"editors\" can send your editing commands to this Emacs job.
+To use the server, set up the program `emacsclient' in the Emacs
+distribution as your standard \"editor\".
Optional argument LEAVE-DEAD (interactively, a prefix arg) means just
kill any existing server communications subprocess.
(unless server-process (error "Could not start server process"))
(process-put server-process :server-file server-file)
(when server-use-tcp
- (let ((auth-key
- (loop
- ;; The auth key is a 64-byte string of random chars in the
- ;; range `!'..`~'.
- repeat 64
- collect (+ 33 (random 94)) into auth
- finally return (concat auth))))
+ (let ((auth-key (server-get-auth-key)))
(process-put server-process :auth-key auth-key)
(with-temp-file server-file
(set-buffer-multibyte nil)
;;; simple.el --- basic editing commands for Emacs
-;; Copyright (C) 1985-1987, 1993-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1985-1987, 1993-2012 Free Software Foundation, Inc.
;; Maintainer: FSF
;; Keywords: internal
"Switch used to have the shell execute its command line argument.")
(defvar shell-command-default-error-buffer nil
- "*Buffer name for `shell-command' and `shell-command-on-region' error output.
+ "Buffer name for `shell-command' and `shell-command-on-region' error output.
This buffer is used when `shell-command' or `shell-command-on-region'
is run interactively. A value of nil means that output to stderr and
stdout will be intermixed in the output stream.")
To specify a coding system for converting non-ASCII characters
in the input and output to the shell command, use \\[universal-coding-system-argument]
before this command. By default, the input (from the current buffer)
-is encoded in the same coding system that will be used to save the file,
-`buffer-file-coding-system'. If the output is going to replace the region,
-then it is decoded from that same coding system.
+is encoded using coding-system specified by `process-coding-system-alist',
+falling back to `default-process-coding-system' if no match for COMMAND
+is found in `process-coding-system-alist'.
The noninteractive arguments are START, END, COMMAND,
OUTPUT-BUFFER, REPLACE, ERROR-BUFFER, and DISPLAY-ERROR-BUFFER.
(defvar process-file-side-effects t
"Whether a call of `process-file' changes remote files.
-Per default, this variable is always set to `t', meaning that a
+By default, this variable is always set to `t', meaning that a
call of `process-file' could potentially change any file on a
remote host. When set to `nil', a file handler could optimize
-its behavior with respect to remote file attributes caching.
+its behavior with respect to remote file attribute caching.
-This variable should never be changed by `setq'. Instead of, it
-shall be set only by let-binding.")
+You should only ever change this variable with a let-binding;
+never with `setq'.")
(defun start-file-process (name buffer program &rest program-args)
"Start a program in a subprocess. Return the process object for it.
"Kill up to and including ARGth occurrence of CHAR.
Case is ignored if `case-fold-search' is non-nil in the current buffer.
Goes backward if ARG is negative; error if CHAR not found."
- (interactive "p\ncZap to char: ")
+ (interactive (list (prefix-numeric-value current-prefix-arg)
+ (read-char "Zap to char: " t)))
;; Avoid "obsolete" warnings for translation-table-for-input.
(with-no-warnings
(if (char-table-p translation-table-for-input)
(setq char (or (aref translation-table-for-input char) char))))
(kill-region (point) (progn
(search-forward (char-to-string char) nil nil arg)
-; (goto-char (if (> arg 0) (1- (point)) (1+ (point))))
(point))))
;; kill-line and its subroutines.
t)))
(defvar comment-line-break-function 'comment-indent-new-line
- "*Mode-specific function which line breaks and continues a comment.
+ "Mode-specific function which line breaks and continues a comment.
This function is called during auto-filling when a comment syntax
is defined.
The function should take a single optional argument, which is a flag
With a prefix argument, set VARIABLE to VALUE buffer-locally."
(interactive
(let* ((default-var (variable-at-point))
- (var (if (user-variable-p default-var)
+ (var (if (custom-variable-p default-var)
(read-variable (format "Set variable (default %s): " default-var)
default-var)
(read-variable "Set variable: ")))
(defvar skeleton-transformation-function 'identity
- "*If non-nil, function applied to literal strings before they are inserted.
+ "If non-nil, function applied to literal strings before they are inserted.
It should take strings and characters and return them transformed, or nil
which means no transformation.
Typical examples might be `upcase' or `capitalize'.")
(defvar skeleton-subprompt
(substitute-command-keys
"RET, \\<minibuffer-local-map>\\[abort-recursive-edit] or \\[help-command]")
- "*Replacement for %s in prompts of recursive subskeletons.")
+ "Replacement for %s in prompts of recursive subskeletons.")
(defvar skeleton-debug nil
- "*If non-nil `define-skeleton' will override previous definition.")
+ "If non-nil `define-skeleton' will override previous definition.")
(defvar skeleton-positions nil
"List of positions marked with @, after skeleton insertion.
;; obarray
;; (lambda (symbol)
;; (or (eq symbol 'eval)
-;; (user-variable-p symbol)))
+;; (custom-variable-p symbol)))
;; t)
;; comment-start str ": "
;; (read-from-minibuffer "Expression: " nil read-expression-map nil
;; Variables and command for automatically inserting pairs like () or "".
(defvar skeleton-pair nil
- "*If this is nil pairing is turned off, no matter what else is set.
+ "If this is nil pairing is turned off, no matter what else is set.
Otherwise modes with `skeleton-pair-insert-maybe' on some keys
will attempt to insert pairs of matching characters.")
(defvar skeleton-pair-on-word nil
- "*If this is nil, paired insertion is inhibited before or inside a word.")
+ "If this is nil, paired insertion is inhibited before or inside a word.")
(defvar skeleton-pair-filter-function (lambda () nil)
;;; speedbar --- quick access to files and tags in a frame
-;; Copyright (C) 1996-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1996-2012 Free Software Foundation, Inc.
;; Author: Eric M. Ludlam <zappo@gnu.org>
;; Keywords: file, tags, tools
(set (make-local-variable 'dframe-delete-frame-function)
'speedbar-handle-delete-frame)
;; hscroll
- (set (make-local-variable 'automatic-hscrolling) nil) ; Emacs 21
+ (set (make-local-variable 'auto-hscroll-mode) nil)
;; reset the selection variable
(setq speedbar-last-selected-file nil))
(defvar startup-screen-inhibit-startup-screen nil)
+;; FIXME? Why does this get such weirdly extreme treatment, when the
+;; more important inhibit-startup-screen does not.
(defcustom inhibit-startup-echo-area-message nil
"Non-nil inhibits the initial startup echo area message.
Setting this variable takes effect
(error "Customizing `site-run-file' does not work")))
(defcustom mail-host-address nil
- "Name of this machine, for purposes of naming users."
+ "Name of this machine, for purposes of naming users.
+If non-nil, Emacs uses this instead of `system-name' when constructing
+email addresses."
:type '(choice (const nil) string)
:group 'mail)
(setcdr tail (append (mapcar 'expand-file-name dirs) (cdr tail))))))
(defun normal-top-level ()
+ "Emacs calls this function when it first starts up.
+It sets `command-line-processed', processes the command-line,
+reads the initialization files, etc.
+It is the default value of the variable `top-level'."
(if command-line-processed
(message "Back to top level.")
(setq command-line-processed t)
;; of that dir into load-path,
;; Look for a leim-list.el file too. Loading it will register
;; available input methods.
- (let ((tail load-path) dir)
+ (let ((tail load-path)
+ (lispdir (expand-file-name "../lisp" data-directory))
+ ;; For out-of-tree builds, leim-list is generated in the build dir.
+;;; (leimdir (expand-file-name "../leim" doc-directory))
+ dir)
(while tail
(setq dir (car tail))
(let ((default-directory dir))
(load (expand-file-name "subdirs.el") t t t))
- (let ((default-directory dir))
- (load (expand-file-name "leim-list.el") t t t))
+ ;; Do not scan standard directories that won't contain a leim-list.el.
+ ;; http://lists.gnu.org/archive/html/emacs-devel/2009-10/msg00502.html
+ (or (string-match (concat "\\`" lispdir) dir)
+ (let ((default-directory dir))
+ (load (expand-file-name "leim-list.el") t t t)))
;; We don't use a dolist loop and we put this "setq-cdr" command at
;; the end, because the subdirs.el files may add elements to the end
;; of load-path and we want to take it into account.
(defvar server-process)
(defun command-line ()
+ "A subroutine of `normal-top-level'.
+Amongst another things, it parses the command-line arguments."
(setq before-init-time (current-time)
after-init-time nil
command-line-default-directory default-directory)
(or mail-host-address
(system-name))))))
- ;; Originally face attributes were specified via
- ;; `font-lock-face-attributes'. Users then changed the default
- ;; face attributes by setting that variable. However, we try and
- ;; be back-compatible and respect its value if set except for
- ;; faces where M-x customize has been used to save changes for the
- ;; face.
- (when (boundp 'font-lock-face-attributes)
- (let ((face-attributes font-lock-face-attributes))
- (while face-attributes
- (let* ((face-attribute (pop face-attributes))
- (face (car face-attribute)))
- ;; Rustle up a `defface' SPEC from a
- ;; `font-lock-face-attributes' entry.
- (unless (get face 'saved-face)
- (let ((foreground (nth 1 face-attribute))
- (background (nth 2 face-attribute))
- (bold-p (nth 3 face-attribute))
- (italic-p (nth 4 face-attribute))
- (underline-p (nth 5 face-attribute))
- face-spec)
- (when foreground
- (setq face-spec (cons ':foreground (cons foreground face-spec))))
- (when background
- (setq face-spec (cons ':background (cons background face-spec))))
- (when bold-p
- (setq face-spec (append '(:weight bold) face-spec)))
- (when italic-p
- (setq face-spec (append '(:slant italic) face-spec)))
- (when underline-p
- (setq face-spec (append '(:underline t) face-spec)))
- (face-spec-set face (list (list t face-spec)) nil)))))))
-
;; If parameter have been changed in the init file which influence
;; face realization, clear the face cache so that new faces will
;; be realized.
(defalias 'display-splash-screen 'display-startup-screen)
(defun command-line-1 (args-left)
+ "A subroutine of `command-line'."
(display-startup-echo-area-message)
(when (and pure-space-overflow
(not noninteractive))
(if (or inhibit-startup-screen
initial-buffer-choice
noninteractive
+ (daemonp)
inhibit-x-resources)
;; Not displaying a startup screen. If 3 or more files
;; (with-no-warnings
;; (setq menubar-bindings-done t))
- (if (> file-count 0)
- (display-startup-screen t)
- (display-startup-screen nil)))))
+ (display-startup-screen (> file-count 0)))))
(defun command-line-normalize-file-name (file)
"Collapse multiple slashes to one, to handle non-Emacs file names."
(defsubst eventp (obj)
"True if the argument is an event object."
(or (and (integerp obj)
+ ;; FIXME: Why bother?
;; Filter out integers too large to be events.
;; M is the biggest modifier.
(zerop (logand obj (lognot (1- (lsh ?\M-\^@ 1)))))
;; Ref http://lists.gnu.org/archive/html/emacs-devel/2012-02/msg00085.html
(defvar delayed-warnings-hook '(collapse-delayed-warnings
display-delayed-warnings)
- "Normal hook run to process delayed warnings.
-Functions in this hook should access the `delayed-warnings-list'
-variable (which see) and remove from it the warnings they process.")
+ "Normal hook run to process and display delayed warnings.
+By default, this hook contains functions to consolidate the
+warnings listed in `delayed-warnings-list', display them, and set
+`delayed-warnings-list' back to nil.")
\f
;;;; Process stuff.
;;;; Input and display facilities.
(defvar read-quoted-char-radix 8
- "*Radix for \\[quoted-insert] and other uses of `read-quoted-char'.
+ "Radix for \\[quoted-insert] and other uses of `read-quoted-char'.
Legitimate radix values are 8, 10 and 16.")
(custom-declare-variable-early
So escape sequences and keyboard encoding are taken into account.
When there's an ambiguity because the key looks like the prefix of
some sort of escape sequence, the ambiguity is resolved via `read-key-delay'."
+ ;; This overriding-terminal-local-map binding also happens to
+ ;; disable quail's input methods, so although read-key-sequence
+ ;; always inherits the input method, in practice read-key does not
+ ;; inherit the input method (at least not if it's based on quail).
(let ((overriding-terminal-local-map read-key-empty-map)
(overriding-local-map nil)
(echo-keystrokes 0)
This function echoes `.' for each character that the user types.
-The user ends with RET, LFD, or ESC. DEL or C-h rubs out.
-C-y yanks the current kill. C-u kills line.
-C-g quits; if `inhibit-quit' was non-nil around this function,
-then it returns nil if the user types C-g, but `quit-flag' remains set.
-
Once the caller uses the password, it can erase the password
by doing (clear-string STRING)."
- (with-local-quit
- (if confirm
- (let (success)
- (while (not success)
- (let ((first (read-passwd prompt nil default))
- (second (read-passwd "Confirm password: " nil default)))
- (if (equal first second)
- (progn
- (and (arrayp second) (clear-string second))
- (setq success first))
- (and (arrayp first) (clear-string first))
- (and (arrayp second) (clear-string second))
- (message "Password not repeated accurately; please start over")
- (sit-for 1))))
- success)
- (let ((pass nil)
- ;; Copy it so that add-text-properties won't modify
- ;; the object that was passed in by the caller.
- (prompt (copy-sequence prompt))
- (c 0)
- (echo-keystrokes 0)
- (cursor-in-echo-area t)
- (message-log-max nil)
- (stop-keys (list 'return ?\r ?\n ?\e))
- (rubout-keys (list 'backspace ?\b ?\177)))
- (add-text-properties 0 (length prompt)
- minibuffer-prompt-properties prompt)
- (while (progn (message "%s%s"
- prompt
- (make-string (length pass) ?.))
- (setq c (read-key))
- (not (memq c stop-keys)))
- (clear-this-command-keys)
- (cond ((memq c rubout-keys) ; rubout
- (when (> (length pass) 0)
- (let ((new-pass (substring pass 0 -1)))
- (and (arrayp pass) (clear-string pass))
- (setq pass new-pass))))
- ((eq c ?\C-g) (keyboard-quit))
- ((not (numberp c)))
- ((= c ?\C-u) ; kill line
- (and (arrayp pass) (clear-string pass))
- (setq pass ""))
- ((= c ?\C-y) ; yank
- (let* ((str (condition-case nil
- (current-kill 0)
- (error nil)))
- new-pass)
- (when str
- (setq new-pass
- (concat pass
- (substring-no-properties str)))
- (and (arrayp pass) (clear-string pass))
- (setq c ?\0)
- (setq pass new-pass))))
- ((characterp c) ; insert char
- (let* ((new-char (char-to-string c))
- (new-pass (concat pass new-char)))
- (and (arrayp pass) (clear-string pass))
- (clear-string new-char)
- (setq c ?\0)
- (setq pass new-pass)))))
- (message nil)
- (or pass default "")))))
+ (if confirm
+ (let (success)
+ (while (not success)
+ (let ((first (read-passwd prompt nil default))
+ (second (read-passwd "Confirm password: " nil default)))
+ (if (equal first second)
+ (progn
+ (and (arrayp second) (clear-string second))
+ (setq success first))
+ (and (arrayp first) (clear-string first))
+ (and (arrayp second) (clear-string second))
+ (message "Password not repeated accurately; please start over")
+ (sit-for 1))))
+ success)
+ (let (minibuf)
+ (minibuffer-with-setup-hook
+ (lambda ()
+ (setq minibuf (current-buffer))
+ ;; Turn off electricity.
+ (set (make-local-variable 'post-self-insert-hook) nil)
+ (add-hook 'after-change-functions
+ (lambda (beg end len)
+ (clear-this-command-keys)
+ (setq beg (min end (max (minibuffer-prompt-end)
+ beg)))
+ (dotimes (i (- end beg))
+ (put-text-property (+ i beg) (+ 1 i beg)
+ 'display (string ?.))))
+ nil t))
+ (unwind-protect
+ (read-string prompt nil
+ (let ((sym (make-symbol "forget-history")))
+ (set sym nil)
+ sym)
+ default)
+ (when (buffer-live-p minibuf)
+ (with-current-buffer minibuf (erase-buffer))))))))
;; This should be used by `call-interactively' for `n' specs.
(defun read-number (prompt &optional default)
To replace only the first match (if any), make REGEXP match up to \\'
and replace a sub-expression, e.g.
(replace-regexp-in-string \"\\\\(foo\\\\).*\\\\'\" \"bar\" \" foo foo\" nil nil 1)
- => \" bar foo\"
-"
+ => \" bar foo\""
;; To avoid excessive consing from multiple matches in long strings,
;; don't just call `replace-match' continually. Walk down the
(define-key map "R" 'tar-rename-entry)
(define-key map "u" 'tar-unflag)
(define-key map "v" 'tar-view)
+ (define-key map "w" 'woman-tar-extract-file)
(define-key map "x" 'tar-expunge)
(define-key map "\177" 'tar-unflag-backwards)
(define-key map "E" 'tar-extract-other-window)
(define-key map [menu-bar immediate]
(cons "Immediate" (make-sparse-keymap "Immediate")))
+ (define-key map [menu-bar immediate woman]
+ '("Read Man Page (WoMan)" . woman-tar-extract-file))
(define-key map [menu-bar immediate view]
'("View This File" . tar-view))
(define-key map [menu-bar immediate display]
(fundamental-mode)
(signal (car err) (cdr err)))))
+(autoload 'woman-tar-extract-file "woman"
+ "In tar mode, run the WoMan man-page browser on this file." t)
(define-minor-mode tar-subfile-mode
"Minor mode for editing an element of a tar-file.
'(gdk-pixbuf "libgdk_pixbuf-2.0-0.dll")
'(glib "libglib-2.0-0.dll")
'(gobject "libgobject-2.0-0.dll")
- '(gnutls "libgnutls-28.dll" "libgnutls-26.dll")))
+ '(gnutls "libgnutls-28.dll" "libgnutls-26.dll")
+ '(libxml2 "libxml2-2.dll" "libxml2.dll")))
;;; multi-tty support
(defvar w32-initialized nil
:group 'emacs)
(defcustom xterm-extra-capabilities 'check
- "Set to a list if the XTerm supports modifyOtherKeys or
-reporting the background color. Set to 'check to check for those
-features. Set to nil to skip the checks."
+ "Whether Xterm supports some additional, more modern, features.
+If nil, just assume that it does not.
+If `check', try to check if it does.
+If a list, assume that the listed features are supported, without checking.
+
+The relevant features are:
+ modifyOtherKeys -- if supported, more key bindings work (e.g, \"\\C-,\")
+ reportBackground -- if supported, Xterm reports its background color
+"
:version "24.1"
:group 'xterm
:type '(choice (const :tag "No" nil)
(defvar artist-pointer-shape (if (eq window-system 'x) x-pointer-crosshair nil)
- "*If in X Windows, use this pointer shape while drawing with the mouse.")
+ "If in X Windows, use this pointer shape while drawing with the mouse.")
(defcustom artist-text-renderer-function 'artist-figlet
;; This is a defvar, not a defcustom, since the custom
;; package shows lists of characters as a lists of integers,
;; which is confusing
- "*Characters (``color'') to use when spraying.
+ "Characters (``color'') to use when spraying.
They should be ordered from the ``lightest'' to the ``heaviest''
since spraying replaces a light character with the next heavier one.")
(defvar artist-spray-new-char ?.
- "*Initial character to use when spraying.
+ "Initial character to use when spraying.
This character is used if spraying upon a character that is not in
`artist-spray-chars'. The character defined by this variable should
be in `artist-spray-chars', or spraying will behave strangely.")
;;; ---------------------------------
;;;###autoload
-(defun artist-mode (&optional state)
+(define-minor-mode artist-mode
"Toggle Artist mode.
-With argument STATE, turn Artist mode on if STATE is positive.
+With argument ARG, turn Artist mode on if ARG is positive.
Artist lets you draw lines, squares, rectangles and poly-lines,
ellipses and circles with your mouse and/or keyboard.
Hooks
- When entering artist-mode, the hook `artist-mode-init-hook' is called.
- When quitting artist-mode, the hook `artist-mode-exit-hook' is called.
+ Turning the mode on or off runs `artist-mode-hook'.
Keymap summary
\\{artist-mode-map}"
- (interactive)
- (if (setq artist-mode
- (if (null state) (not artist-mode)
- (> (prefix-numeric-value state) 0)))
- (artist-mode-init)
- (artist-mode-exit)))
-
-;; insert our minor mode string
-(or (assq 'artist-mode minor-mode-alist)
- (setq minor-mode-alist
- (cons '(artist-mode artist-mode-name)
- minor-mode-alist)))
-
-;; insert our minor mode keymap
-(or (assq 'artist-mode minor-mode-map-alist)
- (setq minor-mode-map-alist
- (cons (cons 'artist-mode artist-mode-map)
- minor-mode-map-alist)))
-
+ :init-value nil :group 'artist :lighter artist-mode-name
+ :keymap artist-mode-map
+ (cond ((null artist-mode)
+ ;; Turn mode off
+ (artist-mode-exit))
+ (t
+ ;; Turn mode on
+ (artist-mode-init))))
;; Init and exit
(defun artist-mode-init ()
- "Init Artist mode. This will call the hook `artist-mode-init-hook'."
+ "Init Artist mode. This will call the hook `artist-mode-hook'."
;; Set up a conversion table for mapping tabs and new-lines to spaces.
;; the last case, 0, is for the last position in buffer/region, where
;; the `following-char' function returns 0.
(progn
(picture-mode)
(message "")))
- (run-hooks 'artist-mode-init-hook)
(artist-mode-line-show-curr-operation artist-key-is-drawing))
(defun artist-mode-exit ()
- "Exit Artist mode. This will call the hook `artist-mode-exit-hook'."
+ "Exit Artist mode. This will call the hook `artist-mode-hook'."
(if (and artist-picture-compatibility (eq major-mode 'picture-mode))
(picture-mode-exit))
- (kill-local-variable 'next-line-add-newlines)
- (run-hooks 'artist-mode-exit-hook))
+ (kill-local-variable 'next-line-add-newlines))
(defun artist-mode-off ()
"Turn Artist mode off."
(defcustom bib-auto-capitalize t
- "*True to automatically capitalize appropriate fields in Bib mode."
+ "True to automatically capitalize appropriate fields in Bib mode."
:type 'boolean
:group 'bib)
:type '(repeat file))
(defvar bibtex-string-file-path (getenv "BIBINPUTS")
- "*Colon separated list of paths to search for `bibtex-string-files'.")
+ "Colon separated list of paths to search for `bibtex-string-files'.")
(defcustom bibtex-files nil
"List of BibTeX files that are searched for entry keys.
directory file)))
(defvar bibtex-file-path (getenv "BIBINPUTS")
- "*Colon separated list of paths to search for `bibtex-files'.")
+ "Colon separated list of paths to search for `bibtex-files'.")
(defcustom bibtex-search-entry-globally nil
"If non-nil, interactive calls of `bibtex-search-entry' search globally.
,@(mapcar (lambda (matcher)
`((lambda (bound) (bibtex-font-lock-cite ',matcher bound))))
bibtex-cite-matcher-alist))
- "*Default expressions to highlight in BibTeX mode.")
+ "Default expressions to highlight in BibTeX mode.")
(defvar bibtex-font-lock-url-regexp
;; Assume that field names begin at the beginning of a line.
(if current-prefix-arg 'full))))
(unless (memq justify '(t nil none full center left right))
(setq justify 'full))
- (let (max beg fill-pfx)
+ (let ((start-point (point-marker))
+ max beg fill-pfx)
(goto-char (max from to))
(when to-eop
(skip-chars-backward "\n")
(setq fill-pfx
(fill-region-as-paragraph (point) end justify nosqueeze))
(goto-char end))))
+ (goto-char start-point)
+ (set-marker start-point nil)
fill-pfx))
\f
;; dash character machinery
(defvar flyspell-consider-dash-as-word-delimiter-flag nil
- "*Non-nil means that the `-' char is considered as a word delimiter.")
+ "Non-nil means that the `-' char is considered as a word delimiter.")
(make-variable-buffer-local 'flyspell-consider-dash-as-word-delimiter-flag)
(defvar flyspell-dash-dictionary nil)
(make-variable-buffer-local 'flyspell-dash-dictionary)
(if ispell-encoding8-command
(setq args
(append args
- (list
- (concat ispell-encoding8-command
- (symbol-name
- encoding))))))
+ (if ispell-really-hunspell
+ (list ispell-encoding8-command
+ (upcase (symbol-name encoding)))
+ (list (concat ispell-encoding8-command
+ (symbol-name encoding)))))))
(let ((process-coding-system-alist (list (cons "\\.*" encoding))))
(setq c (apply 'ispell-call-process-region beg
;;; ******* THIS FILE IS WRITTEN FOR ISPELL VERSION 3.1+
(defcustom ispell-highlight-p 'block
- "*Highlight spelling errors when non-nil.
+ "Highlight spelling errors when non-nil.
When set to `block', assumes a block cursor with TTY displays."
:type '(choice (const block) (const :tag "off" nil) (const :tag "on" t))
:group 'ispell)
(defcustom ispell-lazy-highlight (boundp 'lazy-highlight-cleanup)
- "*Controls the lazy-highlighting of spelling errors.
+ "Controls the lazy-highlighting of spelling errors.
When non-nil, all text in the buffer matching the current spelling
error is highlighted lazily using isearch lazy highlighting (see
`lazy-highlight-initial-delay' and `lazy-highlight-interval')."
:version "22.1")
(defcustom ispell-highlight-face (if ispell-lazy-highlight 'isearch 'highlight)
- "*The face used for Ispell highlighting. For Emacsen with overlays.
+ "The face used for Ispell highlighting. For Emacsen with overlays.
Possible values are `highlight', `modeline', `secondary-selection',
`region', and `underline'.
This variable can be set by the user to whatever face they desire.
:group 'ispell)
(defcustom ispell-check-comments t
- "*Spelling of comments checked when non-nil.
+ "Spelling of comments checked when non-nil.
When set to `exclusive', ONLY comments are checked. (For code comments).
Warning! Not checking comments, when a comment start is embedded in strings,
may produce undesired results."
(lambda (a) (memq a '(nil t exclusive))))
(defcustom ispell-query-replace-choices nil
- "*Corrections made throughout region when non-nil.
+ "Corrections made throughout region when non-nil.
Uses `query-replace' (\\[query-replace]) for corrections."
:type 'boolean
:group 'ispell)
(defcustom ispell-skip-tib nil
- "*Does not spell check `tib' bibliography references when non-nil.
+ "Does not spell check `tib' bibliography references when non-nil.
Skips any text between strings matching regular expressions
`ispell-tib-ref-beginning' and `ispell-tib-ref-end'.
"Regexp matching the end of a Tib reference.")
(defcustom ispell-keep-choices-win t
- "*If non-nil, keep the `*Choices*' window for the entire spelling session.
+ "If non-nil, keep the `*Choices*' window for the entire spelling session.
This minimizes redisplay thrashing."
:type 'boolean
:group 'ispell)
(defcustom ispell-choices-win-default-height 2
- "*The default size of the `*Choices*' window, including the mode line.
+ "The default size of the `*Choices*' window, including the mode line.
Must be greater than 1."
:type 'integer
:group 'ispell)
((file-readable-p "/usr/share/lib/dict/words")
"/usr/share/lib/dict/words")
((file-readable-p "/sys/dict") "/sys/dict"))
- "*Alternate plain word-list dictionary for spelling help."
+ "Alternate plain word-list dictionary for spelling help."
:type '(choice file (const :tag "None" nil))
:group 'ispell)
(defcustom ispell-complete-word-dict nil
- "*Plain word-list dictionary used for word completion if
+ "Plain word-list dictionary used for word completion if
different from `ispell-alternate-dictionary'."
:type '(choice file (const :tag "None" nil))
:group 'ispell)
(defcustom ispell-message-dictionary-alist nil
- "*List used by `ispell-message' to select a new dictionary.
+ "List used by `ispell-message' to select a new dictionary.
It consists of pairs (REGEXP . DICTIONARY). If REGEXP is found
in the message headers, `ispell-local-dictionary' will be set to
DICTIONARY if `ispell-local-dictionary' is not buffer-local.
(defcustom ispell-message-fcc-skip 50000
- "*Query before saving Fcc message copy if attachment larger than this value.
+ "Query before saving Fcc message copy if attachment larger than this value.
Always stores Fcc copy of message when nil."
:type '(choice integer (const :tag "off" nil))
:group 'ispell)
:group 'ispell)
(defcustom ispell-look-p (file-exists-p ispell-look-command)
- "*Non-nil means use `look' rather than `grep'.
+ "Non-nil means use `look' rather than `grep'.
Default is based on whether `look' seems to be available."
:type 'boolean
:group 'ispell)
(defcustom ispell-have-new-look nil
- "*Non-nil means use the `-r' option (regexp) when running `look'."
+ "Non-nil means use the `-r' option (regexp) when running `look'."
:type 'boolean
:group 'ispell)
:group 'ispell)
(defcustom ispell-following-word nil
- "*Non-nil means `ispell-word' checks the word around or after point.
+ "Non-nil means `ispell-word' checks the word around or after point.
Otherwise `ispell-word' checks the preceding word."
:type 'boolean
:group 'ispell)
(defcustom ispell-help-in-bufferp nil
- "*Non-nil means display interactive keymap help in a buffer.
+ "Non-nil means display interactive keymap help in a buffer.
The following values are supported:
nil Expand the minibuffer and display a short help message
there for a couple of seconds.
:group 'ispell)
(defcustom ispell-quietly nil
- "*Non-nil means suppress messages in `ispell-word'."
+ "Non-nil means suppress messages in `ispell-word'."
:type 'boolean
:group 'ispell)
(defcustom ispell-format-word-function (function upcase)
- "*Formatting function for displaying word being spell checked.
+ "Formatting function for displaying word being spell checked.
The function must take one string argument and return a string."
:type 'function
:group 'ispell)
;;;###autoload
(defcustom ispell-personal-dictionary nil
- "*File name of your personal spelling dictionary, or nil.
+ "File name of your personal spelling dictionary, or nil.
If nil, the default personal dictionary, (\"~/.ispell_DICTNAME\" for ispell or
\"~/.aspell.LANG.pws\" for aspell) is used, where DICTNAME is the name of your
default dictionary and LANG the two letter language code."
:group 'ispell)
(defcustom ispell-silently-savep nil
- "*When non-nil, save personal dictionary without asking for confirmation."
+ "When non-nil, save personal dictionary without asking for confirmation."
:type 'boolean
:group 'ispell)
:group 'ispell)
(defcustom ispell-extra-args nil
- "*If non-nil, a list of extra switches to pass to the Ispell program.
+ "If non-nil, a list of extra switches to pass to the Ispell program.
For example, (\"-W\" \"3\") to cause it to accept all 1-3 character
words as correct. See also `ispell-dictionary-alist', which may be used
for language-specific arguments."
(defcustom ispell-skip-html 'use-mode-name
- "*Indicates whether ispell should skip spell checking of SGML markup.
+ "Indicates whether ispell should skip spell checking of SGML markup.
If t, always skip SGML markup; if nil, never skip; if non-t and non-nil,
guess whether SGML markup should be skipped according to the name of the
buffer's major mode."
(defcustom ispell-local-dictionary-alist nil
- "*List of local or customized dictionary definitions.
+ "List of local or customized dictionary definitions.
These can override the values in `ispell-dictionary-alist'.
To make permanent changes to your dictionary definitions, you
(defvar ispell-dictionary-base-alist
- '((nil
+ '((nil ; default
;; The default dictionary. It may be English.aff, or any other
;; dictionary depending on locale and such things. We should probably
;; ask ispell what dictionary it's using, but until we do that, let's
- ;; just use an approximate regexp.
- "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)
+ ;; just use a minimal regexp. [:alpha:] will later be set if possible.
+ "[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
("american" ; Yankee English
"[A-Za-z]" "[^A-Za-z]" "[']" nil ("-B") nil iso-8859-1)
("brasileiro" ; Brazilian mode
("svenska" ; Swedish mode
"[A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
"[^A-Za-z\345\344\366\351\340\374\350\346\370\347\305\304\326\311\300\334\310\306\330\307]"
- "[']" nil ("-C") "~list" iso-8859-1))
+ "[']" nil ("-C") "~list" iso-8859-1)
+ ("hebrew" "[\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "[^\340\341\342\343\344\345\346\347\350\351\353\352\354\356\355\360\357\361\362\364\363\367\366\365\370\371\372]" "" nil ("-B") nil cp1255))
"Base value for `ispell-dictionary-alist'.")
(defvar ispell-dictionary-alist nil
Note that with \"ispell\" as the speller, the CASECHARS and
OTHERCHARS slots of the alist should contain the same character
set as casechars and otherchars in the LANGUAGE.aff file \(e.g.,
-english.aff\). apsell and hunspell don't have this limitation.")
+english.aff\). aspell and hunspell don't have this limitation.")
(defvar ispell-really-aspell nil) ; Non-nil if we can use aspell extensions.
(defvar ispell-really-hunspell nil) ; Non-nil if we can use hunspell extensions.
(make-obsolete-variable 'ispell-aspell-supports-utf8
'ispell-encoding8-command "23.1")
+(defvar ispell-emacs-alpha-regexp
+ (if (string-match "^[[:alpha:]]+$" "abcde")
+ "[[:alpha:]]"
+ nil)
+ "[[:alpha:]] if Emacs supports [:alpha:] regexp, nil
+otherwise (current XEmacs does not support it).")
;;; **********************************************************************
;;; The following are used by ispell, and should not be changed.
(setq ispell-really-aspell nil)))
(ispell-really-hunspell
(if (ispell-check-minver hunspell8-minver ispell-really-hunspell)
- (setq ispell-encoding8-command "-i ")
+ (setq ispell-encoding8-command "-i")
(setq ispell-really-hunspell nil))))))
result))
(error nil))
ispell-really-aspell
ispell-encoding8-command
- ;; XEmacs does not like [:alpha:] regexps.
- (string-match "^[[:alpha:]]+$" "abcde"))
+ ispell-emacs-alpha-regexp)
(unless ispell-aspell-dictionary-alist
(ispell-find-aspell-dictionaries)))
ispell-dictionary-base-alist))
(unless (assoc (car dict) all-dicts-alist)
(add-to-list 'all-dicts-alist dict)))
- (setq ispell-dictionary-alist all-dicts-alist))))
-
+ (setq ispell-dictionary-alist all-dicts-alist))
+
+ ;; If Emacs flavor supports [:alpha:] use it for global dicts. If
+ ;; spellchecker also supports UTF-8 via command-line option use it
+ ;; in communication. This does not affect definitions in ~/.emacs.
+ (if ispell-emacs-alpha-regexp
+ (let (tmp-dicts-alist)
+ (dolist (adict ispell-dictionary-alist)
+ (add-to-list 'tmp-dicts-alist
+ (list
+ (nth 0 adict) ; dict name
+ "[[:alpha:]]" ; casechars
+ "[^[:alpha:]]" ; not-casechars
+ (nth 3 adict) ; otherchars
+ (nth 4 adict) ; many-otherchars-p
+ (nth 5 adict) ; ispell-args
+ (nth 6 adict) ; extended-character-mode
+ (if ispell-encoding8-command
+ 'utf-8
+ (nth 7 adict)))))
+ (setq ispell-dictionary-alist tmp-dicts-alist)))))
(defun ispell-valid-dictionary-list ()
"Return a list of valid dictionaries.
(nth 5 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
(assoc ispell-current-dictionary ispell-dictionary-alist))))
(defun ispell-get-extended-character-mode ()
- (nth 6 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
- (assoc ispell-current-dictionary ispell-dictionary-alist))))
+ (if ispell-really-hunspell ;; hunspell treats ~word as ordinary words
+ nil ;; in pipe mode. Disable extended-char-mode
+ (nth 6 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
+ (assoc ispell-current-dictionary ispell-dictionary-alist)))))
(defun ispell-get-coding-system ()
(nth 7 (or (assoc ispell-current-dictionary ispell-local-dictionary-alist)
(assoc ispell-current-dictionary ispell-dictionary-alist))))
("list" ispell-tex-arg-end 2)
("program" . "\\\\end[ \t\n]*{[ \t\n]*program[ \t\n]*}")
("verbatim\\*?" . "\\\\end[ \t\n]*{[ \t\n]*verbatim\\*?[ \t\n]*}"))))
- "*Lists of regions to be skipped in TeX mode.
+ "Lists of regions to be skipped in TeX mode.
First list is used raw.
Second list has key placed inside \\begin{}.
("<[tT][tT]/" "/")
("<[^ \t\n>]" ">")
("&[^ \t\n;]" "[; \t\n]"))
- "*Lists of start and end keys to skip in HTML buffers.
+ "Lists of start and end keys to skip in HTML buffers.
Same format as `ispell-skip-region-alist'.
Note - substrings of other matches must come last
(e.g. \"<[tT][tT]/\" and \"<[^ \\t\\n>]\").")
Ispell is then restarted because the local words could conflict.")
(defvar ispell-parser 'use-mode-name
- "*Indicates whether ispell should parse the current buffer as TeX Code.
+ "Indicates whether ispell should parse the current buffer as TeX Code.
Special value `use-mode-name' tries to guess using the name of `major-mode'.
Default parser is `nroff'.
Currently the only other valid parser is `tex'.
;; right encoding for communication. ispell or older aspell/hunspell
;; does not support this.
(if ispell-encoding8-command
- (list
- (concat ispell-encoding8-command
- (symbol-name (ispell-get-coding-system)))))
+ (if ispell-really-hunspell
+ (list ispell-encoding8-command
+ (upcase (symbol-name (ispell-get-coding-system))))
+ (list
+ (concat ispell-encoding8-command
+ (symbol-name (ispell-get-coding-system))))))
ispell-extra-args)))
;; Initially we don't know any buffer's local words.
;; Matches commonly used "cut" boundaries
"^\\(- \\)?[-=_]+\\s ?\\(cut here\\|Environment Follows\\)")
"\\|")
- "*Text beyond which `ispell-message' will not spell-check.
+ "Text beyond which `ispell-message' will not spell-check.
If it is a string, limit is the first occurrence of that regular expression.
Otherwise, it must be a function which is called to get the limit.")
(put 'ispell-message-text-end 'risky-local-variable t)
;; Picture Movement Commands
-;; When a cursor is on a wide-column character (e.g. Chinese,
-;; Japanese, Korean), this variable tells the desired current column
-;; which may be different from (current-column).
-(defvar picture-desired-column 0)
-
-;; If the value of picture-desired-column is far from the current
-;; column, or if the arg ADJUST-TO-CURRENT is non-nil, set it to the
-;; current column. Return the current column.
+(defvar picture-desired-column 0
+ "Desired current column for Picture mode.
+When a cursor is on a wide-column character (e.g. Chinese,
+Japanese, Korean), this may may be different from `current-column'.")
+
+
(defun picture-update-desired-column (adjust-to-current)
+ "Maybe update `picture-desired-column'.
+If the value of `picture-desired-column' is more than one column
+from `current-column', or if the argument ADJUST-TO-CURRENT is
+non-nil, set it to the current column. Return `current-column'."
(let ((current-column (current-column)))
(if (or adjust-to-current
(< picture-desired-column (1- current-column))
(defalias 'picture-delete-char 'delete-char)
-(defvar picture-mode-map nil)
-
-(defun picture-substitute (oldfun newfun)
- (define-key picture-mode-map (vector 'remap oldfun) newfun))
-
-(if (not picture-mode-map)
- (progn
- (setq picture-mode-map (make-keymap))
- (picture-substitute 'self-insert-command 'picture-self-insert)
- (picture-substitute 'completion-separator-self-insert-command
- 'picture-self-insert)
- (picture-substitute 'completion-separator-self-insert-autofilling
- 'picture-self-insert)
- (picture-substitute 'forward-char 'picture-forward-column)
- (picture-substitute 'backward-char 'picture-backward-column)
- (picture-substitute 'delete-char 'picture-clear-column)
- ;; There are two possibilities for what is normally on DEL.
- (picture-substitute 'backward-delete-char-untabify 'picture-backward-clear-column)
- (picture-substitute 'delete-backward-char 'picture-backward-clear-column)
- (picture-substitute 'kill-line 'picture-clear-line)
- (picture-substitute 'open-line 'picture-open-line)
- (picture-substitute 'newline 'picture-newline)
- (picture-substitute 'newline-and-indent 'picture-duplicate-line)
- (picture-substitute 'next-line 'picture-move-down)
- (picture-substitute 'previous-line 'picture-move-up)
- (picture-substitute 'move-beginning-of-line 'picture-beginning-of-line)
- (picture-substitute 'move-end-of-line 'picture-end-of-line)
- (picture-substitute 'mouse-set-point 'picture-mouse-set-point)
-
- (define-key picture-mode-map "\C-c\C-d" 'picture-delete-char)
- (define-key picture-mode-map "\e\t" 'picture-toggle-tab-state)
- (define-key picture-mode-map "\t" 'picture-tab)
- (define-key picture-mode-map "\e\t" 'picture-tab-search)
- (define-key picture-mode-map "\C-c\t" 'picture-set-tab-stops)
- (define-key picture-mode-map "\C-c\C-k" 'picture-clear-rectangle)
- (define-key picture-mode-map "\C-c\C-w" 'picture-clear-rectangle-to-register)
- (define-key picture-mode-map "\C-c\C-y" 'picture-yank-rectangle)
- (define-key picture-mode-map "\C-c\C-x" 'picture-yank-rectangle-from-register)
- (define-key picture-mode-map "\C-c\C-r" 'picture-draw-rectangle)
- (define-key picture-mode-map "\C-c\C-c" 'picture-mode-exit)
- (define-key picture-mode-map "\C-c\C-f" 'picture-motion)
- (define-key picture-mode-map "\C-c\C-b" 'picture-motion-reverse)
- (define-key picture-mode-map "\C-c<" 'picture-movement-left)
- (define-key picture-mode-map "\C-c>" 'picture-movement-right)
- (define-key picture-mode-map "\C-c^" 'picture-movement-up)
- (define-key picture-mode-map "\C-c." 'picture-movement-down)
- (define-key picture-mode-map "\C-c`" 'picture-movement-nw)
- (define-key picture-mode-map "\C-c'" 'picture-movement-ne)
- (define-key picture-mode-map "\C-c/" 'picture-movement-sw)
- (define-key picture-mode-map "\C-c\\" 'picture-movement-se)
- (define-key picture-mode-map [(control ?c) left] 'picture-movement-left)
- (define-key picture-mode-map [(control ?c) right] 'picture-movement-right)
- (define-key picture-mode-map [(control ?c) up] 'picture-movement-up)
- (define-key picture-mode-map [(control ?c) down] 'picture-movement-down)
- (define-key picture-mode-map [(control ?c) home] 'picture-movement-nw)
- (define-key picture-mode-map [(control ?c) prior] 'picture-movement-ne)
- (define-key picture-mode-map [(control ?c) end] 'picture-movement-sw)
- (define-key picture-mode-map [(control ?c) next] 'picture-movement-se)))
+(defvar picture-mode-map
+ (let ((map (make-keymap)))
+ (define-key map [remap self-insert-command] 'picture-self-insert)
+ (define-key map [remap self-insert-command] 'picture-self-insert)
+ (define-key map [remap completion-separator-self-insert-command]
+ 'picture-self-insert)
+ (define-key map [remap completion-separator-self-insert-autofilling]
+ 'picture-self-insert)
+ (define-key map [remap forward-char] 'picture-forward-column)
+ (define-key map [remap backward-char] 'picture-backward-column)
+ (define-key map [remap delete-char] 'picture-clear-column)
+ ;; There are two possibilities for what is normally on DEL.
+ (define-key map [remap backward-delete-char-untabify]
+ 'picture-backward-clear-column)
+ (define-key map [remap delete-backward-char] 'picture-backward-clear-column)
+ (define-key map [remap kill-line] 'picture-clear-line)
+ (define-key map [remap open-line] 'picture-open-line)
+ (define-key map [remap newline] 'picture-newline)
+ (define-key map [remap newline-and-indent] 'picture-duplicate-line)
+ (define-key map [remap next-line] 'picture-move-down)
+ (define-key map [remap previous-line] 'picture-move-up)
+ (define-key map [remap move-beginning-of-line] 'picture-beginning-of-line)
+ (define-key map [remap move-end-of-line] 'picture-end-of-line)
+ (define-key map [remap mouse-set-point] 'picture-mouse-set-point)
+ (define-key map "\C-c\C-d" 'picture-delete-char)
+ (define-key map "\e\t" 'picture-toggle-tab-state)
+ (define-key map "\t" 'picture-tab)
+ (define-key map "\e\t" 'picture-tab-search)
+ (define-key map "\C-c\t" 'picture-set-tab-stops)
+ (define-key map "\C-c\C-k" 'picture-clear-rectangle)
+ (define-key map "\C-c\C-w" 'picture-clear-rectangle-to-register)
+ (define-key map "\C-c\C-y" 'picture-yank-rectangle)
+ (define-key map "\C-c\C-x" 'picture-yank-rectangle-from-register)
+ (define-key map "\C-c\C-r" 'picture-draw-rectangle)
+ (define-key map "\C-c\C-c" 'picture-mode-exit)
+ (define-key map "\C-c\C-f" 'picture-motion)
+ (define-key map "\C-c\C-b" 'picture-motion-reverse)
+ (define-key map "\C-c<" 'picture-movement-left)
+ (define-key map "\C-c>" 'picture-movement-right)
+ (define-key map "\C-c^" 'picture-movement-up)
+ (define-key map "\C-c." 'picture-movement-down)
+ (define-key map "\C-c`" 'picture-movement-nw)
+ (define-key map "\C-c'" 'picture-movement-ne)
+ (define-key map "\C-c/" 'picture-movement-sw)
+ (define-key map "\C-c\\" 'picture-movement-se)
+ (define-key map [(control ?c) left] 'picture-movement-left)
+ (define-key map [(control ?c) right] 'picture-movement-right)
+ (define-key map [(control ?c) up] 'picture-movement-up)
+ (define-key map [(control ?c) down] 'picture-movement-down)
+ (define-key map [(control ?c) home] 'picture-movement-nw)
+ (define-key map [(control ?c) prior] 'picture-movement-ne)
+ (define-key map [(control ?c) end] 'picture-movement-sw)
+ (define-key map [(control ?c) next] 'picture-movement-se)
+ map)
+ "Keymap used in `picture-mode'.")
(defcustom picture-mode-hook nil
"If non-nil, its value is called on entry to Picture mode.
:group 'wp)
(defcustom r2b-trace-on nil
- "*Non-nil means trace conversion."
+ "Non-nil means trace conversion."
:type 'boolean
:group 'refbib)
This is in addition to the `r2b-capitalize-title-stop-words'.")
(defcustom r2b-delimit-with-quote t
- "*If true, then use \" to delimit fields, otherwise use braces."
+ "If true, then use \" to delimit fields, otherwise use braces."
:type 'boolean
:group 'refbib)
(buffer-substring (match-beginning exp) (match-end exp)))
(defcustom r2b-out-buf-name "*Out*"
- "*Name of buffer for output from refer-to-bibtex."
+ "Name of buffer for output from refer-to-bibtex."
:type 'string
:group 'refbib)
(defcustom r2b-log-name "*Log*"
- "*Name of buffer for logs errors from refer-to-bibtex."
+ "Name of buffer for logs errors from refer-to-bibtex."
:type 'string
:group 'refbib)
(run-hooks 'reftex-display-copied-context-hook)))))
(defvar reftex-use-itimer-in-xemacs nil
- "*Non-nil means use the idle timers in XEmacs for crossref display.
+ "Non-nil means use the idle timers in XEmacs for crossref display.
Currently, idle timer restart is broken and we use the post-command-hook.")
(defun reftex-toggle-auto-view-crossref ()
(symbol :tag "function " my-level-func)))))
(defcustom reftex-toc-max-level 100
- "*The maximum level of toc entries which will be included in the TOC.
+ "The maximum level of toc entries which will be included in the TOC.
Section headings with a bigger level will be ignored. In RefTeX, chapters
are level 1, sections are level 2 etc.
This variable can be changed from within the *toc* buffer with the `t' key."
:type 'integer)
(defcustom reftex-part-resets-chapter nil
- "*Non-nil means, \\part is like any other sectioning command.
+ "Non-nil means, \\part is like any other sectioning command.
This means, part numbers will be included in the numbering of chapters, and
chapter counters will be reset for each part.
When nil (the default), parts are special, do not reset the chapter counter
(defcustom reftex-auto-recenter-toc 'frame
- "*Non-nil means, turn automatic recentering of *TOC* window on.
+ "Non-nil means, turn automatic recentering of *TOC* window on.
When active, the *TOC* window will always show the section you
are currently working in. Recentering happens whenever Emacs is idle for
more than `reftex-idle-time' seconds.
(const :tag "in dedicated frame only" frame)))
(defcustom reftex-toc-split-windows-horizontally nil
- "*Non-nil means, create TOC window by splitting window horizontally."
+ "Non-nil means, create TOC window by splitting window horizontally."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-split-windows-fraction .3
- "*Fraction of the width or height of the frame to be used for TOC window.
+ "Fraction of the width or height of the frame to be used for TOC window.
See also `reftex-toc-split-windows-horizontally'."
:group 'reftex-table-of-contents-browser
:type 'number)
"This variable is obsolete, use `reftex-toc-split-windows-fraction' instead.")
(defcustom reftex-toc-keep-other-windows t
- "*Non-nil means, split the selected window to display the *toc* buffer.
+ "Non-nil means, split the selected window to display the *toc* buffer.
This helps to keep the window configuration, but makes the *toc* small.
When nil, all other windows except the selected one will be deleted, so
that the *toc* window fills half the frame."
:type 'boolean)
(defcustom reftex-toc-include-file-boundaries nil
- "*Non-nil means, include file boundaries in *toc* buffer.
+ "Non-nil means, include file boundaries in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `F' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-include-labels nil
- "*Non-nil means, include labels in *toc* buffer.
+ "Non-nil means, include labels in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `l' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-include-index-entries nil
- "*Non-nil means, include index entries in *toc* buffer.
+ "Non-nil means, include index entries in *toc* buffer.
This flag can be toggled from within the *toc* buffer with the `i' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-confirm-promotion 2
- "*Non-nil means, promotion/demotion commands first prompt for confirmation.
+ "Non-nil means, promotion/demotion commands first prompt for confirmation.
When nil, the command is executed immediately. When this is an integer
N, ask for confirmation only if N or more section commands are going to be
changed."
(number :tag "When more than N sections" :value 2)))
(defcustom reftex-toc-include-context nil
- "*Non-nil means, include context with labels in the *toc* buffer.
+ "Non-nil means, include context with labels in the *toc* buffer.
Context will only be shown when labels are visible as well.
This flag can be toggled from within the *toc* buffer with the `c' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-toc-follow-mode nil
- "*Non-nil means, point in *toc* buffer will cause other window to follow.
+ "Non-nil means, point in *toc* buffer will cause other window to follow.
The other window will show the corresponding part of the document.
This flag can be toggled from within the *toc* buffer with the `f' key."
:group 'reftex-table-of-contents-browser
:type 'boolean)
(defcustom reftex-revisit-to-follow nil
- "*Non-nil means, follow-mode will revisit files if necessary.
+ "Non-nil means, follow-mode will revisit files if necessary.
When nil, follow-mode will be suspended for stuff in unvisited files."
:group 'reftex-table-of-contents-browser
:group 'reftex-referencing-labels
:type '(repeat (cons (character) (string))))
(defcustom reftex-vref-is-default nil
- "*Non-nil means, the varioref macro \\vref is used as default.
+ "Non-nil means, the varioref macro \\vref is used as default.
In the selection buffer, the `v' key toggles the reference macro between
`\\ref' and `\\vref'. The value of this variable determines the default
which is active when entering the selection process.
;;;###autoload(put 'reftex-vref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
(defcustom reftex-fref-is-default nil
- "*Non-nil means, the fancyref macro \\fref is used as default.
+ "Non-nil means, the fancyref macro \\fref is used as default.
In the selection buffer, the `V' key toggles the reference macro between
`\\ref', `\\fref' and `\\Fref'. The value of this variable determines
the default which is active when entering the selection process.
;;;###autoload(put 'reftex-fref-is-default 'safe-local-variable (lambda (x) (or (stringp x) (symbolp x))))
(defcustom reftex-level-indent 2
- "*Number of spaces to be used for indentation per section level."
+ "Number of spaces to be used for indentation per section level."
:group 'reftex-referencing-labels
:type 'integer)
;;;###autoload(put 'reftex-level-indent 'safe-local-variable 'integerp)
(defcustom reftex-guess-label-type t
- "*Non-nil means, `reftex-reference' will try to guess the label type.
+ "Non-nil means, `reftex-reference' will try to guess the label type.
To do that, RefTeX will look at the word before the cursor and compare it with
the words given in `reftex-label-alist'. When it finds a match, RefTeX will
immediately offer the correct label menu - otherwise it will prompt you for
(defvar reftex-bibfile-ignore-list nil) ; compatibility
(defcustom reftex-bibfile-ignore-regexps nil
- "*List of regular expressions to exclude files in \\bibliography{..}.
+ "List of regular expressions to exclude files in \\bibliography{..}.
File names matched by these regexps will not be parsed by RefTeX.
Intended for files which contain only `@string' macro definitions and the
like, which are ignored by RefTeX anyway."
:type '(repeat (regexp)))
(defcustom reftex-default-bibliography nil
- "*List of BibTeX database files which should be used if none are specified.
+ "List of BibTeX database files which should be used if none are specified.
When `reftex-citation' is called from a document which has neither a
`\\bibliography{..}' statement nor a `thebibliography' environment,
RefTeX will scan these files instead. Intended for using `reftex-citation'
:type '(repeat (file)))
(defcustom reftex-sort-bibtex-matches 'reverse-year
- "*Sorting of the entries found in BibTeX databases by reftex-citation.
+ "Sorting of the entries found in BibTeX databases by reftex-citation.
Possible values:
nil Do not sort entries.
'author Sort entries by author name.
(const :tag "by year, reversed" reverse-year)))
(defcustom reftex-cite-format 'default
- "*The format of citations to be inserted into the buffer.
+ "The format of citations to be inserted into the buffer.
It can be a string or an alist or a symbol. In the simplest case this
is just the string \"\\cite{%l}\", which is also the default. See the
definition of `reftex-cite-format-builtin' for more complex examples.
(string :tag "Format string" "")))))
(defcustom reftex-cite-prompt-optional-args 'maybe
- "*Non-nil means, prompt for empty optional arguments in cite macros.
+ "Non-nil means, prompt for empty optional arguments in cite macros.
When an entry in `reftex-cite-format' ist given with square brackets to
indicate optional arguments (for example \\cite[][]{%l}), RefTeX can
prompt for values. Possible values are:
(const :tag "Never" nil)))
(defcustom reftex-cite-cleanup-optional-args t
- "*Non-nil means, remove unnecessary empty optional arguments in cite macros.
+ "Non-nil means, remove unnecessary empty optional arguments in cite macros.
The cite macros provided by some packages (for example
natbib) allow specifying two optional arguments, one for a prefix to
the citation, and a second for a postfix. When only one optional
:type 'boolean)
(defcustom reftex-comment-citations nil
- "*Non-nil means add a comment for each citation describing the full entry.
+ "Non-nil means add a comment for each citation describing the full entry.
The comment is formatted according to `reftex-cite-comment-format'."
:group 'reftex-citation-support
:type 'boolean)
:group 'reftex)
(defcustom reftex-support-index t
- "*Non-nil means, index entries are parsed as well.
+ "Non-nil means, index entries are parsed as well.
Index support is resource intensive and the internal structure holding the
parsed information can become quite big. Therefore it can be turned off.
When this is nil and you execute a command which requires index support,
:type 'regexp)
(defcustom reftex-index-phrases-search-whole-words t
- "*Non-nil means phrases search will look for whole words, not subwords.
+ "Non-nil means phrases search will look for whole words, not subwords.
This works by requiring word boundaries at the beginning and end of
the search string. When the search phrase already has a non-word-char
at one of these points, no word boundary is required there."
:type 'boolean)
(defcustom reftex-index-phrases-case-fold-search t
- "*Non-nil means, searching for index phrases will ignore case."
+ "Non-nil means, searching for index phrases will ignore case."
:group 'reftex-index-support
:type 'boolean)
(function)))
(defcustom reftex-index-phrases-skip-indexed-matches nil
- "*Non-nil means, skip matches which appear to be indexed already.
+ "Non-nil means, skip matches which appear to be indexed already.
When doing global indexing from the phrases buffer, searches for some
phrases may match at places where that phrase was already indexed. In
particular when indexing an already processed document again, this
:type 'boolean)
(defcustom reftex-index-phrases-wrap-long-lines nil
- "*Non-nil means, when indexing from the phrases buffer, wrap lines.
+ "Non-nil means, when indexing from the phrases buffer, wrap lines.
Inserting indexing commands in a line makes the line longer - often
so long that it does not fit onto the screen. When this variable is
non-nil, newlines will be added as necessary before and/or after the
:type 'boolean)
(defcustom reftex-index-phrases-sort-prefers-entry nil
- "*Non-nil means when sorting phrase lines, the explicit index entry is used.
+ "Non-nil means when sorting phrase lines, the explicit index entry is used.
Phrase lines in the phrases buffer contain a search phrase, and
sorting is normally based on these. Some phrase lines also have
an explicit index argument specified. When this variable is non-nil,
:type 'boolean)
(defcustom reftex-index-phrases-sort-in-blocks t
- "*Non-nil means, empty and comment lines separate phrase buffer into blocks.
+ "Non-nil means, empty and comment lines separate phrase buffer into blocks.
Sorting will then preserve blocks, so that lines are re-arranged only
within blocks."
:group 'reftex-index-support
:type '(string :tag "Capital letters"))
(defcustom reftex-index-include-context nil
- "*Non-nil means, display the index definition context in the index buffer.
+ "Non-nil means, display the index definition context in the index buffer.
This flag may also be toggled from the index buffer with the `c' key."
:group 'reftex-index-support
:type 'boolean)
(defcustom reftex-index-follow-mode nil
- "*Non-nil means, point in *Index* buffer will cause other window to follow.
+ "Non-nil means, point in *Index* buffer will cause other window to follow.
The other window will show the corresponding part of the document.
This flag can be toggled from within the *Index* buffer with the `f' key."
:group 'reftex-table-of-contents-browser
(integer :tag "Highlight Group"))))
(defcustom reftex-auto-view-crossref t
- "*Non-nil means, initially turn automatic viewing of crossref info on.
+ "Non-nil means, initially turn automatic viewing of crossref info on.
Automatic viewing of crossref info normally uses the echo area.
Whenever point is idle for more than `reftex-idle-time' seconds on the
argument of a \\ref or \\cite macro, and no other message is being
(const :tag "in Other Window" window)))
(defcustom reftex-idle-time 1.2
- "*Time (secs) Emacs has to be idle before automatic crossref display is done.
+ "Time (secs) Emacs has to be idle before automatic crossref display is done.
Applies also to toc recentering."
:group 'reftex-viewing-cross-references
:type 'number)
(defcustom reftex-revisit-to-echo nil
- "*Non-nil means, automatic citation display will revisit files if necessary.
+ "Non-nil means, automatic citation display will revisit files if necessary.
When nil, citation display in echo area will only be active for cached
entries and for BibTeX database files with live associated buffers."
:group 'reftex-viewing-cross-references
:type 'boolean)
(defcustom reftex-cache-cite-echo t
- "*Non-nil means, the information displayed in the echo area for cite macros
+ "Non-nil means, the information displayed in the echo area for cite macros
is cached and even saved along with the parsing information. The cache
survives document scans. In order to clear it, use M-x reftex-reset-mode."
:group 'reftex-viewing-cross-references
:group 'reftex)
(defcustom reftex-texpath-environment-variables '("TEXINPUTS")
- "*List of specifications how to retrieve the search path for TeX files.
+ "List of specifications how to retrieve the search path for TeX files.
Several entries are possible.
- If an element is the name of an environment variable, its content is used.
- If an element starts with an exclamation mark, it is used as a command
:type '(repeat (string :tag "Specification")))
(defcustom reftex-bibpath-environment-variables '("BIBINPUTS" "TEXBIB")
- "*List of specifications how to retrieve search path for .bib database files.
+ "List of specifications how to retrieve search path for .bib database files.
Several entries are possible.
- If an element is the name of an environment variable, its content is used.
- If an element starts with an exclamation mark, it is used as a command
(defcustom reftex-file-extensions '(("tex" . (".tex" ".ltx"))
("bib" . (".bib")))
- "*Association list with file extensions for different file types.
+ "Association list with file extensions for different file types.
This is a list of items, each item is like: (TYPE . (DEF-EXT OTHER-EXT ...))
TYPE: File type like \"bib\" or \"tex\".
:type 'boolean)
(defcustom reftex-search-unrecursed-path-first t
- "*Non-nil means, search all specified directories before trying recursion.
+ "Non-nil means, search all specified directories before trying recursion.
Thus, in a path \".//:/tex/\", search first \"./\", then \"/tex/\" and then
all subdirectories of \"./\". If this option is nil, the subdirectories of
\"./\" are searched before \"/tex/\". This is mainly for speed - most of the
:type 'boolean)
(defcustom reftex-use-external-file-finders nil
- "*Non-nil means, use external programs to find files.
+ "Non-nil means, use external programs to find files.
Normally, RefTeX searches the paths given in the environment variables
TEXINPUTS and BIBINPUTS to find TeX files and BibTeX database files.
With this option turned on, it calls an external program specified in the
(defcustom reftex-external-file-finders '(("tex" . "kpsewhich -format=.tex %f")
("bib" . "kpsewhich -format=.bib %f"))
- "*Association list with external programs to call for finding files.
+ "Association list with external programs to call for finding files.
Each entry is a cons cell (TYPE . PROGRAM).
TYPE is either \"tex\" or \"bib\". PROGRAM is the external program to use with
any arguments. %f will be replaced by the name of the file to be found.
:group 'reftex)
(defcustom reftex-keep-temporary-buffers 1
- "*Non-nil means, keep buffers created for parsing and lookup.
+ "Non-nil means, keep buffers created for parsing and lookup.
RefTeX sometimes needs to visit files related to the current document.
We distinguish files visited for
PARSING: Parts of a multifile document loaded when (re)-parsing the document.
(const :tag "Keep lookup buffers only" 1)))
(defcustom reftex-initialize-temporary-buffers nil
- "*Non-nil means do initializations even when visiting file temporarily.
+ "Non-nil means do initializations even when visiting file temporarily.
When nil, RefTeX may turn off find-file hooks and other stuff to briefly
visit a file.
When t, the full default initializations are done (find-file-hook etc.).
(function-item))))
(defcustom reftex-no-include-regexps '("\\.pstex_t\\'")
- "*List of regular expressions to exclude certain input files from parsing.
+ "List of regular expressions to exclude certain input files from parsing.
If the name of a file included via \\include or \\input is matched by any
of the regular expressions in this list, that file is not parsed by RefTeX."
:group 'reftex-optimizations-for-large-documents
:type '(repeat (regexp)))
(defcustom reftex-enable-partial-scans nil
- "*Non-nil means, re-parse only 1 file when asked to re-parse.
+ "Non-nil means, re-parse only 1 file when asked to re-parse.
Re-parsing is normally requested with a `C-u' prefix to many RefTeX commands,
or with the `r' key in menus. When this option is t in a multifile document,
we will only parse the current buffer, or the file associated with the label
:type 'boolean)
(defcustom reftex-allow-automatic-rescan t
- "*Non-nil means, RefTeX may rescan the document when this seems necessary.
+ "Non-nil means, RefTeX may rescan the document when this seems necessary.
Currently this applies only to rescanning after label insertion, when
the new label cannot be inserted correctly into the internal label
list."
:type 'boolean)
(defcustom reftex-save-parse-info nil
- "*Non-nil means, save information gathered with parsing in a file.
+ "Non-nil means, save information gathered with parsing in a file.
The file MASTER.rel in the same directory as MASTER.tex is used to save the
information. When this variable is t,
- accessing the parsing information for the first time in an editing session
:type 'boolean)
(defcustom reftex-parse-file-extension ".rel"
- "*File extension for the file in which parser information is stored.
+ "File extension for the file in which parser information is stored.
This extension is added to the base name of the master file."
:group 'reftex-optimizations-for-large-documents
:type 'string)
(defcustom reftex-use-multiple-selection-buffers nil
- "*Non-nil means use a separate selection buffer for each label type.
+ "Non-nil means use a separate selection buffer for each label type.
These buffers are kept from one selection to the next and need not to be
created for each use - so the menu generally comes up faster. The
selection buffers will be erased (and therefore updated) automatically
:type 'boolean)
(defcustom reftex-auto-update-selection-buffers t
- "*Non-nil means, selection buffers will be updated automatically.
+ "Non-nil means, selection buffers will be updated automatically.
When a new label is defined with `reftex-label', all selection buffers
associated with that label category are emptied, in order to force an
update upon next use. When nil, the buffers are left alone and have to be
:group 'reftex)
(defcustom reftex-use-fonts t
- "*Non-nil means, use fonts in *toc* and selection buffers.
+ "Non-nil means, use fonts in *toc* and selection buffers.
Font-lock must be loaded as well to actually get fontified display.
When changing this option, a rescan may be necessary to activate the change."
:group 'reftex-fontification-configurations
:type 'boolean)
(defcustom reftex-refontify-context 1
- "*Non-nil means, re-fontify the context in the label menu with font-lock.
+ "Non-nil means, re-fontify the context in the label menu with font-lock.
This slightly slows down the creation of the label menu. It is only necessary
when you definitely want the context fontified.
(const :tag "When necessary" 1)))
(defcustom reftex-highlight-selection 'cursor
- "*Non-nil mean, highlight selected text in selection and *toc* buffers.
+ "Non-nil mean, highlight selected text in selection and *toc* buffers.
Normally, the text near the cursor is the selected text, and it is
highlighted. This is the entry most keys in the selection and *toc*
buffers act on. However, if you mainly use the mouse to select an
:type 'boolean)
(defcustom reftex-plug-into-AUCTeX nil
- "*Plug-in flags for AUCTeX interface.
+ "Plug-in flags for AUCTeX interface.
This variable is a list of 4 boolean flags. When a flag is non-nil,
RefTeX will
)))
(defcustom reftex-allow-detached-macro-args nil
- "*Non-nil means, allow arguments of macros to be detached by whitespace.
+ "Non-nil means, allow arguments of macros to be detached by whitespace.
When this is t, `aaa' will be considered as argument of \\bb in the following
construct: \\bbb [xxx] {aaa}."
:group 'reftex-miscellaneous-configurations
;; for font-lock, but must be defvar'ed after
;; sgml-font-lock-keywords-1 and sgml-font-lock-keywords-2 above
(defvar sgml-font-lock-keywords sgml-font-lock-keywords-1
- "*Rules for highlighting SGML code. See also `sgml-tag-face-alist'.")
+ "Rules for highlighting SGML code. See also `sgml-tag-face-alist'.")
(defconst sgml-syntax-propertize-function
(syntax-propertize-rules
("u")
("var")
("wbr" t)))
- "*Value of `sgml-tag-alist' for HTML mode.")
+ "Value of `sgml-tag-alist' for HTML mode.")
(defvar html-tag-help
`(,@sgml-tag-help
("ul" . "Unordered list")
("var" . "Math variable face")
("wbr" . "Enable <br> within <nobr>"))
- "*Value of `sgml-tag-help' for HTML mode.")
+ "Value of `sgml-tag-help' for HTML mode.")
\f
;;;###autoload
(defvar html-imenu-regexp
"\\s-*<h\\([1-9]\\)[^\n<>]*>\\(<[^\n<>]*>\\)*\\s-*\\([^\n<>]*\\)"
- "*A regular expression matching a head line to be added to the menu.
+ "A regular expression matching a head line to be added to the menu.
The first `match-string' should be a number from 1-9.
The second `match-string' matches extra tags and is ignored.
The third `match-string' will be the used in the menu.")
(defvar table-disable-menu (null (and (locate-library "easymenu")
(require 'easymenu)
(fboundp 'easy-menu-add-item)))
- "*When non-nil, use of menu by table package is disabled.
+ "When non-nil, use of menu by table package is disabled.
It must be set before loading this package `table.el' for the first
time.")
tex shell terminates.")
(defvar tex-command "tex"
- "*Command to run TeX.
+ "Command to run TeX.
If this string contains an asterisk \(`*'\), that is replaced by the file name;
otherwise the value of `tex-start-options', the \(shell-quoted\)
value of `tex-start-commands', and the file name are added at the end
(defvar latex-complete-bibtex-cache nil)
-(defun latex-string-prefix-p (str1 str2)
- (eq t (compare-strings str1 nil nil str2 0 (length str1))))
+(define-obsolete-function-alias 'latex-string-prefix-p
+ 'string-prefix-p "24.2")
(defvar bibtex-reference-key)
(declare-function reftex-get-bibfile-list "reftex-cite.el" ())
keys)
(if (and (eq (car latex-complete-bibtex-cache)
(reftex-get-bibfile-list))
- (latex-string-prefix-p (nth 1 latex-complete-bibtex-cache)
+ (string-prefix-p (nth 1 latex-complete-bibtex-cache)
key))
;; Use the cache.
(setq keys (nth 2 latex-complete-bibtex-cache))
OUT describes the output file and is either a %-escaped string
or nil to indicate that there is no output file.")
-;; defsubst* gives better byte-code than defsubst.
-(defsubst* tex-string-prefix-p (str1 str2)
- "Return non-nil if STR1 is a prefix of STR2"
- (eq t (compare-strings str2 nil (length str1) str1 nil nil)))
+(define-obsolete-function-alias 'tex-string-prefix-p 'string-prefix-p "24.2")
(defun tex-guess-main-file (&optional all)
"Find a likely `tex-main-file'.
(with-current-buffer buf
(when (and (cond
((null all) (equal dir default-directory))
- ((eq all 'sub) (tex-string-prefix-p default-directory dir))
+ ((eq all 'sub) (string-prefix-p default-directory dir))
(t))
(stringp tex-main-file))
(throw 'found (expand-file-name tex-main-file)))))
(with-current-buffer buf
(when (and (cond
((null all) (equal dir default-directory))
- ((eq all 'sub) (tex-string-prefix-p default-directory dir))
+ ((eq all 'sub) (string-prefix-p default-directory dir))
(t))
buffer-file-name
;; (or (easy-mmode-derived-mode-p 'latex-mode)
(@unnumberedsubsubsec . @unnumberedsubsec)
(@subsubheading . @subheading)
(@appendixsubsubsec . @appendixsubsec))
- "*An alist of next higher levels for chapters, sections, etc...
+ "An alist of next higher levels for chapters, sections, etc...
For example, section to chapter, subsection to section.
Used by `texinfo-raise-lower-sections'.
The keys specify types of section; the values correspond to the next
(@unnumberedsubsubsec . @unnumberedsubsubsec)
(@subsubheading . @subsubheading)
(@appendixsubsubsec . @appendixsubsubsec))
- "*An alist of next lower levels for chapters, sections, etc...
+ "An alist of next lower levels for chapters, sections, etc...
For example, chapter to section, section to subsection.
Used by `texinfo-raise-lower-sections'.
The keys specify types of section; the values correspond to the next
"done. Now save it." "done.")))))
(defvar texinfo-region-buffer-name "*Info Region*"
- "*Name of the temporary buffer used by \\[texinfo-format-region].")
+ "Name of the temporary buffer used by \\[texinfo-format-region].")
(defvar texinfo-pre-format-hook nil
"Hook called before the conversion of the Texinfo file to Info format.
;; Texinfo commands.
(defvar texinfo-extra-inter-column-width 0
- "*Number of extra spaces between entries (columns) in @multitable.")
+ "Number of extra spaces between entries (columns) in @multitable.")
(defvar texinfo-multitable-buffer-name "*multitable-temporary-buffer*")
(defvar texinfo-multitable-rectangle-name "texinfo-multitable-temp-")
(3 . (concat "\\(^@\\)\\(" texinfo-section-level-regexp "\\)\\>[ \t]*"))
(4 . (concat "\\(^@\\)\\(" texinfo-subsection-level-regexp "\\)\\>[ \t]+"))
(5 . (concat "\\(^@\\)\\(" texinfo-subsubsection-level-regexp "\\)\\>[ \t]+")))
- "*Regexps for searching for same level sections in a Texinfo file.
+ "Regexps for searching for same level sections in a Texinfo file.
The keys are strings specifying the general hierarchical level in the
document; the values are regular expressions.")
"\\|"
texinfo-chapter-level-regexp
"\\)\\>[ \t]*\\)")))
- "*Regexps for searching for higher level sections in a Texinfo file.
+ "Regexps for searching for higher level sections in a Texinfo file.
The keys are strings specifying the general hierarchical level in the
document; the values are regular expressions.")
"\\)\\>[ \t]+\\)"))
;; There's nothing below 5, use a bogus regexp that can't match.
(5 . "a\\(^\\)"))
- "*Regexps for searching for lower level sections in a Texinfo file.
+ "Regexps for searching for lower level sections in a Texinfo file.
The keys are strings specifying the general hierarchical level in the
document; the values are regular expressions.")
;; try 32, but perhaps 24 is better
(defvar texinfo-column-for-description 32
- "*Column at which descriptions start in a Texinfo menu.")
+ "Column at which descriptions start in a Texinfo menu.")
(defun texinfo-insert-menu (menu-list node-name)
"Insert formatted menu at point.
;;; Code:
-\f
+(defgroup two-column nil
+ "Minor mode for editing of two-column text."
+ :prefix "2C-"
+ :group 'frames)
+
+(defcustom 2C-mode-line-format
+ '("-%*- %15b --" (-3 . "%p") "--%[(" mode-name
+ minor-mode-alist "%n" mode-line-process ")%]%-")
+ "Value of `mode-line-format' for a buffer in two-column minor mode."
+ :type 'sexp
+ :group 'two-column)
+
+(defcustom 2C-other-buffer-hook 'text-mode
+ "Hook run in new buffer when it is associated with current one."
+ :type 'function
+ :group 'two-column)
-;; Lucid patch
-(or (fboundp 'frame-width)
- (fset 'frame-width 'screen-width))
+(defcustom 2C-separator ""
+ "A string inserted between the two columns when merging.
+This gets set locally by \\[2C-split]."
+ :type 'string
+ :group 'two-column)
+(put '2C-separator 'permanent-local t)
+
+(defcustom 2C-window-width 40
+ "The width of the first column. (Must be at least `window-min-width'.)
+This value is local for every buffer that sets it."
+ :type 'integer
+ :group 'two-column)
+(make-variable-buffer-local '2C-window-width)
+(put '2C-window-width 'permanent-local t)
+(defcustom 2C-beyond-fill-column 4
+ "Base for calculating `fill-column' for a buffer in two-column minor mode.
+The value of `fill-column' becomes `2C-window-width' for this buffer
+minus this value."
+ :type 'integer
+ :group 'two-column)
-;;;;; Set up keymap ;;;;;
+(defcustom 2C-autoscroll t
+ "If non-nil, Emacs attempts to keep the two column's buffers aligned."
+ :type 'boolean
+ :group 'two-column)
+\f
(defvar 2C-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "2" '2C-two-columns)
map)
"Keymap for commands for setting up two-column mode.")
-
-
;;;###autoload (autoload '2C-command "two-column" () t 'keymap)
(fset '2C-command 2C-mode-map)
;;;###autoload (global-set-key [f2] '2C-command)
-
(defvar 2C-minor-mode-map
(let ((map (make-sparse-keymap)))
(define-key map "1" '2C-merge)
map)
"Keymap for commands for use in two-column mode.")
-
(setq minor-mode-map-alist
(cons (cons '2C-mode
(let ((map (make-sparse-keymap)))
map (current-global-map))
map))
minor-mode-map-alist))
-\f
-;;;;; variable declarations ;;;;;
-
-(defgroup two-column nil
- "Minor mode for editing of two-column text."
- :prefix "2C-"
- :group 'frames)
-
+\f
;; Markers seem to be the only buffer-id not affected by renaming a buffer.
;; This nevertheless loses when a buffer is killed. The variable-name is
;; required by `describe-mode'.
(make-variable-buffer-local '2C-mode)
(put '2C-mode 'permanent-local t)
-
-
(setq minor-mode-alist (cons '(2C-mode " 2C") minor-mode-alist))
-
-
-;; rearranged, so that the pertinent info will show in 40 columns
-(defcustom 2C-mode-line-format
- '("-%*- %15b --" (-3 . "%p") "--%[(" mode-name
- minor-mode-alist "%n" mode-line-process ")%]%-")
- "Value of `mode-line-format' for a buffer in two-column minor mode."
- :type 'sexp
- :group 'two-column)
-
-
-(defcustom 2C-other-buffer-hook 'text-mode
- "Hook run in new buffer when it is associated with current one."
- :type 'function
- :group 'two-column)
-
-
-(defcustom 2C-separator ""
- "A string inserted between the two columns when merging.
-This gets set locally by \\[2C-split]."
- :type 'string
- :group 'two-column)
-(put '2C-separator 'permanent-local t)
-
-
-
-(defcustom 2C-window-width 40
- "The width of the first column. (Must be at least `window-min-width')
-This value is local for every buffer that sets it."
- :type 'integer
- :group 'two-column)
-(make-variable-buffer-local '2C-window-width)
-(put '2C-window-width 'permanent-local t)
-
-
-
-(defcustom 2C-beyond-fill-column 4
- "Base for calculating `fill-column' for a buffer in two-column minor mode.
-The value of `fill-column' becomes `2C-window-width' for this buffer
-minus this value."
- :type 'integer
- :group 'two-column)
-
-
-
-(defcustom 2C-autoscroll t
- "If non-nil, Emacs attempts to keep the two column's buffers aligned."
- :type 'boolean
- :group 'two-column)
-
-
-
(defvar 2C-autoscroll-start nil)
(make-variable-buffer-local '2C-autoscroll-start)
\f
(if req (error "You must first set two-column minor mode"))))
-
;; function for setting up two-column minor mode in a buffer associated
;; with the buffer pointed to by the marker other.
(defun 2C-mode (other)
(run-hooks '2C-mode-hook))
-
;;;###autoload
(defun 2C-two-columns (&optional buffer)
"Split current window vertically for two-column editing.
(other-window -1)))))
-
;;;###autoload
(defun 2C-associate-buffer ()
"Associate another buffer with this one in two-column minor mode.
(let ((b1 (current-buffer))
(b2 (or (2C-other)
(read-buffer "Associate buffer: " (other-buffer)))))
- (save-excursion
- (setq 2C-mode nil)
- (set-buffer b2)
+ (setq 2C-mode nil)
+ (with-current-buffer b2
(and (2C-other)
(not (eq b1 (2C-other)))
(error "Buffer already associated with buffer `%s'"
(2C-two-columns b2)))
-
;;;###autoload
(defun 2C-split (arg)
"Split a two-column text at point, into two buffers in two-column minor mode.
(move-to-column column)))))
-
-
(defun 2C-dissociate ()
"Turn off two-column minor mode in current and associated buffer.
If the associated buffer is unmodified and empty, it is killed."
(interactive)
- (let ((buffer (current-buffer)))
- (save-excursion
- (and (2C-other)
- (set-buffer (2C-other))
- (or (not (2C-other))
- (eq buffer (2C-other)))
- (if (and (not (buffer-modified-p))
- (eobp) (bobp))
- (kill-buffer nil)
- (kill-local-variable '2C-mode)
- (kill-local-variable '2C-window-width)
- (kill-local-variable '2C-separator)
- (kill-local-variable 'mode-line-format)
- (kill-local-variable 'fill-column))))
- (kill-local-variable '2C-mode)
- (kill-local-variable '2C-window-width)
- (kill-local-variable '2C-separator)
- (kill-local-variable 'mode-line-format)
- (kill-local-variable 'fill-column)))
-
+ (let ((buffer (current-buffer))
+ (other (2C-other)))
+ (if other
+ (with-current-buffer other
+ (when (or (not (2C-other)) (eq buffer (2C-other)))
+ (if (and (not (buffer-modified-p)) (zerop (buffer-size)))
+ (kill-buffer)
+ (kill-local-variable '2C-mode)
+ (kill-local-variable '2C-window-width)
+ (kill-local-variable '2C-separator)
+ (kill-local-variable 'mode-line-format)
+ (kill-local-variable 'fill-column))))))
+ (kill-local-variable '2C-mode)
+ (kill-local-variable '2C-window-width)
+ (kill-local-variable '2C-separator)
+ (kill-local-variable 'mode-line-format)
+ (kill-local-variable 'fill-column)
+ (force-mode-line-update))
;; this doesn't use yank-rectangle, so that the first column can
(message "Autoscrolling is off.")))
-
(defun 2C-autoscroll ()
(if 2C-autoscroll
;; catch a mouse scroll on non-selected scrollbar
(select-window (car (car (cdr last-command-event)))))
;; In some cases scrolling causes an error, but post-command-hook
;; shouldn't, and should always stay in the original window
- (condition-case ()
- (and (or 2C-autoscroll-start (2C-toggle-autoscroll t) nil)
- (/= (window-start) 2C-autoscroll-start)
- (2C-other)
- (get-buffer-window (2C-other))
- (let ((lines (count-lines (window-start)
- 2C-autoscroll-start)))
- (if (< (window-start) 2C-autoscroll-start)
- (setq lines (- lines)))
- (setq 2C-autoscroll-start (window-start))
- (select-window (get-buffer-window (2C-other)))
- ;; make sure that other buffer has enough lines
- (save-excursion
- (insert-char
- ?\n (- lines (count-lines (window-start)
- (goto-char (point-max)))
- -1)))
- (scroll-up lines)
- (setq 2C-autoscroll-start (window-start))))
- (error))))))
-
+ (ignore-errors
+ (and (or 2C-autoscroll-start (2C-toggle-autoscroll t) nil)
+ (/= (window-start) 2C-autoscroll-start)
+ (2C-other)
+ (get-buffer-window (2C-other))
+ (let ((lines (count-lines (window-start)
+ 2C-autoscroll-start)))
+ (if (< (window-start) 2C-autoscroll-start)
+ (setq lines (- lines)))
+ (setq 2C-autoscroll-start (window-start))
+ (select-window (get-buffer-window (2C-other)))
+ ;; make sure that other buffer has enough lines
+ (save-excursion
+ (insert-char
+ ?\n (- lines (count-lines (window-start)
+ (goto-char (point-max)))
+ -1)))
+ (scroll-up lines)
+ (setq 2C-autoscroll-start (window-start)))))))))
(defun 2C-enlarge-window-horizontally (arg)
(2C-enlarge-window-horizontally (- arg)))
-
(provide 'two-column)
;;; two-column.el ends here
("GMT-4" . -400) ("GMT-5" . -500) ("GMT-6" . -600)
("GMT-7" . -700) ("GMT-8" . -800) ("GMT-9" . -900)
("GMT-10" . -1000) ("GMT-11" . -1100) ("GMT-12" . -1200))
- "*Time differentials of timezone from GMT in +-HHMM form.
+ "Time differentials of timezone from GMT in +-HHMM form.
This list is obsolescent, and is present only for backwards compatibility,
because time zone names are ambiguous in practice.
Use `current-time-zone' instead.")
;; tmm-km-list is an alist of (STRING . MEANING).
;; It has no other elements.
;; The order of elements in tmm-km-list is the order of the menu bar.
- (mapc (lambda (elt)
- (cond
- ((stringp elt) (setq gl-str elt))
- ((listp elt) (tmm-get-keymap elt not-menu))
- ((vectorp elt)
- (dotimes (i (length elt))
- (tmm-get-keymap (cons i (aref elt i)) not-menu)))))
- menu)
+ (dolist (elt menu)
+ (cond
+ ((stringp elt) (setq gl-str elt))
+ ((listp elt) (tmm-get-keymap elt not-menu))
+ ((vectorp elt)
+ (dotimes (i (length elt))
+ (tmm-get-keymap (cons i (aref elt i)) not-menu)))))
;; Choose an element of tmm-km-list; put it in choice.
(if (and not-menu (= 1 (length tmm-km-list)))
;; If this is the top-level of an x-popup-menu menu,
(defun tmm-define-keys (minibuffer)
(let ((map (make-sparse-keymap)))
(suppress-keymap map t)
- (mapc
- (lambda (c)
- (if (listp tmm-shortcut-style)
- (define-key map (char-to-string c) 'tmm-shortcut)
- ;; only one kind of letters are shortcuts, so map both upcase and
- ;; downcase input to the same
- (define-key map (char-to-string (downcase c)) 'tmm-shortcut)
- (define-key map (char-to-string (upcase c)) 'tmm-shortcut)))
- tmm-short-cuts)
+ (dolist (c tmm-short-cuts)
+ (if (listp tmm-shortcut-style)
+ (define-key map (char-to-string c) 'tmm-shortcut)
+ ;; only one kind of letters are shortcuts, so map both upcase and
+ ;; downcase input to the same
+ (define-key map (char-to-string (downcase c)) 'tmm-shortcut)
+ (define-key map (char-to-string (upcase c)) 'tmm-shortcut)))
(if minibuffer
(progn
(define-key map [pageup] 'tmm-goto-completions)
(choose-completion))
;; In minibuffer
(delete-region (minibuffer-prompt-end) (point-max))
- (mapc (lambda (elt)
- (if (string=
- (substring (car elt) 0
- (min (1+ (length tmm-mid-prompt))
- (length (car elt))))
- (concat (char-to-string c) tmm-mid-prompt))
- (setq s (car elt))))
- tmm-km-list)
+ (dolist (elt tmm-km-list)
+ (if (string=
+ (substring (car elt) 0
+ (min (1+ (length tmm-mid-prompt))
+ (length (car elt))))
+ (concat (char-to-string c) tmm-mid-prompt))
+ (setq s (car elt))))
(insert s)
(exit-minibuffer)))))
(setq allbind (cons globalbind (cons localbind minorbind)))
;; Merge all the elements of ALLBIND into one keymap.
- (mapc (lambda (in)
- (if (and (symbolp in) (keymapp in))
- (setq in (symbol-function in)))
- (and in (keymapp in)
- (if (keymapp bind)
- (setq bind (nconc bind (copy-sequence (cdr in))))
- (setq bind (copy-sequence in)))))
- allbind)
+ (dolist (in allbind)
+ (if (and (symbolp in) (keymapp in))
+ (setq in (symbol-function in)))
+ (and in (keymapp in)
+ (setq bind (if (keymapp bind)
+ (nconc bind (copy-sequence (cdr in)))
+ (copy-sequence in)))))
;; Return that keymap.
bind))))
-;; Huh? What's that about? --Stef
-(add-hook 'calendar-load-hook (lambda () (require 'cal-menu)))
-
(provide 'tmm)
;;; tmm.el ends here
(insert-file-contents (tutorial--saved-file))
(let ((enable-local-variables :safe))
(hack-local-variables))
+ ;; FIXME? What we actually want is to ignore dir-locals (?).
+ (setq buffer-read-only nil) ; bug#11118
(goto-char (point-min))
(setq old-tut-point
(string-to-number
(insert-file-contents (expand-file-name filename tutorial-directory))
(let ((enable-local-variables :safe))
(hack-local-variables))
+ ;; FIXME? What we actually want is to ignore dir-locals (?).
+ (setq buffer-read-only nil) ; bug#11118
(forward-line)
(setq tutorial--point-before-chkeys (point-marker)))
(""
type-break-mode-line-break-message
type-break-mode-line-warning))
- "*Format of messages in the mode line concerning typing breaks.")
+ "Format of messages in the mode line concerning typing breaks.")
(defvar type-break-mode-line-break-message
'(type-break-mode-line-break-message-p
+2012-04-10 William Xu <william.xwl@gmail.com> (tiny change)
+
+ * url.el (url-retrieve-internal): Hexify multibye URL string first
+ when necessary (bug#7017).
+
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * url.el (url-retrieve-internal): Mention utf-8 encoding.
+ (url-retrieve): Ditto.
+
+2012-04-10 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * url-domsurf.el: New file (bug#1401).
+
+ * url-cookie.el (url-cookie-two-dot-domains): Remove.
+ (url-cookie-host-can-set-p): Use `url-domsuf-cookie-allowed-p'
+ instead of the variable above.
+
+2012-03-25 Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+ * url-queue.el (url-queue-kill-job): Check whether the buffer has
+ been killed asynchronously before selecting it.
+
2012-03-14 Lars Magne Ingebrigtsen <larsi@gnus.org>
* url-queue.el (url-queue-kill-job): Make sure that the callback
(require 'url-util)
(require 'url-parse)
+(require 'url-domsuf)
(eval-when-compile (require 'cl)) ; defstruct
(concat retval "\r\n")
"")))
-(defvar url-cookie-two-dot-domains
- (concat "\\.\\("
- (mapconcat 'identity (list "com" "edu" "net" "org" "gov" "mil" "int")
- "\\|")
- "\\)$")
- "A regexp of top level domains that only require two matching
-'.'s in the domain name in order to set a cookie.")
-
(defcustom url-cookie-trusted-urls nil
"A list of regular expressions matching URLs to always accept cookies from."
:type '(repeat regexp)
:group 'url-cookie)
(defun url-cookie-host-can-set-p (host domain)
- (let ((numdots 0)
- (last nil)
- (case-fold-search t)
- (mindots 3))
- (while (setq last (string-match "\\." domain last))
- (setq numdots (1+ numdots)
- last (1+ last)))
- (if (string-match url-cookie-two-dot-domains domain)
- (setq mindots 2))
- (cond
- ((string= host domain) ; Apparently netscape lets you do this
- t)
- ((>= numdots mindots) ; We have enough dots in domain name
- ;; Need to check and make sure the host is actually _in_ the
- ;; domain it wants to set a cookie for though.
- (string-match (concat (regexp-quote
- ;; Remove the dot from wildcard domains
- ;; before matching.
- (if (eq ?. (aref domain 0))
- (substring domain 1)
- domain))
- "$") host))
- (t
- nil))))
+ (let ((last nil)
+ (case-fold-search t))
+ (if (string= host domain) ; Apparently netscape lets you do this
+ t
+ ;; Remove the dot from wildcard domains before matching.
+ (when (eq ?. (aref domain 0))
+ (setq domain (substring domain 1)))
+ (and (url-domsuf-cookie-allowed-p domain)
+ ;; Need to check and make sure the host is actually _in_ the
+ ;; domain it wants to set a cookie for though.
+ (string-match (concat (regexp-quote domain)
+ "$") host)))))
(defun url-cookie-handle-set-cookie (str)
(setq url-cookies-changed-since-last-save t)
\f
;;; Locking support
(defvar url-dav-lock-identifier (concat "mailto:" user-mail-address)
- "*URL used as contact information when creating locks in DAV.
+ "URL used as contact information when creating locks in DAV.
This will be used as the contents of the DAV:owner/DAV:href tag to
identify the owner of a LOCK when requesting it. This will be shown
to other users when the DAV:lockdiscovery property is requested, so
--- /dev/null
+;;; url-domsuf.el --- Say what domain names can have cookies set.
+
+;; Copyright (C) 2012 Free Software Foundation, Inc.
+
+;; Author: Lars Magne Ingebrigtsen <larsi@gnus.org>
+
+;; Keywords: comm, data, processes, hypermedia
+
+;; This file is part of GNU Emacs.
+;;
+;; GNU Emacs is free software: you can redistribute it and/or modify
+;; it under the terms of the GNU General Public License as published by
+;; the Free Software Foundation, either version 3 of the License, or
+;; (at your option) any later version.
+
+;; GNU Emacs is distributed in the hope that it will be useful,
+;; but WITHOUT ANY WARRANTY; without even the implied warranty of
+;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+;; GNU General Public License for more details.
+
+;; You should have received a copy of the GNU General Public License
+;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+;;; Commentary:
+
+;; The rules for what domains can have cookies set is defined here:
+;; http://publicsuffix.org/list/
+
+;;; Code:
+
+(defvar url-domsuf-domains nil)
+
+(defun url-domsuf-parse-file ()
+ (with-temp-buffer
+ (insert-file-contents
+ (expand-file-name "publicsuffix.txt" data-directory))
+ (let ((domains nil)
+ domain exception)
+ (while (not (eobp))
+ (when (not (looking-at "[/\n\t ]"))
+ ;; !pref.aichi.jp means that it's allowed.
+ (if (not (eq (following-char) ?!))
+ (setq exception nil)
+ (setq exception t)
+ (forward-char 1))
+ (setq domain (buffer-substring (point) (line-end-position)))
+ (cond
+ ((string-match "\\`\\*\\." domain)
+ (setq domain (substring domain 2))
+ (push (cons domain (1+ (length (split-string domain "[.]"))))
+ domains))
+ (exception
+ (push (cons domain t) domains))
+ (t
+ (push (cons domain nil) domains))))
+ (forward-line 1))
+ (setq url-domsuf-domains (nreverse domains)))))
+
+(defun url-domsuf-cookie-allowed-p (domain)
+ (unless url-domsuf-domains
+ (url-domsuf-parse-file))
+ (let* ((allowedp t)
+ (domain-bits (split-string domain "[.]"))
+ (length (length domain-bits))
+ (upper-domain (mapconcat 'identity (cdr domain-bits) "."))
+ entry modifier)
+ (dolist (elem url-domsuf-domains)
+ (setq entry (car elem)
+ modifier (cdr elem))
+ (cond
+ ;; "com"
+ ((and (null modifier)
+ (string= domain entry))
+ (setq allowedp nil))
+ ;; "!pref.hokkaido.jp"
+ ((and (eq modifier t)
+ (string= domain entry))
+ (setq allowedp t))
+ ;; "*.ar"
+ ((and (numberp modifier)
+ (= length modifier)
+ (string= entry upper-domain))
+ (setq allowedp nil))))
+ allowedp))
+
+;; Tests:
+
+;; (url-domsuf-cookie-allowed-p "com") => nil
+;; (url-domsuf-cookie-allowed-p "foo.bar.ar") => t
+;; (url-domsuf-cookie-allowed-p "bar.ar") => nil
+;; (url-domsuf-cookie-allowed-p "co.uk") => nil
+;; (url-domsuf-cookie-allowed-p "foo.bar.hokkaido.jo") => t
+;; (url-domsuf-cookie-allowed-p "bar.hokkaido.jp") => nil
+;; (url-domsuf-cookie-allowed-p "pref.hokkaido.jp") => t
+
+(provide 'url-domsuf)
+
+;;; url-domsuf.el ends here
(defvar url-handler-regexp
"\\`\\(https?\\|ftp\\|file\\|nfs\\)://"
- "*A regular expression for matching URLs handled by `file-name-handler-alist'.
+ "A regular expression for matching URLs handled by `file-name-handler-alist'.
Some valid URL protocols just do not make sense to visit interactively
\(about, data, info, irc, mailto, etc\). This regular expression
avoids conflicts with local files that look like URLs \(Gnus is
("facsimiletelephonenumber" . "Fax")
("postaladdress" . "Mailing Address")
("description" . "Notes"))
- "*An assoc list mapping LDAP attribute names to pretty descriptions of them.")
+ "An assoc list mapping LDAP attribute names to pretty descriptions of them.")
(defvar url-ldap-attribute-formatters
'(("mail" . (lambda (x) (format "<a href='mailto:%s'>%s</a>" x x)))
("namingcontexts" . url-ldap-dn-formatter)
("defaultnamingcontext" . url-ldap-dn-formatter)
("member" . url-ldap-dn-formatter))
- "*An assoc list mapping LDAP attribute names to pretty formatters for them.")
+ "An assoc list mapping LDAP attribute names to pretty formatters for them.")
(defsubst url-ldap-attribute-pretty-name (n)
(or (cdr-safe (assoc (downcase n) url-ldap-pretty-names)) n))
(defvar url-nfs-automounter-directory-spec
"file:/net/%h%f"
- "*How to invoke the NFS automounter. Certain % sequences are recognized.
+ "How to invoke the NFS automounter. Certain % sequences are recognized.
%h -- the hostname of the NFS server
%n -- the port # of the NFS server
;; Call the callback with an error message to ensure that the caller
;; is notified that the job has failed.
(with-current-buffer
- (if (bufferp (url-queue-buffer job))
+ (if (and (bufferp (url-queue-buffer job))
+ (buffer-live-p (url-queue-buffer job)))
;; Use the (partially filled) process buffer it it exists.
(url-queue-buffer job)
;; If not, just create a new buffer, which will probably be
" ")
(t (byte-to-string code))))
str (substring str (match-end 0)))))
- (setq tmp (concat tmp str))
- tmp))
+ (concat tmp str)))
(defconst url-unreserved-chars
'(
;; FIXME!! (RFC 2616 gives examples like `compress, gzip'.)
(defvar url-mime-encoding-string nil
- "*String to send in the Accept-encoding: field in HTTP requests.")
+ "String to send in the Accept-encoding: field in HTTP requests.")
;; Perhaps the first few should actually be given decreasing `q's and
;; the list should be trimmed significantly.
";q=0.5"))))
(defvar url-mime-charset-string nil
- "*String to send in the Accept-charset: field in HTTP requests.
+ "String to send in the Accept-charset: field in HTTP requests.
The MIME charset corresponding to the most preferred coding system is
given priority 1 and the rest are given priority 0.5.")
(defvar url-parse-syntax-table
(copy-syntax-table emacs-lisp-mode-syntax-table)
- "*A syntax table for parsing URLs.")
+ "A syntax table for parsing URLs.")
(modify-syntax-entry ?' "\"" url-parse-syntax-table)
(modify-syntax-entry ?` "\"" url-parse-syntax-table)
(modify-syntax-entry ?/ " " url-parse-syntax-table)
(defvar url-load-hook nil
- "*Hooks to be run after initializing the URL library.")
+ "Hooks to be run after initializing the URL library.")
;;; Make OS/2 happy - yeeks
;; (defvar tcp-binary-process-input-services nil
If SILENT, then don't message progress reports and the like.
If INHIBIT-COOKIES, cookies will neither be stored nor sent to
-the server."
+the server.
+If URL is a multibyte string, it will be encoded as utf-8 and
+URL-encoded before it's used."
;;; XXX: There is code in Emacs that does dynamic binding
;;; of the following variables around url-retrieve:
;;; url-standalone-mode, url-gateway-unplugged, w3-honor-stylesheets,
If SILENT, don't message progress reports and the like.
If INHIBIT-COOKIES, cookies will neither be stored nor sent to
-the server."
+the server.
+If URL is a multibyte string, it will be encoded as utf-8 and
+URL-encoded before it's used."
(url-do-setup)
(url-gc-dead-buffers)
(if (stringp url)
(set-text-properties 0 (length url) nil url))
+ (when (multibyte-string-p url)
+ (let ((url-unreserved-chars (append '(?: ?/) url-unreserved-chars)))
+ (setq url (url-hexify-string url))))
(if (not (vectorp url))
(setq url (url-generic-parse-url url)))
(if (not (functionp callback))
;;;###autoload
(defvar add-log-lisp-like-modes
'(emacs-lisp-mode lisp-mode scheme-mode dsssl-mode lisp-interaction-mode)
- "*Modes that look like Lisp to `add-log-current-defun'.")
+ "Modes that look like Lisp to `add-log-current-defun'.")
;;;###autoload
(defvar add-log-c-like-modes
'(c-mode c++-mode c++-c-mode objc-mode)
- "*Modes that look like C to `add-log-current-defun'.")
+ "Modes that look like C to `add-log-current-defun'.")
;;;###autoload
(defvar add-log-tex-like-modes
'(TeX-mode plain-TeX-mode LaTeX-mode tex-mode)
- "*Modes that look like TeX to `add-log-current-defun'.")
+ "Modes that look like TeX to `add-log-current-defun'.")
(declare-function c-cpp-define-name "cc-cmds" ())
(declare-function c-defun-name "cc-cmds" ())
(cvs-tree-use-jisx0208 'jisx0208)
((char-displayable-p ?━) 'unicode)
((char-displayable-p (make-char 'japanese-jisx0208 40 44)) 'jisx0208))
- "*Non-nil if we should use the graphical glyphs from `japanese-jisx0208'.
+ "Non-nil if we should use the graphical glyphs from `japanese-jisx0208'.
Otherwise, default to ASCII chars like +, - and |.")
(defconst cvs-tree-char-space
(condition-case-unless-debug nil (diff-refine-hunk) (error nil))))
(easy-mmode-define-navigation
- diff-file diff-file-header-re "file" diff-end-of-hunk)
+ diff-file diff-file-header-re "file" diff-end-of-file)
(defun diff-restrict-view (&optional arg)
"Restrict the view to the current hunk.
:group 'ediff-diff)
(ediff-defvar-local ediff-ignore-case nil
- "*If t, skip over difference regions that differ only in letter case.
+ "If t, skip over difference regions that differ only in letter case.
This variable can be set either in .emacs or toggled interactively.
Use `setq-default' if setting it in .emacs")
Use `setq-default' if setting it in .emacs")
(ediff-defvar-local ediff-ignore-similar-regions nil
- "*If t, skip over difference regions that differ only in the white space and line breaks.
+ "If t, skip over difference regions that differ only in the white space and line breaks.
This variable can be set either in .emacs or toggled interactively.
Use `setq-default' if setting it in .emacs")
(ediff-defvar-local ediff-auto-refine-limit 14000
- "*Auto-refine only the regions of this size \(in bytes\) or less.")
+ "Auto-refine only the regions of this size \(in bytes\) or less.")
;;; General
;;; Word functions used to refine the current diff
(defvar ediff-forward-word-function 'ediff-forward-word
- "*Function to call to move to the next word.
+ "Function to call to move to the next word.
Used for splitting difference regions into individual words.")
(make-variable-buffer-local 'ediff-forward-word-function)
;; \240 is Unicode symbol for nonbreakable whitespace
(defvar ediff-whitespace " \n\t\f\r\240"
- "*Characters constituting white space.
+ "Characters constituting white space.
These characters are ignored when differing regions are split into words.")
(make-variable-buffer-local 'ediff-whitespace)
(defvar ediff-word-1
(if (featurep 'xemacs) "a-zA-Z---_" "-[:word:]_")
- "*Characters that constitute words of type 1.
+ "Characters that constitute words of type 1.
More precisely, [ediff-word-1] is a regexp that matches type 1 words.
See `ediff-forward-word' for more details.")
(make-variable-buffer-local 'ediff-word-1)
(defvar ediff-word-2 "0-9.,"
- "*Characters that constitute words of type 2.
+ "Characters that constitute words of type 2.
More precisely, [ediff-word-2] is a regexp that matches type 2 words.
See `ediff-forward-word' for more details.")
(make-variable-buffer-local 'ediff-word-2)
(defvar ediff-word-3 "`'?!:;\"{}[]()"
- "*Characters that constitute words of type 3.
+ "Characters that constitute words of type 3.
More precisely, [ediff-word-3] is a regexp that matches type 3 words.
See `ediff-forward-word' for more details.")
(make-variable-buffer-local 'ediff-word-3)
(defvar ediff-word-4
(concat "^" ediff-word-1 ediff-word-2 ediff-word-3 ediff-whitespace)
- "*Characters that constitute words of type 4.
+ "Characters that constitute words of type 4.
More precisely, [ediff-word-4] is a regexp that matches type 4 words.
See `ediff-forward-word' for more details.")
(make-variable-buffer-local 'ediff-word-4)
(ediff-defvar-local ediff-start-narrowed t
"Non-nil means start narrowed, if doing ediff-windows-* or ediff-regions-*")
(ediff-defvar-local ediff-quit-widened t
- "*Non-nil means: when finished, Ediff widens buffers A/B.
+ "Non-nil means: when finished, Ediff widens buffers A/B.
Actually, Ediff restores the scope of visibility that existed at startup.")
(defcustom ediff-keep-variants t
(emerge-defvar-local emerge-old-keymap nil
"The original local keymap for the merge buffer.")
(emerge-defvar-local emerge-auto-advance nil
- "*If non-nil, emerge-select-A and emerge-select-B automatically advance to
+ "If non-nil, emerge-select-A and emerge-select-B automatically advance to
the next difference.")
(emerge-defvar-local emerge-skip-prefers nil
- "*If non-nil, differences for which there is a preference are automatically
+ "If non-nil, differences for which there is a preference are automatically
skipped.")
(emerge-defvar-local emerge-quit-hook nil
"Hooks to run in the merge buffer after the merge has been finished.
"21.1")
(defvar log-edit-changelog-full-paragraphs cvs-changelog-full-paragraphs
- "*If non-nil, include full ChangeLog paragraphs in the log.
+ "If non-nil, include full ChangeLog paragraphs in the log.
This may be set in the ``local variables'' section of a ChangeLog, to
indicate the policy for that ChangeLog.
;;;; START OF THINGS TO CHECK WHEN INSTALLING
(defvar cvs-program "cvs"
- "*Name or full path of the cvs executable.")
+ "Name or full path of the cvs executable.")
(defvar cvs-version
;; With the divergence of the CVSNT codebase and version numbers, this is
nil t)
(cons (string-to-number (match-string 1))
(string-to-number (match-string 2))))))
- "*Version of `cvs' installed on your system.
+ "Version of `cvs' installed on your system.
It must be in the (MAJOR . MINOR) format.")
;; FIXME: this is only used by cvs-mode-diff-backup
(defvar cvs-diff-program (or (and (boundp 'diff-command) diff-command) "diff")
- "*Name or full path of the best diff program you've got.
+ "Name or full path of the best diff program you've got.
NOTE: there are some nasty bugs in the context diff variants of some vendor
versions, such as the one in SunOS-4.")
"List of flags whose settings is shared among several commands.")
(defvar cvs-cvsroot nil
- "*Specifies where the (current) cvs master repository is.
+ "Specifies where the (current) cvs master repository is.
Overrides the environment variable $CVSROOT by sending \" -d dir\" to
all CVS commands. This switch is useful if you have multiple CVS
repositories. It can be set interactively with \\[cvs-change-cvsroot.]
;; Was '(expand-file-name " *cvs-tmp*" dir), but that causes them to
;; become non-hidden if uniquification is done `forward'.
" *cvs-tmp*"
- "*Name of the cvs temporary buffer.
+ "Name of the cvs temporary buffer.
Output from cvs is placed here for asynchronous commands.")
(defcustom cvs-idiff-imerge-handlers
(if oneline (line-end-position) (point-max))))
(file-error nil)))
-(defun cvs-string-prefix-p (str1 str2)
- "Tell whether STR1 is a prefix of STR2."
- (eq t (compare-strings str2 nil (length str1) str1 nil nil)))
+(define-obsolete-function-alias 'cvs-string-prefix-p 'string-prefix-p "24.2")
;;;;
;;;; file names
(case cvs-reuse-cvs-buffer
(always t)
(subdir
- (or (cvs-string-prefix-p default-directory dir)
- (cvs-string-prefix-p dir default-directory)))
+ (or (string-prefix-p default-directory dir)
+ (string-prefix-p dir default-directory)))
(samedir (string= default-directory dir)))
(return buffer)))))
;; we really have to create a new buffer:
(eq (cvs-fileinfo->type last-fi) 'DIRCHANGE)
(not (when first-dir (setq first-dir nil) t))
(or (eq rm-dirs 'all)
- (not (cvs-string-prefix-p
+ (not (string-prefix-p
(cvs-fileinfo->dir last-fi)
(cvs-fileinfo->dir fi)))
(and (eq type 'DIRCHANGE) (eq rm-dirs 'empty))
(setq buffer-file-name (expand-file-name buffer-file-name))
(let (ret)
(dolist (fi (or fis (list (cvs-create-fileinfo 'DIRCHANGE "" "." ""))))
- (when (cvs-string-prefix-p
+ (when (string-prefix-p
(expand-file-name (cvs-fileinfo->full-name fi) dir)
buffer-file-name)
(setq ret t)))
(defun cvs-dir-member-p (fileinfo dir)
"Return true if FILEINFO represents a file in directory DIR."
(and (not (eq (cvs-fileinfo->type fileinfo) 'DIRCHANGE))
- (cvs-string-prefix-p dir (cvs-fileinfo->dir fileinfo))))
+ (string-prefix-p dir (cvs-fileinfo->dir fileinfo))))
(defun cvs-execute-single-file (fi extractor program constant-args)
"Internal function for `cvs-execute-single-file-list'."
(set-buffer cvs-buf)
;; look for a corresponding pcl-cvs buffer
(when (and (eq major-mode 'cvs-mode)
- (cvs-string-prefix-p default-directory dir))
+ (string-prefix-p default-directory dir))
(let ((subdir (substring dir (length default-directory))))
(set-buffer buffer)
(set (make-local-variable 'cvs-buffer) cvs-buf)
(set-buffer cvs-buf)
;; look for a corresponding pcl-cvs buffer
(when (and (eq major-mode 'cvs-mode)
- (cvs-string-prefix-p default-directory file))
+ (string-prefix-p default-directory file))
(let* ((file (substring file (length default-directory)))
(fi (cvs-create-fileinfo
(if (string= "0" version)
(car rev-at-line) t 1)))))))
(defun vc-annotate-show-diff-revision-at-line-internal (filediff)
- (if (not (equal major-mode 'vc-annotate-mode))
+ (if (not (derived-mode-p 'vc-annotate-mode))
(message "Cannot be invoked outside of a vc annotate buffer")
(let* ((rev-at-line (vc-annotate-extract-revision-at-line))
- (prev-rev nil)
- (rev (car rev-at-line))
- (fname (cdr rev-at-line)))
+ (prev-rev nil)
+ (rev (car rev-at-line))
+ (fname (cdr rev-at-line)))
(if (not rev-at-line)
(message "Cannot extract revision number from the current line")
(setq prev-rev
(if filediff fname nil) rev))
(if (not prev-rev)
(message "Cannot diff from any revision prior to %s" rev)
- (save-window-excursion
- (vc-diff-internal
- nil
- ;; The value passed here should follow what
- ;; `vc-deduce-fileset' returns.
- (list vc-annotate-backend
- (if filediff
- (list fname)
- nil))
- prev-rev rev))
- (switch-to-buffer "*vc-diff*"))))))
+ (vc-diff-internal
+ t
+ ;; The value passed here should follow what
+ ;; `vc-deduce-fileset' returns.
+ (list vc-annotate-backend
+ (if filediff
+ (list fname)
+ nil))
+ prev-rev rev))))))
(defun vc-annotate-show-diff-revision-at-line ()
"Visit the diff of the revision at line from its previous revision."
;; are bzr-versioned, `vc-bzr` presently runs `bzr status` on the
;; symlink, thereby not detecting whether the actual contents
;; (that is, the target contents) are changed.
-;; See https://bugs.launchpad.net/vc-bzr/+bug/116607
;;; Properties of the backend
:group 'vc-bzr
:type 'string)
-(defcustom vc-bzr-sha1-program '("sha1sum")
- "Name of program to compute SHA1.
-It must be a string \(program name\) or list of strings \(name and its args\)."
- :type '(repeat string)
- :group 'vc-bzr)
-
-(define-obsolete-variable-alias 'sha1-program 'vc-bzr-sha1-program "24.1")
-
(defcustom vc-bzr-diff-switches nil
"String or list of strings specifying switches for bzr diff under VC.
If nil, use the value of `vc-diff-switches'. If t, use no switches."
(defun vc-bzr-sha1 (file)
(with-temp-buffer
(set-buffer-multibyte nil)
- (let ((prog vc-bzr-sha1-program)
- (args nil)
- process-file-side-effects)
- (when (consp prog)
- (setq args (cdr prog))
- (setq prog (car prog)))
- (apply 'process-file prog (file-relative-name file) t nil args)
- (buffer-substring (point-min) (+ (point-min) 40)))))
+ (insert-file-contents-literally file)
+ (sha1 (current-buffer))))
(defun vc-bzr-state-heuristic (file)
"Like `vc-bzr-state' but hopefully without running Bzr."
- ;; `bzr status' was excruciatingly slow with large histories and
- ;; pending merges, so try to avoid using it until they fix their
- ;; performance problems.
+ ;; `bzr status' could be slow with large histories and pending merges,
+ ;; so this tries to avoid calling it if possible. bzr status is
+ ;; faster now, so this is not as important as it was.
+ ;;
;; This function tries first to parse Bzr internal file
;; `checkout/dirstate', but it may fail if Bzr internal file format
;; has changed. As a safeguard, the `checkout/dirstate' file is
'up-to-date)
(t 'edited))
'unregistered))))
- ;; Either the dirstate file can't be read, or the sha1
- ;; executable is missing, or ...
- ;; In either case, recent versions of Bzr aren't that slow
- ;; any more.
+ ;; The dirstate file can't be read, or some other problem.
(error (vc-bzr-state file)))))))
`ignored', `kindchanged', `modified', `removed', `renamed', `unknown',
which directly correspond to `bzr status' output, or 'unchanged
for files whose copy in the working tree is identical to the one
-in the branch repository, or nil for files that are not
-registered with Bzr.
-
-If any error occurred in running `bzr status', then return nil."
+in the branch repository (or whose status not be determined)."
+;; Doc used to also say the following, but AFAICS, it has never been true.
+;;
+;; ", or nil for files that are not registered with Bzr.
+;; If any error occurred in running `bzr status', then return nil."
+;;
+;; Rather than returning nil in case of an error, it returns
+;; (unchanged . WARNING). FIXME unchanged is not the best status to
+;; return in case of error.
(with-temp-buffer
- (let ((ret (condition-case nil
- (vc-bzr-command "status" t 0 file)
- (file-error nil))) ; vc-bzr-program not found.
- (status 'unchanged))
- ;; the only secure status indication in `bzr status' output
- ;; is a couple of lines following the pattern::
- ;; | <status>:
- ;; | <file name>
- ;; if the file is up-to-date, we get no status report from `bzr',
- ;; so if the regexp search for the above pattern fails, we consider
- ;; the file to be up-to-date.
- (goto-char (point-min))
- (when (re-search-forward
- ;; bzr prints paths relative to the repository root.
- (concat "^\\(" vc-bzr-state-words "\\):[ \t\n]+"
- (regexp-quote (vc-bzr-file-name-relative file))
- ;; Bzr appends a '/' to directory names and
- ;; '*' to executable files
- (if (file-directory-p file) "/?" "\\*?")
- "[ \t\n]*$")
- nil t)
- (lexical-let ((statusword (match-string 1)))
- ;; Erase the status text that matched.
- (delete-region (match-beginning 0) (match-end 0))
- (setq status
- (intern (replace-regexp-in-string " " "" statusword)))))
- (when status
- (goto-char (point-min))
- (skip-chars-forward " \n\t") ;Throw away spaces.
- (cons status
- ;; "bzr" will output warnings and informational messages to
- ;; stderr; due to Emacs's `vc-do-command' (and, it seems,
- ;; `start-process' itself) limitations, we cannot catch stderr
- ;; and stdout into different buffers. So, if there's anything
- ;; left in the buffer after removing the above status
- ;; keywords, let us just presume that any other message from
- ;; "bzr" is a user warning, and display it.
- (unless (eobp) (buffer-substring (point) (point-max))))))))
+ ;; This is with-demoted-errors without the condition-case-unless-debug
+ ;; annoyance, which makes it fail during ert testing.
+ (let (err)
+ (condition-case err (vc-bzr-command "status" t 0 file)
+ (error (message "Error: %S" err) nil)))
+ (let ((status 'unchanged))
+ ;; the only secure status indication in `bzr status' output
+ ;; is a couple of lines following the pattern::
+ ;; | <status>:
+ ;; | <file name>
+ ;; if the file is up-to-date, we get no status report from `bzr',
+ ;; so if the regexp search for the above pattern fails, we consider
+ ;; the file to be up-to-date.
+ (goto-char (point-min))
+ (when (re-search-forward
+ ;; bzr prints paths relative to the repository root.
+ (concat "^\\(" vc-bzr-state-words "\\):[ \t\n]+"
+ (regexp-quote (vc-bzr-file-name-relative file))
+ ;; Bzr appends a '/' to directory names and
+ ;; '*' to executable files
+ (if (file-directory-p file) "/?" "\\*?")
+ "[ \t\n]*$")
+ nil t)
+ (lexical-let ((statusword (match-string 1)))
+ ;; Erase the status text that matched.
+ (delete-region (match-beginning 0) (match-end 0))
+ (setq status
+ (intern (replace-regexp-in-string " " "" statusword)))))
+ (when status
+ (goto-char (point-min))
+ (skip-chars-forward " \n\t") ;Throw away spaces.
+ (cons status
+ ;; "bzr" will output warnings and informational messages to
+ ;; stderr; due to Emacs's `vc-do-command' (and, it seems,
+ ;; `start-process' itself) limitations, we cannot catch stderr
+ ;; and stdout into different buffers. So, if there's anything
+ ;; left in the buffer after removing the above status
+ ;; keywords, let us just presume that any other message from
+ ;; "bzr" is a user warning, and display it.
+ (unless (eobp) (buffer-substring (point) (point-max))))))))
(defun vc-bzr-state (file)
(lexical-let ((result (vc-bzr-status file)))
;;; vc-dir.el --- Directory status display under VC
-;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2007-2012 Free Software Foundation, Inc.
;; Author: Dan Nicolaescu <dann@ics.uci.edu>
;; Keywords: vc tools
(let ((data (ewoc-data crt))
(dir (vc-dir-node-directory crt)))
(and (vc-dir-fileinfo->directory data)
- (vc-string-prefix-p dir argdir)
+ (string-prefix-p dir argdir)
(vc-dir-fileinfo->marked data)
(setq found data))))
found))
data)
(while
(and (setq crt (ewoc-next vc-ewoc crt))
- (vc-string-prefix-p dir
+ (string-prefix-p dir
(progn
(setq data (ewoc-data crt))
(vc-dir-node-directory crt))))
data)
(while
(and (setq crt (ewoc-next vc-ewoc crt))
- (vc-string-prefix-p dir (progn
+ (string-prefix-p dir (progn
(setq data (ewoc-data crt))
(vc-dir-node-directory crt))))
(unless (vc-dir-fileinfo->directory data)
children
dname)
;; Find DIR
- (while (and crt (not (vc-string-prefix-p
+ (while (and crt (not (string-prefix-p
dirname (vc-dir-node-directory crt))))
(setq crt (ewoc-next vc-ewoc crt)))
- (while (and crt (vc-string-prefix-p
+ (while (and crt (string-prefix-p
dirname
(setq dname (vc-dir-node-directory crt))))
(let ((data (ewoc-data crt)))
(if (not (derived-mode-p 'vc-dir-mode))
(push status-buf drop)
(let ((ddir default-directory))
- (when (vc-string-prefix-p ddir file)
+ (when (string-prefix-p ddir file)
(if (file-directory-p file)
(progn
(vc-dir-resync-directory-files file)
(kill-buffer (current-buffer)))))
(declare-function vc-dir-resynch-file "vc-dir" (&optional fname))
-(declare-function vc-string-prefix-p "vc" (prefix string))
(defun vc-resynch-buffers-in-directory (directory &optional keep noquery reset-vc-info)
"Resync all buffers that visit files in DIRECTORY."
(dolist (buffer (buffer-list))
(let ((fname (buffer-file-name buffer)))
- (when (and fname (vc-string-prefix-p directory fname))
+ (when (and fname (string-prefix-p directory fname))
(with-current-buffer buffer
(vc-resynch-buffer fname keep noquery reset-vc-info))))))
;; operation.
(if (not (vc-git-registered file))
'unregistered
- (vc-git--call nil "add" "--refresh" "--" (file-relative-name file))
(let ((diff (vc-git--run-command-string
- file "diff-index" "-z" "HEAD" "--")))
- (if (and diff (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0"
- diff))
- (vc-git--state-code (match-string 1 diff))
+ file "diff-index" "-p" "--raw" "-z" "HEAD" "--")))
+ (if (and diff
+ (string-match ":[0-7]\\{6\\} [0-7]\\{6\\} [0-9a-f]\\{40\\} [0-9a-f]\\{40\\} \\([ADMUT]\\)\0[^\0]+\0\\(.\\)?"
+ diff))
+ (let ((diff-letter (match-string 1 diff)))
+ (if (not (match-beginning 2))
+ ;; Empty diff: file contents is the same as the HEAD
+ ;; revision, but timestamps are different (eg, file
+ ;; was "touch"ed). Update timestamp in index:
+ (prog1 'up-to-date
+ (vc-git--call nil "add" "--refresh" "--"
+ (file-relative-name file)))
+ (vc-git--state-code diff-letter)))
(if (vc-git--empty-db-p) 'added 'up-to-date)))))
(defun vc-git-working-revision (file)
;; Copyright (C) 2006-2012 Free Software Foundation, Inc.
;; Author: Ivan Kanis
+;; Maintainer: FSF
;; Keywords: vc tools
;; Package: vc
;;; vc.el --- drive a version-control system from within Emacs
-;; Copyright (C) 1992-1998, 2000-2012 Free Software Foundation, Inc.
+;; Copyright (C) 1992-1998, 2000-2012 Free Software Foundation, Inc.
;; Author: FSF (see below for full credits)
;; Maintainer: Andre Spiegel <spiegel@gnu.org>
(if (file-directory-p file)
(dolist (buffer (buffer-list))
(let ((fname (buffer-file-name buffer)))
- (when (and fname (vc-string-prefix-p file fname))
+ (when (and fname (string-prefix-p file fname))
(push fname flist))))
(push file flist)))
,form
(lambda (arg)
(message "arg %s" arg)
(and (file-directory-p arg)
- (vc-string-prefix-p (expand-file-name arg) def-dir)))))))
+ (string-prefix-p (expand-file-name arg) def-dir)))))))
(let ((default-directory repo-dir))
(vc-call-backend bk 'create-repo))
(throw 'found bk))))
(setq first-revision
(vc-read-revision
(concat "Merge " file
- "from branch or revision "
+ " from branch or revision "
"(default news on current branch): ")
(list file)
backend))
\f
;; These things should probably be generally available
-
-(defun vc-string-prefix-p (prefix string)
- (let ((lpref (length prefix)))
- (and (>= (length string) lpref)
- (eq t (compare-strings prefix nil nil string nil lpref)))))
+(define-obsolete-function-alias 'vc-string-prefix-p 'string-prefix-p "24.2")
(defun vc-file-tree-walk (dirname func &rest args)
"Walk recursively through DIRNAME.
(or window-system
(display-color-p)
(overlay-put vcursor-overlay 'before-string vcursor-string))
- (overlay-put vcursor-overlay 'face 'vcursor))
+ (overlay-put vcursor-overlay 'face 'vcursor)
+ ;; 200 is purely an arbitrary "high" number. See bug#9663.
+ (overlay-put vcursor-overlay 'priority 200))
(or leave-w (vcursor-find-window nil t))
;; vcursor-window now contains the right buffer
(or (pos-visible-in-window-p pt vcursor-window)
- (set-window-point vcursor-window pt)))
- )
+ (set-window-point vcursor-window pt))))
(defun vcursor-insert (text)
"Insert TEXT, respecting `vcursor-interpret-input'."
;; We hope that this alias is easier for people to find.
(defalias 'version 'emacs-version)
+;; Set during dumping, this is a defvar so that it can be setq'd.
+(defvar emacs-bzr-version nil "\
+String giving the bzr revision number from which this Emacs was built.
+This is nil if Emacs was not built from a bzr checkout, or if we could
+not determine the revision.")
+
+(defun emacs-bzr-get-version (&optional dir) "\
+Try to return as a string the bzr revision number of the Emacs sources.
+Returns nil if the sources do not seem to be under bzr, or if we could
+not determine the revision. Note that this reports on the current state
+of the sources, which may not correspond to the running Emacs.
+
+Optional argument DIR is a directory to use instead of `source-directory'."
+ (or dir (setq dir source-directory))
+ (when (file-directory-p (setq dir (expand-file-name ".bzr/branch" dir)))
+ (let (file loc)
+ (cond ((file-readable-p
+ (setq file (expand-file-name "last-revision" dir)))
+ (with-temp-buffer
+ (insert-file-contents file)
+ (goto-char (point-max))
+ (if (looking-back "\n")
+ (delete-char -1))
+ (buffer-string)))
+ ;; OK, no last-revision. Is it a lightweight checkout?
+ ((file-readable-p
+ (setq file (expand-file-name "location" dir)))
+ ;; If the parent branch is local, try looking there for the revid.
+ (if (setq loc (with-temp-buffer
+ (insert-file-contents file)
+ (if (looking-at "file://\\(.*\\)")
+ (match-string 1))))
+ (emacs-bzr-get-version loc)))
+ ;; Could fall back to eg `bzr testament' at this point.
+ ))))
+
;; We put version info into the executable in the form that `ident' uses.
(or (eq system-type 'windows-nt)
(purecopy (concat "\n$Id: " (subst-char-in-string ?\n ?\s (emacs-version))
one line smaller. If optional argument HORIZONTAL is non-nil,
make selected window narrower by DELTA columns. If DELTA is
negative, enlarge selected window by -DELTA lines or columns.
+Also see the `window-min-height' variable.
Return nil."
(interactive "p")
(cond
(when point
(set-window-point-1 window point))))
+(defcustom switch-to-visible-buffer t
+ "If non-nil, allow switching to an already visible buffer.
+If this variable is non-nil, `switch-to-prev-buffer' and
+`switch-to-next-buffer' may switch to an already visible buffer
+provided the buffer was shown in the argument window before. If
+this variable is nil, `switch-to-prev-buffer' and
+`switch-to-next-buffer' always try to avoid switching to a buffer
+that is already visible in another window on the same frame."
+ :type 'boolean
+ :version "24.1"
+ :group 'windows)
+
(defun switch-to-prev-buffer (&optional window bury-or-kill)
"In WINDOW switch to previous buffer.
WINDOW must be a live window and defaults to the selected one.
shall not be switched to in future invocations of this command."
(interactive)
(let* ((window (window-normalize-window window t))
+ (frame (window-frame window))
(old-buffer (window-buffer window))
;; Save this since it's destroyed by `set-window-buffer'.
(next-buffers (window-next-buffers window))
(not (eq new-buffer old-buffer))
(or bury-or-kill
(not (memq new-buffer next-buffers))))
- ;; _DO_ show visible buffers as advertized in Elisp manual 28.14
- ;; on `switch-to-prev-buffer' & `switch-to-next-buffer'
- ;;(if (get-buffer-window new-buffer)
- ;; ;; Try to avoid showing a buffer visible in some other window.
- ;; (setq visible new-buffer)
+ (if (and (not switch-to-visible-buffer)
+ (get-buffer-window new-buffer frame))
+ ;; Try to avoid showing a buffer visible in some other window.
+ (setq visible new-buffer)
(set-window-buffer-start-and-point
window new-buffer (nth 1 entry) (nth 2 entry))
- (throw 'found t)))
+ (throw 'found t))))
;; Scan reverted buffer list of WINDOW's frame next, skipping
;; entries of next buffers. Note that when we bury or kill a
;; buffer we don't reverse the global buffer list to avoid showing
;; buffer list in order to make sure that switching to the
;; previous/next buffer traverse it in opposite directions.
(dolist (buffer (if bury-or-kill
- (buffer-list (window-frame window))
- (nreverse (buffer-list (window-frame window)))))
+ (buffer-list frame)
+ (nreverse (buffer-list frame))))
(when (and (buffer-live-p buffer)
(not (eq buffer old-buffer))
(not (eq (aref (buffer-name buffer) 0) ?\s))
(or bury-or-kill (not (memq buffer next-buffers))))
- (if (get-buffer-window buffer)
+ (if (get-buffer-window buffer frame)
;; Try to avoid showing a buffer visible in some other window.
- (setq visible buffer)
+ (unless visible
+ (setq visible buffer))
(setq new-buffer buffer)
(set-window-buffer-start-and-point window new-buffer)
(throw 'found t))))
WINDOW must be a live window and defaults to the selected one."
(interactive)
(let* ((window (window-normalize-window window t))
+ (frame (window-frame window))
(old-buffer (window-buffer window))
(next-buffers (window-next-buffers window))
new-buffer entry killed-buffers visible)
(throw 'found t)))
;; Scan the buffer list of WINDOW's frame next, skipping previous
;; buffers entries.
- (dolist (buffer (buffer-list (window-frame window)))
+ (dolist (buffer (buffer-list frame))
(when (and (buffer-live-p buffer) (not (eq buffer old-buffer))
(not (eq (aref (buffer-name buffer) 0) ?\s))
(not (assq buffer (window-prev-buffers window))))
- (if (get-buffer-window buffer)
+ (if (get-buffer-window buffer frame)
;; Try to avoid showing a buffer visible in some other window.
(setq visible buffer)
(setq new-buffer buffer)
(not (setq killed-buffers
(cons new-buffer killed-buffers))))
(not (eq new-buffer old-buffer)))
- (set-window-buffer-start-and-point
- window new-buffer (nth 1 entry) (nth 2 entry))
- (throw 'found t)))
+ (if (and (not switch-to-visible-buffer)
+ (get-buffer-window new-buffer frame))
+ ;; Try to avoid showing a buffer visible in some other window.
+ (unless visible
+ (setq visible new-buffer))
+ (set-window-buffer-start-and-point
+ window new-buffer (nth 1 entry) (nth 2 entry))
+ (throw 'found t))))
;; Show a buffer visible in another window.
(when visible
(scroll-bars . ,(window-scroll-bars window))
(vscroll . ,(window-vscroll window))
(dedicated . ,(window-dedicated-p window))
- (point . ,(if writable point (copy-marker point)))
+ (point . ,(if writable point
+ (copy-marker point
+ (buffer-local-value
+ 'window-point-insertion-type
+ buffer))))
(start . ,(if writable start (copy-marker start)))))))))
(tail
(when (memq type '(vc hc))
\(depending on scrolling direction) when no more scrolling possible.
When point is already on that position, then signal an error."
:type 'boolean
- :group 'scrolling
+ :group 'windows
:version "24.1")
(defun scroll-up-command (&optional arg)
;;; woman.el --- browse UN*X manual pages `wo (without) man'
-;; Copyright (C) 2000-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2000-2012 Free Software Foundation, Inc.
;; Author: Francis J. Wright <F.J.Wright@qmul.ac.uk>
;; Maintainer: FSF
(woman-process-buffer)
(goto-char (point-min)))))
-;; There is currently no `tar-mode-hook' so use ...
-(eval-after-load "tar-mode"
- '(progn
- (define-key tar-mode-map "w" 'woman-tar-extract-file)
- (define-key-after (lookup-key tar-mode-map [menu-bar immediate])
- [woman] '("Read Man Page (WoMan)" . woman-tar-extract-file) 'view)))
-
-
(defvar woman-last-file-name nil
"The full pathname of the last file formatted by WoMan.")
(lambda (symbol)
(and
(or (commandp symbol)
- (user-variable-p symbol))
+ (custom-variable-p symbol))
(not (get symbol 'apropos-inhibit))))))
;; Find documentation strings:
(let ((p apropos-accumulator)
(if (setq doc (documentation symbol t))
(substring doc 0 (string-match "\n" doc))
"(not documented)"))
- (if (user-variable-p symbol) ; 3. variable doc
+ (if (custom-variable-p symbol) ; 3. variable doc
(if (setq doc (documentation-property
symbol 'variable-documentation t))
(substring doc 0 (string-match "\n" doc))))))
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (C_SWITCH_X_SYSTEM): Remove.
+ (ALL_CFLAGS): Remove C_SWITCH_X_SYSTEM.
+
2011-10-13 Dmitry Antipov <dmantipov@yandex.ru>
* lwlib-Xaw.c (openFont, xaw_destroy_instance): Replace free with
;; coding: utf-8
;; End:
- Copyright (C) 1995-1999, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1995-1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
# Copyright (C) 1992, 1993 Lucid, Inc.
-# Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
+# Copyright (C) 1994, 2001-2012 Free Software Foundation, Inc.
#
# This file is part of the Lucid Widget Library.
#
VPATH=@srcdir@
@SET_MAKE@
C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
-C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@
## $(srcdir) is where the lwlib sources are.
## There are no generated lwlib files, hence no need for -I.
ALL_CFLAGS= $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
- $(C_SWITCH_X_SYSTEM) $(C_SWITCH_MACHINE) \
+ $(C_SWITCH_MACHINE) \
$(C_WARNINGS_SWITCH) $(PROFILING_CFLAGS) $(CFLAGS) \
-DHAVE_CONFIG_H -Demacs -I../src \
-I$(srcdir) -I$(srcdir)/../src -I../lib -I$(srcdir)/../lib
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * sedlibmk.inp, sed1v2.inp: GNUSTEP_CFLAGS replaces C_SWITCH_X_SYSTEM.
+
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * sed2v2.inp: Bump version to 24.1.50.
+
2012-02-04 Eli Zaretskii <eliz@gnu.org>
* sed3v2.inp (insrcdir): Use $(<F) rather than $<, as
;; coding: utf-8
;; End:
- Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1994-1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
# Configuration script for src/Makefile under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc.
+# Copyright (C) 1996-1997, 1999-2012 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
/^LIBOBJS *=/s/@[^@\n]*@//
/^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
/^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@//
-/^C_SWITCH_X_SYSTEM *=/s/@C_SWITCH_X_SYSTEM@//
+/^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@//
/^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
/^C_WARNINGS_SWITCH *=/s/@C_WARNINGS_SWITCH@//
/^PROFILING_CFLAGS *=/s/@PROFILING_CFLAGS@//
/^ *THEFILE=/s|$|\; cd ../src|
/^ echo.* buildobj.h/s|echo |djecho |
# Make the GCC command line fit one screen line
-/^[ ][ ]*\$(C_SWITCH_X_SYSTEM)/d
+/^[ ][ ]*\$(GNUSTEP_CFLAGS)/d
/^[ ][ ]*\$(GCONF_CFLAGS)/d
/^[ ][ ]*\$(LIBGNUTLS_CFLAGS)/d
s/\$(LIBOTF_CFLAGS) \$(M17N_FLT_CFLAGS) \$(DEPFLAGS) //
/^#undef PACKAGE_STRING/s/^.*$/#define PACKAGE_STRING ""/
/^#undef PACKAGE_TARNAME/s/^.*$/#define PACKAGE_TARNAME ""/
/^#undef PACKAGE_VERSION/s/^.*$/#define PACKAGE_VERSION ""/
-/^#undef VERSION/s/^.*$/#define VERSION "24.0.94"/
+/^#undef VERSION/s/^.*$/#define VERSION "24.1.50"/
/^#undef HAVE_DECL_GETENV/s/^.*$/#define HAVE_DECL_GETENV 1/
/^#undef SYS_SIGLIST_DECLARED/s/^.*$/#define SYS_SIGLIST_DECLARED 1/
/^#undef HAVE_DIRENT_H/s/^.*$/#define HAVE_DIRENT_H 1/
# Configuration script for lib/Makefile under DJGPP v2.x
# ----------------------------------------------------------------------
#
-# Copyright (C) 2011-2012 Free Software Foundation, Inc.
+# Copyright (C) 2011-2012 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
/^CYGWIN_OBJ *=/s/@[^@\n]*@//
/^C_SWITCH_MACHINE *=/s/@C_SWITCH_MACHINE@//
/^C_SWITCH_SYSTEM *=/s/@C_SWITCH_SYSTEM@//
-/^C_SWITCH_X_SYSTEM *=/s/@C_SWITCH_X_SYSTEM@//
+/^GNUSTEP_CFLAGS *=/s/@GNUSTEP_CFLAGS@//
/^C_SWITCH_X_SITE *=/s/@C_SWITCH_X_SITE@//
/^C_WARNINGS_SWITCH *=/s/@C_WARNINGS_SWITCH@//
/^DEFS *=/s/@[^@\n]*@/-DHAVE_CONFIG_H/
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * Cocoa/Emacs.base/Contents/Info.plist:
+ * Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings:
+ * GNUstep/Emacs.base/Resources/Info-gnustep.plist:
+ * GNUstep/Emacs.base/Resources/Emacs.desktop:
+ Bump version to 24.1.50.
+
2012-01-05 Glenn Morris <rgm@gnu.org>
* Cocoa/Emacs.base/Contents/Info.plist:
<key>CFBundleExecutable</key>
<string>Emacs</string>
<key>CFBundleGetInfoString</key>
- <string>Emacs 24.0.94 Copyright (C) 2012 Free Software Foundation, Inc.</string>
+ <string>Emacs 24.1.50 Copyright (C) 2012 Free Software Foundation, Inc.</string>
<key>CFBundleIconFile</key>
<string>Emacs.icns</string>
<key>CFBundleIdentifier</key>
<string>APPL</string>
<!-- This should be the emacs version number. -->
<key>CFBundleShortVersionString</key>
- <string>24.0.94</string>
+ <string>24.1.50</string>
<key>CFBundleSignature</key>
<string>EMAx</string>
<!-- This SHOULD be a build number. -->
/* Localized versions of Info.plist keys */
CFBundleName = "Emacs";
-CFBundleShortVersionString = "Version 24.0.94";
-CFBundleGetInfoString = "Emacs version 24.0.94, NS Windowing";
+CFBundleShortVersionString = "Version 24.1.50";
+CFBundleGetInfoString = "Emacs version 24.1.50, NS Windowing";
NSHumanReadableCopyright = "Copyright (C) 2012 Free Software Foundation, Inc.";
[Desktop Entry]
Encoding=UTF-8
Type=Application
-Version=24.0.94
+Version=24.1.50
Categories=GNUstep
Name=Emacs
Comment=GNU Emacs for NeXT/Open/GNUstep and OS X
ApplicationDescription = "GNU Emacs for GNUstep / OS X";
ApplicationIcon = emacs.tiff;
ApplicationName = Emacs;
- ApplicationRelease = "24.0.94";
+ ApplicationRelease = "24.1.50";
Authors = (
"Adrian Robert (GNUstep)",
"Christophe de Dinechin (MacOS X)",
);
Copyright = "Copyright (C) 2012 Free Software Foundation, Inc.";
CopyrightDescription = "Released under the GNU General Public License Version 3 or later";
- FullVersionID = "Emacs 24.0.94, NS Windowing";
+ FullVersionID = "Emacs 24.1.50, NS Windowing";
NSExecutable = Emacs;
NSIcon = emacs.tiff;
NSPrincipalClass = NSApplication;
+2012-04-14 Dani Moncayo <dmoncayo@gmail.com> (tiny change)
+
+ * makefile.w32-in: Fix typo (Bug#10261).
+
+2012-04-10 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (emacs, misc, lispref, lispintro): New targets,
+ each runs makeinfo in its own subdirectory of 'doc'.
+ (info-gmake): Depend on these new targets.
+
+2012-04-07 Glenn Morris <rgm@gnu.org>
+
+ * config.nt, makefile.w32-in, emacs.rc, emacsclient.rc:
+ Bump version to 24.1.50.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * configure.bat: Support building with libxml2.
+
+ * INSTALL:
+ * README.W32: Add information about libxml2.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in: Convert to Unix EOL format.
+ (all): Don't depend on stamp_BLD and on maybe-bootstrap.
+ (all-other-dirs-$(MAKETYPE)): Depend on maybe-bootstrap.
+ (bootstrap-gmake): Invoke the "clean" and build targets in 2
+ separate commands, so they run in that order even under "make -j".
+
+2012-03-29 Eli Zaretskii <eliz@gnu.org>
+
+ * config.nt: Discourage from defining HAVE_GETCWD.
+
+2012-03-25 Eli Zaretskii <eliz@gnu.org>
+
+ * makefile.w32-in (install-bin): Don't copy addpm.exe here. Use
+ $(DIRNAME)_same-dir.tst instead of same-dir.tst, to avoid stepping
+ on other (parallel) Make job's toes.
+ (install-other-dirs-nmake, install-other-dirs-gmake): Depend on `all'.
+ (install-shortcuts): Depend on $(INSTALL_DIR)/bin. Copy addpm.exe
+ here.
+ (maybe-copy-distfiles-CMD, maybe-copy-distfiles-SH, dist): Depend
+ on create-tmp-dist-dir.
+
+ * nmake.defs (DIRNAME): New variable.
+ (IFNOTSAMEDIR): Use $(DIRNAME)_same-dir.tst instead of
+ same-dir.tst.
+
+ * gmake.defs (DIRNAME): New variable.
+ (IFNOTSAMEDIR): Use $(DIRNAME)_same-dir.tst instead of
+ same-dir.tst, to avoid conflicts between several (parallel) Make
+ jobs.
+
2012-02-24 Eli Zaretskii <eliz@gnu.org>
Prevent endless re-spawning of cmdproxy.exe when some of its
2005-06-05 Eli Zaretskii <eliz@gnu.org>
* inc/sys/socket.h: Change arg 4 of sys_setsockopt to
- `const void *', for consistency with Posix.
+ `const void *', for consistency with POSIX.
2005-06-04 Eli Zaretskii <eliz@gnu.org>
You can get pre-built binaries (including any required DLL and the
header files) at http://sourceforge.net/projects/ezwinports/files/.
+* Optional libxml2 support
+
+ If configure.bat finds the libxml/HTMLparser.h file in the include path,
+ Emacs is built with libxml2 support by default; to avoid that you can
+ pass the argument --without-libxml2.
+
+ In order to support libxml2 at runtime, a libxml2-enabled Emacs must
+ be able to find the relevant DLLs during startup; failure to do so
+ is not an error, but libxml2 features won't be available to the
+ running session.
+
+ One place where you can get pre-built Windows binaries of libxml2
+ (including any required DLL and the header files) is here:
+
+ http://sourceforge.net/projects/ezwinports/files/
+
+ To compile Emacs with libxml2 from that site, you will need to pass
+ the "--cflags -I/path/to/include/libxml2" option to configure.bat,
+ because libxml2 header files are installed in the include/libxml2
+ subdirectory of the directory where you unzip the binary
+ distribution. Other binary distributions might use other
+ directories, although include/libxml2 is the canonical place where
+ libxml2 headers are installed on Posix platforms.
+
+ You will also need to install the libiconv "development" tarball,
+ because the libiconv headers need to be available to the compiler
+ when you compile with libxml2 support. A MinGW port of libiconv can
+ be found on the MinGW site:
+
+ http://sourceforge.net/projects/mingw/files/MinGW/Base/libiconv/
+
+ You need the libiconv-X.Y.Z-N-mingw32-dev.tar.lzma tarball from that
+ site.
+
* Experimental SVG support
SVG support is currently experimental, and not built by default.
You can get pre-built binaries (including any required DLL and the
header files) at http://sourceforge.net/projects/ezwinports/files/.
+* libxml2 support
+
+ In order to support libxml2 at runtime, a libxml2-enabled Emacs must
+ be able to find the relevant DLLs during startup; failure to do so
+ is not an error, but libxml2 features won't be available to the
+ running session.
+
+ You can get pre-built binaries (including any required DLL and the
+ header files) at http://sourceforge.net/projects/ezwinports/files/.
+
* Uninstalling Emacs
If you should need to uninstall Emacs, simply delete all the files
#undef HAVE_UTIMES
#undef HAVE_SETRLIMIT
#undef HAVE_SETPGID
+/* If you think about defining HAVE_GETCWD, don't: the alternative
+ getwd is redefined on w32.c, and does not really return the current
+ directory, to get the desired results elsewhere in Emacs */
#undef HAVE_GETCWD
#undef HAVE_SHUTDOWN
#undef HAVE_STRFTIME
#define PACKAGE "emacs"
/* Version number of package */
-#define VERSION "24.0.94"
+#define VERSION "24.1.50"
/* Define to `__inline__' or `__inline' if that's what the C compiler
calls it, or to nothing if 'inline' is not supported under any name. */
if "%1" == "--without-gif" goto withoutgif\r
if "%1" == "--without-tiff" goto withouttiff\r
if "%1" == "--without-gnutls" goto withoutgnutls\r
+if "%1" == "--without-libxml2" goto withoutlibxml2\r
if "%1" == "--without-xpm" goto withoutxpm\r
if "%1" == "--with-svg" goto withsvg\r
if "%1" == "--distfiles" goto distfiles\r
echo. --without-tiff do not use TIFF library even if it is installed\r
echo. --without-xpm do not use XPM library even if it is installed\r
echo. --without-gnutls do not use GnuTLS library even if it is installed\r
+echo. --without-libxml2 do not use libxml2 library even if it is installed\r
echo. --with-svg use the RSVG library (experimental)\r
echo. --distfiles path to files for make dist, e.g. libXpm.dll\r
if "%use_extensions%" == "0" goto end\r
\r
rem ----------------------------------------------------------------------\r
\r
+:withoutlibxml2\r
+set libxml2support=N\r
+set HAVE_LIBXML2=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+\r
:withouttiff\r
set tiffsupport=N\r
set HAVE_TIFF=\r
:tlsDone\r
rm -f junk.c junk.obj\r
\r
+if (%libxml2support%) == (N) goto xml2Done\r
+\r
+echo Checking for libxml2....\r
+echo #include "libxml/HTMLparser.h" >junk.c\r
+echo main(){} >>junk.c\r
+echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
+%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
+if exist junk.obj goto havelibxml2\r
+\r
+echo ...libxml/HTMLparser.h not found, building without libxml2 support\r
+echo The failed program was: >>config.log\r
+type junk.c >>config.log\r
+set HAVE_LIBXML2=\r
+goto xml2Done\r
+\r
+:havelibxml2\r
+echo ...libxml2 header available, building with libxml2 support\r
+set HAVE_LIBXML2=1\r
+\r
+:xml2Done\r
+rm -f junk.c junk.obj\r
+\r
if (%jpegsupport%) == (N) goto jpegDone\r
\r
echo Checking for jpeg-6b...\r
if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp\r
if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp\r
if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp\r
+if not "(%HAVE_LIBXML2%)" == "()" echo #define HAVE_LIBXML2 1 >>config.tmp\r
if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp\r
if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp\r
if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp\r
set distFilesOk=\r
set pngsupport=\r
set tlssupport=\r
+set libxml2support=\r
set jpegsupport=\r
set gifsupport=\r
set tiffsupport=\r
#endif
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 24,0,94,0
- PRODUCTVERSION 24,0,94,0
+ FILEVERSION 24,1,50,0
+ PRODUCTVERSION 24,1,50,0
FILEFLAGSMASK 0x3FL
#ifdef EMACSDEBUG
FILEFLAGS 0x1L
BEGIN
VALUE "CompanyName", "Free Software Foundation\0"
VALUE "FileDescription", "GNU Emacs: The extensible self-documenting text editor\0"
- VALUE "FileVersion", "24, 0, 94, 0\0"
+ VALUE "FileVersion", "24, 1, 50, 0\0"
VALUE "InternalName", "Emacs\0"
VALUE "LegalCopyright", "Copyright (C) 2001-2012\0"
VALUE "OriginalFilename", "emacs.exe"
VALUE "ProductName", "Emacs\0"
- VALUE "ProductVersion", "24, 0, 94, 0\0"
+ VALUE "ProductVersion", "24, 1, 50, 0\0"
VALUE "OLESelfRegister", "\0"
END
END
#endif
VS_VERSION_INFO VERSIONINFO
- FILEVERSION 24,0,94,0
- PRODUCTVERSION 24,0,94,0
+ FILEVERSION 24,1,50,0
+ PRODUCTVERSION 24,1,50,0
FILEFLAGSMASK 0x3FL
#ifdef EMACSDEBUG
FILEFLAGS 0x1L
BEGIN
VALUE "CompanyName", "Free Software Foundation\0"
VALUE "FileDescription", "GNU EmacsClient: Client for the extensible self-documenting text editor\0"
- VALUE "FileVersion", "24, 0, 94, 0\0"
+ VALUE "FileVersion", "24, 1, 50, 0\0"
VALUE "InternalName", "EmacsClient\0"
VALUE "LegalCopyright", "Copyright (C) 2001-2012\0"
VALUE "OriginalFilename", "emacsclientw.exe"
VALUE "ProductName", "EmacsClient\0"
- VALUE "ProductVersion", "24, 0, 94, 0\0"
+ VALUE "ProductVersion", "24, 1, 50, 0\0"
VALUE "OLESelfRegister", "\0"
END
END
DEL = rm
DEL_TREE = rm -r
+DIRNAME = $(notdir $(CURDIR))
+
ifdef USING_SH
-IFNOTSAMEDIR = if [ ! -s ../same-dir.tst ] ; then
+IFNOTSAMEDIR = if [ ! -s ../$(DIRNAME)_same-dir.tst ] ; then
FOREACH = for f in
FORVAR = $${f}
FORDO = ; do
else
-IFNOTSAMEDIR = if not exist ../same-dir.tst
+IFNOTSAMEDIR = if not exist ../$(DIRNAME)_same-dir.tst
FOREACH = for %%f in (
FORVAR = %%f
FORDO = ) do
-# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.\r
-# Copyright (C) 2000-2012 Free Software Foundation, Inc.\r
-#\r
-# Top level makefile for building GNU Emacs on Windows NT\r
-#\r
-# This file is part of GNU Emacs.\r
-\r
-# GNU Emacs is free software: you can redistribute it and/or modify\r
-# it under the terms of the GNU General Public License as published by\r
-# the Free Software Foundation, either version 3 of the License, or\r
-# (at your option) any later version.\r
-\r
-# GNU Emacs is distributed in the hope that it will be useful,\r
-# but WITHOUT ANY WARRANTY; without even the implied warranty of\r
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
-# GNU General Public License for more details.\r
-\r
-# You should have received a copy of the GNU General Public License\r
-# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.\r
-\r
-\r
-# FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out\r
-# (and remove or replace this comment).\r
-\r
-VERSION = 24.0.94\r
-\r
-TMP_DIST_DIR = emacs-$(VERSION)\r
-\r
-TRES = $(BLD)/emacs.res\r
-CLIENTRES = $(BLD)/emacsclient.res\r
-\r
-XMFLAGS =\r
-\r
-ALL = addpm ddeclient runemacs cmdproxy addsection preprep\r
-\r
-.PHONY: $(ALL)\r
-\r
-\r
-addpm: stamp_BLD $(BLD)/addpm.exe\r
-$(BLD)/addpm.exe: $(BLD)/addpm.$(O)\r
- $(LINK) $(LINK_OUT)$@ \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) \\r
- $(USER32) $(OLE32) $(UUID) $(SHELL32)\r
-\r
-ddeclient: stamp_BLD $(BLD)/ddeclient.exe\r
-$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)\r
- $(LINK) $(LINK_OUT)$@ \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)\r
-\r
-cmdproxy: stamp_BLD $(BLD)/cmdproxy.exe\r
-$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)\r
- $(LINK) $(LINK_OUT)$@ \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)\r
-\r
-addsection: stamp_BLD $(BLD)/addsection.exe\r
-$(BLD)/addsection.exe: $(BLD)/addsection.$(O)\r
- $(LINK) $(LINK_OUT)$@ \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)\r
-\r
-preprep: stamp_BLD $(BLD)/preprep.exe\r
-$(BLD)/preprep.exe: $(BLD)/preprep.$(O)\r
- $(LINK) $(LINK_OUT)$@ \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS)\r
-\r
-#\r
-# The resource file. NT 3.10 requires the use of cvtres; even though\r
-# it is not necessary on later versions, it is still ok to use it.\r
-#\r
-$(TRES): emacs.rc icons/emacs.ico emacs.manifest stamp_BLD\r
- $(RC) $(RC_OUT)$(TRES) emacs.rc\r
-\r
-$(CLIENTRES): emacsclient.rc stamp_BLD\r
- $(RC) $(RC_OUT)$(CLIENTRES) emacsclient.rc\r
-\r
-runemacs: stamp_BLD $(BLD)/runemacs.exe\r
-$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES)\r
- $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \\r
- $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)\r
-\r
-which-sh:\r
- @echo Using $(THE_SHELL) as shell.\r
-\r
-# These depend on stamp_BLD to make sure the $(BLD) directory is created\r
-# before the compilation begins, even if Make runs several commands\r
-# in parallel under "make -j".\r
-#\r
-$(BLD)/addpm.$(O) $(BLD)/ddeclient.$(O) $(BLD)/runemacs.$(O) $(BLD)/cmdproxy.$(O) $(BLD)/addsection.$(O) $(BLD)/preprep.$(O): stamp_BLD\r
-\r
-#\r
-# Build emacs\r
-#\r
-all: which-sh stamp_BLD $(ALL) $(CLIENTRES) maybe-bootstrap all-other-dirs-$(MAKETYPE)\r
-\r
-all-other-dirs-nmake: addsection\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) all\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) all\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) all\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) all\r
- cd ..\leim\r
- $(MAKE) $(MFLAGS) all\r
- cd ..\nt\r
-\r
-all-other-dirs-gmake: addsection\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp all\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim all\r
-\r
-recompile: recompile-$(MAKETYPE)\r
-\r
-recompile-nmake:\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) recompile\r
- cd ..\nt\r
-\r
-recompile-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp recompile\r
-\r
-#### Bootstrapping.\r
-\r
-### This is meant for Emacs maintainers only. It first cleans the\r
-### lisp subdirectory, removing all compiled Lisp files. Then a\r
-### special emacs executable is built from Lisp sources, which is then\r
-### used to compile Lisp files. The last step is a "normal" make.\r
-\r
-maybe-bootstrap: maybe-bootstrap-$(SHELLTYPE)\r
-\r
-# dummy target to force other targets to be evaluated.\r
-doit:\r
-\r
-maybe-bootstrap-CMD: doit\r
- @echo .\r
- @if not EXIST ..\lisp\abbrev.elc echo Essential Lisp files seem to be missing. You should either\r
- @if not EXIST ..\lisp\abbrev.elc echo do 'make bootstrap' or create 'lisp/abbrev.elc' somehow\r
- @echo .\r
- @if not EXIST ..\lisp\abbrev.elc exit -1\r
-\r
-maybe-bootstrap-SH: doit\r
- @if [ ! -f ../lisp/abbrev.elc ] ; then \\r
- echo; \\r
- echo "Essential Lisp files seem to be missing. You should either"; \\r
- echo "do \`make bootstrap' or create \`lisp/abbrev.elc' somehow."; \\r
- echo; \\r
- exit -1; \\r
- fi\r
-\r
-# Bootstrap depends on cmdproxy because some Lisp functions\r
-# loaded during bootstrap may need to run shell commands.\r
-bootstrap: addsection cmdproxy bootstrap-$(MAKETYPE)\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) all\r
-\r
-bootstrap-nmake: addsection cmdproxy\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) bootstrap-clean\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) clean make-docfile\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) clean all\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) bootstrap\r
- $(MAKE) $(MFLAGS) bootstrap-clean\r
- cd ..\nt\r
- $(CP) $(BLD)/cmdproxy.exe ../bin\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) DOC\r
- cd ..\nt\r
-\r
-bootstrap-gmake: addsection cmdproxy\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean make-docfile\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean all\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean\r
- $(CP) $(BLD)/cmdproxy.exe ../bin\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src DOC\r
-\r
-bootstrap-clean: bootstrap-clean-$(MAKETYPE)\r
-\r
-bootstrap-clean-nmake:\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) bootstrap-clean\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) bootstrap-clean\r
-\r
-bootstrap-clean-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean\r
-\r
-$(INSTALL_DIR):\r
- - mkdir "$(INSTALL_DIR)"\r
-\r
-$(INSTALL_DIR)/bin: $(INSTALL_DIR)\r
- - mkdir "$(INSTALL_DIR)/bin"\r
-\r
-#\r
-# Build and install emacs in INSTALL_DIR\r
-#\r
-.PHONY: install-bin install-shortcuts\r
-\r
-install: install-bin install-shortcuts\r
-\r
-install-bin: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)\r
- - $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin\r
- - $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin\r
- - $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin\r
- - $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin\r
- - $(CP) README.W32 $(INSTALL_DIR)\r
- - $(DEL) ../same-dir.tst\r
- - $(DEL) $(INSTALL_DIR)/same-dir.tst\r
- echo SameDirTest > "$(INSTALL_DIR)/same-dir.tst"\r
- - mkdir "$(INSTALL_DIR)/etc"\r
- - mkdir "$(INSTALL_DIR)/info"\r
- - mkdir "$(INSTALL_DIR)/lock"\r
- - mkdir "$(INSTALL_DIR)/data"\r
- - mkdir "$(INSTALL_DIR)/site-lisp"\r
- - mkdir "$(INSTALL_DIR)/etc/icons"\r
- $(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF)\r
- $(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF)\r
- - $(CP_DIR) icons $(INSTALL_DIR)/etc\r
- $(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF)\r
- $(IFNOTSAMEDIR) $(CP) ../COPYING $(INSTALL_DIR) $(ENDIF)\r
- - $(CP) ../COPYING $(INSTALL_DIR)/bin\r
- - $(DEL) ../same-dir.tst\r
- - $(DEL) $(INSTALL_DIR)/same-dir.tst\r
-\r
-install-other-dirs-nmake:\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) install\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) install\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) install\r
- cd ..\leim\r
- $(MAKE) $(MFLAGS) install\r
- cd ..\nt\r
-\r
-install-other-dirs-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src install\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src install\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install\r
-\r
-install-shortcuts:\r
- "$(INSTALL_DIR)/bin/addpm" -q\r
-\r
-maybe-copy-distfiles: maybe-copy-distfiles-$(SHELLTYPE)\r
-\r
-maybe-copy-distfiles-CMD: doit\r
- @if not $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE)=="" $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin\r
-\r
-maybe-copy-distfiles-SH: doit\r
- @if [ ! $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE)=="" ] ; then \\r
- $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin ; \\r
- fi\r
-\r
-create-tmp-dist-dir:\r
- mkdir "$(TMP_DIST_DIR)"\r
-# Also create bin directory for dist files.\r
- mkdir "$(TMP_DIST_DIR)/bin"\r
-\r
-dist: install-bin create-tmp-dist-dir maybe-copy-distfiles\r
- $(CP) "$(INSTALL_DIR)/BUGS" $(TMP_DIST_DIR)\r
- $(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR)\r
- $(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR)\r
- $(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/lisp" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/leim" $(TMP_DIST_DIR)\r
- $(CP_DIR) "$(INSTALL_DIR)/site-lisp" $(TMP_DIST_DIR)\r
- $(COMSPEC)$(ComSpec) /c $(ARGQUOTE)zipdist.bat $(VERSION)$(ARGQUOTE)\r
- $(DEL_TREE) $(TMP_DIST_DIR)\r
-\r
-force-info:\r
-# Note that doc/emacs/makefile knows how to\r
-# put the info files in $(infodir),\r
-# so we can do ok running make in the build dir.\r
-info: force-info info-$(MAKETYPE)\r
-\r
-info-nmake:\r
- cd ..\doc\emacs\r
- $(MAKE) $(MFLAGS) info\r
- cd ..\misc\r
- $(MAKE) $(MFLAGS) info\r
- cd ..\lispref\r
- $(MAKE) $(MFLAGS) info\r
- cd ..\lispintro\r
- $(MAKE) $(MFLAGS) info\r
- cd $(MAKEDIR)\r
-\r
-info-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs info\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc info\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref info\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro info\r
-#\r
-# Maintenance\r
-#\r
-clean: clean-other-dirs-$(MAKETYPE)\r
- - $(DEL) $(COMPILER_TEMP_FILES)\r
- - $(DEL_TREE) $(OBJDIR)\r
- - $(DEL) stamp_BLD\r
- - $(DEL) ../etc/DOC ../etc/DOC-X\r
-\r
-clean-other-dirs-nmake:\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\doc\lispintro\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\lispref\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\..\leim\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\doc\emacs\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\misc\r
- $(MAKE) $(MFLAGS) clean\r
- cd ..\..\nt\r
-\r
-clean-other-dirs-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref clean\r
-\r
-cleanall-other-dirs-nmake:\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) cleanall\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) cleanall\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) cleanall\r
- cd ..\nt\r
-\r
-cleanall-other-dirs-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib cleanall\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src cleanall\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src cleanall\r
-\r
-# We used to delete *~ here, but that might inadvertently remove\r
-# precious files if it happens to match their short 8+3 aliases.\r
-cleanall: clean cleanall-other-dirs-$(MAKETYPE)\r
- - $(DEL_TREE) obj\r
- - $(DEL_TREE) obj-spd\r
- - $(DEL_TREE) oo\r
- - $(DEL_TREE) oo-spd\r
-\r
-top-distclean:\r
- - $(DEL) $(COMPILER_TEMP_FILES)\r
- - $(DEL_TREE) obj\r
- - $(DEL_TREE) obj-spd\r
- - $(DEL_TREE) oo\r
- - $(DEL_TREE) oo-spd\r
- - $(DEL) stamp_BLD\r
- - $(DEL) ../etc/DOC ../etc/DOC-X\r
- - $(DEL) config.log Makefile\r
- - $(DEL) ../README.W32\r
-\r
-distclean: distclean-other-dirs-$(MAKETYPE) top-distclean\r
-\r
-distclean-other-dirs-nmake:\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\leim\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\doc\emacs\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\misc\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\lispintro\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\lispref\r
- $(MAKE) $(MFLAGS) distclean\r
- cd ..\..\nt\r
-\r
-distclean-other-dirs-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro distclean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref distclean\r
-\r
-maintainer-clean: maintainer-clean-other-dirs-$(MAKETYPE) top-distclean\r
-\r
-maintainer-clean-other-dirs-nmake:\r
- cd ..\lib\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\lib-src\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\src\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\lisp\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\leim\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\doc\emacs\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\misc\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\lispintro\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\lispref\r
- $(MAKE) $(MFLAGS) maintainer-clean\r
- cd ..\..\nt\r
-\r
-maintainer-clean-other-dirs-gmake:\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro maintainer-clean\r
- $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref maintainer-clean\r
-\r
-realclean: cleanall\r
- - $(DEL_TREE) ../bin\r
-\r
-TAGS: TAGS-$(MAKETYPE)\r
-\r
-frc:\r
-TAGS-gmake: frc\r
- ../lib-src/$(BLD)/etags $(CURDIR)/*.c\r
- $(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP\r
- $(MAKE) $(MFLAGS) -C ../lib-src TAGS\r
- $(MAKE) $(MFLAGS) -C ../lib TAGS\r
-\r
-TAGS-nmake:\r
- echo This target is not supported with NMake\r
-\r
-.PHONY: frc\r
+# -*- Makefile -*- for GNU Emacs on the Microsoft W32 API.
+# Copyright (C) 2000-2012 Free Software Foundation, Inc.
+#
+# Top level makefile for building GNU Emacs on Windows NT
+#
+# This file is part of GNU Emacs.
+
+# GNU Emacs is free software: you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation, either version 3 of the License, or
+# (at your option) any later version.
+
+# GNU Emacs is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
+
+
+# FIXME: This file uses DOS EOLs. Convert to Unix after 22.1 is out
+# (and remove or replace this comment).
+
+VERSION = 24.1.50
+
+TMP_DIST_DIR = emacs-$(VERSION)
+
+TRES = $(BLD)/emacs.res
+CLIENTRES = $(BLD)/emacsclient.res
+
+XMFLAGS =
+
+ALL = addpm ddeclient runemacs cmdproxy addsection preprep
+
+.PHONY: $(ALL)
+
+
+addpm: stamp_BLD $(BLD)/addpm.exe
+$(BLD)/addpm.exe: $(BLD)/addpm.$(O)
+ $(LINK) $(LINK_OUT)$@ \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) \
+ $(USER32) $(OLE32) $(UUID) $(SHELL32)
+
+ddeclient: stamp_BLD $(BLD)/ddeclient.exe
+$(BLD)/ddeclient.exe: $(BLD)/ddeclient.$(O)
+ $(LINK) $(LINK_OUT)$@ \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
+
+cmdproxy: stamp_BLD $(BLD)/cmdproxy.exe
+$(BLD)/cmdproxy.exe: $(BLD)/cmdproxy.$(O)
+ $(LINK) $(LINK_OUT)$@ \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
+
+addsection: stamp_BLD $(BLD)/addsection.exe
+$(BLD)/addsection.exe: $(BLD)/addsection.$(O)
+ $(LINK) $(LINK_OUT)$@ \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(USER32)
+
+preprep: stamp_BLD $(BLD)/preprep.exe
+$(BLD)/preprep.exe: $(BLD)/preprep.$(O)
+ $(LINK) $(LINK_OUT)$@ \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS)
+
+#
+# The resource file. NT 3.10 requires the use of cvtres; even though
+# it is not necessary on later versions, it is still ok to use it.
+#
+$(TRES): emacs.rc icons/emacs.ico emacs.manifest stamp_BLD
+ $(RC) $(RC_OUT)$(TRES) emacs.rc
+
+$(CLIENTRES): emacsclient.rc stamp_BLD
+ $(RC) $(RC_OUT)$(CLIENTRES) emacsclient.rc
+
+runemacs: stamp_BLD $(BLD)/runemacs.exe
+$(BLD)/runemacs.exe: $(BLD)/runemacs.$(O) $(TRES)
+ $(LINK) $(LINK_OUT)$@ $(SUBSYSTEM_WINDOWS) \
+ $(LINK_FLAGS) $(ALL_DEPS) $(BASE_LIBS) $(ADVAPI32) $(USER32)
+
+which-sh:
+ @echo Using $(THE_SHELL) as shell.
+
+# These depend on stamp_BLD to make sure the $(BLD) directory is created
+# before the compilation begins, even if Make runs several commands
+# in parallel under "make -j".
+#
+$(BLD)/addpm.$(O) $(BLD)/ddeclient.$(O) $(BLD)/runemacs.$(O) $(BLD)/cmdproxy.$(O) $(BLD)/addsection.$(O) $(BLD)/preprep.$(O): stamp_BLD
+
+#
+# Build emacs
+#
+all: which-sh $(ALL) $(CLIENTRES) all-other-dirs-$(MAKETYPE)
+
+all-other-dirs-$(MAKETYPE): maybe-bootstrap
+
+all-other-dirs-nmake: addsection
+ cd ..\lib
+ $(MAKE) $(MFLAGS) all
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) all
+ cd ..\src
+ $(MAKE) $(MFLAGS) all
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) all
+ cd ..\leim
+ $(MAKE) $(MFLAGS) all
+ cd ..\nt
+
+all-other-dirs-gmake: addsection
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim all
+
+recompile: recompile-$(MAKETYPE)
+
+recompile-nmake:
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) recompile
+ cd ..\nt
+
+recompile-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp recompile
+
+#### Bootstrapping.
+
+### This is meant for Emacs maintainers only. It first cleans the
+### lisp subdirectory, removing all compiled Lisp files. Then a
+### special emacs executable is built from Lisp sources, which is then
+### used to compile Lisp files. The last step is a "normal" make.
+
+maybe-bootstrap: maybe-bootstrap-$(SHELLTYPE)
+
+# dummy target to force other targets to be evaluated.
+doit:
+
+maybe-bootstrap-CMD: doit
+ @echo .
+ @if not EXIST ..\lisp\abbrev.elc echo Essential Lisp files seem to be missing. You should either
+ @if not EXIST ..\lisp\abbrev.elc echo do 'make bootstrap' or create 'lisp/abbrev.elc' somehow
+ @echo .
+ @if not EXIST ..\lisp\abbrev.elc exit -1
+
+maybe-bootstrap-SH: doit
+ @if [ ! -f ../lisp/abbrev.elc ] ; then \
+ echo; \
+ echo "Essential Lisp files seem to be missing. You should either"; \
+ echo "do \`make bootstrap' or create \`lisp/abbrev.elc' somehow."; \
+ echo; \
+ exit -1; \
+ fi
+
+# Bootstrap depends on cmdproxy because some Lisp functions
+# loaded during bootstrap may need to run shell commands.
+bootstrap: addsection cmdproxy bootstrap-$(MAKETYPE)
+ $(MAKE) $(MFLAGS) $(XMFLAGS) all
+
+bootstrap-nmake: addsection cmdproxy
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) bootstrap-clean
+ cd ..\src
+ $(MAKE) $(MFLAGS) clean
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) clean make-docfile
+ cd ..\lib
+ $(MAKE) $(MFLAGS) clean all
+ cd ..\src
+ $(MAKE) $(MFLAGS) bootstrap
+ $(MAKE) $(MFLAGS) bootstrap-clean
+ cd ..\nt
+ $(CP) $(BLD)/cmdproxy.exe ../bin
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) SHELL=$(SHELLTYPE) bootstrap
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) DOC
+ cd ..\nt
+
+bootstrap-gmake: addsection cmdproxy
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src make-docfile
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
+ $(CP) $(BLD)/cmdproxy.exe ../bin
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src DOC
+
+bootstrap-clean: bootstrap-clean-$(MAKETYPE)
+
+bootstrap-clean-nmake:
+ cd ..\src
+ $(MAKE) $(MFLAGS) bootstrap-clean
+ cd ..\lib
+ $(MAKE) $(MFLAGS) clean
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) bootstrap-clean
+
+bootstrap-clean-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src bootstrap-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp bootstrap-clean
+
+$(INSTALL_DIR):
+ - mkdir "$(INSTALL_DIR)"
+
+$(INSTALL_DIR)/bin: $(INSTALL_DIR)
+ - mkdir "$(INSTALL_DIR)/bin"
+
+#
+# Build and install emacs in INSTALL_DIR
+#
+.PHONY: install-bin install-shortcuts
+
+install: install-bin install-shortcuts
+
+install-bin: all $(INSTALL_DIR)/bin install-other-dirs-$(MAKETYPE)
+ - $(CP) $(BLD)/ddeclient.exe $(INSTALL_DIR)/bin
+ - $(CP) $(BLD)/cmdproxy.exe $(INSTALL_DIR)/bin
+ - $(CP) $(BLD)/runemacs.exe $(INSTALL_DIR)/bin
+ - $(CP) README.W32 $(INSTALL_DIR)
+ - $(DEL) ../$(DIRNAME)_same-dir.tst
+ - $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
+ echo SameDirTest > "$(INSTALL_DIR)/$(DIRNAME)_same-dir.tst"
+ - mkdir "$(INSTALL_DIR)/etc"
+ - mkdir "$(INSTALL_DIR)/info"
+ - mkdir "$(INSTALL_DIR)/lock"
+ - mkdir "$(INSTALL_DIR)/data"
+ - mkdir "$(INSTALL_DIR)/site-lisp"
+ - mkdir "$(INSTALL_DIR)/etc/icons"
+ $(IFNOTSAMEDIR) $(CP) ../site-lisp/subdirs.el $(INSTALL_DIR)/site-lisp $(ENDIF)
+ $(IFNOTSAMEDIR) $(CP_DIR) ../etc $(INSTALL_DIR) $(ENDIF)
+ - $(CP_DIR) icons $(INSTALL_DIR)/etc
+ $(IFNOTSAMEDIR) $(CP_DIR) ../info $(INSTALL_DIR) $(ENDIF)
+ $(IFNOTSAMEDIR) $(CP) ../COPYING $(INSTALL_DIR) $(ENDIF)
+ - $(CP) ../COPYING $(INSTALL_DIR)/bin
+ - $(DEL) ../$(DIRNAME)_same-dir.tst
+ - $(DEL) $(INSTALL_DIR)/$(DIRNAME)_same-dir.tst
+
+install-other-dirs-nmake: all
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) install
+ cd ..\src
+ $(MAKE) $(MFLAGS) install
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) install
+ cd ..\leim
+ $(MAKE) $(MFLAGS) install
+ cd ..\nt
+
+install-other-dirs-gmake: all
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src install
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src install
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp install
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim install
+
+install-shortcuts: $(INSTALL_DIR)/bin
+ - $(CP) $(BLD)/addpm.exe $(INSTALL_DIR)/bin
+ "$(INSTALL_DIR)/bin/addpm" -q
+
+maybe-copy-distfiles: maybe-copy-distfiles-$(SHELLTYPE)
+
+maybe-copy-distfiles-CMD: create-tmp-dist-dir doit
+ @if not $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin
+
+maybe-copy-distfiles-SH: create-tmp-dist-dir doit
+ @if [ ! $(ARGQUOTE)$(DIST_FILES)$(ARGQUOTE) == "" ] ; then \
+ $(CP_DIR) $(DIST_FILES) $(TMP_DIST_DIR)/bin ; \
+ fi
+
+create-tmp-dist-dir:
+ mkdir "$(TMP_DIST_DIR)"
+# Also create bin directory for dist files.
+ mkdir "$(TMP_DIST_DIR)/bin"
+
+dist: install-bin maybe-copy-distfiles
+ $(CP) "$(INSTALL_DIR)/BUGS" $(TMP_DIST_DIR)
+ $(CP) "$(INSTALL_DIR)/COPYING" $(TMP_DIST_DIR)
+ $(CP) "$(INSTALL_DIR)/README" $(TMP_DIST_DIR)
+ $(CP) "$(INSTALL_DIR)/README.W32" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/bin" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/etc" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/info" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/lisp" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/leim" $(TMP_DIST_DIR)
+ $(CP_DIR) "$(INSTALL_DIR)/site-lisp" $(TMP_DIST_DIR)
+ $(COMSPEC)$(ComSpec) /c $(ARGQUOTE)zipdist.bat $(VERSION)$(ARGQUOTE)
+ $(DEL_TREE) $(TMP_DIST_DIR)
+
+force-info:
+# Note that doc/emacs/makefile knows how to
+# put the info files in $(infodir),
+# so we can do ok running make in the build dir.
+info: force-info info-$(MAKETYPE)
+
+info-nmake:
+ cd ..\doc\emacs
+ $(MAKE) $(MFLAGS) info
+ cd ..\misc
+ $(MAKE) $(MFLAGS) info
+ cd ..\lispref
+ $(MAKE) $(MFLAGS) info
+ cd ..\lispintro
+ $(MAKE) $(MFLAGS) info
+ cd $(MAKEDIR)
+
+info-gmake: emacs misc lispref lispintro
+
+emacs misc lispref lispintro:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/$@ info
+
+#
+# Maintenance
+#
+clean: clean-other-dirs-$(MAKETYPE)
+ - $(DEL) $(COMPILER_TEMP_FILES)
+ - $(DEL_TREE) $(OBJDIR)
+ - $(DEL) stamp_BLD
+ - $(DEL) ../etc/DOC ../etc/DOC-X
+
+clean-other-dirs-nmake:
+ cd ..\lib
+ $(MAKE) $(MFLAGS) clean
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) clean
+ cd ..\src
+ $(MAKE) $(MFLAGS) clean
+ cd ..\doc\lispintro
+ $(MAKE) $(MFLAGS) clean
+ cd ..\lispref
+ $(MAKE) $(MFLAGS) clean
+ cd ..\..\leim
+ $(MAKE) $(MFLAGS) clean
+ cd ..\doc\emacs
+ $(MAKE) $(MFLAGS) clean
+ cd ..\misc
+ $(MAKE) $(MFLAGS) clean
+ cd ..\..\nt
+
+clean-other-dirs-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref clean
+
+cleanall-other-dirs-nmake:
+ cd ..\lib
+ $(MAKE) $(MFLAGS) cleanall
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) cleanall
+ cd ..\src
+ $(MAKE) $(MFLAGS) cleanall
+ cd ..\nt
+
+cleanall-other-dirs-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib cleanall
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src cleanall
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src cleanall
+
+# We used to delete *~ here, but that might inadvertently remove
+# precious files if it happens to match their short 8+3 aliases.
+cleanall: clean cleanall-other-dirs-$(MAKETYPE)
+ - $(DEL_TREE) obj
+ - $(DEL_TREE) obj-spd
+ - $(DEL_TREE) oo
+ - $(DEL_TREE) oo-spd
+
+top-distclean:
+ - $(DEL) $(COMPILER_TEMP_FILES)
+ - $(DEL_TREE) obj
+ - $(DEL_TREE) obj-spd
+ - $(DEL_TREE) oo
+ - $(DEL_TREE) oo-spd
+ - $(DEL) stamp_BLD
+ - $(DEL) ../etc/DOC ../etc/DOC-X
+ - $(DEL) config.log Makefile
+ - $(DEL) ../README.W32
+
+distclean: distclean-other-dirs-$(MAKETYPE) top-distclean
+
+distclean-other-dirs-nmake:
+ cd ..\lib
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\src
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\leim
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\doc\emacs
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\misc
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\lispintro
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\lispref
+ $(MAKE) $(MFLAGS) distclean
+ cd ..\..\nt
+
+distclean-other-dirs-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro distclean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref distclean
+
+maintainer-clean: maintainer-clean-other-dirs-$(MAKETYPE) top-distclean
+
+maintainer-clean-other-dirs-nmake:
+ cd ..\lib
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\lib-src
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\src
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\lisp
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\leim
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\doc\emacs
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\misc
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\lispintro
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\lispref
+ $(MAKE) $(MFLAGS) maintainer-clean
+ cd ..\..\nt
+
+maintainer-clean-other-dirs-gmake:
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lib-src maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../src maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../lisp maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../leim maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/emacs maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/misc maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispintro maintainer-clean
+ $(MAKE) $(MFLAGS) $(XMFLAGS) -C ../doc/lispref maintainer-clean
+
+realclean: cleanall
+ - $(DEL_TREE) ../bin
+
+TAGS: TAGS-$(MAKETYPE)
+
+frc:
+TAGS-gmake: frc
+ ../lib-src/$(BLD)/etags $(CURDIR)/*.c
+ $(MAKE) $(MFLAGS) -C ../src TAGS TAGS-LISP
+ $(MAKE) $(MFLAGS) -C ../lib-src TAGS
+ $(MAKE) $(MFLAGS) -C ../lib TAGS
+
+TAGS-nmake:
+ echo This target is not supported with NMake
+
+.PHONY: frc
\r
CURDIR = $(MAKEDIR:\=/)\r
THISDIR = $(MAKEDIR)\r
+DIRNAME =\r
\r
ALL_DEPS = $**\r
\r
\r
CP = cp -f\r
CP_DIR = cp -rf\r
-IFNOTSAMEDIR = if not exist ..\same-dir.tst\r
+IFNOTSAMEDIR = if not exist ..\$(DIRNAME)_same-dir.tst\r
ENDIF =\r
FOREACH = for %%f in (\r
FORVAR = %%f\r
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (C_SWITCH_X_SYSTEM): Remove.
+ (ALL_CFLAGS): Remove C_SWITCH_X_SYSTEM.
+
2011-04-16 Paul Eggert <eggert@cs.ucla.edu>
Static checks with GCC 4.6.0 and non-default toolkits.
;; coding: utf-8
;; End:
- Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc.
+ Copyright (C) 1993-1999, 2001-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
## without express or implied warranty.
-## Copyright (C) 2001-2012 Free Software Foundation, Inc.
+## Copyright (C) 2001-2012 Free Software Foundation, Inc.
## This program is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
srcdir=@srcdir@
VPATH=@srcdir@
C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
-C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
C_SWITCH_MACHINE=@C_SWITCH_MACHINE@
C_WARNINGS_SWITCH = @C_WARNINGS_SWITCH@
all:: libXMenu11.a
ALL_CFLAGS=$(C_SWITCH_SYSTEM) $(C_SWITCH_MACHINE) \
- $(C_SWITCH_X_SITE) $(C_SWITCH_X_SYSTEM) \
+ $(C_SWITCH_X_SITE) \
${C_WARNINGS_SWITCH} ${PROFILING_CFLAGS} \
$(CPPFLAGS) $(CFLAGS) -DEMACS_BITMAP_FILES \
-I../src -I${srcdir} -I${srcdir}/../src
+2012-04-17 Glenn Morris <rgm@gnu.org>
+
+ * dired.c (Fsystem_users): Doc fix.
+
+2012-04-17 Dmitry Antipov <dmantipov@yandex.ru>
+
+ * dired.c (Fsystem_users, Fsystem_groups): New functions. (Bug#7900)
+ (syms_of_dired): Add them.
+
+2012-04-16 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix minor alloc.c problems found by static checking.
+ * alloc.c (_malloc_internal, _free_internal) [!DOUG_LEA_MALLOC]:
+ New extern decls, to avoid calling undeclared functions.
+ (dont_register_blocks): Define if ((!SYSTEM_MALLOC && !SYNC_INPUT)
+ && GC_MALLOC_CHECK), not if ((GC_MARK_STACK || defined
+ GC_MALLOC_CHECK) && GC_MALLOC_CHECK), to match when it's used.
+ (NEED_MEM_INSERT): New macro.
+ (mem_insert, mem_insert_fixup) [!NEED_MEM_INSERT]: Remove; unused.
+ Remove one incorrect comment and fix another.
+
+ Fix minor ralloc.c problems found by static checking.
+ See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
+ * ralloc.c (ALIGNED, ROUND_TO_PAGE, HEAP_PTR_SIZE)
+ (r_alloc_size_in_use, r_alloc_freeze, r_alloc_thaw): Remove; unused.
+ (r_alloc_sbrk): Now static.
+
+ Improve ralloc.c interface checking.
+ See http://lists.gnu.org/archive/html/emacs-devel/2011-12/msg00720.html
+ * buffer.c (ralloc_reset_variable, r_alloc, r_re_alloc)
+ (r_alloc_free) [REL_ALLOC]: Move decls from here ...
+ * lisp.h (r_alloc, r_alloc_free, r_re_alloc, r_alloc_reset_variable)
+ [REL_ALLOC]: ... to here, to check interface.
+ * m/ia64.h (r_alloc, r_alloc_free) [REL_ALLOC && !_MALLOC_INTERNAL]:
+ Remove decls. This fixes an "It stinks!".
+
+ * alloc.c (which_symbols): Fix alignment issue / type clash.
+
+2012-04-15 Andreas Schwab <schwab@linux-m68k.org>
+
+ * lisp.h (struct Lisp_Symbol): Remove explicit padding.
+ (struct Lisp_Misc_Any): Likewise.
+ (struct Lisp_Free): Likewise.
+ * alloc.c (union aligned_Lisp_Symbol): Define.
+ (SYMBOL_BLOCK_SIZE, struct symbol_block): Use union
+ aligned_Lisp_Symbol instead of struct Lisp_Symbol.
+ (union aligned_Lisp_Misc): Define.
+ (MARKER_BLOCK_SIZE, struct marker_block): Use union
+ aligned_Lisp_Misc instead of union Lisp_Misc.
+ (Fmake_symbol, allocate_misc, gc_sweep): Adjust
+
+2012-04-14 Paul Eggert <eggert@cs.ucla.edu>
+
+ Make GC_MAKE_GCPROS_NOOPS the default (Bug#9926).
+ * lisp.h (GC_MARK_STACK): Default to GC_MAKE_GCPROS_NOOPS.
+ * s/cygwin.h, s/darwin.h, s/freebsd.h, s/gnu.h, s/irix6-5.h, s/msdos.h:
+ * s/netbsd.h, s/sol2-6.h:
+ Remove definition of GC_MARK_STACK, since the default now works.
+ * s/aix4-2.h, s/hpux10-20.h, s/unixware.h:
+ Define GC_MARK_STACK to GC_USE_GCPROS_AS_BEFORE, since that's
+ no longer the default.
+ * s/gnu-linux.h (GC_MARK_STACK): Adjust to change in default.
+
+2012-04-14 Atsuo Ohki <ohki@gssm.otsuka.tsukuba.ac.jp> (tiny change)
+
+ * lread.c (lisp_file_lexically_bound_p):
+ Fix hang at ";-*-\n" (bug#11238).
+
+2012-04-14 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (find_last_unchanged_at_beg_row): Don't consider a row
+ "unchanged" if its end.pos is beyond ZV. (Bug#11199)
+
+2012-04-14 Jan Djärv <jan.h.d@swipnet.se>
+
+ * nsterm.m (constrainFrameRect): Always constrain when there is only
+ one screen (Bug#10962).
+
+2012-04-13 Ken Brown <kbrown@cornell.edu>
+
+ * s/cygwin.h (PTY_OPEN): Don't try to close a bogus file descriptor.
+
+2012-04-13 Reuben Thomas <rrt@sc3d.org>
+
+ * indent.c (Fmove_to_column): Change interactive spec (Bug#739).
+
+2012-04-11 Daniel Colascione <dancol@dancol.org>
+
+ * s/cygwin.h: The vfork the #define in cygwin.h was protecting
+ against is gone. It's better to use vfork now so that when Cygwin
+ gains a new, working vfork, we use it automatically (bug#10398).
+
+2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * window.c (save_window_save): Obey window-point-insertion-type.
+
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in (GNUSTEP_CFLAGS): Rename from C_SWITCH_X_SYSTEM.
+
+2012-04-11 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * alloc.c (lisp_align_malloc): Remove unneeded prototype.
+
+2012-04-10 Jason S. Cornez <jcornez@ravenpack.com> (tiny change)
+
+ * keyboard.c: Override inhibit-quit after the third C-g (bug#6585).
+ (force_quit_count): New var.
+ (handle_interrupt): Use it.
+
+2012-04-10 Juanma Barranquero <lekktu@gmail.com>
+
+ * w32.c (w32_delayed_load): Record the full path of the library
+ being loaded (bug#10424).
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * doc.c (Fsnarf_documentation): Check variables, functions are bound,
+ not just in the obarray, before snarfing them. (Bug#11036)
+
+ * Makefile.in ($(leimdir)/leim-list.el):
+ Pass EMACS rather than BUILT_EMACS.
+
+2012-04-09 Teodor Zlatanov <tzz@lifelogs.com>
+
+ * process.c (make_process):
+ * process.h: Add integer `gnutls_handshakes_tried' member to
+ process struct.
+
+ * gnutls.h: Add `GNUTLS_EMACS_HANDSHAKES_LIMIT' upper limit.
+ Add convenience `GNUTLS_LOG2i' macro.
+
+ * gnutls.c (gnutls_log_function2i): Convenience log function.
+ (emacs_gnutls_read): Use new log functions,
+ `gnutls_handshakes_tried' process member, and
+ `GNUTLS_EMACS_HANDSHAKES_LIMIT' to limit the number of handshake
+ attempts per process (connection).
+
+2012-04-09 Chong Yidong <cyd@gnu.org>
+
+ * eval.c (Fuser_variable_p, user_variable_p_eh)
+ (lisp_indirect_variable): Functions deleted.
+ (Fdefvar): Caller changed.
+
+ * callint.c (Finteractive, Fcall_interactively):
+ * minibuf.c (Fread_variable): Callers changed.
+
+2012-04-09 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (set_cursor_from_row): If the display string appears in
+ the buffer at position that is closer to point than the position
+ after the display string, display the cursor on the first glyph of
+ the display string. Fixes cursor display when a 'display' text
+ property immediately follows invisible text. (Bug#11094)
+
+2012-04-09 Paul Eggert <eggert@cs.ucla.edu>
+
+ composite.c: use 'double' consistently
+ * composite.c (get_composition_id): Use 'double' consistently
+ instead of converting 'float' to 'double' and vice versa; this is
+ easier to understand and avoids a GCC warning.
+
+2012-04-09 Glenn Morris <rgm@gnu.org>
+
+ * Makefile.in: Generate leim-list with bootstrap-emacs, in
+ preparation for dumping it with emacs. (Bug#4789)
+ (leimdir): New variable.
+ ($(leimdir)/leim-list.el): New rule.
+ (emacs$(EXEEXT)): Depend on leim-list.el.
+
+ * buffer.c (Qucs_set_table_for_input): Remove. (Bug#9821)
+ (Fget_buffer_create): Don't call Qucs_set_table_for_input.
+ (init_buffer_once, syms_of_buffer): Remove Qucs_set_table_for_input.
+
+2012-04-08 Andreas Schwab <schwab@linux-m68k.org>
+
+ * lisp.h (struct Lisp_Symbol): Add explicit padding to ensure
+ proper alignment.
+
+2012-04-07 Juanma Barranquero <lekktu@gmail.com>
+
+ * xml.c (init_libxml2_functions) [WINDOWSNT]:
+ Remove unused local variable.
+
+2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Avoid unnecessary pointer scanning in garbage collection (Bug#10780).
+ * alloc.c (POINTERS_MIGHT_HIDE_IN_OBJECTS): New macro.
+ (mark_memory): Mark Lisp_Objects only if pointers might hide in
+ objects, as mark_maybe_pointer will catch them otherwise.
+ (GC_LISP_OBJECT_ALIGNMENT): Remove; no longer needed.
+ * s/gnu-linux.h (GC_LISP_OBJECT_ALIGNMENT) [__mc68000__]: Likewise.
+
+2012-04-07 Paul Eggert <eggert@cs.ucla.edu>
+
+ Fix typo that broke non-Windows builds.
+ * xml.c (libxml2_loaded_p) [!!WINDOWSNT]: 'inine' -> 'inline'.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ Support building on MS-Windows with libxml2.
+
+ * makefile.w32-in (OBJ2): Add xml.$(O).
+ (GLOBAL_SOURCES): Add xml.c.
+ ($(BLD)/xml.$(O)): New dependency list.
+
+ * xml.c (DEF_XML2_FN, LOAD_XML2_FN) [WINDOWSNT]: New macros.
+ (fn_htmlReadMemory, fn_xmlReadMemory, fn_xmlDocGetRootElement)
+ (fn_xmlFreeDoc, fn_xmlCleanupParser, fn_xmlCheckVersion)
+ [!WINDOWSNT]: New macros.
+ (init_libxml2_functions, libxml2_loaded_p): New functions.
+ (parse_region): Call fn_xmlCheckVersion instead of using the macro
+ LIBXML_TEST_VERSION. Call libxml2 functions via the fn_* macros.
+ (xml_cleanup_parser): New function, export for fn_xmlCleanupParser.
+ Calls xmlCleanupParser only if libxml2 was loaded (or statically
+ linked in).
+ (Flibxml_parse_html_region, Flibxml_parse_xml_region):
+ Call init_libxml2_functions before calling libxml2 functions.
+ (syms_of_xml) <Qlibxml2_dll>: DEFSYM it.
+
+ * emacs.c: Don't include libxml/parser.h.
+ (shut_down_emacs): Call xml_cleanup_parser, instead of calling
+ xmlCleanupParser directly.
+
+ * lisp.h [HAVE_LIBXML2]: Add prototype for xml_cleanup_parser.
+
+2012-04-07 Eli Zaretskii <eliz@gnu.org>
+
+ * indent.c (Fvertical_motion): If there is a display string at
+ point, use it.vpos to compute how many lines to backtrack after
+ move_it_to point. (Bug#11133)
+
+2012-04-06 Eli Zaretskii <eliz@gnu.org>
+
+ * buffer.h (FETCH_CHAR, FETCH_MULTIBYTE_CHAR):
+ * character.h (STRING_CHAR, STRING_CHAR_AND_LENGTH): Add comments
+ about subtle differences between FETCH_CHAR* and STRING_CHAR*
+ macros related to unification of CJK characters. For the details,
+ see the discussion following the message here:
+ http://debbugs.gnu.org/cgi/bugreport.cgi?bug=11073#14.
+
+2012-04-04 Chong Yidong <cyd@gnu.org>
+
+ * keyboard.c (Vdelayed_warnings_list): Doc fix.
+
+2012-04-01 Eli Zaretskii <eliz@gnu.org>
+
+ * w32menu.c (simple_dialog_show, add_menu_item): Use SAFE_ALLOCA
+ instead of alloca. (Bug#11138)
+
+2012-04-01 Andreas Schwab <schwab@linux-m68k.org>
+
+ * w32menu.c (is_simple_dialog): Properly check lisp types.
+ (Bug#11141)
+
+2012-03-31 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (move_it_by_lines): When DVPOS is positive, and the
+ position we get to after a call to move_it_to fails the
+ IS_POS_VALID_AFTER_MOVE_P test, move to the next buffer position
+ only if we wind up in a string from display property. (Bug#11063)
+
+ * window.c (Fdelete_other_windows_internal): Invalidate the row
+ and column information about mouse highlight, so that redisplay
+ restores it after reallocating the glyph matrices. (Bug#7464)
+
+ * xdisp.c (set_cursor_from_row): If `cursor' property on a display
+ string comes from a `display' text property, use the buffer
+ position of that property as if we actually saw that position in
+ the row's glyphs.
+ (move_it_by_lines): Remove the assertion that
+ "it->current_x == 0 && it->hpos == 0" which can be legitimately
+ violated when there's a before-string at the beginning of a line.
+ (Bug#11063)
+
+2012-03-30 Eli Zaretskii <eliz@gnu.org>
+
+ * xdisp.c (append_space_for_newline): If the default face was
+ remapped, use the remapped face for the appended newline.
+ (extend_face_to_end_of_line): Use the remapped default face for
+ extending the face to the end of the line.
+ (display_line): Call extend_face_to_end_of_line when the default
+ face was remapped. (Bug#11068)
+
+2012-03-29 Eli Zaretskii <eliz@gnu.org>
+
+ * s/ms-w32.h: Discourage from defining HAVE_GETCWD.
+
+2012-03-28 Stefan Monnier <monnier@iro.umontreal.ca>
+
+ * keyboard.c (safe_run_hooks_error): Don't unquote strings.
+
+2012-03-27 Glenn Morris <rgm@gnu.org>
+
+ * search.c (Fword_search_backward_lax, Fword_search_forward_lax):
+ Doc fixes.
+
+2012-03-26 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (struct glyph): Fix previous change. Change the
+ bit length of glyphless.ch to 25 (Bug#11082).
+
+2012-03-26 Chong Yidong <cyd@gnu.org>
+
+ * keyboard.c (Vselection_inhibit_update_commands): New variable.
+ (command_loop_1): Use it; inhibit selection update for
+ handle-select-window too (Bug#8996).
+
+2012-03-25 Fabrice Popineau <fabrice.popineau@supelec.fr>
+
+ * w32heap.c (_heap_init, _heap_term): Remove dead MSVC-specific code.
+
+2012-03-25 Kenichi Handa <handa@m17n.org>
+
+ * dispextern.h (struct glyph): Change the bit length of
+ glyphless.ch to 22 to make the member glyphless fit in 32 bits.
+
+2012-03-24 Eli Zaretskii <eliz@gnu.org>
+
+ * s/ms-w32.h (tzname): Include time.h before redirecting to
+ _tzname. Fixes the MSVC build. (Bug#9960)
+
+2012-03-24 Andreas Schwab <schwab@linux-m68k.org>
+
+ * xdisp.c (produce_glyphless_glyph): Limit length of acronym to 6
+ characters.
+
+ * xterm.c (XTread_socket): Only modify handling_signal if
+ !SYNC_INPUT. (Bug#11080)
+
2012-03-23 Eli Zaretskii <eliz@gnu.org>
* bidi.c (bidi_fetch_char): Use STRING_CHAR_AND_LENGTH instead of
* xfns.c (unwind_create_frame): Fix comment.
(Fx_create_frame, x_create_tip_frame):
Move terminal->reference_count++ just before making the frame
- official. Move initialization of image_cache_refcount and
+ official. Move initialization of image_cache_refcount and
dpyinfo_refcount before calling init_frame_faces (Bug#9943).
2011-11-05 Eli Zaretskii <eliz@gnu.org>
* xfaces.c <Qunspecified>: Make extern again.
* syntax.c: Include sys/types.h before including regex.h, as
- required by Posix.
+ required by POSIX.
* doc.c (get_doc_string): Improve the format passed to `error'.
;; coding: utf-8
;; End:
- Copyright (C) 2011-2012 Free Software Foundation, Inc.
+ Copyright (C) 2011-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
* macterm.c (do_ae_open_documents) [MAC_OSX]: Call FSpMakeFSRef
and FSRefMakePath to convert FSSpec returned with Apple Event to
- Posix pathname.
+ POSIX pathname.
(mac_initialize) [TARGET_API_MAC_CARBON]:
Call init_required_apple_events and disable the `Quit' menu item
provided automatically by the Carbon Toolbox.
2010-03-12 Eli Zaretskii <eliz@gnu.org>
- These changes remove termcap.c from the build on Posix platforms.
+ These changes remove termcap.c from the build on POSIX platforms.
* Makefile.in (termcapobj): Move termcap.o from here...
(MSDOS_OBJ): ...to here.
(termcapobj) [!LIBS_TERMCAP]: Remove specialized value, as it is
1995-12-12 Paul Eggert <eggert@twinsun.com>
- * process.c (create_process): Use Posix signal handling to
+ * process.c (create_process): Use POSIX signal handling to
block signals, if available. If HAVE_VFORK, save and restore
signal handlers that the child might change, since in many
systems (e.g. Solaris 2.4) if the child changes the signal
lib = ../lib
libsrc = ../lib-src
etc = ../etc
+leimdir = ../leim
oldXMenudir = ../oldXMenu
lwlibdir = ../lwlib
lispdir = ../lisp
## System-specific CFLAGS.
C_SWITCH_SYSTEM=@C_SWITCH_SYSTEM@
-## Currently only set if NS_IMPL_GNUSTEP.
-## C_SWITCH_X_SITE may override this.
-C_SWITCH_X_SYSTEM=@C_SWITCH_X_SYSTEM@
+GNUSTEP_CFLAGS=@GNUSTEP_CFLAGS@
## Define C_SWITCH_X_SITE to contain any special flags your compiler
## may need to deal with X Windows. For instance, if you've defined
## HAVE_X_WINDOWS and your X include files aren't in a place that your
## compiler can find on its own, you might want to add "-I/..." or
## something similar. This is normally set by configure.
-## This is used before C_SWITCH_X_SYSTEM and may override it.
C_SWITCH_X_SITE=@C_SWITCH_X_SITE@
## Define LD_SWITCH_X_SITE to contain any special flags your loader
## -DHAVE_CONFIG_H is needed for some other files to take advantage of
## the information in `config.h'.
##
-## C_SWITCH_X_SITE must come before C_SWITCH_X_SYSTEM
-## since it may have -I options that should override those.
-##
## FIXME? MYCPPFLAGS only referenced in etc/DEBUG.
ALL_CFLAGS=-Demacs -DHAVE_CONFIG_H $(MYCPPFLAGS) -I. -I$(srcdir) \
-I$(lib) -I$(srcdir)/../lib \
$(C_SWITCH_MACHINE) $(C_SWITCH_SYSTEM) $(C_SWITCH_X_SITE) \
- $(C_SWITCH_X_SYSTEM) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \
+ $(GNUSTEP_CFLAGS) $(CFLAGS_SOUND) $(RSVG_CFLAGS) $(IMAGEMAGICK_CFLAGS) \
$(LIBXML2_CFLAGS) $(DBUS_CFLAGS) \
$(SETTINGS_CFLAGS) $(FREETYPE_CFLAGS) $(FONTCONFIG_CFLAGS) \
$(LIBOTF_CFLAGS) $(M17N_FLT_CFLAGS) $(DEPFLAGS) $(PROFILING_CFLAGS) \
all: emacs$(EXEEXT) $(OTHER_FILES)
+$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
+ cd $(leimdir) && $(MAKE) $(MFLAGS) leim-list.el EMACS=$(bootstrap_exe)
+
## Does anyone ever pay attention to the load-path-shadows output here?
## The dumped Emacs is as functional and more efficient than
## bootstrap-emacs, so we replace the latter with the former.
## Strictly speaking, emacs does not depend directly on all of $lisp,
## since not all pieces are used on all platforms. But DOC depends
## on all of $lisp, and emacs depends on DOC, so it is ok to use $lisp here.
-emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp)
+emacs$(EXEEXT): temacs$(EXEEXT) $(etc)/DOC $(lisp) $(leimdir)/leim-list.el
if test "$(CANNOT_DUMP)" = "yes"; then \
ln -f temacs$(EXEEXT) emacs$(EXEEXT); \
EMACSLOADPATH=$(lispsource) ./emacs -batch \
extern size_t _bytes_used;
extern size_t __malloc_extra_blocks;
+extern void *_malloc_internal (size_t);
+extern void _free_internal (void *);
#endif /* not DOUG_LEA_MALLOC */
MEM_TYPE_VECTORLIKE
};
-static POINTER_TYPE *lisp_align_malloc (size_t, enum mem_type);
static POINTER_TYPE *lisp_malloc (size_t, enum mem_type);
#ifdef GC_MALLOC_CHECK
enum mem_type allocated_mem_type;
-static int dont_register_blocks;
#endif /* GC_MALLOC_CHECK */
static void mark_maybe_object (Lisp_Object);
static void mark_memory (void *, void *);
static void mem_init (void);
+#if (defined GC_MALLOC_CHECK \
+ ? !defined SYSTEM_MALLOC && !defined SYNC_INPUT \
+ : GC_MARK_STACK)
+# define NEED_MEM_INSERT
static struct mem_node *mem_insert (void *, void *, enum mem_type);
static void mem_insert_fixup (struct mem_node *);
+#endif
static void mem_rotate_left (struct mem_node *);
static void mem_rotate_right (struct mem_node *);
static void mem_delete (struct mem_node *);
MALLOC_UNBLOCK_INPUT;
}
-/* Allocation of aligned blocks of memory to store Lisp data. */
-/* The entry point is lisp_align_malloc which returns blocks of at most */
-/* BLOCK_BYTES and guarantees they are aligned on a BLOCK_ALIGN boundary. */
+/***** Allocation of aligned blocks of memory to store Lisp data. *****/
+
+/* The entry point is lisp_align_malloc which returns blocks of at most
+ BLOCK_BYTES and guarantees they are aligned on a BLOCK_ALIGN boundary. */
-/* Use posix_memalloc if the system has it and we're using the system's
- malloc (because our gmalloc.c routines don't have posix_memalign although
- its memalloc could be used). */
#if defined (HAVE_POSIX_MEMALIGN) && defined (SYSTEM_MALLOC)
#define USE_POSIX_MEMALIGN 1
#endif
struct ablock blocks[ABLOCKS_SIZE];
};
-/* Size of the block requested from malloc or memalign. */
+/* Size of the block requested from malloc or posix_memalign. */
#define ABLOCKS_BYTES (sizeof (struct ablocks) - BLOCK_PADDING)
#define ABLOCK_ABASE(block) \
#endif
/* Initialize the blocks and put them on the free list.
- Is `base' was not properly aligned, we can't use the last block. */
+ If `base' was not properly aligned, we can't use the last block. */
for (i = 0; i < (aligned ? ABLOCKS_SIZE : ABLOCKS_SIZE - 1); i++)
{
abase->blocks[i].abase = abase;
ablock->x.next_free = free_ablock;
free_ablock = ablock;
/* Update busy count. */
- ABLOCKS_BUSY (abase) =
- (struct ablocks *) (-2 + (intptr_t) ABLOCKS_BUSY (abase));
+ ABLOCKS_BUSY (abase)
+ = (struct ablocks *) (-2 + (intptr_t) ABLOCKS_BUSY (abase));
if (2 > (intptr_t) ABLOCKS_BUSY (abase))
{ /* All the blocks are free. */
# define BYTES_USED _bytes_used
#endif
+#ifdef GC_MALLOC_CHECK
+static int dont_register_blocks;
+#endif
+
static size_t bytes_used_when_reconsidered;
/* Value of _bytes_used, when spare_memory was freed. */
Symbol Allocation
***********************************************************************/
+/* Like struct Lisp_Symbol, but padded so that the size is a multiple
+ of the required alignment if LSB tags are used. */
+
+union aligned_Lisp_Symbol
+{
+ struct Lisp_Symbol s;
+#ifdef USE_LSB_TAG
+ unsigned char c[(sizeof (struct Lisp_Symbol) + (1 << GCTYPEBITS) - 1)
+ & -(1 << GCTYPEBITS)];
+#endif
+};
+
/* Each symbol_block is just under 1020 bytes long, since malloc
really allocates in units of powers of two and uses 4 bytes for its
own overhead. */
#define SYMBOL_BLOCK_SIZE \
- ((1020 - sizeof (struct symbol_block *)) / sizeof (struct Lisp_Symbol))
+ ((1020 - sizeof (struct symbol_block *)) / sizeof (union aligned_Lisp_Symbol))
struct symbol_block
{
/* Place `symbols' first, to preserve alignment. */
- struct Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE];
+ union aligned_Lisp_Symbol symbols[SYMBOL_BLOCK_SIZE];
struct symbol_block *next;
};
symbol_block = new;
symbol_block_index = 0;
}
- XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index]);
+ XSETSYMBOL (val, &symbol_block->symbols[symbol_block_index].s);
symbol_block_index++;
}
Marker (Misc) Allocation
***********************************************************************/
+/* Like union Lisp_Misc, but padded so that its size is a multiple of
+ the required alignment when LSB tags are used. */
+
+union aligned_Lisp_Misc
+{
+ union Lisp_Misc m;
+#ifdef USE_LSB_TAG
+ unsigned char c[(sizeof (union Lisp_Misc) + (1 << GCTYPEBITS) - 1)
+ & -(1 << GCTYPEBITS)];
+#endif
+};
+
/* Allocation of markers and other objects that share that structure.
Works like allocation of conses. */
#define MARKER_BLOCK_SIZE \
- ((1020 - sizeof (struct marker_block *)) / sizeof (union Lisp_Misc))
+ ((1020 - sizeof (struct marker_block *)) / sizeof (union aligned_Lisp_Misc))
struct marker_block
{
/* Place `markers' first, to preserve alignment. */
- union Lisp_Misc markers[MARKER_BLOCK_SIZE];
+ union aligned_Lisp_Misc markers[MARKER_BLOCK_SIZE];
struct marker_block *next;
};
marker_block_index = 0;
total_free_markers += MARKER_BLOCK_SIZE;
}
- XSETMISC (val, &marker_block->markers[marker_block_index]);
+ XSETMISC (val, &marker_block->markers[marker_block_index].m);
marker_block_index++;
}
}
+#ifdef NEED_MEM_INSERT
+
/* Insert a new node into the tree for a block of memory with start
address START, end address END, and type TYPE. Value is a
pointer to the node that was inserted. */
mem_root->color = MEM_BLACK;
}
+#endif /* NEED_MEM_INSERT */
+
/* (x) (y)
/ \ / \
}
-/* Alignment of Lisp_Object and pointer values. Use offsetof, as it
- sometimes returns a smaller alignment than GCC's __alignof__ and
- mark_memory might miss objects if __alignof__ were used. For
- example, on x86 with WIDE_EMACS_INT, __alignof__ (Lisp_Object) is 8
- but GC_LISP_OBJECT_ALIGNMENT should be 4. */
-#ifndef GC_LISP_OBJECT_ALIGNMENT
-# define GC_LISP_OBJECT_ALIGNMENT offsetof (struct {char a; Lisp_Object b;}, b)
-#endif
+/* Alignment of pointer values. Use offsetof, as it sometimes returns
+ a smaller alignment than GCC's __alignof__ and mark_memory might
+ miss objects if __alignof__ were used. */
#define GC_POINTER_ALIGNMENT offsetof (struct {char a; void *b;}, b)
+/* Define POINTERS_MIGHT_HIDE_IN_OBJECTS to 1 if marking via C pointers does
+ not suffice, which is the typical case. A host where a Lisp_Object is
+ wider than a pointer might allocate a Lisp_Object in non-adjacent halves.
+ If USE_LSB_TAG, the bottom half is not a valid pointer, but it should
+ suffice to widen it to to a Lisp_Object and check it that way. */
+#if defined USE_LSB_TAG || UINTPTR_MAX >> VALBITS != 0
+# if !defined USE_LSB_TAG && UINTPTR_MAX >> VALBITS >> GCTYPEBITS != 0
+ /* If tag bits straddle pointer-word boundaries, neither mark_maybe_pointer
+ nor mark_maybe_object can follow the pointers. This should not occur on
+ any practical porting target. */
+# error "MSB type bits straddle pointer-word boundaries"
+# endif
+ /* Marking via C pointers does not suffice, because Lisp_Objects contain
+ pointer words that hold pointers ORed with type bits. */
+# define POINTERS_MIGHT_HIDE_IN_OBJECTS 1
+#else
+ /* Marking via C pointers suffices, because Lisp_Objects contain pointer
+ words that hold unmodified pointers. */
+# define POINTERS_MIGHT_HIDE_IN_OBJECTS 0
+#endif
+
/* Mark Lisp objects referenced from the address range START+OFFSET..END
or END+OFFSET..START. */
static void
mark_memory (void *start, void *end)
{
- Lisp_Object *p;
void **pp;
int i;
end = tem;
}
- /* Mark Lisp_Objects. */
- for (p = start; (void *) p < end; p++)
- for (i = 0; i < sizeof *p; i += GC_LISP_OBJECT_ALIGNMENT)
- mark_maybe_object (*(Lisp_Object *) ((char *) p + i));
-
/* Mark Lisp data pointed to. This is necessary because, in some
situations, the C compiler optimizes Lisp objects away, so that
only a pointer to them remains. Example:
for (pp = start; (void *) pp < end; pp++)
for (i = 0; i < sizeof *pp; i += GC_POINTER_ALIGNMENT)
{
- void *w = *(void **) ((char *) pp + i);
- mark_maybe_pointer (w);
-
-#ifdef USE_LSB_TAG
- /* A host where a Lisp_Object is wider than a pointer might
- allocate a Lisp_Object in non-adjacent halves. If
- USE_LSB_TAG, the bottom half is not a valid pointer, so
- widen it to to a Lisp_Object and check it that way. */
- if (sizeof w < sizeof (Lisp_Object))
- mark_maybe_object (widen_to_Lisp_Object (w));
-#endif
+ void *p = *(void **) ((char *) pp + i);
+ mark_maybe_pointer (p);
+ if (POINTERS_MIGHT_HIDE_IN_OBJECTS)
+ mark_maybe_object (widen_to_Lisp_Object (p));
}
}
for (sblk = symbol_block; sblk; sblk = *sprev)
{
int this_free = 0;
- struct Lisp_Symbol *sym = sblk->symbols;
- struct Lisp_Symbol *end = sym + lim;
+ union aligned_Lisp_Symbol *sym = sblk->symbols;
+ union aligned_Lisp_Symbol *end = sym + lim;
for (; sym < end; ++sym)
{
/* Check if the symbol was created during loadup. In such a case
it might be pointed to by pure bytecode which we don't trace,
so we conservatively assume that it is live. */
- int pure_p = PURE_POINTER_P (XSTRING (sym->xname));
+ int pure_p = PURE_POINTER_P (XSTRING (sym->s.xname));
- if (!sym->gcmarkbit && !pure_p)
+ if (!sym->s.gcmarkbit && !pure_p)
{
- if (sym->redirect == SYMBOL_LOCALIZED)
- xfree (SYMBOL_BLV (sym));
- sym->next = symbol_free_list;
- symbol_free_list = sym;
+ if (sym->s.redirect == SYMBOL_LOCALIZED)
+ xfree (SYMBOL_BLV (&sym->s));
+ sym->s.next = symbol_free_list;
+ symbol_free_list = &sym->s;
#if GC_MARK_STACK
symbol_free_list->function = Vdead;
#endif
{
++num_used;
if (!pure_p)
- UNMARK_STRING (XSTRING (sym->xname));
- sym->gcmarkbit = 0;
+ UNMARK_STRING (XSTRING (sym->s.xname));
+ sym->s.gcmarkbit = 0;
}
}
{
*sprev = sblk->next;
/* Unhook from the free list. */
- symbol_free_list = sblk->symbols[0].next;
+ symbol_free_list = sblk->symbols[0].s.next;
lisp_free (sblk);
}
else
for (i = 0; i < lim; i++)
{
- if (!mblk->markers[i].u_any.gcmarkbit)
+ if (!mblk->markers[i].m.u_any.gcmarkbit)
{
- if (mblk->markers[i].u_any.type == Lisp_Misc_Marker)
- unchain_marker (&mblk->markers[i].u_marker);
+ if (mblk->markers[i].m.u_any.type == Lisp_Misc_Marker)
+ unchain_marker (&mblk->markers[i].m.u_marker);
/* Set the type of the freed object to Lisp_Misc_Free.
We could leave the type alone, since nobody checks it,
but this might catch bugs faster. */
- mblk->markers[i].u_marker.type = Lisp_Misc_Free;
- mblk->markers[i].u_free.chain = marker_free_list;
- marker_free_list = &mblk->markers[i];
+ mblk->markers[i].m.u_marker.type = Lisp_Misc_Free;
+ mblk->markers[i].m.u_free.chain = marker_free_list;
+ marker_free_list = &mblk->markers[i].m;
this_free++;
}
else
{
num_used++;
- mblk->markers[i].u_any.gcmarkbit = 0;
+ mblk->markers[i].m.u_any.gcmarkbit = 0;
}
}
lim = MARKER_BLOCK_SIZE;
{
*mprev = mblk->next;
/* Unhook from the free list. */
- marker_free_list = mblk->markers[0].u_free.chain;
+ marker_free_list = mblk->markers[0].m.u_free.chain;
lisp_free (mblk);
}
else
{
for (sblk = symbol_block; sblk; sblk = sblk->next)
{
- struct Lisp_Symbol *sym = sblk->symbols;
+ union aligned_Lisp_Symbol *aligned_sym = sblk->symbols;
int bn;
- for (bn = 0; bn < SYMBOL_BLOCK_SIZE; bn++, sym++)
+ for (bn = 0; bn < SYMBOL_BLOCK_SIZE; bn++, aligned_sym++)
{
+ struct Lisp_Symbol *sym = &aligned_sym->s;
Lisp_Object val;
Lisp_Object tem;
syms_of_alloc (void)
{
DEFVAR_INT ("gc-cons-threshold", gc_cons_threshold,
- doc: /* *Number of bytes of consing between garbage collections.
+ doc: /* Number of bytes of consing between garbage collections.
Garbage collection can happen automatically once this many bytes have been
allocated since the last garbage collection. All data types count.
See also `gc-cons-percentage'. */);
DEFVAR_LISP ("gc-cons-percentage", Vgc_cons_percentage,
- doc: /* *Portion of the heap used for allocation.
+ doc: /* Portion of the heap used for allocation.
Garbage collection can happen automatically once this portion of the heap
has been allocated since the last garbage collection.
If this portion is smaller than `gc-cons-threshold', this is ignored. */);
Lisp_Object Qfirst_change_hook;
Lisp_Object Qbefore_change_functions;
Lisp_Object Qafter_change_functions;
-static Lisp_Object Qucs_set_table_for_input;
static Lisp_Object Qfundamental_mode, Qmode_class, Qpermanent_local;
static Lisp_Object Qpermanent_local_hook;
if (!NILP (Vrun_hooks))
call1 (Vrun_hooks, Qbuffer_list_update_hook);
- /* An error in calling the function here (should someone redefine it)
- can lead to infinite regress until you run out of stack. rms
- says that's not worth protecting against. */
- if (!NILP (Ffboundp (Qucs_set_table_for_input)))
- /* buffer is on buffer-alist, so no gcpro. */
- call1 (Qucs_set_table_for_input, buffer);
-
return buffer;
}
return byte_pos;
}
-#ifdef REL_ALLOC
-extern void r_alloc_reset_variable (POINTER_TYPE *, POINTER_TYPE *);
-#endif /* REL_ALLOC */
-
DEFUN ("buffer-swap-text", Fbuffer_swap_text, Sbuffer_swap_text,
1, 1, 0,
doc: /* Swap the text between current buffer and BUFFER. */)
Buffer-text Allocation
***********************************************************************/
-#ifdef REL_ALLOC
-extern POINTER_TYPE *r_alloc (POINTER_TYPE **, size_t);
-extern POINTER_TYPE *r_re_alloc (POINTER_TYPE **, size_t);
-extern void r_alloc_free (POINTER_TYPE **ptr);
-#endif /* REL_ALLOC */
-
-
/* Allocate NBYTES bytes for buffer B's text buffer. */
static void
Qkill_buffer_hook = intern_c_string ("kill-buffer-hook");
Fput (Qkill_buffer_hook, Qpermanent_local, Qt);
- Qucs_set_table_for_input = intern_c_string ("ucs-set-table-for-input");
-
/* super-magic invisible buffer */
Vprin1_to_string_buffer = Fget_buffer_create (make_pure_c_string (" prin1"));
Vbuffer_alist = Qnil;
DEFSYM (Qafter_change_functions, "after-change-functions");
DEFSYM (Qkill_buffer_query_functions, "kill-buffer-query-functions");
- /* The next one is initialized in init_buffer_once. */
- staticpro (&Qucs_set_table_for_input);
-
Fput (Qprotected_field, Qerror_conditions,
pure_cons (Qprotected_field, pure_cons (Qerror, Qnil)));
Fput (Qprotected_field, Qerror_message,
DEFVAR_BUFFER_DEFAULTS ("default-enable-multibyte-characters",
enable_multibyte_characters,
- doc: /* *Default value of `enable-multibyte-characters' for buffers not overriding it.
+ doc: /* Default value of `enable-multibyte-characters' for buffers not overriding it.
This is the same as (default-value 'enable-multibyte-characters). */);
DEFVAR_BUFFER_DEFAULTS ("default-buffer-file-coding-system",
Decimal digits after the % specify field width to which to pad. */);
DEFVAR_BUFFER_DEFAULTS ("default-major-mode", major_mode,
- doc: /* *Value of `major-mode' for new buffers. */);
+ doc: /* Value of `major-mode' for new buffers. */);
DEFVAR_PER_BUFFER ("major-mode", &BVAR (current_buffer, major_mode),
make_number (Lisp_Symbol),
DEFVAR_PER_BUFFER ("case-fold-search", &BVAR (current_buffer, case_fold_search),
Qnil,
- doc: /* *Non-nil if searches and matches should ignore case. */);
+ doc: /* Non-nil if searches and matches should ignore case. */);
DEFVAR_PER_BUFFER ("fill-column", &BVAR (current_buffer, fill_column),
make_number (LISP_INT_TAG),
- doc: /* *Column beyond which automatic line-wrapping should happen.
+ doc: /* Column beyond which automatic line-wrapping should happen.
Interactively, you can set the buffer local value using \\[set-fill-column]. */);
DEFVAR_PER_BUFFER ("left-margin", &BVAR (current_buffer, left_margin),
make_number (LISP_INT_TAG),
- doc: /* *Column for the default `indent-line-function' to indent to.
+ doc: /* Column for the default `indent-line-function' to indent to.
Linefeed indents to this column in Fundamental mode. */);
DEFVAR_PER_BUFFER ("tab-width", &BVAR (current_buffer, tab_width),
make_number (LISP_INT_TAG),
- doc: /* *Distance between tab stops (for display of tab characters), in columns.
+ doc: /* Distance between tab stops (for display of tab characters), in columns.
This should be an integer greater than zero. */);
DEFVAR_PER_BUFFER ("ctl-arrow", &BVAR (current_buffer, ctl_arrow), Qnil,
- doc: /* *Non-nil means display control chars with uparrow.
+ doc: /* Non-nil means display control chars with uparrow.
A value of nil means use backslash and octal digits.
This variable does not apply to characters whose display is specified
in the current display table (if there is one). */);
DEFVAR_PER_BUFFER ("bidi-paragraph-direction",
&BVAR (current_buffer, bidi_paragraph_direction), Qnil,
- doc: /* *If non-nil, forces directionality of text paragraphs in the buffer.
+ doc: /* If non-nil, forces directionality of text paragraphs in the buffer.
If this is nil (the default), the direction of each paragraph is
determined by the first strong directional character of its text.
\`bidi-display-reordering' is non-nil. */);
DEFVAR_PER_BUFFER ("truncate-lines", &BVAR (current_buffer, truncate_lines), Qnil,
- doc: /* *Non-nil means do not display continuation lines.
+ doc: /* Non-nil means do not display continuation lines.
Instead, give each line of text just one screen line.
Note that this is overridden by the variable
Minibuffers set this variable to nil. */);
DEFVAR_PER_BUFFER ("word-wrap", &BVAR (current_buffer, word_wrap), Qnil,
- doc: /* *Non-nil means to use word-wrapping for continuation lines.
+ doc: /* Non-nil means to use word-wrapping for continuation lines.
When word-wrapping is on, continuation lines are wrapped at the space
or tab character nearest to the right window edge.
If nil, continuation lines are wrapped at the right screen edge.
DEFVAR_PER_BUFFER ("left-margin-width", &BVAR (current_buffer, left_margin_cols),
Qnil,
- doc: /* *Width of left marginal area for display of a buffer.
+ doc: /* Width of left marginal area for display of a buffer.
A value of nil means no marginal area. */);
DEFVAR_PER_BUFFER ("right-margin-width", &BVAR (current_buffer, right_margin_cols),
Qnil,
- doc: /* *Width of right marginal area for display of a buffer.
+ doc: /* Width of right marginal area for display of a buffer.
A value of nil means no marginal area. */);
DEFVAR_PER_BUFFER ("left-fringe-width", &BVAR (current_buffer, left_fringe_width),
Qnil,
- doc: /* *Width of this buffer's left fringe (in pixels).
+ doc: /* Width of this buffer's left fringe (in pixels).
A value of 0 means no left fringe is shown in this buffer's window.
A value of nil means to use the left fringe width from the window's frame. */);
DEFVAR_PER_BUFFER ("right-fringe-width", &BVAR (current_buffer, right_fringe_width),
Qnil,
- doc: /* *Width of this buffer's right fringe (in pixels).
+ doc: /* Width of this buffer's right fringe (in pixels).
A value of 0 means no right fringe is shown in this buffer's window.
A value of nil means to use the right fringe width from the window's frame. */);
DEFVAR_PER_BUFFER ("fringes-outside-margins", &BVAR (current_buffer, fringes_outside_margins),
Qnil,
- doc: /* *Non-nil means to display fringes outside display margins.
+ doc: /* Non-nil means to display fringes outside display margins.
A value of nil means to display fringes between margins and buffer text. */);
DEFVAR_PER_BUFFER ("scroll-bar-width", &BVAR (current_buffer, scroll_bar_width),
Qnil,
- doc: /* *Width of this buffer's scroll bars in pixels.
+ doc: /* Width of this buffer's scroll bars in pixels.
A value of nil means to use the scroll bar width from the window's frame. */);
DEFVAR_PER_BUFFER ("vertical-scroll-bar", &BVAR (current_buffer, vertical_scroll_bar_type),
Qnil,
- doc: /* *Position of this buffer's vertical scroll bar.
+ doc: /* Position of this buffer's vertical scroll bar.
The value takes effect whenever you tell a window to display this buffer;
for instance, with `set-window-buffer' or when `display-buffer' displays it.
DEFVAR_PER_BUFFER ("indicate-empty-lines",
&BVAR (current_buffer, indicate_empty_lines), Qnil,
- doc: /* *Visually indicate empty lines after the buffer end.
+ doc: /* Visually indicate empty lines after the buffer end.
If non-nil, a bitmap is displayed in the left fringe of a window on
window-systems. */);
DEFVAR_PER_BUFFER ("indicate-buffer-boundaries",
&BVAR (current_buffer, indicate_buffer_boundaries), Qnil,
- doc: /* *Visually indicate buffer boundaries and scrolling.
+ doc: /* Visually indicate buffer boundaries and scrolling.
If non-nil, the first and last line of the buffer are marked in the fringe
of a window on window-systems with angle bitmaps, or if the window can be
scrolled, the top and bottom line of the window are marked with up and down
DEFVAR_PER_BUFFER ("fringe-indicator-alist",
&BVAR (current_buffer, fringe_indicator_alist), Qnil,
- doc: /* *Mapping from logical to physical fringe indicator bitmaps.
+ doc: /* Mapping from logical to physical fringe indicator bitmaps.
The value is an alist where each element (INDICATOR . BITMAPS)
specifies the fringe bitmaps used to display a specific logical
fringe indicator.
DEFVAR_PER_BUFFER ("fringe-cursor-alist",
&BVAR (current_buffer, fringe_cursor_alist), Qnil,
- doc: /* *Mapping from logical to physical fringe cursor bitmaps.
+ doc: /* Mapping from logical to physical fringe cursor bitmaps.
The value is an alist where each element (CURSOR . BITMAP)
specifies the fringe bitmaps used to display a specific logical
cursor type in the fringe.
DEFVAR_PER_BUFFER ("buffer-auto-save-file-format",
&BVAR (current_buffer, auto_save_file_format), Qnil,
- doc: /* *Format in which to write auto-save files.
+ doc: /* Format in which to write auto-save files.
Should be a list of symbols naming formats that are defined in `format-alist'.
If it is t, which is the default, auto-save files are written in the
same format as a regular save would use. */);
Vtransient_mark_mode = Qnil;
DEFVAR_LISP ("inhibit-read-only", Vinhibit_read_only,
- doc: /* *Non-nil means disregard read-only status of buffers or characters.
+ doc: /* Non-nil means disregard read-only status of buffers or characters.
If the value is t, disregard `buffer-read-only' and all `read-only'
text properties. If the value is a list, disregard `buffer-read-only'
and disregard a `read-only' text property if the property value
DEFVAR_PER_BUFFER ("cursor-in-non-selected-windows",
&BVAR (current_buffer, cursor_in_non_selected_windows), Qnil,
- doc: /* *Non-nil means show a cursor in non-selected windows.
+ doc: /* Non-nil means show a cursor in non-selected windows.
If nil, only shows a cursor in the selected window.
If t, displays a cursor related to the usual cursor type
\(a solid box becomes hollow, a bar becomes a narrower bar).
- (ptr - (current_buffer)->text->beg <= GPT_BYTE - BEG_BYTE ? 0 : GAP_SIZE) \
+ BEG_BYTE)
-/* Return character at byte position POS. */
+/* Return character at byte position POS. See the caveat WARNING for
+ FETCH_MULTIBYTE_CHAR below. */
#define FETCH_CHAR(pos) \
(!NILP (BVAR (current_buffer, enable_multibyte_characters)) \
/* Return character code of multi-byte form at byte position POS. If POS
doesn't point the head of valid multi-byte form, only the byte at
- POS is returned. No range checking. */
+ POS is returned. No range checking.
+
+ WARNING: The character returned by this macro could be "unified"
+ inside STRING_CHAR, if the original character in the buffer belongs
+ to one of the Private Use Areas (PUAs) of codepoints that Emacs
+ uses to support non-unified CJK characters. If that happens,
+ CHAR_BYTES will return a value that is different from the length of
+ the original multibyte sequence stored in the buffer. Therefore,
+ do _not_ use FETCH_MULTIBYTE_CHAR if you need to advance through
+ the buffer to the next character after fetching this one. Instead,
+ use either FETCH_CHAR_ADVANCE or STRING_CHAR_AND_LENGTH. */
#define FETCH_MULTIBYTE_CHAR(pos) \
(_fetch_multibyte_char_p = (((pos) >= GPT_BYTE ? GAP_SIZE : 0) \
s -- Any string. Does not inherit the current input method.
S -- Any symbol.
U -- Mouse up event discarded by a previous k or K argument.
-v -- Variable name: symbol that is user-variable-p.
+v -- Variable name: symbol that is `custom-variable-p'.
x -- Lisp expression read but not evaluated.
X -- Lisp expression read and evaluated.
z -- Coding system.
break;
case 'v': /* Variable name: symbol that is
- user-variable-p. */
+ custom-variable-p. */
args[i] = Fread_variable (callint_message, Qnil);
visargs[i] = last_minibuf_string;
break;
Vcommand_debug_status = Qnil;
DEFVAR_LISP ("mark-even-if-inactive", Vmark_even_if_inactive,
- doc: /* *Non-nil means you can use the mark even when inactive.
+ doc: /* Non-nil means you can use the mark even when inactive.
This option makes a difference in Transient Mark mode.
When the option is non-nil, deactivation of the mark
turns off region highlighting, but commands that use the mark
staticpro (&Vtemp_file_name_pattern);
DEFVAR_LISP ("shell-file-name", Vshell_file_name,
- doc: /* *File name to load inferior shells from.
+ doc: /* File name to load inferior shells from.
Initialized from the SHELL environment variable, or to a system-dependent
default if SHELL is not set. */);
DEFVAR_LISP ("exec-path", Vexec_path,
- doc: /* *List of directories to search programs to run in subprocesses.
+ doc: /* List of directories to search programs to run in subprocesses.
Each element is a string (directory name) or nil (try default directory). */);
DEFVAR_LISP ("exec-suffixes", Vexec_suffixes,
- doc: /* *List of suffixes to try to find executable file names.
+ doc: /* List of suffixes to try to find executable file names.
Each element is a string. */);
Vexec_suffixes = Qnil;
} while (0)
/* Return the character code of character whose multibyte form is at
- P. */
+ P. Note that this macro unifies CJK characters whose codepoints
+ are in the Private Use Areas (PUAs), so it might return a different
+ codepoint from the one actually stored at P. */
#define STRING_CHAR(p) \
(!((p)[0] & 0x80) \
/* Like STRING_CHAR, but set ACTUAL_LEN to the length of multibyte
- form. */
+ form.
+
+ Note: This macro returns the actual length of the character's
+ multibyte sequence as it is stored in a buffer or string. The
+ character it returns might have a different codepoint that has a
+ different multibyte sequence of a different length, due to possible
+ unification of CJK characters inside string_char. Therefore do NOT
+ assume that the length returned by this macro is identical to the
+ length of the multibyte sequence of the character it returns. */
#define STRING_CHAR_AND_LENGTH(p, actual_len) \
(!((p)[0] & 0x80) \
defsubr (&Ssort_charsets);
DEFVAR_LISP ("charset-map-path", Vcharset_map_path,
- doc: /* *List of directories to search for charset map files. */);
+ doc: /* List of directories to search for charset map files. */);
Vcharset_map_path = Qnil;
DEFVAR_BOOL ("inhibit-load-charset-map", inhibit_load_charset_map,
else
{
/* Rule-base composition. */
- float leftmost = 0.0, rightmost;
+ double leftmost = 0.0, rightmost;
ch = XINT (key_contents[0]);
rightmost = ch != '\t' ? CHAR_WIDTH (ch) : 1;
{
int rule, gref, nref;
int this_width;
- float this_left;
+ double this_left;
rule = XINT (key_contents[i]);
ch = XINT (key_contents[i + 1]);
return Fstring_lessp (Fcar (f1), Fcar (f2));
}
\f
+
+DEFUN ("system-users", Fsystem_users, Ssystem_users, 0, 0, 0,
+ doc: /* Return a list of user names currently registered in the system.
+If we don't know how to determine that on this platform, just
+return a list with one element, taken from `user-real-login-name'. */)
+ (void)
+{
+ Lisp_Object users = Qnil;
+#if defined(HAVE_GETPWENT) && defined(HAVE_ENDPWENT)
+ struct passwd *pw;
+
+ while ((pw = getpwent ()))
+ users = Fcons (DECODE_SYSTEM (build_string (pw->pw_name)), users);
+
+ endpwent ();
+#endif
+ if (EQ (users, Qnil))
+ /* At least current user is always known. */
+ users = Fcons (Vuser_real_login_name, Qnil);
+ return users;
+}
+
+DEFUN ("system-groups", Fsystem_groups, Ssystem_groups, 0, 0, 0,
+ doc: /* Return a list of user group names currently registered in the system.
+The value may be nil if not supported on this platform. */)
+ (void)
+{
+ Lisp_Object groups = Qnil;
+#if defined(HAVE_GETGRENT) && defined(HAVE_ENDGRENT)
+ struct group *gr;
+ int length;
+
+ while ((gr = getgrent ()))
+ groups = Fcons (DECODE_SYSTEM (build_string (gr->gr_name)), groups);
+
+ endgrent ();
+#endif
+ return groups;
+}
+
void
syms_of_dired (void)
{
defsubr (&Sfile_name_all_completions);
defsubr (&Sfile_attributes);
defsubr (&Sfile_attributes_lessp);
+ defsubr (&Ssystem_users);
+ defsubr (&Ssystem_groups);
DEFVAR_LISP ("completion-ignored-extensions", Vcompletion_ignored_extensions,
doc: /* Completion ignores file names ending in any string in this list.
/* Length of acronym or hexadecimal code string (at most 8). */
unsigned len : 4;
/* Character to display. Actually we need only 22 bits. */
- unsigned ch : 26;
+ unsigned ch : 25;
} glyphless;
/* Used to compare all bit-fields above in one step. */
/* Record indices of function doc strings stored in a file.
- Copyright (C) 1985-1986, 1993-1995, 1997-2012
- Free Software Foundation, Inc.
+
+Copyright (C) 1985-1986, 1993-1995, 1997-2012 Free Software Foundation, Inc.
This file is part of GNU Emacs.
/* Install file-position as variable-documentation property
and make it negative for a user-variable
(doc starts with a `*'). */
- Fput (sym, Qvariable_documentation,
- make_number ((pos + end + 1 - buf)
- * (end[1] == '*' ? -1 : 1)));
+ if (!NILP (Fboundp (sym)))
+ Fput (sym, Qvariable_documentation,
+ make_number ((pos + end + 1 - buf)
+ * (end[1] == '*' ? -1 : 1)));
}
/* Attach a docstring to a function? */
else if (p[1] == 'F')
- store_function_docstring (sym, pos + end + 1 - buf);
-
+ {
+ if (!NILP (Ffboundp (sym)))
+ store_function_docstring (sym, pos + end + 1 - buf);
+ }
else if (p[1] == 'S')
; /* Just a source file name boundary marker. Ignore it. */
#endif
DEFVAR_LISP ("dos-display-scancodes", Vdos_display_scancodes,
- doc: /* *Controls whether DOS raw keyboard events are displayed as you type.
+ doc: /* Whether DOS raw keyboard events are displayed as you type.
When non-nil, the keyboard scan-codes are displayed at the bottom right
corner of the display (typically at the end of the mode line).
The output format is: scan code:char code*modifiers. */);
Vdos_display_scancodes = Qnil;
DEFVAR_INT ("dos-hyper-key", dos_hyper_key,
- doc: /* *If set to 1, use right ALT key as hyper key.
+ doc: /* If set to 1, use right ALT key as hyper key.
If set to 2, use right CTRL key as hyper key. */);
dos_hyper_key = 0;
DEFVAR_INT ("dos-super-key", dos_super_key,
- doc: /* *If set to 1, use right ALT key as super key.
+ doc: /* If set to 1, use right ALT key as super key.
If set to 2, use right CTRL key as super key. */);
dos_super_key = 0;
DEFVAR_INT ("dos-keypad-mode", dos_keypad_mode,
- doc: /* *Controls what key code is returned by a key in the numeric keypad.
+ doc: /* Controls what key code is returned by a key in the numeric keypad.
The `numlock ON' action is only taken if no modifier keys are pressed.
The value is an integer constructed by adding the following bits together:
#include <sys/personality.h>
#endif
-#ifdef HAVE_LIBXML2
-#include <libxml/parser.h>
-#endif
-
#ifndef O_RDWR
#define O_RDWR 2
#endif
#endif
#ifdef HAVE_LIBXML2
- xmlCleanupParser ();
+ xml_cleanup_parser ();
#endif
}
variable.
To define a user option, use `defcustom' instead of `defvar'.
-The function `user-variable-p' also identifies a variable as a user
-option if its DOCSTRING starts with *, but this behavior is obsolete.
usage: (defvar SYMBOL &optional INITVALUE DOCSTRING) */)
(Lisp_Object args)
{
return sym;
}
-/* Error handler used in Fuser_variable_p. */
-static Lisp_Object
-user_variable_p_eh (Lisp_Object ignore)
-{
- return Qnil;
-}
-
-static Lisp_Object
-lisp_indirect_variable (Lisp_Object sym)
-{
- struct Lisp_Symbol *s = indirect_variable (XSYMBOL (sym));
- XSETSYMBOL (sym, s);
- return sym;
-}
-
-DEFUN ("user-variable-p", Fuser_variable_p, Suser_variable_p, 1, 1, 0,
- doc: /* Return t if VARIABLE is intended to be set and modified by users.
-\(The alternative is a variable used internally in a Lisp program.)
-
-This function returns t if (i) the first character of its
-documentation is `*', or (ii) it is customizable (its property list
-contains a non-nil value of `standard-value' or `custom-autoload'), or
-\(iii) it is an alias for a user variable.
-
-But condition (i) is considered obsolete, so for most purposes this is
-equivalent to `custom-variable-p'. */)
- (Lisp_Object variable)
-{
- Lisp_Object documentation;
-
- if (!SYMBOLP (variable))
- return Qnil;
-
- /* If indirect and there's an alias loop, don't check anything else. */
- if (XSYMBOL (variable)->redirect == SYMBOL_VARALIAS
- && NILP (internal_condition_case_1 (lisp_indirect_variable, variable,
- Qt, user_variable_p_eh)))
- return Qnil;
-
- while (1)
- {
- documentation = Fget (variable, Qvariable_documentation);
- if (INTEGERP (documentation) && XINT (documentation) < 0)
- return Qt;
- if (STRINGP (documentation)
- && ((unsigned char) SREF (documentation, 0) == '*'))
- return Qt;
- /* If it is (STRING . INTEGER), a negative integer means a user variable. */
- if (CONSP (documentation)
- && STRINGP (XCAR (documentation))
- && INTEGERP (XCDR (documentation))
- && XINT (XCDR (documentation)) < 0)
- return Qt;
- /* Customizable? See `custom-variable-p'. */
- if ((!NILP (Fget (variable, intern ("standard-value"))))
- || (!NILP (Fget (variable, intern ("custom-autoload")))))
- return Qt;
-
- if (!(XSYMBOL (variable)->redirect == SYMBOL_VARALIAS))
- return Qnil;
-
- /* An indirect variable? Let's follow the chain. */
- XSETSYMBOL (variable, SYMBOL_ALIAS (XSYMBOL (variable)));
- }
-}
\f
DEFUN ("let*", FletX, SletX, 1, UNEVALLED, 0,
doc: /* Bind variables according to VARLIST then eval BODY.
syms_of_eval (void)
{
DEFVAR_INT ("max-specpdl-size", max_specpdl_size,
- doc: /* *Limit on number of Lisp variable bindings and `unwind-protect's.
+ doc: /* Limit on number of Lisp variable bindings and `unwind-protect's.
If Lisp code tries to increase the total number past this amount,
an error is signaled.
You can safely use a value considerably larger than the default value,
Emacs could run out of memory trying to make the stack bigger. */);
DEFVAR_INT ("max-lisp-eval-depth", max_lisp_eval_depth,
- doc: /* *Limit on depth in `eval', `apply' and `funcall' before error.
+ doc: /* Limit on depth in `eval', `apply' and `funcall' before error.
This limit serves to catch infinite recursions for you before they cause
actual stack overflow in C, which would be fatal for Emacs.
DEFSYM (Qdebug, "debug");
DEFVAR_LISP ("debug-on-error", Vdebug_on_error,
- doc: /* *Non-nil means enter debugger if an error is signaled.
+ doc: /* Non-nil means enter debugger if an error is signaled.
Does not apply to errors handled by `condition-case' or those
matched by `debug-ignored-errors'.
If the value is a list, an error only means to enter the debugger
Vdebug_on_error = Qnil;
DEFVAR_LISP ("debug-ignored-errors", Vdebug_ignored_errors,
- doc: /* *List of errors for which the debugger should not be called.
+ doc: /* List of errors for which the debugger should not be called.
Each element may be a condition-name or a regexp that matches error messages.
If any element applies to a given error, that error skips the debugger
and just returns to top level.
Vdebug_ignored_errors = Qnil;
DEFVAR_BOOL ("debug-on-quit", debug_on_quit,
- doc: /* *Non-nil means enter debugger if quit is signaled (C-g, for example).
+ doc: /* Non-nil means enter debugger if quit is signaled (C-g, for example).
Does not apply if quit is handled by a `condition-case'. */);
debug_on_quit = 0;
Vsignal_hook_function = Qnil;
DEFVAR_LISP ("debug-on-signal", Vdebug_on_signal,
- doc: /* *Non-nil means call the debugger regardless of condition handlers.
+ doc: /* Non-nil means call the debugger regardless of condition handlers.
Note that `debug-on-error', `debug-on-quit' and friends
still determine whether to handle the particular condition. */);
Vdebug_on_signal = Qnil;
defsubr (&Sdefvar);
defsubr (&Sdefvaralias);
defsubr (&Sdefconst);
- defsubr (&Suser_variable_p);
defsubr (&Slet);
defsubr (&SletX);
defsubr (&Swhile);
DEFSYM (Qexcl, "excl");
DEFVAR_LISP ("file-name-coding-system", Vfile_name_coding_system,
- doc: /* *Coding system for encoding file names.
+ doc: /* Coding system for encoding file names.
If it is nil, `default-file-name-coding-system' (which see) is used. */);
Vfile_name_coding_system = Qnil;
#ifdef HAVE_FSYNC
DEFVAR_BOOL ("write-region-inhibit-fsync", write_region_inhibit_fsync,
- doc: /* *Non-nil means don't call fsync in `write-region'.
+ doc: /* Non-nil means don't call fsync in `write-region'.
This variable affects calls to `write-region' as well as save commands.
A non-nil value may result in data loss! */);
write_region_inhibit_fsync = 0;
#endif /* HAVE_LANGINFO_CODESET */
DEFVAR_BOOL ("use-dialog-box", use_dialog_box,
- doc: /* *Non-nil means mouse commands use dialog boxes to ask questions.
+ doc: /* Non-nil means mouse commands use dialog boxes to ask questions.
This applies to `y-or-n-p' and `yes-or-no-p' questions asked by commands
invoked by mouse clicks and mouse menu items.
use_dialog_box = 1;
DEFVAR_BOOL ("use-file-dialog", use_file_dialog,
- doc: /* *Non-nil means mouse commands use a file dialog to ask for files.
+ doc: /* Non-nil means mouse commands use a file dialog to ask for files.
This applies to commands from menus and tool bar buttons even when
they are initiated from the keyboard. If `use-dialog-box' is nil,
that disables the use of a file dialog, regardless of the value of
DEFVAR_LISP ("vertical-centering-font-regexp",
Vvertical_centering_font_regexp,
- doc: /* *Regexp matching font names that require vertical centering on display.
+ doc: /* Regexp matching font names that require vertical centering on display.
When a character is displayed with such fonts, the character is displayed
at the vertical center of lines. */);
Vvertical_centering_font_regexp = Qnil;
defsubr (&Sset_fringe_bitmap_face);
DEFVAR_LISP ("overflow-newline-into-fringe", Voverflow_newline_into_fringe,
- doc: /* *Non-nil means that newline may flow into the right fringe.
+ doc: /* Non-nil means that newline may flow into the right fringe.
This means that display lines which are exactly as wide as the window
(not counting the final newline) will only occupy one screen line, by
showing (or hiding) the final newline in the right fringe; when point
#endif /* !WINDOWSNT */
\f
+/* Function to log a simple message. */
static void
gnutls_log_function (int level, const char* string)
{
message ("gnutls.c: [%d] %s", level, string);
}
+/* Function to log a message and a string. */
static void
gnutls_log_function2 (int level, const char* string, const char* extra)
{
message ("gnutls.c: [%d] %s %s", level, string, extra);
}
+/* Function to log a message and an integer. */
+static void
+gnutls_log_function2i (int level, const char* string, int extra)
+{
+ message ("gnutls.c: [%d] %s %d", level, string, extra);
+}
+
static int
emacs_gnutls_handshake (struct Lisp_Process *proc)
{
ssize_t rtnval;
gnutls_session_t state = proc->gnutls_state;
+ int log_level = proc->gnutls_log_level;
+
if (proc->gnutls_initstage != GNUTLS_STAGE_READY)
{
- emacs_gnutls_handshake (proc);
- return -1;
+ /* If the handshake count is under the limit, try the handshake
+ again and increment the handshake count. This count is kept
+ per process (connection), not globally. */
+ if (proc->gnutls_handshakes_tried < GNUTLS_EMACS_HANDSHAKES_LIMIT)
+ {
+ proc->gnutls_handshakes_tried++;
+ emacs_gnutls_handshake (proc);
+ GNUTLS_LOG2i (5, log_level, "Retried handshake",
+ proc->gnutls_handshakes_tried);
+ return -1;
+ }
+
+ GNUTLS_LOG (2, log_level, "Giving up on handshake; resetting retries");
+ proc->gnutls_handshakes_tried = 0;
+ return 0;
}
rtnval = fn_gnutls_record_recv (state, buf, nbyte);
if (rtnval >= 0)
#include <gnutls/gnutls.h>
#include <gnutls/x509.h>
+/* This limits the attempts to handshake per process (connection). */
+#define GNUTLS_EMACS_HANDSHAKES_LIMIT 100
+
typedef enum
{
/* Initialization stages. */
#define GNUTLS_LOG2(level, max, string, extra) do { if (level <= max) { gnutls_log_function2 (level, "(Emacs) " string, extra); } } while (0)
+#define GNUTLS_LOG2i(level, max, string, extra) do { if (level <= max) { gnutls_log_function2i (level, "(Emacs) " string, extra); } } while (0)
+
extern EMACS_INT
emacs_gnutls_write (struct Lisp_Process *proc, const char *buf, EMACS_INT nbyte);
extern EMACS_INT
return val >= column;
}
\f
-DEFUN ("move-to-column", Fmove_to_column, Smove_to_column, 1, 2, "p",
+DEFUN ("move-to-column", Fmove_to_column, Smove_to_column, 1, 2,
+ "NMove to column: ",
doc: /* Move point to column COLUMN in the current line.
Interactively, COLUMN is the value of prefix numeric argument.
The column of a character is calculated by adding together the widths
EMACS_INT it_start;
int first_x, it_overshoot_count = 0;
int overshoot_handled = 0;
+ int disp_string_at_start_p = 0;
itdata = bidi_shelve_cache ();
SET_TEXT_POS (pt, PT, PT_BYTE);
{
const char *s = SSDATA (it.string);
const char *e = s + SBYTES (it.string);
+
+ disp_string_at_start_p = it.string_from_display_prop_p;
while (s < e)
{
if (*s++ == '\n')
/* IT may move too far if truncate-lines is on and PT lies
beyond the right margin. IT may also move too far if the
starting point is on a Lisp string that has embedded
- newlines. In these cases, backtrack. */
+ newlines, or spans several screen lines. In these cases,
+ backtrack. */
if (IT_CHARPOS (it) > it_start)
{
/* We need to backtrack also if the Lisp string contains no
&& it.method == GET_FROM_BUFFER
&& it.c == '\n')
it_overshoot_count = 1;
+ else if (disp_string_at_start_p && it.vpos > 0)
+ {
+ /* This is the case of a display string that spans
+ several screen lines. In that case, we end up at the
+ end of the string, and it.vpos tells us how many
+ screen lines we need to backtrack. */
+ it_overshoot_count = it.vpos;
+ }
if (it_overshoot_count > 0)
move_it_by_lines (&it, -it_overshoot_count);
syms_of_indent (void)
{
DEFVAR_BOOL ("indent-tabs-mode", indent_tabs_mode,
- doc: /* *Indentation can insert tabs if this is non-nil. */);
+ doc: /* Indentation can insert tabs if this is non-nil. */);
indent_tabs_mode = 1;
defsubr (&Scurrent_indentation);
Time last_event_timestamp;
static Lisp_Object Qx_set_selection, Qhandle_switch_frame;
+static Lisp_Object Qhandle_select_window;
Lisp_Object QPRIMARY;
static Lisp_Object Qself_insert_command;
? EQ (CAR_SAFE (Vtransient_mark_mode), Qonly)
: (!NILP (Vselect_active_regions)
&& !NILP (Vtransient_mark_mode)))
- && !EQ (Vthis_command, Qhandle_switch_frame))
+ && NILP (Fmemq (Vthis_command,
+ Vselection_inhibit_update_commands)))
{
EMACS_INT beg =
XINT (Fmarker_position (BVAR (current_buffer, mark)));
= CONSP (Vinhibit_quit) ? XCAR (Vinhibit_quit) : Vinhibit_quit;
Lisp_Object fun = CONSP (Vinhibit_quit) ? XCDR (Vinhibit_quit) : Qnil;
Lisp_Object args[4];
- args[0] = build_string ("Error in %s (%s): %s");
+ args[0] = build_string ("Error in %s (%s): %S");
args[1] = hook;
args[2] = fun;
args[3] = error_data;
memset (keybuf, 0, sizeof keybuf);
GCPRO1 (keybuf[0]);
- gcpro1.nvars = (sizeof keybuf/sizeof (keybuf[0]));
+ gcpro1.nvars = (sizeof keybuf / sizeof (keybuf[0]));
if (NILP (continue_echo))
{
cancel_hourglass ();
#endif
- i = read_key_sequence (keybuf, (sizeof keybuf/sizeof (keybuf[0])),
+ i = read_key_sequence (keybuf, (sizeof keybuf / sizeof (keybuf[0])),
prompt, ! NILP (dont_downcase_last),
! NILP (can_return_switch_frame), 0);
errno = old_errno;
}
+/* If Emacs is stuck because `inhibit-quit' is true, then keep track
+ of the number of times C-g has been requested. If C-g is pressed
+ enough times, then quit anyway. See bug#6585. */
+static int force_quit_count;
+
/* This routine is called at interrupt level in response to C-g.
It is called from the SIGINT handler or kbd_buffer_store_event.
UNGCPRO;
}
else
- /* Else request quit when it's safe */
- Vquit_flag = Qt;
+ { /* Else request quit when it's safe. */
+ if (NILP (Vquit_flag))
+ force_quit_count = 0;
+ if (++force_quit_count == 3)
+ {
+ immediate_quit = 1;
+ Vinhibit_quit = Qnil;
+ }
+ Vquit_flag = Qt;
+ }
}
/* TODO: The longjmp in this call throws the NS event loop integration off,
DEFSYM (Qx_set_selection, "x-set-selection");
DEFSYM (QPRIMARY, "PRIMARY");
DEFSYM (Qhandle_switch_frame, "handle-switch-frame");
+ DEFSYM (Qhandle_select_window, "handle-select-window");
DEFSYM (Qinput_method_function, "input-method-function");
DEFSYM (Qinput_method_exit_on_first_char, "input-method-exit-on-first-char");
Vdeferred_action_function = Qnil;
DEFVAR_LISP ("delayed-warnings-list", Vdelayed_warnings_list,
- doc: /* List of warnings to be displayed as soon as possible.
+ doc: /* List of warnings to be displayed after this command.
Each element must be a list (TYPE MESSAGE [LEVEL [BUFFER-NAME]]),
as per the args of `display-warning' (which see).
If this variable is non-nil, `delayed-warnings-hook' will be run
`deactivate-mark' call uses this to set the window selection. */);
Vsaved_region_selection = Qnil;
+ DEFVAR_LISP ("selection-inhibit-update-commands",
+ Vselection_inhibit_update_commands,
+ doc: /* List of commands which should not update the selection.
+Normally, if `select-active-regions' is non-nil and the mark remains
+active after a command (i.e. the mark was not deactivated), the Emacs
+command loop sets the selection to the text in the region. However,
+if the command is in this list, the selection is not updated. */);
+ Vselection_inhibit_update_commands
+ = list2 (Qhandle_switch_frame, Qhandle_select_window);
+
DEFVAR_LISP ("debug-on-event",
Vdebug_on_event,
doc: /* Enter debugger on this event. When Emacs
ENUM_BF (Lisp_Misc_Type) type : 16; /* = Lisp_Misc_??? */
unsigned gcmarkbit : 1;
int spacer : 15;
- /* Make it as long as "Lisp_Free without padding". */
- void *fill;
};
struct Lisp_Marker
unsigned gcmarkbit : 1;
int spacer : 15;
union Lisp_Misc *chain;
-#ifdef USE_LSB_TAG
- /* Try to make sure that sizeof(Lisp_Misc) preserves TYPEBITS-alignment.
- This assumes that Lisp_Marker is the largest of the alternatives and
- that Lisp_Misc_Any has the same size as "Lisp_Free w/o padding". */
- char padding[((((sizeof (struct Lisp_Marker) - 1) >> GCTYPEBITS) + 1)
- << GCTYPEBITS) - sizeof (struct Lisp_Misc_Any)];
-#endif
};
/* To get the type field of a union Lisp_Misc, use XMISCTYPE.
union Lisp_Misc
{
struct Lisp_Misc_Any u_any; /* Supertype of all Misc types. */
- struct Lisp_Free u_free; /* Includes padding to force alignment. */
- struct Lisp_Marker u_marker; /* 5 */
- struct Lisp_Overlay u_overlay; /* 5 */
- struct Lisp_Save_Value u_save_value; /* 3 */
+ struct Lisp_Free u_free;
+ struct Lisp_Marker u_marker;
+ struct Lisp_Overlay u_overlay;
+ struct Lisp_Save_Value u_save_value;
};
union Lisp_Fwd
{
- struct Lisp_Intfwd u_intfwd; /* 2 */
- struct Lisp_Boolfwd u_boolfwd; /* 2 */
- struct Lisp_Objfwd u_objfwd; /* 2 */
- struct Lisp_Buffer_Objfwd u_buffer_objfwd; /* 2 */
- struct Lisp_Kboard_Objfwd u_kboard_objfwd; /* 2 */
+ struct Lisp_Intfwd u_intfwd;
+ struct Lisp_Boolfwd u_boolfwd;
+ struct Lisp_Objfwd u_objfwd;
+ struct Lisp_Buffer_Objfwd u_buffer_objfwd;
+ struct Lisp_Kboard_Objfwd u_kboard_objfwd;
};
\f
/* Lisp floating point type */
#define GC_USE_GCPROS_CHECK_ZOMBIES 3
#ifndef GC_MARK_STACK
-#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
+#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
#endif
/* Whether we do the stack marking manually. */
extern struct buffer * allocate_buffer (void);
extern int valid_lisp_object_p (Lisp_Object);
+#ifdef REL_ALLOC
+/* Defined in ralloc.c */
+extern void *r_alloc (void **, size_t);
+extern void r_alloc_free (void **);
+extern void *r_re_alloc (void **, size_t);
+extern void r_alloc_reset_variable (void **, void **);
+#endif
+
/* Defined in chartab.c */
EXFUN (Fmake_char_table, 2);
EXFUN (Fset_char_table_parent, 2);
#ifdef HAVE_LIBXML2
/* Defined in xml.c */
extern void syms_of_xml (void);
+extern void xml_cleanup_parser (void);
#endif
#ifdef HAVE_MENUS
}
/* Stop scanning if no colon was found before end marker. */
- if (!in_file_vars)
+ if (!in_file_vars || ch == '\n' || ch == EOF)
break;
while (i > 0 && (var[i - 1] == ' ' || var[i - 1] == '\t'))
ch = READCHAR;
}
if (! in_file_vars)
- /* The value was terminated by an end-marker, which
- remove. */
+ /* The value was terminated by an end-marker, which remove. */
i -= 3;
while (i > 0 && (val[i - 1] == ' ' || val[i - 1] == '\t'))
i--;
Vread_circle = Qt;
DEFVAR_LISP ("load-path", Vload_path,
- doc: /* *List of directories to search for files to load.
+ doc: /* List of directories to search for files to load.
Each element is a string (directory name) or nil (try default directory).
Initialized based on EMACSLOADPATH environment variable, if any,
otherwise to default specified by file `epaths.h' when Emacs was built. */);
#define EMACS_INT long
#define pI "l"
#define EMACS_UINT unsigned long
-
-#ifdef REL_ALLOC
-#ifndef _MALLOC_INTERNAL
-/* "char *" because ralloc.c defines it that way. gmalloc.c thinks it
- is allowed to prototype these as "void *" so we don't prototype in
- that case. You're right: it stinks! */
-extern char *r_alloc (), *r_re_alloc ();
-extern void r_alloc_free ();
-#endif /* not _MALLOC_INTERNAL */
-#endif /* REL_ALLOC */
$(BLD)/image.$(O) \
$(BLD)/terminal.$(O) \
$(BLD)/menu.$(O) \
+ $(BLD)/xml.$(O) \
$(BLD)/w32term.$(O) \
$(BLD)/w32xfns.$(O) \
$(BLD)/w32fns.$(O) \
process.c callproc.c unexw32.c \
region-cache.c sound.c atimer.c \
doprnt.c intervals.c textprop.c composite.c \
- gnutls.c
+ gnutls.c xml.c
SOME_MACHINE_OBJECTS = dosfns.o msdos.o \
xterm.o xfns.o xmenu.o xselect.o xrdb.o xsmfns.o dbusbind.o
obj = $(GLOBAL_SOURCES:.c=.o)
$(LISP_H) \
$(PROCESS_H)
+$(BLD)/xml.$(O) : \
+ $(SRC)/xml.c \
+ $(SRC)/buffer.h \
+ $(SRC)/w32.h \
+ $(CONFIG_H) \
+ $(LISP_H)
+
$(BLD)/image.$(O) : \
$(SRC)/image.c \
$(SRC)/epaths.h \
static Lisp_Object Qminibuffer_completion_table;
static Lisp_Object Qminibuffer_completion_predicate;
static Lisp_Object Qminibuffer_completion_confirm;
-static Lisp_Object Quser_variable_p;
+static Lisp_Object Qcustom_variable_p;
static Lisp_Object Qminibuffer_default;
#endif /* NOTDEF */
DEFUN ("read-variable", Fread_variable, Sread_variable, 1, 2, 0,
- doc: /* Read the name of a user variable and return it as a symbol.
+ doc: /* Read the name of a user option and return it as a symbol.
Prompt with PROMPT. By default, return DEFAULT-VALUE or its first element
if it is a list.
-A user variable is one for which `user-variable-p' returns non-nil. */)
+A user option, or customizable variable, is one for which
+`custom-variable-p' returns non-nil. */)
(Lisp_Object prompt, Lisp_Object default_value)
{
Lisp_Object name, default_string;
default_string = default_value;
name = Fcompleting_read (prompt, Vobarray,
- Quser_variable_p, Qt,
+ Qcustom_variable_p, Qt,
Qnil, Qnil, default_string, Qnil);
if (NILP (name))
return name;
staticpro (&last_minibuf_string);
last_minibuf_string = Qnil;
- DEFSYM (Quser_variable_p, "user-variable-p");
DEFSYM (Qminibuffer_history, "minibuffer-history");
DEFSYM (Qbuffer_name_history, "buffer-name-history");
Fset (Qbuffer_name_history, Qnil);
+ DEFSYM (Qcustom_variable_p, "custom-variable-p");
DEFSYM (Qminibuffer_setup_hook, "minibuffer-setup-hook");
DEFSYM (Qminibuffer_exit_hook, "minibuffer-exit-hook");
DEFSYM (Qhistory_length, "history-length");
DEFSYM (Qreverse, "reverse");
DEFVAR_LISP ("dos-unsupported-char-glyph", Vdos_unsupported_char_glyph,
- doc: /* *Glyph to display instead of chars not supported by current codepage.
+ doc: /* Glyph to display instead of chars not supported by current codepage.
This variable is used only by MS-DOS terminals. */);
Vdos_unsupported_char_glyph = make_number ('\177');
restrict the height to just one monitor. So we override this. */
- (NSRect)constrainFrameRect:(NSRect)frameRect toScreen:(NSScreen *)screen
{
- /* When making the frame visible for the first time, we want to
- constrain. Other times not. */
+ /* When making the frame visible for the first time or if there is just
+ one screen, we want to constrain. Other times not. */
+ NSUInteger nr_screens = [[NSScreen screens] count];
struct frame *f = ((EmacsView *)[self delegate])->emacsframe;
NSTRACE (constrainFrameRect);
+ if (nr_screens == 1)
+ return [super constrainFrameRect:frameRect toScreen:screen];
+
if (f->output_data.ns->dont_constrain
|| ns_menu_bar_should_be_hidden ())
return frameRect;
Vprint_gensym = Qnil;
DEFVAR_LISP ("print-circle", Vprint_circle,
- doc: /* *Non-nil means print recursive structures using #N= and #N# syntax.
+ doc: /* Non-nil means print recursive structures using #N= and #N# syntax.
If nil, printing proceeds recursively and may lead to
`max-lisp-eval-depth' being exceeded or an error may occur:
\"Apparently circular structure being printed.\" Also see
Vprint_circle = Qnil;
DEFVAR_LISP ("print-continuous-numbering", Vprint_continuous_numbering,
- doc: /* *Non-nil means number continuously across print calls.
+ doc: /* Non-nil means number continuously across print calls.
This affects the numbers printed for #N= labels and #M# references.
See also `print-circle', `print-gensym', and `print-number-table'.
This variable should not be set with `setq'; bind it with a `let' instead. */);
#ifdef HAVE_GNUTLS
p->gnutls_initstage = GNUTLS_STAGE_EMPTY;
+ /* Default log level. */
p->gnutls_log_level = 0;
+ /* GnuTLS handshakes attempted for this connection. */
+ p->gnutls_handshakes_tried = 0;
p->gnutls_p = 0;
p->gnutls_state = NULL;
p->gnutls_x509_cred = NULL;
DEFSYM (Qargs, "args");
DEFVAR_BOOL ("delete-exited-processes", delete_exited_processes,
- doc: /* *Non-nil means delete processes immediately when they exit.
+ doc: /* Non-nil means delete processes immediately when they exit.
A value of nil means don't delete them until `list-processes' is run. */);
delete_exited_processes = 1;
gnutls_certificate_client_credentials gnutls_x509_cred;
gnutls_anon_client_credentials_t gnutls_anon_cred;
int gnutls_log_level;
+ int gnutls_handshakes_tried;
int gnutls_p;
#endif
};
/* Macros for rounding. Note that rounding to any value is possible
by changing the definition of PAGE. */
#define PAGE (getpagesize ())
-#define ALIGNED(addr) (((unsigned long int) (addr) & (page_size - 1)) == 0)
#define ROUNDUP(size) (((unsigned long int) (size) + page_size - 1) \
& ~(page_size - 1))
-#define ROUND_TO_PAGE(addr) (addr & (~(page_size - 1)))
#define MEM_ALIGN sizeof (double)
#define MEM_ROUNDUP(addr) (((unsigned long int)(addr) + MEM_ALIGN - 1) \
} *heap_ptr;
#define NIL_HEAP ((heap_ptr) 0)
-#define HEAP_PTR_SIZE (sizeof (struct heap))
/* This is the first heap object.
If we need additional heap objects, each one resides at the beginning of
}
}
}
-
-/* Return the total size in use by relocating allocator,
- above where malloc gets space. */
-
-long
-r_alloc_size_in_use (void)
-{
- return (char *) break_value - (char *) virtual_break_value;
-}
\f
/* The meat - allocating, freeing, and relocating blocs. */
__morecore hook values - in particular, __default_morecore in the
GNU malloc package. */
-POINTER
+static POINTER
r_alloc_sbrk (long int size)
{
register bloc_ptr b;
return *ptr;
}
-/* Disable relocations, after making room for at least SIZE bytes
- of non-relocatable heap if possible. The relocatable blocs are
- guaranteed to hold still until thawed, even if this means that
- malloc must return a null pointer. */
-
-void
-r_alloc_freeze (long int size)
-{
- if (! r_alloc_initialized)
- r_alloc_init ();
-
- /* If already frozen, we can't make any more room, so don't try. */
- if (r_alloc_freeze_level > 0)
- size = 0;
- /* If we can't get the amount requested, half is better than nothing. */
- while (size > 0 && r_alloc_sbrk (size) == 0)
- size /= 2;
- ++r_alloc_freeze_level;
- if (size > 0)
- r_alloc_sbrk (-size);
-}
-
-void
-r_alloc_thaw (void)
-{
-
- if (! r_alloc_initialized)
- r_alloc_init ();
-
- if (--r_alloc_freeze_level < 0)
- abort ();
-
- /* This frees all unused blocs. It is not too inefficient, as the resize
- and memcpy is done only once. Afterwards, all unreferenced blocs are
- already shrunk to zero size. */
- if (!r_alloc_freeze_level)
- {
- bloc_ptr *b = &first_bloc;
- while (*b)
- if (!(*b)->variable)
- free_bloc (*b);
- else
- b = &(*b)->next;
- }
-}
-
#if defined (emacs) && defined (DOUG_LEA_MALLOC)
Emacs currently calls xrealloc on the results of get_current_dir name,
to avoid a crash just use the Emacs implementation for that function. */
#define BROKEN_GET_CURRENT_DIR_NAME 1
+
+/* Conservative garbage collection has not been tested, so for now
+ play it safe and stick with the old-fashioned way of marking. */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
if (-1 == openpty (&fd, &dummy, pty_name, 0, 0)) \
fd = -1; \
sigsetmask (mask); \
- emacs_close (dummy); \
+ if (fd >= 0) \
+ emacs_close (dummy); \
} \
while (0)
#define HAVE_SOCKETS
-/* vfork() interacts badly with setsid(), causing ptys to fail to
- change their controlling terminal */
-#define vfork fork
-
-/* This should work (at least when compiling with gcc). But I have no way
- or intention to verify or even test it. If you encounter a problem with
- it, feel free to change this setting, but please add a comment here about
- why it needed to be changed. */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
-
/* Emacs supplies its own malloc, but glib (part of Gtk+) calls
memalign and on Cygwin, that becomes the Cygwin-supplied memalign.
As malloc is not the Cygwin malloc, the Cygwin memalign always
It is already a controlling terminal of subprocess, because we did
ioctl TIOCSCTTY. */
#define DONT_REOPEN_PTY
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
/* Tell that garbage collector that setjmp is known to save all
registers relevant for conservative garbage collection in the jmp_buf. */
#define GC_SETJMP_WORKS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
|| defined __arm__ || defined __powerpc__ || defined __amd64__ \
|| defined __ia64__ || defined __sh__
#define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
-#ifdef __mc68000__
-#define GC_LISP_OBJECT_ALIGNMENT 2
-#endif
#ifdef __ia64__
#define GC_MARK_SECONDARY_STACK() \
do { \
__builtin_ia64_bsp ()); \
} while (0)
#endif
+#else
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
#endif
#endif /* emacs */
#define POSIX_SIGNALS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method for marking the stack. */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
header sections which lose when `static' is defined away, as it is
on HP-UX. (You get duplicate symbol errors on linking). */
#undef _FILE_OFFSET_BITS
+
+/* Conservative garbage collection has not been tested, so for now
+ play it safe and stick with the old-fashioned way of marking. */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
\f
/* The data segment on this machine always starts at address 0x40000000. */
#define DATA_SEG_BITS 0x40000000
/* Tested on Irix 6.5. SCM worked on earlier versions. */
#define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
/* DATA_SEG_BITS forces extra bits to be or'd in with any pointers which
#undef HAVE_UTIMES
#undef HAVE_SETRLIMIT
#undef HAVE_SETPGID
+/* If you think about defining HAVE_GETCWD, don't: the alternative
+ getwd is redefined on w32.c, and does not really return the current
+ directory, to get the desired results elsewhere in Emacs */
#undef HAVE_GETCWD
#define HAVE_SHUTDOWN 1
#define stricmp _stricmp
#define tzset _tzset
+/* Include time.h before redirecting tzname, since MSVC's time.h
+ defines _tzname to call a function, but also declares tzname a
+ 2-element array. Having the redirection before including the
+ header thus has the effect of declaring a function that returns an
+ array, and triggers an error message. */
+#include <time.h>
#define tzname _tzname
#if !defined (_MSC_VER) || (_MSC_VER < 1400)
#undef utime
/* Tell the garbage collector that setjmp is known to save all
registers relevant for conservative garbage collection in the jmp_buf. */
#define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
/* Tell that garbage collector that setjmp is known to save all
registers relevant for conservative garbage collection in the jmp_buf. */
#define GC_SETJMP_WORKS 1
-
-/* Use the GC_MAKE_GCPROS_NOOPS (see lisp.h) method. */
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
}
#define GC_SETJMP_WORKS 1
-#define GC_MARK_STACK GC_MAKE_GCPROS_NOOPS
}
#define PENDING_OUTPUT_COUNT(FILE) ((FILE)->__ptr - (FILE)->__base)
+
+/* Conservative garbage collection has not been tested, so for now
+ play it safe and stick with the old-fashioned way of marking. */
+#define GC_MARK_STACK GC_USE_GCPROS_AS_BEFORE
/* String search routines for GNU Emacs.
- Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2012
- Free Software Foundation, Inc.
+
+Copyright (C) 1985-1987, 1993-1994, 1997-1999, 2001-2012
+ Free Software Foundation, Inc.
This file is part of GNU Emacs.
Set point to the beginning of the occurrence found, and return point.
Unlike `word-search-backward', the end of STRING need not match a word
-boundary unless it ends in whitespace.
+boundary, unless STRING ends in whitespace.
An optional second argument bounds the search; it is a buffer position.
The match found must not extend before that position.
Set point to the end of the occurrence found, and return point.
Unlike `word-search-forward', the end of STRING need not match a word
-boundary unless it ends in whitespace.
+boundary, unless STRING ends in whitespace.
An optional second argument bounds the search; it is a buffer position.
The match found must not extend after that position.
DEFVAR_BOOL ("open-paren-in-column-0-is-defun-start",
open_paren_in_column_0_is_defun_start,
- doc: /* *Non-nil means an open paren in column 0 denotes the start of a defun. */);
+ doc: /* Non-nil means an open paren in column 0 denotes the start of a defun. */);
open_paren_in_column_0_is_defun_start = 1;
CHECK_STRING_CAR (dlls);
if ((library_dll = LoadLibrary (SDATA (XCAR (dlls)))))
{
- found = XCAR (dlls);
+ char name[MAX_PATH];
+ DWORD len;
+
+ len = GetModuleFileNameA (library_dll, name, sizeof (name));
+ found = Fcons (XCAR (dlls),
+ (len > 0)
+ /* Possibly truncated */
+ ? make_specified_string (name, -1, len, 1)
+ : Qnil);
break;
}
}
if (need_to_alloc)
sbrk (need_to_alloc);
}
-
-#if (_MSC_VER >= 1000 && _MSC_VER < 1300 && !defined (USE_CRT_DLL))
-
-/* MSVC 4.2 invokes these functions from mainCRTStartup to initialize
- a heap via HeapCreate. They are normally defined by the runtime,
- but we override them here so that the unnecessary HeapCreate call
- is not performed. */
-
-int __cdecl
-_heap_init (void)
-{
- /* Stepping through the assembly indicates that mainCRTStartup is
- expecting a nonzero success return value. */
- return 1;
-}
-
-void __cdecl
-_heap_term (void)
-{
- return;
-}
-
-#endif
-
static int
is_simple_dialog (Lisp_Object contents)
{
- Lisp_Object options = XCDR (contents);
+ Lisp_Object options;
Lisp_Object name, yes, no, other;
+ if (!CONSP (contents))
+ return 0;
+ options = XCDR (contents);
+
yes = build_string ("Yes");
no = build_string ("No");
if (!CONSP (options))
return 0;
- name = XCAR (XCAR (options));
- if (!CONSP (options))
+ name = XCAR (options);
+ if (!CONSP (name))
return 0;
+ name = XCAR (name);
if (!NILP (Fstring_equal (name, yes)))
other = no;
if (!CONSP (options))
return 0;
- name = XCAR (XCAR (options));
+ name = XCAR (options);
+ if (!CONSP (name))
+ return 0;
+ name = XCAR (name);
if (NILP (Fstring_equal (name, other)))
return 0;
if (unicode_message_box)
{
WCHAR *text, *title;
+ USE_SAFE_ALLOCA;
if (STRINGP (temp))
{
one utf16 word, so we cannot simply use the character
length of temp. */
int utf8_len = strlen (utf8_text);
- text = alloca ((utf8_len + 1) * sizeof (WCHAR));
+ SAFE_ALLOCA (text, WCHAR *, (utf8_len + 1) * sizeof (WCHAR));
utf8to16 (utf8_text, utf8_len, text);
}
else
}
answer = unicode_message_box (FRAME_W32_WINDOW (f), text, title, type);
+ SAFE_FREE ();
}
else
{
char *out_string, *p, *q;
int return_value;
size_t nlen, orig_len;
+ USE_SAFE_ALLOCA;
if (menu_separator_name_p (wv->name))
{
if (wv->key != NULL)
{
- out_string = alloca (strlen (wv->name) + strlen (wv->key) + 2);
+ SAFE_ALLOCA (out_string, char *,
+ strlen (wv->name) + strlen (wv->key) + 2);
strcpy (out_string, wv->name);
strcat (out_string, "\t");
strcat (out_string, wv->key);
if (nlen > orig_len)
{
p = out_string;
- out_string = alloca (nlen + 1);
+ SAFE_ALLOCA (out_string, char *, nlen + 1);
q = out_string;
while (*p)
{
if (fuFlags & MF_OWNERDRAW)
utf16_string = local_alloc ((utf8_len + 1) * sizeof (WCHAR));
else
- utf16_string = alloca ((utf8_len + 1) * sizeof (WCHAR));
+ SAFE_ALLOCA (utf16_string, WCHAR *, (utf8_len + 1) * sizeof (WCHAR));
utf8to16 (out_string, utf8_len, utf16_string);
return_value = unicode_append_menu (menu, fuFlags,
FALSE, &info);
}
}
+ SAFE_FREE ();
return return_value;
}
from cus-start.el and other places, like "M-x set-variable". */
DEFVAR_BOOL ("x-use-underline-position-properties",
x_use_underline_position_properties,
- doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
+ doc: /* Non-nil means make use of UNDERLINE_POSITION font properties.
A value of nil means ignore them. If you encounter fonts with bogus
UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
to 4.1, set this to nil. You can also use `underline-minimum-offset'
DEFVAR_BOOL ("x-underline-at-descent-line",
x_underline_at_descent_line,
- doc: /* *Non-nil means to draw the underline at the same place as the descent line.
+ doc: /* Non-nil means to draw the underline at the same place as the descent line.
A value of nil means to draw the underline according to the value of the
variable `x-use-underline-position-properties', which is usually at the
baseline level. The default value is nil. */);
Lisp_Object sibling, pwindow, swindow IF_LINT (= Qnil), delta;
EMACS_INT startpos IF_LINT (= 0);
int top IF_LINT (= 0), new_top, resize_failed;
+ Mouse_HLInfo *hlinfo;
w = decode_any_window (window);
XSETWINDOW (window, w);
}
BLOCK_INPUT;
+ hlinfo = MOUSE_HL_INFO (f);
+ /* We are going to free the glyph matrices of WINDOW, and with that
+ we might lose any information about glyph rows that have some of
+ their glyphs highlighted in mouse face. (These rows are marked
+ with a non-zero mouse_face_p flag.) If WINDOW indeed has some
+ glyphs highlighted in mouse face, signal to frame's up-to-date
+ hook that mouse highlight was overwritten, so that it will
+ arrange for redisplaying the highlight. */
+ if (EQ (hlinfo->mouse_face_window, window))
+ {
+ hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1;
+ hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1;
+ hlinfo->mouse_face_window = Qnil;
+ }
free_window_matrices (r);
windows_or_buffers_changed++;
}
else
p->pointm = Fcopy_marker (w->pointm, Qnil);
+ XMARKER (p->pointm)->insertion_type
+ = !NILP (Vwindow_point_insertion_type);
p->start = Fcopy_marker (w->start, Qnil);
p->start_at_line_beg = w->start_at_line_beg;
{
/* DVPOS == 0 means move to the start of the screen line. */
move_it_vertically_backward (it, 0);
- xassert (it->current_x == 0 && it->hpos == 0);
/* Let next call to line_bottom_y calculate real line height */
last_height = 0;
}
{
move_it_to (it, -1, -1, -1, it->vpos + dvpos, MOVE_TO_VPOS);
if (!IT_POS_VALID_AFTER_MOVE_P (it))
- move_it_to (it, IT_CHARPOS (*it) + 1, -1, -1, -1, MOVE_TO_POS);
+ {
+ /* Only move to the next buffer position if we ended up in a
+ string from display property, not in an overlay string
+ (before-string or after-string). That is because the
+ latter don't conceal the underlying buffer position, so
+ we can ask to move the iterator to the exact position we
+ are interested in. Note that, even if we are already at
+ IT_CHARPOS (*it), the call below is not a no-op, as it
+ will detect that we are at the end of the string, pop the
+ iterator, and compute it->current_x and it->hpos
+ correctly. */
+ move_it_to (it, IT_CHARPOS (*it) + it->string_from_display_prop_p,
+ -1, -1, -1, MOVE_TO_POS);
+ }
}
else
{
chprop = Fget_char_property (make_number (glyph_pos), Qcursor,
glyph->object);
+ if (!NILP (chprop))
+ {
+ /* If the string came from a `display' text property,
+ look up the buffer position of that property and
+ use that position to update bpos_max, as if we
+ actually saw such a position in one of the row's
+ glyphs. This helps with supporting integer values
+ of `cursor' property on the display string in
+ situations where most or all of the row's buffer
+ text is completely covered by display properties,
+ so that no glyph with valid buffer positions is
+ ever seen in the row. */
+ EMACS_INT prop_pos =
+ string_buffer_position_lim (glyph->object, pos_before,
+ pos_after, 0);
+
+ if (prop_pos >= pos_before)
+ bpos_max = prop_pos - 1;
+ }
if (INTEGERP (chprop))
{
bpos_covered = bpos_max + XINT (chprop);
/* If the `cursor' property covers buffer positions up
to and including point, we should display cursor on
- this glyph. Note that overlays and text properties
- with string values stop bidi reordering, so every
- buffer position to the left of the string is always
- smaller than any position to the right of the
- string. Therefore, if a `cursor' property on one
+ this glyph. Note that, if a `cursor' property on one
of the string's characters has an integer value, we
will break out of the loop below _before_ we get to
the position match above. IOW, integer values of
chprop = Fget_char_property (make_number (glyph_pos), Qcursor,
glyph->object);
+ if (!NILP (chprop))
+ {
+ EMACS_INT prop_pos =
+ string_buffer_position_lim (glyph->object, pos_before,
+ pos_after, 0);
+
+ if (prop_pos >= pos_before)
+ bpos_max = prop_pos - 1;
+ }
if (INTEGERP (chprop))
{
bpos_covered = bpos_max + XINT (chprop);
|| pos <= tem)
{
/* If the string from which this glyph came is
- found in the buffer at point, then we've
- found the glyph we've been looking for. If
- it comes from an overlay (tem == 0), and it
- has the `cursor' property on one of its
+ found in the buffer at point, or at position
+ that is closer to point than pos_after, then
+ we've found the glyph we've been looking for.
+ If it comes from an overlay (tem == 0), and
+ it has the `cursor' property on one of its
glyphs, record that glyph as a candidate for
displaying the cursor. (As in the
unidirectional version, we will display the
cursor on the last candidate we find.) */
- if (tem == 0 || tem == pt_old)
+ if (tem == 0
+ || tem == pt_old
+ || (tem - pt_old > 0 && tem < pos_after))
{
/* The glyphs from this string could have
been reordered. Find the one with the
}
}
- if (tem == pt_old)
+ if (tem == pt_old
+ || (tem - pt_old > 0 && tem < pos_after))
goto compute_x;
}
if (tem)
continued. */
&& !(MATRIX_ROW_END_CHARPOS (row) == first_changed_pos
&& (row->continued_p
- || row->exact_window_width_line_p)))
+ || row->exact_window_width_line_p))
+ /* If ROW->end is beyond ZV, then ROW->end is outdated and
+ needs to be recomputed, so don't consider this row as
+ unchanged. This happens when the last line was
+ bidi-reordered and was killed immediately before this
+ redisplay cycle. In that case, ROW->end stores the
+ buffer position of the first visual-order character of
+ the killed text, which is now beyond ZV. */
+ && CHARPOS (row->end.pos) <= ZV)
row_found = row;
/* Stop if last visible row. */
it->c = it->char_to_display = ' ';
it->len = 1;
+ /* If the default face was remapped, be sure to use the
+ remapped face for the appended newline. */
if (default_face_p)
- it->face_id = DEFAULT_FACE_ID;
+ it->face_id = lookup_basic_face (it->f, DEFAULT_FACE_ID);
else if (it->face_before_selective_p)
it->face_id = it->saved_face_id;
face = FACE_FROM_ID (it->f, it->face_id);
static void
extend_face_to_end_of_line (struct it *it)
{
- struct face *face;
+ struct face *face, *default_face;
struct frame *f = it->f;
/* If line is already filled, do nothing. Non window-system frames
&& !it->glyph_row->continued_p))
return;
+ /* The default face, possibly remapped. */
+ default_face = FACE_FROM_ID (f, lookup_basic_face (f, DEFAULT_FACE_ID));
+
/* Face extension extends the background and box of IT->face_id
to the end of the line. If the background equals the background
of the frame, we don't have to do anything. */
if (it->glyph_row->used[TEXT_AREA] == 0)
{
it->glyph_row->glyphs[TEXT_AREA][0] = space_glyph;
- it->glyph_row->glyphs[TEXT_AREA][0].face_id = it->face_id;
+ it->glyph_row->glyphs[TEXT_AREA][0].face_id = face->id;
it->glyph_row->used[TEXT_AREA] = 1;
}
#ifdef HAVE_WINDOW_SYSTEM
face, to avoid painting the rest of the window with
the region face, if the region ends at ZV. */
if (it->glyph_row->ends_at_zv_p)
- it->face_id = DEFAULT_FACE_ID;
+ it->face_id = default_face->id;
else
it->face_id = face->id;
append_stretch_glyph (it, make_number (0), stretch_width,
avoid painting the rest of the window with the region face,
if the region ends at ZV. */
if (it->glyph_row->ends_at_zv_p)
- it->face_id = DEFAULT_FACE_ID;
+ it->face_id = default_face->id;
else
it->face_id = face->id;
/* A row that displays right-to-left text must always have
its last face extended all the way to the end of line,
even if this row ends in ZV, because we still write to
- the screen left to right. */
- if (row->reversed_p)
+ the screen left to right. We also need to extend the
+ last face if the default face is remapped to some
+ different face, otherwise the functions that clear
+ portions of the screen will clear with the default face's
+ background color. */
+ if (row->reversed_p
+ || lookup_basic_face (it->f, DEFAULT_FACE_ID) != DEFAULT_FACE_ID)
extend_face_to_end_of_line (it);
break;
}
sprintf (buf, "%0*X", it->c < 0x10000 ? 4 : 6, it->c);
str = buf;
}
- for (len = 0; str[len] && ASCII_BYTE_P (str[len]); len++)
+ for (len = 0; str[len] && ASCII_BYTE_P (str[len]) && len < 6; len++)
code[len] = font->driver->encode_char (font, str[len]);
upper_len = (len + 1) / 2;
font->driver->text_extents (font, code, upper_len,
#ifdef HAVE_WINDOW_SYSTEM
DEFVAR_BOOL ("x-stretch-cursor", x_stretch_cursor_p,
- doc: /* *Non-nil means draw block cursor as wide as the glyph under it.
+ doc: /* Non-nil means draw block cursor as wide as the glyph under it.
For example, if a block cursor is over a tab, it will be drawn as
wide as that tab on the display. */);
x_stretch_cursor_p = 0;
#endif
DEFVAR_LISP ("show-trailing-whitespace", Vshow_trailing_whitespace,
- doc: /* *Non-nil means highlight trailing whitespace.
+ doc: /* Non-nil means highlight trailing whitespace.
The face used for trailing whitespace is `trailing-whitespace'. */);
Vshow_trailing_whitespace = Qnil;
Vnobreak_char_display = Qt;
DEFVAR_LISP ("void-text-area-pointer", Vvoid_text_area_pointer,
- doc: /* *The pointer shape to show in void text areas.
+ doc: /* The pointer shape to show in void text areas.
A value of nil means to show the text pointer. Other options are `arrow',
`text', `hand', `vdrag', `hdrag', `modeline', and `hourglass'. */);
Vvoid_text_area_pointer = Qarrow;
= Fcons (intern_c_string ("overlay-arrow-position"), Qnil);
DEFVAR_INT ("scroll-step", emacs_scroll_step,
- doc: /* *The number of lines to try scrolling a window by when point moves out.
+ doc: /* The number of lines to try scrolling a window by when point moves out.
If that fails to bring point back on frame, point is centered instead.
If this is zero, point is always centered after it moves off frame.
If you want scrolling to always be a line at a time, you should set
`scroll-conservatively' to a large value rather than set this to 1. */);
DEFVAR_INT ("scroll-conservatively", scroll_conservatively,
- doc: /* *Scroll up to this many lines, to bring point back on screen.
+ doc: /* Scroll up to this many lines, to bring point back on screen.
If point moves off-screen, redisplay will scroll by up to
`scroll-conservatively' lines in order to bring point just barely
onto the screen again. If that cannot be done, then redisplay
scroll_conservatively = 0;
DEFVAR_INT ("scroll-margin", scroll_margin,
- doc: /* *Number of lines of margin at the top and bottom of a window.
+ doc: /* Number of lines of margin at the top and bottom of a window.
Recenter the window whenever point gets within this many lines
of the top or bottom of the window. */);
scroll_margin = 0;
mode_line_inverse_video = 1;
DEFVAR_LISP ("line-number-display-limit", Vline_number_display_limit,
- doc: /* *Maximum buffer size for which line number should be displayed.
+ doc: /* Maximum buffer size for which line number should be displayed.
If the buffer is bigger than this, the line number does not appear
in the mode line. A value of nil means no limit. */);
Vline_number_display_limit = Qnil;
DEFVAR_INT ("line-number-display-limit-width",
line_number_display_limit_width,
- doc: /* *Maximum line width (in characters) for line number display.
+ doc: /* Maximum line width (in characters) for line number display.
If the average length of the lines near point is bigger than this, then the
line number may be omitted from the mode line. */);
line_number_display_limit_width = 200;
DEFVAR_BOOL ("highlight-nonselected-windows", highlight_nonselected_windows,
- doc: /* *Non-nil means highlight region even in nonselected windows. */);
+ doc: /* Non-nil means highlight region even in nonselected windows. */);
highlight_nonselected_windows = 0;
DEFVAR_BOOL ("multiple-frames", multiple_frames,
Vredisplay_end_trigger_functions = Qnil;
DEFVAR_LISP ("mouse-autoselect-window", Vmouse_autoselect_window,
- doc: /* *Non-nil means autoselect window with mouse pointer.
+ doc: /* Non-nil means autoselect window with mouse pointer.
If nil, do not autoselect windows.
A positive number means delay autoselection by that many seconds: a
window is autoselected only after the mouse has remained in that
Vmouse_autoselect_window = Qnil;
DEFVAR_LISP ("auto-resize-tool-bars", Vauto_resize_tool_bars,
- doc: /* *Non-nil means automatically resize tool-bars.
+ doc: /* Non-nil means automatically resize tool-bars.
This dynamically changes the tool-bar's height to the minimum height
that is needed to make all tool-bar items visible.
If value is `grow-only', the tool-bar's height is only increased
Vauto_resize_tool_bars = Qt;
DEFVAR_BOOL ("auto-raise-tool-bar-buttons", auto_raise_tool_bar_buttons_p,
- doc: /* *Non-nil means raise tool-bar buttons when the mouse moves over them. */);
+ doc: /* Non-nil means raise tool-bar buttons when the mouse moves over them. */);
auto_raise_tool_bar_buttons_p = 1;
DEFVAR_BOOL ("make-cursor-line-fully-visible", make_cursor_line_fully_visible_p,
- doc: /* *Non-nil means to scroll (recenter) cursor line if it is not fully visible. */);
+ doc: /* Non-nil means to scroll (recenter) cursor line if it is not fully visible. */);
make_cursor_line_fully_visible_p = 1;
DEFVAR_LISP ("tool-bar-border", Vtool_bar_border,
- doc: /* *Border below tool-bar in pixels.
+ doc: /* Border below tool-bar in pixels.
If an integer, use it as the height of the border.
If it is one of `internal-border-width' or `border-width', use the
value of the corresponding frame parameter.
Vtool_bar_border = Qinternal_border_width;
DEFVAR_LISP ("tool-bar-button-margin", Vtool_bar_button_margin,
- doc: /* *Margin around tool-bar buttons in pixels.
+ doc: /* Margin around tool-bar buttons in pixels.
If an integer, use that for both horizontal and vertical margins.
Otherwise, value should be a pair of integers `(HORZ . VERT)' with
HORZ specifying the horizontal margin, and VERT specifying the
Vtool_bar_button_margin = make_number (DEFAULT_TOOL_BAR_BUTTON_MARGIN);
DEFVAR_INT ("tool-bar-button-relief", tool_bar_button_relief,
- doc: /* *Relief thickness of tool-bar buttons. */);
+ doc: /* Relief thickness of tool-bar buttons. */);
tool_bar_button_relief = DEFAULT_TOOL_BAR_BUTTON_RELIEF;
DEFVAR_LISP ("tool-bar-style", Vtool_bar_style,
Vtool_bar_style = Qnil;
DEFVAR_INT ("tool-bar-max-label-size", tool_bar_max_label_size,
- doc: /* *Maximum number of characters a label can have to be shown.
+ doc: /* Maximum number of characters a label can have to be shown.
The tool bar style must also show labels for this to have any effect, see
`tool-bar-style'. */);
tool_bar_max_label_size = DEFAULT_TOOL_BAR_LABEL_SIZE;
DEFVAR_BOOL ("unibyte-display-via-language-environment",
unibyte_display_via_language_environment,
- doc: /* *Non-nil means display unibyte text according to language environment.
+ doc: /* Non-nil means display unibyte text according to language environment.
Specifically, this means that raw bytes in the range 160-255 decimal
are displayed by converting them to the equivalent multibyte characters
according to the current language environment. As a result, they are
unibyte_display_via_language_environment = 0;
DEFVAR_LISP ("max-mini-window-height", Vmax_mini_window_height,
- doc: /* *Maximum height for resizing mini-windows (the minibuffer and the echo area).
+ doc: /* Maximum height for resizing mini-windows (the minibuffer and the echo area).
If a float, it specifies a fraction of the mini-window frame's height.
If an integer, it specifies a number of lines. */);
Vmax_mini_window_height = make_float (0.25);
DEFSYM (Qauto_hscroll_mode, "auto-hscroll-mode");
DEFVAR_INT ("hscroll-margin", hscroll_margin,
- doc: /* *How many columns away from the window edge point is allowed to get
+ doc: /* How many columns away from the window edge point is allowed to get
before automatic hscrolling will horizontally scroll the window. */);
hscroll_margin = 5;
DEFVAR_LISP ("hscroll-step", Vhscroll_step,
- doc: /* *How many columns to scroll the window when point gets too close to the edge.
+ doc: /* How many columns to scroll the window when point gets too close to the edge.
When point is less than `hscroll-margin' columns from the window
edge, automatic hscrolling will scroll the window by the amount of columns
determined by this variable. If its value is a positive integer, scroll that
#endif /* GLYPH_DEBUG */
DEFVAR_INT ("overline-margin", overline_margin,
- doc: /* *Space between overline and text, in pixels.
+ doc: /* Space between overline and text, in pixels.
The default value is 2: the height of the overline (1 pixel) plus 1 pixel
margin to the character height. */);
overline_margin = 2;
display_hourglass_p = 1;
DEFVAR_LISP ("hourglass-delay", Vhourglass_delay,
- doc: /* *Seconds to wait before displaying an hourglass pointer when Emacs is busy. */);
+ doc: /* Seconds to wait before displaying an hourglass pointer when Emacs is busy. */);
Vhourglass_delay = make_number (DEFAULT_HOURGLASS_DELAY);
hourglass_atimer = NULL;
#endif
DEFVAR_LISP ("font-list-limit", Vfont_list_limit,
- doc: /* *Limit for font matching.
+ doc: /* Limit for font matching.
If an integer > 0, font matching functions won't load more than
that number of fonts when searching for a matching font. */);
Vfont_list_limit = make_number (DEFAULT_FONT_LIST_LIMIT);
Vface_new_frame_defaults = Qnil;
DEFVAR_LISP ("face-default-stipple", Vface_default_stipple,
- doc: /* *Default stipple pattern used on monochrome displays.
+ doc: /* Default stipple pattern used on monochrome displays.
This stipple pattern is used on monochrome displays
instead of shades of gray for a face background color.
See `set-face-stipple' for possible values for this variable. */);
/* This is not ifdef:ed, so other builds than GTK can customize it. */
DEFVAR_BOOL ("x-gtk-use-old-file-dialog", x_gtk_use_old_file_dialog,
- doc: /* *Non-nil means prompt with the old GTK file selection dialog.
+ doc: /* Non-nil means prompt with the old GTK file selection dialog.
If nil or if the file selection dialog is not available, the new GTK file
chooser is used instead. To turn off all file dialogs set the
variable `use-file-dialog'. */);
x_gtk_use_old_file_dialog = 0;
DEFVAR_BOOL ("x-gtk-show-hidden-files", x_gtk_show_hidden_files,
- doc: /* *If non-nil, the GTK file chooser will by default show hidden files.
+ doc: /* If non-nil, the GTK file chooser will by default show hidden files.
Note that this is just the default, there is a toggle button on the file
chooser to show or not show hidden files on a case by case basis. */);
x_gtk_show_hidden_files = 0;
DEFVAR_BOOL ("x-gtk-file-dialog-help-text", x_gtk_file_dialog_help_text,
- doc: /* *If non-nil, the GTK file chooser will show additional help text.
+ doc: /* If non-nil, the GTK file chooser will show additional help text.
If more space for files in the file chooser dialog is wanted, set this to nil
to turn the additional text off. */);
x_gtk_file_dialog_help_text = 1;
DEFVAR_BOOL ("x-gtk-whole-detached-tool-bar", x_gtk_whole_detached_tool_bar,
- doc: /* *If non-nil, a detached tool bar is shown in full.
+ doc: /* If non-nil, a detached tool bar is shown in full.
The default is to just show an arrow and pressing on that arrow shows
the tool bar buttons. */);
x_gtk_whole_detached_tool_bar = 0;
DEFVAR_BOOL ("x-gtk-use-system-tooltips", x_gtk_use_system_tooltips,
- doc: /* *If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is used.
+ doc: /* If non-nil with a Gtk+ built Emacs, the Gtk+ tooltip is used.
Otherwise use Emacs own tooltip implementation.
When using Gtk+ tooltips, the tooltip face is not used. */);
x_gtk_use_system_tooltips = 1;
#include "lisp.h"
#include "buffer.h"
+\f
+static Lisp_Object Qlibxml2_dll;
+
+#ifdef WINDOWSNT
+
+#include <windows.h>
+#include "w32.h"
+
+/* Macro for defining functions that will be loaded from the libxml2 DLL. */
+#define DEF_XML2_FN(rettype,func,args) static rettype (FAR CDECL *fn_##func)args
+
+/* Macro for loading libxml2 functions from the library. */
+#define LOAD_XML2_FN(lib,func) { \
+ fn_##func = (void *) GetProcAddress (lib, #func); \
+ if (!fn_##func) goto bad_library; \
+ }
+
+DEF_XML2_FN (htmlDocPtr, htmlReadMemory,
+ (const char *, int, const char *, const char *, int));
+DEF_XML2_FN (xmlDocPtr, xmlReadMemory,
+ (const char *, int, const char *, const char *, int));
+DEF_XML2_FN (xmlNodePtr, xmlDocGetRootElement, (xmlDocPtr));
+DEF_XML2_FN (void, xmlFreeDoc, (xmlDocPtr));
+DEF_XML2_FN (void, xmlCleanupParser, (void));
+DEF_XML2_FN (void, xmlCheckVersion, (int));
+
+static int
+libxml2_loaded_p (void)
+{
+ Lisp_Object found = Fassq (Qlibxml2_dll, Vlibrary_cache);
+
+ if (CONSP (found))
+ return EQ (XCDR (found), Qt) ? 1 : 0;
+ return 0;
+}
+
+#else /* !WINDOWSNT */
+
+#define fn_htmlReadMemory htmlReadMemory
+#define fn_xmlReadMemory xmlReadMemory
+#define fn_xmlDocGetRootElement xmlDocGetRootElement
+#define fn_xmlFreeDoc xmlFreeDoc
+#define fn_xmlCleanupParser xmlCleanupParser
+#define fn_xmlCheckVersion xmlCheckVersion
+
+static inline int
+libxml2_loaded_p (void)
+{
+ return 1;
+}
+
+#endif /* !WINDOWSNT */
+
+static int
+init_libxml2_functions (Lisp_Object libraries)
+{
+#ifdef WINDOWSNT
+ if (libxml2_loaded_p ())
+ return 1;
+ else
+ {
+ HMODULE library;
+
+ if (!(library = w32_delayed_load (libraries, Qlibxml2_dll)))
+ {
+ message ("%s", "libxml2 library not found");
+ return 0;
+ }
+
+ /* LOAD_XML2_FN jumps to bad_library if it fails to find the
+ named function. */
+ LOAD_XML2_FN (library, htmlReadMemory);
+ LOAD_XML2_FN (library, xmlReadMemory);
+ LOAD_XML2_FN (library, xmlDocGetRootElement);
+ LOAD_XML2_FN (library, xmlFreeDoc);
+ LOAD_XML2_FN (library, xmlCleanupParser);
+ LOAD_XML2_FN (library, xmlCheckVersion);
+
+ Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qt), Vlibrary_cache);
+ return 1;
+ }
+
+ bad_library:
+ Vlibrary_cache = Fcons (Fcons (Qlibxml2_dll, Qnil), Vlibrary_cache);
+
+ return 0;
+#else /* !WINDOWSNT */
+ return 1;
+#endif /* !WINDOWSNT */
+}
+
static Lisp_Object
make_dom (xmlNode *node)
{
EMACS_INT bytes;
EMACS_INT istart, iend;
- LIBXML_TEST_VERSION;
+ fn_xmlCheckVersion (LIBXML_VERSION);
validate_region (&start, &end);
bytes = CHAR_TO_BYTE (iend) - CHAR_TO_BYTE (istart);
if (htmlp)
- doc = htmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
- bytes, burl, "utf-8",
- HTML_PARSE_RECOVER|HTML_PARSE_NONET|
- HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR|
- HTML_PARSE_NOBLANKS);
+ doc = fn_htmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
+ bytes, burl, "utf-8",
+ HTML_PARSE_RECOVER|HTML_PARSE_NONET|
+ HTML_PARSE_NOWARNING|HTML_PARSE_NOERROR|
+ HTML_PARSE_NOBLANKS);
else
- doc = xmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
- bytes, burl, "utf-8",
- XML_PARSE_NONET|XML_PARSE_NOWARNING|
- XML_PARSE_NOBLANKS |XML_PARSE_NOERROR);
+ doc = fn_xmlReadMemory ((char *) BYTE_POS_ADDR (CHAR_TO_BYTE (istart)),
+ bytes, burl, "utf-8",
+ XML_PARSE_NONET|XML_PARSE_NOWARNING|
+ XML_PARSE_NOBLANKS |XML_PARSE_NOERROR);
if (doc != NULL)
{
if (NILP (result)) {
/* The document isn't just comments, so get the tree the
proper way. */
- xmlNode *node = xmlDocGetRootElement (doc);
+ xmlNode *node = fn_xmlDocGetRootElement (doc);
if (node != NULL)
result = make_dom (node);
} else
result = Fcons (intern ("top"),
Fcons (Qnil, Fnreverse (Fcons (r, result))));
- xmlFreeDoc (doc);
+ fn_xmlFreeDoc (doc);
}
return result;
}
+void
+xml_cleanup_parser (void)
+{
+ if (libxml2_loaded_p ())
+ fn_xmlCleanupParser ();
+}
+
DEFUN ("libxml-parse-html-region", Flibxml_parse_html_region,
Slibxml_parse_html_region,
2, 3, 0,
If BASE-URL is non-nil, it is used to expand relative URLs. */)
(Lisp_Object start, Lisp_Object end, Lisp_Object base_url)
{
- return parse_region (start, end, base_url, 1);
+ if (init_libxml2_functions (Vdynamic_library_alist))
+ return parse_region (start, end, base_url, 1);
+ return Qnil;
}
DEFUN ("libxml-parse-xml-region", Flibxml_parse_xml_region,
If BASE-URL is non-nil, it is used to expand relative URLs. */)
(Lisp_Object start, Lisp_Object end, Lisp_Object base_url)
{
- return parse_region (start, end, base_url, 0);
+ if (init_libxml2_functions (Vdynamic_library_alist))
+ return parse_region (start, end, base_url, 0);
+ return Qnil;
}
\f
{
defsubr (&Slibxml_parse_html_region);
defsubr (&Slibxml_parse_xml_region);
+
+ DEFSYM (Qlibxml2_dll, "libxml2");
}
#endif /* HAVE_LIBXML2 */
defsubr (&Sfont_get_system_normal_font);
DEFVAR_BOOL ("font-use-system-font", use_system_font,
- doc: /* *Non-nil means to apply the system defined font dynamically.
+ doc: /* Non-nil means to apply the system defined font dynamically.
When this is non-nil and the system defined fixed width font changes, we
update frames dynamically.
If this variable is nil, Emacs ignores system font changes. */);
/* Read events coming from the X server.
- This routine is called by the SIGIO handler.
+ This routine is called by the SIGIO handler only if SYNC_INPUT is
+ not defined.
We return as soon as there are no more events to be read.
We return the number of characters stored into the buffer,
/* So people can tell when we have read the available input. */
input_signal_count++;
+#ifndef SYNC_INPUT
++handling_signal;
+#endif
/* For debugging, this gives a way to fake an I/O error. */
if (terminal->display_info.x == XTread_socket_fake_io_error)
pending_autoraise_frame = 0;
}
+#ifndef SYNC_INPUT
--handling_signal;
+#endif
UNBLOCK_INPUT;
return count;
DEFVAR_BOOL ("x-use-underline-position-properties",
x_use_underline_position_properties,
- doc: /* *Non-nil means make use of UNDERLINE_POSITION font properties.
+ doc: /* Non-nil means make use of UNDERLINE_POSITION font properties.
A value of nil means ignore them. If you encounter fonts with bogus
UNDERLINE_POSITION font properties, for example 7x13 on XFree prior
to 4.1, set this to nil. You can also use `underline-minimum-offset'
DEFVAR_BOOL ("x-underline-at-descent-line",
x_underline_at_descent_line,
- doc: /* *Non-nil means to draw the underline at the same place as the descent line.
+ doc: /* Non-nil means to draw the underline at the same place as the descent line.
A value of nil means to draw the underline according to the value of the
variable `x-use-underline-position-properties', which is usually at the
baseline level. The default value is nil. */);
+2012-04-11 Glenn Morris <rgm@gnu.org>
+
+ * automated/vc-bzr.el (vc-bzr-test-faulty-bzr-autoloads): New test.
+
2012-02-13 Teodor Zlatanov <tzz@lifelogs.com>
* automated/url-future-tests.el (url-future-tests): Move from
;;; vc-bzr.el --- tests for vc/vc-bzr.el
-;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
+;; Copyright (C) 2011-2012 Free Software Foundation, Inc.
;; Author: Glenn Morris <rgm@gnu.org>
(should (get-buffer "*vc-log*")))
(delete-directory tempdir t))))
+;; http://lists.gnu.org/archive/html/help-gnu-emacs/2012-04/msg00145.html
+(ert-deftest vc-bzr-test-faulty-bzr-autoloads ()
+ "Test we can generate autoloads in a bzr directory when bzr is faulty."
+ :expected-result (if (executable-find vc-bzr-program) :passed :failed)
+ (should (executable-find vc-bzr-program))
+ (let* ((tempdir (make-temp-file "vc-bzr-test" t))
+ (file (expand-file-name "foo.el" tempdir))
+ (default-directory (file-name-as-directory tempdir))
+ (generated-autoload-file (expand-file-name "loaddefs.el" tempdir)))
+ (unwind-protect
+ (progn
+ (call-process vc-bzr-program nil nil nil "init")
+ (with-temp-buffer
+ (insert ";;;###autoload
+\(defun foo () \"foo\" (interactive) (message \"foo!\"))")
+ (write-region nil nil file nil 'silent))
+ (call-process vc-bzr-program nil nil nil "add")
+ (call-process vc-bzr-program nil nil nil "commit" "-m" "Commit 1")
+ ;; Deleting dirstate ensures both that vc-bzr's status heuristic
+ ;; fails, so it has to call the external bzr status, and
+ ;; causes bzr status to fail. This simulates a broken bzr
+ ;; installation.
+ (delete-file ".bzr/checkout/dirstate")
+ (should (progn (update-directory-autoloads default-directory)
+ t)))
+ (delete-directory tempdir t))))
+
;;; vc-bzr.el ends here