aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorJoakim Verona2014-06-04 23:50:06 +0200
committerJoakim Verona2014-06-04 23:50:06 +0200
commitce8171797dafbde765170b79e5f154afc4872e86 (patch)
tree264b357b484de24929a3f2d20a34e0e43c006a15 /admin
parentc1c9aa247cab9148916b367e719219ea0f055adb (diff)
parentb5d6fe3bf6e728c82a3ff63723d75519f7853716 (diff)
downloademacs-ce8171797dafbde765170b79e5f154afc4872e86.tar.gz
emacs-ce8171797dafbde765170b79e5f154afc4872e86.zip
upstream
Diffstat (limited to 'admin')
-rw-r--r--admin/CPP-DEFINES6
-rw-r--r--admin/ChangeLog311
-rw-r--r--admin/FOR-RELEASE206
-rw-r--r--admin/README2
-rw-r--r--admin/admin.el369
-rw-r--r--admin/alloc-colors.c2
-rwxr-xr-xadmin/build-configs4
-rw-r--r--admin/bzrmerge.el2
-rw-r--r--admin/charsets/mapfiles/README43
-rw-r--r--admin/charsets/mapfiles/stdenc.txt30
-rw-r--r--admin/charsets/mapfiles/symbol.txt28
-rw-r--r--admin/charsets/mule-charsets.el46
-rwxr-xr-xadmin/check-doc-strings3
-rw-r--r--admin/cus-test.el5
-rwxr-xr-xadmin/diff-tar-files2
-rw-r--r--admin/find-gc.el149
-rw-r--r--admin/grammars/Makefile.in116
-rw-r--r--admin/grammars/README11
-rw-r--r--admin/grammars/c.by50
-rw-r--r--admin/grammars/grammar.wy4
-rw-r--r--admin/grammars/java-tags.wy7
-rw-r--r--admin/grammars/js.wy16
-rw-r--r--admin/grammars/make.by2
-rw-r--r--admin/grammars/python.wy10
-rw-r--r--admin/grammars/scheme.by2
-rw-r--r--admin/grammars/srecode-template.wy2
-rw-r--r--admin/mac/uvs.el213
-rwxr-xr-xadmin/make-emacs4
-rw-r--r--admin/make-tarball.txt89
-rwxr-xr-xadmin/merge-gnulib21
-rwxr-xr-xadmin/merge-pkg-config63
-rw-r--r--admin/notes/bzr78
-rw-r--r--admin/notes/changelogs9
-rw-r--r--admin/notes/commits9
-rw-r--r--admin/notes/copyright14
-rw-r--r--admin/notes/font-backend2
-rw-r--r--admin/notes/hydra2
-rw-r--r--admin/notes/lel-TODO2
-rw-r--r--admin/notes/multi-tty65
-rw-r--r--admin/notes/unicode9
-rw-r--r--admin/notes/www2
-rw-r--r--admin/notes/years6
-rw-r--r--admin/nt/README-UNDUMP.W322
-rw-r--r--admin/nt/README-ftp-server2
-rwxr-xr-xadmin/quick-install-emacs4
-rw-r--r--admin/unidata/BidiMirroring.txt14
-rw-r--r--admin/unidata/Makefile.in47
-rw-r--r--admin/unidata/UnicodeData.txt21
-rw-r--r--admin/unidata/copyright.html6
-rw-r--r--admin/unidata/unidata-gen.el108
-rwxr-xr-xadmin/update-copyright75
-rwxr-xr-xadmin/update_autogen391
52 files changed, 2117 insertions, 569 deletions
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index 27d87dcaa2a..066347b3826 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -86,8 +86,6 @@ BROKEN_FIONREAD
86BROKEN_GET_CURRENT_DIR_NAME 86BROKEN_GET_CURRENT_DIR_NAME
87BROKEN_NON_BLOCKING_CONNECT 87BROKEN_NON_BLOCKING_CONNECT
88BROKEN_PTY_READ_AFTER_EAGAIN 88BROKEN_PTY_READ_AFTER_EAGAIN
89CLASH_DETECTION
90DATA_SEG_BITS
91DEFAULT_SOUND_DEVICE 89DEFAULT_SOUND_DEVICE
92DEVICE_SEP 90DEVICE_SEP
93DIRECTORY_SEP 91DIRECTORY_SEP
@@ -201,17 +199,13 @@ HAVE_KRB5_H
201HAVE_KRB_H 199HAVE_KRB_H
202HAVE_LANGINFO_CODESET 200HAVE_LANGINFO_CODESET
203HAVE_LIBDGC 201HAVE_LIBDGC
204HAVE_LIBDNET
205HAVE_LIBKSTAT 202HAVE_LIBKSTAT
206HAVE_LIBLOCKFILE 203HAVE_LIBLOCKFILE
207HAVE_LIBM
208HAVE_LIBMAIL 204HAVE_LIBMAIL
209HAVE_LIBOTF 205HAVE_LIBOTF
210HAVE_LIBPERFSTAT 206HAVE_LIBPERFSTAT
211HAVE_LIBPNG_PNG_H 207HAVE_LIBPNG_PNG_H
212HAVE_LIBPTHREADS
213HAVE_LIBSELINUX 208HAVE_LIBSELINUX
214HAVE_LIBXEXT
215HAVE_LIBXML2 209HAVE_LIBXML2
216HAVE_LIBXMU 210HAVE_LIBXMU
217HAVE_LOCALTIME_R 211HAVE_LOCALTIME_R
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 29118deba7f..79adb4f543d 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,293 @@
12014-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
2
3 * mac/uvs.el: New file from Mac port. Generates src/macuvs.h.
4
52014-05-17 Paul Eggert <eggert@cs.ucla.edu>
6
7 Assume C99 or later (Bug#17487).
8 * merge-gnulib (GNULIB_MODULES): Remove stdarg, stdbool.
9 (GNULIB_TOOL_FLAGS): Avoid stdarg, stdbool.
10
112014-05-16 Paul Eggert <eggert@cs.ucla.edu>
12
13 Don't require pkg-config when building from repository.
14 * merge-pkg-config: New script.
15 * notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4.
16
172014-05-13 Paul Eggert <eggert@cs.ucla.edu>
18
19 * merge-gnulib: Defer to autogen.sh for ACLOCAL_PATH computation.
20
212014-05-12 Glenn Morris <rgm@gnu.org>
22
23 * find-gc.el: Move here from ../lisp/emacs-lisp.
24
25 * admin.el (set-version-in-file): Don't set identical version.
26 (set-version): Provide default version number.
27 (set-version, set-copyright): Give start/end messages.
28
292014-04-18 Paul Eggert <eggert@cs.ucla.edu>
30
31 * notes/bzr: Update instructions for merging from gnulib.
32 Remove obsolete note about tramp.el and tramp-sh.el.
33 Change "emacs-23" to "emacs-24".
34
352014-04-11 Glenn Morris <rgm@gnu.org>
36
37 * grammars/Makefile.in (EMACSDATA, EMACSDOC, EMACSPATH): Unexport.
38
392014-03-22 Glenn Morris <rgm@gnu.org>
40
41 * quick-install-emacs (AVOID): Remove testfile and test-distrib.
42
432014-03-21 Glenn Morris <rgm@gnu.org>
44
45 * update_autogen: Auto-detect VCS in use.
46 (vcs): New variable.
47 (status, commit, main): Handle git.
48
492014-03-07 Paul Eggert <eggert@cs.ucla.edu>
50
51 Fix oversight preventing lib/sys/types.h from being generated.
52 * merge-gnulib (GNULIB_TOOL_FLAGS): Don't avoid sys_types.
53
542014-02-06 David Engster <deng@randomsample.de>
55
56 * grammars/c.by (function-pointer): Correctly deal with anonymous
57 function pointers.
58 (opt-brackets-after-symbol): New.
59 (multi-stage-dereference): Use it. Add rules for explicit
60 matching the last dereference.
61
622014-01-16 Eric S. Raymond <esr@thyrsus.com>
63
64 * notes/commits: Add a 'graph on VCS-independent ways of
65 identifying commits and the desirability thereof.
66
672014-01-15 Paul Eggert <eggert@cs.ucla.edu>
68
69 Fix copyright license notices for Adobe Unicode mapping files.
70 * charsets/mapfiles/README: The copied files are not compressed.
71 Check for copies as of today.
72 * charsets/mapfiles/stdenc.txt, charsets/mapfiles/symbol.txt:
73 Update from table version 0.2 (1999-03-30) to 1.0 (2011-07-12).
74 This doesn't change the table data, just copyright license notice.
75 The new notices are compatible with the GPL, the old ones were not.
76
772014-01-13 Glenn Morris <rgm@gnu.org>
78
79 * update_autogen (status): New function. Use throughout.
80
812014-01-10 Glenn Morris <rgm@gnu.org>
82
83 * update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS.
84
852014-01-04 Glenn Morris <rgm@gnu.org>
86
87 * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable <hr>.
88 (manual-html-fix-index-2): Tweak Texinfo 5 table format.
89 Fix minor Texinfo 4 issue with start of detailed menu.
90
912014-01-03 Glenn Morris <rgm@gnu.org>
92
93 * admin.el: More Texinfo 5 updates.
94 (manual-html-fix-headers): Tweak Texinfo 5 body.
95 (manual-html-fix-node-div): Treat "header" like "node".
96 (manual-html-fix-index-1): Handle Texinfo 5 top heading.
97 (manual-html-fix-index-2): Tweak Texinfo 5 listing tables.
98
992014-01-02 Xue Fuqiao <xfq.free@gmail.com>
100
101 * check-doc-strings: Replace `perl -w' with `use warnings;'.
102
1032013-12-30 Glenn Morris <rgm@gnu.org>
104
105 * admin.el (manual-html-fix-headers, manual-html-fix-index-1):
106 Some updates for changes in Texinfo 5 output.
107
1082013-12-29 Xue Fuqiao <xfq.free@gmail.com>
109
110 * make-emacs:
111 * build-configs: Add the "use strict;" and "use warnings;" pragmas.
112
1132013-12-28 Glenn Morris <rgm@gnu.org>
114
115 * admin.el (cusver-scan): Warn about missing :types.
116 (cusver-check): Interactively, require existing directories.
117
1182013-12-27 Xue Fuqiao <xfq.free@gmail.com>
119
120 * admin.el (manual-misc-manuals, make-manuals, manual-pdf)
121 (cusver-find-files, cusver-new-version, cusver-scan)
122 (cusver-goto-xref, cusver-check): Doc fix.
123 (manual-html-node, cusver-check): Use `user-error'.
124
1252013-12-24 Paul Eggert <eggert@cs.ucla.edu>
126
127 Automate the procedure for updating copyright year.
128 * merge-gnulib (GNULIB_MODULES): Add update-copyright.
129 * notes/years: Mention admin/update-copyright.
130 * update-copyright: New file.
131
1322013-12-24 Xue Fuqiao <xfq.free@gmail.com>
133
134 * admin.el (add-release-logs, set-version-in-file, set-version)
135 (set-copyright): Use `user-error'.
136
1372013-12-22 Eli Zaretskii <eliz@gnu.org>
138
139 * unidata/unidata-gen.el (unidata-split-name): Don't give any NAME
140 to <control> characters: the Unicode Standard says they have no
141 name. (Bug#16216)
142 (unidata-describe-bidi-class): Add new "isolate" classes
143 introduced by Unicode 6.3.
144
1452013-12-12 David Engster <deng@randomsample.de>
146
147 * grammars/c.by (expr-binop): Add MOD.
148 (variablearg): Add 'opt-assign'.
149 (variablearg, varnamelist): Add default values so that it can be
150 later expanded into the tag.
151 (opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
152 remove empty match.
153 (multi-stage-dereference): Adapt to above rename.
154 (unaryexpression): Use 'symbol' instead of 'namespace-symbol',
155 since the latter also leads to an empty match at the end which
156 would make this too greedy.
157 (variablearg-opt-name): Support parsing of function pointers
158 inside an argument list.
159
1602013-12-12 Glenn Morris <rgm@gnu.org>
161
162 * update_autogen (info_dir):
163 Use dir_top from build-aux/ rather than admin/.
164
165 * update_autogen: Add option to generate info/dir.
166 (Usage): Add -I.
167 (info_flag): New variable.
168 (-I): New option.
169 (doc): Maybe check its status.
170 (info_dir): New function.
171 * dir_top: New file.
172
1732013-12-11 Paul Eggert <eggert@cs.ucla.edu>
174
175 Remove the option of using libcrypto.
176 * merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
177
1782013-12-04 Eli Zaretskii <eliz@gnu.org>
179
180 * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class
181 to include the new isolate-related classes introduced with Unicode
182 v6.3.
183 (unidata-encode-val): Accept an additional optional argument, a
184 warning message to emit when UnicodeData.txt defines bidi-class
185 values that are not in unidata-prop-alist. Add a comment
186 explaining what should maintainers do if/when such a warning ever
187 appears.
188 (unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil
189 when generating uni-bidi.el.
190
1912013-12-01 Glenn Morris <rgm@gnu.org>
192
193 * unidata/Makefile.in (${DSTDIR}/charprop.el):
194 Ensure output files are writable.
195
1962013-11-30 Glenn Morris <rgm@gnu.org>
197
198 * grammars/Makefile.in: Ensure output files are writable.
199
2002013-11-30 Eli Zaretskii <eliz@gnu.org>
201
202 * charsets/mule-charsets.el: Rewritten to work in Emacs 23 and
203 later. (Bug#16007)
204
2052013-11-30 Glenn Morris <rgm@gnu.org>
206
207 Stop keeping (most) generated cedet grammar files in the repository.
208 * grammars/README: Remove.
209 * grammars/Makefile.in: New file.
210 * grammars/c.by, grammars/java-tags.wy, grammars/js.wy:
211 * grammars/python.wy: Update declarations to match generated outputs.
212
2132013-11-28 Glenn Morris <rgm@gnu.org>
214
215 * unidata/unidata-gen.el (unidata-gen-files):
216 Disable autoloads in generated files.
217
2182013-11-27 Glenn Morris <rgm@gnu.org>
219
220 * unidata/Makefile.in (all, install, clean, bootstrap-clean)
221 (distclean, maintainer-clean): Declare as PHONY.
222 (compile, extraclean): New.
223 (${DSTDIR}/charprop.el): Depend on source files rather than
224 intermediate products.
225
2262013-11-11 Glenn Morris <rgm@gnu.org>
227
228 * unidata/BidiMirroring.txt, unidata/UnicodeData.txt: Update to 6.3.0.
229
230 * unidata/unidata-gen.el (unidata-gen-files):
231 Tweak whitespace in generated files.
232
2332013-11-09 Glenn Morris <rgm@gnu.org>
234
235 * unidata/unidata-gen.el (unidata-gen-files):
236 Fix deletion of existing output files after 2013-10-30 changes.
237
2382013-11-07 Glenn Morris <rgm@gnu.org>
239
240 * unidata/unidata-gen.el (unidata-gen-files):
241 Disable version-control in generated files.
242 Update Unicode Inc. copyright years.
243
2442013-11-05 Glenn Morris <rgm@gnu.org>
245
246 * update_autogen: Move here from ../autogen.
247 (usage): Update. Remove -l, add -A.
248 (autogendir): New variable.
249 (ldefs_flag): Default to set.
250 (genfiles): Reduce to only ms-dos relevant files.
251 (main): Make checking autogen sources optional.
252 Make copying of autogen files optional.
253
2542013-10-30 Glenn Morris <rgm@gnu.org>
255
256 * unidata/unidata-gen.el (unidata-gen-files): Use pop.
257 Also take the output directory as an argument.
258 * unidata/Makefile.in: Simplify now that unidata-gen-files takes
259 the output directory as an argument (no need to cd, etc).
260 (abs_srcdir, abs_builddir): Remove.
261 (abs_top_builddir): Replace by top_builddir.
262 (${DSTDIR}/charprop.el): No need to cd. Pass dest as argument.
263 (${DSTDIR}/charprop.el, charprop.el):
264 No need to pass unidata.txt as argument.
265
266 * unidata/unidata-gen.el (unidata--ensure-compiled): New function.
267 (unidata-gen-table-name, unidata-gen-table-decomposition)
268 (unidata-gen-files): Use unidata--ensure-compiled.
269
270 * unidata/Makefile.in (abs_srcdir): New, set by configure.
271 (${DSTDIR}/charprop.el, charprop.el): Update for srcdir not absolute.
272 (clean): Delete all .elc files.
273 (bootstrap-clean): New rule.
274
2752013-10-23 Glenn Morris <rgm@gnu.org>
276
277 * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
278 Quote entities that might contain whitespace.
279
2802013-10-07 Paul Eggert <eggert@cs.ucla.edu>
281
282 Improve support for popcount and counting trailing zeros (Bug#15550).
283 * merge-gnulib (GNULIB_MODULES): Add count-one-bits
284 and count-trailing-zeros.
285
2862013-10-04 Paul Eggert <eggert@cs.ucla.edu>
287
288 Use hardware support for byteswapping on glibc x86 etc.
289 * merge-gnulib (GNULIB_MODULES): Add byteswap.
290
12013-08-28 Paul Eggert <eggert@cs.ucla.edu> 2912013-08-28 Paul Eggert <eggert@cs.ucla.edu>
2 292
3 * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh, 293 * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
@@ -128,7 +418,7 @@
128 418
1292013-05-07 Paul Eggert <eggert@cs.ucla.edu> 4192013-05-07 Paul Eggert <eggert@cs.ucla.edu>
130 420
131 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) 421 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
132 * merge-gnulib (GNULIB_MODULES): Add qacl. 422 * merge-gnulib (GNULIB_MODULES): Add qacl.
133 (GNULIB_TOOL_FLAGS): Do not avoid errno. 423 (GNULIB_TOOL_FLAGS): Do not avoid errno.
134 424
@@ -343,10 +633,10 @@
343 (cusver-scan): Check if containing group has a :version. 633 (cusver-scan): Check if containing group has a :version.
344 (cusver-check): Add VERSION argument. 634 (cusver-check): Add VERSION argument.
345 635
3462012-10-01 David Engster <deng@randomsample.de> 6362012-10-06 David Engster <deng@randomsample.de>
347 637
348 * grammars/bovine-grammar.el: 638 * grammars/bovine-grammar.el:
349 * grammars/wisent-grammar.el: Move to lisp directory. 639 * grammars/wisent-grammar.el: Move to lisp/cedet/semantic directory.
350 640
3512012-10-01 David Engster <deng@randomsample.de> 6412012-10-01 David Engster <deng@randomsample.de>
352 642
@@ -805,6 +1095,10 @@
805 1095
806 * notes/bugtracker (bugtracker_debbugs_url): Fix typo. 1096 * notes/bugtracker (bugtracker_debbugs_url): Fix typo.
807 1097
10982011-02-20 Paul Eggert <eggert@cs.ucla.edu>
1099
1100 * notes/copyright: Remove src/md5.c and src/md5.h as special cases.
1101
8082011-02-19 Eli Zaretskii <eliz@gnu.org> 11022011-02-19 Eli Zaretskii <eliz@gnu.org>
809 1103
810 * admin.el (set-version): Add msdos/sed2v2.inp. 1104 * admin.el (set-version): Add msdos/sed2v2.inp.
@@ -812,8 +1106,9 @@
8122011-02-16 Paul Eggert <eggert@cs.ucla.edu> 11062011-02-16 Paul Eggert <eggert@cs.ucla.edu>
813 1107
814 Remove no-longer needed getloadavg symbols. 1108 Remove no-longer needed getloadavg symbols.
815 * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE): 1109 * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE)
816 (LDAV_SYMBOL): Remove. 1110 (LDAV_SYMBOL): Remove.
1111 * notes/copyright: Remove src/getloadavg.c as a special case.
817 1112
8182011-02-12 Glenn Morris <rgm@gnu.org> 11132011-02-12 Glenn Morris <rgm@gnu.org>
819 1114
@@ -1336,7 +1631,7 @@
1336 Sub-directory `unidata' is for codes to generate charprop.el and 1631 Sub-directory `unidata' is for codes to generate charprop.el and
1337 many other uni-*.el files from `UnicodeData.txt'. 1632 many other uni-*.el files from `UnicodeData.txt'.
1338 1633
1339 * Unidata/README: New file. 1634 * unidata/README: New file.
1340 1635
1341 * unidata/Makefile: New file. 1636 * unidata/Makefile: New file.
1342 1637
@@ -1762,8 +2057,6 @@
1762 emacs.exe before zipping, and including batch file to recreate 2057 emacs.exe before zipping, and including batch file to recreate
1763 after unpacking. 2058 after unpacking.
1764 2059
1765 * nt/stitch.bat: New file.
1766
1767 * nt/README-ftp-server: Update wording and version number etc. 2060 * nt/README-ftp-server: Update wording and version number etc.
1768 Add extra instructions for installing multi-file .zip 2061 Add extra instructions for installing multi-file .zip
1769 distribution. 2062 distribution.
@@ -1883,7 +2176,7 @@
1883 2176
18842001-09-04 Andrew Innes <andrewi@gnu.org> 21772001-09-04 Andrew Innes <andrewi@gnu.org>
1885 2178
1886 * admin/nt/makedist.bat: Remove reference to obsolete file 2179 * nt/makedist.bat: Remove reference to obsolete file
1887 GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about 2180 GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about
1888 version of tar used. 2181 version of tar used.
1889 2182
@@ -1891,7 +2184,7 @@
1891;; coding: utf-8 2184;; coding: utf-8
1892;; End: 2185;; End:
1893 2186
1894 Copyright (C) 2001-2013 Free Software Foundation, Inc. 2187 Copyright (C) 2001-2014 Free Software Foundation, Inc.
1895 2188
1896 This file is part of GNU Emacs. 2189 This file is part of GNU Emacs.
1897 2190
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index c578d3d37e1..6af5027f73c 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -2,6 +2,8 @@ Tasks needed before the next release.
2 2
3* TO BE DONE SHORTLY BEFORE RELEASE 3* TO BE DONE SHORTLY BEFORE RELEASE
4 4
5** Either update, test, and support the old w32 build method, or remove it.
6
5** Manuals 7** Manuals
6Check for node names using problematic characters: 8Check for node names using problematic characters:
7 find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} + 9 find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
@@ -68,7 +70,6 @@ I think this is different to what you get if you just use eg `make
68emacs.pdf' (e.g., enable "smallbook"). 70emacs.pdf' (e.g., enable "smallbook").
69 71
70** Check the keybindings in the refcards are correct, and add any new ones. 72** Check the keybindings in the refcards are correct, and add any new ones.
71Regenerate the pdf versions in etc/refcards/.
72What paper size are the English versions supposed to be on? 73What paper size are the English versions supposed to be on?
73On Debian testing, the packages texlive-lang-czechslovak and 74On Debian testing, the packages texlive-lang-czechslovak and
74texlive-lang-polish will let you generate the cs-* and sk-* pdfs. 75texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
@@ -138,7 +139,7 @@ SECTION READERS
138---------------------------------- 139----------------------------------
139TUTORIAL cyd 140TUTORIAL cyd
140TUTORIAL.bg ogi 141TUTORIAL.bg ogi
141TUTORIAL.cn 142TUTORIAL.cn xfq
142TUTORIAL.cs 143TUTORIAL.cs
143TUTORIAL.de wl 144TUTORIAL.de wl
144TUTORIAL.eo 145TUTORIAL.eo
@@ -146,7 +147,7 @@ TUTORIAL.es
146TUTORIAL.fr 147TUTORIAL.fr
147TUTORIAL.he eliz 148TUTORIAL.he eliz
148TUTORIAL.it 149TUTORIAL.it
149TUTORIAL.ja 150TUTORIAL.ja
150TUTORIAL.ko 151TUTORIAL.ko
151TUTORIAL.nl Pieter Schoenmakers 152TUTORIAL.nl Pieter Schoenmakers
152TUTORIAL.pl 153TUTORIAL.pl
@@ -161,111 +162,110 @@ TUTORIAL.zh
161 162
162** Check the manual. 163** Check the manual.
163 164
164abbrevs.texi cyd 165abbrevs.texi
165ack.texi rgm 166ack.texi
166anti.texi cyd 167anti.texi
167arevert-xtra.texi cyd 168arevert-xtra.texi
168basic.texi cyd 169basic.texi
169buffers.texi cyd 170buffers.texi
170building.texi cyd 171building.texi
171calendar.texi rgm 172calendar.texi
172cal-xtra.texi rgm 173cal-xtra.texi
173cmdargs.texi cyd 174cmdargs.texi
174commands.texi cyd 175commands.texi
175custom.texi cyd 176custom.texi
176dired.texi cyd 177dired.texi
177dired-xtra.texi rgm 178dired-xtra.texi
178display.texi cyd 179display.texi
179emacs.texi rgm 180emacs.texi
180emacs-xtra.texi rgm 181emacs-xtra.texi
181emerge-xtra.texi rgm 182emerge-xtra.texi
182entering.texi cyd 183entering.texi
183files.texi cyd 184files.texi
184fixit.texi cyd 185fixit.texi
185fortran-xtra.texi rgm 186fortran-xtra.texi
186frames.texi cyd 187frames.texi
187glossary.texi rgm 188glossary.texi
188help.texi cyd 189help.texi
189indent.texi cyd 190indent.texi
190killing.texi cyd 191killing.texi
191kmacro.texi cyd 192kmacro.texi
192macos.texi rgm (can't actually test any of it though) 193macos.texi
193maintaining.texi cyd 194maintaining.texi
194mark.texi cyd 195mark.texi
195mini.texi rgm 196mini.texi
196misc.texi cyd 197misc.texi
197modes.texi cyd 198modes.texi
198msdog.texi rgm (can't actually test any of it though) 199msdog.texi
199msdog-xtra.texi rgm (can't actually test any of it though) 200msdog-xtra.texi
200mule.texi rgm (not 100% sure about "Fontsets") 201mule.texi
201m-x.texi cyd 202m-x.texi
202package.texi cyd 203package.texi
203picture-xtra.texi rgm 204picture-xtra.texi
204programs.texi cyd 205programs.texi
205regs.texi cyd 206regs.texi
206rmail.texi rgm 207rmail.texi
207screen.texi cyd 208screen.texi
208search.texi cyd 209search.texi
209sending.texi cyd 210sending.texi
210text.texi cyd 211text.texi
211trouble.texi cyd 212trouble.texi
212vc-xtra.texi cyd 213vc-xtra.texi
213vc1-xtra.texi cyd 214vc1-xtra.texi
214windows.texi cyd 215windows.texi
215xresources.texi cyd 216xresources.texi
216 217
217** Check the Lisp manual. 218** Check the Lisp manual.
218 219
219abbrevs.texi rgm 220abbrevs.texi
220advice.texi cyd 221anti.texi
221anti.texi rgm 222back.texi
222back.texi rgm 223backups.texi
223backups.texi cyd 224buffers.texi
224buffers.texi cyd 225commands.texi
225commands.texi cyd 226compile.texi
226compile.texi cyd 227control.texi
227control.texi cyd 228customize.texi
228customize.texi cyd 229debugging.texi
229debugging.texi cyd 230display.texi
230display.texi cyd 231edebug.texi
231edebug.texi rgm
232elisp.texi 232elisp.texi
233errors.texi rgm 233errors.texi
234eval.texi cyd 234eval.texi
235files.texi cyd 235files.texi
236frames.texi cyd 236frames.texi
237functions.texi cyd 237functions.texi
238hash.texi cyd 238hash.texi
239help.texi cyd 239help.texi
240hooks.texi rgm 240hooks.texi
241index.texi 241index.texi
242internals.texi rgm cyd 242internals.texi
243intro.texi cyd 243intro.texi
244keymaps.texi cyd 244keymaps.texi
245lists.texi cyd 245lists.texi
246loading.texi cyd 246loading.texi
247macros.texi cyd 247macros.texi
248maps.texi rgm 248maps.texi
249markers.texi rgm 249markers.texi
250minibuf.texi rgm 250minibuf.texi
251modes.texi cyd 251modes.texi
252nonascii.texi cyd 252nonascii.texi
253numbers.texi cyd 253numbers.texi Paul Eggert (24.4)
254objects.texi cyd 254objects.texi
255os.texi cyd 255os.texi
256package.texi rgm 256package.texi
257positions.texi cyd 257positions.texi
258processes.texi rgm 258processes.texi
259searching.texi rgm 259searching.texi
260sequences.texi cyd 260sequences.texi
261streams.texi cyd 261streams.texi
262strings.texi cyd 262strings.texi
263symbols.texi cyd 263symbols.texi
264syntax.texi cyd 264syntax.texi
265text.texi cyd 265text.texi
266tips.texi rgm 266tips.texi
267variables.texi cyd 267variables.texi
268windows.texi rgm (skimmed) 268windows.texi
269 269
270 270
271Local variables: 271Local variables:
diff --git a/admin/README b/admin/README
index d696a14176e..6a5fce688a9 100644
--- a/admin/README
+++ b/admin/README
@@ -1,4 +1,4 @@
1Copyright (C) 2001-2013 Free Software Foundation, Inc. 1Copyright (C) 2001-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
diff --git a/admin/admin.el b/admin/admin.el
index f8ca8aec261..7af9ffa4177 100644
--- a/admin/admin.el
+++ b/admin/admin.el
@@ -1,6 +1,6 @@
1;;; admin.el --- utilities for Emacs administration 1;;; admin.el --- utilities for Emacs administration
2 2
3;; Copyright (C) 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2001-2014 Free Software Foundation, Inc.
4 4
5;; This file is part of GNU Emacs. 5;; This file is part of GNU Emacs.
6 6
@@ -21,7 +21,7 @@
21 21
22;; add-release-logs Add ``Version X released'' change log entries. 22;; add-release-logs Add ``Version X released'' change log entries.
23;; set-version Change Emacs version number in source tree. 23;; set-version Change Emacs version number in source tree.
24;; set-copyright Change emacs short copyright string (eg as 24;; set-copyright Change Emacs short copyright string (eg as
25;; printed by --version) in source tree. 25;; printed by --version) in source tree.
26 26
27;;; Code: 27;;; Code:
@@ -46,7 +46,7 @@ Optional argument DATE is the release date, default today."
46 (funcall add-log-time-format)))))) 46 (funcall add-log-time-format))))))
47 (setq root (expand-file-name root)) 47 (setq root (expand-file-name root))
48 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 48 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
49 (error "%s doesn't seem to be the root of an Emacs source tree" root)) 49 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
50 (require 'add-log) 50 (require 'add-log)
51 (or date (setq date (let ((add-log-time-zone-rule t)) 51 (or date (setq date (let ((add-log-time-zone-rule t))
52 (funcall add-log-time-format)))) 52 (funcall add-log-time-format))))
@@ -62,18 +62,31 @@ Optional argument DATE is the release date, default today."
62 (insert entry)))) 62 (insert entry))))
63 63
64(defun set-version-in-file (root file version rx) 64(defun set-version-in-file (root file version rx)
65 "Subroutine of `set-version' and `set-copyright'."
65 (find-file (expand-file-name file root)) 66 (find-file (expand-file-name file root))
66 (goto-char (point-min)) 67 (goto-char (point-min))
67 (unless (re-search-forward rx nil t) 68 (setq version (format "%s" version))
68 (error "Version not found in %s" file)) 69 (unless (re-search-forward rx nil :noerror)
69 (replace-match (format "%s" version) nil nil nil 1)) 70 (user-error "Version not found in %s" file))
71 (if (not (equal version (match-string 1)))
72 (replace-match version nil nil nil 1)
73 (kill-buffer)
74 (message "No need to update `%s'" file)))
70 75
71(defun set-version (root version) 76(defun set-version (root version)
72 "Set Emacs version to VERSION in relevant files under ROOT. 77 "Set Emacs version to VERSION in relevant files under ROOT.
73Root must be the root of an Emacs source tree." 78Root must be the root of an Emacs source tree."
74 (interactive "DEmacs root directory: \nsVersion number: ") 79 (interactive (list
80 (read-directory-name "Emacs root directory: " source-directory)
81 (read-string "Version number: "
82 (replace-regexp-in-string "\\.[0-9]+\\'" ""
83 emacs-version))))
75 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 84 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
76 (error "%s doesn't seem to be the root of an Emacs source tree" root)) 85 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
86 (message "Setting version numbers...")
87 ;; There's also a "version 3" (standing for GPLv3) at the end of
88 ;; `README', but since `set-version-in-file' only replaces the first
89 ;; occurrence, it won't be replaced.
77 (set-version-in-file root "README" version 90 (set-version-in-file root "README" version
78 (rx (and "version" (1+ space) 91 (rx (and "version" (1+ space)
79 (submatch (1+ (in "0-9.")))))) 92 (submatch (1+ (in "0-9."))))))
@@ -104,7 +117,7 @@ Root must be the root of an Emacs source tree."
104 ;; in two places those commas are followed by space, in two other 117 ;; in two places those commas are followed by space, in two other
105 ;; places they are not. 118 ;; places they are not.
106 (let* ((version-components (append (split-string version "\\.") 119 (let* ((version-components (append (split-string version "\\.")
107 '("0" "0"))) 120 '("0" "0")))
108 (comma-version 121 (comma-version
109 (concat (car version-components) "," 122 (concat (car version-components) ","
110 (cadr version-components) "," 123 (cadr version-components) ","
@@ -153,8 +166,8 @@ Root must be the root of an Emacs source tree."
153{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs") 166{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")
154 (set-version-in-file root "etc/refcards/emacsver.tex" version 167 (set-version-in-file root "etc/refcards/emacsver.tex" version
155 "\\\\def\\\\versionemacs\ 168 "\\\\def\\\\versionemacs\
156{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))) 169{\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))
157 170 (message "Setting version numbers...done"))
158 171
159;; Note this makes some assumptions about form of short copyright. 172;; Note this makes some assumptions about form of short copyright.
160(defun set-copyright (root copyright) 173(defun set-copyright (root copyright)
@@ -167,7 +180,8 @@ Root must be the root of an Emacs source tree."
167 (format "Copyright (C) %s Free Software Foundation, Inc." 180 (format "Copyright (C) %s Free Software Foundation, Inc."
168 (format-time-string "%Y"))))) 181 (format-time-string "%Y")))))
169 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 182 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
170 (error "%s doesn't seem to be the root of an Emacs source tree" root)) 183 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
184 (message "Setting copyrights...")
171 (set-version-in-file root "configure.ac" copyright 185 (set-version-in-file root "configure.ac" copyright
172 (rx (and bol "copyright" (0+ (not (in ?\"))) 186 (rx (and bol "copyright" (0+ (not (in ?\")))
173 ?\" (submatch (1+ (not (in ?\")))) ?\"))) 187 ?\" (submatch (1+ (not (in ?\")))) ?\")))
@@ -189,12 +203,14 @@ Root must be the root of an Emacs source tree."
189{\\([0-9]\\{4\\}\\)}.+%.+copyright year") 203{\\([0-9]\\{4\\}\\)}.+%.+copyright year")
190 (set-version-in-file root "etc/refcards/emacsver.tex" copyright 204 (set-version-in-file root "etc/refcards/emacsver.tex" copyright
191 "\\\\def\\\\year\ 205 "\\\\def\\\\year\
192{\\([0-9]\\{4\\}\\)}.+%.+copyright year"))) 206{\\([0-9]\\{4\\}\\)}.+%.+copyright year"))
207 (message "Setting copyrights...done"))
193 208
194;;; Various bits of magic for generating the web manuals 209;;; Various bits of magic for generating the web manuals
195 210
196(defun manual-misc-manuals (root) 211(defun manual-misc-manuals (root)
197 "Return doc/misc manuals as list of strings." 212 "Return doc/misc manuals as list of strings.
213ROOT should be the root of an Emacs source tree."
198 ;; Similar to `make -C doc/misc echo-info', but works if unconfigured, 214 ;; Similar to `make -C doc/misc echo-info', but works if unconfigured,
199 ;; and for INFO_TARGETS rather than INFO_INSTALL. 215 ;; and for INFO_TARGETS rather than INFO_INSTALL.
200 (with-temp-buffer 216 (with-temp-buffer
@@ -211,8 +227,10 @@ Root must be the root of an Emacs source tree."
211 (buffer-substring start (point)))) 227 (buffer-substring start (point))))
212 '("efaq-w32"))))) 228 '("efaq-w32")))))
213 229
230;; TODO report the progress
214(defun make-manuals (root &optional type) 231(defun make-manuals (root &optional type)
215 "Generate the web manuals for the Emacs webpage. 232 "Generate the web manuals for the Emacs webpage.
233ROOT should be the root of an Emacs source tree.
216Interactively with a prefix argument, prompt for TYPE. 234Interactively with a prefix argument, prompt for TYPE.
217Optional argument TYPE is type of output (nil means all)." 235Optional argument TYPE is type of output (nil means all)."
218 (interactive (let ((root (read-directory-name "Emacs root directory: " 236 (interactive (let ((root (read-directory-name "Emacs root directory: "
@@ -319,6 +337,7 @@ the @import directive."
319 (manual-html-fix-node-div) 337 (manual-html-fix-node-div)
320 (goto-char (point-max)) 338 (goto-char (point-max))
321 (re-search-backward "</body>[\n \t]*</html>") 339 (re-search-backward "</body>[\n \t]*</html>")
340 ;; Close the div id="content" that fix-index-1 added.
322 (insert "</div>\n\n") 341 (insert "</div>\n\n")
323 (save-buffer))) 342 (save-buffer)))
324 343
@@ -328,7 +347,7 @@ This function also edits the HTML files so that they validate as
328HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using 347HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
329the @import directive." 348the @import directive."
330 (unless (file-exists-p texi-file) 349 (unless (file-exists-p texi-file)
331 (error "Manual file %s not found" texi-file)) 350 (user-error "Manual file %s not found" texi-file))
332 (make-directory dir t) 351 (make-directory dir t)
333 (call-process "makeinfo" nil nil nil 352 (call-process "makeinfo" nil nil nil
334 "-D" "WWW_GNU_ORG" 353 "-D" "WWW_GNU_ORG"
@@ -359,13 +378,14 @@ the @import directive."
359 (manual-html-fix-index-2) 378 (manual-html-fix-index-2)
360 (if copyright-text 379 (if copyright-text
361 (insert copyright-text)) 380 (insert copyright-text))
381 ;; Close the div id="content" that fix-index-1 added.
362 (insert "\n</div>\n")) 382 (insert "\n</div>\n"))
363 ;; For normal nodes, give the header div a blue bg. 383 ;; For normal nodes, give the header div a blue bg.
364 (manual-html-fix-node-div)) 384 (manual-html-fix-node-div t))
365 (save-buffer)))))) 385 (save-buffer))))))
366 386
367(defun manual-pdf (texi-file dest) 387(defun manual-pdf (texi-file dest)
368 "Run texi2pdf on TEXI-FILE, emitting pdf output to DEST." 388 "Run texi2pdf on TEXI-FILE, emitting PDF output to DEST."
369 (make-directory (or (file-name-directory dest) ".") t) 389 (make-directory (or (file-name-directory dest) ".") t)
370 (let ((default-directory (file-name-directory texi-file))) 390 (let ((default-directory (file-name-directory texi-file)))
371 (call-process "texi2pdf" nil nil nil 391 (call-process "texi2pdf" nil nil nil
@@ -377,6 +397,7 @@ the @import directive."
377 (make-directory (or (file-name-directory dest) ".") t) 397 (make-directory (or (file-name-directory dest) ".") t)
378 (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi")) 398 (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi"))
379 (default-directory (file-name-directory texi-file))) 399 (default-directory (file-name-directory texi-file)))
400 ;; FIXME: Use `texi2dvi --ps'? --xfq
380 (call-process "texi2dvi" nil nil nil 401 (call-process "texi2dvi" nil nil nil
381 "-I" "../emacs" "-I" "../misc" 402 "-I" "../emacs" "-I" "../misc"
382 texi-file "-o" dvi-dest) 403 texi-file "-o" dvi-dest)
@@ -386,119 +407,215 @@ the @import directive."
386 407
387(defun manual-html-fix-headers () 408(defun manual-html-fix-headers ()
388 "Fix up HTML headers for the Emacs manual in the current buffer." 409 "Fix up HTML headers for the Emacs manual in the current buffer."
389 (let (opoint) 410 (let ((texi5 (search-forward "<!DOCTYPE" nil t))
390 (insert manual-doctype-string) 411 opoint)
412 ;; Texinfo 5 supplies a DOCTYPE.
413 (or texi5
414 (insert manual-doctype-string))
391 (search-forward "<head>\n") 415 (search-forward "<head>\n")
392 (insert manual-meta-string) 416 (insert manual-meta-string)
393 (search-forward "<meta") 417 (search-forward "<meta")
394 (setq opoint (match-beginning 0)) 418 (setq opoint (match-beginning 0))
395 (re-search-forward "<!--") 419 (unless texi5
420 (search-forward "<!--")
421 (goto-char (match-beginning 0))
422 (delete-region opoint (point))
423 (search-forward "<meta http-equiv=\"Content-Style")
424 (setq opoint (match-beginning 0)))
425 (search-forward "</head>")
396 (goto-char (match-beginning 0)) 426 (goto-char (match-beginning 0))
397 (delete-region opoint (point)) 427 (delete-region opoint (point))
398 (insert manual-style-string) 428 (insert manual-style-string)
399 (search-forward "<meta http-equiv=\"Content-Style") 429 ;; Remove Texinfo 5 hard-coding bgcolor, text, link, vlink, alink.
400 (setq opoint (match-beginning 0)) 430 (when (re-search-forward "<body lang=\"[^\"]+\"" nil t)
401 (search-forward "</head>") 431 (setq opoint (point))
402 (delete-region opoint (match-beginning 0)))) 432 (search-forward ">")
433 (if (> (point) (1+ opoint))
434 (delete-region opoint (1- (point))))
435 (search-backward "</head"))))
403 436
404(defun manual-html-fix-node-div () 437;; Texinfo 5 changed these from class = "node" to "header", yay.
438(defun manual-html-fix-node-div (&optional split)
405 "Fix up HTML \"node\" divs in the current buffer." 439 "Fix up HTML \"node\" divs in the current buffer."
406 (let (opoint div-end) 440 (let (opoint div-end type)
407 (while (search-forward "<div class=\"node\">" nil t) 441 (while (re-search-forward "<div class=\"\\(node\\|header\\)\"\\(>\\)" nil t)
408 (replace-match 442 (setq type (match-string 1))
409 "<div class=\"node\" style=\"background-color:#DDDDFF\">" 443 ;; NB it is this that makes the bg of non-header cells in the
410 t t) 444 ;; index tables be blue. Is that intended?
445 ;; Also, if you don't remove the <hr>, the color of the first
446 ;; row in the table will be wrong.
447 ;; This all seems rather odd to me...
448 (replace-match " style=\"background-color:#DDDDFF\">" t t nil 2)
411 (setq opoint (point)) 449 (setq opoint (point))
412 (re-search-forward "</div>") 450 (when (or split (equal type "node"))
413 (setq div-end (match-beginning 0)) 451 ;; In Texinfo 4, the <hr> (and anchor) comes after the <div>.
414 (goto-char opoint) 452 (re-search-forward "</div>")
415 (if (search-forward "<hr>" div-end 'move) 453 (setq div-end (if (equal type "node")
416 (replace-match "" t t))))) 454 (match-beginning 0)
455 (line-end-position 2)))
456 (goto-char opoint)
457 (if (search-forward "<hr>" div-end 'move)
458 (replace-match "" t t)
459 (if split (forward-line -1))))
460 ;; In Texinfo 5, the <hr> (and anchor) comes before the <div> (?).
461 ;; Except in split output, where it comes on the line after
462 ;; the <div>. But only sometimes. I have no clue what the
463 ;; logic of where it goes is.
464 (when (equal type "header")
465 (goto-char opoint)
466 (when (re-search-backward "^<hr>$" (line-beginning-position -3) t)
467 (replace-match "")
468 (goto-char opoint))))))
469
417 470
418(defun manual-html-fix-index-1 () 471(defun manual-html-fix-index-1 ()
472 "Remove the h1 header, and the short and long contents lists.
473Also start a \"content\" div."
419 (let (opoint) 474 (let (opoint)
420 (re-search-forward "<body>\n") 475 (re-search-forward "<body.*>\n")
421 (setq opoint (match-end 0)) 476 (setq opoint (match-end 0))
422 (search-forward "<h2 class=\"") 477 ;; FIXME? Fragile if a Texinfo 5 document does not use @top.
478 (or (re-search-forward "<h1 class=\"top\"" nil t) ; Texinfo 5
479 (search-forward "<h2 class=\""))
423 (goto-char (match-beginning 0)) 480 (goto-char (match-beginning 0))
424 (delete-region opoint (point)) 481 (delete-region opoint (point))
482 ;; NB caller must close this div.
425 (insert "<div id=\"content\" class=\"inner\">\n\n"))) 483 (insert "<div id=\"content\" class=\"inner\">\n\n")))
426 484
427(defun manual-html-fix-index-2 (&optional table-workaround) 485(defun manual-html-fix-index-2 (&optional table-workaround)
428 "Replace the index list in the current buffer with a HTML table." 486 "Replace the index list in the current buffer with a HTML table.
429 (let (done open-td tag desc) 487Leave point after the table."
430 ;; Convert the list that Makeinfo made into a table. 488 (if (re-search-forward "<table class=\"menu\"\\(.*\\)>" nil t)
431 (or (search-forward "<ul class=\"menu\">" nil t) 489 ;; Texinfo 5 already uses a table. Tweak it a bit.
432 (search-forward "<ul>")) 490 (let (opoint done)
433 (replace-match "<table style=\"float:left\" width=\"100%\">") 491 (replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1)
434 (forward-line 1) 492 (forward-line 1)
435 (while (not done) 493 (while (not done)
436 (cond 494 (cond ((re-search-forward "<tr><td.*&bull; \\(<a.*</a>\\)\
437 ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$") 495:</td><td>&nbsp;&nbsp;</td><td[^>]*>\\(.*\\)" (line-end-position) t)
438 (looking-at "<li>\\(<a.+</a>\\)$")) 496 (replace-match (format "<tr><td%s>\\1</td>\n<td>\\2"
439 (setq tag (match-string 1)) 497 (if table-workaround
440 (setq desc (match-string 2)) 498 " bgcolor=\"white\"" "")))
441 (replace-match "" t t) 499 (search-forward "</td></tr>")
442 (when open-td 500 (forward-line 1))
443 (save-excursion 501 ((looking-at "<tr><th.*<pre class=\"menu-comment\">\n")
444 (forward-char -1) 502 (replace-match "<tr><th colspan=\"2\" align=\"left\" \
445 (skip-chars-backward " ") 503style=\"text-align:left\">")
446 (delete-region (point) (line-end-position)) 504 (search-forward "</pre></th></tr>")
447 (insert "</td>\n </tr>"))) 505 (replace-match "</th></tr>\n"))
448 (insert " <tr>\n ") 506 ;; Not all manuals have the detailed menu.
449 (if table-workaround 507 ;; If it is there, split it into a separate table.
450 ;; This works around a Firefox bug in the mono file. 508 ((re-search-forward "<tr>.*The Detailed Node Listing *"
451 (insert "<td bgcolor=\"white\">") 509 (line-end-position) t)
452 (insert "<td>")) 510 (setq opoint (match-beginning 0))
453 (insert tag "</td>\n <td>" (or desc "")) 511 (while (and (looking-at " *&mdash;")
454 (setq open-td t)) 512 (zerop (forward-line 1))))
455 ((eq (char-after) ?\n) 513 (delete-region opoint (point))
456 (delete-char 1) 514 (insert "</table>\n\n\
457 ;; Negate the following `forward-line'. 515<h2>Detailed Node Listing</h2>\n\n<p>")
458 (forward-line -1)) 516 ;; FIXME Fragile!
459 ((looking-at "<!-- ") 517 ;; The Emacs and Elisp manual have some text at the
460 (search-forward "-->")) 518 ;; start of the detailed menu that is not part of the menu.
461 ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*") 519 ;; Other manuals do not.
462 (replace-match " </td></tr></table>\n 520 (if (re-search-forward "in one step:" (line-end-position 3) t)
521 (forward-line 1))
522 (insert "</p>\n")
523 (search-forward "</pre></th></tr>")
524 (delete-region (match-beginning 0) (match-end 0))
525 (forward-line -1)
526 (or (looking-at "^$") (error "Parse error 1"))
527 (forward-line -1)
528 (if (looking-at "^$") (error "Parse error 2"))
529 (forward-line -1)
530 (or (looking-at "^$") (error "Parse error 3"))
531 (forward-line 1)
532 (insert "<table class=\"menu\" style=\"float:left\" width=\"100%\">\n\
533<tr><th colspan=\"2\" align=\"left\" style=\"text-align:left\">\n")
534 (forward-line 1)
535 (insert "</th></tr>")
536 (forward-line 1))
537 ((looking-at ".*</table")
538 (forward-line 1)
539 (setq done t)))))
540 (let (done open-td tag desc)
541 ;; Convert the list that Makeinfo made into a table.
542 (or (search-forward "<ul class=\"menu\">" nil t)
543 ;; FIXME? The following search seems dangerously lax.
544 (search-forward "<ul>"))
545 (replace-match "<table style=\"float:left\" width=\"100%\">")
546 (forward-line 1)
547 (while (not done)
548 (cond
549 ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
550 (looking-at "<li>\\(<a.+</a>\\)$"))
551 (setq tag (match-string 1))
552 (setq desc (match-string 2))
553 (replace-match "" t t)
554 (when open-td
555 (save-excursion
556 (forward-char -1)
557 (skip-chars-backward " ")
558 (delete-region (point) (line-end-position))
559 (insert "</td>\n </tr>")))
560 (insert " <tr>\n ")
561 (if table-workaround
562 ;; This works around a Firefox bug in the mono file.
563 (insert "<td bgcolor=\"white\">")
564 (insert "<td>"))
565 (insert tag "</td>\n <td>" (or desc ""))
566 (setq open-td t))
567 ((eq (char-after) ?\n)
568 (delete-char 1)
569 ;; Negate the following `forward-line'.
570 (forward-line -1))
571 ((looking-at "<!-- ")
572 (search-forward "-->"))
573 ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
574 (replace-match " </td></tr></table>\n
463<h3>Detailed Node Listing</h3>\n\n" t t) 575<h3>Detailed Node Listing</h3>\n\n" t t)
464 (search-forward "<p>") 576 (search-forward "<p>")
465 (search-forward "<p>" nil t) 577 ;; FIXME Fragile!
466 (goto-char (match-beginning 0)) 578 ;; The Emacs and Elisp manual have some text at the
467 (skip-chars-backward "\n ") 579 ;; start of the detailed menu that is not part of the menu.
468 (setq open-td nil) 580 ;; Other manuals do not.
469 (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">")) 581 (if (looking-at "Here are some other nodes")
470 ((looking-at "</li></ul>") 582 (search-forward "<p>"))
471 (replace-match "" t t)) 583 (goto-char (match-beginning 0))
472 ((looking-at "<p>") 584 (skip-chars-backward "\n ")
473 (replace-match "" t t) 585 (setq open-td nil)
474 (when open-td 586 (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
475 (insert " </td></tr>") 587 ((looking-at "</li></ul>")
476 (setq open-td nil)) 588 (replace-match "" t t))
477 (insert " <tr> 589 ((looking-at "<p>")
590 (replace-match "" t t)
591 (when open-td
592 (insert " </td></tr>")
593 (setq open-td nil))
594 (insert " <tr>
478 <th colspan=\"2\" align=\"left\" style=\"text-align:left\">") 595 <th colspan=\"2\" align=\"left\" style=\"text-align:left\">")
479 (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t) 596 (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
480 (replace-match " </th></tr>"))) 597 (replace-match " </th></tr>")))
481 ((looking-at "[ \t]*</ul>[ \t]*$") 598 ((looking-at "[ \t]*</ul>[ \t]*$")
482 (replace-match 599 (replace-match
483 (if open-td 600 (if open-td
484 " </td></tr>\n</table>" 601 " </td></tr>\n</table>"
485 "</table>") t t) 602 "</table>") t t)
486 (setq done t)) 603 (setq done t))
487 (t 604 (t
488 (if (eobp) 605 (if (eobp)
489 (error "Parse error in %s" 606 (error "Parse error in %s"
490 (file-name-nondirectory buffer-file-name))) 607 (file-name-nondirectory buffer-file-name)))
491 (unless open-td 608 (unless open-td
492 (setq done t)))) 609 (setq done t))))
493 (forward-line 1)))) 610 (forward-line 1)))))
494 611
495 612
496;; Stuff to check new defcustoms got :version tags. 613;; Stuff to check new `defcustom's got :version tags.
497;; Adapted from check-declare.el. 614;; Adapted from check-declare.el.
498 615
499(defun cusver-find-files (root &optional old) 616(defun cusver-find-files (root &optional old)
500 "Find .el files beneath directory ROOT that contain defcustoms. 617 "Find .el files beneath directory ROOT that contain `defcustom's.
501If optional OLD is non-nil, also include defvars." 618If optional OLD is non-nil, also include `defvar's."
502 (process-lines find-program root 619 (process-lines find-program root
503 "-name" "*.el" 620 "-name" "*.el"
504 "-exec" grep-program 621 "-exec" grep-program
@@ -510,14 +627,14 @@ If optional OLD is non-nil, also include defvars."
510 627
511(defvar cusver-new-version (format "%s.%s" emacs-major-version 628(defvar cusver-new-version (format "%s.%s" emacs-major-version
512 (1+ emacs-minor-version)) 629 (1+ emacs-minor-version))
513 "Version number that new defcustoms should have.") 630 "Version number that new `defcustom's should have.")
514 631
515(defun cusver-scan (file &optional old) 632(defun cusver-scan (file &optional old)
516 "Scan FILE for `defcustom' calls. 633 "Scan FILE for `defcustom' calls.
517Return a list with elements of the form (VAR . VER), 634Return a list with elements of the form (VAR . VER),
518This means that FILE contains a defcustom for variable VAR, with 635This means that FILE contains a defcustom for variable VAR, with
519a :version tag having value VER (may be nil). 636a :version tag having value VER (may be nil).
520If optional argument OLD is non-nil, also scan for defvars." 637If optional argument OLD is non-nil, also scan for `defvar's."
521 (let ((m (format "Scanning %s..." file)) 638 (let ((m (format "Scanning %s..." file))
522 (re (format "^[ \t]*\\((def%s\\)[ \t\n]" 639 (re (format "^[ \t]*\\((def%s\\)[ \t\n]"
523 (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) 640 (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)")))
@@ -526,13 +643,19 @@ If optional argument OLD is non-nil, also scan for defvars."
526 (with-temp-buffer 643 (with-temp-buffer
527 (insert-file-contents file) 644 (insert-file-contents file)
528 ;; FIXME we could theoretically be inside a string. 645 ;; FIXME we could theoretically be inside a string.
529 (while (re-search-forward re nil t) 646 (while (re-search-forward re nil :noerror)
530 (goto-char (match-beginning 1)) 647 (goto-char (match-beginning 1))
531 (if (and (setq form (ignore-errors (read (current-buffer)))) 648 (if (and (setq form (ignore-errors (read (current-buffer))))
532 (setq var (car-safe (cdr-safe form))) 649 (setq var (car-safe (cdr-safe form)))
533 ;; Exclude macros, eg (defcustom ,varname ...). 650 ;; Exclude macros, eg (defcustom ,varname ...).
534 (symbolp var)) 651 (symbolp var))
535 (progn 652 (progn
653 ;; FIXME It should be cus-test-apropos that does this.
654 (and (not old)
655 (equal "custom" (match-string 2))
656 (not (memq :type form))
657 (display-warning 'custom
658 (format "Missing type in: `%s'" form)))
536 (setq ver (car (cdr-safe (memq :version form)))) 659 (setq ver (car (cdr-safe (memq :version form))))
537 (if (equal "group" (match-string 2)) 660 (if (equal "group" (match-string 2))
538 ;; Group :version could be old. 661 ;; Group :version could be old.
@@ -568,7 +691,7 @@ If optional argument OLD is non-nil, also scan for defvars."
568(define-button-type 'cusver-xref 'action #'cusver-goto-xref) 691(define-button-type 'cusver-xref 'action #'cusver-goto-xref)
569 692
570(defun cusver-goto-xref (button) 693(defun cusver-goto-xref (button)
571 "Jump to a lisp file for the BUTTON at point." 694 "Jump to a Lisp file for the BUTTON at point."
572 (let ((file (button-get button 'file)) 695 (let ((file (button-get button 'file))
573 (var (button-get button 'var))) 696 (var (button-get button 'var)))
574 (if (not (file-readable-p file)) 697 (if (not (file-readable-p file))
@@ -584,34 +707,36 @@ If optional argument OLD is non-nil, also scan for defvars."
584;; TODO Check cus-start if something moved from C to Lisp. 707;; TODO Check cus-start if something moved from C to Lisp.
585;; TODO Handle renamed things with aliases to the old names. 708;; TODO Handle renamed things with aliases to the old names.
586(defun cusver-check (newdir olddir version) 709(defun cusver-check (newdir olddir version)
587 "Check that defcustoms have :version tags where needed. 710 "Check that `defcustom's have :version tags where needed.
588NEWDIR is the current lisp/ directory, OLDDIR is that from the previous 711NEWDIR is the current lisp/ directory, OLDDIR is that from the
589release. A defcustom that is only in NEWDIR should have a :version 712previous release, VERSION is the new version number. A
590tag. We exclude cases where a defvar exists in OLDDIR, since 713`defcustom' that is only in NEWDIR should have a :version tag.
591just converting a defvar to a defcustom does not require a :version bump. 714We exclude cases where a `defvar' exists in OLDDIR, since just
715converting a `defvar' to a `defcustom' does not require
716a :version bump.
592 717
593Note that a :version tag should also be added if the value of a defcustom 718Note that a :version tag should also be added if the value of a defcustom
594changes (in a non-trivial way). This function does not check for that." 719changes (in a non-trivial way). This function does not check for that."
595 (interactive (list (read-directory-name "New Lisp directory: ") 720 (interactive (list (read-directory-name "New Lisp directory: " nil nil t)
596 (read-directory-name "Old Lisp directory: ") 721 (read-directory-name "Old Lisp directory: " nil nil t)
597 (number-to-string 722 (number-to-string
598 (read-number "New version number: " 723 (read-number "New version number: "
599 (string-to-number cusver-new-version))))) 724 (string-to-number cusver-new-version)))))
600 (or (file-directory-p (setq newdir (expand-file-name newdir))) 725 (or (file-directory-p (setq newdir (expand-file-name newdir)))
601 (error "Directory `%s' not found" newdir)) 726 (user-error "Directory `%s' not found" newdir))
602 (or (file-directory-p (setq olddir (expand-file-name olddir))) 727 (or (file-directory-p (setq olddir (expand-file-name olddir)))
603 (error "Directory `%s' not found" olddir)) 728 (user-error "Directory `%s' not found" olddir))
604 (setq cusver-new-version version) 729 (setq cusver-new-version version)
605 (let* ((newfiles (progn (message "Finding new files with defcustoms...") 730 (let* ((newfiles (progn (message "Finding new files with `defcustom's...")
606 (cusver-find-files newdir))) 731 (cusver-find-files newdir)))
607 (oldfiles (progn (message "Finding old files with defcustoms...") 732 (oldfiles (progn (message "Finding old files with `defcustom's...")
608 (cusver-find-files olddir t))) 733 (cusver-find-files olddir t)))
609 (newcus (progn (message "Reading new defcustoms...") 734 (newcus (progn (message "Reading new `defcustom's...")
610 (mapcar 735 (mapcar
611 (lambda (file) 736 (lambda (file)
612 (cons file (cusver-scan file))) newfiles))) 737 (cons file (cusver-scan file))) newfiles)))
613 oldcus result thisfile file) 738 oldcus result thisfile file)
614 (message "Reading old defcustoms...") 739 (message "Reading old `defcustom's...")
615 (dolist (file oldfiles) 740 (dolist (file oldfiles)
616 (setq oldcus (append oldcus (cusver-scan file t)))) 741 (setq oldcus (append oldcus (cusver-scan file t))))
617 (setq oldcus (append oldcus (cusver-scan-cus-start 742 (setq oldcus (append oldcus (cusver-scan-cus-start
@@ -636,7 +761,7 @@ changes (in a non-trivial way). This function does not check for that."
636 (message "No missing :version tags") 761 (message "No missing :version tags")
637 (pop-to-buffer "*cusver*") 762 (pop-to-buffer "*cusver*")
638 (erase-buffer) 763 (erase-buffer)
639 (insert "These defcustoms might be missing :version tags:\n\n") 764 (insert "These `defcustom's might be missing :version tags:\n\n")
640 (dolist (elem result) 765 (dolist (elem result)
641 (let* ((str (file-relative-name (car elem) newdir)) 766 (let* ((str (file-relative-name (car elem) newdir))
642 (strlen (length str))) 767 (strlen (length str)))
diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c
index d8fc97cc721..a63e1bacef5 100644
--- a/admin/alloc-colors.c
+++ b/admin/alloc-colors.c
@@ -1,6 +1,6 @@
1/* Allocate X colors. Used for testing with dense colormaps. 1/* Allocate X colors. Used for testing with dense colormaps.
2 2
3Copyright (C) 2001-2013 Free Software Foundation, Inc. 3Copyright (C) 2001-2014 Free Software Foundation, Inc.
4 4
5This file is part of GNU Emacs. 5This file is part of GNU Emacs.
6 6
diff --git a/admin/build-configs b/admin/build-configs
index 8b738befb18..6a369416696 100755
--- a/admin/build-configs
+++ b/admin/build-configs
@@ -1,7 +1,7 @@
1#! /usr/bin/perl 1#! /usr/bin/perl
2# Build Emacs in several different configurations. 2# Build Emacs in several different configurations.
3 3
4# Copyright (C) 2001-2013 Free Software Foundation, Inc. 4# Copyright (C) 2001-2014 Free Software Foundation, Inc.
5 5
6# This file is part of GNU Emacs. 6# This file is part of GNU Emacs.
7 7
@@ -20,6 +20,8 @@
20 20
21 21
22require 5; 22require 5;
23use strict;
24use warnings;
23use Getopt::Long; 25use Getopt::Long;
24use File::Basename; 26use File::Basename;
25use Cwd; 27use Cwd;
diff --git a/admin/bzrmerge.el b/admin/bzrmerge.el
index 42d39d3071a..924033b1554 100644
--- a/admin/bzrmerge.el
+++ b/admin/bzrmerge.el
@@ -1,6 +1,6 @@
1;;; bzrmerge.el --- help merge one Emacs bzr branch to another 1;;; bzrmerge.el --- help merge one Emacs bzr branch to another
2 2
3;; Copyright (C) 2010-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2010-2014 Free Software Foundation, Inc.
4 4
5;; Author: Stefan Monnier <monnier@iro.umontreal.ca> 5;; Author: Stefan Monnier <monnier@iro.umontreal.ca>
6;; Keywords: maint 6;; Keywords: maint
diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README
index 0a742854811..15ec320589f 100644
--- a/admin/charsets/mapfiles/README
+++ b/admin/charsets/mapfiles/README
@@ -1,4 +1,4 @@
1Copyright (C) 2009-2013 Free Software Foundation, Inc. 1Copyright (C) 2009-2014 Free Software Foundation, Inc.
2Copyright (C) 2009, 2010, 2011 2Copyright (C) 2009, 2010, 2011
3 National Institute of Advanced Industrial Science and Technology (AIST) 3 National Institute of Advanced Industrial Science and Technology (AIST)
4 Registration Number H13PRO009 4 Registration Number H13PRO009
@@ -6,47 +6,48 @@ See the end of the file for license conditions.
6 6
7 The charset map files directory 7 The charset map files directory
8 8
9This directory contains two kinds of charset map files; verbatim copies 9This directory contains two kinds of charset map files; verbatim
10(or their compressed versions) of files freely available in the 10copies of files freely available in the Internet, and newly created
11Internet, and newly created files based on freely available 11files based on freely available information.
12information.
13 12
14(1) Copied files (all files are copied on 2009-06-12) 13(1) Copied files (all files were copied on 2014-01-15):
15 14
16* CP932.TXT.gz 15* CP932.TXT
17 16
18The uncompressed version is available at: 17Available at:
19 <http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT> 18 <http://www.unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP932.TXT>
20 19
21* PTCP154.gz 20* PTCP154
22 21
23The uncompressed version is available at: 22Available at:
24 <http://www.iana.org/assignments/charset-reg/PTCP154> 23 <http://www.iana.org/assignments/charset-reg/PTCP154>
25 24
26* Uni2JIS.gz 25* Uni2JIS
27 26
28The version compressed by Unix's "compress" command is available at: 27The version compressed by Unix's "compress" command is available at:
29 <http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/Uni2JIS.Z> 28 <http://kanji.zinbun.kyoto-u.ac.jp/~yasuoka/ftp/CJKtable/Uni2JIS.Z>
29This directory's copy has corrected the misspellings of "characters"
30and of "Byelorussian".
30 31
31* bulgarian-mik.txt.gz 32* bulgarian-mik.txt
32 33
33It is available at: 34The compressed version is available at:
34 <http://czyborra.com/charsets/bulgarian-mik.txt.gz>. 35 <http://czyborra.com/charsets/bulgarian-mik.txt.gz>
35 36
36* cns2ucsdkw.txt.gz 37* cns2ucsdkw.txt
37 38
38Uncompressed version is available at: 39Available at:
39 <http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4> 40 <http://kanji-database.cvs.sourceforge.net/viewvc/*checkout*/kanji-database/kanji-database/data/cns2ucsdkw.txt?revision=1.4>
40 41
41* stdenc.txt.gz and symbol.txt.gz 42* stdenc.txt and symbol.txt
42 43
43The uncompressed versions are available at: 44Available at:
44 <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt> 45 <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/stdenc.txt>
45 <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt> 46 <http://www.unicode.org/Public/MAPPINGS/VENDORS/ADOBE/symbol.txt>
46 47
47(2) Newly created files 48(2) Newly created files
48 49
49* CP720.map.gz and CP858.map.gz 50* CP720.map and CP858.map
50 51
51Created manually by looking at these pages: 52Created manually by looking at these pages:
52 <http://en.wikipedia.org/wiki/Code_page_720>. 53 <http://en.wikipedia.org/wiki/Code_page_720>.
@@ -54,13 +55,13 @@ Created manually by looking at these pages:
54The text in that page is under the terms of the GNU Free Documentation 55The text in that page is under the terms of the GNU Free Documentation
55License. 56License.
56 57
57* JISX213A.map.gz 58* JISX213A.map
58 59
59Created manually based on the description of the section 33 in "JIS X 60Created manually based on the description of the section 33 in "JIS X
600213:2004 Amendment 1". It lists 10 characters that are newly added 610213:2004 Amendment 1". It lists 10 characters that are newly added
61to "JIS X 0213:2004". 62to "JIS X 0213:2004".
62 63
63* MULE-*.map.gz 64* MULE-*.map
64 65
65Created by using ../mule-charsets.el in Emacs 22 as this: 66Created by using ../mule-charsets.el in Emacs 22 as this:
66 % emacs-22 -batch -l ../mule-charsets.el 67 % emacs-22 -batch -l ../mule-charsets.el
diff --git a/admin/charsets/mapfiles/stdenc.txt b/admin/charsets/mapfiles/stdenc.txt
index d4b9d7c9343..e39486a3195 100644
--- a/admin/charsets/mapfiles/stdenc.txt
+++ b/admin/charsets/mapfiles/stdenc.txt
@@ -1,10 +1,10 @@
1# 1#
2# Name: Adobe Standard Encoding to Unicode 2# Name: Adobe Standard Encoding to Unicode
3# Unicode version: 2.0 3# Unicode version: 2.0
4# Table version: 0.2 4# Table version: 1.0
5# Date: 30 March 1999 5# Date: 2011 July 12
6# 6#
7# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. 7# Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
8# 8#
9# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No 9# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
10# claims are made as to fitness for any particular purpose. No warranties of 10# claims are made as to fitness for any particular purpose. No warranties of
@@ -13,12 +13,12 @@
13# magnetic media by Unicode, Inc., the sole remedy for any claim will be 13# magnetic media by Unicode, Inc., the sole remedy for any claim will be
14# exchange of defective media within 90 days of receipt. 14# exchange of defective media within 90 days of receipt.
15# 15#
16# Recipient is granted the right to make copies in any form for internal 16# Unicode, Inc. hereby grants the right to freely use the information
17# distribution and to freely use the information supplied in the creation of 17# supplied in this file in the creation of products supporting the
18# products supporting Unicode. Unicode, Inc. specifically excludes the right 18# Unicode Standard, and to make copies of this file in any form for
19# to re-distribute this file directly to third parties or other organizations 19# internal or external distribution as long as this notice remains
20# whether for profit or not. 20# attached.
21# 21#
22# Format: 4 tab-delimited fields: 22# Format: 4 tab-delimited fields:
23# 23#
24# (1) The Unicode value (in hexadecimal) 24# (1) The Unicode value (in hexadecimal)
@@ -36,8 +36,17 @@
36# Standard Encoding characters, such as "space", are mapped to 2 Unicode 36# Standard Encoding characters, such as "space", are mapped to 2 Unicode
37# values. Refer to the above document for more details. 37# values. Refer to the above document for more details.
38# 38#
39# 2011 July 12: The above link is no longer valid. For comparable,
40# more current information, see the document, "Glyph", at:
41# <http://www.adobe.com/devnet/opentype/archives/glyph.html>
42#
39# Revision History: 43# Revision History:
40# 44#
45# [v1.0, 2011 July 12]
46# Updated terms of use to current wording.
47# Updated contact information and document link.
48# No changes to the mapping data.
49#
41# [v0.2, 30 March 1999] 50# [v0.2, 30 March 1999]
42# Different algorithm to produce Unicode values (see notes above) results in 51# Different algorithm to produce Unicode values (see notes above) results in
43# some character codes being mapped to 2 Unicode values. Updated Unicode 52# some character codes being mapped to 2 Unicode values. Updated Unicode
@@ -45,7 +54,8 @@
45# 54#
46# [v0.1, 5 May 1995] First release. 55# [v0.1, 5 May 1995] First release.
47# 56#
48# Contact <unicode-inc@unicode.org> with any questions or comments. 57# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
58# for any questions or comments or to report errors in the data.
49# 59#
500020 20 # SPACE # space 600020 20 # SPACE # space
5100A0 20 # NO-BREAK SPACE # space 6100A0 20 # NO-BREAK SPACE # space
diff --git a/admin/charsets/mapfiles/symbol.txt b/admin/charsets/mapfiles/symbol.txt
index a545915a323..b98baf6cf0c 100644
--- a/admin/charsets/mapfiles/symbol.txt
+++ b/admin/charsets/mapfiles/symbol.txt
@@ -1,10 +1,10 @@
1# 1#
2# Name: Adobe Symbol Encoding to Unicode 2# Name: Adobe Symbol Encoding to Unicode
3# Unicode version: 2.0 3# Unicode version: 2.0
4# Table version: 0.2 4# Table version: 1.0
5# Date: 30 March 1999 5# Date: 2011 July 12
6# 6#
7# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved. 7# Copyright (c) 1991-2011 Unicode, Inc. All Rights reserved.
8# 8#
9# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No 9# This file is provided as-is by Unicode, Inc. (The Unicode Consortium). No
10# claims are made as to fitness for any particular purpose. No warranties of 10# claims are made as to fitness for any particular purpose. No warranties of
@@ -13,11 +13,11 @@
13# magnetic media by Unicode, Inc., the sole remedy for any claim will be 13# magnetic media by Unicode, Inc., the sole remedy for any claim will be
14# exchange of defective media within 90 days of receipt. 14# exchange of defective media within 90 days of receipt.
15# 15#
16# Recipient is granted the right to make copies in any form for internal 16# Unicode, Inc. hereby grants the right to freely use the information
17# distribution and to freely use the information supplied in the creation of 17# supplied in this file in the creation of products supporting the
18# products supporting Unicode. Unicode, Inc. specifically excludes the right 18# Unicode Standard, and to make copies of this file in any form for
19# to re-distribute this file directly to third parties or other organizations 19# internal or external distribution as long as this notice remains
20# whether for profit or not. 20# attached.
21# 21#
22# Format: 4 tab-delimited fields: 22# Format: 4 tab-delimited fields:
23# 23#
@@ -37,8 +37,17 @@
37# Corporate Use Subarea; these are indicated by "(CUS)" in field 4. Refer to 37# Corporate Use Subarea; these are indicated by "(CUS)" in field 4. Refer to
38# the above document for more details. 38# the above document for more details.
39# 39#
40# 2011 July 12: The above link is no longer valid. For comparable,
41# more current information, see the document, "Glyph", at:
42# <http://www.adobe.com/devnet/opentype/archives/glyph.html>
43#
40# Revision History: 44# Revision History:
41# 45#
46# [v1.0, 2011 July 12]
47# Updated terms of use to current wording.
48# Updated contact information and document link.
49# No changes to the mapping data.
50#
42# [v0.2, 30 March 1999] 51# [v0.2, 30 March 1999]
43# Different algorithm to produce Unicode values (see notes above) results in 52# Different algorithm to produce Unicode values (see notes above) results in
44# some character codes being mapped to 2 Unicode values; use of Corporate 53# some character codes being mapped to 2 Unicode values; use of Corporate
@@ -48,7 +57,8 @@
48# 57#
49# [v0.1, 5 May 1995] First release. 58# [v0.1, 5 May 1995] First release.
50# 59#
51# Contact <unicode-inc@unicode.org> with any questions or comments. 60# Use the Unicode reporting form <http://www.unicode.org/reporting.html>
61# for any questions or comments or to report errors in the data.
52# 62#
530020 20 # SPACE # space 630020 20 # SPACE # space
5400A0 20 # NO-BREAK SPACE # space 6400A0 20 # NO-BREAK SPACE # space
diff --git a/admin/charsets/mule-charsets.el b/admin/charsets/mule-charsets.el
index 4a48d994b1b..4ccf4bfb5be 100644
--- a/admin/charsets/mule-charsets.el
+++ b/admin/charsets/mule-charsets.el
@@ -19,20 +19,32 @@
19;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. 19;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
20 20
21 21
22(if (not (or (and (= emacs-major-version 21) (= emacs-minor-version 4)) 22;; For the record: the old, pre-v23 code was this:
23 (= emacs-major-version 22))) 23;; (if (not (or (and (= emacs-major-version 21) (= emacs-minor-version 4))
24 (error "Use Emacs of version 21.4 or any of version 22")) 24;; (= emacs-major-version 22)))
25 25;; (error "Use Emacs of version 21.4 or any of version 22"))
26(defun func (start end) 26;;
27 (while (<= start end) 27;; (defun func (start end)
28 (let ((split (split-char start)) 28;; (while (<= start end)
29 (unicode (encode-char start 'ucs))) 29;; (let ((split (split-char start))
30 (if unicode 30;; (unicode (encode-char start 'ucs)))
31 (if (nth 2 split) 31;; (if unicode
32 (insert (format "0x%02X%02X 0x%04X\n" 32;; (if (nth 2 split)
33 (nth 1 split) (nth 2 split) unicode)) 33;; (insert (format "0x%02X%02X 0x%04X\n"
34 (insert (format "0x%02X 0x%04X\n" (nth 1 split) unicode))))) 34;; (nth 1 split) (nth 2 split) unicode))
35 (setq start (1+ start)))) 35;; (insert (format "0x%02X 0x%04X\n" (nth 1 split) unicode)))))
36;; (setq start (1+ start))))
37
38(defun func (range charset)
39 (let ((start (car range))
40 (end (cdr range)))
41 (while (and (<= start end) (<= start #x10ffff))
42 (let ((ch (encode-char start charset)))
43 (if ch
44 (if (> ch 256)
45 (insert (format "0x%04X 0x%04X\n" ch start))
46 (insert (format "0x%02X 0x%04X\n" ch start)))))
47 (setq start (1+ start)))))
36 48
37(defconst charset-alist 49(defconst charset-alist
38 '(("MULE-ethiopic.map" . ethiopic) 50 '(("MULE-ethiopic.map" . ethiopic)
@@ -51,6 +63,8 @@
51(dolist (elt charset-alist) 63(dolist (elt charset-alist)
52 (with-temp-buffer 64 (with-temp-buffer
53 (insert header) 65 (insert header)
54 (map-charset-chars 'func (cdr elt)) 66 (map-charset-chars 'func (cdr elt) (cdr elt))
55 (write-file (car elt)))) 67 (sort-lines nil (point-min) (point-max))
68 (let ((coding-system-for-write 'unix))
69 (write-file (car elt)))))
56 70
diff --git a/admin/check-doc-strings b/admin/check-doc-strings
index c69ff47ebfb..a0b5acb623f 100755
--- a/admin/check-doc-strings
+++ b/admin/check-doc-strings
@@ -1,11 +1,12 @@
1: #-*- Perl -*- 1: #-*- Perl -*-
2eval 'exec perl -w -S $0 ${1+"$@"}' # Portability kludge 2eval 'exec perl -S $0 ${1+"$@"}' # Portability kludge
3 if 0; 3 if 0;
4 4
5# Author: Martin Buchholz 5# Author: Martin Buchholz
6# This program is in the public domain. 6# This program is in the public domain.
7 7
8use strict; 8use strict;
9use warnings;
9use POSIX; 10use POSIX;
10 11
11(my $myName = $0) =~ s@.*/@@; my $usage=" 12(my $myName = $0) =~ s@.*/@@; my $usage="
diff --git a/admin/cus-test.el b/admin/cus-test.el
index 54d26cc11d6..b60eac28d2a 100644
--- a/admin/cus-test.el
+++ b/admin/cus-test.el
@@ -1,6 +1,6 @@
1;;; cus-test.el --- tests for custom types and load problems 1;;; cus-test.el --- tests for custom types and load problems
2 2
3;; Copyright (C) 1998, 2000, 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1998, 2000, 2002-2014 Free Software Foundation, Inc.
4 4
5;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de> 5;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de>
6;; Maintainer: Markus Rost <rost@math.ohio-state.edu> 6;; Maintainer: Markus Rost <rost@math.ohio-state.edu>
@@ -187,6 +187,9 @@ The detected problematic options are stored in `cus-test-errors'."
187 (message "Cus Test running...%s %s" 187 (message "Cus Test running...%s %s"
188 (length cus-test-tested-variables) symbol) 188 (length cus-test-tested-variables) symbol)
189 (condition-case alpha 189 (condition-case alpha
190 ;; FIXME This defaults to 'sexp if no type was specified.
191 ;; Always report such instances as a type mismatch.
192 ;; Currently abusing cusver-scan to do that.
190 (let* ((type (custom-variable-type symbol)) 193 (let* ((type (custom-variable-type symbol))
191 (conv (widget-convert type)) 194 (conv (widget-convert type))
192 (get (or (get symbol 'custom-get) 'default-value)) 195 (get (or (get symbol 'custom-get) 'default-value))
diff --git a/admin/diff-tar-files b/admin/diff-tar-files
index af892d6ce41..9bdc91ff5fd 100755
--- a/admin/diff-tar-files
+++ b/admin/diff-tar-files
@@ -1,6 +1,6 @@
1#! /bin/sh 1#! /bin/sh
2 2
3# Copyright (C) 2001-2013 Free Software Foundation, Inc. 3# Copyright (C) 2001-2014 Free Software Foundation, Inc.
4 4
5# This file is part of GNU Emacs. 5# This file is part of GNU Emacs.
6 6
diff --git a/admin/find-gc.el b/admin/find-gc.el
new file mode 100644
index 00000000000..83eb26e86d7
--- /dev/null
+++ b/admin/find-gc.el
@@ -0,0 +1,149 @@
1;;; find-gc.el --- detect functions that call the garbage collector
2
3;; Copyright (C) 1992, 2001-2014 Free Software Foundation, Inc.
4
5;; Maintainer: emacs-devel@gnu.org
6
7;; This file is part of GNU Emacs.
8
9;; GNU Emacs is free software: you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; GNU Emacs is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23
24;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC.
25;; This expects the Emacs sources to live in find-gc-source-directory.
26
27;;; Code:
28
29(defvar find-gc-unsafe-list nil
30 "The list of unsafe functions is placed here by `find-gc-unsafe'.")
31
32(defvar find-gc-source-directory
33 (file-name-as-directory (expand-file-name "src" source-directory))
34 "Directory containing Emacs C sources.")
35
36(defvar find-gc-subrs-callers nil
37 "Alist of users of subrs, from GC testing.
38Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).")
39
40(defvar find-gc-subrs-called nil
41 "Alist of subrs called, in GC testing.
42Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).")
43
44
45;;; Functions on this list are safe, even if they appear to be able
46;;; to call the target.
47
48(defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument))
49
50;;; This was originally generated directory-files, but there were
51;;; too many files there that were not actually compiled. The
52;;; list below was created for a HP-UX 7.0 system.
53
54(defvar find-gc-source-files
55 '("dispnew.c" "scroll.c" "xdisp.c" "window.c"
56 "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c"
57 "keymap.c" "sysdep.c" "buffer.c" "filelock.c"
58 "insdel.c" "marker.c" "minibuf.c" "fileio.c"
59 "dired.c" "cmds.c" "casefiddle.c"
60 "indent.c" "search.c" "regex.c" "undo.c"
61 "alloc.c" "data.c" "doc.c" "editfns.c"
62 "callint.c" "eval.c" "fns.c" "print.c" "lread.c"
63 "syntax.c" "unexcoff.c"
64 "bytecode.c" "process.c" "callproc.c" "doprnt.c"
65 "xterm.c" "xfns.c"))
66
67
68(defun find-gc-unsafe ()
69 "Return a list of unsafe functions--that is, which can call GC.
70Also store it in `find-gc-unsafe-list'."
71 (trace-call-tree nil)
72 (trace-use-tree)
73 (find-unsafe-funcs 'Fgarbage_collect)
74 (setq find-gc-unsafe-list
75 (sort find-gc-unsafe-list
76 (function (lambda (x y)
77 (string-lessp (car x) (car y)))))))
78
79;;; This does a depth-first search to find all functions that can
80;;; ultimately call the function "target". The result is an a-list
81;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs
82;;; are (one of) the unsafe functions that these functions directly
83;;; call.
84
85(defun find-unsafe-funcs (target)
86 (setq find-gc-unsafe-list (list (list target)))
87 (trace-unsafe target))
88
89(defun trace-unsafe (func)
90 (let ((used (assq func find-gc-subrs-callers)))
91 (or used
92 (error "No find-gc-subrs-callers for %s" (car find-gc-unsafe-list)))
93 (while (setq used (cdr used))
94 (or (assq (car used) find-gc-unsafe-list)
95 (memq (car used) find-gc-noreturn-list)
96 (progn
97 (push (cons (car used) func) find-gc-unsafe-list)
98 (trace-unsafe (car used)))))))
99
100
101
102
103(defun trace-call-tree (&optional ignored)
104 (message "Setting up directories...")
105 (setq find-gc-subrs-called nil)
106 (let ((case-fold-search nil)
107 (default-directory find-gc-source-directory)
108 (files find-gc-source-files)
109 name entry rtlfile)
110 (dolist (file files)
111 (message "Compiling %s..." file)
112 (call-process "gcc" nil nil nil "-I" "." "-I" "../lib"
113 "-fdump-rtl-expand" "-o" null-device "-c" file)
114 (setq rtlfile
115 (file-expand-wildcards (format "%s.*.expand" file) t))
116 (if (/= 1 (length rtlfile))
117 (message "Error compiling `%s'?" file)
118 (with-temp-buffer
119 (insert-file-contents (setq rtlfile (car rtlfile)))
120 (delete-file rtlfile)
121 (while (re-search-forward ";; Function \\|(call_insn " nil t)
122 (if (= (char-after (- (point) 3)) ?o)
123 (progn
124 (looking-at "[a-zA-Z0-9_]+")
125 (setq name (intern (match-string 0)))
126 (message "%s : %s" (car files) name)
127 (setq entry (list name)
128 find-gc-subrs-called
129 (cons entry find-gc-subrs-called)))
130 (if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"")
131 (progn
132 (setq name (intern (match-string 1)))
133 (or (memq name (cdr entry))
134 (setcdr entry (cons name (cdr entry)))))))))))))
135
136(defun trace-use-tree ()
137 (setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called)))
138 (let ((ptr find-gc-subrs-called)
139 p2 found)
140 (while ptr
141 (setq p2 (car ptr))
142 (while (setq p2 (cdr p2))
143 (if (setq found (assq (car p2) find-gc-subrs-callers))
144 (setcdr found (cons (car (car ptr)) (cdr found)))))
145 (setq ptr (cdr ptr)))))
146
147(provide 'find-gc)
148
149;;; find-gc.el ends here
diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in
new file mode 100644
index 00000000000..b89df7116a6
--- /dev/null
+++ b/admin/grammars/Makefile.in
@@ -0,0 +1,116 @@
1### @configure_input@
2
3## Copyright (C) 2013-2014 Free Software Foundation, Inc.
4
5## This file is part of GNU Emacs.
6
7## GNU Emacs is free software: you can redistribute it and/or modify
8## it under the terms of the GNU General Public License as published by
9## the Free Software Foundation, either version 3 of the License, or
10## (at your option) any later version.
11
12## GNU Emacs is distributed in the hope that it will be useful,
13## but WITHOUT ANY WARRANTY; without even the implied warranty of
14## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15## GNU General Public License for more details.
16
17## You should have received a copy of the GNU General Public License
18## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
19
20### Commentary:
21
22## This directory contains grammar files in Bison and Wisent,
23## used to generate the parser data in the lisp/cedet directory.
24
25SHELL = @SHELL@
26
27srcdir = @srcdir@
28top_srcdir = @top_srcdir@
29top_builddir = @top_builddir@
30
31# Prevent any settings in the user environment causing problems.
32unexport EMACSDATA EMACSDOC EMACSPATH
33
34EMACS = ${top_builddir}/src/emacs
35emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
36
37make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
38make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
39
40cedetdir = ${top_srcdir}/lisp/cedet
41bovinedir = ${cedetdir}/semantic/bovine
42wisentdir = ${cedetdir}/semantic/wisent
43
44BOVINE = \
45 ${bovinedir}/c-by.el \
46 ${bovinedir}/make-by.el \
47 ${bovinedir}/scm-by.el
48
49## FIXME Should include this one too:
50## ${cedetdir}/semantic/grammar-wy.el
51## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
52## requires it!
53WISENT = \
54 ${wisentdir}/javat-wy.el \
55 ${wisentdir}/js-wy.el \
56 ${wisentdir}/python-wy.el \
57 ${cedetdir}/srecode/srt-wy.el
58
59ALL = ${BOVINE} ${WISENT}
60
61.PHONY: all bovine wisent
62
63all: ${ALL}
64
65bovine: ${BOVINE}
66
67wisent: ${WISENT}
68
69
70${bovinedir}/c-by.el: ${srcdir}/c.by
71 [ ! -f "$@" ] || chmod +w "$@"
72 ${make_bovine} -o "$@" ${srcdir}/c.by
73
74${bovinedir}/make-by.el: ${srcdir}/make.by
75 [ ! -f "$@" ] || chmod +w "$@"
76 ${make_bovine} -o "$@" ${srcdir}/make.by
77
78${bovinedir}/scm-by.el: ${srcdir}/scheme.by
79 [ ! -f "$@" ] || chmod +w "$@"
80 ${make_bovine} -o "$@" ${srcdir}/scheme.by
81
82
83${cedetdir}/semantic/grammar-wy.el: ${srcdir}/grammar.wy
84 [ ! -f "$@" ] || chmod +w "$@"
85 ${make_wisent} -o "$@" ${srcdir}/grammar.wy
86
87${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
88 [ ! -f "$@" ] || chmod +w "$@"
89 ${make_wisent} -o "$@" ${srcdir}/java-tags.wy
90
91${wisentdir}/js-wy.el: ${srcdir}/js.wy
92 [ ! -f "$@" ] || chmod +w "$@"
93 ${make_wisent} -o "$@" ${srcdir}/js.wy
94
95${wisentdir}/python-wy.el: ${srcdir}/python.wy
96 [ ! -f "$@" ] || chmod +w "$@"
97 ${make_wisent} -o "$@" ${srcdir}/python.wy
98
99${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
100 [ ! -f "$@" ] || chmod +w "$@"
101 ${make_wisent} -o "$@" ${srcdir}/srecode-template.wy
102
103
104.PHONY: distclean bootstrap-clean maintainer-clean extraclean
105
106distclean:
107 rm -f Makefile
108
109bootstrap-clean maintainer-clean: distclean
110
111## We do not normally delete the generated files, even in bootstrap.
112## Creating them does not take long, so we could easily change this.
113extraclean:
114 rm -f ${ALL}
115
116# Makefile.in ends here
diff --git a/admin/grammars/README b/admin/grammars/README
deleted file mode 100644
index e38260952a5..00000000000
--- a/admin/grammars/README
+++ /dev/null
@@ -1,11 +0,0 @@
1This directory contains grammar files in Bison and Wisent, used to
2generate the parser data in the lisp/semantic/bovine/ and
3lisp/semantic/wisent/ directories. You can run the parser generators
4with
5
6emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers
7emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers
8
9Currently, the parser files in lisp/ are not generated directly from
10these grammar files when making Emacs. This state of affairs, and the
11contents of this directory, will change in a future version of Emacs.
diff --git a/admin/grammars/c.by b/admin/grammars/c.by
index 5d2f407e8e3..0fd8a33f25a 100644
--- a/admin/grammars/c.by
+++ b/admin/grammars/c.by
@@ -1,5 +1,5 @@
1;;; c.by -- LL grammar for C/C++ language specification 1;;; c.by -- LL grammar for C/C++ language specification
2;; Copyright (C) 1999-2013 Free Software Foundation, Inc. 2;; Copyright (C) 1999-2014 Free Software Foundation, Inc.
3;; 3;;
4;; Author: Eric M. Ludlam <zappo@gnu.org> 4;; Author: Eric M. Ludlam <zappo@gnu.org>
5;; David Ponce <david@dponce.com> 5;; David Ponce <david@dponce.com>
@@ -41,9 +41,13 @@
41%provide semantic/bovine/c-by 41%provide semantic/bovine/c-by
42 42
43%{ 43%{
44(declare-function semantic-c-reconstitute-token "semantic/bovine/c") 44(declare-function semantic-c-reconstitute-token "semantic/bovine/c"
45(declare-function semantic-c-reconstitute-template "semantic/bovine/c") 45 (tokenpart declmods typedecl))
46(declare-function semantic-expand-c-tag "semantic/bovine/c") 46(declare-function semantic-c-reconstitute-template "semantic/bovine/c"
47 (tag specifier))
48(declare-function semantic-expand-c-tag "semantic/bovine/c" (tag))
49(declare-function semantic-parse-region "semantic"
50 (start end &optional nonterminal depth returnonerror))
47} 51}
48 52
49%languagemode c-mode c++-mode 53%languagemode c-mode c++-mode
@@ -897,8 +901,8 @@ varname
897;; I should store more in this def, but leave it simple for now. 901;; I should store more in this def, but leave it simple for now.
898;; Klaus Berndl: const and volatile can be written after the type! 902;; Klaus Berndl: const and volatile can be written after the type!
899variablearg 903variablearg
900 : declmods typeformbase cv-declmods opt-ref variablearg-opt-name 904 : declmods typeformbase cv-declmods opt-ref variablearg-opt-name opt-assign
901 ( VARIABLE-TAG (list $5) $2 nil 905 ( VARIABLE-TAG (list (append $5 ,$6)) $2 nil
902 :constant-flag (if (member "const" (append $1 $3)) t nil) 906 :constant-flag (if (member "const" (append $1 $3)) t nil)
903 :typemodifiers (delete "const" (append $1 $3)) 907 :typemodifiers (delete "const" (append $1 $3))
904 :reference (car ,$4) 908 :reference (car ,$4)
@@ -908,6 +912,8 @@ variablearg
908variablearg-opt-name 912variablearg-opt-name
909 : varname 913 : varname
910 ( ,$1 ) 914 ( ,$1 )
915 | semantic-list arg-list
916 ( (car ( EXPAND $1 function-pointer )) $2)
911 ;; Klaus Berndl: This allows variableargs without a arg-name being 917 ;; Klaus Berndl: This allows variableargs without a arg-name being
912 ;; parsed correct even if there several pointers (*) 918 ;; parsed correct even if there several pointers (*)
913 | opt-stars 919 | opt-stars
@@ -922,9 +928,9 @@ varname-opt-initializer
922 928
923varnamelist 929varnamelist
924 : opt-ref varname varname-opt-initializer COMA varnamelist 930 : opt-ref varname varname-opt-initializer COMA varnamelist
925 ( ,(cons $2 $5) ) 931 ( ,(cons (append $2 $3) $5) )
926 | opt-ref varname varname-opt-initializer 932 | opt-ref varname varname-opt-initializer
927 ( $2 ) 933 ( (append $2 $3) )
928 ; 934 ;
929 935
930;; Klaus Berndl: Is necessary to parse stuff like 936;; Klaus Berndl: Is necessary to parse stuff like
@@ -1107,8 +1113,8 @@ functionname
1107 ; 1113 ;
1108 1114
1109function-pointer 1115function-pointer
1110 : LPAREN STAR symbol RPAREN 1116 : LPAREN STAR opt-symbol RPAREN
1111 ( (concat "*" $3) ) 1117 ( (concat "*" ,(car $3)) )
1112 | LPAREN symbol RPAREN 1118 | LPAREN symbol RPAREN
1113 ( $2 ) 1119 ( $2 )
1114 ; 1120 ;
@@ -1148,16 +1154,26 @@ type-cast-list
1148 : open-paren typeformbase close-paren 1154 : open-paren typeformbase close-paren
1149 ; 1155 ;
1150 1156
1151opt-stuff-after-symbol 1157opt-brackets-after-symbol
1158 : brackets-after-symbol
1159 | ;; EMPTY
1160 ;
1161
1162brackets-after-symbol
1152 : PAREN_BLCK 1163 : PAREN_BLCK
1153 | BRACK_BLCK 1164 | BRACK_BLCK
1154 | ;; EMPTY
1155 ; 1165 ;
1156 1166
1157multi-stage-dereference 1167multi-stage-dereference
1158 : namespace-symbol opt-stuff-after-symbol PERIOD multi-stage-dereference ;; method call 1168 : namespace-symbol opt-brackets-after-symbol
1159 | namespace-symbol opt-stuff-after-symbol MINUS GREATER multi-stage-dereference ;;method call 1169 PERIOD multi-stage-dereference ;; method call
1160 | namespace-symbol opt-stuff-after-symbol 1170 | namespace-symbol opt-brackets-after-symbol
1171 MINUS GREATER multi-stage-dereference ;;method call
1172 | namespace-symbol opt-brackets-after-symbol
1173 PERIOD namespace-symbol opt-brackets-after-symbol
1174 | namespace-symbol opt-brackets-after-symbol
1175 MINUS GREATER namespace-symbol opt-brackets-after-symbol
1176 | namespace-symbol brackets-after-symbol
1161 ; 1177 ;
1162 1178
1163string-seq 1179string-seq
@@ -1183,6 +1199,7 @@ expr-binop
1183 | AMPERSAND 1199 | AMPERSAND
1184 | OR OR 1200 | OR OR
1185 | OR 1201 | OR
1202 | MOD
1186 ;; There are more. 1203 ;; There are more.
1187 ; 1204 ;
1188 1205
@@ -1200,8 +1217,7 @@ unaryexpression
1200 | multi-stage-dereference 1217 | multi-stage-dereference
1201 | NEW multi-stage-dereference 1218 | NEW multi-stage-dereference
1202 | NEW builtintype-types semantic-list 1219 | NEW builtintype-types semantic-list
1203 ;; Klaus Berndl: symbol -> namespace-symbol! 1220 | symbol
1204 | namespace-symbol
1205 ;; Klaus Berndl: C/C++ allows sequences of strings which are 1221 ;; Klaus Berndl: C/C++ allows sequences of strings which are
1206 ;; concatenated by the precompiler to one string 1222 ;; concatenated by the precompiler to one string
1207 | string-seq 1223 | string-seq
diff --git a/admin/grammars/grammar.wy b/admin/grammars/grammar.wy
index c5e5413e64c..4605e3c4f70 100644
--- a/admin/grammars/grammar.wy
+++ b/admin/grammars/grammar.wy
@@ -1,6 +1,6 @@
1;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars 1;;; semantic-grammar.wy -- LALR grammar of Semantic input grammars
2;; 2;;
3;; Copyright (C) 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
4;; 4;;
5;; Author: David Ponce <david@dponce.com> 5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com> 6;; Maintainer: David Ponce <david@dponce.com>
@@ -94,7 +94,7 @@
94%token <open-paren> LBRACE "{" 94%token <open-paren> LBRACE "{"
95%token <close-paren> RBRACE "}" 95%token <close-paren> RBRACE "}"
96 96
97;; Punctuations 97;; Punctuation
98%type <punctuation> 98%type <punctuation>
99%token <punctuation> COLON ":" 99%token <punctuation> COLON ":"
100%token <punctuation> SEMI ";" 100%token <punctuation> SEMI ";"
diff --git a/admin/grammars/java-tags.wy b/admin/grammars/java-tags.wy
index 71607f452a0..9ff27f3a2be 100644
--- a/admin/grammars/java-tags.wy
+++ b/admin/grammars/java-tags.wy
@@ -1,6 +1,6 @@
1;;; java-tags.wy -- Semantic LALR grammar for Java 1;;; java-tags.wy -- Semantic LALR grammar for Java
2 2
3;; Copyright (C) 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
4;; 4;;
5;; Author: David Ponce <david@dponce.com> 5;; Author: David Ponce <david@dponce.com>
6;; Maintainer: David Ponce <david@dponce.com> 6;; Maintainer: David Ponce <david@dponce.com>
@@ -25,6 +25,11 @@
25%package wisent-java-tags-wy 25%package wisent-java-tags-wy
26%provide semantic/wisent/javat-wy 26%provide semantic/wisent/javat-wy
27 27
28%{
29(declare-function semantic-parse-region "semantic"
30 (start end &optional nonterminal depth returnonerror))
31}
32
28%languagemode java-mode 33%languagemode java-mode
29 34
30;; The default start symbol 35;; The default start symbol
diff --git a/admin/grammars/js.wy b/admin/grammars/js.wy
index 3b602296552..91dbff2330d 100644
--- a/admin/grammars/js.wy
+++ b/admin/grammars/js.wy
@@ -1,6 +1,6 @@
1;;; javascript-jv.wy -- LALR grammar for Javascript 1;;; javascript-jv.wy -- LALR grammar for Javascript
2 2
3;; Copyright (C) 2005-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2005-2014 Free Software Foundation, Inc.
4;; Copyright (C) 1998-2011 Ecma International. 4;; Copyright (C) 1998-2011 Ecma International.
5 5
6;; Author: Joakim Verona 6;; Author: Joakim Verona
@@ -59,7 +59,13 @@
59 59
60%package wisent-javascript-jv-wy 60%package wisent-javascript-jv-wy
61%provide semantic/wisent/js-wy 61%provide semantic/wisent/js-wy
62;; JAVE I prefere ecmascript-mode 62
63%{
64(declare-function semantic-parse-region "semantic"
65 (start end &optional nonterminal depth returnonerror))
66}
67
68;; JAVE I preferred ecmascript-mode.
63%languagemode ecmascript-mode javascript-mode 69%languagemode ecmascript-mode javascript-mode
64 70
65;; The default goal 71;; The default goal
@@ -270,8 +276,8 @@ Statement : Block
270 | BreakStatement 276 | BreakStatement
271 | ReturnStatement 277 | ReturnStatement
272 | WithStatement 278 | WithStatement
273 ; 279 ;
274 280
275FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block 281FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block
276 (FUNCTION-TAG $2 nil $3) 282 (FUNCTION-TAG $2 nil $3)
277 ; 283 ;
@@ -347,7 +353,7 @@ IterationExpression : WHILE OPEN_PARENTHESIS Expression CLOSE_PARENTHESIS Statem
347ContinueStatement : CONTINUE SEMICOLON 353ContinueStatement : CONTINUE SEMICOLON
348 ; 354 ;
349 355
350;;JAVE break needs labels 356;;JAVE break needs labels
351BreakStatement : BREAK SEMICOLON 357BreakStatement : BREAK SEMICOLON
352 ;; | BREAK identifier SEMICOLON 358 ;; | BREAK identifier SEMICOLON
353 ; 359 ;
diff --git a/admin/grammars/make.by b/admin/grammars/make.by
index dcb3bb2f7d7..7fc39518faf 100644
--- a/admin/grammars/make.by
+++ b/admin/grammars/make.by
@@ -1,6 +1,6 @@
1;;; make.by -- BY notation for Makefiles. 1;;; make.by -- BY notation for Makefiles.
2 2
3;; Copyright (C) 1999-2013 Free Software Foundation, Inc. 3;; Copyright (C) 1999-2014 Free Software Foundation, Inc.
4;; 4;;
5;; Author: Eric M. Ludlam <zappo@gnu.org> 5;; Author: Eric M. Ludlam <zappo@gnu.org>
6;; David Ponce <david@dponce.com> 6;; David Ponce <david@dponce.com>
diff --git a/admin/grammars/python.wy b/admin/grammars/python.wy
index 02fb7390b01..330264de459 100644
--- a/admin/grammars/python.wy
+++ b/admin/grammars/python.wy
@@ -1,6 +1,6 @@
1;;; python.wy -- LALR grammar for Python 1;;; python.wy -- LALR grammar for Python
2 2
3;; Copyright (C) 2002-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2002-2014 Free Software Foundation, Inc.
4;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 4;; Copyright (c) 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008,
5;; 2009, 2010 Python Software Foundation; All Rights Reserved 5;; 2009, 2010 Python Software Foundation; All Rights Reserved
6 6
@@ -91,8 +91,12 @@
91%provide semantic/wisent/python-wy 91%provide semantic/wisent/python-wy
92 92
93%{ 93%{
94(declare-function wisent-python-reconstitute-function-tag "semantic/wisent/python") 94(declare-function wisent-python-reconstitute-function-tag
95(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python") 95 "semantic/wisent/python" (tag suite))
96(declare-function wisent-python-reconstitute-class-tag "semantic/wisent/python"
97 (tag))
98(declare-function semantic-parse-region "semantic"
99 (start end &optional nonterminal depth returnonerror))
96} 100}
97 101
98%languagemode python-mode 102%languagemode python-mode
diff --git a/admin/grammars/scheme.by b/admin/grammars/scheme.by
index a433d776df5..cceec0914f6 100644
--- a/admin/grammars/scheme.by
+++ b/admin/grammars/scheme.by
@@ -1,6 +1,6 @@
1;;; scheme.by -- Scheme BNF language specification 1;;; scheme.by -- Scheme BNF language specification
2 2
3;; Copyright (C) 2001-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2001-2014 Free Software Foundation, Inc.
4 4
5;; This file is part of GNU Emacs. 5;; This file is part of GNU Emacs.
6 6
diff --git a/admin/grammars/srecode-template.wy b/admin/grammars/srecode-template.wy
index fd3f61905d3..d4dd2ad907a 100644
--- a/admin/grammars/srecode-template.wy
+++ b/admin/grammars/srecode-template.wy
@@ -1,6 +1,6 @@
1;;; srecode-template.wy --- Semantic Recoder Template parser 1;;; srecode-template.wy --- Semantic Recoder Template parser
2 2
3;; Copyright (C) 2005-2013 Free Software Foundation, Inc. 3;; Copyright (C) 2005-2014 Free Software Foundation, Inc.
4 4
5;; Author: Eric Ludlam <zappo@gnu.org> 5;; Author: Eric Ludlam <zappo@gnu.org>
6;; Keywords: syntax 6;; Keywords: syntax
diff --git a/admin/mac/uvs.el b/admin/mac/uvs.el
new file mode 100644
index 00000000000..a9a0c9120d3
--- /dev/null
+++ b/admin/mac/uvs.el
@@ -0,0 +1,213 @@
1;;; uvs.el --- utility for UVS (format 14) cmap subtables in OpenType fonts.
2
3;; Copyright (C) 2014 Free Software Foundation, Inc.
4
5;; Author: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
6
7;; This file is part of GNU Emacs.
8
9;; GNU Emacs is free software: you can redistribute it and/or modify
10;; it under the terms of the GNU General Public License as published by
11;; the Free Software Foundation, either version 3 of the License, or
12;; (at your option) any later version.
13
14;; GNU Emacs is distributed in the hope that it will be useful,
15;; but WITHOUT ANY WARRANTY; without even the implied warranty of
16;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17;; GNU General Public License for more details.
18
19;; You should have received a copy of the GNU General Public License
20;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
21
22;;; Commentary:
23
24;; To extract a C array definition of a UVS table for the Adobe-Japan1
25;; character collection from an IVD Sequences file, execute
26;; $ emacs -batch -l uvs.el \
27;; --eval '(uvs-print-table-ivd "IVD_Sequences.txt" "Adobe-Japan1")' \
28;; > uvs.h
29
30;;; Code:
31
32(defun uvs-fields-total-size (fields)
33 (apply '+ (mapcar (lambda (field) (get field 'uvs-field-size)) fields)))
34
35;;; Fields in Format 14 header.
36(defconst uvs-format-14-header-fields
37 '(format length num-var-selector-records))
38(put 'format 'uvs-field-size 2)
39(put 'length 'uvs-field-size 4)
40(put 'num-var-selector-records 'uvs-field-size 4)
41(defconst uvs-format-14-header-size
42 (uvs-fields-total-size uvs-format-14-header-fields))
43
44;;; Fields in Variation Selector Record.
45(defconst uvs-variation-selector-record-fields
46 '(var-selector default-uvs-offset non-default-uvs-offset))
47(put 'var-selector 'uvs-field-size 3)
48(put 'default-uvs-offset 'uvs-field-size 4)
49(put 'non-default-uvs-offset 'uvs-field-size 4)
50(defconst uvs-variation-selector-record-size
51 (uvs-fields-total-size uvs-variation-selector-record-fields))
52
53;;; Fields in Non-Default UVS Table.
54(defconst uvs-non-default-uvs-table-header-fields '(num-uvs-mappings))
55(put 'num-uvs-mappings 'uvs-field-size 4)
56(defconst uvs-non-default-uvs-table-header-size
57 (uvs-fields-total-size uvs-non-default-uvs-table-header-fields))
58
59;;; Fields in UVS Mapping.
60(defconst uvs-uvs-mapping-fields '(unicode-value glyph-id))
61(put 'unicode-value 'uvs-field-size 3)
62(put 'glyph-id 'uvs-field-size 2)
63(defconst uvs-uvs-mapping-size
64 (uvs-fields-total-size uvs-uvs-mapping-fields))
65
66(defun uvs-alist-from-ivd (collection-id sequence-id-to-glyph-function)
67 "Create UVS alist from IVD Sequences and COLLECTION-ID.
68The IVD (Ideographic Variation Database) Sequences are obtained
69from the contents of the current buffer, and should be in the
70form of IVD_Sequences.txt specified in Unicode Technical Standard
71#37. COLLECTION-ID is a string specifying the identifier of the
72collection to extract (e.g., \"Adobe-Japan1\").
73SEQUENCE-ID-TO-GLYPH-FUNC is a function to convert an identifier
74string of the sequence to a glyph number. UVS alist is of the
75following form:
76 ((SELECTOR1 . ((BASE11 . GLYPH11) (BASE12 . GLYPH12) ...))
77 (SELECTOR2 . ((BASE21 . GLYPH21) (BASE22 . GLYPH22) ...)) ...),
78where selectors and bases are sorted in ascending order."
79 (let (uvs-alist)
80 (goto-char (point-min))
81 (while (re-search-forward
82 (concat "^[[:blank:]]*"
83 "\\([[:xdigit:]]+\\) \\([[:xdigit:]]+\\)"
84 "[[:blank:]]*;[[:blank:]]*"
85 "\\(?:" (regexp-quote collection-id) "\\)"
86 "[[:blank:]]*;[[:blank:]]*"
87 "\\([^\n[:blank:]]+\\)"
88 "[[:blank:]]*$") nil t)
89 (let* ((base (string-to-number (match-string 1) 16))
90 (selector (string-to-number (match-string 2) 16))
91 (sequence-id (match-string 3))
92 (glyph (funcall sequence-id-to-glyph-function sequence-id)))
93 (let ((selector-bgs (assq selector uvs-alist))
94 (base-glyph (cons base glyph)))
95 (if selector-bgs
96 (setcdr selector-bgs (cons base-glyph (cdr selector-bgs)))
97 (push (cons selector (list base-glyph)) uvs-alist)))))
98 (dolist (selector-bgs uvs-alist)
99 (setcdr selector-bgs
100 (sort (cdr selector-bgs)
101 (lambda (bg1 bg2) (< (car bg1) (car bg2))))))
102 (sort uvs-alist (lambda (sb1 sb2) (< (car sb1) (car sb2))))))
103
104(defun uvs-int-to-bytes (value size)
105 "Convert integer VALUE to a list of SIZE bytes.
106The most significant byte comes first."
107 (let (result)
108 (dotimes (i size)
109 (push (logand value #xff) result)
110 (setq value (lsh value -8)))
111 result))
112
113(defun uvs-insert-fields-as-bytes (fields &rest values)
114 "Insert VALUES for FIELDS as a sequence of bytes to the current buffer.
115VALUES and FIELDS are lists of integers and field symbols,
116respectively. Byte length of each value is determined by the
117'uvs-field-size' property of the corresponding field."
118 (while fields
119 (let ((field (car fields))
120 (value (car values)))
121 (insert (apply 'unibyte-string
122 (uvs-int-to-bytes value (get field 'uvs-field-size))))
123 (setq fields (cdr fields) values (cdr values)))))
124
125(defun uvs-insert-alist-as-bytes (uvs-alist)
126 "Insert UVS-ALIST as a sequence of bytes to the current buffer."
127 (let* ((nrecords (length uvs-alist)) ; # of selectors
128 (total-nmappings
129 (apply '+ (mapcar
130 (lambda (selector-bgs) (length (cdr selector-bgs)))
131 uvs-alist)))
132 (non-default-offset
133 (+ uvs-format-14-header-size
134 (* uvs-variation-selector-record-size nrecords))))
135 (uvs-insert-fields-as-bytes uvs-format-14-header-fields
136 14
137 (+ uvs-format-14-header-size
138 (* uvs-variation-selector-record-size
139 nrecords)
140 (* uvs-non-default-uvs-table-header-size
141 nrecords)
142 (* uvs-uvs-mapping-size total-nmappings))
143 nrecords)
144 (dolist (selector-bgs uvs-alist)
145 (uvs-insert-fields-as-bytes uvs-variation-selector-record-fields
146 (car selector-bgs)
147 0 ; No Default UVS Tables.
148 non-default-offset)
149 (setq non-default-offset
150 (+ non-default-offset
151 uvs-non-default-uvs-table-header-size
152 (* (length (cdr selector-bgs)) uvs-uvs-mapping-size))))
153 (dolist (selector-bgs uvs-alist)
154 (uvs-insert-fields-as-bytes uvs-non-default-uvs-table-header-fields
155 (length (cdr selector-bgs)))
156 (dolist (base-glyph (cdr selector-bgs))
157 (uvs-insert-fields-as-bytes uvs-uvs-mapping-fields
158 (car base-glyph)
159 (cdr base-glyph))))))
160
161(defun uvs-dump (&optional bytes-per-line separator separator-eol line-prefix)
162 "Print the current buffer as in representation of C array contents."
163 (or bytes-per-line (setq bytes-per-line 8))
164 (or separator (setq separator ", "))
165 (or separator-eol (setq separator-eol ","))
166 (or line-prefix (setq line-prefix " "))
167 (goto-char (point-min))
168 (while (> (- (point-max) (point)) bytes-per-line)
169 (princ line-prefix)
170 (princ (mapconcat (lambda (byte) (format "0x%02x" byte))
171 (string-to-unibyte
172 (buffer-substring (point) (+ (point) bytes-per-line)))
173 separator))
174 (princ separator-eol)
175 (terpri)
176 (forward-char bytes-per-line))
177 (princ line-prefix)
178 (princ (mapconcat (lambda (byte) (format "0x%02x" byte))
179 (string-to-unibyte
180 (buffer-substring (point) (point-max)))
181 separator))
182 (terpri))
183
184(defun uvs-print-table-ivd (filename collection-id
185 &optional sequence-id-to-glyph-func)
186 "Print a C array definition of a UVS table for IVD Sequences.
187FILENAME specifies the IVD Sequences file. COLLECTION-ID is a
188string specifying the identifier of the collection to
189extract (e.g., \"Adobe-Japan1\"). SEQUENCE-ID-TO-GLYPH-FUNC is a
190function to convert an identifier string of the sequence to a
191glyph number, and nil means to convert \"CID\\+[0-9]+\" to the
192corresponding number."
193 (or sequence-id-to-glyph-func
194 (setq sequence-id-to-glyph-func
195 (lambda (sequence-id)
196 (string-match "\\`CID\\+\\([[:digit:]]+\\)\\'" sequence-id)
197 (string-to-number (match-string 1 sequence-id)))))
198 (let ((uvs-alist
199 (with-temp-buffer
200 (insert-file-contents filename)
201 (setq uvs-alist (uvs-alist-from-ivd collection-id
202 sequence-id-to-glyph-func)))))
203 (princ
204 (format "static const unsigned char mac_uvs_table_%s_bytes[] =\n {\n"
205 (replace-regexp-in-string "[^_[:alnum:]]" "_"
206 (downcase collection-id))))
207 (with-temp-buffer
208 (set-buffer-multibyte nil)
209 (uvs-insert-alist-as-bytes uvs-alist)
210 (uvs-dump))
211 (princ " };\n")))
212
213;;; uvs.el ends here
diff --git a/admin/make-emacs b/admin/make-emacs
index 58295c9607a..17d1cdc239a 100755
--- a/admin/make-emacs
+++ b/admin/make-emacs
@@ -2,7 +2,7 @@
2# Build Emacs with various options for profiling, debugging, 2# Build Emacs with various options for profiling, debugging,
3# with and without warnings enabled etc. 3# with and without warnings enabled etc.
4 4
5# Copyright (C) 2001-2013 Free Software Foundation, Inc. 5# Copyright (C) 2001-2014 Free Software Foundation, Inc.
6 6
7# This file is part of GNU Emacs. 7# This file is part of GNU Emacs.
8 8
@@ -21,6 +21,8 @@
21 21
22 22
23require 5; 23require 5;
24use strict;
25use warnings;
24use Getopt::Long; 26use Getopt::Long;
25use File::Basename; 27use File::Basename;
26use Cwd; 28use Cwd;
diff --git a/admin/make-tarball.txt b/admin/make-tarball.txt
index fc7f81f0c28..a2e8a9e7da3 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -5,6 +5,11 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
5 5
6Steps to take before starting on the first pretest in any release sequence: 6Steps to take before starting on the first pretest in any release sequence:
7 7
80. The release branch (e.g. emacs-24) should already have been made
9 and you should use it for all that follows. Diffs from this
10 branch should be going to the emacs-diffs mailing list (see
11 admin/notes/bzr section on bzr-email plugin).
12
81. Decide on versions of automake and autoconf, and ensure you will 131. Decide on versions of automake and autoconf, and ensure you will
9 have them available for the duration of the release process. 14 have them available for the duration of the release process.
10 15
@@ -14,28 +19,22 @@ Steps to take before starting on the first pretest in any release sequence:
14 when preparing the first pretest for a major Emacs release.) 19 when preparing the first pretest for a major Emacs release.)
15 Commit cus-edit.el if changed. 20 Commit cus-edit.el if changed.
16 21
223. Remove any old pretests from ftp://alpha.gnu.org/gnu/emacs/pretest.
23 You can use `gnupload --delete' (see below for more gnupload details).
17 24
18General steps (for each step, check for possible errors): 25General steps (for each step, check for possible errors):
19 26
201. `bzr update' (for a bound branch), or `bzr pull'. 271. `bzr update' (for a bound branch), or `bzr pull'.
21 bzr status # check for locally modified files 28 bzr status # check for locally modified files
22 29
232. Bootstrap to make 100% sure all elc files are up-to-date, and to 302. Regenerate the etc/AUTHORS file:
24 make sure that the later tagged version will bootstrap, should it be
25 necessary to check it out.
26
273. Regenerate the etc/AUTHORS file:
28 M-: (require 'authors) RET 31 M-: (require 'authors) RET
29 M-x authors RET 32 M-x authors RET
30 33
31 There is almost guaranteed to be an "*Authors Errors*" buffer with 34 If there is an "*Authors Errors*" buffer, address the issues.
32 problems caused by certain bad ChangeLog entries. You can ignore 35 If there was a ChangeLog typo, fix it. If a file was deleted or
33 the very old ones (eg lisp/erc has a lot). If there are errors 36 renamed, consider adding an appropriate entry to authors-ignored-files,
34 related to new entries (especially entries that are new since the 37 authors-valid-file-names, or authors-renamed-files-alist.
35 last pretest), see if you can fix them. If there was a ChangeLog
36 typo, fix it. If a file was deleted or renamed, consider adding
37 an appropriate entry to authors-ignored-files, authors-valid-file-names,
38 or authors-renamed-files-alist.
39 38
40 If necessary, repeat M-x authors after making those changes. 39 If necessary, repeat M-x authors after making those changes.
41 Save the "*Authors*" buffer as etc/AUTHORS. 40 Save the "*Authors*" buffer as etc/AUTHORS.
@@ -43,7 +42,7 @@ General steps (for each step, check for possible errors):
43 authors-ambiguous-files or authors-aliases, and repeat. 42 authors-ambiguous-files or authors-aliases, and repeat.
44 Commit any fixes to ChangeLogs or authors.el. 43 Commit any fixes to ChangeLogs or authors.el.
45 44
464. Set the version number (M-x load-file RET admin/admin.el RET, then 453. Set the version number (M-x load-file RET admin/admin.el RET, then
47 M-x set-version RET). For a release, add released ChangeLog 46 M-x set-version RET). For a release, add released ChangeLog
48 entries (M-x add-release-logs RET). 47 entries (M-x add-release-logs RET).
49 48
@@ -58,31 +57,37 @@ General steps (for each step, check for possible errors):
58 emacs-XX.Y-rc1.tar. If all goes well in the following week, you 57 emacs-XX.Y-rc1.tar. If all goes well in the following week, you
59 can simply rename the file and use it for the actual release. 58 can simply rename the file and use it for the actual release.
60 59
615. autoreconf -i -I m4 --force 604. autoreconf -i -I m4 --force
62 make bootstrap 61 make bootstrap
63 62
64 make -C etc/refcards 63 make -C etc/refcards
65 make -C etc/refcards clean 64 make -C etc/refcards clean
66 65
676. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. 665. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
68 67
69 Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed 68 Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
70 by M-x set-version. 69 by M-x set-version. Use a commit log message that bzrmerge.el
70 will ignore (eg "Bump version...").
71 For a release, also commit the ChangeLog files in all directories. 71 For a release, also commit the ChangeLog files in all directories.
72 72
737. ./make-dist --snapshot --no-compress 73 If someone else made a commit between step 1 and now,
74 you need to repeat from step 4 onwards. (You can commit the files
75 from step 2 and 3 earlier to reduce the chance of this.)
76
776. ./make-dist --snapshot --no-compress
74 78
75 Check the contents of the new tar with 79 Check the contents of the new tar with admin/diff-tar-files
76 admin/diff-tar-files against an older tar file. Some old pretest 80 against the previous release (if this is the first pretest) or the
77 tarballs may be found at <ftp://alpha.gnu.org/gnu/emacs/pretest>; 81 previous pretest. If you did not make the previous pretest
78 old release tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>. 82 yourself, find it at <ftp://alpha.gnu.org/gnu/emacs/pretest>.
83 Releases are of course at <ftp://ftp.gnu.org/pub/gnu/emacs/>.
79 84
80 If this is the first pretest of a major release, just comparing 85 If this is the first pretest of a major release, just comparing
81 with the previous release may overlook many new files. You can try 86 with the previous release may overlook many new files. You can try
82 something like `find . | sort' in a clean bzr tree, and compare the 87 something like `find . | sort' in a clean bzr tree, and compare the
83 results against the new tar contents. 88 results against the new tar contents.
84 89
858. tar -xf emacs-NEW.tar; cd emacs-NEW 907. tar -xf emacs-NEW.tar; cd emacs-NEW
86 ./configure --prefix=/tmp/emacs && make && make install 91 ./configure --prefix=/tmp/emacs && make && make install
87 Use `script' or M-x compile to save the compilation log in 92 Use `script' or M-x compile to save the compilation log in
88 compile-NEW.log and compare it against an old one. The easiest way 93 compile-NEW.log and compare it against an old one. The easiest way
@@ -91,25 +96,21 @@ General steps (for each step, check for possible errors):
91 M-x ediff. Especially check that Info files aren't built, and that 96 M-x ediff. Especially check that Info files aren't built, and that
92 no autotools (autoconf etc) run. 97 no autotools (autoconf etc) run.
93 98
949. cd EMACS_ROOT_DIR && bzr tag TAG 998. cd EMACS_ROOT_DIR && bzr tag TAG
95 TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. 100 TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
96 101
97 Shortly before the release, cut the version branch also, and open 1029. Decide what compression schemes to offer.
98 a Savannah support request asking for commits to the new branch to
99 be sent to the emacs-diffs mailing list (by default, the list
100 normally only gets commits to the trunk).
101
10210. Decide what compression schemes to offer.
103 For a release, at least gz and xz: 103 For a release, at least gz and xz:
104 gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz 104 gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz
105 xz -c emacs-NEW.tar > emacs-NEW.tar.xz 105 xz -c emacs-NEW.tar > emacs-NEW.tar.xz
106 For pretests, just xz is probably fine (saves bandwidth).
106 107
107 Now you should upload the files to the GNU ftp server. In order to 108 Now you should upload the files to the GNU ftp server. In order to
108 do that, you must be registered as an Emacs maintainer and have your 109 do that, you must be registered as an Emacs maintainer and have your
109 GPG key acknowledged by the ftp people. For instructions, see 110 GPG key acknowledged by the ftp people. For instructions, see
110 http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html 111 http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html
111 The simplest method is to use the gnulib <http://www.gnu.org/s/gnulib/> 112 The simplest method to upload is to use the gnulib
112 script "build-aux/gnupload" to upload each FILE, like this: 113 <http://www.gnu.org/s/gnulib/> script "build-aux/gnupload":
113 114
114 For a pretest: 115 For a pretest:
115 gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \ 116 gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \
@@ -140,19 +141,21 @@ General steps (for each step, check for possible errors):
140 For a pretest, place the files in /incoming/alpha instead, so that 141 For a pretest, place the files in /incoming/alpha instead, so that
141 they appear on ftp://alpha.gnu.org/. 142 they appear on ftp://alpha.gnu.org/.
142 143
14311. After five minutes, verify that the files are visible at 14410. After five minutes, verify that the files are visible at
144 ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or 145 ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or
145 ftp://ftp.gnu.org/gnu/emacs/ for a release. 146 ftp://ftp.gnu.org/gnu/emacs/ for a release.
146 147
147 Download them and check the signatures. Check they build. 148 Download them and check the signatures. Check they build.
148 149
14912. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. 15011. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org.
150 Probably should also include the platform-testers list: 151 For a pretest, also bcc: platform-testers@gnu.org.
151 https://lists.gnu.org/mailman/listinfo/platform-testers 152 (The reason for using bcc: is to make it less likely that people
152 For a release, also announce it on info-gnu@gnu.org. (Probably 153 will followup on the wrong list.)
153 bcc the info- addresses to make it less likely that people will 154 See the info-gnu-emacs mailing list archives for the form
154 followup on those lists.) 155 of past announcements. The first pretest announcement, and the
155 156 release announcement, should have more detail.
15613. For a release, update the Emacs homepage in the web repository. 157
157 Also add the new NEWS file as NEWS.xx.y. 15812. For a release, update the Emacs homepage in the web repository.
158 Maybe regenerate the html manuals, update the FAQ, etc, etc. 159 Also update history.html, and add the new NEWS file as NEWS.xx.y.
160 Regenerate the html manuals (use make-manuals from admin.el).
161 If there are new manuals, add appropriate index pages.
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index 97126704d10..5df2020f3aa 100755
--- a/admin/merge-gnulib
+++ b/admin/merge-gnulib
@@ -4,7 +4,7 @@
4# 4#
5# admin/merge-gnulib 5# admin/merge-gnulib
6 6
7# Copyright 2012-2013 Free Software Foundation, Inc. 7# Copyright 2012-2014 Free Software Foundation, Inc.
8 8
9# This file is part of GNU Emacs. 9# This file is part of GNU Emacs.
10 10
@@ -26,17 +26,19 @@
26GNULIB_URL=git://git.savannah.gnu.org/gnulib.git 26GNULIB_URL=git://git.savannah.gnu.org/gnulib.git
27 27
28GNULIB_MODULES=' 28GNULIB_MODULES='
29 alloca-opt c-ctype c-strcase 29 alloca-opt byteswap c-ctype c-strcase
30 careadlinkat close-stream crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512 30 careadlinkat close-stream count-one-bits count-trailing-zeros
31 crypto/md5 crypto/sha1 crypto/sha256 crypto/sha512
31 dtoastr dtotimespec dup2 environ execinfo faccessat 32 dtoastr dtotimespec dup2 environ execinfo faccessat
32 fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync 33 fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync
33 getloadavg getopt-gnu gettime gettimeofday 34 getloadavg getopt-gnu gettime gettimeofday
34 intprops largefile lstat 35 intprops largefile lstat
35 manywarnings memrchr mkostemp mktime 36 manywarnings memrchr mkostemp mktime
36 pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat 37 pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
37 sig2str socklen stat-time stdalign stdarg stdbool stdio 38 sig2str socklen stat-time stdalign stdio
38 strftime strtoimax strtoumax symlink sys_stat 39 strftime strtoimax strtoumax symlink sys_stat
39 sys_time time timer-time timespec-add timespec-sub unsetenv utimens 40 sys_time time timer-time timespec-add timespec-sub
41 unsetenv update-copyright utimens
40 warnings 42 warnings
41' 43'
42 44
@@ -46,7 +48,8 @@ GNULIB_TOOL_FLAGS='
46 --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow 48 --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow
47 --avoid=open --avoid=openat-die --avoid=opendir 49 --avoid=open --avoid=openat-die --avoid=opendir
48 --avoid=raise 50 --avoid=raise
49 --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types 51 --avoid=save-cwd --avoid=select --avoid=sigprocmask
52 --avoid=stdarg --avoid=stdbool
50 --avoid=threadlib 53 --avoid=threadlib
51 --conditional-dependencies --import --no-changelog --no-vc-files 54 --conditional-dependencies --import --no-changelog --no-vc-files
52 --makefile-name=gnulib.mk 55 --makefile-name=gnulib.mk
@@ -90,7 +93,9 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
90} 93}
91 94
92"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && 95"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES &&
93rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && 96rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 "$src"m4/gl-openssl.m4 \
97 "$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 &&
94cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && 98cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
95cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && 99cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux &&
96autoreconf -i -I m4 -- ${src:+"$src"} 100{ test -z "$src" || cd "$src"; } &&
101./autogen.sh
diff --git a/admin/merge-pkg-config b/admin/merge-pkg-config
new file mode 100755
index 00000000000..fd03a441b11
--- /dev/null
+++ b/admin/merge-pkg-config
@@ -0,0 +1,63 @@
1#! /bin/sh
2# Merge pkg-config macros into Emacs sources.
3# Typical usage:
4#
5# admin/merge-pkg-config
6
7# Copyright 2014 Free Software Foundation, Inc.
8
9# This file is part of GNU Emacs.
10
11# GNU Emacs is free software: you can redistribute it and/or modify
12# it under the terms of the GNU General Public License as published by
13# the Free Software Foundation, either version 3 of the License, or
14# (at your option) any later version.
15
16# GNU Emacs is distributed in the hope that it will be useful,
17# but WITHOUT ANY WARRANTY; without even the implied warranty of
18# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19# GNU General Public License for more details.
20
21# You should have received a copy of the GNU General Public License
22# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23
24# written by Paul Eggert
25
26{
27 # Maybe ACLOCAL_PATH is already set-up.
28 oIFS=$IFS
29 IFS=:
30 for dir in $ACLOCAL_PATH ''; do
31 test -n "$dir" && test -r "$dir/pkg.m4" && break
32 done
33 IFS=$oIFS
34
35 test -n "$dir"
36} || {
37 # Use the pkg.m4 installed where aclocal knows about it.
38 # Maybe we are running our own aclocal, which doesn't know where
39 # the standard pkg.m4 is installed, so try running all the
40 # aclocal programs in our PATH.
41 oIFS=$IFS
42 IFS=:
43 for dir in $PATH ''; do
44 if test -n "$dir" && test -x "$dir/aclocal"; then
45 dir=$("$dir/aclocal" --print-ac-dir) && test -r "$dir/pkg.m4" && break
46 fi
47 done
48 IFS=$oIFS
49
50 test -n "$dir"
51} || {
52 echo >&2 "$0: cannot find pkg.m4"
53 exit 1
54}
55
56test -d m4 || {
57 echo >&2 "$0: please run this command in the main source directory"
58 exit 1
59}
60
61echo >&2 "$0: copying $dir/pkg.m4 to m4/pkg.m4"
62
63cp $dir/pkg.m4 m4
diff --git a/admin/notes/bzr b/admin/notes/bzr
index d3886abfd69..13a3beb4ca8 100644
--- a/admin/notes/bzr
+++ b/admin/notes/bzr
@@ -3,9 +3,9 @@ NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*-
3* Install changes only on one branch, let them get merged elsewhere if needed. 3* Install changes only on one branch, let them get merged elsewhere if needed.
4In particular, install bug-fixes only on the release branch (if there 4In particular, install bug-fixes only on the release branch (if there
5is one) and let them get synced to the trunk; do not install them by 5is one) and let them get synced to the trunk; do not install them by
6hand on the trunk as well. E.g. if there is an active "emacs-23" branch 6hand on the trunk as well. E.g. if there is an active "emacs-24" branch
7and you have a bug-fix appropriate for the next Emacs-23.x release, 7and you have a bug-fix appropriate for the next emacs-24.x release,
8install it only on the emacs-23 branch, not on the trunk as well. 8install it only on the emacs-24 branch, not on the trunk as well.
9 9
10Installing things manually into more than one branch makes merges more 10Installing things manually into more than one branch makes merges more
11difficult. 11difficult.
@@ -18,7 +18,7 @@ In that case, it's helpful if you can apply the change to both trunk
18and branch yourself (when committing the branch change, indicate 18and branch yourself (when committing the branch change, indicate
19in the commit log that it should not be merged to the trunk; see below). 19in the commit log that it should not be merged to the trunk; see below).
20 20
21* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-23"). 21* Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24").
22Indicate in the commit log that there is no need to merge the commit 22Indicate in the commit log that there is no need to merge the commit
23to the trunk. Anything that matches `bzrmerge-skip-regexp' will do; 23to the trunk. Anything that matches `bzrmerge-skip-regexp' will do;
24eg start the commit message with "Backport:". This is helpful for the 24eg start the commit message with "Backport:". This is helpful for the
@@ -49,7 +49,7 @@ http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html
49* Installing changes from gnulib 49* Installing changes from gnulib
50Some of the files in Emacs are copied from gnulib. To synchronize 50Some of the files in Emacs are copied from gnulib. To synchronize
51these files from the version of gnulib that you have checked out into 51these files from the version of gnulib that you have checked out into
52a sibling directory of your branch, type "make sync-from-gnulib"; this 52a sibling directory of your branch, type "admin/merge-gnulib"; this
53will check out the latest version of gnulib if there is no sibling 53will check out the latest version of gnulib if there is no sibling
54directory already. It is a good idea to run "bzr status" afterwards, 54directory already. It is a good idea to run "bzr status" afterwards,
55so that if a gnulib module added a file, you can record the new file 55so that if a gnulib module added a file, you can record the new file
@@ -57,17 +57,12 @@ using "bzr add". After synchronizing from gnulib, do a "make" in the
57usual way. 57usual way.
58 58
59To change the set of gnulib modules, change the GNULIB_MODULES 59To change the set of gnulib modules, change the GNULIB_MODULES
60variable in the top-level Makefile.in, and then run: 60variable in admin/merge-gnulib before running it.
61 61
62 ./config.status 62If you remove a gnulib module, or if a gnulib module
63 make sync-from-gnulib
64 bzr status
65
66The last command will mention files that may need to be added using
67"bzr add". If you remove a gnulib module, or if a gnulib module
68removes a file, then remove the corresponding files by hand. 63removes a file, then remove the corresponding files by hand.
69 64
70* How to merge changes from emacs-23 to trunk 65* How to merge changes from emacs-24 to trunk
71 66
72The following description uses bound branches, presumably it works in 67The following description uses bound branches, presumably it works in
73a similar way with unbound ones. 68a similar way with unbound ones.
@@ -90,7 +85,7 @@ copy in ~/.bazaar if you upgrade bzr.
90Maybe the default Emacs behavior without this plugin is better, 85Maybe the default Emacs behavior without this plugin is better,
91though, it's not clear yet. 86though, it's not clear yet.
92 87
931) Get clean, up-to-date copies of the emacs-23 and trunk branches. 881) Get clean, up-to-date copies of the emacs-24 and trunk branches.
94Check for any uncommitted changes with bzr status. 89Check for any uncommitted changes with bzr status.
95 90
962) M-x cd /path/to/trunk 912) M-x cd /path/to/trunk
@@ -102,7 +97,7 @@ changelog_merge_files = ChangeLog
102 97
1033) load admin/bzrmerge.el 983) load admin/bzrmerge.el
104 99
1054) M-x bzrmerge RET /path/to/emacs-23 RET 1004) M-x bzrmerge RET /path/to/emacs-24 RET
106 101
107It will prompt about revisions that should be skipped, based on the 102It will prompt about revisions that should be skipped, based on the
108regexp in bzrmerge-missing. If there are more revisions that you know 103regexp in bzrmerge-missing. If there are more revisions that you know
@@ -119,7 +114,7 @@ Do not commit (or exit Emacs) until you have run bzrmerge to completion.
119 114
120Before committing, check bzr status and bzr diff output. 115Before committing, check bzr status and bzr diff output.
121If you have run bzrmerge enough times, the "pending merge tip" in bzr 116If you have run bzrmerge enough times, the "pending merge tip" in bzr
122status should be the last revision from the emacs-23 branch, and 117status should be the last revision from the emacs-24 branch, and
123bzr status -v should show all the revisions you expect to merge. 118bzr status -v should show all the revisions you expect to merge.
124 119
125(Note that it will also show "skipped" revisions. This is expected, 120(Note that it will also show "skipped" revisions. This is expected,
@@ -141,18 +136,13 @@ authors, don't break the logical ordering in doing this.
141 136
142Notes: 137Notes:
143 138
1441) A lot that was in tramp.el in emacs-23 has moved to tramp-sh.el in 1391) If a file is modified in emacs-24, and deleted in the trunk, you
145the trunk. If you end up with a conflict in tramp.el, the changes may
146need to go to tramp-sh.el instead. Remember to update the file name in
147the ChangeLog.
148
1492) If a file is modified in emacs-23, and deleted in the trunk, you
150get a "contents conflict". Assuming the changes don't need to be in 140get a "contents conflict". Assuming the changes don't need to be in
151the trunk at all, use `bzr resolve path/to/file --take-this' to keep the 141the trunk at all, use `bzr resolve path/to/file --take-this' to keep the
152trunk version. Prior to bzr 2.2.3, this may fail. You can just 142trunk version. Prior to bzr 2.2.3, this may fail. You can just
153delete the .OTHER etc files by hand and use bzr resolve path/to/file. 143delete the .OTHER etc files by hand and use bzr resolve path/to/file.
154 144
1553) Conflicts in autoload md5sums in comments. Strictly speaking, the 1452) Conflicts in autoload md5sums in comments. Strictly speaking, the
156right thing to do is merge everything else, resolve the conflict by 146right thing to do is merge everything else, resolve the conflict by
157choosing either the trunk or branch version, then run `make -C lisp 147choosing either the trunk or branch version, then run `make -C lisp
158autoloads' to update the md5sums to the correct trunk value before 148autoloads' to update the md5sums to the correct trunk value before
@@ -364,3 +354,45 @@ works), or by adding an entry to ~/.bazaar/locations.conf:
364 354
365You have to use locations.conf rather than bazaar.conf because the 355You have to use locations.conf rather than bazaar.conf because the
366latter has a lower priority than branch.conf. 356latter has a lower priority than branch.conf.
357
358* Using git-bzr
359
360** initially
361
362You can use Git locally to talk to the Bazaar repo as a "remote" repo
363via git-bzr (aka git-remote-bzr). Initial clone:
364
365 git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e
366
367This creates the working dir e/ (with subdir .git, etc). Disk usage
368is 13G (as of early 2014), so you will probably want to repack:
369
370 git repack -a -d -f --window=250 --depth=250 --window-memory=N
371
372where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m"
373results in "du -sh .git" => 559M, about double the smallest reported
374value (obtained with "deprecated" command "git gc --aggressive").
375
376** steady-state
377
378Use "fetch", "pull" and other remote-to-local commands as usual.
379
380For "push", the Emacs Bazaar repo is configured with
381
382 append_revisions_only = True
383
384so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation
385(in func do_export) instead of displaying a "non fast-forward" message
386and skipping the branch. See:
387
388 http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html
389
390which includes a provisional patch to git-remote-bzr to do that.
391
392** remote name
393
394Although Git itself is agnostic about what names you choose for
395the remote repo, it seems git-bzr is more likely to get confused.
396After the clone as described above, the remote name is "origin";
397changing it is Not Recommended. [Insert 9-hour high-entropy then
398mysterious bug w/ JSON parsing errors anecdote here. --ttn]
diff --git a/admin/notes/changelogs b/admin/notes/changelogs
index 1025cfc217f..e8158060e70 100644
--- a/admin/notes/changelogs
+++ b/admin/notes/changelogs
@@ -1,3 +1,12 @@
1Emacs generally follows the GNU coding standards when it comes to ChangeLogs:
2http://www.gnu.org/prep/standards/html_node/Change-Logs.html
3
4One exception is that we still sometimes quote `like-this' (as the
5standards used to recommend) rather than 'like-this' (as they do now),
6because `...' is so widely used elsewhere in Emacs.
7http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html
8
9
1If installing changes written by someone else, make the ChangeLog 10If installing changes written by someone else, make the ChangeLog
2entry in their name, not yours. 11entry in their name, not yours.
3 12
diff --git a/admin/notes/commits b/admin/notes/commits
index 2c6f80c56f0..f33c6905d4c 100644
--- a/admin/notes/commits
+++ b/admin/notes/commits
@@ -45,6 +45,15 @@ Date: Tue, 31 Mar 2009 12:21:20 +0900
45 for modern source-control systems with a global log, it's better to 45 for modern source-control systems with a global log, it's better to
46 have something like "Regenerate configure". 46 have something like "Regenerate configure".
47 47
48(4) (Added in 2014) In commit comments, and ChangeLog files, it is best
49 to use ways of identifying revisions that are not dependent on a
50 particular version control system. (At time of writing Emacs is
51 about to move to its fourth VCS and another move in the future is
52 not impossible.) An excellent way to identify commits is by
53 quoting their summary line. Another is with an action stamp - an
54 RFC3339 date followed by ! followed by the committer's email - for
55 example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my
56 previous commit" will suffice.
48 57
49Followup discussion: 58Followup discussion:
50http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html 59http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html
diff --git a/admin/notes/copyright b/admin/notes/copyright
index 3a404b69678..ebef0633032 100644
--- a/admin/notes/copyright
+++ b/admin/notes/copyright
@@ -1,4 +1,4 @@
1Copyright (C) 2007-2013 Free Software Foundation, Inc. 1Copyright (C) 2007-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
@@ -137,7 +137,10 @@ GNUstep/Emacs.base/Resources/Info-gnustep.plist
137aclocal.m4 137aclocal.m4
138configure 138configure
139m4/*.m4 139m4/*.m4
140 - copyright FSF, with unlimited permission to copy, distribute and modify 140 - These files are copyright FSF, with unlimited permission to copy,
141 distribute and modify, so long as the copyright notice is preserved.
142 Exception: m4/pkg.m4 is copyright Scott James Remnant; it is
143 distributed under the same terms as for the rest of Emacs.
141 144
142lib/Makefile.in 145lib/Makefile.in
143 - copyright FSF, with MIT-like license 146 - copyright FSF, with MIT-like license
@@ -161,13 +164,6 @@ etc/letter.pbm,letter.xpm
161etc/FTP, ORDERS 164etc/FTP, ORDERS
162 - trivial (at time of writing), no license needed 165 - trivial (at time of writing), no license needed
163 166
164etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT,
165WHY-FREE
166 rms: "These are statements of opinion or testimony. Their licenses
167 should permit verbatim copying only. Please don't change the
168 licenses that they have. They are distributed with Emacs but they
169 are not part of Emacs."
170
171etc/HELLO 167etc/HELLO
172 standard notices. Just a note that although the file itself is not 168 standard notices. Just a note that although the file itself is not
173 really copyrightable, in the wider context of it being part of 169 really copyrightable, in the wider context of it being part of
diff --git a/admin/notes/font-backend b/admin/notes/font-backend
index cdf2001580d..5c36cf08c62 100644
--- a/admin/notes/font-backend
+++ b/admin/notes/font-backend
@@ -1,4 +1,4 @@
1Copyright (C) 2002-2013 Free Software Foundation, Inc. 1Copyright (C) 2002-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 4
diff --git a/admin/notes/hydra b/admin/notes/hydra
index 71e35d092c8..3b6bc87a2f6 100644
--- a/admin/notes/hydra
+++ b/admin/notes/hydra
@@ -1,6 +1,6 @@
1-*- outline -*- 1-*- outline -*-
2 2
3Copyright (C) 2013 Free Software Foundation, Inc. 3Copyright (C) 2013-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA 6NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO
index 2c6d86a4ffd..4a4ccb5e6e8 100644
--- a/admin/notes/lel-TODO
+++ b/admin/notes/lel-TODO
@@ -1,6 +1,6 @@
1Some lisp/emacs-lisp/ Features and Where They Are Documented 1Some lisp/emacs-lisp/ Features and Where They Are Documented
2 2
3Copyright (C) 2007-2013 Free Software Foundation, Inc. 3Copyright (C) 2007-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6 6
diff --git a/admin/notes/multi-tty b/admin/notes/multi-tty
index c4edd3abc93..f67911d0ff4 100644
--- a/admin/notes/multi-tty
+++ b/admin/notes/multi-tty
@@ -1,6 +1,6 @@
1-*- coding: utf-8; mode: text; -*- 1-*- coding: utf-8; mode: text; -*-
2 2
3Copyright (C) 2007-2013 Free Software Foundation, Inc. 3Copyright (C) 2007-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6From README.multi-tty in the multi-tty branch. 6From README.multi-tty in the multi-tty branch.
@@ -101,16 +101,6 @@ Known problems:
101 I plan to implement better user notification and support for 101 I plan to implement better user notification and support for
102 breaking out of single-kboard mode from locked displays. 102 breaking out of single-kboard mode from locked displays.
103 103
104 * Mac and DOS support is broken, doesn't even
105 compile. Multiple display support will probably not provide
106 new Emacs features on these systems, but the multi-tty
107 branch changed a few low-level interfaces, and the
108 system-dependent source files need to be adapted
109 accordingly. The changes are mostly trivial, so almost
110 anyone can help, if only by compiling the branch and
111 reporting the compiler errors.
112
113
114TESTING 104TESTING
115------- 105-------
116 106
@@ -504,17 +494,6 @@ THINGS TO DO
504 494
505 (This is likely an error in the CVS trunk.) 495 (This is likely an error in the CVS trunk.)
506 496
507** Dan Nicolaescu suggests that -nw should be added as an alias for -t
508 in emacsclient. Good idea. (Alas, implementing this is not
509 trivial, getopt_long does not seem to support two-letter ``short''
510 options. Patches are welcome.)
511
512** Mark Plaksin suggests that emacsclient should accept the same
513 X-related command-line arguments as Emacs. Most of the X-related
514 argument-handling is done in Lisp, so this should be quite easy to
515 implement. (For example, Samium Gromoff wants emacsclient to
516 support --geometry; implementing this would add that support.)
517
518** Gergely Nagy suggests that C-x # should only kill the current 497** Gergely Nagy suggests that C-x # should only kill the current
519 frame, not any other emacsclient frame that may have the same file 498 frame, not any other emacsclient frame that may have the same file
520 opened for editing. I think I agree with him. 499 opened for editing. I think I agree with him.
@@ -532,21 +511,9 @@ THINGS TO DO
532 an initial frame. (The user would connect to it and open frames 511 an initial frame. (The user would connect to it and open frames
533 later, with emacsclient.) 512 later, with emacsclient.)
534 513
535** Fix Mac support (I can't do this entirely myself). Note that the 514** Implement Mac/Windows/DOS support. Many XXX comments mark things
536 current state of Mac-specific source files in the multi-tty tree 515 that probably need updating, ChangeLogs will help in spotting
537 are not useful; before starting work on Mac support, revert to 516 changes to X specific files that may need porting.
538 pristine, pre-multi-tty versions.
539
540** Fix DOS support (I can't do this entirely myself). Note that the
541 current state of DOS-specific source files in the multi-tty tree
542 are not useful; before starting work on DOS support, revert to
543 pristine, pre-multi-tty versions.
544
545** Fix Windows support. Currently bootstrapping works on w32, but Emacs
546 crashes on startup and none of the multi-tty features are
547 implemented. Many XXX comments mark things that probably need
548 updating, ChangeLogs will help in spotting changes to X specific
549 files that may need porting.
550 517
551** Do a grep on XXX and ?? for more issues. 518** Do a grep on XXX and ?? for more issues.
552 519
@@ -1085,18 +1052,6 @@ DIARY OF CHANGES
1085 1052
1086 (Done.) 1053 (Done.)
1087 1054
1088-- Miles Bader suggests that C-x C-c on an emacsclient frame should
1089 only close the frame, not exit the entire Emacs session. Update:
1090 see above for a function that does this. Maybe this should be the
1091 new default?
1092
1093 (Done. This is the new default. No complaints so far.)
1094
1095-- Clean up the frame-local variable system. I think it's ugly and
1096 error-prone. But maybe I just haven't yet fully understood it.
1097
1098 (Nothing to do. It doesn't seem ugly any more. It's rather clever.)
1099
1100-- Support multiple character locales. A version of 1055-- Support multiple character locales. A version of
1101 `set-locale-environment' needs to be written for setting up 1056 `set-locale-environment' needs to be written for setting up
1102 display-local settings on ttys. I think calling 1057 display-local settings on ttys. I think calling
@@ -1114,18 +1069,6 @@ DIARY OF CHANGES
1114 (Done, by making `function-key-map' terminal-local (i.e., part of 1069 (Done, by making `function-key-map' terminal-local (i.e., part of
1115 struct kboard). This has probably covered all the remaining problems.) 1070 struct kboard). This has probably covered all the remaining problems.)
1116 1071
1117-- Make `function-key-map' and `key-translation-map' terminal-local.
1118
1119 (Done.)
1120
1121-- Implement `terminal-local-value' and `set-terminal-local-value' to
1122 allow deterministic access to terminal local bindings. The
1123 encode-kb package can not set up `key-translation-map' without
1124 these. The terminal-local bindings seem to be independent of what
1125 frame is selected.
1126
1127 (Done.)
1128
1129-- xt-mouse.el needs to be adapted for multi-tty. It currently 1072-- xt-mouse.el needs to be adapted for multi-tty. It currently
1130 signals an error on kill-emacs under X, which prevents the user 1073 signals an error on kill-emacs under X, which prevents the user
1131 from exiting Emacs. (Reported by Mnemonikk on freenode.) 1074 from exiting Emacs. (Reported by Mnemonikk on freenode.)
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 6db5bb7d05c..841b7ebd5e4 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -1,6 +1,6 @@
1 -*-mode: text; coding: utf-8;-*- 1 -*-mode: text; coding: utf-8;-*-
2 2
3Copyright (C) 2002-2013 Free Software Foundation, Inc. 3Copyright (C) 2002-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6Problems, fixmes and other unicode-related issues 6Problems, fixmes and other unicode-related issues
@@ -181,13 +181,6 @@ nontrivial changes to the build process.
181 181
182 admin/charsets/mapfiles/cns2ucsdkw.txt 182 admin/charsets/mapfiles/cns2ucsdkw.txt
183 183
184 * no-conversion
185
186 This file purposely contains arbitrary bytes interspersed within text,
187 to test whether the Emacs distribution is corrupted.
188
189 lib-src/testfile
190
191 * iso-2022-7bit 184 * iso-2022-7bit
192 185
193 This file switches between CJK charsets, which is not encoded in UTF-8. 186 This file switches between CJK charsets, which is not encoded in UTF-8.
diff --git a/admin/notes/www b/admin/notes/www
index 0bb0850af0d..4d092ca7fa0 100644
--- a/admin/notes/www
+++ b/admin/notes/www
@@ -1,6 +1,6 @@
1-*- outline -*- 1-*- outline -*-
2 2
3Copyright (C) 2013 Free Software Foundation, Inc. 3Copyright (C) 2013-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions. 4See the end of the file for license conditions.
5 5
6NOTES FOR EMACS WWW PAGES 6NOTES FOR EMACS WWW PAGES
diff --git a/admin/notes/years b/admin/notes/years
index e6b38c5aefd..342fe9e2307 100644
--- a/admin/notes/years
+++ b/admin/notes/years
@@ -2,6 +2,8 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS
2 2
3Maintaining copyright years is now very simple: every time a new year 3Maintaining copyright years is now very simple: every time a new year
4rolls around, add that year to every FSF (and AIST) copyright notice. 4rolls around, add that year to every FSF (and AIST) copyright notice.
5Do this by running the 'admin/update-copyright' script on a fresh bzr
6checkout. Inspect the results for plausibility, then commit them.
5 7
6There's no need to worry about whether an individual file has changed 8There's no need to worry about whether an individual file has changed
7in a given year - it's sufficient that Emacs as a whole has changed. 9in a given year - it's sufficient that Emacs as a whole has changed.
@@ -28,10 +30,10 @@ but should keep the full list in a comment in the source.
28 since Emacs 21 came out in 2001, all the subsequent years[1]. We don't 30 since Emacs 21 came out in 2001, all the subsequent years[1]. We don't
29 need to check whether *that file* was changed in those years. 31 need to check whether *that file* was changed in those years.
30 It's sufficient that *Emacs* was changed in those years (and it was!). 32 It's sufficient that *Emacs* was changed in those years (and it was!).
31 33
32 For those files that have been added since then, we should add 34 For those files that have been added since then, we should add
33 the year it was added to Emacs, and all subsequent years." 35 the year it was added to Emacs, and all subsequent years."
34 36
35 --RMS, 2005-07-13 37 --RMS, 2005-07-13
36 38
37[1] Note that this includes 2001 - see 39[1] Note that this includes 2001 - see
diff --git a/admin/nt/README-UNDUMP.W32 b/admin/nt/README-UNDUMP.W32
index 8138d0ba0f1..2859140ce42 100644
--- a/admin/nt/README-UNDUMP.W32
+++ b/admin/nt/README-UNDUMP.W32
@@ -1,4 +1,4 @@
1Copyright (C) 2001-2013 Free Software Foundation, Inc. 1Copyright (C) 2001-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 Emacs for Windows 4 Emacs for Windows
diff --git a/admin/nt/README-ftp-server b/admin/nt/README-ftp-server
index 304251f3ce4..5f5b4a951af 100644
--- a/admin/nt/README-ftp-server
+++ b/admin/nt/README-ftp-server
@@ -1,4 +1,4 @@
1Copyright (C) 2001-2013 Free Software Foundation, Inc. 1Copyright (C) 2001-2014 Free Software Foundation, Inc.
2See the end of the file for license conditions. 2See the end of the file for license conditions.
3 3
4 Precompiled Distributions of 4 Precompiled Distributions of
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs
index 98bd61f839d..5edc8d4d9ad 100755
--- a/admin/quick-install-emacs
+++ b/admin/quick-install-emacs
@@ -1,7 +1,7 @@
1#!/bin/sh 1#!/bin/sh
2### quick-install-emacs --- do a halfway-decent job of installing emacs quickly 2### quick-install-emacs --- do a halfway-decent job of installing emacs quickly
3 3
4## Copyright (C) 2001-2013 Free Software Foundation, Inc. 4## Copyright (C) 2001-2014 Free Software Foundation, Inc.
5 5
6## Author: Miles Bader <miles@gnu.org> 6## Author: Miles Bader <miles@gnu.org>
7 7
@@ -30,7 +30,7 @@
30PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse' 30PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse'
31PUBLIC_LIBSRC_SCRIPTS='grep-changelog' 31PUBLIC_LIBSRC_SCRIPTS='grep-changelog'
32 32
33AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" 33AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile"
34 34
35# Prune old binaries lying around in the source tree 35# Prune old binaries lying around in the source tree
36PRUNE=no 36PRUNE=no
diff --git a/admin/unidata/BidiMirroring.txt b/admin/unidata/BidiMirroring.txt
index ec41b769375..d97c0dd9617 100644
--- a/admin/unidata/BidiMirroring.txt
+++ b/admin/unidata/BidiMirroring.txt
@@ -1,19 +1,19 @@
1# BidiMirroring-6.2.0.txt 1# BidiMirroring-6.3.0.txt
2# Date: 2012-05-15, 24:19:00 GMT [KW, LI] 2# Date: 2013-02-12, 08:20:00 GMT [KW, LI]
3# 3#
4# Bidi_Mirroring_Glyph Property 4# Bidi_Mirroring_Glyph Property
5# 5#
6# This file is an informative contributory data file in the 6# This file is an informative contributory data file in the
7# Unicode Character Database. 7# Unicode Character Database.
8# 8#
9# Copyright (c) 1991-2012 Unicode, Inc. 9# Copyright (c) 1991-2013 Unicode, Inc.
10# For terms of use, see http://www.unicode.org/terms_of_use.html 10# For terms of use, see http://www.unicode.org/terms_of_use.html
11# 11#
12# This data file lists characters that have the Bidi_Mirrored=Yes property 12# This data file lists characters that have the Bidi_Mirrored=Yes property
13# value, for which there is another Unicode character that typically has a glyph 13# value, for which there is another Unicode character that typically has a glyph
14# that is the mirror image of the original character's glyph. 14# that is the mirror image of the original character's glyph.
15# 15#
16# The repertoire covered by the file is Unicode 6.2.0. 16# The repertoire covered by the file is Unicode 6.3.0.
17# 17#
18# The file contains a list of lines with mappings from one code point 18# The file contains a list of lines with mappings from one code point
19# to another one for character-based mirroring. 19# to another one for character-based mirroring.
@@ -42,7 +42,7 @@
42# 42#
43# This file was originally created by Markus Scherer. 43# This file was originally created by Markus Scherer.
44# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler, 44# Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler,
45# and for Unicode 6.1 and 6.2 by Ken Whistler and Laurentiu Iancu. 45# and for Unicode 6.1, 6.2, and 6.3 by Ken Whistler and Laurentiu Iancu.
46# 46#
47# ############################################################ 47# ############################################################
48# 48#
@@ -204,8 +204,8 @@
204276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT 204276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT
2052770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT 2052770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT
2062771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT 2062771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT
2072772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET 2072772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT
2082773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET 2082773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT
2092774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT 2092774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT
2102775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT 2102775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT
21127C3; 27C4 # OPEN SUBSET 21127C3; 27C4 # OPEN SUBSET
diff --git a/admin/unidata/Makefile.in b/admin/unidata/Makefile.in
index df225cc8cbf..3ad81a94bae 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -1,6 +1,6 @@
1### @configure_input@ 1### @configure_input@
2 2
3# Copyright (C) 2012-2013 Free Software Foundation, Inc. 3# Copyright (C) 2012-2014 Free Software Foundation, Inc.
4 4
5# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 5# Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
6# National Institute of Advanced Industrial Science and Technology (AIST) 6# National Institute of Advanced Industrial Science and Technology (AIST)
@@ -24,13 +24,14 @@
24SHELL = @SHELL@ 24SHELL = @SHELL@
25 25
26srcdir = @srcdir@ 26srcdir = @srcdir@
27abs_builddir = @abs_builddir@
28top_srcdir = @top_srcdir@ 27top_srcdir = @top_srcdir@
29abs_top_builddir = @abs_top_builddir@ 28top_builddir = @top_builddir@
30 29
31EMACS = ${abs_top_builddir}/src/emacs 30EMACS = ${top_builddir}/src/emacs
32DSTDIR = ${top_srcdir}/lisp/international 31DSTDIR = ${top_srcdir}/lisp/international
33emacs = ${EMACS} -batch --no-site-file --no-site-lisp 32emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
33
34.PHONY: all compile install
34 35
35all: ${DSTDIR}/charprop.el 36all: ${DSTDIR}/charprop.el
36 37
@@ -40,14 +41,25 @@ all: ${DSTDIR}/charprop.el
40unidata.txt: ${srcdir}/UnicodeData.txt 41unidata.txt: ${srcdir}/UnicodeData.txt
41 sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@ 42 sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < ${srcdir}/UnicodeData.txt > $@
42 43
43${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.elc unidata.txt 44compile: ${srcdir}/unidata-gen.elc
44 cd ${DSTDIR} && ${emacs} -l ${srcdir}/unidata-gen \ 45
45 -f unidata-gen-files ${srcdir} ${abs_builddir}/unidata.txt 46## Depend on .el rather than .elc so as not to needlessly rebuild
47## uni-*.el files just because .elc is missing.
48## Same for UnicodeData.txt v unidata.txt.
49${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt
50 ${MAKE} ${MFLAGS} compile unidata.txt EMACS="${EMACS}"
51 -if [ -f "$@" ]; then \
52 cd ${DSTDIR} && chmod +w charprop.el `sed -n 's/^;; FILE: //p' < charprop.el`; \
53 fi
54 ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
55 ${srcdir} "${DSTDIR}"
46 56
47## Like the above, but generate in PWD rather than lisp/international. 57## Like the above, but generate in PWD rather than lisp/international.
48charprop.el: ${srcdir}/unidata-gen.elc unidata.txt 58charprop.el: ${srcdir}/unidata-gen.elc unidata.txt
49 ${emacs} -l ${srcdir}/unidata-gen \ 59 ${emacs} -L ${srcdir} -l unidata-gen -f unidata-gen-files \
50 -f unidata-gen-files ${srcdir} unidata.txt 60 ${srcdir}
61
62.PHONY: clean bootstrap-clean distclean maintainer-clean extraclean
51 63
52install: charprop.el 64install: charprop.el
53 cp charprop.el ${DSTDIR} 65 cp charprop.el ${DSTDIR}
@@ -57,9 +69,20 @@ clean:
57 if test -f charprop.el; then \ 69 if test -f charprop.el; then \
58 rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \ 70 rm -f `sed -n 's/^;; FILE: //p' < charprop.el`; \
59 fi 71 fi
60 rm -f charprop.el ${srcdir}/unidata-gen.elc unidata.txt 72 rm -f charprop.el ${srcdir}/*.elc unidata.txt
73
74bootstrap-clean: clean
61 75
62distclean: clean 76distclean: clean
63 -rm -f ./Makefile 77 rm -f Makefile
64 78
65maintainer-clean: distclean 79maintainer-clean: distclean
80
81## Do not remove these files, even in a bootstrap, because they rarely
82## change and it slows down bootstrap (a tiny bit).
83## Cf leim/ja-dic (which is much slower).
84extraclean:
85 if test -f ${DSTDIR}/charprop.el; then \
86 (cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
87 rm -f ${DSTDIR}/charprop.el; \
88 fi
diff --git a/admin/unidata/UnicodeData.txt b/admin/unidata/UnicodeData.txt
index 086379eb4f3..9fffa71a1e9 100644
--- a/admin/unidata/UnicodeData.txt
+++ b/admin/unidata/UnicodeData.txt
@@ -1509,6 +1509,7 @@
15090619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;; 15090619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;;
1510061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;; 1510061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;;
1511061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; 1511061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;;
1512061C;ARABIC LETTER MARK;Cf;0;AL;;;;;N;;;;;
1512061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;; 1513061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;;
1513061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; 1514061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;;
15140620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;; 15150620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;;
@@ -5296,7 +5297,7 @@
5296180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; 5297180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;;
5297180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; 5298180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;;
5298180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; 5299180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;;
5299180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;; 5300180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;;
53001810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; 53011810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;;
53011811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; 53021811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;;
53021812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; 53031812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;;
@@ -5751,7 +5752,7 @@
57511A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;; 57521A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;;
57521A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; 57531A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;;
57531A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; 57541A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;;
57541A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; 57551A1B;BUGINESE VOWEL SIGN AE;Mn;0;NSM;;;;;N;;;;;
57551A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;; 57561A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;;
57561A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;; 57571A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;;
57571A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;; 57581A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;;
@@ -7116,6 +7117,10 @@
71162062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; 71172062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;;
71172063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; 71182063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;;
71182064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;; 71192064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;;
71202066;LEFT-TO-RIGHT ISOLATE;Cf;0;LRI;;;;;N;;;;;
71212067;RIGHT-TO-LEFT ISOLATE;Cf;0;RLI;;;;;N;;;;;
71222068;FIRST STRONG ISOLATE;Cf;0;FSI;;;;;N;;;;;
71232069;POP DIRECTIONAL ISOLATE;Cf;0;PDI;;;;;N;;;;;
7119206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 7124206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
7120206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; 7125206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;;
7121206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; 7126206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;;
@@ -7738,10 +7743,10 @@
77382305;PROJECTIVE;So;0;ON;;;;;N;;;;; 77432305;PROJECTIVE;So;0;ON;;;;;N;;;;;
77392306;PERSPECTIVE;So;0;ON;;;;;N;;;;; 77442306;PERSPECTIVE;So;0;ON;;;;;N;;;;;
77402307;WAVY LINE;So;0;ON;;;;;N;;;;; 77452307;WAVY LINE;So;0;ON;;;;;N;;;;;
77412308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; 77462308;LEFT CEILING;Ps;0;ON;;;;;Y;;;;;
77422309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; 77472309;RIGHT CEILING;Pe;0;ON;;;;;Y;;;;;
7743230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; 7748230A;LEFT FLOOR;Ps;0;ON;;;;;Y;;;;;
7744230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; 7749230B;RIGHT FLOOR;Pe;0;ON;;;;;Y;;;;;
7745230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; 7750230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;;
7746230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; 7751230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;;
7747230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; 7752230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;;
@@ -18740,8 +18745,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;;
1874012453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; 1874512453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;;
1874112454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; 1874612454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;;
1874212455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; 1874712455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;;
1874312456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;; 1874812456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;2;N;;;;;
1874412457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;; 1874912457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;3;N;;;;;
1874512458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; 1875012458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;;
1874612459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; 1875112459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;;
187471245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;; 187521245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;;
diff --git a/admin/unidata/copyright.html b/admin/unidata/copyright.html
index 90cd895d984..81722bd091f 100644
--- a/admin/unidata/copyright.html
+++ b/admin/unidata/copyright.html
@@ -10,7 +10,7 @@
10 10
11<meta name="VI60_defaultClientScript" content="JavaScript"> 11<meta name="VI60_defaultClientScript" content="JavaScript">
12 12
13<meta name="GENERATOR" content="Microsoft FrontPage 5.0"> 13<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
14 14
15<meta name="keywords" content="Unicode Standard, copyright"> 15<meta name="keywords" content="Unicode Standard, copyright">
16 16
@@ -136,7 +136,7 @@ href="http://www.unicode.org/webscripts/standard_styles.css">
136 <ol type="A"> 136 <ol type="A">
137 <li><u><a name="1"></a>Unicode Copyright.</u> 137 <li><u><a name="1"></a>Unicode Copyright.</u>
138 <ol> 138 <ol>
139 <li>Copyright © 1991-2012 Unicode, Inc. All rights reserved.</li> 139 <li>Copyright © 1991-2013 Unicode, Inc. All rights reserved.</li>
140 <li>Certain documents and files on this website contain a legend 140 <li>Certain documents and files on this website contain a legend
141 indicating that &quot;Modification is permitted.&quot; Any person is 141 indicating that &quot;Modification is permitted.&quot; Any person is
142 hereby authorized, without fee, to modify such documents and 142 hereby authorized, without fee, to modify such documents and
@@ -268,7 +268,7 @@ http://www.unicode.org/cldr/data/</a>.</p>
268<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> 268<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>
269<p>COPYRIGHT AND PERMISSION NOTICE</p> 269<p>COPYRIGHT AND PERMISSION NOTICE</p>
270 270
271<p>Copyright © 1991-2012 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in 271<p>Copyright © 1991-2013 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
272<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p> 272<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p>
273 273
274<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and 274<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and
diff --git a/admin/unidata/unidata-gen.el b/admin/unidata/unidata-gen.el
index d9277217f0e..ff45b79aab7 100644
--- a/admin/unidata/unidata-gen.el
+++ b/admin/unidata/unidata-gen.el
@@ -1,4 +1,7 @@
1;; unidata-gen.el -- Create files containing character property data. 1;; unidata-gen.el -- Create files containing character property data.
2
3;; Copyright (C) 2008-2014 Free Software Foundation, Inc.
4
2;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 5;; Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011
3;; National Institute of Advanced Industrial Science and Technology (AIST) 6;; National Institute of Advanced Industrial Science and Technology (AIST)
4;; Registration Number H13PRO009 7;; Registration Number H13PRO009
@@ -23,13 +26,12 @@
23;; SPECIAL NOTICE 26;; SPECIAL NOTICE
24;; 27;;
25;; This file must be byte-compilable/loadable by `temacs' and also 28;; This file must be byte-compilable/loadable by `temacs' and also
26;; the entry function `unidata-gen-files' must be runnable by 29;; the entry function `unidata-gen-files' must be runnable by `temacs'.
27;; `temacs'.
28 30
29;; FILES TO BE GENERATED 31;; FILES TO BE GENERATED
30;; 32;;
31;; The entry function `unidata-gen-files' generates these files in 33;; The entry function `unidata-gen-files' generates these files in
32;; the current directory. 34;; in directory specified by its dest-dir argument.
33;; 35;;
34;; charprop.el 36;; charprop.el
35;; It contains a series of forms of this format: 37;; It contains a series of forms of this format:
@@ -88,9 +90,9 @@
88 90
89(defvar unidata-list nil) 91(defvar unidata-list nil)
90 92
91;; Name of the directory containing files of Unicode Character 93;; Name of the directory containing files of Unicode Character Database.
92;; Database.
93 94
95;; Dynamically bound in unidata-gen-files.
94(defvar unidata-dir nil) 96(defvar unidata-dir nil)
95 97
96(defun unidata-setup-list (unidata-text-file) 98(defun unidata-setup-list (unidata-text-file)
@@ -192,8 +194,8 @@ Property value is an integer."
192 4 unidata-gen-table-symbol "uni-bidi.el" 194 4 unidata-gen-table-symbol "uni-bidi.el"
193 "Unicode bidi class. 195 "Unicode bidi class.
194Property value is one of the following symbols: 196Property value is one of the following symbols:
195 L, LRE, LRO, R, AL, RLE, RLO, PDF, EN, ES, ET, 197 L, LRE, LRO, LRI, R, AL, RLE, RLO, RLI, FSI, PDF, PDI,
196 AN, CS, NSM, BN, B, S, WS, ON" 198 EN, ES, ET, AN, CS, NSM, BN, B, S, WS, ON"
197 unidata-describe-bidi-class 199 unidata-describe-bidi-class
198 ;; The assignment of default values to blocks of code points 200 ;; The assignment of default values to blocks of code points
199 ;; follows the file DerivedBidiClass.txt from the Unicode 201 ;; follows the file DerivedBidiClass.txt from the Unicode
@@ -203,7 +205,8 @@ Property value is one of the following symbols:
203 (#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R)) 205 (#xFB1D #xFB4F R) (#x10800 #x10FFF R) (#x1E800 #x1EFFF R))
204 ;; The order of elements must be in sync with bidi_type_t in 206 ;; The order of elements must be in sync with bidi_type_t in
205 ;; src/dispextern.h. 207 ;; src/dispextern.h.
206 (L R EN AN BN B AL LRE LRO RLE RLO PDF ES ET CS NSM S WS ON)) 208 (L R EN AN BN B AL LRE LRO RLE RLO PDF LRI RLI FSI PDI
209 ES ET CS NSM S WS ON))
207 (decomposition 210 (decomposition
208 5 unidata-gen-table-decomposition "uni-decomposition.el" 211 5 unidata-gen-table-decomposition "uni-decomposition.el"
209 "Unicode decomposition mapping. 212 "Unicode decomposition mapping.
@@ -395,12 +398,17 @@ is the character itself.")))
395;; If VAL is one of VALn, just return n. 398;; If VAL is one of VALn, just return n.
396;; Otherwise, VAL-LIST is modified to this: 399;; Otherwise, VAL-LIST is modified to this:
397;; ((nil . 0) (VAL1 . 1) (VAL2 . 2) ... (VAL . n+1)) 400;; ((nil . 0) (VAL1 . 1) (VAL2 . 2) ... (VAL . n+1))
401;;
402;; WARN is an optional warning to display when the value list is
403;; extended, for property values that need to be in sync with other
404;; parts of Emacs; currently only used for bidi-class.
398 405
399(defun unidata-encode-val (val-list val) 406(defun unidata-encode-val (val-list val &optional warn)
400 (let ((slot (assoc val val-list)) 407 (let ((slot (assoc val val-list))
401 val-code) 408 val-code)
402 (if slot 409 (if slot
403 (cdr slot) 410 (cdr slot)
411 (if warn (message warn val))
404 (setq val-code (length val-list)) 412 (setq val-code (length val-list))
405 (nconc val-list (list (cons val val-code))) 413 (nconc val-list (list (cons val val-code)))
406 val-code))) 414 val-code)))
@@ -411,6 +419,16 @@ is the character itself.")))
411 (let ((table (make-char-table 'char-code-property-table)) 419 (let ((table (make-char-table 'char-code-property-table))
412 (prop-idx (unidata-prop-index prop)) 420 (prop-idx (unidata-prop-index prop))
413 (vec (make-vector 128 0)) 421 (vec (make-vector 128 0))
422 ;; When this warning is printed, there's a need to make the
423 ;; following changes:
424 ;; (1) update unidata-prop-alist with the new bidi-class values;
425 ;; (2) extend bidi_type_t enumeration on src/dispextern.h to
426 ;; include the new classes;
427 ;; (3) possibly update the assertion in bidi.c:bidi_check_type; and
428 ;; (4) possibly update the switch cases in
429 ;; bidi.c:bidi_get_type and bidi.c:bidi_get_category.
430 (bidi-warning "\
431** Found new bidi-class '%s', please update bidi.c and dispextern.h")
414 tail elt range val val-code idx slot 432 tail elt range val val-code idx slot
415 prev-range-data) 433 prev-range-data)
416 (setq val-list (cons nil (copy-sequence val-list))) 434 (setq val-list (cons nil (copy-sequence val-list)))
@@ -436,7 +454,9 @@ is the character itself.")))
436 (setq elt (car tail) tail (cdr tail)) 454 (setq elt (car tail) tail (cdr tail))
437 (setq range (car elt) 455 (setq range (car elt)
438 val (funcall val-func (nth prop-idx elt))) 456 val (funcall val-func (nth prop-idx elt)))
439 (setq val-code (if val (unidata-encode-val val-list val))) 457 (setq val-code (if val (unidata-encode-val val-list val
458 (and (eq prop 'bidi-class)
459 bidi-warning))))
440 (if (consp range) 460 (if (consp range)
441 (when val-code 461 (when val-code
442 (set-char-table-range table range val-code) 462 (set-char-table-range table range val-code)
@@ -484,7 +504,9 @@ is the character itself.")))
484 (setq new-val (funcall val-func (nth prop-idx elt))) 504 (setq new-val (funcall val-func (nth prop-idx elt)))
485 (if (not (eq val new-val)) 505 (if (not (eq val new-val))
486 (setq val new-val 506 (setq val new-val
487 val-code (if val (unidata-encode-val val-list val)))) 507 val-code (if val (unidata-encode-val
508 val-list val (and (eq prop 'bidi-class)
509 bidi-warning)))))
488 (if val-code 510 (if val-code
489 (aset vec (- range start) val-code)) 511 (aset vec (- range start) val-code))
490 (setq tail (cdr tail))) 512 (setq tail (cdr tail)))
@@ -962,7 +984,14 @@ is the character itself.")))
962 (l nil) 984 (l nil)
963 (idx 0) 985 (idx 0)
964 c) 986 c)
965 (if (= len 0) 987 (if (or (= len 0)
988 ;; Unicode Standard, paragraph 4.8: "For all other
989 ;; Unicode code points of all other types (Control,
990 ;; Private-Use, Surrogate, Noncharacter, and Reserved),
991 ;; the value of the Name property is the null string."
992 ;; We already handle elsewhere all the characters except
993 ;; Cc, Control characters, which are handled here.
994 (string= str "<control>"))
966 nil 995 nil
967 (dotimes (i len) 996 (dotimes (i len)
968 (setq c (aref str i)) 997 (setq c (aref str i))
@@ -975,11 +1004,15 @@ is the character itself.")))
975 idx (1+ i))))) 1004 idx (1+ i)))))
976 (nreverse (cons (intern (substring str idx)) l)))))) 1005 (nreverse (cons (intern (substring str idx)) l))))))
977 1006
1007(defun unidata--ensure-compiled (&rest funcs)
1008 (dolist (fun funcs)
1009 (or (byte-code-function-p (symbol-function fun))
1010 (byte-compile fun))))
1011
978(defun unidata-gen-table-name (prop &rest ignore) 1012(defun unidata-gen-table-name (prop &rest ignore)
979 (let* ((table (unidata-gen-table-word-list prop 'unidata-split-name)) 1013 (let* ((table (unidata-gen-table-word-list prop 'unidata-split-name))
980 (word-tables (char-table-extra-slot table 4))) 1014 (word-tables (char-table-extra-slot table 4)))
981 (byte-compile 'unidata-get-name) 1015 (unidata--ensure-compiled 'unidata-get-name 'unidata-put-name)
982 (byte-compile 'unidata-put-name)
983 (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-name)) 1016 (set-char-table-extra-slot table 1 (symbol-function 'unidata-get-name))
984 (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-name)) 1017 (set-char-table-extra-slot table 2 (symbol-function 'unidata-put-name))
985 1018
@@ -1017,8 +1050,8 @@ is the character itself.")))
1017(defun unidata-gen-table-decomposition (prop &rest ignore) 1050(defun unidata-gen-table-decomposition (prop &rest ignore)
1018 (let* ((table (unidata-gen-table-word-list prop 'unidata-split-decomposition)) 1051 (let* ((table (unidata-gen-table-word-list prop 'unidata-split-decomposition))
1019 (word-tables (char-table-extra-slot table 4))) 1052 (word-tables (char-table-extra-slot table 4)))
1020 (byte-compile 'unidata-get-decomposition) 1053 (unidata--ensure-compiled 'unidata-get-decomposition
1021 (byte-compile 'unidata-put-decomposition) 1054 'unidata-put-decomposition)
1022 (set-char-table-extra-slot table 1 1055 (set-char-table-extra-slot table 1
1023 (symbol-function 'unidata-get-decomposition)) 1056 (symbol-function 'unidata-get-decomposition))
1024 (set-char-table-extra-slot table 2 1057 (set-char-table-extra-slot table 2
@@ -1101,6 +1134,10 @@ is the character itself.")))
1101 (RLE . "Right-to-Left Embedding") 1134 (RLE . "Right-to-Left Embedding")
1102 (RLO . "Right-to-Left Override") 1135 (RLO . "Right-to-Left Override")
1103 (PDF . "Pop Directional Format") 1136 (PDF . "Pop Directional Format")
1137 (LRI . "Left-to-Right Isolate")
1138 (RLI . "Right-to-Left Isolate")
1139 (FSI . "First Strong Isolate")
1140 (PDI . "Pop Directional Isolate")
1104 (EN . "European Number") 1141 (EN . "European Number")
1105 (ES . "European Number Separator") 1142 (ES . "European Number Separator")
1106 (ET . "European Number Terminator") 1143 (ET . "European Number Terminator")
@@ -1176,18 +1213,21 @@ is the character itself.")))
1176;; The entry function. It generates files described in the header 1213;; The entry function. It generates files described in the header
1177;; comment of this file. 1214;; comment of this file.
1178 1215
1179(defun unidata-gen-files (&optional data-dir unidata-text-file) 1216;; Write files (charprop.el, uni-*.el) to dest-dir (default PWD),
1217;; using as input files from data-dir, and
1218;; unidata-text-file (default "unidata.txt" in PWD).
1219(defun unidata-gen-files (&optional data-dir dest-dir unidata-text-file)
1180 (or data-dir 1220 (or data-dir
1181 (setq data-dir (car command-line-args-left) 1221 (setq data-dir (pop command-line-args-left)
1182 command-line-args-left (cdr command-line-args-left) 1222 dest-dir (or (pop command-line-args-left) default-directory)
1183 unidata-text-file (car command-line-args-left) 1223 unidata-text-file (or (pop command-line-args-left)
1184 command-line-args-left (cdr command-line-args-left))) 1224 (expand-file-name "unidata.txt"))))
1185 (let ((coding-system-for-write 'utf-8-unix) 1225 (let ((coding-system-for-write 'utf-8-unix)
1186 (charprop-file "charprop.el") 1226 (charprop-file (expand-file-name "charprop.el" dest-dir))
1187 (unidata-dir data-dir)) 1227 (unidata-dir data-dir))
1188 (dolist (elt unidata-prop-alist) 1228 (dolist (elt unidata-prop-alist)
1189 (let* ((prop (car elt)) 1229 (let* ((prop (car elt))
1190 (file (unidata-prop-file prop))) 1230 (file (expand-file-name (unidata-prop-file prop) dest-dir)))
1191 (if (file-exists-p file) 1231 (if (file-exists-p file)
1192 (delete-file file)))) 1232 (delete-file file))))
1193 (unidata-setup-list unidata-text-file) 1233 (unidata-setup-list unidata-text-file)
@@ -1196,7 +1236,8 @@ is the character itself.")))
1196 (dolist (elt unidata-prop-alist) 1236 (dolist (elt unidata-prop-alist)
1197 (let* ((prop (car elt)) 1237 (let* ((prop (car elt))
1198 (generator (unidata-prop-generator prop)) 1238 (generator (unidata-prop-generator prop))
1199 (file (unidata-prop-file prop)) 1239 (file (expand-file-name (unidata-prop-file prop) dest-dir))
1240 (basename (file-name-nondirectory file))
1200 (docstring (unidata-prop-docstring prop)) 1241 (docstring (unidata-prop-docstring prop))
1201 (describer (unidata-prop-describer prop)) 1242 (describer (unidata-prop-describer prop))
1202 (default-value (unidata-prop-default prop)) 1243 (default-value (unidata-prop-default prop))
@@ -1204,9 +1245,9 @@ is the character itself.")))
1204 table) 1245 table)
1205 ;; Filename in this comment line is extracted by sed in 1246 ;; Filename in this comment line is extracted by sed in
1206 ;; Makefile. 1247 ;; Makefile.
1207 (insert (format ";; FILE: %s\n" file)) 1248 (insert (format ";; FILE: %s\n" basename))
1208 (insert (format "(define-char-code-property '%S %S\n %S)\n" 1249 (insert (format "(define-char-code-property '%S %S\n %S)\n"
1209 prop file docstring)) 1250 prop basename docstring))
1210 (with-temp-buffer 1251 (with-temp-buffer
1211 (message "Generating %s..." file) 1252 (message "Generating %s..." file)
1212 (when (file-exists-p file) 1253 (when (file-exists-p file)
@@ -1216,30 +1257,35 @@ is the character itself.")))
1216 (setq table (funcall generator prop default-value val-list)) 1257 (setq table (funcall generator prop default-value val-list))
1217 (when describer 1258 (when describer
1218 (unless (subrp (symbol-function describer)) 1259 (unless (subrp (symbol-function describer))
1219 (byte-compile describer) 1260 (unidata--ensure-compiled describer)
1220 (setq describer (symbol-function describer))) 1261 (setq describer (symbol-function describer)))
1221 (set-char-table-extra-slot table 3 describer)) 1262 (set-char-table-extra-slot table 3 describer))
1222 (if (bobp) 1263 (if (bobp)
1223 (insert ";; Copyright (C) 1991-2009 Unicode, Inc. 1264 (insert ";; Copyright (C) 1991-2013 Unicode, Inc.
1224;; This file was generated from the Unicode data files at 1265;; This file was generated from the Unicode data files at
1225;; http://www.unicode.org/Public/UNIDATA/. 1266;; http://www.unicode.org/Public/UNIDATA/.
1226;; See lisp/international/README for the copyright and permission notice.\n")) 1267;; See lisp/international/README for the copyright and permission notice.\n"))
1227 (insert (format "(define-char-code-property '%S %S %S)\n" 1268 (insert (format "(define-char-code-property '%S\n %S\n %S)\n"
1228 prop table docstring)) 1269 prop table docstring))
1229 (if (eobp) 1270 (if (eobp)
1230 (insert ";; Local Variables:\n" 1271 (insert ";; Local Variables:\n"
1231 ";; coding: utf-8\n" 1272 ";; coding: utf-8\n"
1273 ";; version-control: never\n"
1232 ";; no-byte-compile: t\n" 1274 ";; no-byte-compile: t\n"
1275 ";; no-update-autoloads: t\n"
1233 ";; End:\n\n" 1276 ";; End:\n\n"
1234 (format ";; %s ends here\n" file))) 1277 (format ";; %s ends here\n" basename)))
1235 (write-file file) 1278 (write-file file)
1236 (message "Generating %s...done" file)))) 1279 (message "Generating %s...done" file))))
1237 (message "Writing %s..." charprop-file) 1280 (message "Writing %s..." charprop-file)
1238 (insert ";; Local Variables:\n" 1281 (insert ";; Local Variables:\n"
1239 ";; coding: utf-8\n" 1282 ";; coding: utf-8\n"
1283 ";; version-control: never\n"
1240 ";; no-byte-compile: t\n" 1284 ";; no-byte-compile: t\n"
1285 ";; no-update-autoloads: t\n"
1241 ";; End:\n\n" 1286 ";; End:\n\n"
1242 (format ";; %s ends here\n" charprop-file))))) 1287 (format ";; %s ends here\n"
1288 (file-name-nondirectory charprop-file))))))
1243 1289
1244 1290
1245 1291
diff --git a/admin/update-copyright b/admin/update-copyright
new file mode 100755
index 00000000000..2b33506f9c1
--- /dev/null
+++ b/admin/update-copyright
@@ -0,0 +1,75 @@
1#! /bin/sh
2# Update the copyright dates in Emacs sources.
3# Typical usage:
4#
5# admin/update-copyright
6#
7# By default, this script uses the local-time calendar year.
8# Set the UPDATE_COPYRIGHT_YEAR environment variable to override the default.
9
10# Copyright 2013-2014 Free Software Foundation, Inc.
11
12# This file is part of GNU Emacs.
13
14# GNU Emacs is free software: you can redistribute it and/or modify
15# it under the terms of the GNU General Public License as published by
16# the Free Software Foundation, either version 3 of the License, or
17# (at your option) any later version.
18
19# GNU Emacs is distributed in the hope that it will be useful,
20# but WITHOUT ANY WARRANTY; without even the implied warranty of
21# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
22# GNU General Public License for more details.
23
24# You should have received a copy of the GNU General Public License
25# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
26
27# written by Paul Eggert
28
29# FIXME: The file 'notes/copyright' says that the AIST copyright years
30# should be updated, but by inspection it appears that some should be
31# updated and some should not be, due to registration numbers, so
32# this script leaves these copyright years alone for now.
33
34: ${UPDATE_COPYRIGHT_USE_INTERVALS=1}
35export UPDATE_COPYRIGHT_USE_INTERVALS
36
37: ${UPDATE_COPYRIGHT_YEAR=$(date +%Y)}
38export UPDATE_COPYRIGHT_YEAR
39
40emacsver=etc/refcards/emacsver.tex
41sed 's/\\def\\year[{][0-9]*[}]/\\def\\year{'"$UPDATE_COPYRIGHT_YEAR"'}'/g \
42 $emacsver >$emacsver.aux &&
43{ cmp -s $emacsver $emacsver.aux ||
44 cp $emacsver.aux $emacsver
45} &&
46rm $emacsver.aux &&
47
48bzr_files=$(bzr ls -RV --kind file) &&
49
50# Do not update the copyright of files that have one or more of the
51# following problems:
52# . They are license files, maintained by the FSF, with their own dates.
53# . Their format cannot withstand changing the contents of copyright strings.
54
55updatable_files=$(find $bzr_files \
56 ! -name COPYING \
57 ! -name doclicense.texi \
58 ! -name gpl.texi \
59 ! -name '*-gzipped' \
60 ! -name '*.ico' \
61 ! -name '*.icns' \
62 ! -name '*.pbm' \
63 ! -name '*.pdf' \
64 ! -name '*.png' \
65 ! -name '*.sig' \
66 ! -name '*.tar' \
67 ! -name '*.tiff' \
68 ! -name '*.xpm' \
69 ! -name eterm-color \
70 ! -name hand.cur \
71 ! -name key.pub \
72 ! -name key.sec \
73 -print) &&
74
75build-aux/update-copyright $updatable_files
diff --git a/admin/update_autogen b/admin/update_autogen
new file mode 100755
index 00000000000..d9d34fa3d6e
--- /dev/null
+++ b/admin/update_autogen
@@ -0,0 +1,391 @@
1#!/bin/bash
2### update_autogen - update some auto-generated files in the Emacs tree
3
4## Copyright (C) 2011-2014 Free Software Foundation, Inc.
5
6## Author: Glenn Morris <rgm@gnu.org>
7
8## This file is part of GNU Emacs.
9
10## GNU Emacs is free software: you can redistribute it and/or modify
11## it under the terms of the GNU General Public License as published by
12## the Free Software Foundation, either version 3 of the License, or
13## (at your option) any later version.
14
15## GNU Emacs is distributed in the hope that it will be useful,
16## but WITHOUT ANY WARRANTY; without even the implied warranty of
17## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18## GNU General Public License for more details.
19
20## You should have received a copy of the GNU General Public License
21## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
22
23### Commentary:
24
25## This is a helper script to update some generated files in the Emacs
26## repository. This is suitable for running from cron.
27## Only Emacs maintainers need use this, so it uses bash features.
28##
29## By default, it updates the versioned loaddefs-like files in lisp,
30## except ldefs-boot.el.
31
32### Code:
33
34die () # write error to stderr and exit
35{
36 [ $# -gt 0 ] && echo "$PN: $@" >&2
37 exit 1
38}
39
40PN=${0##*/} # basename of script
41PD=${0%/*}
42
43[ "$PD" = "$0" ] && PD=. # if PATH includes PWD
44
45## This should be the admin directory.
46cd $PD
47cd ../
48[ -d admin ] || die "Could not locate admin directory"
49
50if [ -d .bzr ]; then
51 vcs=bzr
52elif [ -d .git ]; then
53 vcs=git
54else
55 die "Cannot determine vcs"
56fi
57
58
59usage ()
60{
61 cat 1>&2 <<EOF
62Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
63Update some auto-generated files in the Emacs tree.
64By default, only does the versioned loaddefs-like files in lisp/.
65This requires a build. Passes any non-option args to make (eg -- -j2).
66Options:
67-f: force an update even if the source files are locally modified.
68-c: if the update succeeds and the generated files are modified,
69 commit them (caution).
70-q: be quiet; only give error messages, not status messages.
71-A: only update autotools files, copying into specified dir.
72-I: also update info/dir.
73-L: also update ldefs-boot.el.
74-C: start from a clean state. Slower, but more correct.
75EOF
76 exit 1
77}
78
79
80## Defaults.
81
82force=
83commit=
84quiet=
85clean=
86autogendir= # was "autogen"
87ldefs_flag=1
88lboot_flag=
89info_flag=
90
91## Parameters.
92ldefs_in=lisp/loaddefs.el
93ldefs_out=lisp/ldefs-boot.el
94sources="configure.ac lib/Makefile.am"
95## Files to copy into autogendir.
96## Everything:
97genfiles="
98 configure aclocal.m4 src/config.in lib/Makefile.in
99 build-aux/compile build-aux/config.guess build-aux/config.sub
100 build-aux/depcomp build-aux/install-sh build-aux/missing
101"
102## msdos-only:
103genfiles="src/config.in lib/Makefile.in"
104
105for g in $genfiles; do
106 basegen="$basegen ${g##*/}"
107done
108
109[ "$basegen" ] || die "internal error"
110
111tempfile=/tmp/$PN.$$
112
113trap "rm -f $tempfile 2> /dev/null" EXIT
114
115
116while getopts ":hcfqA:CIL" option ; do
117 case $option in
118 (h) usage ;;
119
120 (c) commit=1 ;;
121
122 (f) force=1 ;;
123
124 (q) quiet=1 ;;
125
126 (A) autogendir=$OPTARG
127 [ -d "$autogendir" ] || die "No autogen directory: $autogendir"
128 ;;
129
130 (C) clean=1 ;;
131
132 (I) info_flag=1 ;;
133
134 (L) lboot_flag=1 ;;
135
136 (\?) die "Bad option -$OPTARG" ;;
137
138 (:) die "Option -$OPTARG requires an argument" ;;
139
140 (*) die "getopts error" ;;
141 esac
142done
143shift $(( --OPTIND ))
144OPTIND=1
145
146
147## Does not work 100% because a lot of Emacs batch output comes on stderr (?).
148[ "$quiet" ] && exec 1> /dev/null
149
150
151## Run status on inputs, list modified files on stdout.
152status ()
153{
154 local statflag="-S"
155 [ "$vcs" = "git" ] && statflag="-s"
156
157 $vcs status $statflag "$@" >| $tempfile || die "$vcs status error for $@"
158
159 local stat file modified
160
161 while read stat file; do
162
163 [ "$stat" != "M" ] && \
164 die "Unexpected status ($stat) for generated $file"
165 modified="$modified $file"
166
167 done < $tempfile
168
169 echo "$modified"
170
171 return 0
172} # function status
173
174
175echo "Checking input file status..."
176
177## The lisp portion could be more permissive, eg only care about .el files.
178modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die
179
180[ "$modified" ] && {
181 echo "Locally modified: $modified"
182 [ "$force" ] || die "There are local modifications"
183}
184
185
186## Probably this is overkill, and there's no need to "bootstrap" just
187## for making autoloads.
188[ "$clean" ] && {
189
190 echo "Running 'make maintainer-clean'..."
191
192 make maintainer-clean #|| die "Cleaning error"
193
194 rm -f $ldefs_in
195}
196
197
198echo "Running autoreconf..."
199
200autoreconf ${clean:+-f} -i -I m4 2>| $tempfile
201
202retval=$?
203
204## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr.
205if [ "$quiet" ]; then
206 grep -v 'installing `\.' $tempfile 1>&2
207else
208 cat "$tempfile" 1>&2
209fi
210
211[ $retval -ne 0 ] && die "autoreconf error"
212
213
214## Uses global $commit.
215commit ()
216{
217 local type=$1
218 shift
219
220 [ $# -gt 0 ] || {
221 echo "No files were modified"
222 return 0
223 }
224
225 echo "Modified file(s): $@"
226
227 [ "$commit" ] || return 0
228
229 echo "Committing..."
230
231 $vcs commit -m "Auto-commit of $type files." "$@" || return $?
232
233 [ "$vcs" = "git" ] && {
234 $vcs push || return $?
235 }
236
237 echo "Committed files: $@"
238} # function commit
239
240
241## No longer used since info/dir is now generated at install time if needed,
242## and is not in the repository any more.
243info_dir ()
244{
245 local basefile=build-aux/dir_top outfile=info/dir
246
247 echo "Regenerating info/dir..."
248
249 ## Header contains non-printing characters, so this is more
250 ## reliable than using echo.
251 rm -f $outfile
252 cp $basefile $outfile
253
254 local topic file dircat dirent
255
256 ## FIXME inefficient looping.
257 for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
258 "Emacs editing modes" "Emacs network features" "Emacs misc features" \
259 "Emacs lisp libraries"; do
260
261 cat - <<EOF >> $outfile
262
263$topic
264EOF
265 ## Bit faster than doc/*/*.texi.
266 for file in doc/emacs/emacs.texi doc/lispintro/*.texi \
267 doc/lispref/elisp.texi doc/misc/*.texi; do
268
269 ## FIXME do not ignore w32 if OS is w32.
270 case $file in
271 *-xtra.texi|*efaq-w32.texi) continue ;;
272 esac
273
274 dircat=$(sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file)
275
276 ## TODO warn about unknown topics (check-info in top-level
277 ## Makefile does this).
278 [ "$dircat" = "$topic" ] || continue
279
280 sed -n -e 's/@value{emacsname}/Emacs/' \
281 -e 's/@acronym{\([A-Z]*\)}/\1/' \
282 -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
283 $file >> $outfile
284
285 done
286 done
287
288 local modified
289
290 modified=$(status $outfile) || die
291
292 commit "info/dir" $modified || die "commit error"
293} # function info_dir
294
295
296[ "$autogendir" ] && {
297
298 oldpwd=$PWD
299
300 cp $genfiles $autogendir/
301
302 cd $autogendir || die "cd error for $autogendir"
303
304 echo "Checking status of generated files..."
305
306 modified=$(status $basegen) || die
307
308 ## bzr status output is always relative to top-level, not PWD.
309 [ "$vcs" = "bzr" ] && cd $oldpwd
310
311 commit "generated" $modified || die "commit error"
312
313 exit 0
314} # $autogendir
315
316
317[ "$info_flag" ] && info_dir
318
319
320[ "$ldefs_flag" ] || exit 0
321
322
323echo "Finding loaddef targets..."
324
325sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \
326 sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \
327 >| $tempfile || die "sed error"
328
329genfiles=
330
331while read genfile; do
332
333 [ -r lisp/$genfile ] || die "Unable to read $genfile"
334
335 genfiles="$genfiles $genfile"
336done < $tempfile
337
338
339[ "$genfiles" ] || die "Error setting genfiles"
340
341
342[ -e Makefile ] || {
343 echo "Running ./configure..."
344
345 ## Minimize required packages.
346 ./configure --without-x || die "configure error"
347}
348
349
350## Build the minimum needed to get the autoloads.
351echo "Running lib/ make..."
352
353make -C lib "$@" all || die "make lib error"
354
355
356echo "Running src/ make..."
357
358make -C src "$@" bootstrap-emacs || die "make src error"
359
360
361echo "Running lisp/ make..."
362
363make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error"
364
365
366## Ignore comment differences.
367[ ! "$lboot_flag" ] || \
368 diff -q -I '^;' $ldefs_in $ldefs_out || \
369 cp $ldefs_in $ldefs_out || die "cp ldefs_boot error"
370
371
372cd lisp
373
374echo "Checking status of loaddef files..."
375
376## It probably would be fine to just check+commit lisp/, since
377## making autoloads should not effect any other files. But better
378## safe than sorry.
379modified=$(status $genfiles ${ldefs_out#lisp/}) || die
380
381
382## bzr status output is always relative to top-level, not PWD.
383[ "$vcs" = "bzr" ] && cd ../
384
385
386commit "loaddefs" $modified || die "commit error"
387
388
389exit 0
390
391### update_autogen ends here