aboutsummaryrefslogtreecommitdiffstats
path: root/admin
diff options
context:
space:
mode:
authorBill Wohler2014-02-23 18:04:35 -0800
committerBill Wohler2014-02-23 18:04:35 -0800
commit3e93bafb95608467e438ba7f725fd1f020669f8c (patch)
treef2f90109f283e06a18caea3cb2a2623abcfb3a92 /admin
parent791c0d7634e44bb92ca85af605be84ff2ae08963 (diff)
parente918e27fdf331e89268fc2c9d7cf838d3ecf7aa7 (diff)
downloademacs-3e93bafb95608467e438ba7f725fd1f020669f8c.tar.gz
emacs-3e93bafb95608467e438ba7f725fd1f020669f8c.zip
Merge from trunk; up to 2014-02-23T23:41:17Z!lekktu@gmail.com.
Diffstat (limited to 'admin')
-rw-r--r--admin/CPP-DEFINES22
-rw-r--r--admin/ChangeLog458
-rw-r--r--admin/FOR-RELEASE34
-rw-r--r--admin/README2
-rw-r--r--admin/admin.el542
-rw-r--r--admin/alloc-colors.c2
-rwxr-xr-xadmin/build-configs4
-rw-r--r--admin/bzrmerge.el12
-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.el318
-rwxr-xr-xadmin/diff-tar-files2
-rw-r--r--admin/grammars/Makefile.in113
-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.wy41
-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.wy8
-rwxr-xr-xadmin/make-emacs4
-rw-r--r--admin/make-tarball.txt32
-rwxr-xr-xadmin/merge-gnulib26
-rw-r--r--admin/notes/bugtracker30
-rw-r--r--admin/notes/bzr82
-rw-r--r--admin/notes/changelogs2
-rw-r--r--admin/notes/commits9
-rw-r--r--admin/notes/copyright2
-rw-r--r--admin/notes/elpa25
-rw-r--r--admin/notes/font-backend2
-rw-r--r--admin/notes/hydra66
-rw-r--r--admin/notes/lel-TODO2
-rw-r--r--admin/notes/multi-tty2
-rw-r--r--admin/notes/unicode140
-rw-r--r--admin/notes/www82
-rw-r--r--admin/notes/years6
-rw-r--r--admin/nt/README-UNDUMP.W322
-rw-r--r--admin/nt/README-ftp-server68
-rwxr-xr-xadmin/quick-install-emacs10
-rw-r--r--admin/unidata/BidiMirroring.txt14
-rw-r--r--admin/unidata/Makefile.in51
-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_autogen375
51 files changed, 2382 insertions, 663 deletions
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES
index da8dec5a0f6..27d87dcaa2a 100644
--- a/admin/CPP-DEFINES
+++ b/admin/CPP-DEFINES
@@ -9,7 +9,6 @@ documented in config.in, and this file would not be necessary.
9 9
10AIX 10AIX
11_AIX 11_AIX
12BSD_SYSTEM
13CYGWIN Compiling the Cygwin port. 12CYGWIN Compiling the Cygwin port.
14__CYGWIN__ Ditto 13__CYGWIN__ Ditto
15GNU_LINUX 14GNU_LINUX
@@ -25,7 +24,6 @@ _MSC_VER Compiling the W32 port with the Microsoft C compiler.
25DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h). 24DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h).
26SOLARIS2 25SOLARIS2
27USG 26USG
28USG5
29USG5_4 27USG5_4
30 28
31** Distinguishing GUIs ** 29** Distinguishing GUIs **
@@ -136,8 +134,6 @@ HAVE_DECL_STRTOUMAX
136HAVE_DECL_SYS_SIGLIST 134HAVE_DECL_SYS_SIGLIST
137HAVE_DECL_TZNAME 135HAVE_DECL_TZNAME
138HAVE_DECL___SYS_SIGLIST 136HAVE_DECL___SYS_SIGLIST
139HAVE_DES_H
140HAVE_DEV_PTMX
141HAVE_DIALOGS 137HAVE_DIALOGS
142HAVE_DIFFTIME 138HAVE_DIFFTIME
143HAVE_DUP2 139HAVE_DUP2
@@ -149,7 +145,6 @@ HAVE_FORK
149HAVE_FREEIFADDRS 145HAVE_FREEIFADDRS
150HAVE_FREETYPE 146HAVE_FREETYPE
151HAVE_FSEEKO 147HAVE_FSEEKO
152HAVE_FSYNC
153HAVE_FUTIMENS 148HAVE_FUTIMENS
154HAVE_FUTIMES 149HAVE_FUTIMES
155HAVE_FUTIMESAT 150HAVE_FUTIMESAT
@@ -176,8 +171,6 @@ HAVE_GET_CURRENT_DIR_NAME
176HAVE_GHOSTSCRIPT 171HAVE_GHOSTSCRIPT
177HAVE_GIF 172HAVE_GIF
178HAVE_GNUTLS 173HAVE_GNUTLS
179HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY
180HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION
181HAVE_GPM 174HAVE_GPM
182HAVE_GRANTPT 175HAVE_GRANTPT
183HAVE_GSETTINGS 176HAVE_GSETTINGS
@@ -200,26 +193,15 @@ HAVE_IMAGEMAGICK
200HAVE_INET_SOCKETS 193HAVE_INET_SOCKETS
201HAVE_INTTYPES_H 194HAVE_INTTYPES_H
202HAVE_JPEG 195HAVE_JPEG
203HAVE_KERBEROSIV_DES_H
204HAVE_KERBEROSIV_KRB_H 196HAVE_KERBEROSIV_KRB_H
205HAVE_KERBEROS_DES_H
206HAVE_KERBEROS_KRB_H 197HAVE_KERBEROS_KRB_H
207HAVE_KRB5_ERROR_E_TEXT 198HAVE_KRB5_ERROR_E_TEXT
208HAVE_KRB5_ERROR_TEXT 199HAVE_KRB5_ERROR_TEXT
209HAVE_KRB5_H 200HAVE_KRB5_H
210HAVE_KRB_H 201HAVE_KRB_H
211HAVE_LANGINFO_CODESET 202HAVE_LANGINFO_CODESET
212HAVE_LIBCOM_ERR
213HAVE_LIBCRYPTO
214HAVE_LIBDES
215HAVE_LIBDES425
216HAVE_LIBDGC 203HAVE_LIBDGC
217HAVE_LIBDNET 204HAVE_LIBDNET
218HAVE_LIBHESIOD
219HAVE_LIBK5CRYPTO
220HAVE_LIBKRB
221HAVE_LIBKRB4
222HAVE_LIBKRB5
223HAVE_LIBKSTAT 205HAVE_LIBKSTAT
224HAVE_LIBLOCKFILE 206HAVE_LIBLOCKFILE
225HAVE_LIBM 207HAVE_LIBM
@@ -228,12 +210,10 @@ HAVE_LIBOTF
228HAVE_LIBPERFSTAT 210HAVE_LIBPERFSTAT
229HAVE_LIBPNG_PNG_H 211HAVE_LIBPNG_PNG_H
230HAVE_LIBPTHREADS 212HAVE_LIBPTHREADS
231HAVE_LIBRESOLV
232HAVE_LIBSELINUX 213HAVE_LIBSELINUX
233HAVE_LIBXEXT 214HAVE_LIBXEXT
234HAVE_LIBXML2 215HAVE_LIBXML2
235HAVE_LIBXMU 216HAVE_LIBXMU
236HAVE_LINUX_VERSION_H
237HAVE_LOCALTIME_R 217HAVE_LOCALTIME_R
238HAVE_LOCAL_SOCKETS 218HAVE_LOCAL_SOCKETS
239HAVE_LONG_FILE_NAMES 219HAVE_LONG_FILE_NAMES
@@ -300,7 +280,6 @@ HAVE_SNPRINTF
300HAVE_SOCKETS 280HAVE_SOCKETS
301HAVE_SOUND 281HAVE_SOUND
302HAVE_SOUNDCARD_H 282HAVE_SOUNDCARD_H
303HAVE_SPEED_T
304HAVE_STDINT_H 283HAVE_STDINT_H
305HAVE_STDIO_EXT_H 284HAVE_STDIO_EXT_H
306HAVE_STDLIB_H 285HAVE_STDLIB_H
@@ -379,7 +358,6 @@ HAVE_WS2TCPIP_H
379HAVE_XAW3D 358HAVE_XAW3D
380HAVE_XFT 359HAVE_XFT
381HAVE_XIM 360HAVE_XIM
382HAVE_XKBGETKEYBOARD
383HAVE_XPM 361HAVE_XPM
384HAVE_XRMSETDATABASE 362HAVE_XRMSETDATABASE
385HAVE_XSCREENNUMBEROFSCREEN 363HAVE_XSCREENNUMBEROFSCREEN
diff --git a/admin/ChangeLog b/admin/ChangeLog
index 28e25ad98a3..f27a03af773 100644
--- a/admin/ChangeLog
+++ b/admin/ChangeLog
@@ -1,3 +1,440 @@
12014-02-06 David Engster <deng@randomsample.de>
2
3 * grammars/c.by (function-pointer): Correctly deal with anonymous
4 function pointers.
5 (opt-brackets-after-symbol): New.
6 (multi-stage-dereference): Use it. Add rules for explicit
7 matching the last dereference.
8
92014-01-16 Eric S. Raymond <esr@thyrsus.com>
10
11 * notes/commits: Add a 'graph on VCS-independent ways of
12 identifying commits and the desirability thereof.
13
142014-01-15 Paul Eggert <eggert@cs.ucla.edu>
15
16 Fix copyright license notices for Adobe Unicode mapping files.
17 * charsets/mapfiles/README: The copied files are not compressed.
18 Check for copies as of today.
19 * charsets/mapfiles/stdenc.txt, charsets/mapfiles/symbol.txt:
20 Update from table version 0.2 (1999-03-30) to 1.0 (2011-07-12).
21 This doesn't change the table data, just copyright license notice.
22 The new notices are compatible with the GPL, the old ones were not.
23
242014-01-13 Glenn Morris <rgm@gnu.org>
25
26 * update_autogen (status): New function. Use throughout.
27
282014-01-10 Glenn Morris <rgm@gnu.org>
29
30 * update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS.
31
322014-01-04 Glenn Morris <rgm@gnu.org>
33
34 * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable <hr>.
35 (manual-html-fix-index-2): Tweak Texinfo 5 table format.
36 Fix minor Texinfo 4 issue with start of detailed menu.
37
382014-01-03 Glenn Morris <rgm@gnu.org>
39
40 * admin.el: More Texinfo 5 updates.
41 (manual-html-fix-headers): Tweak Texinfo 5 body.
42 (manual-html-fix-node-div): Treat "header" like "node".
43 (manual-html-fix-index-1): Handle Texinfo 5 top heading.
44 (manual-html-fix-index-2): Tweak Texinfo 5 listing tables.
45
462014-01-02 Xue Fuqiao <xfq.free@gmail.com>
47
48 * check-doc-strings: Replace `perl -w' with `use warnings;'.
49
502013-12-30 Glenn Morris <rgm@gnu.org>
51
52 * admin.el (manual-html-fix-headers, manual-html-fix-index-1):
53 Some updates for changes in Texinfo 5 output.
54
552013-12-29 Xue Fuqiao <xfq.free@gmail.com>
56
57 * make-emacs:
58 * build-configs: Add the "use strict;" and "use warnings;" pragmas.
59
602013-12-28 Glenn Morris <rgm@gnu.org>
61
62 * admin.el (cusver-scan): Warn about missing :types.
63 (cusver-check): Interactively, require existing directories.
64
652013-12-27 Xue Fuqiao <xfq.free@gmail.com>
66
67 * admin.el (manual-misc-manuals, make-manuals):
68 (manual-pdf, cusver-find-files):
69 (cusver-new-version, cusver-scan, cusver-goto-xref):
70 (cusver-check): Doc fix.
71 (manual-html-node, cusver-check): Use `user-error'.
72
732013-12-24 Paul Eggert <eggert@cs.ucla.edu>
74
75 Automate the procedure for updating copyright year.
76 * merge-gnulib (GNULIB_MODULES): Add update-copyright.
77 * notes/years: Mention admin/update-copyright.
78 * update-copyright: New file.
79
802013-12-24 Xue Fuqiao <xfq.free@gmail.com>
81
82 * admin.el (add-release-logs):
83 (set-version-in-file, set-version, set-copyright):
84 Use `user-error'.
85
862013-12-22 Eli Zaretskii <eliz@gnu.org>
87
88 * unidata/unidata-gen.el (unidata-split-name): Don't give any NAME
89 to <control> characters: the Unicode Standard says they have no
90 name. (Bug#16216)
91 (unidata-describe-bidi-class): Add new "isolate" classes
92 introduced by Unicode 6.3.
93
942013-12-12 David Engster <deng@randomsample.de>
95
96 * grammars/c.by (expr-binop): Add MOD.
97 (variablearg): Add 'opt-assign'.
98 (variablearg, varnamelist): Add default values so that it can be
99 later expanded into the tag.
100 (opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and
101 remove empty match.
102 (multi-stage-dereference): Adapt to above rename.
103 (unaryexpression): Use 'symbol' instead of 'namespace-symbol',
104 since the latter also leads to an empty match at the end which
105 would make this too greedy.
106 (variablearg-opt-name): Support parsing of function pointers
107 inside an argument list.
108
1092013-12-12 Glenn Morris <rgm@gnu.org>
110
111 * update_autogen (info_dir):
112 Use dir_top from build-aux/ rather than admin/.
113
114 * update_autogen: Add option to generate info/dir.
115 (Usage): Add -I.
116 (info_flag): New variable.
117 (-I): New option.
118 (doc): Maybe check its status.
119 (info_dir): New function.
120 * dir_top: New file.
121
1222013-12-11 Paul Eggert <eggert@cs.ucla.edu>
123
124 Remove the option of using libcrypto.
125 * merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4.
126
1272013-12-04 Eli Zaretskii <eliz@gnu.org>
128
129 * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class
130 to include the new isolate-related classes introduced with Unicode
131 v6.3.
132 (unidata-encode-val): Accept an additional optional argument, a
133 warning message to emit when UnicodeData.txt defines bidi-class
134 values that are not in unidata-prop-alist. Add a comment
135 explaining what should maintainers do if/when such a warning ever
136 appears.
137 (unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil
138 when generating uni-bidi.el.
139
1402013-12-01 Glenn Morris <rgm@gnu.org>
141
142 * unidata/Makefile.in (${DSTDIR}/charprop.el):
143 Ensure output files are writable.
144
1452013-11-30 Glenn Morris <rgm@gnu.org>
146
147 * grammars/Makefile.in: Ensure output files are writable.
148
1492013-11-30 Eli Zaretskii <eliz@gnu.org>
150
151 * charsets/mule-charsets.el: Rewritten to work in Emacs 23 and
152 later. (Bug#16007)
153
1542013-11-30 Glenn Morris <rgm@gnu.org>
155
156 Stop keeping (most) generated cedet grammar files in the repository.
157 * grammars/README: Remove.
158 * grammars/Makefile.in: New file.
159 * grammars/c.by, grammars/java-tags.wy, grammars/js.wy:
160 * grammars/python.wy: Update declarations to match generated outputs.
161
1622013-11-28 Glenn Morris <rgm@gnu.org>
163
164 * unidata/unidata-gen.el (unidata-gen-files):
165 Disable autoloads in generated files.
166
1672013-11-27 Glenn Morris <rgm@gnu.org>
168
169 * unidata/Makefile.in (all, install, clean, bootstrap-clean)
170 (distclean, maintainer-clean): Declare as PHONY.
171 (compile, extraclean): New.
172 (${DSTDIR}/charprop.el): Depend on source files rather than
173 intermediate products.
174
1752013-11-11 Glenn Morris <rgm@gnu.org>
176
177 * unidata/BidiMirroring.txt, unidata/UnicodeData.txt: Update to 6.3.0.
178
179 * unidata/unidata-gen.el (unidata-gen-files):
180 Tweak whitespace in generated files.
181
1822013-11-09 Glenn Morris <rgm@gnu.org>
183
184 * unidata/unidata-gen.el (unidata-gen-files):
185 Fix deletion of existing output files after 2013-10-30 changes.
186
1872013-11-07 Glenn Morris <rgm@gnu.org>
188
189 * unidata/unidata-gen.el (unidata-gen-files):
190 Disable version-control in generated files.
191 Update Unicode Inc. copyright years.
192
1932013-11-05 Glenn Morris <rgm@gnu.org>
194
195 * update_autogen: Move here from ../autogen.
196 (usage): Update. Remove -l, add -A.
197 (autogendir): New variable.
198 (ldefs_flag): Default to set.
199 (genfiles): Reduce to only ms-dos relevant files.
200 (main): Make checking autogen sources optional.
201 Make copying of autogen files optional.
202
2032013-10-30 Glenn Morris <rgm@gnu.org>
204
205 * unidata/unidata-gen.el (unidata-gen-files): Use pop.
206 Also take the output directory as an argument.
207 * unidata/Makefile.in: Simplify now that unidata-gen-files takes
208 the output directory as an argument (no need to cd, etc).
209 (abs_srcdir, abs_builddir): Remove.
210 (abs_top_builddir): Replace by top_builddir.
211 (${DSTDIR}/charprop.el): No need to cd. Pass dest as argument.
212 (${DSTDIR}/charprop.el, charprop.el):
213 No need to pass unidata.txt as argument.
214
215 * unidata/unidata-gen.el (unidata--ensure-compiled): New function.
216 (unidata-gen-table-name, unidata-gen-table-decomposition)
217 (unidata-gen-files): Use unidata--ensure-compiled.
218
219 * unidata/Makefile.in (abs_srcdir): New, set by configure.
220 (${DSTDIR}/charprop.el, charprop.el): Update for srcdir not absolute.
221 (clean): Delete all .elc files.
222 (bootstrap-clean): New rule.
223
2242013-10-23 Glenn Morris <rgm@gnu.org>
225
226 * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el):
227 Quote entities that might contain whitespace.
228
2292013-10-07 Paul Eggert <eggert@cs.ucla.edu>
230
231 Improve support for popcount and counting trailing zeros (Bug#15550).
232 * merge-gnulib (GNULIB_MODULES): Add count-one-bits
233 and count-trailing-zeros.
234
2352013-10-04 Paul Eggert <eggert@cs.ucla.edu>
236
237 Use hardware support for byteswapping on glibc x86 etc.
238 * merge-gnulib (GNULIB_MODULES): Add byteswap.
239
2402013-08-28 Paul Eggert <eggert@cs.ucla.edu>
241
242 * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh,
243 for portability to hosts where /bin/sh has problems.
244
2452013-08-27 Glenn Morris <rgm@gnu.org>
246
247 * admin.el (manual-misc-manuals): Use INFO_COMMON rather than
248 INFO_TARGETS. "faq" does not need special treatment any more.
249
2502013-08-15 Glenn Morris <rgm@gnu.org>
251
252 * make-tarball.txt: Mention generating pdfs in etc/refcards.
253
2542013-08-15 Xue Fuqiao <xfq.free@gmail.com>
255
256 * notes/hydra: More information about Hydra.
257
2582013-08-10 Xue Fuqiao <xfq.free@gmail.com>
259
260 * notes/hydra: New file.
261
2622013-08-04 Paul Eggert <eggert@cs.ucla.edu>
263
264 Fix some minor races in hosts lacking mkostemp (Bug#15015).
265 * merge-gnulib (GNULIB_MODULES): Add mkostemp.
266
2672013-07-12 Glenn Morris <rgm@gnu.org>
268
269 * admin.el (manual-style-string): Use non-abbreviated url.
270
2712013-07-09 Paul Eggert <eggert@cs.ucla.edu>
272
273 Port recent close-on-exec changes to Cygwin (Bug#14821).
274 * merge-gnulib (GNULIB_TOOL_FLAGS): Don't avoid binary-io.
275
276 Handle error numbers a bit more reliably.
277 * merge-gnulib (GNULIB_MODULES): Remove ignore-value.
278
2792013-07-07 Paul Eggert <eggert@cs.ucla.edu>
280
281 Make file descriptors close-on-exec when possible (Bug#14803).
282 * merge-gnulib (GNULIB_MODULES): Add fcntl, pipe2.
283 (GNULIB_TOOL_FLAGS): Avoid binary-io, close. Do not avoid fcntl.
284
2852013-07-06 Glenn Morris <rgm@gnu.org>
286
287 * admin.el (manual-misc-manuals): New function.
288 (make-manuals): Avoid hard-coding list of misc manuals.
289 Add the option to only make certain type(s) of output.
290 (manual-misc-html): Special-case ccmode and efaq.
291 (manual-html-mono, manual-html-node, manual-pdf, manual-ps):
292 Move creation of output directory here from make-manuals.
293 (manual-html-fix-index-2): Avoid dynamic reference to `f'.
294
2952013-07-05 Glenn Morris <rgm@gnu.org>
296
297 * admin.el (make-manuals): Use a standard location for lispintro.
298 Use a pdf/ subdirectory for pdf versions.
299
3002013-06-29 Glenn Morris <rgm@gnu.org>
301
302 * admin.el (make-manuals): Don't bother with txt or dvi any more.
303 (manual-txt): Remove.
304 (manual-pdf): Doc fix.
305 (manual-ps): Rename from manual-dvi.
306 (manual-pdf, manual-ps): Work in the directory with the texi file,
307 so that TeX intermediate files go there rather than to PWD.
308
3092013-06-15 Xue Fuqiao <xfq.free@gmail.com>
310
311 * notes/changelogs: Mention trivial changes in Change Log.
312
3132013-06-13 Glenn Morris <rgm@gnu.org>
314
315 * admin.el (manual-style-string): Use new file manual.css.
316
3172013-06-02 Eric Ludlam <zappo@gnu.org>
318
319 * grammars/srecode-template.wy (variable): Accept a single number
320 as a variable value. Allows the 'priority' to be set to a number.
321 (wisent-srecode-template-lexer): Move number up so it can be created.
322
3232013-05-16 Glenn Morris <rgm@gnu.org>
324
325 * cus-test.el (cus-test-cus-load-groups): New function.
326 (cus-test-get-options): Add option to return groups.
327 (cus-test-noloads): Also check custom groups.
328
3292013-05-15 Stefan Monnier <monnier@iro.umontreal.ca>
330
331 * quick-install-emacs: Don't prune DOC-* files a any more.
332
3332013-05-14 Glenn Morris <rgm@gnu.org>
334
335 * cus-test.el (cus-test-get-lisp-files): Ignore obsolete/.
336 (cus-test-libs): Fix let-binding of default-directory.
337 (cus-test-noloads): Load all libs for the comparison.
338
3392013-05-11 Glenn Morris <rgm@gnu.org>
340
341 * cus-test.el (cus-test-libs-noloads): Add a few more files.
342 (cus-test-load-libs, cus-test-opts):
343 Add option to load more/all Lisp files.
344 (cus-test-get-lisp-files): Ignore .*.el files.
345
3462013-05-10 Glenn Morris <rgm@gnu.org>
347
348 * cus-test.el (cus-test-libs-noloads): Add some files.
349 (cus-test-get-lisp-files): New function.
350 (cus-test-libs): Add option to load more/all Lisp files.
351
3522013-05-09 Glenn Morris <rgm@gnu.org>
353
354 * cus-test.el: No need to provide bbdb, bbdb-com any more.
355 (cus-test-libs-noloads): Add dunnet in the defvar.
356 (dunnet): Don't always load it.
357 (viper-mode): Only set if interactive.
358 (cus-test-load-custom-loads): Load dunnet if necessary.
359 (cus-test-load-1): New macro, with common code from cus-test-load-libs
360 and cus-test-libs.
361 (cus-test-load-libs, cus-test-libs): Use cus-test-load-1 macro.
362 Update for cus-test-get-autoload-deps changed result.
363 (cus-test-get-autoload-deps): Simplify. Return file names as they
364 appear in loaddefs.el (directory parts are needed now that not all
365 lisp subdirs are in load-path).
366 (cus-test-deps): Explicitly skip dunnet.
367
3682013-05-07 Paul Eggert <eggert@cs.ucla.edu>
369
370 Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295)
371 * merge-gnulib (GNULIB_MODULES): Add qacl.
372 (GNULIB_TOOL_FLAGS): Do not avoid errno.
373
3742013-04-01 Paul Eggert <eggert@cs.ucla.edu>
375
376 Use UTF-8 for most files with non-ASCII characters (Bug#13936).
377 * notes/unicode (etc/tutorials/TUTORIAL.ko, leim/quail/hanja.el)
378 (leim/quail/hanja3.el, leim/quail/symbol-ksc.el):
379 Now utf-8, not iso-2022-7bit. Also, files that contain non-UTF-8
380 characters are now encoded in utf-8-emacs, not iso-2022-7bit.
381
3822013-03-18 Paul Eggert <eggert@cs.ucla.edu>
383
384 * notes/unicode: Mention some more iso-2022-7bit files (Bug#13936).
385
386 Automate the build of ja-dic.el (Bug#13984).
387 * notes/unicode: ja-dic.el is now UTF-8.
388
3892013-03-16 Glenn Morris <rgm@gnu.org>
390
391 * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi.
392
3932013-03-16 Glenn Morris <rgm@gnu.org>
394
395 * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG.
396
3972013-03-13 Paul Eggert <eggert@cs.ucla.edu>
398
399 File synchronization fixes (Bug#13944).
400 * CPP-DEFINES (BSD_SYSTEM, HAVE_FSYNC): Remove.
401 * merge-gnulib (GNULIB_MODULES): Add fsync, fdatasync.
402
4032013-03-11 Paul Eggert <eggert@cs.ucla.edu>
404
405 * notes/unicode: Improve notes about Emacs source file encoding.
406
4072013-03-11 Glenn Morris <rgm@gnu.org>
408
409 * admin.el (make-manuals): Add emacs-lisp-intro and some more
410 doc/misc manuals.
411 (manual-html-mono, manual-html-node, manual-txt):
412 Pass -I to makeinfo.
413
4142013-03-10 Glenn Morris <rgm@gnu.org>
415
416 * admin.el (add-release-logs): Use UTC for release date.
417
4182013-03-09 Glenn Morris <rgm@gnu.org>
419
420 * admin.el (add-release-logs): Provide interactive defaults.
421 Allow specification of the release date. Don't exclude gnus/.
422
4232013-03-05 Paul Eggert <eggert@cs.ucla.edu>
424
425 * notes/unicode: Add notes about Emacs source file encoding.
426
4272013-03-04 Paul Eggert <eggert@cs.ucla.edu>
428
429 * grammars/java-tags.wy (CHAR): Remove "('\u0000' to '\uffff')"
430 from summary, as this causes javat-wy.el to contain both a null byte
431 and a byte sequence that is not valid UTF-8, which is inconvenient.
432
4332013-03-03 Paul Eggert <eggert@cs.ucla.edu>
434
435 * bzrmerge.el (bzrmerge-apply): Omit Latin-1 char from diagnostic.
436 If there were a real need, it should be UTF-8 anyway.
437
12013-02-25 Paul Eggert <eggert@cs.ucla.edu> 4382013-02-25 Paul Eggert <eggert@cs.ucla.edu>
2 439
3 Simplify data_start configuration (Bug#13783). 440 Simplify data_start configuration (Bug#13783).
@@ -29,7 +466,7 @@
29 466
302012-12-14 Paul Eggert <eggert@cs.ucla.edu> 4672012-12-14 Paul Eggert <eggert@cs.ucla.edu>
31 468
32 Fix permissions bugs with setgid directories etc. (Bug#13125) 469 Fix permissions bugs with setgid directories etc. (Bug#13125)
33 * CPP-DEFINES (BSD4_2): Remove. 470 * CPP-DEFINES (BSD4_2): Remove.
34 471
352012-12-08 Paul Eggert <eggert@cs.ucla.edu> 4722012-12-08 Paul Eggert <eggert@cs.ucla.edu>
@@ -145,10 +582,10 @@
145 (cusver-scan): Check if containing group has a :version. 582 (cusver-scan): Check if containing group has a :version.
146 (cusver-check): Add VERSION argument. 583 (cusver-check): Add VERSION argument.
147 584
1482012-10-01 David Engster <deng@randomsample.de> 5852012-10-06 David Engster <deng@randomsample.de>
149 586
150 * grammars/bovine-grammar.el: 587 * grammars/bovine-grammar.el:
151 * grammars/wisent-grammar.el: Move to lisp directory. 588 * grammars/wisent-grammar.el: Move to lisp/cedet/semantic directory.
152 589
1532012-10-01 David Engster <deng@randomsample.de> 5902012-10-01 David Engster <deng@randomsample.de>
154 591
@@ -161,7 +598,7 @@
161 598
162 * grammars/grammar.wy (semantic-grammar-lexer): Remove, since it 599 * grammars/grammar.wy (semantic-grammar-lexer): Remove, since it
163 was copied to grammar.el. New %provide token to generate prefix 600 was copied to grammar.el. New %provide token to generate prefix
164 which conforms with Emacs conventions. Remove lexer definition, 601 which conforms with Emacs conventions. Remove lexer definition,
165 which is now in grammar.el. 602 which is now in grammar.el.
166 603
1672012-09-27 Glenn Morris <rgm@gnu.org> 6042012-09-27 Glenn Morris <rgm@gnu.org>
@@ -607,6 +1044,10 @@
607 1044
608 * notes/bugtracker (bugtracker_debbugs_url): Fix typo. 1045 * notes/bugtracker (bugtracker_debbugs_url): Fix typo.
609 1046
10472011-02-20 Paul Eggert <eggert@cs.ucla.edu>
1048
1049 * notes/copyright: Remove src/md5.c and src/md5.h as special cases.
1050
6102011-02-19 Eli Zaretskii <eliz@gnu.org> 10512011-02-19 Eli Zaretskii <eliz@gnu.org>
611 1052
612 * admin.el (set-version): Add msdos/sed2v2.inp. 1053 * admin.el (set-version): Add msdos/sed2v2.inp.
@@ -616,6 +1057,7 @@
616 Remove no-longer needed getloadavg symbols. 1057 Remove no-longer needed getloadavg symbols.
617 * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE): 1058 * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE):
618 (LDAV_SYMBOL): Remove. 1059 (LDAV_SYMBOL): Remove.
1060 * notes/copyright: Remove src/getloadavg.c as a special case.
619 1061
6202011-02-12 Glenn Morris <rgm@gnu.org> 10622011-02-12 Glenn Morris <rgm@gnu.org>
621 1063
@@ -1138,7 +1580,7 @@
1138 Sub-directory `unidata' is for codes to generate charprop.el and 1580 Sub-directory `unidata' is for codes to generate charprop.el and
1139 many other uni-*.el files from `UnicodeData.txt'. 1581 many other uni-*.el files from `UnicodeData.txt'.
1140 1582
1141 * Unidata/README: New file. 1583 * unidata/README: New file.
1142 1584
1143 * unidata/Makefile: New file. 1585 * unidata/Makefile: New file.
1144 1586
@@ -1564,8 +2006,6 @@
1564 emacs.exe before zipping, and including batch file to recreate 2006 emacs.exe before zipping, and including batch file to recreate
1565 after unpacking. 2007 after unpacking.
1566 2008
1567 * nt/stitch.bat: New file.
1568
1569 * nt/README-ftp-server: Update wording and version number etc. 2009 * nt/README-ftp-server: Update wording and version number etc.
1570 Add extra instructions for installing multi-file .zip 2010 Add extra instructions for installing multi-file .zip
1571 distribution. 2011 distribution.
@@ -1685,7 +2125,7 @@
1685 2125
16862001-09-04 Andrew Innes <andrewi@gnu.org> 21262001-09-04 Andrew Innes <andrewi@gnu.org>
1687 2127
1688 * admin/nt/makedist.bat: Remove reference to obsolete file 2128 * nt/makedist.bat: Remove reference to obsolete file
1689 GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about 2129 GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about
1690 version of tar used. 2130 version of tar used.
1691 2131
@@ -1693,7 +2133,7 @@
1693;; coding: utf-8 2133;; coding: utf-8
1694;; End: 2134;; End:
1695 2135
1696 Copyright (C) 2001-2013 Free Software Foundation, Inc. 2136 Copyright (C) 2001-2014 Free Software Foundation, Inc.
1697 2137
1698 This file is part of GNU Emacs. 2138 This file is part of GNU Emacs.
1699 2139
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE
index 1e4f9f3b48d..8b6bddbbd2f 100644
--- a/admin/FOR-RELEASE
+++ b/admin/FOR-RELEASE
@@ -2,7 +2,13 @@ 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
8Check for node names using problematic characters:
9 find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} +
10Sadly makeinfo does not warn about such characters.
11
6Check cross-references between the manuals (eg from emacs to elisp) 12Check cross-references between the manuals (eg from emacs to elisp)
7are correct. You can use something like the following in the info 13are correct. You can use something like the following in the info
8directory in the Emacs build tree: 14directory in the Emacs build tree:
@@ -10,6 +16,28 @@ directory in the Emacs build tree:
10emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \ 16emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \
11 -f info-xref-check-all 17 -f info-xref-check-all
12 18
19Setting Info-directory-list avoids having system info pages confuse
20things. References to external manuals will be flagged as
21uncheckable. You should still check these, and also that each
22external manual has an appropriate redirect in the file manual/.htaccess
23in the web pages repository. E.g.:
24Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html
25Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/
26
27Another tool you can use to check links is gnu.org's linc.py:
28http://www.gnu.org/server/source/
29
30You run this something like:
31
32cd /path/to/cvs/emacs-www
33linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ .
34
35Be warned that it is really, really slow (as in, can take ~ a full day
36to check the manual/ directory). It is probably best to run it on a
37single directory at a time from eg manual/html_node. It is very
38inefficient, but may reveal a few things that info-xref does not.
39
40
13make emacs.dvi, elisp.dvi, and deal with any errors (undefined 41make emacs.dvi, elisp.dvi, and deal with any errors (undefined
14references etc) in the output. Break any overfull lines. 42references etc) in the output. Break any overfull lines.
15Underfull hboxes are not serious, but it can be nice to get rid of 43Underfull hboxes are not serious, but it can be nice to get rid of
@@ -42,7 +70,6 @@ I think this is different to what you get if you just use eg `make
42emacs.pdf' (e.g., enable "smallbook"). 70emacs.pdf' (e.g., enable "smallbook").
43 71
44** 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.
45Regenerate the pdf versions in etc/refcards/.
46What paper size are the English versions supposed to be on? 73What paper size are the English versions supposed to be on?
47On Debian testing, the packages texlive-lang-czechslovak and 74On Debian testing, the packages texlive-lang-czechslovak and
48texlive-lang-polish will let you generate the cs-* and sk-* pdfs. 75texlive-lang-polish will let you generate the cs-* and sk-* pdfs.
@@ -112,7 +139,7 @@ SECTION READERS
112---------------------------------- 139----------------------------------
113TUTORIAL cyd 140TUTORIAL cyd
114TUTORIAL.bg ogi 141TUTORIAL.bg ogi
115TUTORIAL.cn 142TUTORIAL.cn xfq
116TUTORIAL.cs 143TUTORIAL.cs
117TUTORIAL.de wl 144TUTORIAL.de wl
118TUTORIAL.eo 145TUTORIAL.eo
@@ -120,7 +147,7 @@ TUTORIAL.es
120TUTORIAL.fr 147TUTORIAL.fr
121TUTORIAL.he eliz 148TUTORIAL.he eliz
122TUTORIAL.it 149TUTORIAL.it
123TUTORIAL.ja 150TUTORIAL.ja
124TUTORIAL.ko 151TUTORIAL.ko
125TUTORIAL.nl Pieter Schoenmakers 152TUTORIAL.nl Pieter Schoenmakers
126TUTORIAL.pl 153TUTORIAL.pl
@@ -191,7 +218,6 @@ xresources.texi cyd
191** Check the Lisp manual. 218** Check the Lisp manual.
192 219
193abbrevs.texi rgm 220abbrevs.texi rgm
194advice.texi cyd
195anti.texi rgm 221anti.texi rgm
196back.texi rgm 222back.texi rgm
197backups.texi cyd 223backups.texi cyd
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 e815dfade47..007cb06e592 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,46 +21,64 @@
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:
28 28
29(defvar add-log-time-format) ; in add-log 29(defvar add-log-time-format) ; in add-log
30 30
31(defun add-release-logs (root version) 31;; Does this information need to be in every ChangeLog, as opposed to
32;; just the top-level one? Only if you allow changes the same
33;; day as the release.
34;; http://lists.gnu.org/archive/html/emacs-devel/2013-03/msg00161.html
35(defun add-release-logs (root version &optional date)
32 "Add \"Version VERSION released.\" change log entries in ROOT. 36 "Add \"Version VERSION released.\" change log entries in ROOT.
33Root must be the root of an Emacs source tree." 37Root must be the root of an Emacs source tree.
34 (interactive "DEmacs root directory: \nNVersion number: ") 38Optional argument DATE is the release date, default today."
39 (interactive (list (read-directory-name "Emacs root directory: ")
40 (read-string "Version number: "
41 (format "%s.%s" emacs-major-version
42 emacs-minor-version))
43 (read-string "Release date: "
44 (progn (require 'add-log)
45 (let ((add-log-time-zone-rule t))
46 (funcall add-log-time-format))))))
35 (setq root (expand-file-name root)) 47 (setq root (expand-file-name root))
36 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 48 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
37 (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))
38 (require 'add-log) 50 (require 'add-log)
51 (or date (setq date (let ((add-log-time-zone-rule t))
52 (funcall add-log-time-format))))
39 (let* ((logs (process-lines "find" root "-name" "ChangeLog")) 53 (let* ((logs (process-lines "find" root "-name" "ChangeLog"))
40 (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n" 54 (entry (format "%s %s <%s>\n\n\t* Version %s released.\n\n"
41 (funcall add-log-time-format) 55 date
42 (or add-log-full-name (user-full-name)) 56 (or add-log-full-name (user-full-name))
43 (or add-log-mailing-address user-mail-address) 57 (or add-log-mailing-address user-mail-address)
44 version))) 58 version)))
45 (dolist (log logs) 59 (dolist (log logs)
46 (unless (string-match "/gnus/" log) 60 (find-file log)
47 (find-file log) 61 (goto-char (point-min))
48 (goto-char (point-min)) 62 (insert entry))))
49 (insert entry)))))
50 63
51(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'."
52 (find-file (expand-file-name file root)) 66 (find-file (expand-file-name file root))
53 (goto-char (point-min)) 67 (goto-char (point-min))
54 (unless (re-search-forward rx nil t) 68 (unless (re-search-forward rx nil :noerror)
55 (error "Version not found in %s" file)) 69 (user-error "Version not found in %s" file))
56 (replace-match (format "%s" version) nil nil nil 1)) 70 (replace-match (format "%s" version) nil nil nil 1))
57 71
72;; TODO report the progress
58(defun set-version (root version) 73(defun set-version (root version)
59 "Set Emacs version to VERSION in relevant files under ROOT. 74 "Set Emacs version to VERSION in relevant files under ROOT.
60Root must be the root of an Emacs source tree." 75Root must be the root of an Emacs source tree."
61 (interactive "DEmacs root directory: \nsVersion number: ") 76 (interactive "DEmacs root directory: \nsVersion number: ")
62 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 77 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
63 (error "%s doesn't seem to be the root of an Emacs source tree" root)) 78 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
79 ;; There's also a "version 3" (standing for GPLv3) at the end of
80 ;; `README', but since `set-version-in-file' only replaces the first
81 ;; occurrence, it won't be replaced.
64 (set-version-in-file root "README" version 82 (set-version-in-file root "README" version
65 (rx (and "version" (1+ space) 83 (rx (and "version" (1+ space)
66 (submatch (1+ (in "0-9.")))))) 84 (submatch (1+ (in "0-9."))))))
@@ -91,7 +109,7 @@ Root must be the root of an Emacs source tree."
91 ;; in two places those commas are followed by space, in two other 109 ;; in two places those commas are followed by space, in two other
92 ;; places they are not. 110 ;; places they are not.
93 (let* ((version-components (append (split-string version "\\.") 111 (let* ((version-components (append (split-string version "\\.")
94 '("0" "0"))) 112 '("0" "0")))
95 (comma-version 113 (comma-version
96 (concat (car version-components) "," 114 (concat (car version-components) ","
97 (cadr version-components) "," 115 (cadr version-components) ","
@@ -144,6 +162,7 @@ Root must be the root of an Emacs source tree."
144 162
145 163
146;; Note this makes some assumptions about form of short copyright. 164;; Note this makes some assumptions about form of short copyright.
165;; TODO report the progress
147(defun set-copyright (root copyright) 166(defun set-copyright (root copyright)
148 "Set Emacs short copyright to COPYRIGHT in relevant files under ROOT. 167 "Set Emacs short copyright to COPYRIGHT in relevant files under ROOT.
149Root must be the root of an Emacs source tree." 168Root must be the root of an Emacs source tree."
@@ -154,7 +173,7 @@ Root must be the root of an Emacs source tree."
154 (format "Copyright (C) %s Free Software Foundation, Inc." 173 (format "Copyright (C) %s Free Software Foundation, Inc."
155 (format-time-string "%Y"))))) 174 (format-time-string "%Y")))))
156 (unless (file-exists-p (expand-file-name "src/emacs.c" root)) 175 (unless (file-exists-p (expand-file-name "src/emacs.c" root))
157 (error "%s doesn't seem to be the root of an Emacs source tree" root)) 176 (user-error "%s doesn't seem to be the root of an Emacs source tree" root))
158 (set-version-in-file root "configure.ac" copyright 177 (set-version-in-file root "configure.ac" copyright
159 (rx (and bol "copyright" (0+ (not (in ?\"))) 178 (rx (and bol "copyright" (0+ (not (in ?\")))
160 ?\" (submatch (1+ (not (in ?\")))) ?\"))) 179 ?\" (submatch (1+ (not (in ?\")))) ?\")))
@@ -180,54 +199,87 @@ Root must be the root of an Emacs source tree."
180 199
181;;; Various bits of magic for generating the web manuals 200;;; Various bits of magic for generating the web manuals
182 201
183(defun make-manuals (root) 202(defun manual-misc-manuals (root)
184 "Generate the web manuals for the Emacs webpage." 203 "Return doc/misc manuals as list of strings.
185 (interactive "DEmacs root directory: ") 204ROOT should be the root of an Emacs source tree."
205 ;; Similar to `make -C doc/misc echo-info', but works if unconfigured,
206 ;; and for INFO_TARGETS rather than INFO_INSTALL.
207 (with-temp-buffer
208 (insert-file-contents (expand-file-name "doc/misc/Makefile.in" root))
209 ;; Should really use expanded value of INFO_TARGETS.
210 (search-forward "INFO_COMMON = ")
211 (let ((start (point)))
212 (end-of-line)
213 (while (and (looking-back "\\\\")
214 (zerop (forward-line 1)))
215 (end-of-line))
216 (append (split-string (replace-regexp-in-string
217 "\\(\\\\\\|\\.info\\)" ""
218 (buffer-substring start (point))))
219 '("efaq-w32")))))
220
221;; TODO report the progress
222(defun make-manuals (root &optional type)
223 "Generate the web manuals for the Emacs webpage.
224ROOT should be the root of an Emacs source tree.
225Interactively with a prefix argument, prompt for TYPE.
226Optional argument TYPE is type of output (nil means all)."
227 (interactive (let ((root (read-directory-name "Emacs root directory: "
228 source-directory nil t)))
229 (list root
230 (if current-prefix-arg
231 (completing-read
232 "Type: "
233 (append
234 '("misc" "pdf" "ps")
235 (let (res)
236 (dolist (i '("emacs" "elisp" "eintr") res)
237 (dolist (j '("" "-mono" "-node" "-ps" "-pdf"))
238 (push (concat i j) res))))
239 (manual-misc-manuals root)))))))
186 (let* ((dest (expand-file-name "manual" root)) 240 (let* ((dest (expand-file-name "manual" root))
187 (html-node-dir (expand-file-name "html_node" dest)) 241 (html-node-dir (expand-file-name "html_node" dest))
188 (html-mono-dir (expand-file-name "html_mono" dest)) 242 (html-mono-dir (expand-file-name "html_mono" dest))
189 (txt-dir (expand-file-name "text" dest)) 243 (ps-dir (expand-file-name "ps" dest))
190 (dvi-dir (expand-file-name "dvi" dest)) 244 (pdf-dir (expand-file-name "pdf" dest))
191 (ps-dir (expand-file-name "ps" dest))) 245 (emacs (expand-file-name "doc/emacs/emacs.texi" root))
246 (elisp (expand-file-name "doc/lispref/elisp.texi" root))
247 (eintr (expand-file-name "doc/lispintro/emacs-lisp-intro.texi" root))
248 (misc (manual-misc-manuals root)))
249 ;; TODO this makes it non-continuable.
250 ;; Instead, delete the individual dest directory each time.
192 (when (file-directory-p dest) 251 (when (file-directory-p dest)
193 (if (y-or-n-p (format "Directory %s exists, delete it first?" dest)) 252 (if (y-or-n-p (format "Directory %s exists, delete it first? " dest))
194 (delete-directory dest t) 253 (delete-directory dest t)
195 (error "Aborted"))) 254 (user-error "Aborted")))
196 (make-directory dest) 255 (if (member type '(nil "emacs" "emacs-node"))
197 (make-directory html-node-dir) 256 (manual-html-node emacs (expand-file-name "emacs" html-node-dir)))
198 (make-directory html-mono-dir) 257 (if (member type '(nil "emacs" "emacs-mono"))
199 (make-directory txt-dir) 258 (manual-html-mono emacs (expand-file-name "emacs.html" html-mono-dir)))
200 (make-directory dvi-dir) 259 (if (member type '(nil "emacs" "emacs-pdf" "pdf"))
201 (make-directory ps-dir) 260 (manual-pdf emacs (expand-file-name "emacs.pdf" pdf-dir)))
202 ;; Emacs manual 261 (if (member type '(nil "emacs" "emacs-ps" "ps"))
203 (let ((texi (expand-file-name "doc/emacs/emacs.texi" root))) 262 (manual-ps emacs (expand-file-name "emacs.ps" ps-dir)))
204 (manual-html-node texi (expand-file-name "emacs" html-node-dir)) 263 (if (member type '(nil "elisp" "elisp-node"))
205 (manual-html-mono texi (expand-file-name "emacs.html" html-mono-dir)) 264 (manual-html-node elisp (expand-file-name "elisp" html-node-dir)))
206 (manual-txt texi (expand-file-name "emacs.txt" txt-dir)) 265 (if (member type '(nil "elisp" "elisp-mono"))
207 (manual-pdf texi (expand-file-name "emacs.pdf" dest)) 266 (manual-html-mono elisp (expand-file-name "elisp.html" html-mono-dir)))
208 (manual-dvi texi (expand-file-name "emacs.dvi" dvi-dir) 267 (if (member type '(nil "elisp" "elisp-pdf" "pdf"))
209 (expand-file-name "emacs.ps" ps-dir))) 268 (manual-pdf elisp (expand-file-name "elisp.pdf" pdf-dir)))
210 ;; Lisp manual 269 (if (member type '(nil "elisp" "elisp-ps" "ps"))
211 (let ((texi (expand-file-name "doc/lispref/elisp.texi" root))) 270 (manual-ps elisp (expand-file-name "elisp.ps" ps-dir)))
212 (manual-html-node texi (expand-file-name "elisp" html-node-dir)) 271 (if (member type '(nil "eintr" "eintr-node"))
213 (manual-html-mono texi (expand-file-name "elisp.html" html-mono-dir)) 272 (manual-html-node eintr (expand-file-name "eintr" html-node-dir)))
214 (manual-txt texi (expand-file-name "elisp.txt" txt-dir)) 273 (if (member type '(nil "eintr" "eintr-node"))
215 (manual-pdf texi (expand-file-name "elisp.pdf" dest)) 274 (manual-html-mono eintr (expand-file-name "eintr.html" html-mono-dir)))
216 (manual-dvi texi (expand-file-name "elisp.dvi" dvi-dir) 275 (if (member type '(nil "eintr" "eintr-pdf" "pdf"))
217 (expand-file-name "elisp.ps" ps-dir))) 276 (manual-pdf eintr (expand-file-name "eintr.pdf" pdf-dir)))
277 (if (member type '(nil "eintr" "eintr-ps" "ps"))
278 (manual-ps eintr (expand-file-name "eintr.ps" ps-dir)))
218 ;; Misc manuals 279 ;; Misc manuals
219 (let ((manuals '("ada-mode" "auth" "autotype" "calc" "cc-mode" 280 (dolist (manual misc)
220 "cl" "dbus" "dired-x" "ebrowse" "ede" "ediff" 281 (if (member type `(nil ,manual "misc"))
221 "edt" "eieio" "emacs-mime" "epa" "erc" "ert" 282 (manual-misc-html manual root html-node-dir html-mono-dir)))
222 "eshell" "eudc" "faq" "flymake" "forms"
223 "gnus" "emacs-gnutls" "idlwave" "info"
224 "mairix-el" "message" "mh-e" "newsticker"
225 "nxml-mode" "org" "pcl-cvs" "pgg" "rcirc"
226 "remember" "reftex" "sasl" "sc" "semantic"
227 "ses" "sieve" "smtpmail" "speedbar" "tramp"
228 "url" "vip" "viper" "widget" "woman")))
229 (dolist (manual manuals)
230 (manual-misc-html manual root html-node-dir html-mono-dir)))
231 (message "Manuals created in %s" dest))) 283 (message "Manuals created in %s" dest)))
232 284
233(defconst manual-doctype-string 285(defconst manual-doctype-string
@@ -242,10 +294,14 @@ Root must be the root of an Emacs source tree."
242<meta name=\"DC.title\" content=\"gnu.org\">\n\n") 294<meta name=\"DC.title\" content=\"gnu.org\">\n\n")
243 295
244(defconst manual-style-string "<style type=\"text/css\"> 296(defconst manual-style-string "<style type=\"text/css\">
245@import url('/style.css');\n</style>\n") 297@import url('/software/emacs/manual.css');\n</style>\n")
246 298
247(defun manual-misc-html (name root html-node-dir html-mono-dir) 299(defun manual-misc-html (name root html-node-dir html-mono-dir)
248 (let ((texi (expand-file-name (format "doc/misc/%s.texi" name) root))) 300 ;; Hack to deal with the cases where .texi creates a different .info.
301 ;; Blech. TODO Why not just rename the .texi (or .info) files?
302 (let* ((texiname (cond ((equal name "ccmode") "cc-mode")
303 (t name)))
304 (texi (expand-file-name (format "doc/misc/%s.texi" texiname) root)))
249 (manual-html-node texi (expand-file-name name html-node-dir)) 305 (manual-html-node texi (expand-file-name name html-node-dir))
250 (manual-html-mono texi (expand-file-name (concat name ".html") 306 (manual-html-mono texi (expand-file-name (concat name ".html")
251 html-mono-dir)))) 307 html-mono-dir))))
@@ -255,7 +311,13 @@ Root must be the root of an Emacs source tree."
255This function also edits the HTML files so that they validate as 311This function also edits the HTML files so that they validate as
256HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using 312HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
257the @import directive." 313the @import directive."
314 (make-directory (or (file-name-directory dest) ".") t)
258 (call-process "makeinfo" nil nil nil 315 (call-process "makeinfo" nil nil nil
316 "-D" "WWW_GNU_ORG"
317 "-I" (expand-file-name "../emacs"
318 (file-name-directory texi-file))
319 "-I" (expand-file-name "../misc"
320 (file-name-directory texi-file))
259 "--html" "--no-split" texi-file "-o" dest) 321 "--html" "--no-split" texi-file "-o" dest)
260 (with-temp-buffer 322 (with-temp-buffer
261 (insert-file-contents dest) 323 (insert-file-contents dest)
@@ -266,6 +328,7 @@ the @import directive."
266 (manual-html-fix-node-div) 328 (manual-html-fix-node-div)
267 (goto-char (point-max)) 329 (goto-char (point-max))
268 (re-search-backward "</body>[\n \t]*</html>") 330 (re-search-backward "</body>[\n \t]*</html>")
331 ;; Close the div id="content" that fix-index-1 added.
269 (insert "</div>\n\n") 332 (insert "</div>\n\n")
270 (save-buffer))) 333 (save-buffer)))
271 334
@@ -275,8 +338,14 @@ This function also edits the HTML files so that they validate as
275HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using 338HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using
276the @import directive." 339the @import directive."
277 (unless (file-exists-p texi-file) 340 (unless (file-exists-p texi-file)
278 (error "Manual file %s not found" texi-file)) 341 (user-error "Manual file %s not found" texi-file))
342 (make-directory dir t)
279 (call-process "makeinfo" nil nil nil 343 (call-process "makeinfo" nil nil nil
344 "-D" "WWW_GNU_ORG"
345 "-I" (expand-file-name "../emacs"
346 (file-name-directory texi-file))
347 "-I" (expand-file-name "../misc"
348 (file-name-directory texi-file))
280 "--html" texi-file "-o" dir) 349 "--html" texi-file "-o" dir)
281 ;; Loop through the node files, fixing them up. 350 ;; Loop through the node files, fixing them up.
282 (dolist (f (directory-files dir nil "\\.html\\'")) 351 (dolist (f (directory-files dir nil "\\.html\\'"))
@@ -300,143 +369,244 @@ the @import directive."
300 (manual-html-fix-index-2) 369 (manual-html-fix-index-2)
301 (if copyright-text 370 (if copyright-text
302 (insert copyright-text)) 371 (insert copyright-text))
372 ;; Close the div id="content" that fix-index-1 added.
303 (insert "\n</div>\n")) 373 (insert "\n</div>\n"))
304 ;; For normal nodes, give the header div a blue bg. 374 ;; For normal nodes, give the header div a blue bg.
305 (manual-html-fix-node-div)) 375 (manual-html-fix-node-div t))
306 (save-buffer)))))) 376 (save-buffer))))))
307 377
308(defun manual-txt (texi-file dest)
309 "Run Makeinfo on TEXI-FILE, emitting plaintext output to DEST."
310 (call-process "makeinfo" nil nil nil
311 "--plaintext" "--no-split" texi-file "-o" dest)
312 (shell-command (concat "gzip -c " dest " > " (concat dest ".gz"))))
313
314(defun manual-pdf (texi-file dest) 378(defun manual-pdf (texi-file dest)
315 "Run texi2pdf on TEXI-FILE, emitting plaintext output to DEST." 379 "Run texi2pdf on TEXI-FILE, emitting PDF output to DEST."
316 (call-process "texi2pdf" nil nil nil texi-file "-o" dest)) 380 (make-directory (or (file-name-directory dest) ".") t)
317 381 (let ((default-directory (file-name-directory texi-file)))
318(defun manual-dvi (texi-file dest ps-dest) 382 (call-process "texi2pdf" nil nil nil
319 "Run texi2dvi on TEXI-FILE, emitting dvi output to DEST. 383 "-I" "../emacs" "-I" "../misc"
320Also generate PostScript output in PS-DEST." 384 texi-file "-o" dest)))
321 (call-process "texi2dvi" nil nil nil texi-file "-o" dest) 385
322 (call-process "dvips" nil nil nil dest "-o" ps-dest) 386(defun manual-ps (texi-file dest)
323 (call-process "gzip" nil nil nil dest) 387 "Generate a PostScript version of TEXI-FILE as DEST."
324 (call-process "gzip" nil nil nil ps-dest)) 388 (make-directory (or (file-name-directory dest) ".") t)
389 (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi"))
390 (default-directory (file-name-directory texi-file)))
391 ;; FIXME: Use `texi2dvi --ps'? --xfq
392 (call-process "texi2dvi" nil nil nil
393 "-I" "../emacs" "-I" "../misc"
394 texi-file "-o" dvi-dest)
395 (call-process "dvips" nil nil nil dvi-dest "-o" dest)
396 (delete-file dvi-dest)
397 (call-process "gzip" nil nil nil dest)))
325 398
326(defun manual-html-fix-headers () 399(defun manual-html-fix-headers ()
327 "Fix up HTML headers for the Emacs manual in the current buffer." 400 "Fix up HTML headers for the Emacs manual in the current buffer."
328 (let (opoint) 401 (let ((texi5 (search-forward "<!DOCTYPE" nil t))
329 (insert manual-doctype-string) 402 opoint)
403 ;; Texinfo 5 supplies a DOCTYPE.
404 (or texi5
405 (insert manual-doctype-string))
330 (search-forward "<head>\n") 406 (search-forward "<head>\n")
331 (insert manual-meta-string) 407 (insert manual-meta-string)
332 (search-forward "<meta") 408 (search-forward "<meta")
333 (setq opoint (match-beginning 0)) 409 (setq opoint (match-beginning 0))
334 (re-search-forward "<!--") 410 (unless texi5
411 (search-forward "<!--")
412 (goto-char (match-beginning 0))
413 (delete-region opoint (point))
414 (search-forward "<meta http-equiv=\"Content-Style")
415 (setq opoint (match-beginning 0)))
416 (search-forward "</head>")
335 (goto-char (match-beginning 0)) 417 (goto-char (match-beginning 0))
336 (delete-region opoint (point)) 418 (delete-region opoint (point))
337 (insert manual-style-string) 419 (insert manual-style-string)
338 (search-forward "<meta http-equiv=\"Content-Style") 420 ;; Remove Texinfo 5 hard-coding bgcolor, text, link, vlink, alink.
339 (setq opoint (match-beginning 0)) 421 (when (re-search-forward "<body lang=\"[^\"]+\"" nil t)
340 (search-forward "</head>") 422 (setq opoint (point))
341 (delete-region opoint (match-beginning 0)))) 423 (search-forward ">")
424 (if (> (point) (1+ opoint))
425 (delete-region opoint (1- (point))))
426 (search-backward "</head"))))
342 427
343(defun manual-html-fix-node-div () 428;; Texinfo 5 changed these from class = "node" to "header", yay.
429(defun manual-html-fix-node-div (&optional split)
344 "Fix up HTML \"node\" divs in the current buffer." 430 "Fix up HTML \"node\" divs in the current buffer."
345 (let (opoint div-end) 431 (let (opoint div-end type)
346 (while (search-forward "<div class=\"node\">" nil t) 432 (while (re-search-forward "<div class=\"\\(node\\|header\\)\"\\(>\\)" nil t)
347 (replace-match 433 (setq type (match-string 1))
348 "<div class=\"node\" style=\"background-color:#DDDDFF\">" 434 ;; NB it is this that makes the bg of non-header cells in the
349 t t) 435 ;; index tables be blue. Is that intended?
436 ;; Also, if you don't remove the <hr>, the color of the first
437 ;; row in the table will be wrong.
438 ;; This all seems rather odd to me...
439 (replace-match " style=\"background-color:#DDDDFF\">" t t nil 2)
350 (setq opoint (point)) 440 (setq opoint (point))
351 (re-search-forward "</div>") 441 (when (or split (equal type "node"))
352 (setq div-end (match-beginning 0)) 442 ;; In Texinfo 4, the <hr> (and anchor) comes after the <div>.
353 (goto-char opoint) 443 (re-search-forward "</div>")
354 (if (search-forward "<hr>" div-end 'move) 444 (setq div-end (if (equal type "node")
355 (replace-match "" t t))))) 445 (match-beginning 0)
446 (line-end-position 2)))
447 (goto-char opoint)
448 (if (search-forward "<hr>" div-end 'move)
449 (replace-match "" t t)
450 (if split (forward-line -1))))
451 ;; In Texinfo 5, the <hr> (and anchor) comes before the <div> (?).
452 ;; Except in split output, where it comes on the line after
453 ;; the <div>. But only sometimes. I have no clue what the
454 ;; logic of where it goes is.
455 (when (equal type "header")
456 (goto-char opoint)
457 (when (re-search-backward "^<hr>$" (line-beginning-position -3) t)
458 (replace-match "")
459 (goto-char opoint))))))
460
356 461
357(defun manual-html-fix-index-1 () 462(defun manual-html-fix-index-1 ()
463 "Remove the h1 header, and the short and long contents lists.
464Also start a \"content\" div."
358 (let (opoint) 465 (let (opoint)
359 (re-search-forward "<body>\n") 466 (re-search-forward "<body.*>\n")
360 (setq opoint (match-end 0)) 467 (setq opoint (match-end 0))
361 (search-forward "<h2 class=\"") 468 ;; FIXME? Fragile if a Texinfo 5 document does not use @top.
469 (or (re-search-forward "<h1 class=\"top\"" nil t) ; Texinfo 5
470 (search-forward "<h2 class=\""))
362 (goto-char (match-beginning 0)) 471 (goto-char (match-beginning 0))
363 (delete-region opoint (point)) 472 (delete-region opoint (point))
473 ;; NB caller must close this div.
364 (insert "<div id=\"content\" class=\"inner\">\n\n"))) 474 (insert "<div id=\"content\" class=\"inner\">\n\n")))
365 475
366(defun manual-html-fix-index-2 (&optional table-workaround) 476(defun manual-html-fix-index-2 (&optional table-workaround)
367 "Replace the index list in the current buffer with a HTML table." 477 "Replace the index list in the current buffer with a HTML table.
368 (let (done open-td tag desc) 478Leave point after the table."
369 ;; Convert the list that Makeinfo made into a table. 479 (if (re-search-forward "<table class=\"menu\"\\(.*\\)>" nil t)
370 (or (search-forward "<ul class=\"menu\">" nil t) 480 ;; Texinfo 5 already uses a table. Tweak it a bit.
371 (search-forward "<ul>")) 481 (let (opoint done)
372 (replace-match "<table style=\"float:left\" width=\"100%\">") 482 (replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1)
373 (forward-line 1) 483 (forward-line 1)
374 (while (not done) 484 (while (not done)
375 (cond 485 (cond ((re-search-forward "<tr><td.*&bull; \\(<a.*</a>\\)\
376 ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$") 486:</td><td>&nbsp;&nbsp;</td><td[^>]*>\\(.*\\)" (line-end-position) t)
377 (looking-at "<li>\\(<a.+</a>\\)$")) 487 (replace-match (format "<tr><td%s>\\1</td>\n<td>\\2"
378 (setq tag (match-string 1)) 488 (if table-workaround
379 (setq desc (match-string 2)) 489 " bgcolor=\"white\"" "")))
380 (replace-match "" t t) 490 (search-forward "</td></tr>")
381 (when open-td 491 (forward-line 1))
382 (save-excursion 492 ((looking-at "<tr><th.*<pre class=\"menu-comment\">\n")
383 (forward-char -1) 493 (replace-match "<tr><th colspan=\"2\" align=\"left\" \
384 (skip-chars-backward " ") 494style=\"text-align:left\">")
385 (delete-region (point) (line-end-position)) 495 (search-forward "</pre></th></tr>")
386 (insert "</td>\n </tr>"))) 496 (replace-match "</th></tr>\n"))
387 (insert " <tr>\n ") 497 ;; Not all manuals have the detailed menu.
388 (if table-workaround 498 ;; If it is there, split it into a separate table.
389 ;; This works around a Firefox bug in the mono file. 499 ((re-search-forward "<tr>.*The Detailed Node Listing *"
390 (insert "<td bgcolor=\"white\">") 500 (line-end-position) t)
391 (insert "<td>")) 501 (setq opoint (match-beginning 0))
392 (insert tag "</td>\n <td>" (or desc "")) 502 (while (and (looking-at " *&mdash;")
393 (setq open-td t)) 503 (zerop (forward-line 1))))
394 ((eq (char-after) ?\n) 504 (delete-region opoint (point))
395 (delete-char 1) 505 (insert "</table>\n\n\
396 ;; Negate the following `forward-line'. 506<h2>Detailed Node Listing</h2>\n\n<p>")
397 (forward-line -1)) 507 ;; FIXME Fragile!
398 ((looking-at "<!-- ") 508 ;; The Emacs and Elisp manual have some text at the
399 (search-forward "-->")) 509 ;; start of the detailed menu that is not part of the menu.
400 ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*") 510 ;; Other manuals do not.
401 (replace-match " </td></tr></table>\n 511 (if (re-search-forward "in one step:" (line-end-position 3) t)
512 (forward-line 1))
513 (insert "</p>\n")
514 (search-forward "</pre></th></tr>")
515 (delete-region (match-beginning 0) (match-end 0))
516 (forward-line -1)
517 (or (looking-at "^$") (error "Parse error 1"))
518 (forward-line -1)
519 (if (looking-at "^$") (error "Parse error 2"))
520 (forward-line -1)
521 (or (looking-at "^$") (error "Parse error 3"))
522 (forward-line 1)
523 (insert "<table class=\"menu\" style=\"float:left\" width=\"100%\">\n\
524<tr><th colspan=\"2\" align=\"left\" style=\"text-align:left\">\n")
525 (forward-line 1)
526 (insert "</th></tr>")
527 (forward-line 1))
528 ((looking-at ".*</table")
529 (forward-line 1)
530 (setq done t)))))
531 (let (done open-td tag desc)
532 ;; Convert the list that Makeinfo made into a table.
533 (or (search-forward "<ul class=\"menu\">" nil t)
534 ;; FIXME? The following search seems dangerously lax.
535 (search-forward "<ul>"))
536 (replace-match "<table style=\"float:left\" width=\"100%\">")
537 (forward-line 1)
538 (while (not done)
539 (cond
540 ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$")
541 (looking-at "<li>\\(<a.+</a>\\)$"))
542 (setq tag (match-string 1))
543 (setq desc (match-string 2))
544 (replace-match "" t t)
545 (when open-td
546 (save-excursion
547 (forward-char -1)
548 (skip-chars-backward " ")
549 (delete-region (point) (line-end-position))
550 (insert "</td>\n </tr>")))
551 (insert " <tr>\n ")
552 (if table-workaround
553 ;; This works around a Firefox bug in the mono file.
554 (insert "<td bgcolor=\"white\">")
555 (insert "<td>"))
556 (insert tag "</td>\n <td>" (or desc ""))
557 (setq open-td t))
558 ((eq (char-after) ?\n)
559 (delete-char 1)
560 ;; Negate the following `forward-line'.
561 (forward-line -1))
562 ((looking-at "<!-- ")
563 (search-forward "-->"))
564 ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*")
565 (replace-match " </td></tr></table>\n
402<h3>Detailed Node Listing</h3>\n\n" t t) 566<h3>Detailed Node Listing</h3>\n\n" t t)
403 (search-forward "<p>") 567 (search-forward "<p>")
404 (search-forward "<p>" nil t) 568 ;; FIXME Fragile!
405 (goto-char (match-beginning 0)) 569 ;; The Emacs and Elisp manual have some text at the
406 (skip-chars-backward "\n ") 570 ;; start of the detailed menu that is not part of the menu.
407 (setq open-td nil) 571 ;; Other manuals do not.
408 (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">")) 572 (if (looking-at "Here are some other nodes")
409 ((looking-at "</li></ul>") 573 (search-forward "<p>"))
410 (replace-match "" t t)) 574 (goto-char (match-beginning 0))
411 ((looking-at "<p>") 575 (skip-chars-backward "\n ")
412 (replace-match "" t t) 576 (setq open-td nil)
413 (when open-td 577 (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">"))
414 (insert " </td></tr>") 578 ((looking-at "</li></ul>")
415 (setq open-td nil)) 579 (replace-match "" t t))
416 (insert " <tr> 580 ((looking-at "<p>")
581 (replace-match "" t t)
582 (when open-td
583 (insert " </td></tr>")
584 (setq open-td nil))
585 (insert " <tr>
417 <th colspan=\"2\" align=\"left\" style=\"text-align:left\">") 586 <th colspan=\"2\" align=\"left\" style=\"text-align:left\">")
418 (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t) 587 (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t)
419 (replace-match " </th></tr>"))) 588 (replace-match " </th></tr>")))
420 ((looking-at "[ \t]*</ul>[ \t]*$") 589 ((looking-at "[ \t]*</ul>[ \t]*$")
421 (replace-match 590 (replace-match
422 (if open-td 591 (if open-td
423 " </td></tr>\n</table>" 592 " </td></tr>\n</table>"
424 "</table>") t t) 593 "</table>") t t)
425 (setq done t)) 594 (setq done t))
426 (t 595 (t
427 (if (eobp) 596 (if (eobp)
428 (error "Parse error in %s" f)) ; f is bound in manual-html-node 597 (error "Parse error in %s"
429 (unless open-td 598 (file-name-nondirectory buffer-file-name)))
430 (setq done t)))) 599 (unless open-td
431 (forward-line 1)))) 600 (setq done t))))
601 (forward-line 1)))))
432 602
433 603
434;; Stuff to check new defcustoms got :version tags. 604;; Stuff to check new `defcustom's got :version tags.
435;; Adapted from check-declare.el. 605;; Adapted from check-declare.el.
436 606
437(defun cusver-find-files (root &optional old) 607(defun cusver-find-files (root &optional old)
438 "Find .el files beneath directory ROOT that contain defcustoms. 608 "Find .el files beneath directory ROOT that contain `defcustom's.
439If optional OLD is non-nil, also include defvars." 609If optional OLD is non-nil, also include `defvar's."
440 (process-lines find-program root 610 (process-lines find-program root
441 "-name" "*.el" 611 "-name" "*.el"
442 "-exec" grep-program 612 "-exec" grep-program
@@ -448,14 +618,14 @@ If optional OLD is non-nil, also include defvars."
448 618
449(defvar cusver-new-version (format "%s.%s" emacs-major-version 619(defvar cusver-new-version (format "%s.%s" emacs-major-version
450 (1+ emacs-minor-version)) 620 (1+ emacs-minor-version))
451 "Version number that new defcustoms should have.") 621 "Version number that new `defcustom's should have.")
452 622
453(defun cusver-scan (file &optional old) 623(defun cusver-scan (file &optional old)
454 "Scan FILE for `defcustom' calls. 624 "Scan FILE for `defcustom' calls.
455Return a list with elements of the form (VAR . VER), 625Return a list with elements of the form (VAR . VER),
456This means that FILE contains a defcustom for variable VAR, with 626This means that FILE contains a defcustom for variable VAR, with
457a :version tag having value VER (may be nil). 627a :version tag having value VER (may be nil).
458If optional argument OLD is non-nil, also scan for defvars." 628If optional argument OLD is non-nil, also scan for `defvar's."
459 (let ((m (format "Scanning %s..." file)) 629 (let ((m (format "Scanning %s..." file))
460 (re (format "^[ \t]*\\((def%s\\)[ \t\n]" 630 (re (format "^[ \t]*\\((def%s\\)[ \t\n]"
461 (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) 631 (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)")))
@@ -464,13 +634,19 @@ If optional argument OLD is non-nil, also scan for defvars."
464 (with-temp-buffer 634 (with-temp-buffer
465 (insert-file-contents file) 635 (insert-file-contents file)
466 ;; FIXME we could theoretically be inside a string. 636 ;; FIXME we could theoretically be inside a string.
467 (while (re-search-forward re nil t) 637 (while (re-search-forward re nil :noerror)
468 (goto-char (match-beginning 1)) 638 (goto-char (match-beginning 1))
469 (if (and (setq form (ignore-errors (read (current-buffer)))) 639 (if (and (setq form (ignore-errors (read (current-buffer))))
470 (setq var (car-safe (cdr-safe form))) 640 (setq var (car-safe (cdr-safe form)))
471 ;; Exclude macros, eg (defcustom ,varname ...). 641 ;; Exclude macros, eg (defcustom ,varname ...).
472 (symbolp var)) 642 (symbolp var))
473 (progn 643 (progn
644 ;; FIXME It should be cus-test-apropos that does this.
645 (and (not old)
646 (equal "custom" (match-string 2))
647 (not (memq :type form))
648 (display-warning 'custom
649 (format "Missing type in: `%s'" form)))
474 (setq ver (car (cdr-safe (memq :version form)))) 650 (setq ver (car (cdr-safe (memq :version form))))
475 (if (equal "group" (match-string 2)) 651 (if (equal "group" (match-string 2))
476 ;; Group :version could be old. 652 ;; Group :version could be old.
@@ -506,7 +682,7 @@ If optional argument OLD is non-nil, also scan for defvars."
506(define-button-type 'cusver-xref 'action #'cusver-goto-xref) 682(define-button-type 'cusver-xref 'action #'cusver-goto-xref)
507 683
508(defun cusver-goto-xref (button) 684(defun cusver-goto-xref (button)
509 "Jump to a lisp file for the BUTTON at point." 685 "Jump to a Lisp file for the BUTTON at point."
510 (let ((file (button-get button 'file)) 686 (let ((file (button-get button 'file))
511 (var (button-get button 'var))) 687 (var (button-get button 'var)))
512 (if (not (file-readable-p file)) 688 (if (not (file-readable-p file))
@@ -522,34 +698,36 @@ If optional argument OLD is non-nil, also scan for defvars."
522;; TODO Check cus-start if something moved from C to Lisp. 698;; TODO Check cus-start if something moved from C to Lisp.
523;; TODO Handle renamed things with aliases to the old names. 699;; TODO Handle renamed things with aliases to the old names.
524(defun cusver-check (newdir olddir version) 700(defun cusver-check (newdir olddir version)
525 "Check that defcustoms have :version tags where needed. 701 "Check that `defcustom's have :version tags where needed.
526NEWDIR is the current lisp/ directory, OLDDIR is that from the previous 702NEWDIR is the current lisp/ directory, OLDDIR is that from the
527release. A defcustom that is only in NEWDIR should have a :version 703previous release, VERSION is the new version number. A
528tag. We exclude cases where a defvar exists in OLDDIR, since 704`defcustom' that is only in NEWDIR should have a :version tag.
529just converting a defvar to a defcustom does not require a :version bump. 705We exclude cases where a `defvar' exists in OLDDIR, since just
706converting a `defvar' to a `defcustom' does not require
707a :version bump.
530 708
531Note that a :version tag should also be added if the value of a defcustom 709Note that a :version tag should also be added if the value of a defcustom
532changes (in a non-trivial way). This function does not check for that." 710changes (in a non-trivial way). This function does not check for that."
533 (interactive (list (read-directory-name "New Lisp directory: ") 711 (interactive (list (read-directory-name "New Lisp directory: " nil nil t)
534 (read-directory-name "Old Lisp directory: ") 712 (read-directory-name "Old Lisp directory: " nil nil t)
535 (number-to-string 713 (number-to-string
536 (read-number "New version number: " 714 (read-number "New version number: "
537 (string-to-number cusver-new-version))))) 715 (string-to-number cusver-new-version)))))
538 (or (file-directory-p (setq newdir (expand-file-name newdir))) 716 (or (file-directory-p (setq newdir (expand-file-name newdir)))
539 (error "Directory `%s' not found" newdir)) 717 (user-error "Directory `%s' not found" newdir))
540 (or (file-directory-p (setq olddir (expand-file-name olddir))) 718 (or (file-directory-p (setq olddir (expand-file-name olddir)))
541 (error "Directory `%s' not found" olddir)) 719 (user-error "Directory `%s' not found" olddir))
542 (setq cusver-new-version version) 720 (setq cusver-new-version version)
543 (let* ((newfiles (progn (message "Finding new files with defcustoms...") 721 (let* ((newfiles (progn (message "Finding new files with `defcustom's...")
544 (cusver-find-files newdir))) 722 (cusver-find-files newdir)))
545 (oldfiles (progn (message "Finding old files with defcustoms...") 723 (oldfiles (progn (message "Finding old files with `defcustom's...")
546 (cusver-find-files olddir t))) 724 (cusver-find-files olddir t)))
547 (newcus (progn (message "Reading new defcustoms...") 725 (newcus (progn (message "Reading new `defcustom's...")
548 (mapcar 726 (mapcar
549 (lambda (file) 727 (lambda (file)
550 (cons file (cusver-scan file))) newfiles))) 728 (cons file (cusver-scan file))) newfiles)))
551 oldcus result thisfile file) 729 oldcus result thisfile file)
552 (message "Reading old defcustoms...") 730 (message "Reading old `defcustom's...")
553 (dolist (file oldfiles) 731 (dolist (file oldfiles)
554 (setq oldcus (append oldcus (cusver-scan file t)))) 732 (setq oldcus (append oldcus (cusver-scan file t))))
555 (setq oldcus (append oldcus (cusver-scan-cus-start 733 (setq oldcus (append oldcus (cusver-scan-cus-start
@@ -574,7 +752,7 @@ changes (in a non-trivial way). This function does not check for that."
574 (message "No missing :version tags") 752 (message "No missing :version tags")
575 (pop-to-buffer "*cusver*") 753 (pop-to-buffer "*cusver*")
576 (erase-buffer) 754 (erase-buffer)
577 (insert "These defcustoms might be missing :version tags:\n\n") 755 (insert "These `defcustom's might be missing :version tags:\n\n")
578 (dolist (elem result) 756 (dolist (elem result)
579 (let* ((str (file-relative-name (car elem) newdir)) 757 (let* ((str (file-relative-name (car elem) newdir))
580 (strlen (length str))) 758 (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 b95c96d77ef..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
@@ -50,7 +50,7 @@ The list returned is sorted by oldest-first."
50 (call-process "bzr" nil t nil "status" "-v") 50 (call-process "bzr" nil t nil "status" "-v")
51 (goto-char (point-min)) 51 (goto-char (point-min))
52 (when (re-search-forward "^conflicts:\n" nil t) 52 (when (re-search-forward "^conflicts:\n" nil t)
53 (error "You still have unresolved conflicts")) 53 (user-error "You still have unresolved conflicts"))
54 (let ((merges ()) 54 (let ((merges ())
55 found) 55 found)
56 (if (not (re-search-forward "^pending merges:\n" nil t)) 56 (if (not (re-search-forward "^pending merges:\n" nil t))
@@ -62,7 +62,7 @@ The list returned is sorted by oldest-first."
62 (setq found 62 (setq found
63 (not (equal "unknown" (match-string 1))))))) 63 (not (equal "unknown" (match-string 1)))))))
64 found) 64 found)
65 (error "You still have uncommitted changes")) 65 (user-error "You still have uncommitted changes"))
66 ;; This is really stupid, but it seems there's no easy way to figure 66 ;; This is really stupid, but it seems there's no easy way to figure
67 ;; out which revisions have been merged already. The only info I can 67 ;; out which revisions have been merged already. The only info I can
68 ;; find is the "pending merges" from "bzr status -v", which is not 68 ;; find is the "pending merges" from "bzr status -v", which is not
@@ -171,7 +171,7 @@ Type `y' to skip this revision,
171 (enable-local-eval nil)) 171 (enable-local-eval nil))
172 (find-file-noselect file)) 172 (find-file-noselect file))
173 (if (buffer-modified-p) 173 (if (buffer-modified-p)
174 (error "Unsaved changes in %s" (current-buffer))) 174 (user-error "Unsaved changes in %s" (current-buffer)))
175 (save-excursion 175 (save-excursion
176 (cond 176 (cond
177 ((derived-mode-p 'change-log-mode) 177 ((derived-mode-p 'change-log-mode)
@@ -320,10 +320,10 @@ Does not make other difference."
320 ;; bzrmerge-add-metadata does not work when there 320 ;; bzrmerge-add-metadata does not work when there
321 ;; are conflicts. 321 ;; are conflicts.
322 (display-warning 'bzrmerge "Resolve conflicts manually. 322 (display-warning 'bzrmerge "Resolve conflicts manually.
323¡BEWARE! Important metadata is kept in this Emacs session! 323BEWARE! Important metadata is kept in this Emacs session!
324Do not commit without re-running `M-x bzrmerge' first!" 324Do not commit without re-running `M-x bzrmerge' first!"
325 :warning bzrmerge-warning-buffer)) 325 :warning bzrmerge-warning-buffer))
326 (error "Resolve conflicts manually"))))) 326 (user-error "Resolve conflicts manually")))))
327 (cons merge skip))))) 327 (cons merge skip)))))
328 328
329(defun bzrmerge (from) 329(defun bzrmerge (from)
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 c93a14297f8..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>
@@ -30,11 +30,11 @@
30;; 30;;
31;; The basic tests can be run in batch mode. Invoke them with 31;; The basic tests can be run in batch mode. Invoke them with
32;; 32;;
33;; src/emacs -batch -l admin/cus-test.el -f cus-test-opts 33;; src/emacs -batch -l admin/cus-test.el -f cus-test-opts [all]
34;; 34;;
35;; src/emacs -batch -l admin/cus-test.el -f cus-test-deps 35;; src/emacs -batch -l admin/cus-test.el -f cus-test-deps
36;; 36;;
37;; src/emacs -batch -l admin/cus-test.el -f cus-test-libs 37;; src/emacs -batch -l admin/cus-test.el -f cus-test-libs [all]
38;; 38;;
39;; src/emacs -batch -l admin/cus-test.el -f cus-test-noloads 39;; src/emacs -batch -l admin/cus-test.el -f cus-test-noloads
40;; 40;;
@@ -87,43 +87,6 @@
87;; The command `cus-test-noloads' returns a list of variables which 87;; The command `cus-test-noloads' returns a list of variables which
88;; are somewhere declared as custom options, but not loaded by 88;; are somewhere declared as custom options, but not loaded by
89;; `custom-load-symbol'. 89;; `custom-load-symbol'.
90;;
91;; Some results from October 2002:
92;;
93;; 4523 options tested
94;; The following variables might have problems:
95;; ps-mule-font-info-database-default
96;; grep-tree-command
97;; grep-find-command
98;;
99;; 288 features required
100;; 10 files loaded
101;; The following load problems appeared:
102;; (killing x-win (file-error Cannot open load file x-win))
103;; Symbol faces has loaddefs as custom dependency
104;; (reftex-index-support reftex-vars (void-function reftex-set-dirty))
105;; (eshell-script em-script (void-variable eshell-directory-name))
106;; (pcomplete em-cmpl (void-function eshell-under-windows-p))
107;; (eshell-ext esh-ext (void-function eshell-under-windows-p))
108;; ...
109;;
110;; 422 libraries had no load errors
111;; The following load problems appeared:
112;; (eudc-export error 255)
113;; (ada-xref error 255)
114;; (ada-stmt error 255)
115;;
116;; The following options were not loaded by custom-load-symbol:
117;; edt-bottom-scroll-margin
118;; edt-keep-current-page-delimiter
119;; edt-top-scroll-margin
120;; edt-use-EDT-control-key-bindings
121;; edt-word-entities
122;; grep-find-use-xargs
123;; master-mode-hook
124;; outline-level
125;; outline-minor-mode-hook
126;; refill-mode-hook
127 90
128 91
129;;; Code: 92;;; Code:
@@ -136,24 +99,23 @@
136(defvar cus-test-skip-list nil 99(defvar cus-test-skip-list nil
137 "List of variables to disregard by `cus-test-apropos'.") 100 "List of variables to disregard by `cus-test-apropos'.")
138 101
139(defvar cus-test-libs-noloads nil 102(defvar cus-test-libs-noloads
140 "List of libraries not to load by `cus-test-load-libs'.") 103 ;; Loading dunnet in batch mode leads to a Dead end.
141 104 ;; blessmail writes a file.
142;; The file eudc-export.el loads libraries "bbdb" and "bbdb-com" which 105 ;; characters cannot be loaded twice ("Category `a' is already defined").
143;; are not part of GNU Emacs: (locate-library "bbdb") => nil 106 '("play/dunnet.el" "emulation/edt-mapper.el"
144;; We avoid the resulting errors from loading eudc-export.el: 107 "loadup.el" "mail/blessmail.el" "international/characters.el"
145(provide 'bbdb) 108 "cedet/ede/loaddefs.el" "cedet/semantic/loaddefs.el"
146(provide 'bbdb-com) 109 "net/tramp-loaddefs.el")
110 "List of files not to load by `cus-test-load-libs'.
111Names should be as they appear in loaddefs.el.")
147 112
148;; This avoids a hang of `cus-test-apropos' in 21.2. 113;; This avoids a hang of `cus-test-apropos' in 21.2.
149;; (add-to-list 'cus-test-skip-list 'sh-alias-alist) 114;; (add-to-list 'cus-test-skip-list 'sh-alias-alist)
150 115
151;; Loading dunnet in batch mode leads to a Dead end. 116(or noninteractive
152(let (noninteractive) (load "dunnet")) 117 ;; Never Viperize.
153(add-to-list 'cus-test-libs-noloads "dunnet") 118 (setq viper-mode nil))
154
155;; Never Viperize.
156(setq viper-mode nil)
157 119
158;; Don't create a file `save-place-file'. 120;; Don't create a file `save-place-file'.
159(eval-after-load "saveplace" 121(eval-after-load "saveplace"
@@ -225,6 +187,9 @@ The detected problematic options are stored in `cus-test-errors'."
225 (message "Cus Test running...%s %s" 187 (message "Cus Test running...%s %s"
226 (length cus-test-tested-variables) symbol) 188 (length cus-test-tested-variables) symbol)
227 (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.
228 (let* ((type (custom-variable-type symbol)) 193 (let* ((type (custom-variable-type symbol))
229 (conv (widget-convert type)) 194 (conv (widget-convert type))
230 (get (or (get symbol 'custom-get) 'default-value)) 195 (get (or (get symbol 'custom-get) 'default-value))
@@ -240,6 +205,8 @@ The detected problematic options are stored in `cus-test-errors'."
240 205
241 ;; Check the values 206 ;; Check the values
242 (mapc (lambda (value) 207 (mapc (lambda (value)
208 ;; TODO for booleans, check for values that can be
209 ;; evaluated and are not t or nil. Usually a bug.
243 (unless (widget-apply conv :match value) 210 (unless (widget-apply conv :match value)
244 (setq mismatch 'mismatch))) 211 (setq mismatch 'mismatch)))
245 values) 212 values)
@@ -270,17 +237,38 @@ The detected problematic options are stored in `cus-test-errors'."
270 (length cus-test-tested-variables)) 237 (length cus-test-tested-variables))
271 (cus-test-errors-display)) 238 (cus-test-errors-display))
272 239
273(defun cus-test-get-options (regexp) 240(defun cus-test-cus-load-groups (&optional cus-load)
274 "Return a list of custom options matching REGEXP." 241 "Return a list of current custom groups.
275 (let (found) 242If CUS-LOAD is non-nil, include groups from cus-load.el."
243 (append (mapcar 'cdr custom-current-group-alist)
244 (if cus-load
245 (with-temp-buffer
246 (insert-file-contents (locate-library "cus-load.el"))
247 (search-forward "(put '")
248 (beginning-of-line)
249 (let (res)
250 (while (and (looking-at "^(put '\\(\\S-+\\)")
251 (zerop (forward-line 1)))
252 (push (intern (match-string 1)) res))
253 res)))))
254
255(defun cus-test-get-options (regexp &optional group)
256 "Return a list of custom options matching REGEXP.
257If GROUP is non-nil, return groups rather than options.
258If GROUP is `cus-load', include groups listed in cus-loads as well as
259currently defined groups."
260 (let ((groups (if group (cus-test-cus-load-groups (eq group 'cus-load))))
261 found)
276 (mapatoms 262 (mapatoms
277 (lambda (symbol) 263 (lambda (symbol)
278 (and 264 (and
279 (or 265 (if group
280 ;; (user-variable-p symbol) 266 (memq symbol groups)
281 (get symbol 'standard-value) 267 (or
282 ;; (get symbol 'saved-value) 268 ;; (user-variable-p symbol)
283 (get symbol 'custom-type)) 269 (get symbol 'standard-value)
270 ;; (get symbol 'saved-value)
271 (get symbol 'custom-type)))
284 (string-match regexp (symbol-name symbol)) 272 (string-match regexp (symbol-name symbol))
285 (not (member symbol cus-test-skip-list)) 273 (not (member symbol cus-test-skip-list))
286 (push symbol found)))) 274 (push symbol found))))
@@ -302,49 +290,71 @@ The detected problematic options are stored in `cus-test-errors'."
302(defun cus-test-load-custom-loads () 290(defun cus-test-load-custom-loads ()
303 "Call `custom-load-symbol' on all atoms." 291 "Call `custom-load-symbol' on all atoms."
304 (interactive) 292 (interactive)
293 (if noninteractive (let (noninteractive) (require 'dunnet)))
305 (mapatoms 'custom-load-symbol) 294 (mapatoms 'custom-load-symbol)
306 (run-hooks 'cus-test-after-load-libs-hook)) 295 (run-hooks 'cus-test-after-load-libs-hook))
307 296
308(defun cus-test-load-libs () 297(defmacro cus-test-load-1 (&rest body)
298 `(progn
299 (setq cus-test-libs-errors nil
300 cus-test-libs-loaded nil)
301 ,@body
302 (message "%s libraries loaded successfully"
303 (length cus-test-libs-loaded))
304 (if (not cus-test-libs-errors)
305 (message "No load problems encountered")
306 (message "The following load problems appeared:")
307 (cus-test-message cus-test-libs-errors))
308 (run-hooks 'cus-test-after-load-libs-hook)))
309
310;; This is just cus-test-libs, but loading in the current Emacs process.
311(defun cus-test-load-libs (&optional more)
309 "Load the libraries with autoloads. 312 "Load the libraries with autoloads.
310Don't load libraries in `cus-test-libs-noloads'." 313Don't load libraries in `cus-test-libs-noloads'.
314If optional argument MORE is \"defcustom\", load all files with defcustoms.
315If it is \"all\", load all Lisp files."
311 (interactive) 316 (interactive)
312 (setq cus-test-libs-errors nil) 317 (cus-test-load-1
313 (setq cus-test-libs-loaded nil) 318 (let ((lispdir (file-name-directory (locate-library "loaddefs"))))
314 (mapc 319 (mapc
315 (lambda (file) 320 (lambda (file)
316 (condition-case alpha 321 (condition-case alpha
317 (unless (member file cus-test-libs-noloads) 322 (unless (member file cus-test-libs-noloads)
318 (load file) 323 (load (file-name-sans-extension (expand-file-name file lispdir)))
319 (push file cus-test-libs-loaded)) 324 (push file cus-test-libs-loaded))
320 (error 325 (error
321 (push (cons file alpha) cus-test-libs-errors) 326 (push (cons file alpha) cus-test-libs-errors)
322 (message "Error for %s: %s" file alpha)))) 327 (message "Error for %s: %s" file alpha))))
323 (cus-test-get-autoload-deps)) 328 (if more
324 (message "%s libraries loaded successfully" 329 (cus-test-get-lisp-files (equal more "all"))
325 (length cus-test-libs-loaded)) 330 (cus-test-get-autoload-deps))))))
326 (if (not cus-test-libs-errors)
327 (message "No load problems encountered")
328 (message "The following load problems appeared:")
329 (cus-test-message cus-test-libs-errors))
330 (run-hooks 'cus-test-after-load-libs-hook))
331 331
332(defun cus-test-get-autoload-deps () 332(defun cus-test-get-autoload-deps ()
333 "Return the list of libraries with autoloads." 333 "Return the list of files with autoloads."
334 (with-temp-buffer 334 (with-temp-buffer
335 (insert-file-contents (locate-library "loaddefs")) 335 (insert-file-contents (locate-library "loaddefs"))
336 ;; This is from `customize-option'. 336 (let (files)
337 (let (deps file) 337 (while (search-forward "\n;;; Generated autoloads from " nil t)
338 (while 338 (push (buffer-substring (match-end 0) (line-end-position)) files))
339 (search-forward "\n;;; Generated autoloads from " nil t) 339 files)))
340 (goto-char (match-end 0)) 340
341 (setq file (buffer-substring (point) 341(defun cus-test-get-lisp-files (&optional all)
342 (progn (end-of-line) (point)))) 342 "Return list of all Lisp files with defcustoms.
343 (setq file (file-name-nondirectory file)) 343Optional argument ALL non-nil means list all (non-obsolete) Lisp files."
344 (string-match "\\.el\\'" file) 344 (let ((default-directory (expand-file-name "lisp/" source-directory))
345 (setq file (substring file 0 (match-beginning 0))) 345 (msg "Finding files..."))
346 (setq deps (nconc deps (list file)))) 346 (message "%s" msg)
347 deps))) 347 (prog1
348 ;; Hack to remove leading "./".
349 (mapcar (lambda (e) (substring e 2))
350 (apply 'process-lines find-program
351 "-name" "obsolete" "-prune" "-o"
352 "-name" "[^.]*.el" ; ignore .dir-locals.el
353 (if all
354 '("-print")
355 (list "-exec" grep-program
356 "-l" "^[ \t]*(defcustom" "{}" "+"))))
357 (message "%sdone" msg))))
348 358
349(defun cus-test-message (list) 359(defun cus-test-message (list)
350 "Print the members of LIST line by line." 360 "Print the members of LIST line by line."
@@ -353,16 +363,21 @@ Don't load libraries in `cus-test-libs-noloads'."
353 363
354;;; The routines for batch mode: 364;;; The routines for batch mode:
355 365
356(defun cus-test-opts () 366(defun cus-test-opts (&optional all)
357 "Test custom options. 367 "Test custom options.
358This function is suitable for batch mode. E.g., invoke 368This function is suitable for batch mode. E.g., invoke
359 369
360 src/emacs -batch -l admin/cus-test.el -f cus-test-opts 370 src/emacs -batch -l admin/cus-test.el -f cus-test-opts
361 371
362in the Emacs source directory." 372in the Emacs source directory.
373Normally only tests options belonging to files in loaddefs.el.
374If optional argument ALL is non-nil, test all files with defcustoms."
363 (interactive) 375 (interactive)
376 (and noninteractive
377 command-line-args-left
378 (setq all (pop command-line-args-left)))
364 (message "Running %s" 'cus-test-load-libs) 379 (message "Running %s" 'cus-test-load-libs)
365 (cus-test-load-libs) 380 (cus-test-load-libs (if all "defcustom"))
366 (message "Running %s" 'cus-test-load-custom-loads) 381 (message "Running %s" 'cus-test-load-custom-loads)
367 (cus-test-load-custom-loads) 382 (cus-test-load-custom-loads)
368 (message "Running %s" 'cus-test-apropos) 383 (message "Running %s" 'cus-test-apropos)
@@ -392,7 +407,8 @@ in the Emacs source directory."
392 ((symbolp load) 407 ((symbolp load)
393 ;; (condition-case nil (require load) (error nil)) 408 ;; (condition-case nil (require load) (error nil))
394 (condition-case alpha 409 (condition-case alpha
395 (unless (featurep load) 410 (unless (or (featurep load)
411 (and noninteractive (eq load 'dunnet)))
396 (require load) 412 (require load)
397 (push (list symbol load) cus-test-deps-required)) 413 (push (list symbol load) cus-test-deps-required))
398 (error 414 (error
@@ -444,47 +460,54 @@ in the Emacs source directory."
444 (cus-test-message cus-test-deps-errors)) 460 (cus-test-message cus-test-deps-errors))
445 (run-hooks 'cus-test-after-load-libs-hook)) 461 (run-hooks 'cus-test-after-load-libs-hook))
446 462
447(defun cus-test-libs () 463(defun cus-test-libs (&optional more)
448 "Load the libraries with autoloads in separate processes. 464 "Load the libraries with autoloads in separate processes.
449This function is useful to detect load problems of libraries. 465This function is useful to detect load problems of libraries.
450It is suitable for batch mode. E.g., invoke 466It is suitable for batch mode. E.g., invoke
451 467
452 src/emacs -batch -l admin/cus-test.el -f cus-test-libs 468 ./src/emacs -batch -l admin/cus-test.el -f cus-test-libs
453 469
454in the Emacs source directory." 470in the Emacs source directory.
471
472If optional argument MORE is \"defcustom\", load all files with defcustoms.
473If it is \"all\", load all Lisp files."
455 (interactive) 474 (interactive)
456 (with-temp-buffer 475 (and noninteractive
457 (setq cus-test-libs-errors nil) 476 command-line-args-left
458 (setq cus-test-libs-loaded nil) 477 (setq more (pop command-line-args-left)))
459 (cd source-directory) 478 (cus-test-load-1
460 (if (not (file-executable-p "src/emacs")) 479 (let* ((default-directory source-directory)
461 (error "No Emacs executable in %ssrc" default-directory)) 480 (emacs (expand-file-name "src/emacs"))
462 (mapc 481 skipped)
463 (lambda (file) 482 (or (file-executable-p emacs)
464 (condition-case alpha 483 (error "No such executable `%s'" emacs))
465 (let (fn cmd status) 484 (mapc
466 (setq fn (locate-library file)) 485 (lambda (file)
467 (if (not fn) 486 (if (member file cus-test-libs-noloads)
468 (error "Library %s not found" file)) 487 (push file skipped)
469 (setq cmd (concat "src/emacs -batch -l " fn)) 488 (condition-case alpha
470 (setq status (call-process shell-file-name nil nil nil 489 (let* ((fn (expand-file-name file "lisp/"))
471 shell-command-switch cmd)) 490 (elc (concat fn "c"))
472 (if (equal status 0) 491 status)
473 (message "%s" file) 492 (if (file-readable-p elc) ; load compiled if present (faster)
474 (error "%s" status)) 493 (setq fn elc)
475 (push file cus-test-libs-loaded)) 494 (or (file-readable-p fn)
476 (error 495 (error "Library %s not found" file)))
477 (push (cons file alpha) cus-test-libs-errors) 496 (if (equal 0 (setq status (call-process emacs nil nil nil
478 (message "Error for %s: %s" file alpha)))) 497 "-batch" "-l" fn)))
479 (cus-test-get-autoload-deps)) 498 (message "%s" file)
480 (message "Default Directory: %s" default-directory) 499 (error "%s" status))
481 (message "%s libraries had no load errors" 500 (push file cus-test-libs-loaded))
482 (length cus-test-libs-loaded)) 501 (error
483 (if (not cus-test-libs-errors) 502 (push (cons file alpha) cus-test-libs-errors)
484 (message "No load problems encountered") 503 (message "Error for %s: %s" file alpha)))))
485 (message "The following load problems appeared:") 504 (if more
486 (cus-test-message cus-test-libs-errors)) 505 (cus-test-get-lisp-files (equal more "all"))
487 (run-hooks 'cus-test-after-load-libs-hook))) 506 (cus-test-get-autoload-deps)))
507 (message "Default directory: %s" default-directory)
508 (when skipped
509 (message "The following libraries were skipped:")
510 (cus-test-message skipped)))))
488 511
489(defun cus-test-noloads () 512(defun cus-test-noloads ()
490 "Find custom options not loaded by `custom-load-symbol'. 513 "Find custom options not loaded by `custom-load-symbol'.
@@ -495,17 +518,17 @@ It is suitable for batch mode. E.g., invoke
495 518
496in the Emacs source directory." 519in the Emacs source directory."
497 (interactive) 520 (interactive)
498 (let (cus-loaded) 521 (let ((groups-loaded (cus-test-get-options "" 'cus-load))
522 cus-loaded groups-not-loaded)
499 523
500 (message "Running %s" 'cus-test-load-custom-loads) 524 (message "Running %s" 'cus-test-load-custom-loads)
501 (cus-test-load-custom-loads) 525 (cus-test-load-custom-loads)
502 (setq cus-loaded 526 (setq cus-loaded (cus-test-get-options ""))
503 (cus-test-get-options ""))
504 527
505 (message "Running %s" 'cus-test-load-libs) 528 (message "Running %s" 'cus-test-load-libs)
506 (cus-test-load-libs) 529 (cus-test-load-libs "all")
507 (setq cus-test-vars-not-cus-loaded 530 (setq cus-test-vars-not-cus-loaded (cus-test-get-options "")
508 (cus-test-get-options "")) 531 groups-not-loaded (cus-test-get-options "" t))
509 532
510 (dolist (o cus-loaded) 533 (dolist (o cus-loaded)
511 (setq cus-test-vars-not-cus-loaded 534 (setq cus-test-vars-not-cus-loaded
@@ -515,12 +538,15 @@ in the Emacs source directory."
515 (message "No options not loaded by custom-load-symbol found") 538 (message "No options not loaded by custom-load-symbol found")
516 (message "The following options were not loaded by custom-load-symbol:") 539 (message "The following options were not loaded by custom-load-symbol:")
517 (cus-test-message 540 (cus-test-message
518 (sort cus-test-vars-not-cus-loaded 'string<))))) 541 (sort cus-test-vars-not-cus-loaded 'string<)))
519 542
520;; And last but not least a quiz: 543 (dolist (o groups-loaded)
521;; 544 (setq groups-not-loaded (delete o groups-not-loaded)))
522;; Evaluation of the form (customize-option 'debug-on-error) yields a 545
523;; *Customize* buffer with a mismatch mess. Why? 546 (if (not groups-not-loaded)
547 (message "No groups not in cus-load.el found")
548 (message "The following groups are not in cus-load.el:")
549 (cus-test-message (sort groups-not-loaded 'string<)))))
524 550
525(provide 'cus-test) 551(provide 'cus-test)
526 552
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/grammars/Makefile.in b/admin/grammars/Makefile.in
new file mode 100644
index 00000000000..827240a8d4e
--- /dev/null
+++ b/admin/grammars/Makefile.in
@@ -0,0 +1,113 @@
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
31EMACS = ${top_builddir}/src/emacs
32emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp
33
34make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser
35make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser
36
37cedetdir = ${top_srcdir}/lisp/cedet
38bovinedir = ${cedetdir}/semantic/bovine
39wisentdir = ${cedetdir}/semantic/wisent
40
41BOVINE = \
42 ${bovinedir}/c-by.el \
43 ${bovinedir}/make-by.el \
44 ${bovinedir}/scm-by.el
45
46## FIXME Should include this one too:
47## ${cedetdir}/semantic/grammar-wy.el
48## but semantic/grammar.el (which is what we use to generate grammar-wy.el)
49## requires it!
50WISENT = \
51 ${wisentdir}/javat-wy.el \
52 ${wisentdir}/js-wy.el \
53 ${wisentdir}/python-wy.el \
54 ${cedetdir}/srecode/srt-wy.el
55
56ALL = ${BOVINE} ${WISENT}
57
58.PHONY: all bovine wisent
59
60all: ${ALL}
61
62bovine: ${BOVINE}
63
64wisent: ${WISENT}
65
66
67${bovinedir}/c-by.el: ${srcdir}/c.by
68 [ ! -f "$@" ] || chmod +w "$@"
69 ${make_bovine} -o "$@" ${srcdir}/c.by
70
71${bovinedir}/make-by.el: ${srcdir}/make.by
72 [ ! -f "$@" ] || chmod +w "$@"
73 ${make_bovine} -o "$@" ${srcdir}/make.by
74
75${bovinedir}/scm-by.el: ${srcdir}/scheme.by
76 [ ! -f "$@" ] || chmod +w "$@"
77 ${make_bovine} -o "$@" ${srcdir}/scheme.by
78
79
80${cedetdir}/semantic/grammar-wy.el: ${srcdir}/grammar.wy
81 [ ! -f "$@" ] || chmod +w "$@"
82 ${make_wisent} -o "$@" ${srcdir}/grammar.wy
83
84${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy
85 [ ! -f "$@" ] || chmod +w "$@"
86 ${make_wisent} -o "$@" ${srcdir}/java-tags.wy
87
88${wisentdir}/js-wy.el: ${srcdir}/js.wy
89 [ ! -f "$@" ] || chmod +w "$@"
90 ${make_wisent} -o "$@" ${srcdir}/js.wy
91
92${wisentdir}/python-wy.el: ${srcdir}/python.wy
93 [ ! -f "$@" ] || chmod +w "$@"
94 ${make_wisent} -o "$@" ${srcdir}/python.wy
95
96${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy
97 [ ! -f "$@" ] || chmod +w "$@"
98 ${make_wisent} -o "$@" ${srcdir}/srecode-template.wy
99
100
101.PHONY: distclean bootstrap-clean maintainer-clean extraclean
102
103distclean:
104 rm -f Makefile
105
106bootstrap-clean maintainer-clean: distclean
107
108## We do not normally delete the generated files, even in bootstrap.
109## Creating them does not take long, so we could easily change this.
110extraclean:
111 rm -f ${ALL}
112
113# 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 408d0f0da29..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
@@ -154,7 +159,7 @@
154 159
155%keyword CHAR "char" 160%keyword CHAR "char"
156%put CHAR summary 161%put CHAR summary
157"Integral primitive type ('\u0000' to '\uffff') (0 to 65535)" 162"Integral primitive type (0 to 65535)"
158 163
159%keyword CLASS "class" 164%keyword CLASS "class"
160%put CLASS summary 165%put CLASS summary
@@ -312,7 +317,7 @@
312%keyword WHILE "while" 317%keyword WHILE "while"
313%put WHILE summary 318%put WHILE summary
314"while (<expr>) <stmt> | do <stmt> while (<expr>);" 319"while (<expr>) <stmt> | do <stmt> while (<expr>);"
315 320
316;; -------------------------- 321;; --------------------------
317;; Official javadoc line tags 322;; Official javadoc line tags
318;; -------------------------- 323;; --------------------------
@@ -340,27 +345,27 @@
340%keyword _AUTHOR "@author" 345%keyword _AUTHOR "@author"
341%put _AUTHOR javadoc (seq 1 usage (type)) 346%put _AUTHOR javadoc (seq 1 usage (type))
342%keyword _VERSION "@version" 347%keyword _VERSION "@version"
343%put _VERSION javadoc (seq 2 usage (type)) 348%put _VERSION javadoc (seq 2 usage (type))
344%keyword _PARAM "@param" 349%keyword _PARAM "@param"
345%put _PARAM javadoc (seq 3 usage (function) with-name t) 350%put _PARAM javadoc (seq 3 usage (function) with-name t)
346%keyword _RETURN "@return" 351%keyword _RETURN "@return"
347%put _RETURN javadoc (seq 4 usage (function)) 352%put _RETURN javadoc (seq 4 usage (function))
348%keyword _EXCEPTION "@exception" 353%keyword _EXCEPTION "@exception"
349%put _EXCEPTION javadoc (seq 5 usage (function) with-name t) 354%put _EXCEPTION javadoc (seq 5 usage (function) with-name t)
350%keyword _THROWS "@throws" 355%keyword _THROWS "@throws"
351%put _THROWS javadoc (seq 6 usage (function) with-name t) 356%put _THROWS javadoc (seq 6 usage (function) with-name t)
352%keyword _SEE "@see" 357%keyword _SEE "@see"
353%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t) 358%put _SEE javadoc (seq 7 usage (type function variable) opt t with-ref t)
354%keyword _SINCE "@since" 359%keyword _SINCE "@since"
355%put _SINCE javadoc (seq 8 usage (type function variable) opt t) 360%put _SINCE javadoc (seq 8 usage (type function variable) opt t)
356%keyword _SERIAL "@serial" 361%keyword _SERIAL "@serial"
357%put _SERIAL javadoc (seq 9 usage (variable) opt t) 362%put _SERIAL javadoc (seq 9 usage (variable) opt t)
358%keyword _SERIALDATA "@serialData" 363%keyword _SERIALDATA "@serialData"
359%put _SERIALDATA javadoc (seq 10 usage (function) opt t) 364%put _SERIALDATA javadoc (seq 10 usage (function) opt t)
360%keyword _SERIALFIELD "@serialField" 365%keyword _SERIALFIELD "@serialField"
361%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t) 366%put _SERIALFIELD javadoc (seq 11 usage (variable) opt t)
362%keyword _DEPRECATED "@deprecated" 367%keyword _DEPRECATED "@deprecated"
363%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t) 368%put _DEPRECATED javadoc (seq 12 usage (type function variable) opt t)
364 369
365%% 370%%
366 371
@@ -387,7 +392,7 @@ package_declaration
387 ; 392 ;
388 393
389;;; Include file token 394;;; Include file token
390;; ("FILE" include SYSTEM "DOCSTRING") 395;; ("FILE" include SYSTEM "DOCSTRING")
391import_declaration 396import_declaration
392 : IMPORT qualified_name SEMICOLON 397 : IMPORT qualified_name SEMICOLON
393 (INCLUDE-TAG $2 nil) 398 (INCLUDE-TAG $2 nil)
@@ -476,7 +481,7 @@ static_initializer
476 ; 481 ;
477 482
478;;; Function token 483;;; Function token
479;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") 484;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
480constructor_declaration 485constructor_declaration
481 : modifiers_opt constructor_declarator throwsc_opt constructor_body 486 : modifiers_opt constructor_declarator throwsc_opt constructor_body
482 (FUNCTION-TAG (car $2) nil (cdr $2) 487 (FUNCTION-TAG (car $2) nil (cdr $2)
@@ -491,11 +496,11 @@ constructor_declarator
491 ; 496 ;
492 497
493constructor_body 498constructor_body
494 : block 499 : block
495 ; 500 ;
496 501
497;;; Function token 502;;; Function token
498;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING") 503;; ("NAME" function "TYPE" ( ARG-LIST ) EXTRA-SPEC "DOCSTRING")
499method_declaration 504method_declaration
500 : modifiers_opt VOID method_declarator throwsc_opt method_body 505 : modifiers_opt VOID method_declarator throwsc_opt method_body
501 (FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4) 506 (FUNCTION-TAG (car $3) $2 (cdr $3) :typemodifiers $1 :throws $4)
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 de9bf351ac6..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
@@ -125,6 +125,10 @@ opt-read-fcn
125variable 125variable
126 : SET symbol insertable-string-list newline 126 : SET symbol insertable-string-list newline
127 (VARIABLE-TAG $2 nil $3) 127 (VARIABLE-TAG $2 nil $3)
128 | SET symbol number newline
129 ;; This so a common error w/ priority works.
130 ;; Note that "number" still has a string value in the lexer.
131 (VARIABLE-TAG $2 nil (list $3))
128 | SHOW symbol newline 132 | SHOW symbol newline
129 (VARIABLE-TAG $2 nil t) 133 (VARIABLE-TAG $2 nil t)
130 ; 134 ;
@@ -260,8 +264,8 @@ It ignores whitespace, newlines and comments."
260 srecode-template-separator-block 264 srecode-template-separator-block
261 srecode-template-wy--<keyword>-keyword-analyzer 265 srecode-template-wy--<keyword>-keyword-analyzer
262 srecode-template-property-analyzer 266 srecode-template-property-analyzer
263 srecode-template-wy--<symbol>-regexp-analyzer
264 srecode-template-wy--<number>-regexp-analyzer 267 srecode-template-wy--<number>-regexp-analyzer
268 srecode-template-wy--<symbol>-regexp-analyzer
265 srecode-template-wy--<string>-sexp-analyzer 269 srecode-template-wy--<string>-sexp-analyzer
266 srecode-template-wy--<punctuation>-string-analyzer 270 srecode-template-wy--<punctuation>-string-analyzer
267 semantic-lex-default-action 271 semantic-lex-default-action
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 3825ac49278..50183f75561 100644
--- a/admin/make-tarball.txt
+++ b/admin/make-tarball.txt
@@ -1,5 +1,5 @@
1Instructions to create pretest or release tarballs. 1Instructions to create pretest or release tarballs. -*- coding: utf-8 -*-
2-- originally written by Gerd Moellmann, amended by Francesco Potortì 2-- originally written by Gerd Moellmann, amended by Francesco Potortì
3 with the initial help of Eli Zaretskii 3 with the initial help of Eli Zaretskii
4 4
5 5
@@ -28,14 +28,10 @@ General steps (for each step, check for possible errors):
28 M-: (require 'authors) RET 28 M-: (require 'authors) RET
29 M-x authors RET 29 M-x authors RET
30 30
31 There is almost guaranteed to be an "*Authors Errors*" buffer with 31 If there is an "*Authors Errors*" buffer, address the issues.
32 problems caused by certain bad ChangeLog entries. You can ignore 32 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 33 renamed, consider adding an appropriate entry to authors-ignored-files,
34 related to new entries (especially entries that are new since the 34 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 35
40 If necessary, repeat M-x authors after making those changes. 36 If necessary, repeat M-x authors after making those changes.
41 Save the "*Authors*" buffer as etc/AUTHORS. 37 Save the "*Authors*" buffer as etc/AUTHORS.
@@ -50,9 +46,20 @@ General steps (for each step, check for possible errors):
50 For a pretest, start at version .90. After .99, use .990 (so that 46 For a pretest, start at version .90. After .99, use .990 (so that
51 it sorts). 47 it sorts).
52 48
49 The final pretest should be a release candidate. Set the version
50 number to that of the actual release. Pick a date about a week
51 from now when you intend to make the release. Use M-x add-release-logs
52 to add the ChangeLog entries for that date to the tar file (but
53 not yet to the repository). Name the tar file as
54 emacs-XX.Y-rc1.tar. If all goes well in the following week, you
55 can simply rename the file and use it for the actual release.
56
535. autoreconf -i -I m4 --force 575. autoreconf -i -I m4 --force
54 make bootstrap 58 make bootstrap
55 59
60 make -C etc/refcards
61 make -C etc/refcards clean
62
566. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. 636. Copy lisp/loaddefs.el to lisp/ldefs-boot.el.
57 64
58 Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed 65 Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed
@@ -77,7 +84,8 @@ General steps (for each step, check for possible errors):
77 compile-NEW.log and compare it against an old one. The easiest way 84 compile-NEW.log and compare it against an old one. The easiest way
78 to do that is to visit the old log in Emacs, change the version 85 to do that is to visit the old log in Emacs, change the version
79 number of the old Emacs to __, do the same with the new log and do 86 number of the old Emacs to __, do the same with the new log and do
80 M-x ediff. Especially check that Info files aren't built. 87 M-x ediff. Especially check that Info files aren't built, and that
88 no autotools (autoconf etc) run.
81 89
829. cd EMACS_ROOT_DIR && bzr tag TAG 909. cd EMACS_ROOT_DIR && bzr tag TAG
83 TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. 91 TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release.
@@ -135,6 +143,8 @@ General steps (for each step, check for possible errors):
135 Download them and check the signatures. Check they build. 143 Download them and check the signatures. Check they build.
136 144
13712. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. 14512. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org.
146 Probably should also include the platform-testers list:
147 https://lists.gnu.org/mailman/listinfo/platform-testers
138 For a release, also announce it on info-gnu@gnu.org. (Probably 148 For a release, also announce it on info-gnu@gnu.org. (Probably
139 bcc the info- addresses to make it less likely that people will 149 bcc the info- addresses to make it less likely that people will
140 followup on those lists.) 150 followup on those lists.)
diff --git a/admin/merge-gnulib b/admin/merge-gnulib
index b43f2bd9bb8..75808d30b60 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,22 +26,25 @@
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-h fdopendir filemode fstatat getloadavg getopt-gnu gettime gettimeofday 33 fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync
33 ignore-value intprops largefile lstat 34 getloadavg getopt-gnu gettime gettimeofday
34 manywarnings memrchr mktime 35 intprops largefile lstat
35 pselect pthread_sigmask putenv readlink readlinkat 36 manywarnings memrchr mkostemp mktime
37 pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
36 sig2str socklen stat-time stdalign stdarg stdbool stdio 38 sig2str socklen stat-time stdalign stdarg stdbool stdio
37 strftime strtoimax strtoumax symlink sys_stat 39 strftime strtoimax strtoumax symlink sys_stat
38 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
39 warnings 42 warnings
40' 43'
41 44
42GNULIB_TOOL_FLAGS=' 45GNULIB_TOOL_FLAGS='
43 --avoid=dup 46 --avoid=close --avoid=dup
44 --avoid=errno --avoid=fchdir --avoid=fcntl --avoid=fstat 47 --avoid=fchdir --avoid=fstat
45 --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow 48 --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow
46 --avoid=open --avoid=openat-die --avoid=opendir 49 --avoid=open --avoid=openat-die --avoid=opendir
47 --avoid=raise 50 --avoid=raise
@@ -89,7 +92,8 @@ test -x "$gnulib_srcdir"/gnulib-tool || {
89} 92}
90 93
91"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && 94"$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES &&
92rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && 95rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 "$src"m4/gl-openssl.m4 \
96 "$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 &&
93cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && 97cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc &&
94cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && 98cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux &&
95autoreconf -i -I m4 -- ${src:+"$src"} 99autoreconf -i -I m4 -- ${src:+"$src"}
diff --git a/admin/notes/bugtracker b/admin/notes/bugtracker
index ee385f4dd75..7947b17973b 100644
--- a/admin/notes/bugtracker
+++ b/admin/notes/bugtracker
@@ -8,7 +8,8 @@ This is 95% of all you will ever need to know.
8 8
9** How do I report a bug? 9** How do I report a bug?
10Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org. 10Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org.
11If you want to Cc someone, use an "X-Debbugs-CC" header instead. 11If you want to Cc someone, use an "X-Debbugs-CC" header (or
12pseudo-header, see below) instead.
12 13
13** How do I comment on a bug? 14** How do I comment on a bug?
14Reply to a mail on the bug-gnu-emacs list in the normal way. 15Reply to a mail on the bug-gnu-emacs list in the normal way.
@@ -52,8 +53,8 @@ i) Your report will be assigned a number and generate an automatic reply.
52ii) Optionally, you can set some database parameters when you first 53ii) Optionally, you can set some database parameters when you first
53report a bug (see "Setting bug parameters" below). 54report a bug (see "Setting bug parameters" below).
54 55
55iii) If you want to CC: someone, use X-Debbugs-CC: (this is important; 56iii) If you want to CC: someone, use X-Debbugs-CC: (note this only
56see below). 57applies to _new_ reports, not followups).
57 58
58Once your report is filed and assigned a number, it is sent out to the 59Once your report is filed and assigned a number, it is sent out to the
59bug mailing list. In some cases, it may be appropriate to just file a 60bug mailing list. In some cases, it may be appropriate to just file a
@@ -92,18 +93,21 @@ but create duplicates and errors. (It is possible, but unlikely, that
92you might want to have a dialog with the owner address, outside of 93you might want to have a dialog with the owner address, outside of
93normal bug reporting.) 94normal bug reporting.)
94 95
95** When reporting a bug, to send a Cc to another address 96** When reporting a new bug, to send a Cc to another address
96(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header. 97(e.g. bug-cc-mode@gnu.org), do NOT just use a Cc: header.
97Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a 98Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a
98mail with the bug report number in. If you do not do this, each reply 99mail with the bug report number in. If you do not do this, each reply
99in the subsequent discussion will end up creating a new bug. 100in the subsequent discussion might end up creating a new bug.
100This is annoying. 101This is annoying. (So annoying that a form of message-id tracking has
102been implemented to hopefully stop this happening, but it is still
103better to use X-Debbugs-CC.)
101 104
102(So annoying that a form of message-id tracking has been implemented 105Like any X-Debbugs- header, this one can also be specified in the
103to hopefully stop this happening, but it is still better to use X-Debbugs-CC.) 106pseudo-header (see below), if your mail client does not let you add
107"X-" headers.
104 108
105If a new report contains X-Debbugs-CC in the input, this is 109If a new report contains X-Debbugs-CC in the input, this is
106converted to a real Cc header in the output. (See Bug#1720). 110converted to a real Cc header in the output. (See Bug#1780,5384)
107It is also merged into the Resent-CC header (see below). 111It is also merged into the Resent-CC header (see below).
108 112
109** How does Debbugs send out mails? 113** How does Debbugs send out mails?
@@ -218,8 +222,8 @@ Package: emacs
218Version: 23.0.60 222Version: 23.0.60
219Severity: minor 223Severity: minor
220 224
221This can also include tags. Some things (e.g. submitter) don't seem to 225This can also include tags, or any X-Debbugs- setting.
222work here. 226Some things (e.g. submitter) don't seem to work here.
223 227
224Otherwise, send mail to the control server, control@debbugs.gnu.org. 228Otherwise, send mail to the control server, control@debbugs.gnu.org.
225At the start of the message body, supply the desired commands, one per 229At the start of the message body, supply the desired commands, one per
@@ -627,7 +631,9 @@ following headers:
627 631
6281) The leading envelope From line. 6321) The leading envelope From line.
6292) Message-ID (get it from /var/log/mailman/vette). 6332) Message-ID (get it from /var/log/mailman/vette).
6303) X-Debbugs-Envelope-To: submit 6343) X-Debbugs-Envelope-To: xxx
635For a new report, xxx = submit; for a control message, xxx = control;
636for a reply to bug#123, xxx = 123
631 637
632Then pipe it to receive as above. 638Then pipe it to receive as above.
633 639
diff --git a/admin/notes/bzr b/admin/notes/bzr
index f35ff95f9d6..a3a125cd675 100644
--- a/admin/notes/bzr
+++ b/admin/notes/bzr
@@ -316,3 +316,85 @@ When finished, use
316 bzr bisect reset 316 bzr bisect reset
317 317
318or simply delete the entire branch if you created it just for this. 318or simply delete the entire branch if you created it just for this.
319
320* Commit emails
321
322** Old method: bzr-hookless-email
323https://launchpad.net/bzr-hookless-email
324
325Runs hourly via cron. Must ask Savannah admins to enable/disable it
326for each branch. Stores the last revision that it mailed as
327last_revision_mailed in branch.conf on the server. Breaks with bzr 2.6:
328
329http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00000.html
330
331Fix from https://bugs.launchpad.net/bzr-hookless-email/+bug/988195
332only partially works. Breaks again on every merge commit:
333
334https://lists.ubuntu.com/archives/bazaar/2013q2/075520.html
335http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00024.html
336
337You can force it to skip the merge commit by changing the value for
338last_revision_mailed, eg:
339
340bzr config last_revision_mailed=xfq.free@gmail.com-20130603233720-u1aumaxvf3o0rlai -d bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/trunk/
341
342** New method: bzr-email plugin
343https://launchpad.net/bzr-email
344http://lists.gnu.org/archive/html/savannah-hackers-public/2013-06/msg00007.html
345
346Runs on commit. Projects can enable it themselves by using `bzr
347config' to set post_commit_to option for a branch. See `bzr help email'
348(if you have the plugin installed) for other options.
349
350The From: address will be that of your Savannah account, rather than
351your `bzr whoami' information.
352
353Note: if you have the bzr-email plugin installed locally, then when
354you commit to the Emacs repository it will also try to send a commit
355email from your local machine. If your machine is not configured to
356send external mail, this will just fail. In any case, you may prefer
357to either remove the plugin from your machine, or disable it for Emacs
358branches. You can do this either by editing branch.conf in your Emacs
359branches, to override the server setting (untested; not sure this
360works), or by adding an entry to ~/.bazaar/locations.conf:
361
362 [bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/*/]
363 post_commit_to = ""
364
365You have to use locations.conf rather than bazaar.conf because the
366latter has a lower priority than branch.conf.
367
368* Using git-bzr
369
370** initially
371
372You can use Git locally to talk to the Bazaar repo as a "remote" repo
373via git-bzr (aka git-remote-bzr). Initial clone:
374
375 git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e
376
377This creates the working dir e/ (with subdir .git, etc). Disk usage
378is 13G (as of early 2014), so you will probably want to repack:
379
380 git repack -a -d -f --window=250 --depth=250 --window-memory=N
381
382where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m"
383results in "du -sh .git" => 559M, about double the smallest reported
384value (obtained with "deprecated" command "git gc --aggressive").
385
386** steady-state
387
388Use "fetch", "pull" and other remote-to-local commands as usual.
389
390For "push", the Emacs Bazaar repo is configured with
391
392 append_revisions_only = True
393
394so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation
395(in func do_export) instead of displaying a "non fast-forward" message
396and skipping the branch. See:
397
398 http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html
399
400which includes a provisional patch to git-remote-bzr to do that.
diff --git a/admin/notes/changelogs b/admin/notes/changelogs
index 2e954570ce8..1025cfc217f 100644
--- a/admin/notes/changelogs
+++ b/admin/notes/changelogs
@@ -5,6 +5,8 @@ entry in their name, not yours.
5http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html 5http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html
6 There is no need to make change log entries for files such as NEWS, 6 There is no need to make change log entries for files such as NEWS,
7 MAINTAINERS, and FOR-RELEASE. 7 MAINTAINERS, and FOR-RELEASE.
8"There is no need" means you don't have to, but you can if you want to.
9
8 10
9http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html 11http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html
10 There is no need to indicate regeneration of files such as configure 12 There is no need to indicate regeneration of files such as configure
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..a54bcb6108b 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
diff --git a/admin/notes/elpa b/admin/notes/elpa
index db14456fe32..469a0ca8bd1 100644
--- a/admin/notes/elpa
+++ b/admin/notes/elpa
@@ -1,24 +1,21 @@
1NOTES ON THE EMACS PACKAGE ARCHIVE 1NOTES ON THE EMACS PACKAGE ARCHIVE
2 2
3The GNU Emacs package archive, at elpa.gnu.org, is managed using a Bzr 3The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git
4branch named "elpa", hosted on Savannah. To check it out: 4repository named "elpa", hosted on Savannah. To check it out:
5 5
6 bzr branch bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa elpa 6 git clone git://bzr.sv.gnu.org/emacs/elpa
7 cd elpa 7 cd elpa
8 echo "public_branch = bzr+ssh://USER@bzr.savannah.gnu.org/emacs/elpa" >> .bzr/branch/branch.conf 8 git remote set-url --push origin git+ssh://bzr.sv.gnu.org/srv/git/emacs/elpa
9 bzr bind bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/elpa
10 [create task branch for edits, etc.] 9 [create task branch for edits, etc.]
11 10
12Changes to this branch propagate to elpa.gnu.org in a semi-manual way. 11Changes to this branch propagate to elpa.gnu.org via a "deployment" script run
13There exists a copy of the elpa branch on that machine. Someone with 12daily. This script (which is kept in elpa/admin/update-archive.sh) generates
14access logs in, pulls the latest changes from Savannah, and runs a 13the content visible at http://elpa.gnu.org/packages.
15"deployment" script. This script (which is itself kept in the Bzr
16branch) generates the content visible at http://elpa.gnu.org/packages.
17 14
18The reason we set things up this way, instead of using the package 15A new package is released as soon as the "version number" of that package is
19upload commands in package-x.el, is to let Emacs hackers conveniently 16changed. So you can use `elpa' to work on a package without fear of releasing
20edit the contents of the "elpa" branch. (In particular, multi-file 17those changes prematurely. And once the code is ready, just bump the
21packages are stored on the branch in source form, not as tarfiles.) 18version number to make a new release of the package.
22 19
23It is easy to use the elpa branch to deploy a "local" copy of the 20It is easy to use the elpa branch to deploy a "local" copy of the
24package archive. For details, see the README file in the elpa branch. 21package archive. For details, see the README file in the elpa branch.
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
new file mode 100644
index 00000000000..3b6bc87a2f6
--- /dev/null
+++ b/admin/notes/hydra
@@ -0,0 +1,66 @@
1-*- outline -*-
2
3Copyright (C) 2013-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA
7
8A continuous build for Emacs can be found at
9http://hydra.nixos.org/jobset/gnu/emacs-trunk
10http://hydra.nixos.org/jobset/gnu/emacs-24
11
12* It builds Emacs on various platforms.
13Sometimes jobs fail due to hydra problems rather than Emacs problems.
14Eg it seems like the cygwin build will never work again.
15http://lists.gnu.org/archive/html/hydra-users/2013-08/msg00000.html
16
17* Mail notifications
18In addition to the web interface, Hydra can send notifications by
19email when the build status of a project changes—e.g., from
20`SUCCEEDED' to `FAILED'. It sends notifications about build status in
21Emacs trunk to emacs-buildstatus@gnu.org.
22
23If you want to receive these notifications, please subscribe at
24http://lists.gnu.org/mailman/listinfo/emacs-buildstatus
25
26* The Emacs jobset consists of the following jobs:
27
28** The `tarball' job
29which gets a checkout from bzr, and does a bootstrap followed
30by running make-dist to create a tarball. If this job fails, all the
31others will too (because they use the tarball as input).
32
33** The `build' job
34which starts from the tarball and does a normal build
35
36** The 'coverage' job
37does a gcov build and then runs `make check'. Fails if any test fails.
38
39* Nix expressions
40The recipe for GNU Emacs are available via Git:
41http://git.savannah.gnu.org/cgit/hydra-recipes.git/tree/emacs
42
43To modify the build job, email the patch to hydra-users@gnu.org. The
44build recipes are written in the Nix language.
45
46* Other Information
47For a list of other GNU packages that have a continuous build on
48Hydra, see http://hydra.nixos.org/project/gnu
49
50See http://www.gnu.org/software/devel.html#Hydra for more information.
51
52
53This file is part of GNU Emacs.
54
55GNU Emacs is free software: you can redistribute it and/or modify
56it under the terms of the GNU General Public License as published by
57the Free Software Foundation, either version 3 of the License, or
58(at your option) any later version.
59
60GNU Emacs is distributed in the hope that it will be useful,
61but WITHOUT ANY WARRANTY; without even the implied warranty of
62MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
63GNU General Public License for more details.
64
65You should have received a copy of the GNU General Public License
66along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
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..dff788351a9 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.
diff --git a/admin/notes/unicode b/admin/notes/unicode
index 21704c78a00..654580639f7 100644
--- a/admin/notes/unicode
+++ b/admin/notes/unicode
@@ -1,6 +1,6 @@
1 -*-mode: text; coding: latin-1;-*- 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
@@ -12,9 +12,9 @@ regard to completeness.
12 12
13 * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has 13 * SINGLE_BYTE_CHAR_P returns true for Latin-1 characters, which has
14 undesirable effects. E.g.: 14 undesirable effects. E.g.:
15 (multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil 15 (multibyte-string-p (let ((s "x")) (aset s 0 ?£) s)) => nil
16 (multibyte-string-p (concat [?£])) => nil 16 (multibyte-string-p (concat [?£])) => nil
17 (text-char-description ?£) => "M-#" 17 (text-char-description ?£) => "M-#"
18 18
19 These examples are all fixed by the change of 2002-10-14, but 19 These examples are all fixed by the change of 2002-10-14, but
20 there still exist questionable SINGLE_BYTE_CHAR_P in the 20 there still exist questionable SINGLE_BYTE_CHAR_P in the
@@ -77,7 +77,7 @@ regard to completeness.
77 spelling and calendar, but that's not a Unicode issue.) 77 spelling and calendar, but that's not a Unicode issue.)
78 78
79 * Handle Unicode combining characters usefully, e.g. diacritics, and 79 * Handle Unicode combining characters usefully, e.g. diacritics, and
80 handle more scripts specifically (à la Devanagari). There are 80 handle more scripts specifically (à la Devanagari). There are
81 issues with canonicalization. 81 issues with canonicalization.
82 82
83 * We need tabular input methods, e.g. for maths symbols. (Not 83 * We need tabular input methods, e.g. for maths symbols. (Not
@@ -98,6 +98,134 @@ regard to completeness.
98 * Old auto-save files, and similar files, such as Gnus drafts, 98 * Old auto-save files, and similar files, such as Gnus drafts,
99 containing non-ASCII characters probably won't be re-read correctly. 99 containing non-ASCII characters probably won't be re-read correctly.
100 100
101
102Source file encoding
103--------------------
104
105Most Emacs source files are encoded in UTF-8 (or in ASCII, which is a
106subset), but there are a few exceptions, listed below. Perhaps
107someday many of these files will be converted to UTF-8, for
108convenience when using tools like 'grep -r', but this might need
109nontrivial changes to the build process.
110
111 * chinese-big5
112
113 These are verbatim copies of files taken from external sources.
114 They haven't been converted to UTF-8.
115
116 leim/CXTERM-DIC/4Corner.tit
117 leim/CXTERM-DIC/ARRAY30.tit
118 leim/CXTERM-DIC/ECDICT.tit
119 leim/CXTERM-DIC/ETZY.tit
120 leim/CXTERM-DIC/PY-b5.tit
121 leim/CXTERM-DIC/Punct-b5.tit
122 leim/CXTERM-DIC/QJ-b5.tit
123 leim/CXTERM-DIC/ZOZY.tit
124 leim/MISC-DIC/CTLau-b5.html
125 leim/MISC-DIC/cangjie-table.b5
126
127 * chinese-iso-8bit
128
129 These are verbatim copies of files taken from external sources.
130 They haven't been converted to UTF-8.
131
132 leim/CXTERM-DIC/CCDOSPY.tit
133 leim/CXTERM-DIC/Punct.tit
134 leim/CXTERM-DIC/QJ.tit
135 leim/CXTERM-DIC/SW.tit
136 leim/CXTERM-DIC/TONEPY.tit
137 leim/MISC-DIC/pinyin.map
138 leim/MISC-DIC/CTLau.html
139 leim/MISC-DIC/ziranma.cin
140
141 * cp850
142
143 This file contains non-ASCII characters in unibyte strings. When
144 editing a keyboard layout it's more convenient to see 'é' than
145 '\202', and the MS-DOS compiler requires the single byte if a
146 backslash escape is not being used.
147
148 src/msdos.c
149
150 * iso-2022-cn-ext
151
152 This file is externally generated from leim/MISC-DIC/cangjie-table.b5
153 by Big5->CNS converter. It hasn't been converted to UTF-8.
154
155 leim/MISC-DIC/cangjie-table.cns
156
157 * iso-latin-2
158
159 These files are processed by csplain, a program that requires
160 Latin-2 input. In 2012 the csplain maintainers started
161 recommending UTF-8, but these files haven't been converted yet.
162
163 etc/refcards/cs-dired-ref.tex
164 etc/refcards/cs-refcard.tex
165 etc/refcards/cs-survival.tex
166 etc/refcards/sk-dired-ref.tex
167 etc/refcards/sk-refcard.tex
168 etc/refcards/sk-survival.tex
169
170 * japanese-iso-8bit
171
172 SKK-JISYO.L is a verbatim copy of a file taken from an external source.
173 It hasn't been converted to UTF-8.
174
175 leim/SKK-DIC/SKK-JISYO.L
176
177 * japanese-shift-jis
178
179 This is a verbatim copy of a file taken from an external source.
180 It hasn't been converted to UTF-8.
181
182 admin/charsets/mapfiles/cns2ucsdkw.txt
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
192
193 This file switches between CJK charsets, which is not encoded in UTF-8.
194
195 etc/HELLO
196
197 Each of these files contains just one CJK charset, but Emacs
198 currently has no easy way to specify set-charset-priority on a
199 per-file basis, so converting any of these files to UTF-8 might
200 change the file's appearance when viewed by an Emacs that is
201 operating in some other language environment.
202
203 etc/tutorials/TUTORIAL.ja
204 leim/quail/cyril-jis.el
205 leim/quail/hanja-jis.el
206 leim/quail/japanese.el
207 leim/quail/py-punct.el
208 leim/quail/pypunct-b5.el
209 lisp/international/ja-dic-cnv.el
210 lisp/international/ja-dic-utl.el
211 lisp/international/kinsoku.el
212 lisp/international/kkc.el
213 lisp/international/titdic-cnv.el
214 lisp/language/japan-util.el
215 lisp/language/japanese.el
216 lisp/term/x-win.el
217
218 * utf-8-emacs
219
220 These files contain characters that cannot be encoded in UTF-8.
221
222 leim/quail/tibetan.el
223 leim/quail/ethiopic.el
224 lisp/international/titdic-cnv.el
225 lisp/language/tibetan.el
226 lisp/language/tibet-util.el
227 lisp/language/ind-util.el
228
101 229
102This file is part of GNU Emacs. 230This file is part of GNU Emacs.
103 231
diff --git a/admin/notes/www b/admin/notes/www
new file mode 100644
index 00000000000..4d092ca7fa0
--- /dev/null
+++ b/admin/notes/www
@@ -0,0 +1,82 @@
1-*- outline -*-
2
3Copyright (C) 2013-2014 Free Software Foundation, Inc.
4See the end of the file for license conditions.
5
6NOTES FOR EMACS WWW PAGES
7
8* Renaming pages, redirects
9
10Sometimes you want to move a page to a new location.
11If the old location might be referenced somewhere else, you should add
12some form of redirect to the new location. There are several ways to
13do this:
14
15** Use a refresh directive in the old file
16https://www.gnu.org/server/standards/README.webmastering.html#htaccess
17
18Change the entire contents of the old file to be something like:
19
20<meta http-equiv="refresh" content="0; url=/software/emacs/manual/elisp.html">
21
22I can't think of any reason to use this method.
23
24** Use a .symlinks file
25https://www.gnu.org/server/standards/README.webmastering.html#symlinks
26
27This is really an interface to mod_rewrite rules, but it acts like
28symlinks. Remove old-page.html altogether, and create a ".symlinks"
29file in the relevant directory, with contents of the form:
30
31 # This is a comment line.
32 old-page.html new-page.html
33
34Anyone visiting old-page.html will be shown the contents of new-page.html.
35Note that changes to .symlinks file are only updated periodically on
36the server via cron (twice an hour?). So there will be a delay (of up
37to 30 minutes?) before you see your changes take effect.
38
39This method is ok, but:
40i) a person visiting old-page.html has no idea that the page has moved.
41They still see old-page.html in their address bar. (In other words,
42the mod_rewrite rule does not use the [R] flag.) Sometimes this is
43what you want, sometimes not.
44
45ii) it doesn't work right if the new page is in a different directory
46to the old page: relative links from the visited page will break.
47
48** Use a .htaccess file
49
50Remove old-page.html altogether, and create a ".htaccess" file in the
51relevant directory, with contents of the form:
52
53 # This is a comment line.
54 Redirect 301 /software/emacs/old-page.html /software/emacs/dir/new-page.html
55
56Use "301" for a permanent redirection, otherwise you can omit the number.
57Note that paths must (?) be relative to the top-level www.gnu.org.
58
59I think this is the best method. You can specify temporary or
60permanent redirects, and changes go live more-or-less straight away.
61
62This method is useful for making cross-references to non-Emacs manuals
63work; see manual/.htaccess in the repository. You only have to add a
64single redirect for every given external manual, you can redirect
65html_node to hmtl_node and html_mono to html_mono.
66
67
68
69This file is part of GNU Emacs.
70
71GNU Emacs is free software: you can redistribute it and/or modify
72it under the terms of the GNU General Public License as published by
73the Free Software Foundation, either version 3 of the License, or
74(at your option) any later version.
75
76GNU Emacs is distributed in the hope that it will be useful,
77but WITHOUT ANY WARRANTY; without even the implied warranty of
78MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
79GNU General Public License for more details.
80
81You should have received a copy of the GNU General Public License
82along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
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 5983a0f9617..5f5b4a951af 100644
--- a/admin/nt/README-ftp-server
+++ b/admin/nt/README-ftp-server
@@ -1,12 +1,12 @@
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
5 Emacs for Windows 5 Emacs for Windows
6 6
7 Version 24.1 7 Version 24.3
8 8
9 January 1, 2011 9 March 18, 2013
10 10
11 This directory contains precompiled distributions for GNU Emacs on 11 This directory contains precompiled distributions for GNU Emacs on
12 Windows (versions before Windows 95 and NT4 are not supported). 12 Windows (versions before Windows 95 and NT4 are not supported).
@@ -14,21 +14,15 @@ See the end of the file for license conditions.
14 Free Software Foundation; the precompiled distributions are provided 14 Free Software Foundation; the precompiled distributions are provided
15 here for convenience since the majority of Windows users are not 15 here for convenience since the majority of Windows users are not
16 accustomed to compiling programs themselves. Corresponding source 16 accustomed to compiling programs themselves. Corresponding source
17 can be found in the parent directory in emacs-24.1.tar.gz. 17 can be found in the parent directory in emacs-24.3.tar.gz.
18
19 If you have access to the World Wide Web, I would recommend pointing
20 your favorite web browser to the following document (if you haven't
21 already):
22
23 http://www.gnu.org/software/emacs/windows/ntemacs.html
24 18
25* IMPORTANT LEGAL REMINDER 19* IMPORTANT LEGAL REMINDER
26 20
27 If you want to redistribute any of the precompiled distributions of 21 If you want to redistribute any of the precompiled distributions of
28 Emacs, be careful to check the implications of the GPL. For instance, 22 Emacs, be careful to check the implications of the GPL. For instance,
29 if you put the emacs-24.1-bin-i386.tar.gz file from this directory on 23 if you put the emacs-24.3-bin-i386.zip file from this directory on
30 an Internet site, you must arrange to distribute the source files of 24 an Internet site, you must arrange to distribute the source files of
31 the SAME version (i.e. ../emacs-24.1.tar.gz). 25 the SAME version (i.e. ../emacs-24.3.tar.gz).
32 26
33 Making a link to our copy of the source is NOT sufficient, since we 27 Making a link to our copy of the source is NOT sufficient, since we
34 might upgrade to a new version while you are still distributing the 28 might upgrade to a new version while you are still distributing the
@@ -37,8 +31,8 @@ See the end of the file for license conditions.
37 31
38* Files in this directory 32* Files in this directory
39 33
40 + emacs-24.1-bin-i386.zip 34 + emacs-24.3-bin-i386.zip
41 Windows binaries of Emacs-24.1, with all lisp code and documentation 35 Windows binaries of Emacs-24.3, with all lisp code and documentation
42 included. 36 included.
43 37
44 Download this file if you want a single installation package, and 38 Download this file if you want a single installation package, and
@@ -49,21 +43,12 @@ See the end of the file for license conditions.
49 If you need the C source code at a later date, it will be safe to 43 If you need the C source code at a later date, it will be safe to
50 unpack the source distribution on top of this installation. 44 unpack the source distribution on top of this installation.
51 45
52 + emacs-24.1-barebin-i386.zip 46 + libXpm-3.5.8-w32-src.zip
53 Windows binaries of Emacs-24.1, without lisp code or documentation. 47 Source code required to compile libXpm-3.5.8 on Windows. Contains
54
55 Download this file if you already have the source distribution.
56
57 Unpack this over the top of the source distribution. It contains the
58 bin subdirectory and etc/DOC file.
59
60 + libxpm-3.5.7-w32-src.zip
61 Source code required to compile libXpm-3.5.7 on Windows. Contains
62 a basic Makefile for compiling with mingw32 and a .def file for 48 a basic Makefile for compiling with mingw32 and a .def file for
63 generating a DLL with the appropriate exports in addition to the 49 generating a DLL with the appropriate exports in addition to the
64 source code to provide the subset of functionality Emacs uses from 50 source code to provide the subset of functionality Emacs uses from
65 libXpm. This corresponds to the libXpm.dll in emacs-24.1-bin-i386.zip 51 libXpm. This corresponds to the libXpm.dll in emacs-24.3-bin-i386.zip.
66 and emacs-24.1-barebin-i386.zip.
67 52
68* Prerequisites for running Emacs on Windows 9X 53* Prerequisites for running Emacs on Windows 9X
69 54
@@ -73,7 +58,7 @@ See the end of the file for license conditions.
73 58
74* Image support 59* Image support
75 60
76 Emacs 24.1 contains support for images, however for most image 61 Emacs 24.3 contains support for images, however for most image
77 formats supporting libraries are required. This distribution has 62 formats supporting libraries are required. This distribution has
78 been tested with the libraries that are distributed with GTK for 63 been tested with the libraries that are distributed with GTK for
79 Windows (http://www.gtk.org/download/win32.php), and the libraries 64 Windows (http://www.gtk.org/download/win32.php), and the libraries
@@ -112,6 +97,16 @@ See the end of the file for license conditions.
112 as well as the base librsvg library. Known to crash Emacs on many 97 as well as the base librsvg library. Known to crash Emacs on many
113 sample images. 98 sample images.
114 99
100* XML support
101
102 In order to support XML via libxml2 at runtime, a libxml2-enabled
103 Emacs must be able to find the relevant DLLs during startup; failure
104 to do so is not an error, but libxml2 features won't be available to
105 the running session.
106
107 You can get pre-built binaries (including any required DLL and the
108 header files) at http://sourceforge.net/projects/ezwinports/files/.
109
115* Distributions in .tar.gz and .zip format 110* Distributions in .tar.gz and .zip format
116 111
117 Emacs is distributed primarily as source code in a large gzipped tar 112 Emacs is distributed primarily as source code in a large gzipped tar
@@ -229,16 +224,10 @@ See the end of the file for license conditions.
229 224
230* Further information 225* Further information
231 226
232 If you have access to the World Wide Web, I would recommend pointing 227 The Emacs on MS Windows FAQ is distributed with Emacs (info
233 your favorite web browser to following the document (if you haven't 228 manual "efaq-w32"), and at
234 already):
235 229
236 http://www.gnu.org/software/emacs/windows/ntemacs.html 230 http://www.gnu.org/software/emacs/manual/efaq-w32.html
237
238 This document serves as an FAQ and a source for further information
239 about the Windows port and related software packages. Note that as
240 most of the information in that FAQ is for earlier versions, so some
241 information may not be relevant to Emacs-24.1.
242 231
243 In addition to the FAQ, there is a mailing list for discussing issues 232 In addition to the FAQ, there is a mailing list for discussing issues
244 related to the Windows port of Emacs. For information about the 233 related to the Windows port of Emacs. For information about the
@@ -268,11 +257,8 @@ See the end of the file for license conditions.
268 257
269 Enjoy! 258 Enjoy!
270 259
271 Jason Rumney 260 Most of this README was contributed by former maintainers Andrew Innes
272 (jasonr@gnu.org) 261 (andrewi@gnu.org) and Jason Rumney (jasonr@gnu.org).
273
274 Most of this README was contributed by former maintainer Andrew Innes
275 (andrewi@gnu.org)
276 262
277 263
278This file is part of GNU Emacs. 264This file is part of GNU Emacs.
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs
index e74a2a5af49..f29d1cb377f 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
@@ -105,8 +105,8 @@ and build directories reside.
105 105
106Optionally, $me can also remove old versions of 106Optionally, $me can also remove old versions of
107automatically generated files that are version-specific (such as the 107automatically generated files that are version-specific (such as the
108versioned emacs executables in the \`src' directory, and the DOC-* files 108versioned emacs executables in the \`src' directory).
109in the \`etc' directory). The latter action is called \`pruning,' and 109The latter action is called \`pruning,' and
110can be enabled using the \`-p' or \`--prune' options. 110can be enabled using the \`-p' or \`--prune' options.
111EOF 111EOF
112 exit 0 112 exit 0
@@ -209,10 +209,6 @@ maybe_mkdir "$DST_INFO"
209 209
210PRUNED="" 210PRUNED=""
211if test x"$PRUNE" != xno; then 211if test x"$PRUNE" != xno; then
212 for D in `ls -1t $BUILD/etc/DOC-* | sed 1d`; do
213 echo $REMOVE_CMD $D
214 PRUNED="$PRUNED $D"
215 done
216 for D in `ls -1t $BUILD/src/emacs-$VERSION.* | sed 1d`; do 212 for D in `ls -1t $BUILD/src/emacs-$VERSION.* | sed 1d`; do
217 echo $REMOVE_CMD $D 213 echo $REMOVE_CMD $D
218 PRUNED="$PRUNED $D" 214 PRUNED="$PRUNED $D"
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 49cd9bb6d3a..3ad81a94bae 100644
--- a/admin/unidata/Makefile.in
+++ b/admin/unidata/Makefile.in
@@ -1,6 +1,6 @@
1# Makefile -- Makefile to generate character property tables. 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)
@@ -21,16 +21,17 @@
21# You should have received a copy of the GNU General Public License 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/>. 22# along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>.
23 23
24SHELL = /bin/sh 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..b9511969a15
--- /dev/null
+++ b/admin/update_autogen
@@ -0,0 +1,375 @@
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
50
51usage ()
52{
53 cat 1>&2 <<EOF
54Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags]
55Update some auto-generated files in the Emacs tree.
56By default, only does the versioned loaddefs-like files in lisp/.
57This requires a build. Passes any non-option args to make (eg -- -j2).
58Options:
59-f: force an update even if the source files are locally modified.
60-c: if the update succeeds and the generated files are modified,
61 commit them (caution).
62-q: be quiet; only give error messages, not status messages.
63-A: only update autotools files, copying into specified dir.
64-I: also update info/dir.
65-L: also update ldefs-boot.el.
66-C: start from a clean state. Slower, but more correct.
67EOF
68 exit 1
69}
70
71
72## Defaults.
73
74force=
75commit=
76quiet=
77clean=
78autogendir= # was "autogen"
79ldefs_flag=1
80lboot_flag=
81info_flag=
82
83## Parameters.
84ldefs_in=lisp/loaddefs.el
85ldefs_out=lisp/ldefs-boot.el
86sources="configure.ac lib/Makefile.am"
87## Files to copy into autogendir.
88## Everything:
89genfiles="
90 configure aclocal.m4 src/config.in lib/Makefile.in
91 build-aux/compile build-aux/config.guess build-aux/config.sub
92 build-aux/depcomp build-aux/install-sh build-aux/missing
93"
94## msdos-only:
95genfiles="src/config.in lib/Makefile.in"
96
97for g in $genfiles; do
98 basegen="$basegen ${g##*/}"
99done
100
101[ "$basegen" ] || die "internal error"
102
103tempfile=/tmp/$PN.$$
104
105trap "rm -f $tempfile 2> /dev/null" EXIT
106
107
108while getopts ":hcfqA:CIL" option ; do
109 case $option in
110 (h) usage ;;
111
112 (c) commit=1 ;;
113
114 (f) force=1 ;;
115
116 (q) quiet=1 ;;
117
118 (A) autogendir=$OPTARG
119 [ -d "$autogendir" ] || die "No autogen directory: $autogendir"
120 ;;
121
122 (C) clean=1 ;;
123
124 (I) info_flag=1 ;;
125
126 (L) lboot_flag=1 ;;
127
128 (\?) die "Bad option -$OPTARG" ;;
129
130 (:) die "Option -$OPTARG requires an argument" ;;
131
132 (*) die "getopts error" ;;
133 esac
134done
135shift $(( --OPTIND ))
136OPTIND=1
137
138
139## Does not work 100% because a lot of Emacs batch output comes on stderr (?).
140[ "$quiet" ] && exec 1> /dev/null
141
142
143## Run status on inputs, list modified files on stdout.
144status ()
145{
146 bzr status -S "$@" >| $tempfile || die "bzr status error for $@"
147
148 local stat file modified
149
150 while read stat file; do
151
152 [ "$stat" != "M" ] && \
153 die "Unexpected status ($stat) for generated $file"
154 modified="$modified $file"
155
156 done < $tempfile
157
158 echo "$modified"
159
160 return 0
161} # function status
162
163
164echo "Checking input file status..."
165
166## The lisp portion could be more permissive, eg only care about .el files.
167modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die
168
169[ "$modified" ] && {
170 echo "Locally modified: $modified"
171 [ "$force" ] || die "There are local modifications"
172}
173
174
175## Probably this is overkill, and there's no need to "bootstrap" just
176## for making autoloads.
177[ "$clean" ] && {
178
179 echo "Running 'make maintainer-clean'..."
180
181 make maintainer-clean #|| die "Cleaning error"
182
183 rm -f $ldefs_in
184}
185
186
187echo "Running autoreconf..."
188
189autoreconf ${clean:+-f} -i -I m4 2>| $tempfile
190
191retval=$?
192
193## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr.
194if [ "$quiet" ]; then
195 grep -v 'installing `\.' $tempfile 1>&2
196else
197 cat "$tempfile" 1>&2
198fi
199
200[ $retval -ne 0 ] && die "autoreconf error"
201
202
203## Uses global $commit.
204commit ()
205{
206 local type=$1
207 shift
208
209 [ $# -gt 0 ] || {
210 echo "No files were modified"
211 return 0
212 }
213
214 echo "Modified file(s): $@"
215
216 [ "$commit" ] || return 0
217
218 echo "Committing..."
219
220 ## bzr status output is always relative to top-level, not PWD.
221 bzr commit -m "Auto-commit of $type files." "$@" || return $?
222
223 echo "Committed files: $@"
224} # function commit
225
226
227## No longer used since info/dir is now generated at install time if needed,
228## and is not in the repository any more.
229info_dir ()
230{
231 local basefile=build-aux/dir_top outfile=info/dir
232
233 echo "Regenerating info/dir..."
234
235 ## Header contains non-printing characters, so this is more
236 ## reliable than using echo.
237 rm -f $outfile
238 cp $basefile $outfile
239
240 local topic file dircat dirent
241
242 ## FIXME inefficient looping.
243 for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \
244 "Emacs editing modes" "Emacs network features" "Emacs misc features" \
245 "Emacs lisp libraries"; do
246
247 cat - <<EOF >> $outfile
248
249$topic
250EOF
251 ## Bit faster than doc/*/*.texi.
252 for file in doc/emacs/emacs.texi doc/lispintro/*.texi \
253 doc/lispref/elisp.texi doc/misc/*.texi; do
254
255 ## FIXME do not ignore w32 if OS is w32.
256 case $file in
257 *-xtra.texi|*efaq-w32.texi) continue ;;
258 esac
259
260 dircat=`sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file`
261
262 ## TODO warn about unknown topics (check-info in top-level
263 ## Makefile does this).
264 [ "$dircat" = "$topic" ] || continue
265
266 sed -n -e 's/@value{emacsname}/Emacs/' \
267 -e 's/@acronym{\([A-Z]*\)}/\1/' \
268 -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \
269 $file >> $outfile
270
271 done
272 done
273
274 local modified
275
276 modified=$(status $outfile) || die
277
278 commit "info/dir" $modified || die "commit error"
279} # function info_dir
280
281
282[ "$autogendir" ] && {
283
284 oldpwd=$PWD
285
286 cp $genfiles $autogendir/
287
288 cd $autogendir || die "cd error for $autogendir"
289
290 echo "Checking status of generated files..."
291
292 modified=$(status $basegen) || die
293
294 cd $oldpwd
295
296 commit "generated" $modified || die "commit error"
297
298 exit 0
299} # $autogendir
300
301
302[ "$info_flag" ] && info_dir
303
304
305[ "$ldefs_flag" ] || exit 0
306
307
308echo "Finding loaddef targets..."
309
310sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \
311 sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \
312 >| $tempfile || die "sed error"
313
314genfiles=
315
316while read genfile; do
317
318 [ -r lisp/$genfile ] || die "Unable to read $genfile"
319
320 genfiles="$genfiles $genfile"
321done < $tempfile
322
323
324[ "$genfiles" ] || die "Error setting genfiles"
325
326
327[ -e Makefile ] || {
328 echo "Running ./configure..."
329
330 ## Minimize required packages.
331 ./configure --without-x || die "configure error"
332}
333
334
335## Build the minimum needed to get the autoloads.
336echo "Running lib/ make..."
337
338make -C lib "$@" all || die "make lib error"
339
340
341echo "Running src/ make..."
342
343make -C src "$@" bootstrap-emacs || die "make src error"
344
345
346echo "Running lisp/ make..."
347
348make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error"
349
350
351## Ignore comment differences.
352[ ! "$lboot_flag" ] || \
353 diff -q -I '^;' $ldefs_in $ldefs_out || \
354 cp $ldefs_in $ldefs_out || die "cp ldefs_boot error"
355
356
357cd lisp
358
359echo "Checking status of loaddef files..."
360
361## It probably would be fine to just check+commit lisp/, since
362## making autoloads should not effect any other files. But better
363## safe than sorry.
364modified=$(status $genfiles ${ldefs_out#lisp/}) || die
365
366
367cd ../
368
369
370commit "loaddefs" $modified || die "commit error"
371
372
373exit 0
374
375### update_autogen ends here