diff options
| author | Bill Wohler | 2014-02-23 18:04:35 -0800 |
|---|---|---|
| committer | Bill Wohler | 2014-02-23 18:04:35 -0800 |
| commit | 3e93bafb95608467e438ba7f725fd1f020669f8c (patch) | |
| tree | f2f90109f283e06a18caea3cb2a2623abcfb3a92 /admin | |
| parent | 791c0d7634e44bb92ca85af605be84ff2ae08963 (diff) | |
| parent | e918e27fdf331e89268fc2c9d7cf838d3ecf7aa7 (diff) | |
| download | emacs-3e93bafb95608467e438ba7f725fd1f020669f8c.tar.gz emacs-3e93bafb95608467e438ba7f725fd1f020669f8c.zip | |
Merge from trunk; up to 2014-02-23T23:41:17Z!lekktu@gmail.com.
Diffstat (limited to 'admin')
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 | ||
| 10 | AIX | 10 | AIX |
| 11 | _AIX | 11 | _AIX |
| 12 | BSD_SYSTEM | ||
| 13 | CYGWIN Compiling the Cygwin port. | 12 | CYGWIN Compiling the Cygwin port. |
| 14 | __CYGWIN__ Ditto | 13 | __CYGWIN__ Ditto |
| 15 | GNU_LINUX | 14 | GNU_LINUX |
| @@ -25,7 +24,6 @@ _MSC_VER Compiling the W32 port with the Microsoft C compiler. | |||
| 25 | DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h). | 24 | DARWIN_OS Compiling on Mac OS X or pure Darwin (and using s/darwin.h). |
| 26 | SOLARIS2 | 25 | SOLARIS2 |
| 27 | USG | 26 | USG |
| 28 | USG5 | ||
| 29 | USG5_4 | 27 | USG5_4 |
| 30 | 28 | ||
| 31 | ** Distinguishing GUIs ** | 29 | ** Distinguishing GUIs ** |
| @@ -136,8 +134,6 @@ HAVE_DECL_STRTOUMAX | |||
| 136 | HAVE_DECL_SYS_SIGLIST | 134 | HAVE_DECL_SYS_SIGLIST |
| 137 | HAVE_DECL_TZNAME | 135 | HAVE_DECL_TZNAME |
| 138 | HAVE_DECL___SYS_SIGLIST | 136 | HAVE_DECL___SYS_SIGLIST |
| 139 | HAVE_DES_H | ||
| 140 | HAVE_DEV_PTMX | ||
| 141 | HAVE_DIALOGS | 137 | HAVE_DIALOGS |
| 142 | HAVE_DIFFTIME | 138 | HAVE_DIFFTIME |
| 143 | HAVE_DUP2 | 139 | HAVE_DUP2 |
| @@ -149,7 +145,6 @@ HAVE_FORK | |||
| 149 | HAVE_FREEIFADDRS | 145 | HAVE_FREEIFADDRS |
| 150 | HAVE_FREETYPE | 146 | HAVE_FREETYPE |
| 151 | HAVE_FSEEKO | 147 | HAVE_FSEEKO |
| 152 | HAVE_FSYNC | ||
| 153 | HAVE_FUTIMENS | 148 | HAVE_FUTIMENS |
| 154 | HAVE_FUTIMES | 149 | HAVE_FUTIMES |
| 155 | HAVE_FUTIMESAT | 150 | HAVE_FUTIMESAT |
| @@ -176,8 +171,6 @@ HAVE_GET_CURRENT_DIR_NAME | |||
| 176 | HAVE_GHOSTSCRIPT | 171 | HAVE_GHOSTSCRIPT |
| 177 | HAVE_GIF | 172 | HAVE_GIF |
| 178 | HAVE_GNUTLS | 173 | HAVE_GNUTLS |
| 179 | HAVE_GNUTLS_CALLBACK_CERTIFICATE_VERIFY | ||
| 180 | HAVE_GNUTLS_CERTIFICATE_SET_VERIFY_FUNCTION | ||
| 181 | HAVE_GPM | 174 | HAVE_GPM |
| 182 | HAVE_GRANTPT | 175 | HAVE_GRANTPT |
| 183 | HAVE_GSETTINGS | 176 | HAVE_GSETTINGS |
| @@ -200,26 +193,15 @@ HAVE_IMAGEMAGICK | |||
| 200 | HAVE_INET_SOCKETS | 193 | HAVE_INET_SOCKETS |
| 201 | HAVE_INTTYPES_H | 194 | HAVE_INTTYPES_H |
| 202 | HAVE_JPEG | 195 | HAVE_JPEG |
| 203 | HAVE_KERBEROSIV_DES_H | ||
| 204 | HAVE_KERBEROSIV_KRB_H | 196 | HAVE_KERBEROSIV_KRB_H |
| 205 | HAVE_KERBEROS_DES_H | ||
| 206 | HAVE_KERBEROS_KRB_H | 197 | HAVE_KERBEROS_KRB_H |
| 207 | HAVE_KRB5_ERROR_E_TEXT | 198 | HAVE_KRB5_ERROR_E_TEXT |
| 208 | HAVE_KRB5_ERROR_TEXT | 199 | HAVE_KRB5_ERROR_TEXT |
| 209 | HAVE_KRB5_H | 200 | HAVE_KRB5_H |
| 210 | HAVE_KRB_H | 201 | HAVE_KRB_H |
| 211 | HAVE_LANGINFO_CODESET | 202 | HAVE_LANGINFO_CODESET |
| 212 | HAVE_LIBCOM_ERR | ||
| 213 | HAVE_LIBCRYPTO | ||
| 214 | HAVE_LIBDES | ||
| 215 | HAVE_LIBDES425 | ||
| 216 | HAVE_LIBDGC | 203 | HAVE_LIBDGC |
| 217 | HAVE_LIBDNET | 204 | HAVE_LIBDNET |
| 218 | HAVE_LIBHESIOD | ||
| 219 | HAVE_LIBK5CRYPTO | ||
| 220 | HAVE_LIBKRB | ||
| 221 | HAVE_LIBKRB4 | ||
| 222 | HAVE_LIBKRB5 | ||
| 223 | HAVE_LIBKSTAT | 205 | HAVE_LIBKSTAT |
| 224 | HAVE_LIBLOCKFILE | 206 | HAVE_LIBLOCKFILE |
| 225 | HAVE_LIBM | 207 | HAVE_LIBM |
| @@ -228,12 +210,10 @@ HAVE_LIBOTF | |||
| 228 | HAVE_LIBPERFSTAT | 210 | HAVE_LIBPERFSTAT |
| 229 | HAVE_LIBPNG_PNG_H | 211 | HAVE_LIBPNG_PNG_H |
| 230 | HAVE_LIBPTHREADS | 212 | HAVE_LIBPTHREADS |
| 231 | HAVE_LIBRESOLV | ||
| 232 | HAVE_LIBSELINUX | 213 | HAVE_LIBSELINUX |
| 233 | HAVE_LIBXEXT | 214 | HAVE_LIBXEXT |
| 234 | HAVE_LIBXML2 | 215 | HAVE_LIBXML2 |
| 235 | HAVE_LIBXMU | 216 | HAVE_LIBXMU |
| 236 | HAVE_LINUX_VERSION_H | ||
| 237 | HAVE_LOCALTIME_R | 217 | HAVE_LOCALTIME_R |
| 238 | HAVE_LOCAL_SOCKETS | 218 | HAVE_LOCAL_SOCKETS |
| 239 | HAVE_LONG_FILE_NAMES | 219 | HAVE_LONG_FILE_NAMES |
| @@ -300,7 +280,6 @@ HAVE_SNPRINTF | |||
| 300 | HAVE_SOCKETS | 280 | HAVE_SOCKETS |
| 301 | HAVE_SOUND | 281 | HAVE_SOUND |
| 302 | HAVE_SOUNDCARD_H | 282 | HAVE_SOUNDCARD_H |
| 303 | HAVE_SPEED_T | ||
| 304 | HAVE_STDINT_H | 283 | HAVE_STDINT_H |
| 305 | HAVE_STDIO_EXT_H | 284 | HAVE_STDIO_EXT_H |
| 306 | HAVE_STDLIB_H | 285 | HAVE_STDLIB_H |
| @@ -379,7 +358,6 @@ HAVE_WS2TCPIP_H | |||
| 379 | HAVE_XAW3D | 358 | HAVE_XAW3D |
| 380 | HAVE_XFT | 359 | HAVE_XFT |
| 381 | HAVE_XIM | 360 | HAVE_XIM |
| 382 | HAVE_XKBGETKEYBOARD | ||
| 383 | HAVE_XPM | 361 | HAVE_XPM |
| 384 | HAVE_XRMSETDATABASE | 362 | HAVE_XRMSETDATABASE |
| 385 | HAVE_XSCREENNUMBEROFSCREEN | 363 | HAVE_XSCREENNUMBEROFSCREEN |
diff --git a/admin/ChangeLog b/admin/ChangeLog index 28e25ad98a3..f27a03af773 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,440 @@ | |||
| 1 | 2014-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 | |||
| 9 | 2014-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 | |||
| 14 | 2014-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 | |||
| 24 | 2014-01-13 Glenn Morris <rgm@gnu.org> | ||
| 25 | |||
| 26 | * update_autogen (status): New function. Use throughout. | ||
| 27 | |||
| 28 | 2014-01-10 Glenn Morris <rgm@gnu.org> | ||
| 29 | |||
| 30 | * update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS. | ||
| 31 | |||
| 32 | 2014-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 | |||
| 38 | 2014-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 | |||
| 46 | 2014-01-02 Xue Fuqiao <xfq.free@gmail.com> | ||
| 47 | |||
| 48 | * check-doc-strings: Replace `perl -w' with `use warnings;'. | ||
| 49 | |||
| 50 | 2013-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 | |||
| 55 | 2013-12-29 Xue Fuqiao <xfq.free@gmail.com> | ||
| 56 | |||
| 57 | * make-emacs: | ||
| 58 | * build-configs: Add the "use strict;" and "use warnings;" pragmas. | ||
| 59 | |||
| 60 | 2013-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 | |||
| 65 | 2013-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 | |||
| 73 | 2013-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 | |||
| 80 | 2013-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 | |||
| 86 | 2013-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 | |||
| 94 | 2013-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 | |||
| 109 | 2013-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 | |||
| 122 | 2013-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 | |||
| 127 | 2013-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 | |||
| 140 | 2013-12-01 Glenn Morris <rgm@gnu.org> | ||
| 141 | |||
| 142 | * unidata/Makefile.in (${DSTDIR}/charprop.el): | ||
| 143 | Ensure output files are writable. | ||
| 144 | |||
| 145 | 2013-11-30 Glenn Morris <rgm@gnu.org> | ||
| 146 | |||
| 147 | * grammars/Makefile.in: Ensure output files are writable. | ||
| 148 | |||
| 149 | 2013-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 | |||
| 154 | 2013-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 | |||
| 162 | 2013-11-28 Glenn Morris <rgm@gnu.org> | ||
| 163 | |||
| 164 | * unidata/unidata-gen.el (unidata-gen-files): | ||
| 165 | Disable autoloads in generated files. | ||
| 166 | |||
| 167 | 2013-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 | |||
| 175 | 2013-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 | |||
| 182 | 2013-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 | |||
| 187 | 2013-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 | |||
| 193 | 2013-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 | |||
| 203 | 2013-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 | |||
| 224 | 2013-10-23 Glenn Morris <rgm@gnu.org> | ||
| 225 | |||
| 226 | * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): | ||
| 227 | Quote entities that might contain whitespace. | ||
| 228 | |||
| 229 | 2013-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 | |||
| 235 | 2013-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 | |||
| 240 | 2013-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 | |||
| 245 | 2013-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 | |||
| 250 | 2013-08-15 Glenn Morris <rgm@gnu.org> | ||
| 251 | |||
| 252 | * make-tarball.txt: Mention generating pdfs in etc/refcards. | ||
| 253 | |||
| 254 | 2013-08-15 Xue Fuqiao <xfq.free@gmail.com> | ||
| 255 | |||
| 256 | * notes/hydra: More information about Hydra. | ||
| 257 | |||
| 258 | 2013-08-10 Xue Fuqiao <xfq.free@gmail.com> | ||
| 259 | |||
| 260 | * notes/hydra: New file. | ||
| 261 | |||
| 262 | 2013-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 | |||
| 267 | 2013-07-12 Glenn Morris <rgm@gnu.org> | ||
| 268 | |||
| 269 | * admin.el (manual-style-string): Use non-abbreviated url. | ||
| 270 | |||
| 271 | 2013-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 | |||
| 279 | 2013-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 | |||
| 285 | 2013-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 | |||
| 295 | 2013-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 | |||
| 300 | 2013-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 | |||
| 309 | 2013-06-15 Xue Fuqiao <xfq.free@gmail.com> | ||
| 310 | |||
| 311 | * notes/changelogs: Mention trivial changes in Change Log. | ||
| 312 | |||
| 313 | 2013-06-13 Glenn Morris <rgm@gnu.org> | ||
| 314 | |||
| 315 | * admin.el (manual-style-string): Use new file manual.css. | ||
| 316 | |||
| 317 | 2013-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 | |||
| 323 | 2013-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 | |||
| 329 | 2013-05-15 Stefan Monnier <monnier@iro.umontreal.ca> | ||
| 330 | |||
| 331 | * quick-install-emacs: Don't prune DOC-* files a any more. | ||
| 332 | |||
| 333 | 2013-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 | |||
| 339 | 2013-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 | |||
| 346 | 2013-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 | |||
| 352 | 2013-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 | |||
| 368 | 2013-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 | |||
| 374 | 2013-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 | |||
| 382 | 2013-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 | |||
| 389 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 390 | |||
| 391 | * admin.el (manual-pdf, manual-dvi): Pass -I to texi2pdf, texi2dvi. | ||
| 392 | |||
| 393 | 2013-03-16 Glenn Morris <rgm@gnu.org> | ||
| 394 | |||
| 395 | * admin.el (manual-html-mono, manual-html-node): Add -DWWW_GNU_ORG. | ||
| 396 | |||
| 397 | 2013-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 | |||
| 403 | 2013-03-11 Paul Eggert <eggert@cs.ucla.edu> | ||
| 404 | |||
| 405 | * notes/unicode: Improve notes about Emacs source file encoding. | ||
| 406 | |||
| 407 | 2013-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 | |||
| 414 | 2013-03-10 Glenn Morris <rgm@gnu.org> | ||
| 415 | |||
| 416 | * admin.el (add-release-logs): Use UTC for release date. | ||
| 417 | |||
| 418 | 2013-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 | |||
| 423 | 2013-03-05 Paul Eggert <eggert@cs.ucla.edu> | ||
| 424 | |||
| 425 | * notes/unicode: Add notes about Emacs source file encoding. | ||
| 426 | |||
| 427 | 2013-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 | |||
| 433 | 2013-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 | |||
| 1 | 2013-02-25 Paul Eggert <eggert@cs.ucla.edu> | 438 | 2013-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 | ||
| 30 | 2012-12-14 Paul Eggert <eggert@cs.ucla.edu> | 467 | 2012-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 | ||
| 35 | 2012-12-08 Paul Eggert <eggert@cs.ucla.edu> | 472 | 2012-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 | ||
| 148 | 2012-10-01 David Engster <deng@randomsample.de> | 585 | 2012-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 | ||
| 153 | 2012-10-01 David Engster <deng@randomsample.de> | 590 | 2012-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 | ||
| 167 | 2012-09-27 Glenn Morris <rgm@gnu.org> | 604 | 2012-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 | ||
| 1047 | 2011-02-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1048 | |||
| 1049 | * notes/copyright: Remove src/md5.c and src/md5.h as special cases. | ||
| 1050 | |||
| 610 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 1051 | 2011-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 | ||
| 620 | 2011-02-12 Glenn Morris <rgm@gnu.org> | 1062 | 2011-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 | ||
| 1686 | 2001-09-04 Andrew Innes <andrewi@gnu.org> | 2126 | 2001-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 |
| 8 | Check for node names using problematic characters: | ||
| 9 | find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} + | ||
| 10 | Sadly makeinfo does not warn about such characters. | ||
| 11 | |||
| 6 | Check cross-references between the manuals (eg from emacs to elisp) | 12 | Check cross-references between the manuals (eg from emacs to elisp) |
| 7 | are correct. You can use something like the following in the info | 13 | are correct. You can use something like the following in the info |
| 8 | directory in the Emacs build tree: | 14 | directory in the Emacs build tree: |
| @@ -10,6 +16,28 @@ directory in the Emacs build tree: | |||
| 10 | emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \ | 16 | emacs -Q --eval "(progn (require 'info) (setq Info-directory-list '(\".\")))" \ |
| 11 | -f info-xref-check-all | 17 | -f info-xref-check-all |
| 12 | 18 | ||
| 19 | Setting Info-directory-list avoids having system info pages confuse | ||
| 20 | things. References to external manuals will be flagged as | ||
| 21 | uncheckable. You should still check these, and also that each | ||
| 22 | external manual has an appropriate redirect in the file manual/.htaccess | ||
| 23 | in the web pages repository. E.g.: | ||
| 24 | Redirect /software/emacs/manual/html_mono/automake.html /software/automake/manual/automake.html | ||
| 25 | Redirect /software/emacs/manual/html_node/automake/ /software/automake/manual/html_node/ | ||
| 26 | |||
| 27 | Another tool you can use to check links is gnu.org's linc.py: | ||
| 28 | http://www.gnu.org/server/source/ | ||
| 29 | |||
| 30 | You run this something like: | ||
| 31 | |||
| 32 | cd /path/to/cvs/emacs-www | ||
| 33 | linc.py -o /path/to/output-dir --url http://www.gnu.org/software/emacs/ . | ||
| 34 | |||
| 35 | Be warned that it is really, really slow (as in, can take ~ a full day | ||
| 36 | to check the manual/ directory). It is probably best to run it on a | ||
| 37 | single directory at a time from eg manual/html_node. It is very | ||
| 38 | inefficient, but may reveal a few things that info-xref does not. | ||
| 39 | |||
| 40 | |||
| 13 | make emacs.dvi, elisp.dvi, and deal with any errors (undefined | 41 | make emacs.dvi, elisp.dvi, and deal with any errors (undefined |
| 14 | references etc) in the output. Break any overfull lines. | 42 | references etc) in the output. Break any overfull lines. |
| 15 | Underfull hboxes are not serious, but it can be nice to get rid of | 43 | Underfull 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 | |||
| 42 | emacs.pdf' (e.g., enable "smallbook"). | 70 | emacs.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. |
| 45 | Regenerate the pdf versions in etc/refcards/. | ||
| 46 | What paper size are the English versions supposed to be on? | 73 | What paper size are the English versions supposed to be on? |
| 47 | On Debian testing, the packages texlive-lang-czechslovak and | 74 | On Debian testing, the packages texlive-lang-czechslovak and |
| 48 | texlive-lang-polish will let you generate the cs-* and sk-* pdfs. | 75 | texlive-lang-polish will let you generate the cs-* and sk-* pdfs. |
| @@ -112,7 +139,7 @@ SECTION READERS | |||
| 112 | ---------------------------------- | 139 | ---------------------------------- |
| 113 | TUTORIAL cyd | 140 | TUTORIAL cyd |
| 114 | TUTORIAL.bg ogi | 141 | TUTORIAL.bg ogi |
| 115 | TUTORIAL.cn | 142 | TUTORIAL.cn xfq |
| 116 | TUTORIAL.cs | 143 | TUTORIAL.cs |
| 117 | TUTORIAL.de wl | 144 | TUTORIAL.de wl |
| 118 | TUTORIAL.eo | 145 | TUTORIAL.eo |
| @@ -120,7 +147,7 @@ TUTORIAL.es | |||
| 120 | TUTORIAL.fr | 147 | TUTORIAL.fr |
| 121 | TUTORIAL.he eliz | 148 | TUTORIAL.he eliz |
| 122 | TUTORIAL.it | 149 | TUTORIAL.it |
| 123 | TUTORIAL.ja | 150 | TUTORIAL.ja |
| 124 | TUTORIAL.ko | 151 | TUTORIAL.ko |
| 125 | TUTORIAL.nl Pieter Schoenmakers | 152 | TUTORIAL.nl Pieter Schoenmakers |
| 126 | TUTORIAL.pl | 153 | TUTORIAL.pl |
| @@ -191,7 +218,6 @@ xresources.texi cyd | |||
| 191 | ** Check the Lisp manual. | 218 | ** Check the Lisp manual. |
| 192 | 219 | ||
| 193 | abbrevs.texi rgm | 220 | abbrevs.texi rgm |
| 194 | advice.texi cyd | ||
| 195 | anti.texi rgm | 221 | anti.texi rgm |
| 196 | back.texi rgm | 222 | back.texi rgm |
| 197 | backups.texi cyd | 223 | backups.texi cyd |
diff --git a/admin/README b/admin/README index d696a14176e..6a5fce688a9 100644 --- a/admin/README +++ b/admin/README | |||
| @@ -1,4 +1,4 @@ | |||
| 1 | Copyright (C) 2001-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See 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. |
| 33 | Root must be the root of an Emacs source tree." | 37 | Root must be the root of an Emacs source tree. |
| 34 | (interactive "DEmacs root directory: \nNVersion number: ") | 38 | Optional 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. |
| 60 | Root must be the root of an Emacs source tree." | 75 | Root 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. |
| 149 | Root must be the root of an Emacs source tree." | 168 | Root 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: ") | 204 | ROOT 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. | ||
| 224 | ROOT should be the root of an Emacs source tree. | ||
| 225 | Interactively with a prefix argument, prompt for TYPE. | ||
| 226 | Optional 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." | |||
| 255 | This function also edits the HTML files so that they validate as | 311 | This function also edits the HTML files so that they validate as |
| 256 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using | 312 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using |
| 257 | the @import directive." | 313 | the @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 | |||
| 275 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using | 338 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using |
| 276 | the @import directive." | 339 | the @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" |
| 320 | Also 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. | ||
| 464 | Also 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) | 478 | Leave 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.*• \\(<a.*</a>\\)\ |
| 376 | ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$") | 486 | :</td><td> </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 " ") | 494 | style=\"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 " *—") |
| 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. |
| 439 | If optional OLD is non-nil, also include defvars." | 609 | If 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. |
| 455 | Return a list with elements of the form (VAR . VER), | 625 | Return a list with elements of the form (VAR . VER), |
| 456 | This means that FILE contains a defcustom for variable VAR, with | 626 | This means that FILE contains a defcustom for variable VAR, with |
| 457 | a :version tag having value VER (may be nil). | 627 | a :version tag having value VER (may be nil). |
| 458 | If optional argument OLD is non-nil, also scan for defvars." | 628 | If 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. |
| 526 | NEWDIR is the current lisp/ directory, OLDDIR is that from the previous | 702 | NEWDIR is the current lisp/ directory, OLDDIR is that from the |
| 527 | release. A defcustom that is only in NEWDIR should have a :version | 703 | previous release, VERSION is the new version number. A |
| 528 | tag. We exclude cases where a defvar exists in OLDDIR, since | 704 | `defcustom' that is only in NEWDIR should have a :version tag. |
| 529 | just converting a defvar to a defcustom does not require a :version bump. | 705 | We exclude cases where a `defvar' exists in OLDDIR, since just |
| 706 | converting a `defvar' to a `defcustom' does not require | ||
| 707 | a :version bump. | ||
| 530 | 708 | ||
| 531 | Note that a :version tag should also be added if the value of a defcustom | 709 | Note that a :version tag should also be added if the value of a defcustom |
| 532 | changes (in a non-trivial way). This function does not check for that." | 710 | changes (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 | ||
| 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/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 | ||
| 22 | require 5; | 22 | require 5; |
| 23 | use strict; | ||
| 24 | use warnings; | ||
| 23 | use Getopt::Long; | 25 | use Getopt::Long; |
| 24 | use File::Basename; | 26 | use File::Basename; |
| 25 | use Cwd; | 27 | use 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! | 323 | BEWARE! Important metadata is kept in this Emacs session! |
| 324 | Do not commit without re-running `M-x bzrmerge' first!" | 324 | Do 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 @@ | |||
| 1 | Copyright (C) 2009-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2009-2014 Free Software Foundation, Inc. |
| 2 | Copyright (C) 2009, 2010, 2011 | 2 | Copyright (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 | ||
| 9 | This directory contains two kinds of charset map files; verbatim copies | 9 | This directory contains two kinds of charset map files; verbatim |
| 10 | (or their compressed versions) of files freely available in the | 10 | copies of files freely available in the Internet, and newly created |
| 11 | Internet, and newly created files based on freely available | 11 | files based on freely available information. |
| 12 | information. | ||
| 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 | ||
| 18 | The uncompressed version is available at: | 17 | Available 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 | ||
| 23 | The uncompressed version is available at: | 22 | Available 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 | ||
| 28 | The version compressed by Unix's "compress" command is available at: | 27 | The 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> |
| 29 | This directory's copy has corrected the misspellings of "characters" | ||
| 30 | and of "Byelorussian". | ||
| 30 | 31 | ||
| 31 | * bulgarian-mik.txt.gz | 32 | * bulgarian-mik.txt |
| 32 | 33 | ||
| 33 | It is available at: | 34 | The 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 | ||
| 38 | Uncompressed version is available at: | 39 | Available 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 | ||
| 43 | The uncompressed versions are available at: | 44 | Available 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 | ||
| 51 | Created manually by looking at these pages: | 52 | Created 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: | |||
| 54 | The text in that page is under the terms of the GNU Free Documentation | 55 | The text in that page is under the terms of the GNU Free Documentation |
| 55 | License. | 56 | License. |
| 56 | 57 | ||
| 57 | * JISX213A.map.gz | 58 | * JISX213A.map |
| 58 | 59 | ||
| 59 | Created manually based on the description of the section 33 in "JIS X | 60 | Created manually based on the description of the section 33 in "JIS X |
| 60 | 0213:2004 Amendment 1". It lists 10 characters that are newly added | 61 | 0213:2004 Amendment 1". It lists 10 characters that are newly added |
| 61 | to "JIS X 0213:2004". | 62 | to "JIS X 0213:2004". |
| 62 | 63 | ||
| 63 | * MULE-*.map.gz | 64 | * MULE-*.map |
| 64 | 65 | ||
| 65 | Created by using ../mule-charsets.el in Emacs 22 as this: | 66 | Created 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 | # |
| 50 | 0020 20 # SPACE # space | 60 | 0020 20 # SPACE # space |
| 51 | 00A0 20 # NO-BREAK SPACE # space | 61 | 00A0 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 | # |
| 53 | 0020 20 # SPACE # space | 63 | 0020 20 # SPACE # space |
| 54 | 00A0 20 # NO-BREAK SPACE # space | 64 | 00A0 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 -*- |
| 2 | eval 'exec perl -w -S $0 ${1+"$@"}' # Portability kludge | 2 | eval '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 | ||
| 8 | use strict; | 8 | use strict; |
| 9 | use warnings; | ||
| 9 | use POSIX; | 10 | use 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'. | ||
| 111 | Names 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) | 242 | If 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. | ||
| 257 | If GROUP is non-nil, return groups rather than options. | ||
| 258 | If GROUP is `cus-load', include groups listed in cus-loads as well as | ||
| 259 | currently 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. |
| 310 | Don't load libraries in `cus-test-libs-noloads'." | 313 | Don't load libraries in `cus-test-libs-noloads'. |
| 314 | If optional argument MORE is \"defcustom\", load all files with defcustoms. | ||
| 315 | If 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)) | 343 | Optional 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. |
| 358 | This function is suitable for batch mode. E.g., invoke | 368 | This 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 | ||
| 362 | in the Emacs source directory." | 372 | in the Emacs source directory. |
| 373 | Normally only tests options belonging to files in loaddefs.el. | ||
| 374 | If 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. |
| 449 | This function is useful to detect load problems of libraries. | 465 | This function is useful to detect load problems of libraries. |
| 450 | It is suitable for batch mode. E.g., invoke | 466 | It 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 | ||
| 454 | in the Emacs source directory." | 470 | in the Emacs source directory. |
| 471 | |||
| 472 | If optional argument MORE is \"defcustom\", load all files with defcustoms. | ||
| 473 | If 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 | ||
| 496 | in the Emacs source directory." | 519 | in 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 | |||
| 25 | SHELL = @SHELL@ | ||
| 26 | |||
| 27 | srcdir = @srcdir@ | ||
| 28 | top_srcdir = @top_srcdir@ | ||
| 29 | top_builddir = @top_builddir@ | ||
| 30 | |||
| 31 | EMACS = ${top_builddir}/src/emacs | ||
| 32 | emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp | ||
| 33 | |||
| 34 | make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser | ||
| 35 | make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser | ||
| 36 | |||
| 37 | cedetdir = ${top_srcdir}/lisp/cedet | ||
| 38 | bovinedir = ${cedetdir}/semantic/bovine | ||
| 39 | wisentdir = ${cedetdir}/semantic/wisent | ||
| 40 | |||
| 41 | BOVINE = \ | ||
| 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! | ||
| 50 | WISENT = \ | ||
| 51 | ${wisentdir}/javat-wy.el \ | ||
| 52 | ${wisentdir}/js-wy.el \ | ||
| 53 | ${wisentdir}/python-wy.el \ | ||
| 54 | ${cedetdir}/srecode/srt-wy.el | ||
| 55 | |||
| 56 | ALL = ${BOVINE} ${WISENT} | ||
| 57 | |||
| 58 | .PHONY: all bovine wisent | ||
| 59 | |||
| 60 | all: ${ALL} | ||
| 61 | |||
| 62 | bovine: ${BOVINE} | ||
| 63 | |||
| 64 | wisent: ${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 | |||
| 103 | distclean: | ||
| 104 | rm -f Makefile | ||
| 105 | |||
| 106 | bootstrap-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. | ||
| 110 | extraclean: | ||
| 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 @@ | |||
| 1 | This directory contains grammar files in Bison and Wisent, used to | ||
| 2 | generate the parser data in the lisp/semantic/bovine/ and | ||
| 3 | lisp/semantic/wisent/ directories. You can run the parser generators | ||
| 4 | with | ||
| 5 | |||
| 6 | emacs -batch -Q -l semantic/bovine/grammar -f bovine-make-parsers | ||
| 7 | emacs -batch -Q -l semantic/wisent/grammar -f wisent-make-parsers | ||
| 8 | |||
| 9 | Currently, the parser files in lisp/ are not generated directly from | ||
| 10 | these grammar files when making Emacs. This state of affairs, and the | ||
| 11 | contents 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! |
| 899 | variablearg | 903 | variablearg |
| 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 | |||
| 908 | variablearg-opt-name | 912 | variablearg-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 | ||
| 923 | varnamelist | 929 | varnamelist |
| 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 | ||
| 1109 | function-pointer | 1115 | function-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 | ||
| 1151 | opt-stuff-after-symbol | 1157 | opt-brackets-after-symbol |
| 1158 | : brackets-after-symbol | ||
| 1159 | | ;; EMPTY | ||
| 1160 | ; | ||
| 1161 | |||
| 1162 | brackets-after-symbol | ||
| 1152 | : PAREN_BLCK | 1163 | : PAREN_BLCK |
| 1153 | | BRACK_BLCK | 1164 | | BRACK_BLCK |
| 1154 | | ;; EMPTY | ||
| 1155 | ; | 1165 | ; |
| 1156 | 1166 | ||
| 1157 | multi-stage-dereference | 1167 | multi-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 | ||
| 1163 | string-seq | 1179 | string-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") |
| 391 | import_declaration | 396 | import_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") |
| 480 | constructor_declaration | 485 | constructor_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 | ||
| 493 | constructor_body | 498 | constructor_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") |
| 499 | method_declaration | 504 | method_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 | ||
| 275 | FunctionDeclaration : FUNCTION VARIABLE FormalParameterListBlock Block | 281 | FunctionDeclaration : 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 | |||
| 347 | ContinueStatement : CONTINUE SEMICOLON | 353 | ContinueStatement : CONTINUE SEMICOLON |
| 348 | ; | 354 | ; |
| 349 | 355 | ||
| 350 | ;;JAVE break needs labels | 356 | ;;JAVE break needs labels |
| 351 | BreakStatement : BREAK SEMICOLON | 357 | BreakStatement : 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 | |||
| 125 | variable | 125 | variable |
| 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 | ||
| 23 | require 5; | 23 | require 5; |
| 24 | use strict; | ||
| 25 | use warnings; | ||
| 24 | use Getopt::Long; | 26 | use Getopt::Long; |
| 25 | use File::Basename; | 27 | use File::Basename; |
| 26 | use Cwd; | 28 | use 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 @@ | |||
| 1 | Instructions to create pretest or release tarballs. | 1 | Instructions 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 | |||
| 53 | 5. autoreconf -i -I m4 --force | 57 | 5. 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 | |||
| 56 | 6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. | 63 | 6. 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 | ||
| 82 | 9. cd EMACS_ROOT_DIR && bzr tag TAG | 90 | 9. 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 | ||
| 137 | 12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. | 145 | 12. 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 @@ | |||
| 26 | GNULIB_URL=git://git.savannah.gnu.org/gnulib.git | 26 | GNULIB_URL=git://git.savannah.gnu.org/gnulib.git |
| 27 | 27 | ||
| 28 | GNULIB_MODULES=' | 28 | GNULIB_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 | ||
| 42 | GNULIB_TOOL_FLAGS=' | 45 | GNULIB_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 && |
| 92 | rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && | 95 | rm -- "$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 && | ||
| 93 | cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && | 97 | cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && |
| 94 | cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && | 98 | cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && |
| 95 | autoreconf -i -I m4 -- ${src:+"$src"} | 99 | autoreconf -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? |
| 10 | Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org. | 10 | Use M-x report-emacs-bug, or send mail to bug-gnu-emacs@gnu.org. |
| 11 | If you want to Cc someone, use an "X-Debbugs-CC" header instead. | 11 | If you want to Cc someone, use an "X-Debbugs-CC" header (or |
| 12 | pseudo-header, see below) instead. | ||
| 12 | 13 | ||
| 13 | ** How do I comment on a bug? | 14 | ** How do I comment on a bug? |
| 14 | Reply to a mail on the bug-gnu-emacs list in the normal way. | 15 | Reply 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. | |||
| 52 | ii) Optionally, you can set some database parameters when you first | 53 | ii) Optionally, you can set some database parameters when you first |
| 53 | report a bug (see "Setting bug parameters" below). | 54 | report a bug (see "Setting bug parameters" below). |
| 54 | 55 | ||
| 55 | iii) If you want to CC: someone, use X-Debbugs-CC: (this is important; | 56 | iii) If you want to CC: someone, use X-Debbugs-CC: (note this only |
| 56 | see below). | 57 | applies to _new_ reports, not followups). |
| 57 | 58 | ||
| 58 | Once your report is filed and assigned a number, it is sent out to the | 59 | Once your report is filed and assigned a number, it is sent out to the |
| 59 | bug mailing list. In some cases, it may be appropriate to just file a | 60 | bug 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 | |||
| 92 | you might want to have a dialog with the owner address, outside of | 93 | you might want to have a dialog with the owner address, outside of |
| 93 | normal bug reporting.) | 94 | normal 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. |
| 97 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a | 98 | Instead, use "X-Debbugs-CC:". This ensures the Cc address will get a |
| 98 | mail with the bug report number in. If you do not do this, each reply | 99 | mail with the bug report number in. If you do not do this, each reply |
| 99 | in the subsequent discussion will end up creating a new bug. | 100 | in the subsequent discussion might end up creating a new bug. |
| 100 | This is annoying. | 101 | This is annoying. (So annoying that a form of message-id tracking has |
| 102 | been implemented to hopefully stop this happening, but it is still | ||
| 103 | better to use X-Debbugs-CC.) | ||
| 101 | 104 | ||
| 102 | (So annoying that a form of message-id tracking has been implemented | 105 | Like any X-Debbugs- header, this one can also be specified in the |
| 103 | to hopefully stop this happening, but it is still better to use X-Debbugs-CC.) | 106 | pseudo-header (see below), if your mail client does not let you add |
| 107 | "X-" headers. | ||
| 104 | 108 | ||
| 105 | If a new report contains X-Debbugs-CC in the input, this is | 109 | If a new report contains X-Debbugs-CC in the input, this is |
| 106 | converted to a real Cc header in the output. (See Bug#1720). | 110 | converted to a real Cc header in the output. (See Bug#1780,5384) |
| 107 | It is also merged into the Resent-CC header (see below). | 111 | It 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 | |||
| 218 | Version: 23.0.60 | 222 | Version: 23.0.60 |
| 219 | Severity: minor | 223 | Severity: minor |
| 220 | 224 | ||
| 221 | This can also include tags. Some things (e.g. submitter) don't seem to | 225 | This can also include tags, or any X-Debbugs- setting. |
| 222 | work here. | 226 | Some things (e.g. submitter) don't seem to work here. |
| 223 | 227 | ||
| 224 | Otherwise, send mail to the control server, control@debbugs.gnu.org. | 228 | Otherwise, send mail to the control server, control@debbugs.gnu.org. |
| 225 | At the start of the message body, supply the desired commands, one per | 229 | At the start of the message body, supply the desired commands, one per |
| @@ -627,7 +631,9 @@ following headers: | |||
| 627 | 631 | ||
| 628 | 1) The leading envelope From line. | 632 | 1) The leading envelope From line. |
| 629 | 2) Message-ID (get it from /var/log/mailman/vette). | 633 | 2) Message-ID (get it from /var/log/mailman/vette). |
| 630 | 3) X-Debbugs-Envelope-To: submit | 634 | 3) X-Debbugs-Envelope-To: xxx |
| 635 | For a new report, xxx = submit; for a control message, xxx = control; | ||
| 636 | for a reply to bug#123, xxx = 123 | ||
| 631 | 637 | ||
| 632 | Then pipe it to receive as above. | 638 | Then 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 | ||
| 318 | or simply delete the entire branch if you created it just for this. | 318 | or simply delete the entire branch if you created it just for this. |
| 319 | |||
| 320 | * Commit emails | ||
| 321 | |||
| 322 | ** Old method: bzr-hookless-email | ||
| 323 | https://launchpad.net/bzr-hookless-email | ||
| 324 | |||
| 325 | Runs hourly via cron. Must ask Savannah admins to enable/disable it | ||
| 326 | for each branch. Stores the last revision that it mailed as | ||
| 327 | last_revision_mailed in branch.conf on the server. Breaks with bzr 2.6: | ||
| 328 | |||
| 329 | http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00000.html | ||
| 330 | |||
| 331 | Fix from https://bugs.launchpad.net/bzr-hookless-email/+bug/988195 | ||
| 332 | only partially works. Breaks again on every merge commit: | ||
| 333 | |||
| 334 | https://lists.ubuntu.com/archives/bazaar/2013q2/075520.html | ||
| 335 | http://lists.gnu.org/archive/html/savannah-hackers-public/2013-05/msg00024.html | ||
| 336 | |||
| 337 | You can force it to skip the merge commit by changing the value for | ||
| 338 | last_revision_mailed, eg: | ||
| 339 | |||
| 340 | bzr 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 | ||
| 343 | https://launchpad.net/bzr-email | ||
| 344 | http://lists.gnu.org/archive/html/savannah-hackers-public/2013-06/msg00007.html | ||
| 345 | |||
| 346 | Runs on commit. Projects can enable it themselves by using `bzr | ||
| 347 | config' to set post_commit_to option for a branch. See `bzr help email' | ||
| 348 | (if you have the plugin installed) for other options. | ||
| 349 | |||
| 350 | The From: address will be that of your Savannah account, rather than | ||
| 351 | your `bzr whoami' information. | ||
| 352 | |||
| 353 | Note: if you have the bzr-email plugin installed locally, then when | ||
| 354 | you commit to the Emacs repository it will also try to send a commit | ||
| 355 | email from your local machine. If your machine is not configured to | ||
| 356 | send external mail, this will just fail. In any case, you may prefer | ||
| 357 | to either remove the plugin from your machine, or disable it for Emacs | ||
| 358 | branches. You can do this either by editing branch.conf in your Emacs | ||
| 359 | branches, to override the server setting (untested; not sure this | ||
| 360 | works), or by adding an entry to ~/.bazaar/locations.conf: | ||
| 361 | |||
| 362 | [bzr+ssh://USERNAME@bzr.savannah.gnu.org/emacs/*/] | ||
| 363 | post_commit_to = "" | ||
| 364 | |||
| 365 | You have to use locations.conf rather than bazaar.conf because the | ||
| 366 | latter has a lower priority than branch.conf. | ||
| 367 | |||
| 368 | * Using git-bzr | ||
| 369 | |||
| 370 | ** initially | ||
| 371 | |||
| 372 | You can use Git locally to talk to the Bazaar repo as a "remote" repo | ||
| 373 | via git-bzr (aka git-remote-bzr). Initial clone: | ||
| 374 | |||
| 375 | git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e | ||
| 376 | |||
| 377 | This creates the working dir e/ (with subdir .git, etc). Disk usage | ||
| 378 | is 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 | |||
| 382 | where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m" | ||
| 383 | results in "du -sh .git" => 559M, about double the smallest reported | ||
| 384 | value (obtained with "deprecated" command "git gc --aggressive"). | ||
| 385 | |||
| 386 | ** steady-state | ||
| 387 | |||
| 388 | Use "fetch", "pull" and other remote-to-local commands as usual. | ||
| 389 | |||
| 390 | For "push", the Emacs Bazaar repo is configured with | ||
| 391 | |||
| 392 | append_revisions_only = True | ||
| 393 | |||
| 394 | so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation | ||
| 395 | (in func do_export) instead of displaying a "non fast-forward" message | ||
| 396 | and skipping the branch. See: | ||
| 397 | |||
| 398 | http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html | ||
| 399 | |||
| 400 | which 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. | |||
| 5 | http://lists.gnu.org/archive/html/emacs-devel/2007-09/msg00793.html | 5 | http://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 | ||
| 9 | http://lists.gnu.org/archive/html/emacs-devel/2006-12/msg01135.html | 11 | http://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 | ||
| 49 | Followup discussion: | 58 | Followup discussion: |
| 50 | http://lists.gnu.org/archive/html/emacs-devel/2010-01/msg00897.html | 59 | http://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 @@ | |||
| 1 | Copyright (C) 2007-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2007-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See 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 @@ | |||
| 1 | NOTES ON THE EMACS PACKAGE ARCHIVE | 1 | NOTES ON THE EMACS PACKAGE ARCHIVE |
| 2 | 2 | ||
| 3 | The GNU Emacs package archive, at elpa.gnu.org, is managed using a Bzr | 3 | The GNU Emacs package archive, at elpa.gnu.org, is managed using a Git |
| 4 | branch named "elpa", hosted on Savannah. To check it out: | 4 | repository 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 | ||
| 12 | Changes to this branch propagate to elpa.gnu.org in a semi-manual way. | 11 | Changes to this branch propagate to elpa.gnu.org via a "deployment" script run |
| 13 | There exists a copy of the elpa branch on that machine. Someone with | 12 | daily. This script (which is kept in elpa/admin/update-archive.sh) generates |
| 14 | access logs in, pulls the latest changes from Savannah, and runs a | 13 | the content visible at http://elpa.gnu.org/packages. |
| 15 | "deployment" script. This script (which is itself kept in the Bzr | ||
| 16 | branch) generates the content visible at http://elpa.gnu.org/packages. | ||
| 17 | 14 | ||
| 18 | The reason we set things up this way, instead of using the package | 15 | A new package is released as soon as the "version number" of that package is |
| 19 | upload commands in package-x.el, is to let Emacs hackers conveniently | 16 | changed. So you can use `elpa' to work on a package without fear of releasing |
| 20 | edit the contents of the "elpa" branch. (In particular, multi-file | 17 | those changes prematurely. And once the code is ready, just bump the |
| 21 | packages are stored on the branch in source form, not as tarfiles.) | 18 | version number to make a new release of the package. |
| 22 | 19 | ||
| 23 | It is easy to use the elpa branch to deploy a "local" copy of the | 20 | It is easy to use the elpa branch to deploy a "local" copy of the |
| 24 | package archive. For details, see the README file in the elpa branch. | 21 | package 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 @@ | |||
| 1 | Copyright (C) 2002-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2002-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See 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 | |||
| 3 | Copyright (C) 2013-2014 Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | ||
| 5 | |||
| 6 | NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA | ||
| 7 | |||
| 8 | A continuous build for Emacs can be found at | ||
| 9 | http://hydra.nixos.org/jobset/gnu/emacs-trunk | ||
| 10 | http://hydra.nixos.org/jobset/gnu/emacs-24 | ||
| 11 | |||
| 12 | * It builds Emacs on various platforms. | ||
| 13 | Sometimes jobs fail due to hydra problems rather than Emacs problems. | ||
| 14 | Eg it seems like the cygwin build will never work again. | ||
| 15 | http://lists.gnu.org/archive/html/hydra-users/2013-08/msg00000.html | ||
| 16 | |||
| 17 | * Mail notifications | ||
| 18 | In addition to the web interface, Hydra can send notifications by | ||
| 19 | email when the build status of a project changes—e.g., from | ||
| 20 | `SUCCEEDED' to `FAILED'. It sends notifications about build status in | ||
| 21 | Emacs trunk to emacs-buildstatus@gnu.org. | ||
| 22 | |||
| 23 | If you want to receive these notifications, please subscribe at | ||
| 24 | http://lists.gnu.org/mailman/listinfo/emacs-buildstatus | ||
| 25 | |||
| 26 | * The Emacs jobset consists of the following jobs: | ||
| 27 | |||
| 28 | ** The `tarball' job | ||
| 29 | which gets a checkout from bzr, and does a bootstrap followed | ||
| 30 | by running make-dist to create a tarball. If this job fails, all the | ||
| 31 | others will too (because they use the tarball as input). | ||
| 32 | |||
| 33 | ** The `build' job | ||
| 34 | which starts from the tarball and does a normal build | ||
| 35 | |||
| 36 | ** The 'coverage' job | ||
| 37 | does a gcov build and then runs `make check'. Fails if any test fails. | ||
| 38 | |||
| 39 | * Nix expressions | ||
| 40 | The recipe for GNU Emacs are available via Git: | ||
| 41 | http://git.savannah.gnu.org/cgit/hydra-recipes.git/tree/emacs | ||
| 42 | |||
| 43 | To modify the build job, email the patch to hydra-users@gnu.org. The | ||
| 44 | build recipes are written in the Nix language. | ||
| 45 | |||
| 46 | * Other Information | ||
| 47 | For a list of other GNU packages that have a continuous build on | ||
| 48 | Hydra, see http://hydra.nixos.org/project/gnu | ||
| 49 | |||
| 50 | See http://www.gnu.org/software/devel.html#Hydra for more information. | ||
| 51 | |||
| 52 | |||
| 53 | This file is part of GNU Emacs. | ||
| 54 | |||
| 55 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 56 | it under the terms of the GNU General Public License as published by | ||
| 57 | the Free Software Foundation, either version 3 of the License, or | ||
| 58 | (at your option) any later version. | ||
| 59 | |||
| 60 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 61 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 62 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 63 | GNU General Public License for more details. | ||
| 64 | |||
| 65 | You should have received a copy of the GNU General Public License | ||
| 66 | along 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 @@ | |||
| 1 | Some lisp/emacs-lisp/ Features and Where They Are Documented | 1 | Some lisp/emacs-lisp/ Features and Where They Are Documented |
| 2 | 2 | ||
| 3 | Copyright (C) 2007-2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2007-2014 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See 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 | ||
| 3 | Copyright (C) 2007-2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2007-2014 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | From README.multi-tty in the multi-tty branch. | 6 | From 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 | ||
| 3 | Copyright (C) 2002-2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2002-2014 Free Software Foundation, Inc. |
| 4 | See the end of the file for license conditions. | 4 | See the end of the file for license conditions. |
| 5 | 5 | ||
| 6 | Problems, fixmes and other unicode-related issues | 6 | Problems, 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 | |||
| 102 | Source file encoding | ||
| 103 | -------------------- | ||
| 104 | |||
| 105 | Most Emacs source files are encoded in UTF-8 (or in ASCII, which is a | ||
| 106 | subset), but there are a few exceptions, listed below. Perhaps | ||
| 107 | someday many of these files will be converted to UTF-8, for | ||
| 108 | convenience when using tools like 'grep -r', but this might need | ||
| 109 | nontrivial 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 | ||
| 102 | This file is part of GNU Emacs. | 230 | This 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 | |||
| 3 | Copyright (C) 2013-2014 Free Software Foundation, Inc. | ||
| 4 | See the end of the file for license conditions. | ||
| 5 | |||
| 6 | NOTES FOR EMACS WWW PAGES | ||
| 7 | |||
| 8 | * Renaming pages, redirects | ||
| 9 | |||
| 10 | Sometimes you want to move a page to a new location. | ||
| 11 | If the old location might be referenced somewhere else, you should add | ||
| 12 | some form of redirect to the new location. There are several ways to | ||
| 13 | do this: | ||
| 14 | |||
| 15 | ** Use a refresh directive in the old file | ||
| 16 | https://www.gnu.org/server/standards/README.webmastering.html#htaccess | ||
| 17 | |||
| 18 | Change 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 | |||
| 22 | I can't think of any reason to use this method. | ||
| 23 | |||
| 24 | ** Use a .symlinks file | ||
| 25 | https://www.gnu.org/server/standards/README.webmastering.html#symlinks | ||
| 26 | |||
| 27 | This is really an interface to mod_rewrite rules, but it acts like | ||
| 28 | symlinks. Remove old-page.html altogether, and create a ".symlinks" | ||
| 29 | file in the relevant directory, with contents of the form: | ||
| 30 | |||
| 31 | # This is a comment line. | ||
| 32 | old-page.html new-page.html | ||
| 33 | |||
| 34 | Anyone visiting old-page.html will be shown the contents of new-page.html. | ||
| 35 | Note that changes to .symlinks file are only updated periodically on | ||
| 36 | the server via cron (twice an hour?). So there will be a delay (of up | ||
| 37 | to 30 minutes?) before you see your changes take effect. | ||
| 38 | |||
| 39 | This method is ok, but: | ||
| 40 | i) a person visiting old-page.html has no idea that the page has moved. | ||
| 41 | They still see old-page.html in their address bar. (In other words, | ||
| 42 | the mod_rewrite rule does not use the [R] flag.) Sometimes this is | ||
| 43 | what you want, sometimes not. | ||
| 44 | |||
| 45 | ii) it doesn't work right if the new page is in a different directory | ||
| 46 | to the old page: relative links from the visited page will break. | ||
| 47 | |||
| 48 | ** Use a .htaccess file | ||
| 49 | |||
| 50 | Remove old-page.html altogether, and create a ".htaccess" file in the | ||
| 51 | relevant 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 | |||
| 56 | Use "301" for a permanent redirection, otherwise you can omit the number. | ||
| 57 | Note that paths must (?) be relative to the top-level www.gnu.org. | ||
| 58 | |||
| 59 | I think this is the best method. You can specify temporary or | ||
| 60 | permanent redirects, and changes go live more-or-less straight away. | ||
| 61 | |||
| 62 | This method is useful for making cross-references to non-Emacs manuals | ||
| 63 | work; see manual/.htaccess in the repository. You only have to add a | ||
| 64 | single redirect for every given external manual, you can redirect | ||
| 65 | html_node to hmtl_node and html_mono to html_mono. | ||
| 66 | |||
| 67 | |||
| 68 | |||
| 69 | This file is part of GNU Emacs. | ||
| 70 | |||
| 71 | GNU Emacs is free software: you can redistribute it and/or modify | ||
| 72 | it under the terms of the GNU General Public License as published by | ||
| 73 | the Free Software Foundation, either version 3 of the License, or | ||
| 74 | (at your option) any later version. | ||
| 75 | |||
| 76 | GNU Emacs is distributed in the hope that it will be useful, | ||
| 77 | but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 78 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 79 | GNU General Public License for more details. | ||
| 80 | |||
| 81 | You should have received a copy of the GNU General Public License | ||
| 82 | along 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 | ||
| 3 | Maintaining copyright years is now very simple: every time a new year | 3 | Maintaining copyright years is now very simple: every time a new year |
| 4 | rolls around, add that year to every FSF (and AIST) copyright notice. | 4 | rolls around, add that year to every FSF (and AIST) copyright notice. |
| 5 | Do this by running the 'admin/update-copyright' script on a fresh bzr | ||
| 6 | checkout. Inspect the results for plausibility, then commit them. | ||
| 5 | 7 | ||
| 6 | There's no need to worry about whether an individual file has changed | 8 | There's no need to worry about whether an individual file has changed |
| 7 | in a given year - it's sufficient that Emacs as a whole has changed. | 9 | in 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 @@ | |||
| 1 | Copyright (C) 2001-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See 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 @@ | |||
| 1 | Copyright (C) 2001-2013 Free Software Foundation, Inc. | 1 | Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 2 | See the end of the file for license conditions. | 2 | See 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 | ||
| 278 | This file is part of GNU Emacs. | 264 | This 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 | ||
| 106 | Optionally, $me can also remove old versions of | 106 | Optionally, $me can also remove old versions of |
| 107 | automatically generated files that are version-specific (such as the | 107 | automatically generated files that are version-specific (such as the |
| 108 | versioned emacs executables in the \`src' directory, and the DOC-* files | 108 | versioned emacs executables in the \`src' directory). |
| 109 | in the \`etc' directory). The latter action is called \`pruning,' and | 109 | The latter action is called \`pruning,' and |
| 110 | can be enabled using the \`-p' or \`--prune' options. | 110 | can be enabled using the \`-p' or \`--prune' options. |
| 111 | EOF | 111 | EOF |
| 112 | exit 0 | 112 | exit 0 |
| @@ -209,10 +209,6 @@ maybe_mkdir "$DST_INFO" | |||
| 209 | 209 | ||
| 210 | PRUNED="" | 210 | PRUNED="" |
| 211 | if test x"$PRUNE" != xno; then | 211 | if 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 @@ | |||
| 204 | 276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT | 204 | 276F; 276E # HEAVY RIGHT-POINTING ANGLE QUOTATION MARK ORNAMENT |
| 205 | 2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT | 205 | 2770; 2771 # HEAVY LEFT-POINTING ANGLE BRACKET ORNAMENT |
| 206 | 2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT | 206 | 2771; 2770 # HEAVY RIGHT-POINTING ANGLE BRACKET ORNAMENT |
| 207 | 2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET | 207 | 2772; 2773 # LIGHT LEFT TORTOISE SHELL BRACKET ORNAMENT |
| 208 | 2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET | 208 | 2773; 2772 # LIGHT RIGHT TORTOISE SHELL BRACKET ORNAMENT |
| 209 | 2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT | 209 | 2774; 2775 # MEDIUM LEFT CURLY BRACKET ORNAMENT |
| 210 | 2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT | 210 | 2775; 2774 # MEDIUM RIGHT CURLY BRACKET ORNAMENT |
| 211 | 27C3; 27C4 # OPEN SUBSET | 211 | 27C3; 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 | ||
| 24 | SHELL = /bin/sh | 24 | SHELL = @SHELL@ |
| 25 | 25 | ||
| 26 | srcdir = @srcdir@ | 26 | srcdir = @srcdir@ |
| 27 | abs_builddir = @abs_builddir@ | ||
| 28 | top_srcdir = @top_srcdir@ | 27 | top_srcdir = @top_srcdir@ |
| 29 | abs_top_builddir = @abs_top_builddir@ | 28 | top_builddir = @top_builddir@ |
| 30 | 29 | ||
| 31 | EMACS = ${abs_top_builddir}/src/emacs | 30 | EMACS = ${top_builddir}/src/emacs |
| 32 | DSTDIR = ${top_srcdir}/lisp/international | 31 | DSTDIR = ${top_srcdir}/lisp/international |
| 33 | emacs = ${EMACS} -batch --no-site-file --no-site-lisp | 32 | emacs = "${EMACS}" -batch --no-site-file --no-site-lisp |
| 33 | |||
| 34 | .PHONY: all compile install | ||
| 34 | 35 | ||
| 35 | all: ${DSTDIR}/charprop.el | 36 | all: ${DSTDIR}/charprop.el |
| 36 | 37 | ||
| @@ -40,14 +41,25 @@ all: ${DSTDIR}/charprop.el | |||
| 40 | unidata.txt: ${srcdir}/UnicodeData.txt | 41 | unidata.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 | 44 | compile: ${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. |
| 48 | charprop.el: ${srcdir}/unidata-gen.elc unidata.txt | 58 | charprop.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 | ||
| 52 | install: charprop.el | 64 | install: 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 | |||
| 74 | bootstrap-clean: clean | ||
| 61 | 75 | ||
| 62 | distclean: clean | 76 | distclean: clean |
| 63 | -rm -f ./Makefile | 77 | rm -f Makefile |
| 64 | 78 | ||
| 65 | maintainer-clean: distclean | 79 | maintainer-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). | ||
| 84 | extraclean: | ||
| 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 @@ | |||
| 1509 | 0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;; | 1509 | 0619;ARABIC SMALL DAMMA;Mn;31;NSM;;;;;N;;;;; |
| 1510 | 061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;; | 1510 | 061A;ARABIC SMALL KASRA;Mn;32;NSM;;;;;N;;;;; |
| 1511 | 061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; | 1511 | 061B;ARABIC SEMICOLON;Po;0;AL;;;;;N;;;;; |
| 1512 | 061C;ARABIC LETTER MARK;Cf;0;AL;;;;;N;;;;; | ||
| 1512 | 061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;; | 1513 | 061E;ARABIC TRIPLE DOT PUNCTUATION MARK;Po;0;AL;;;;;N;;;;; |
| 1513 | 061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; | 1514 | 061F;ARABIC QUESTION MARK;Po;0;AL;;;;;N;;;;; |
| 1514 | 0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;; | 1515 | 0620;ARABIC LETTER KASHMIRI YEH;Lo;0;AL;;;;;N;;;;; |
| @@ -5296,7 +5297,7 @@ | |||
| 5296 | 180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; | 5297 | 180B;MONGOLIAN FREE VARIATION SELECTOR ONE;Mn;0;NSM;;;;;N;;;;; |
| 5297 | 180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; | 5298 | 180C;MONGOLIAN FREE VARIATION SELECTOR TWO;Mn;0;NSM;;;;;N;;;;; |
| 5298 | 180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; | 5299 | 180D;MONGOLIAN FREE VARIATION SELECTOR THREE;Mn;0;NSM;;;;;N;;;;; |
| 5299 | 180E;MONGOLIAN VOWEL SEPARATOR;Zs;0;WS;;;;;N;;;;; | 5300 | 180E;MONGOLIAN VOWEL SEPARATOR;Cf;0;BN;;;;;N;;;;; |
| 5300 | 1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; | 5301 | 1810;MONGOLIAN DIGIT ZERO;Nd;0;L;;0;0;0;N;;;;; |
| 5301 | 1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; | 5302 | 1811;MONGOLIAN DIGIT ONE;Nd;0;L;;1;1;1;N;;;;; |
| 5302 | 1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; | 5303 | 1812;MONGOLIAN DIGIT TWO;Nd;0;L;;2;2;2;N;;;;; |
| @@ -5751,7 +5752,7 @@ | |||
| 5751 | 1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;; | 5752 | 1A18;BUGINESE VOWEL SIGN U;Mn;220;NSM;;;;;N;;;;; |
| 5752 | 1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; | 5753 | 1A19;BUGINESE VOWEL SIGN E;Mc;0;L;;;;;N;;;;; |
| 5753 | 1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; | 5754 | 1A1A;BUGINESE VOWEL SIGN O;Mc;0;L;;;;;N;;;;; |
| 5754 | 1A1B;BUGINESE VOWEL SIGN AE;Mc;0;L;;;;;N;;;;; | 5755 | 1A1B;BUGINESE VOWEL SIGN AE;Mn;0;NSM;;;;;N;;;;; |
| 5755 | 1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;; | 5756 | 1A1E;BUGINESE PALLAWA;Po;0;L;;;;;N;;;;; |
| 5756 | 1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;; | 5757 | 1A1F;BUGINESE END OF SECTION;Po;0;L;;;;;N;;;;; |
| 5757 | 1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;; | 5758 | 1A20;TAI THAM LETTER HIGH KA;Lo;0;L;;;;;N;;;;; |
| @@ -7116,6 +7117,10 @@ | |||
| 7116 | 2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; | 7117 | 2062;INVISIBLE TIMES;Cf;0;BN;;;;;N;;;;; |
| 7117 | 2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; | 7118 | 2063;INVISIBLE SEPARATOR;Cf;0;BN;;;;;N;;;;; |
| 7118 | 2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;; | 7119 | 2064;INVISIBLE PLUS;Cf;0;BN;;;;;N;;;;; |
| 7120 | 2066;LEFT-TO-RIGHT ISOLATE;Cf;0;LRI;;;;;N;;;;; | ||
| 7121 | 2067;RIGHT-TO-LEFT ISOLATE;Cf;0;RLI;;;;;N;;;;; | ||
| 7122 | 2068;FIRST STRONG ISOLATE;Cf;0;FSI;;;;;N;;;;; | ||
| 7123 | 2069;POP DIRECTIONAL ISOLATE;Cf;0;PDI;;;;;N;;;;; | ||
| 7119 | 206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; | 7124 | 206A;INHIBIT SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; |
| 7120 | 206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; | 7125 | 206B;ACTIVATE SYMMETRIC SWAPPING;Cf;0;BN;;;;;N;;;;; |
| 7121 | 206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; | 7126 | 206C;INHIBIT ARABIC FORM SHAPING;Cf;0;BN;;;;;N;;;;; |
| @@ -7738,10 +7743,10 @@ | |||
| 7738 | 2305;PROJECTIVE;So;0;ON;;;;;N;;;;; | 7743 | 2305;PROJECTIVE;So;0;ON;;;;;N;;;;; |
| 7739 | 2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; | 7744 | 2306;PERSPECTIVE;So;0;ON;;;;;N;;;;; |
| 7740 | 2307;WAVY LINE;So;0;ON;;;;;N;;;;; | 7745 | 2307;WAVY LINE;So;0;ON;;;;;N;;;;; |
| 7741 | 2308;LEFT CEILING;Sm;0;ON;;;;;Y;;;;; | 7746 | 2308;LEFT CEILING;Ps;0;ON;;;;;Y;;;;; |
| 7742 | 2309;RIGHT CEILING;Sm;0;ON;;;;;Y;;;;; | 7747 | 2309;RIGHT CEILING;Pe;0;ON;;;;;Y;;;;; |
| 7743 | 230A;LEFT FLOOR;Sm;0;ON;;;;;Y;;;;; | 7748 | 230A;LEFT FLOOR;Ps;0;ON;;;;;Y;;;;; |
| 7744 | 230B;RIGHT FLOOR;Sm;0;ON;;;;;Y;;;;; | 7749 | 230B;RIGHT FLOOR;Pe;0;ON;;;;;Y;;;;; |
| 7745 | 230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; | 7750 | 230C;BOTTOM RIGHT CROP;So;0;ON;;;;;N;;;;; |
| 7746 | 230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; | 7751 | 230D;BOTTOM LEFT CROP;So;0;ON;;;;;N;;;;; |
| 7747 | 230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; | 7752 | 230E;TOP RIGHT CROP;So;0;ON;;;;;N;;;;; |
| @@ -18740,8 +18745,8 @@ FFFD;REPLACEMENT CHARACTER;So;0;ON;;;;;N;;;;; | |||
| 18740 | 12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; | 18745 | 12453;CUNEIFORM NUMERIC SIGN FOUR BAN2 VARIANT FORM;Nl;0;L;;;;4;N;;;;; |
| 18741 | 12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; | 18746 | 12454;CUNEIFORM NUMERIC SIGN FIVE BAN2;Nl;0;L;;;;5;N;;;;; |
| 18742 | 12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; | 18747 | 12455;CUNEIFORM NUMERIC SIGN FIVE BAN2 VARIANT FORM;Nl;0;L;;;;5;N;;;;; |
| 18743 | 12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;-1;N;;;;; | 18748 | 12456;CUNEIFORM NUMERIC SIGN NIGIDAMIN;Nl;0;L;;;;2;N;;;;; |
| 18744 | 12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;-1;N;;;;; | 18749 | 12457;CUNEIFORM NUMERIC SIGN NIGIDAESH;Nl;0;L;;;;3;N;;;;; |
| 18745 | 12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; | 18750 | 12458;CUNEIFORM NUMERIC SIGN ONE ESHE3;Nl;0;L;;;;1;N;;;;; |
| 18746 | 12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; | 18751 | 12459;CUNEIFORM NUMERIC SIGN TWO ESHE3;Nl;0;L;;;;2;N;;;;; |
| 18747 | 1245A;CUNEIFORM NUMERIC SIGN ONE THIRD DISH;Nl;0;L;;;;1/3;N;;;;; | 18752 | 1245A;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 "Modification is permitted." Any person is | 141 | indicating that "Modification is permitted." 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. |
| 194 | Property value is one of the following symbols: | 196 | Property 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} | ||
| 35 | export UPDATE_COPYRIGHT_USE_INTERVALS | ||
| 36 | |||
| 37 | : ${UPDATE_COPYRIGHT_YEAR=$(date +%Y)} | ||
| 38 | export UPDATE_COPYRIGHT_YEAR | ||
| 39 | |||
| 40 | emacsver=etc/refcards/emacsver.tex | ||
| 41 | sed '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 | } && | ||
| 46 | rm $emacsver.aux && | ||
| 47 | |||
| 48 | bzr_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 | |||
| 55 | updatable_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 | |||
| 75 | build-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 | |||
| 34 | die () # write error to stderr and exit | ||
| 35 | { | ||
| 36 | [ $# -gt 0 ] && echo "$PN: $@" >&2 | ||
| 37 | exit 1 | ||
| 38 | } | ||
| 39 | |||
| 40 | PN=${0##*/} # basename of script | ||
| 41 | PD=${0%/*} | ||
| 42 | |||
| 43 | [ "$PD" = "$0" ] && PD=. # if PATH includes PWD | ||
| 44 | |||
| 45 | ## This should be the admin directory. | ||
| 46 | cd $PD | ||
| 47 | cd ../ | ||
| 48 | [ -d admin ] || die "Could not locate admin directory" | ||
| 49 | |||
| 50 | |||
| 51 | usage () | ||
| 52 | { | ||
| 53 | cat 1>&2 <<EOF | ||
| 54 | Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags] | ||
| 55 | Update some auto-generated files in the Emacs tree. | ||
| 56 | By default, only does the versioned loaddefs-like files in lisp/. | ||
| 57 | This requires a build. Passes any non-option args to make (eg -- -j2). | ||
| 58 | Options: | ||
| 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. | ||
| 67 | EOF | ||
| 68 | exit 1 | ||
| 69 | } | ||
| 70 | |||
| 71 | |||
| 72 | ## Defaults. | ||
| 73 | |||
| 74 | force= | ||
| 75 | commit= | ||
| 76 | quiet= | ||
| 77 | clean= | ||
| 78 | autogendir= # was "autogen" | ||
| 79 | ldefs_flag=1 | ||
| 80 | lboot_flag= | ||
| 81 | info_flag= | ||
| 82 | |||
| 83 | ## Parameters. | ||
| 84 | ldefs_in=lisp/loaddefs.el | ||
| 85 | ldefs_out=lisp/ldefs-boot.el | ||
| 86 | sources="configure.ac lib/Makefile.am" | ||
| 87 | ## Files to copy into autogendir. | ||
| 88 | ## Everything: | ||
| 89 | genfiles=" | ||
| 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: | ||
| 95 | genfiles="src/config.in lib/Makefile.in" | ||
| 96 | |||
| 97 | for g in $genfiles; do | ||
| 98 | basegen="$basegen ${g##*/}" | ||
| 99 | done | ||
| 100 | |||
| 101 | [ "$basegen" ] || die "internal error" | ||
| 102 | |||
| 103 | tempfile=/tmp/$PN.$$ | ||
| 104 | |||
| 105 | trap "rm -f $tempfile 2> /dev/null" EXIT | ||
| 106 | |||
| 107 | |||
| 108 | while 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 | ||
| 134 | done | ||
| 135 | shift $(( --OPTIND )) | ||
| 136 | OPTIND=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. | ||
| 144 | status () | ||
| 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 | |||
| 164 | echo "Checking input file status..." | ||
| 165 | |||
| 166 | ## The lisp portion could be more permissive, eg only care about .el files. | ||
| 167 | modified=$(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 | |||
| 187 | echo "Running autoreconf..." | ||
| 188 | |||
| 189 | autoreconf ${clean:+-f} -i -I m4 2>| $tempfile | ||
| 190 | |||
| 191 | retval=$? | ||
| 192 | |||
| 193 | ## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr. | ||
| 194 | if [ "$quiet" ]; then | ||
| 195 | grep -v 'installing `\.' $tempfile 1>&2 | ||
| 196 | else | ||
| 197 | cat "$tempfile" 1>&2 | ||
| 198 | fi | ||
| 199 | |||
| 200 | [ $retval -ne 0 ] && die "autoreconf error" | ||
| 201 | |||
| 202 | |||
| 203 | ## Uses global $commit. | ||
| 204 | commit () | ||
| 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. | ||
| 229 | info_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 | ||
| 250 | EOF | ||
| 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 | |||
| 308 | echo "Finding loaddef targets..." | ||
| 309 | |||
| 310 | sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \ | ||
| 311 | sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \ | ||
| 312 | >| $tempfile || die "sed error" | ||
| 313 | |||
| 314 | genfiles= | ||
| 315 | |||
| 316 | while read genfile; do | ||
| 317 | |||
| 318 | [ -r lisp/$genfile ] || die "Unable to read $genfile" | ||
| 319 | |||
| 320 | genfiles="$genfiles $genfile" | ||
| 321 | done < $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. | ||
| 336 | echo "Running lib/ make..." | ||
| 337 | |||
| 338 | make -C lib "$@" all || die "make lib error" | ||
| 339 | |||
| 340 | |||
| 341 | echo "Running src/ make..." | ||
| 342 | |||
| 343 | make -C src "$@" bootstrap-emacs || die "make src error" | ||
| 344 | |||
| 345 | |||
| 346 | echo "Running lisp/ make..." | ||
| 347 | |||
| 348 | make -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 | |||
| 357 | cd lisp | ||
| 358 | |||
| 359 | echo "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. | ||
| 364 | modified=$(status $genfiles ${ldefs_out#lisp/}) || die | ||
| 365 | |||
| 366 | |||
| 367 | cd ../ | ||
| 368 | |||
| 369 | |||
| 370 | commit "loaddefs" $modified || die "commit error" | ||
| 371 | |||
| 372 | |||
| 373 | exit 0 | ||
| 374 | |||
| 375 | ### update_autogen ends here | ||