diff options
| author | Joakim Verona | 2014-06-04 23:50:06 +0200 |
|---|---|---|
| committer | Joakim Verona | 2014-06-04 23:50:06 +0200 |
| commit | ce8171797dafbde765170b79e5f154afc4872e86 (patch) | |
| tree | 264b357b484de24929a3f2d20a34e0e43c006a15 /admin | |
| parent | c1c9aa247cab9148916b367e719219ea0f055adb (diff) | |
| parent | b5d6fe3bf6e728c82a3ff63723d75519f7853716 (diff) | |
| download | emacs-ce8171797dafbde765170b79e5f154afc4872e86.tar.gz emacs-ce8171797dafbde765170b79e5f154afc4872e86.zip | |
upstream
Diffstat (limited to 'admin')
52 files changed, 2117 insertions, 569 deletions
diff --git a/admin/CPP-DEFINES b/admin/CPP-DEFINES index 27d87dcaa2a..066347b3826 100644 --- a/admin/CPP-DEFINES +++ b/admin/CPP-DEFINES | |||
| @@ -86,8 +86,6 @@ BROKEN_FIONREAD | |||
| 86 | BROKEN_GET_CURRENT_DIR_NAME | 86 | BROKEN_GET_CURRENT_DIR_NAME |
| 87 | BROKEN_NON_BLOCKING_CONNECT | 87 | BROKEN_NON_BLOCKING_CONNECT |
| 88 | BROKEN_PTY_READ_AFTER_EAGAIN | 88 | BROKEN_PTY_READ_AFTER_EAGAIN |
| 89 | CLASH_DETECTION | ||
| 90 | DATA_SEG_BITS | ||
| 91 | DEFAULT_SOUND_DEVICE | 89 | DEFAULT_SOUND_DEVICE |
| 92 | DEVICE_SEP | 90 | DEVICE_SEP |
| 93 | DIRECTORY_SEP | 91 | DIRECTORY_SEP |
| @@ -201,17 +199,13 @@ HAVE_KRB5_H | |||
| 201 | HAVE_KRB_H | 199 | HAVE_KRB_H |
| 202 | HAVE_LANGINFO_CODESET | 200 | HAVE_LANGINFO_CODESET |
| 203 | HAVE_LIBDGC | 201 | HAVE_LIBDGC |
| 204 | HAVE_LIBDNET | ||
| 205 | HAVE_LIBKSTAT | 202 | HAVE_LIBKSTAT |
| 206 | HAVE_LIBLOCKFILE | 203 | HAVE_LIBLOCKFILE |
| 207 | HAVE_LIBM | ||
| 208 | HAVE_LIBMAIL | 204 | HAVE_LIBMAIL |
| 209 | HAVE_LIBOTF | 205 | HAVE_LIBOTF |
| 210 | HAVE_LIBPERFSTAT | 206 | HAVE_LIBPERFSTAT |
| 211 | HAVE_LIBPNG_PNG_H | 207 | HAVE_LIBPNG_PNG_H |
| 212 | HAVE_LIBPTHREADS | ||
| 213 | HAVE_LIBSELINUX | 208 | HAVE_LIBSELINUX |
| 214 | HAVE_LIBXEXT | ||
| 215 | HAVE_LIBXML2 | 209 | HAVE_LIBXML2 |
| 216 | HAVE_LIBXMU | 210 | HAVE_LIBXMU |
| 217 | HAVE_LOCALTIME_R | 211 | HAVE_LOCALTIME_R |
diff --git a/admin/ChangeLog b/admin/ChangeLog index 29118deba7f..79adb4f543d 100644 --- a/admin/ChangeLog +++ b/admin/ChangeLog | |||
| @@ -1,3 +1,293 @@ | |||
| 1 | 2014-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 2 | |||
| 3 | * mac/uvs.el: New file from Mac port. Generates src/macuvs.h. | ||
| 4 | |||
| 5 | 2014-05-17 Paul Eggert <eggert@cs.ucla.edu> | ||
| 6 | |||
| 7 | Assume C99 or later (Bug#17487). | ||
| 8 | * merge-gnulib (GNULIB_MODULES): Remove stdarg, stdbool. | ||
| 9 | (GNULIB_TOOL_FLAGS): Avoid stdarg, stdbool. | ||
| 10 | |||
| 11 | 2014-05-16 Paul Eggert <eggert@cs.ucla.edu> | ||
| 12 | |||
| 13 | Don't require pkg-config when building from repository. | ||
| 14 | * merge-pkg-config: New script. | ||
| 15 | * notes/copyright: Update for m4/*.m4, in particular m4/pkg.m4. | ||
| 16 | |||
| 17 | 2014-05-13 Paul Eggert <eggert@cs.ucla.edu> | ||
| 18 | |||
| 19 | * merge-gnulib: Defer to autogen.sh for ACLOCAL_PATH computation. | ||
| 20 | |||
| 21 | 2014-05-12 Glenn Morris <rgm@gnu.org> | ||
| 22 | |||
| 23 | * find-gc.el: Move here from ../lisp/emacs-lisp. | ||
| 24 | |||
| 25 | * admin.el (set-version-in-file): Don't set identical version. | ||
| 26 | (set-version): Provide default version number. | ||
| 27 | (set-version, set-copyright): Give start/end messages. | ||
| 28 | |||
| 29 | 2014-04-18 Paul Eggert <eggert@cs.ucla.edu> | ||
| 30 | |||
| 31 | * notes/bzr: Update instructions for merging from gnulib. | ||
| 32 | Remove obsolete note about tramp.el and tramp-sh.el. | ||
| 33 | Change "emacs-23" to "emacs-24". | ||
| 34 | |||
| 35 | 2014-04-11 Glenn Morris <rgm@gnu.org> | ||
| 36 | |||
| 37 | * grammars/Makefile.in (EMACSDATA, EMACSDOC, EMACSPATH): Unexport. | ||
| 38 | |||
| 39 | 2014-03-22 Glenn Morris <rgm@gnu.org> | ||
| 40 | |||
| 41 | * quick-install-emacs (AVOID): Remove testfile and test-distrib. | ||
| 42 | |||
| 43 | 2014-03-21 Glenn Morris <rgm@gnu.org> | ||
| 44 | |||
| 45 | * update_autogen: Auto-detect VCS in use. | ||
| 46 | (vcs): New variable. | ||
| 47 | (status, commit, main): Handle git. | ||
| 48 | |||
| 49 | 2014-03-07 Paul Eggert <eggert@cs.ucla.edu> | ||
| 50 | |||
| 51 | Fix oversight preventing lib/sys/types.h from being generated. | ||
| 52 | * merge-gnulib (GNULIB_TOOL_FLAGS): Don't avoid sys_types. | ||
| 53 | |||
| 54 | 2014-02-06 David Engster <deng@randomsample.de> | ||
| 55 | |||
| 56 | * grammars/c.by (function-pointer): Correctly deal with anonymous | ||
| 57 | function pointers. | ||
| 58 | (opt-brackets-after-symbol): New. | ||
| 59 | (multi-stage-dereference): Use it. Add rules for explicit | ||
| 60 | matching the last dereference. | ||
| 61 | |||
| 62 | 2014-01-16 Eric S. Raymond <esr@thyrsus.com> | ||
| 63 | |||
| 64 | * notes/commits: Add a 'graph on VCS-independent ways of | ||
| 65 | identifying commits and the desirability thereof. | ||
| 66 | |||
| 67 | 2014-01-15 Paul Eggert <eggert@cs.ucla.edu> | ||
| 68 | |||
| 69 | Fix copyright license notices for Adobe Unicode mapping files. | ||
| 70 | * charsets/mapfiles/README: The copied files are not compressed. | ||
| 71 | Check for copies as of today. | ||
| 72 | * charsets/mapfiles/stdenc.txt, charsets/mapfiles/symbol.txt: | ||
| 73 | Update from table version 0.2 (1999-03-30) to 1.0 (2011-07-12). | ||
| 74 | This doesn't change the table data, just copyright license notice. | ||
| 75 | The new notices are compatible with the GPL, the old ones were not. | ||
| 76 | |||
| 77 | 2014-01-13 Glenn Morris <rgm@gnu.org> | ||
| 78 | |||
| 79 | * update_autogen (status): New function. Use throughout. | ||
| 80 | |||
| 81 | 2014-01-10 Glenn Morris <rgm@gnu.org> | ||
| 82 | |||
| 83 | * update_autogen: Fix sed bug that was losing the last AUTOGEN_VCS. | ||
| 84 | |||
| 85 | 2014-01-04 Glenn Morris <rgm@gnu.org> | ||
| 86 | |||
| 87 | * admin.el (manual-html-fix-node-div): Handle Texinfo 5's movable <hr>. | ||
| 88 | (manual-html-fix-index-2): Tweak Texinfo 5 table format. | ||
| 89 | Fix minor Texinfo 4 issue with start of detailed menu. | ||
| 90 | |||
| 91 | 2014-01-03 Glenn Morris <rgm@gnu.org> | ||
| 92 | |||
| 93 | * admin.el: More Texinfo 5 updates. | ||
| 94 | (manual-html-fix-headers): Tweak Texinfo 5 body. | ||
| 95 | (manual-html-fix-node-div): Treat "header" like "node". | ||
| 96 | (manual-html-fix-index-1): Handle Texinfo 5 top heading. | ||
| 97 | (manual-html-fix-index-2): Tweak Texinfo 5 listing tables. | ||
| 98 | |||
| 99 | 2014-01-02 Xue Fuqiao <xfq.free@gmail.com> | ||
| 100 | |||
| 101 | * check-doc-strings: Replace `perl -w' with `use warnings;'. | ||
| 102 | |||
| 103 | 2013-12-30 Glenn Morris <rgm@gnu.org> | ||
| 104 | |||
| 105 | * admin.el (manual-html-fix-headers, manual-html-fix-index-1): | ||
| 106 | Some updates for changes in Texinfo 5 output. | ||
| 107 | |||
| 108 | 2013-12-29 Xue Fuqiao <xfq.free@gmail.com> | ||
| 109 | |||
| 110 | * make-emacs: | ||
| 111 | * build-configs: Add the "use strict;" and "use warnings;" pragmas. | ||
| 112 | |||
| 113 | 2013-12-28 Glenn Morris <rgm@gnu.org> | ||
| 114 | |||
| 115 | * admin.el (cusver-scan): Warn about missing :types. | ||
| 116 | (cusver-check): Interactively, require existing directories. | ||
| 117 | |||
| 118 | 2013-12-27 Xue Fuqiao <xfq.free@gmail.com> | ||
| 119 | |||
| 120 | * admin.el (manual-misc-manuals, make-manuals, manual-pdf) | ||
| 121 | (cusver-find-files, cusver-new-version, cusver-scan) | ||
| 122 | (cusver-goto-xref, cusver-check): Doc fix. | ||
| 123 | (manual-html-node, cusver-check): Use `user-error'. | ||
| 124 | |||
| 125 | 2013-12-24 Paul Eggert <eggert@cs.ucla.edu> | ||
| 126 | |||
| 127 | Automate the procedure for updating copyright year. | ||
| 128 | * merge-gnulib (GNULIB_MODULES): Add update-copyright. | ||
| 129 | * notes/years: Mention admin/update-copyright. | ||
| 130 | * update-copyright: New file. | ||
| 131 | |||
| 132 | 2013-12-24 Xue Fuqiao <xfq.free@gmail.com> | ||
| 133 | |||
| 134 | * admin.el (add-release-logs, set-version-in-file, set-version) | ||
| 135 | (set-copyright): Use `user-error'. | ||
| 136 | |||
| 137 | 2013-12-22 Eli Zaretskii <eliz@gnu.org> | ||
| 138 | |||
| 139 | * unidata/unidata-gen.el (unidata-split-name): Don't give any NAME | ||
| 140 | to <control> characters: the Unicode Standard says they have no | ||
| 141 | name. (Bug#16216) | ||
| 142 | (unidata-describe-bidi-class): Add new "isolate" classes | ||
| 143 | introduced by Unicode 6.3. | ||
| 144 | |||
| 145 | 2013-12-12 David Engster <deng@randomsample.de> | ||
| 146 | |||
| 147 | * grammars/c.by (expr-binop): Add MOD. | ||
| 148 | (variablearg): Add 'opt-assign'. | ||
| 149 | (variablearg, varnamelist): Add default values so that it can be | ||
| 150 | later expanded into the tag. | ||
| 151 | (opt-stuff-after-symbol): Rename to 'brackets-after-symbol' and | ||
| 152 | remove empty match. | ||
| 153 | (multi-stage-dereference): Adapt to above rename. | ||
| 154 | (unaryexpression): Use 'symbol' instead of 'namespace-symbol', | ||
| 155 | since the latter also leads to an empty match at the end which | ||
| 156 | would make this too greedy. | ||
| 157 | (variablearg-opt-name): Support parsing of function pointers | ||
| 158 | inside an argument list. | ||
| 159 | |||
| 160 | 2013-12-12 Glenn Morris <rgm@gnu.org> | ||
| 161 | |||
| 162 | * update_autogen (info_dir): | ||
| 163 | Use dir_top from build-aux/ rather than admin/. | ||
| 164 | |||
| 165 | * update_autogen: Add option to generate info/dir. | ||
| 166 | (Usage): Add -I. | ||
| 167 | (info_flag): New variable. | ||
| 168 | (-I): New option. | ||
| 169 | (doc): Maybe check its status. | ||
| 170 | (info_dir): New function. | ||
| 171 | * dir_top: New file. | ||
| 172 | |||
| 173 | 2013-12-11 Paul Eggert <eggert@cs.ucla.edu> | ||
| 174 | |||
| 175 | Remove the option of using libcrypto. | ||
| 176 | * merge-gnulib: Remove lib/gl_openssh.h and m4/gl-openssl.m4. | ||
| 177 | |||
| 178 | 2013-12-04 Eli Zaretskii <eliz@gnu.org> | ||
| 179 | |||
| 180 | * unidata/unidata-gen.el (unidata-prop-alist): Update bidi-class | ||
| 181 | to include the new isolate-related classes introduced with Unicode | ||
| 182 | v6.3. | ||
| 183 | (unidata-encode-val): Accept an additional optional argument, a | ||
| 184 | warning message to emit when UnicodeData.txt defines bidi-class | ||
| 185 | values that are not in unidata-prop-alist. Add a comment | ||
| 186 | explaining what should maintainers do if/when such a warning ever | ||
| 187 | appears. | ||
| 188 | (unidata-gen-table): Call unidata-encode-val with 3rd arg non-nil | ||
| 189 | when generating uni-bidi.el. | ||
| 190 | |||
| 191 | 2013-12-01 Glenn Morris <rgm@gnu.org> | ||
| 192 | |||
| 193 | * unidata/Makefile.in (${DSTDIR}/charprop.el): | ||
| 194 | Ensure output files are writable. | ||
| 195 | |||
| 196 | 2013-11-30 Glenn Morris <rgm@gnu.org> | ||
| 197 | |||
| 198 | * grammars/Makefile.in: Ensure output files are writable. | ||
| 199 | |||
| 200 | 2013-11-30 Eli Zaretskii <eliz@gnu.org> | ||
| 201 | |||
| 202 | * charsets/mule-charsets.el: Rewritten to work in Emacs 23 and | ||
| 203 | later. (Bug#16007) | ||
| 204 | |||
| 205 | 2013-11-30 Glenn Morris <rgm@gnu.org> | ||
| 206 | |||
| 207 | Stop keeping (most) generated cedet grammar files in the repository. | ||
| 208 | * grammars/README: Remove. | ||
| 209 | * grammars/Makefile.in: New file. | ||
| 210 | * grammars/c.by, grammars/java-tags.wy, grammars/js.wy: | ||
| 211 | * grammars/python.wy: Update declarations to match generated outputs. | ||
| 212 | |||
| 213 | 2013-11-28 Glenn Morris <rgm@gnu.org> | ||
| 214 | |||
| 215 | * unidata/unidata-gen.el (unidata-gen-files): | ||
| 216 | Disable autoloads in generated files. | ||
| 217 | |||
| 218 | 2013-11-27 Glenn Morris <rgm@gnu.org> | ||
| 219 | |||
| 220 | * unidata/Makefile.in (all, install, clean, bootstrap-clean) | ||
| 221 | (distclean, maintainer-clean): Declare as PHONY. | ||
| 222 | (compile, extraclean): New. | ||
| 223 | (${DSTDIR}/charprop.el): Depend on source files rather than | ||
| 224 | intermediate products. | ||
| 225 | |||
| 226 | 2013-11-11 Glenn Morris <rgm@gnu.org> | ||
| 227 | |||
| 228 | * unidata/BidiMirroring.txt, unidata/UnicodeData.txt: Update to 6.3.0. | ||
| 229 | |||
| 230 | * unidata/unidata-gen.el (unidata-gen-files): | ||
| 231 | Tweak whitespace in generated files. | ||
| 232 | |||
| 233 | 2013-11-09 Glenn Morris <rgm@gnu.org> | ||
| 234 | |||
| 235 | * unidata/unidata-gen.el (unidata-gen-files): | ||
| 236 | Fix deletion of existing output files after 2013-10-30 changes. | ||
| 237 | |||
| 238 | 2013-11-07 Glenn Morris <rgm@gnu.org> | ||
| 239 | |||
| 240 | * unidata/unidata-gen.el (unidata-gen-files): | ||
| 241 | Disable version-control in generated files. | ||
| 242 | Update Unicode Inc. copyright years. | ||
| 243 | |||
| 244 | 2013-11-05 Glenn Morris <rgm@gnu.org> | ||
| 245 | |||
| 246 | * update_autogen: Move here from ../autogen. | ||
| 247 | (usage): Update. Remove -l, add -A. | ||
| 248 | (autogendir): New variable. | ||
| 249 | (ldefs_flag): Default to set. | ||
| 250 | (genfiles): Reduce to only ms-dos relevant files. | ||
| 251 | (main): Make checking autogen sources optional. | ||
| 252 | Make copying of autogen files optional. | ||
| 253 | |||
| 254 | 2013-10-30 Glenn Morris <rgm@gnu.org> | ||
| 255 | |||
| 256 | * unidata/unidata-gen.el (unidata-gen-files): Use pop. | ||
| 257 | Also take the output directory as an argument. | ||
| 258 | * unidata/Makefile.in: Simplify now that unidata-gen-files takes | ||
| 259 | the output directory as an argument (no need to cd, etc). | ||
| 260 | (abs_srcdir, abs_builddir): Remove. | ||
| 261 | (abs_top_builddir): Replace by top_builddir. | ||
| 262 | (${DSTDIR}/charprop.el): No need to cd. Pass dest as argument. | ||
| 263 | (${DSTDIR}/charprop.el, charprop.el): | ||
| 264 | No need to pass unidata.txt as argument. | ||
| 265 | |||
| 266 | * unidata/unidata-gen.el (unidata--ensure-compiled): New function. | ||
| 267 | (unidata-gen-table-name, unidata-gen-table-decomposition) | ||
| 268 | (unidata-gen-files): Use unidata--ensure-compiled. | ||
| 269 | |||
| 270 | * unidata/Makefile.in (abs_srcdir): New, set by configure. | ||
| 271 | (${DSTDIR}/charprop.el, charprop.el): Update for srcdir not absolute. | ||
| 272 | (clean): Delete all .elc files. | ||
| 273 | (bootstrap-clean): New rule. | ||
| 274 | |||
| 275 | 2013-10-23 Glenn Morris <rgm@gnu.org> | ||
| 276 | |||
| 277 | * unidata/Makefile.in (emacs, ${DSTDIR}/charprop.el): | ||
| 278 | Quote entities that might contain whitespace. | ||
| 279 | |||
| 280 | 2013-10-07 Paul Eggert <eggert@cs.ucla.edu> | ||
| 281 | |||
| 282 | Improve support for popcount and counting trailing zeros (Bug#15550). | ||
| 283 | * merge-gnulib (GNULIB_MODULES): Add count-one-bits | ||
| 284 | and count-trailing-zeros. | ||
| 285 | |||
| 286 | 2013-10-04 Paul Eggert <eggert@cs.ucla.edu> | ||
| 287 | |||
| 288 | Use hardware support for byteswapping on glibc x86 etc. | ||
| 289 | * merge-gnulib (GNULIB_MODULES): Add byteswap. | ||
| 290 | |||
| 1 | 2013-08-28 Paul Eggert <eggert@cs.ucla.edu> | 291 | 2013-08-28 Paul Eggert <eggert@cs.ucla.edu> |
| 2 | 292 | ||
| 3 | * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh, | 293 | * unidata/Makefile.in (SHELL): Now @SHELL@, not /bin/sh, |
| @@ -128,7 +418,7 @@ | |||
| 128 | 418 | ||
| 129 | 2013-05-07 Paul Eggert <eggert@cs.ucla.edu> | 419 | 2013-05-07 Paul Eggert <eggert@cs.ucla.edu> |
| 130 | 420 | ||
| 131 | Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) | 421 | Use Gnulib ACL implementation, for benefit of Solaris etc. (Bug#14295) |
| 132 | * merge-gnulib (GNULIB_MODULES): Add qacl. | 422 | * merge-gnulib (GNULIB_MODULES): Add qacl. |
| 133 | (GNULIB_TOOL_FLAGS): Do not avoid errno. | 423 | (GNULIB_TOOL_FLAGS): Do not avoid errno. |
| 134 | 424 | ||
| @@ -343,10 +633,10 @@ | |||
| 343 | (cusver-scan): Check if containing group has a :version. | 633 | (cusver-scan): Check if containing group has a :version. |
| 344 | (cusver-check): Add VERSION argument. | 634 | (cusver-check): Add VERSION argument. |
| 345 | 635 | ||
| 346 | 2012-10-01 David Engster <deng@randomsample.de> | 636 | 2012-10-06 David Engster <deng@randomsample.de> |
| 347 | 637 | ||
| 348 | * grammars/bovine-grammar.el: | 638 | * grammars/bovine-grammar.el: |
| 349 | * grammars/wisent-grammar.el: Move to lisp directory. | 639 | * grammars/wisent-grammar.el: Move to lisp/cedet/semantic directory. |
| 350 | 640 | ||
| 351 | 2012-10-01 David Engster <deng@randomsample.de> | 641 | 2012-10-01 David Engster <deng@randomsample.de> |
| 352 | 642 | ||
| @@ -805,6 +1095,10 @@ | |||
| 805 | 1095 | ||
| 806 | * notes/bugtracker (bugtracker_debbugs_url): Fix typo. | 1096 | * notes/bugtracker (bugtracker_debbugs_url): Fix typo. |
| 807 | 1097 | ||
| 1098 | 2011-02-20 Paul Eggert <eggert@cs.ucla.edu> | ||
| 1099 | |||
| 1100 | * notes/copyright: Remove src/md5.c and src/md5.h as special cases. | ||
| 1101 | |||
| 808 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> | 1102 | 2011-02-19 Eli Zaretskii <eliz@gnu.org> |
| 809 | 1103 | ||
| 810 | * admin.el (set-version): Add msdos/sed2v2.inp. | 1104 | * admin.el (set-version): Add msdos/sed2v2.inp. |
| @@ -812,8 +1106,9 @@ | |||
| 812 | 2011-02-16 Paul Eggert <eggert@cs.ucla.edu> | 1106 | 2011-02-16 Paul Eggert <eggert@cs.ucla.edu> |
| 813 | 1107 | ||
| 814 | Remove no-longer needed getloadavg symbols. | 1108 | Remove no-longer needed getloadavg symbols. |
| 815 | * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE): | 1109 | * CPP-DEFINES (LOAD_AVE_CVT, LOAD_AVE_TYPE, FSCALE, KERNEL_FILE) |
| 816 | (LDAV_SYMBOL): Remove. | 1110 | (LDAV_SYMBOL): Remove. |
| 1111 | * notes/copyright: Remove src/getloadavg.c as a special case. | ||
| 817 | 1112 | ||
| 818 | 2011-02-12 Glenn Morris <rgm@gnu.org> | 1113 | 2011-02-12 Glenn Morris <rgm@gnu.org> |
| 819 | 1114 | ||
| @@ -1336,7 +1631,7 @@ | |||
| 1336 | Sub-directory `unidata' is for codes to generate charprop.el and | 1631 | Sub-directory `unidata' is for codes to generate charprop.el and |
| 1337 | many other uni-*.el files from `UnicodeData.txt'. | 1632 | many other uni-*.el files from `UnicodeData.txt'. |
| 1338 | 1633 | ||
| 1339 | * Unidata/README: New file. | 1634 | * unidata/README: New file. |
| 1340 | 1635 | ||
| 1341 | * unidata/Makefile: New file. | 1636 | * unidata/Makefile: New file. |
| 1342 | 1637 | ||
| @@ -1762,8 +2057,6 @@ | |||
| 1762 | emacs.exe before zipping, and including batch file to recreate | 2057 | emacs.exe before zipping, and including batch file to recreate |
| 1763 | after unpacking. | 2058 | after unpacking. |
| 1764 | 2059 | ||
| 1765 | * nt/stitch.bat: New file. | ||
| 1766 | |||
| 1767 | * nt/README-ftp-server: Update wording and version number etc. | 2060 | * nt/README-ftp-server: Update wording and version number etc. |
| 1768 | Add extra instructions for installing multi-file .zip | 2061 | Add extra instructions for installing multi-file .zip |
| 1769 | distribution. | 2062 | distribution. |
| @@ -1883,7 +2176,7 @@ | |||
| 1883 | 2176 | ||
| 1884 | 2001-09-04 Andrew Innes <andrewi@gnu.org> | 2177 | 2001-09-04 Andrew Innes <andrewi@gnu.org> |
| 1885 | 2178 | ||
| 1886 | * admin/nt/makedist.bat: Remove reference to obsolete file | 2179 | * nt/makedist.bat: Remove reference to obsolete file |
| 1887 | GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about | 2180 | GETTING.GNU.SOFTWARE. Remove outdated comments. Explain about |
| 1888 | version of tar used. | 2181 | version of tar used. |
| 1889 | 2182 | ||
| @@ -1891,7 +2184,7 @@ | |||
| 1891 | ;; coding: utf-8 | 2184 | ;; coding: utf-8 |
| 1892 | ;; End: | 2185 | ;; End: |
| 1893 | 2186 | ||
| 1894 | Copyright (C) 2001-2013 Free Software Foundation, Inc. | 2187 | Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 1895 | 2188 | ||
| 1896 | This file is part of GNU Emacs. | 2189 | This file is part of GNU Emacs. |
| 1897 | 2190 | ||
diff --git a/admin/FOR-RELEASE b/admin/FOR-RELEASE index c578d3d37e1..6af5027f73c 100644 --- a/admin/FOR-RELEASE +++ b/admin/FOR-RELEASE | |||
| @@ -2,6 +2,8 @@ Tasks needed before the next release. | |||
| 2 | 2 | ||
| 3 | * TO BE DONE SHORTLY BEFORE RELEASE | 3 | * TO BE DONE SHORTLY BEFORE RELEASE |
| 4 | 4 | ||
| 5 | ** Either update, test, and support the old w32 build method, or remove it. | ||
| 6 | |||
| 5 | ** Manuals | 7 | ** Manuals |
| 6 | Check for node names using problematic characters: | 8 | Check for node names using problematic characters: |
| 7 | find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} + | 9 | find doc -name '*.texi' -exec grep '^@node[^,]*[:.()]' {} + |
| @@ -68,7 +70,6 @@ I think this is different to what you get if you just use eg `make | |||
| 68 | emacs.pdf' (e.g., enable "smallbook"). | 70 | emacs.pdf' (e.g., enable "smallbook"). |
| 69 | 71 | ||
| 70 | ** Check the keybindings in the refcards are correct, and add any new ones. | 72 | ** Check the keybindings in the refcards are correct, and add any new ones. |
| 71 | Regenerate the pdf versions in etc/refcards/. | ||
| 72 | What paper size are the English versions supposed to be on? | 73 | What paper size are the English versions supposed to be on? |
| 73 | On Debian testing, the packages texlive-lang-czechslovak and | 74 | On Debian testing, the packages texlive-lang-czechslovak and |
| 74 | 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. |
| @@ -138,7 +139,7 @@ SECTION READERS | |||
| 138 | ---------------------------------- | 139 | ---------------------------------- |
| 139 | TUTORIAL cyd | 140 | TUTORIAL cyd |
| 140 | TUTORIAL.bg ogi | 141 | TUTORIAL.bg ogi |
| 141 | TUTORIAL.cn | 142 | TUTORIAL.cn xfq |
| 142 | TUTORIAL.cs | 143 | TUTORIAL.cs |
| 143 | TUTORIAL.de wl | 144 | TUTORIAL.de wl |
| 144 | TUTORIAL.eo | 145 | TUTORIAL.eo |
| @@ -146,7 +147,7 @@ TUTORIAL.es | |||
| 146 | TUTORIAL.fr | 147 | TUTORIAL.fr |
| 147 | TUTORIAL.he eliz | 148 | TUTORIAL.he eliz |
| 148 | TUTORIAL.it | 149 | TUTORIAL.it |
| 149 | TUTORIAL.ja | 150 | TUTORIAL.ja |
| 150 | TUTORIAL.ko | 151 | TUTORIAL.ko |
| 151 | TUTORIAL.nl Pieter Schoenmakers | 152 | TUTORIAL.nl Pieter Schoenmakers |
| 152 | TUTORIAL.pl | 153 | TUTORIAL.pl |
| @@ -161,111 +162,110 @@ TUTORIAL.zh | |||
| 161 | 162 | ||
| 162 | ** Check the manual. | 163 | ** Check the manual. |
| 163 | 164 | ||
| 164 | abbrevs.texi cyd | 165 | abbrevs.texi |
| 165 | ack.texi rgm | 166 | ack.texi |
| 166 | anti.texi cyd | 167 | anti.texi |
| 167 | arevert-xtra.texi cyd | 168 | arevert-xtra.texi |
| 168 | basic.texi cyd | 169 | basic.texi |
| 169 | buffers.texi cyd | 170 | buffers.texi |
| 170 | building.texi cyd | 171 | building.texi |
| 171 | calendar.texi rgm | 172 | calendar.texi |
| 172 | cal-xtra.texi rgm | 173 | cal-xtra.texi |
| 173 | cmdargs.texi cyd | 174 | cmdargs.texi |
| 174 | commands.texi cyd | 175 | commands.texi |
| 175 | custom.texi cyd | 176 | custom.texi |
| 176 | dired.texi cyd | 177 | dired.texi |
| 177 | dired-xtra.texi rgm | 178 | dired-xtra.texi |
| 178 | display.texi cyd | 179 | display.texi |
| 179 | emacs.texi rgm | 180 | emacs.texi |
| 180 | emacs-xtra.texi rgm | 181 | emacs-xtra.texi |
| 181 | emerge-xtra.texi rgm | 182 | emerge-xtra.texi |
| 182 | entering.texi cyd | 183 | entering.texi |
| 183 | files.texi cyd | 184 | files.texi |
| 184 | fixit.texi cyd | 185 | fixit.texi |
| 185 | fortran-xtra.texi rgm | 186 | fortran-xtra.texi |
| 186 | frames.texi cyd | 187 | frames.texi |
| 187 | glossary.texi rgm | 188 | glossary.texi |
| 188 | help.texi cyd | 189 | help.texi |
| 189 | indent.texi cyd | 190 | indent.texi |
| 190 | killing.texi cyd | 191 | killing.texi |
| 191 | kmacro.texi cyd | 192 | kmacro.texi |
| 192 | macos.texi rgm (can't actually test any of it though) | 193 | macos.texi |
| 193 | maintaining.texi cyd | 194 | maintaining.texi |
| 194 | mark.texi cyd | 195 | mark.texi |
| 195 | mini.texi rgm | 196 | mini.texi |
| 196 | misc.texi cyd | 197 | misc.texi |
| 197 | modes.texi cyd | 198 | modes.texi |
| 198 | msdog.texi rgm (can't actually test any of it though) | 199 | msdog.texi |
| 199 | msdog-xtra.texi rgm (can't actually test any of it though) | 200 | msdog-xtra.texi |
| 200 | mule.texi rgm (not 100% sure about "Fontsets") | 201 | mule.texi |
| 201 | m-x.texi cyd | 202 | m-x.texi |
| 202 | package.texi cyd | 203 | package.texi |
| 203 | picture-xtra.texi rgm | 204 | picture-xtra.texi |
| 204 | programs.texi cyd | 205 | programs.texi |
| 205 | regs.texi cyd | 206 | regs.texi |
| 206 | rmail.texi rgm | 207 | rmail.texi |
| 207 | screen.texi cyd | 208 | screen.texi |
| 208 | search.texi cyd | 209 | search.texi |
| 209 | sending.texi cyd | 210 | sending.texi |
| 210 | text.texi cyd | 211 | text.texi |
| 211 | trouble.texi cyd | 212 | trouble.texi |
| 212 | vc-xtra.texi cyd | 213 | vc-xtra.texi |
| 213 | vc1-xtra.texi cyd | 214 | vc1-xtra.texi |
| 214 | windows.texi cyd | 215 | windows.texi |
| 215 | xresources.texi cyd | 216 | xresources.texi |
| 216 | 217 | ||
| 217 | ** Check the Lisp manual. | 218 | ** Check the Lisp manual. |
| 218 | 219 | ||
| 219 | abbrevs.texi rgm | 220 | abbrevs.texi |
| 220 | advice.texi cyd | 221 | anti.texi |
| 221 | anti.texi rgm | 222 | back.texi |
| 222 | back.texi rgm | 223 | backups.texi |
| 223 | backups.texi cyd | 224 | buffers.texi |
| 224 | buffers.texi cyd | 225 | commands.texi |
| 225 | commands.texi cyd | 226 | compile.texi |
| 226 | compile.texi cyd | 227 | control.texi |
| 227 | control.texi cyd | 228 | customize.texi |
| 228 | customize.texi cyd | 229 | debugging.texi |
| 229 | debugging.texi cyd | 230 | display.texi |
| 230 | display.texi cyd | 231 | edebug.texi |
| 231 | edebug.texi rgm | ||
| 232 | elisp.texi | 232 | elisp.texi |
| 233 | errors.texi rgm | 233 | errors.texi |
| 234 | eval.texi cyd | 234 | eval.texi |
| 235 | files.texi cyd | 235 | files.texi |
| 236 | frames.texi cyd | 236 | frames.texi |
| 237 | functions.texi cyd | 237 | functions.texi |
| 238 | hash.texi cyd | 238 | hash.texi |
| 239 | help.texi cyd | 239 | help.texi |
| 240 | hooks.texi rgm | 240 | hooks.texi |
| 241 | index.texi | 241 | index.texi |
| 242 | internals.texi rgm cyd | 242 | internals.texi |
| 243 | intro.texi cyd | 243 | intro.texi |
| 244 | keymaps.texi cyd | 244 | keymaps.texi |
| 245 | lists.texi cyd | 245 | lists.texi |
| 246 | loading.texi cyd | 246 | loading.texi |
| 247 | macros.texi cyd | 247 | macros.texi |
| 248 | maps.texi rgm | 248 | maps.texi |
| 249 | markers.texi rgm | 249 | markers.texi |
| 250 | minibuf.texi rgm | 250 | minibuf.texi |
| 251 | modes.texi cyd | 251 | modes.texi |
| 252 | nonascii.texi cyd | 252 | nonascii.texi |
| 253 | numbers.texi cyd | 253 | numbers.texi Paul Eggert (24.4) |
| 254 | objects.texi cyd | 254 | objects.texi |
| 255 | os.texi cyd | 255 | os.texi |
| 256 | package.texi rgm | 256 | package.texi |
| 257 | positions.texi cyd | 257 | positions.texi |
| 258 | processes.texi rgm | 258 | processes.texi |
| 259 | searching.texi rgm | 259 | searching.texi |
| 260 | sequences.texi cyd | 260 | sequences.texi |
| 261 | streams.texi cyd | 261 | streams.texi |
| 262 | strings.texi cyd | 262 | strings.texi |
| 263 | symbols.texi cyd | 263 | symbols.texi |
| 264 | syntax.texi cyd | 264 | syntax.texi |
| 265 | text.texi cyd | 265 | text.texi |
| 266 | tips.texi rgm | 266 | tips.texi |
| 267 | variables.texi cyd | 267 | variables.texi |
| 268 | windows.texi rgm (skimmed) | 268 | windows.texi |
| 269 | 269 | ||
| 270 | 270 | ||
| 271 | Local variables: | 271 | Local variables: |
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 f8ca8aec261..7af9ffa4177 100644 --- a/admin/admin.el +++ b/admin/admin.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; admin.el --- utilities for Emacs administration | 1 | ;;; admin.el --- utilities for Emacs administration |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2001-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; This file is part of GNU Emacs. | 5 | ;; This file is part of GNU Emacs. |
| 6 | 6 | ||
| @@ -21,7 +21,7 @@ | |||
| 21 | 21 | ||
| 22 | ;; add-release-logs Add ``Version X released'' change log entries. | 22 | ;; add-release-logs Add ``Version X released'' change log entries. |
| 23 | ;; set-version Change Emacs version number in source tree. | 23 | ;; set-version Change Emacs version number in source tree. |
| 24 | ;; set-copyright Change emacs short copyright string (eg as | 24 | ;; set-copyright Change Emacs short copyright string (eg as |
| 25 | ;; printed by --version) in source tree. | 25 | ;; printed by --version) in source tree. |
| 26 | 26 | ||
| 27 | ;;; Code: | 27 | ;;; Code: |
| @@ -46,7 +46,7 @@ Optional argument DATE is the release date, default today." | |||
| 46 | (funcall add-log-time-format)))))) | 46 | (funcall add-log-time-format)))))) |
| 47 | (setq root (expand-file-name root)) | 47 | (setq root (expand-file-name root)) |
| 48 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) | 48 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) |
| 49 | (error "%s doesn't seem to be the root of an Emacs source tree" root)) | 49 | (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) |
| 50 | (require 'add-log) | 50 | (require 'add-log) |
| 51 | (or date (setq date (let ((add-log-time-zone-rule t)) | 51 | (or date (setq date (let ((add-log-time-zone-rule t)) |
| 52 | (funcall add-log-time-format)))) | 52 | (funcall add-log-time-format)))) |
| @@ -62,18 +62,31 @@ Optional argument DATE is the release date, default today." | |||
| 62 | (insert entry)))) | 62 | (insert entry)))) |
| 63 | 63 | ||
| 64 | (defun set-version-in-file (root file version rx) | 64 | (defun set-version-in-file (root file version rx) |
| 65 | "Subroutine of `set-version' and `set-copyright'." | ||
| 65 | (find-file (expand-file-name file root)) | 66 | (find-file (expand-file-name file root)) |
| 66 | (goto-char (point-min)) | 67 | (goto-char (point-min)) |
| 67 | (unless (re-search-forward rx nil t) | 68 | (setq version (format "%s" version)) |
| 68 | (error "Version not found in %s" file)) | 69 | (unless (re-search-forward rx nil :noerror) |
| 69 | (replace-match (format "%s" version) nil nil nil 1)) | 70 | (user-error "Version not found in %s" file)) |
| 71 | (if (not (equal version (match-string 1))) | ||
| 72 | (replace-match version nil nil nil 1) | ||
| 73 | (kill-buffer) | ||
| 74 | (message "No need to update `%s'" file))) | ||
| 70 | 75 | ||
| 71 | (defun set-version (root version) | 76 | (defun set-version (root version) |
| 72 | "Set Emacs version to VERSION in relevant files under ROOT. | 77 | "Set Emacs version to VERSION in relevant files under ROOT. |
| 73 | Root must be the root of an Emacs source tree." | 78 | Root must be the root of an Emacs source tree." |
| 74 | (interactive "DEmacs root directory: \nsVersion number: ") | 79 | (interactive (list |
| 80 | (read-directory-name "Emacs root directory: " source-directory) | ||
| 81 | (read-string "Version number: " | ||
| 82 | (replace-regexp-in-string "\\.[0-9]+\\'" "" | ||
| 83 | emacs-version)))) | ||
| 75 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) | 84 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) |
| 76 | (error "%s doesn't seem to be the root of an Emacs source tree" root)) | 85 | (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) |
| 86 | (message "Setting version numbers...") | ||
| 87 | ;; There's also a "version 3" (standing for GPLv3) at the end of | ||
| 88 | ;; `README', but since `set-version-in-file' only replaces the first | ||
| 89 | ;; occurrence, it won't be replaced. | ||
| 77 | (set-version-in-file root "README" version | 90 | (set-version-in-file root "README" version |
| 78 | (rx (and "version" (1+ space) | 91 | (rx (and "version" (1+ space) |
| 79 | (submatch (1+ (in "0-9.")))))) | 92 | (submatch (1+ (in "0-9.")))))) |
| @@ -104,7 +117,7 @@ Root must be the root of an Emacs source tree." | |||
| 104 | ;; in two places those commas are followed by space, in two other | 117 | ;; in two places those commas are followed by space, in two other |
| 105 | ;; places they are not. | 118 | ;; places they are not. |
| 106 | (let* ((version-components (append (split-string version "\\.") | 119 | (let* ((version-components (append (split-string version "\\.") |
| 107 | '("0" "0"))) | 120 | '("0" "0"))) |
| 108 | (comma-version | 121 | (comma-version |
| 109 | (concat (car version-components) "," | 122 | (concat (car version-components) "," |
| 110 | (cadr version-components) "," | 123 | (cadr version-components) "," |
| @@ -153,8 +166,8 @@ Root must be the root of an Emacs source tree." | |||
| 153 | {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs") | 166 | {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs") |
| 154 | (set-version-in-file root "etc/refcards/emacsver.tex" version | 167 | (set-version-in-file root "etc/refcards/emacsver.tex" version |
| 155 | "\\\\def\\\\versionemacs\ | 168 | "\\\\def\\\\versionemacs\ |
| 156 | {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs")))) | 169 | {\\([0-9]\\{2,\\}\\)}.+%.+version of Emacs"))) |
| 157 | 170 | (message "Setting version numbers...done")) | |
| 158 | 171 | ||
| 159 | ;; Note this makes some assumptions about form of short copyright. | 172 | ;; Note this makes some assumptions about form of short copyright. |
| 160 | (defun set-copyright (root copyright) | 173 | (defun set-copyright (root copyright) |
| @@ -167,7 +180,8 @@ Root must be the root of an Emacs source tree." | |||
| 167 | (format "Copyright (C) %s Free Software Foundation, Inc." | 180 | (format "Copyright (C) %s Free Software Foundation, Inc." |
| 168 | (format-time-string "%Y"))))) | 181 | (format-time-string "%Y"))))) |
| 169 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) | 182 | (unless (file-exists-p (expand-file-name "src/emacs.c" root)) |
| 170 | (error "%s doesn't seem to be the root of an Emacs source tree" root)) | 183 | (user-error "%s doesn't seem to be the root of an Emacs source tree" root)) |
| 184 | (message "Setting copyrights...") | ||
| 171 | (set-version-in-file root "configure.ac" copyright | 185 | (set-version-in-file root "configure.ac" copyright |
| 172 | (rx (and bol "copyright" (0+ (not (in ?\"))) | 186 | (rx (and bol "copyright" (0+ (not (in ?\"))) |
| 173 | ?\" (submatch (1+ (not (in ?\")))) ?\"))) | 187 | ?\" (submatch (1+ (not (in ?\")))) ?\"))) |
| @@ -189,12 +203,14 @@ Root must be the root of an Emacs source tree." | |||
| 189 | {\\([0-9]\\{4\\}\\)}.+%.+copyright year") | 203 | {\\([0-9]\\{4\\}\\)}.+%.+copyright year") |
| 190 | (set-version-in-file root "etc/refcards/emacsver.tex" copyright | 204 | (set-version-in-file root "etc/refcards/emacsver.tex" copyright |
| 191 | "\\\\def\\\\year\ | 205 | "\\\\def\\\\year\ |
| 192 | {\\([0-9]\\{4\\}\\)}.+%.+copyright year"))) | 206 | {\\([0-9]\\{4\\}\\)}.+%.+copyright year")) |
| 207 | (message "Setting copyrights...done")) | ||
| 193 | 208 | ||
| 194 | ;;; Various bits of magic for generating the web manuals | 209 | ;;; Various bits of magic for generating the web manuals |
| 195 | 210 | ||
| 196 | (defun manual-misc-manuals (root) | 211 | (defun manual-misc-manuals (root) |
| 197 | "Return doc/misc manuals as list of strings." | 212 | "Return doc/misc manuals as list of strings. |
| 213 | ROOT should be the root of an Emacs source tree." | ||
| 198 | ;; Similar to `make -C doc/misc echo-info', but works if unconfigured, | 214 | ;; Similar to `make -C doc/misc echo-info', but works if unconfigured, |
| 199 | ;; and for INFO_TARGETS rather than INFO_INSTALL. | 215 | ;; and for INFO_TARGETS rather than INFO_INSTALL. |
| 200 | (with-temp-buffer | 216 | (with-temp-buffer |
| @@ -211,8 +227,10 @@ Root must be the root of an Emacs source tree." | |||
| 211 | (buffer-substring start (point)))) | 227 | (buffer-substring start (point)))) |
| 212 | '("efaq-w32"))))) | 228 | '("efaq-w32"))))) |
| 213 | 229 | ||
| 230 | ;; TODO report the progress | ||
| 214 | (defun make-manuals (root &optional type) | 231 | (defun make-manuals (root &optional type) |
| 215 | "Generate the web manuals for the Emacs webpage. | 232 | "Generate the web manuals for the Emacs webpage. |
| 233 | ROOT should be the root of an Emacs source tree. | ||
| 216 | Interactively with a prefix argument, prompt for TYPE. | 234 | Interactively with a prefix argument, prompt for TYPE. |
| 217 | Optional argument TYPE is type of output (nil means all)." | 235 | Optional argument TYPE is type of output (nil means all)." |
| 218 | (interactive (let ((root (read-directory-name "Emacs root directory: " | 236 | (interactive (let ((root (read-directory-name "Emacs root directory: " |
| @@ -319,6 +337,7 @@ the @import directive." | |||
| 319 | (manual-html-fix-node-div) | 337 | (manual-html-fix-node-div) |
| 320 | (goto-char (point-max)) | 338 | (goto-char (point-max)) |
| 321 | (re-search-backward "</body>[\n \t]*</html>") | 339 | (re-search-backward "</body>[\n \t]*</html>") |
| 340 | ;; Close the div id="content" that fix-index-1 added. | ||
| 322 | (insert "</div>\n\n") | 341 | (insert "</div>\n\n") |
| 323 | (save-buffer))) | 342 | (save-buffer))) |
| 324 | 343 | ||
| @@ -328,7 +347,7 @@ This function also edits the HTML files so that they validate as | |||
| 328 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using | 347 | HTML 4.01 Transitional, and pulls in the gnu.org stylesheet using |
| 329 | the @import directive." | 348 | the @import directive." |
| 330 | (unless (file-exists-p texi-file) | 349 | (unless (file-exists-p texi-file) |
| 331 | (error "Manual file %s not found" texi-file)) | 350 | (user-error "Manual file %s not found" texi-file)) |
| 332 | (make-directory dir t) | 351 | (make-directory dir t) |
| 333 | (call-process "makeinfo" nil nil nil | 352 | (call-process "makeinfo" nil nil nil |
| 334 | "-D" "WWW_GNU_ORG" | 353 | "-D" "WWW_GNU_ORG" |
| @@ -359,13 +378,14 @@ the @import directive." | |||
| 359 | (manual-html-fix-index-2) | 378 | (manual-html-fix-index-2) |
| 360 | (if copyright-text | 379 | (if copyright-text |
| 361 | (insert copyright-text)) | 380 | (insert copyright-text)) |
| 381 | ;; Close the div id="content" that fix-index-1 added. | ||
| 362 | (insert "\n</div>\n")) | 382 | (insert "\n</div>\n")) |
| 363 | ;; For normal nodes, give the header div a blue bg. | 383 | ;; For normal nodes, give the header div a blue bg. |
| 364 | (manual-html-fix-node-div)) | 384 | (manual-html-fix-node-div t)) |
| 365 | (save-buffer)))))) | 385 | (save-buffer)))))) |
| 366 | 386 | ||
| 367 | (defun manual-pdf (texi-file dest) | 387 | (defun manual-pdf (texi-file dest) |
| 368 | "Run texi2pdf on TEXI-FILE, emitting pdf output to DEST." | 388 | "Run texi2pdf on TEXI-FILE, emitting PDF output to DEST." |
| 369 | (make-directory (or (file-name-directory dest) ".") t) | 389 | (make-directory (or (file-name-directory dest) ".") t) |
| 370 | (let ((default-directory (file-name-directory texi-file))) | 390 | (let ((default-directory (file-name-directory texi-file))) |
| 371 | (call-process "texi2pdf" nil nil nil | 391 | (call-process "texi2pdf" nil nil nil |
| @@ -377,6 +397,7 @@ the @import directive." | |||
| 377 | (make-directory (or (file-name-directory dest) ".") t) | 397 | (make-directory (or (file-name-directory dest) ".") t) |
| 378 | (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi")) | 398 | (let ((dvi-dest (concat (file-name-sans-extension dest) ".dvi")) |
| 379 | (default-directory (file-name-directory texi-file))) | 399 | (default-directory (file-name-directory texi-file))) |
| 400 | ;; FIXME: Use `texi2dvi --ps'? --xfq | ||
| 380 | (call-process "texi2dvi" nil nil nil | 401 | (call-process "texi2dvi" nil nil nil |
| 381 | "-I" "../emacs" "-I" "../misc" | 402 | "-I" "../emacs" "-I" "../misc" |
| 382 | texi-file "-o" dvi-dest) | 403 | texi-file "-o" dvi-dest) |
| @@ -386,119 +407,215 @@ the @import directive." | |||
| 386 | 407 | ||
| 387 | (defun manual-html-fix-headers () | 408 | (defun manual-html-fix-headers () |
| 388 | "Fix up HTML headers for the Emacs manual in the current buffer." | 409 | "Fix up HTML headers for the Emacs manual in the current buffer." |
| 389 | (let (opoint) | 410 | (let ((texi5 (search-forward "<!DOCTYPE" nil t)) |
| 390 | (insert manual-doctype-string) | 411 | opoint) |
| 412 | ;; Texinfo 5 supplies a DOCTYPE. | ||
| 413 | (or texi5 | ||
| 414 | (insert manual-doctype-string)) | ||
| 391 | (search-forward "<head>\n") | 415 | (search-forward "<head>\n") |
| 392 | (insert manual-meta-string) | 416 | (insert manual-meta-string) |
| 393 | (search-forward "<meta") | 417 | (search-forward "<meta") |
| 394 | (setq opoint (match-beginning 0)) | 418 | (setq opoint (match-beginning 0)) |
| 395 | (re-search-forward "<!--") | 419 | (unless texi5 |
| 420 | (search-forward "<!--") | ||
| 421 | (goto-char (match-beginning 0)) | ||
| 422 | (delete-region opoint (point)) | ||
| 423 | (search-forward "<meta http-equiv=\"Content-Style") | ||
| 424 | (setq opoint (match-beginning 0))) | ||
| 425 | (search-forward "</head>") | ||
| 396 | (goto-char (match-beginning 0)) | 426 | (goto-char (match-beginning 0)) |
| 397 | (delete-region opoint (point)) | 427 | (delete-region opoint (point)) |
| 398 | (insert manual-style-string) | 428 | (insert manual-style-string) |
| 399 | (search-forward "<meta http-equiv=\"Content-Style") | 429 | ;; Remove Texinfo 5 hard-coding bgcolor, text, link, vlink, alink. |
| 400 | (setq opoint (match-beginning 0)) | 430 | (when (re-search-forward "<body lang=\"[^\"]+\"" nil t) |
| 401 | (search-forward "</head>") | 431 | (setq opoint (point)) |
| 402 | (delete-region opoint (match-beginning 0)))) | 432 | (search-forward ">") |
| 433 | (if (> (point) (1+ opoint)) | ||
| 434 | (delete-region opoint (1- (point)))) | ||
| 435 | (search-backward "</head")))) | ||
| 403 | 436 | ||
| 404 | (defun manual-html-fix-node-div () | 437 | ;; Texinfo 5 changed these from class = "node" to "header", yay. |
| 438 | (defun manual-html-fix-node-div (&optional split) | ||
| 405 | "Fix up HTML \"node\" divs in the current buffer." | 439 | "Fix up HTML \"node\" divs in the current buffer." |
| 406 | (let (opoint div-end) | 440 | (let (opoint div-end type) |
| 407 | (while (search-forward "<div class=\"node\">" nil t) | 441 | (while (re-search-forward "<div class=\"\\(node\\|header\\)\"\\(>\\)" nil t) |
| 408 | (replace-match | 442 | (setq type (match-string 1)) |
| 409 | "<div class=\"node\" style=\"background-color:#DDDDFF\">" | 443 | ;; NB it is this that makes the bg of non-header cells in the |
| 410 | t t) | 444 | ;; index tables be blue. Is that intended? |
| 445 | ;; Also, if you don't remove the <hr>, the color of the first | ||
| 446 | ;; row in the table will be wrong. | ||
| 447 | ;; This all seems rather odd to me... | ||
| 448 | (replace-match " style=\"background-color:#DDDDFF\">" t t nil 2) | ||
| 411 | (setq opoint (point)) | 449 | (setq opoint (point)) |
| 412 | (re-search-forward "</div>") | 450 | (when (or split (equal type "node")) |
| 413 | (setq div-end (match-beginning 0)) | 451 | ;; In Texinfo 4, the <hr> (and anchor) comes after the <div>. |
| 414 | (goto-char opoint) | 452 | (re-search-forward "</div>") |
| 415 | (if (search-forward "<hr>" div-end 'move) | 453 | (setq div-end (if (equal type "node") |
| 416 | (replace-match "" t t))))) | 454 | (match-beginning 0) |
| 455 | (line-end-position 2))) | ||
| 456 | (goto-char opoint) | ||
| 457 | (if (search-forward "<hr>" div-end 'move) | ||
| 458 | (replace-match "" t t) | ||
| 459 | (if split (forward-line -1)))) | ||
| 460 | ;; In Texinfo 5, the <hr> (and anchor) comes before the <div> (?). | ||
| 461 | ;; Except in split output, where it comes on the line after | ||
| 462 | ;; the <div>. But only sometimes. I have no clue what the | ||
| 463 | ;; logic of where it goes is. | ||
| 464 | (when (equal type "header") | ||
| 465 | (goto-char opoint) | ||
| 466 | (when (re-search-backward "^<hr>$" (line-beginning-position -3) t) | ||
| 467 | (replace-match "") | ||
| 468 | (goto-char opoint)))))) | ||
| 469 | |||
| 417 | 470 | ||
| 418 | (defun manual-html-fix-index-1 () | 471 | (defun manual-html-fix-index-1 () |
| 472 | "Remove the h1 header, and the short and long contents lists. | ||
| 473 | Also start a \"content\" div." | ||
| 419 | (let (opoint) | 474 | (let (opoint) |
| 420 | (re-search-forward "<body>\n") | 475 | (re-search-forward "<body.*>\n") |
| 421 | (setq opoint (match-end 0)) | 476 | (setq opoint (match-end 0)) |
| 422 | (search-forward "<h2 class=\"") | 477 | ;; FIXME? Fragile if a Texinfo 5 document does not use @top. |
| 478 | (or (re-search-forward "<h1 class=\"top\"" nil t) ; Texinfo 5 | ||
| 479 | (search-forward "<h2 class=\"")) | ||
| 423 | (goto-char (match-beginning 0)) | 480 | (goto-char (match-beginning 0)) |
| 424 | (delete-region opoint (point)) | 481 | (delete-region opoint (point)) |
| 482 | ;; NB caller must close this div. | ||
| 425 | (insert "<div id=\"content\" class=\"inner\">\n\n"))) | 483 | (insert "<div id=\"content\" class=\"inner\">\n\n"))) |
| 426 | 484 | ||
| 427 | (defun manual-html-fix-index-2 (&optional table-workaround) | 485 | (defun manual-html-fix-index-2 (&optional table-workaround) |
| 428 | "Replace the index list in the current buffer with a HTML table." | 486 | "Replace the index list in the current buffer with a HTML table. |
| 429 | (let (done open-td tag desc) | 487 | Leave point after the table." |
| 430 | ;; Convert the list that Makeinfo made into a table. | 488 | (if (re-search-forward "<table class=\"menu\"\\(.*\\)>" nil t) |
| 431 | (or (search-forward "<ul class=\"menu\">" nil t) | 489 | ;; Texinfo 5 already uses a table. Tweak it a bit. |
| 432 | (search-forward "<ul>")) | 490 | (let (opoint done) |
| 433 | (replace-match "<table style=\"float:left\" width=\"100%\">") | 491 | (replace-match " style=\"float:left\" width=\"100%\"" nil t nil 1) |
| 434 | (forward-line 1) | 492 | (forward-line 1) |
| 435 | (while (not done) | 493 | (while (not done) |
| 436 | (cond | 494 | (cond ((re-search-forward "<tr><td.*• \\(<a.*</a>\\)\ |
| 437 | ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$") | 495 | :</td><td> </td><td[^>]*>\\(.*\\)" (line-end-position) t) |
| 438 | (looking-at "<li>\\(<a.+</a>\\)$")) | 496 | (replace-match (format "<tr><td%s>\\1</td>\n<td>\\2" |
| 439 | (setq tag (match-string 1)) | 497 | (if table-workaround |
| 440 | (setq desc (match-string 2)) | 498 | " bgcolor=\"white\"" ""))) |
| 441 | (replace-match "" t t) | 499 | (search-forward "</td></tr>") |
| 442 | (when open-td | 500 | (forward-line 1)) |
| 443 | (save-excursion | 501 | ((looking-at "<tr><th.*<pre class=\"menu-comment\">\n") |
| 444 | (forward-char -1) | 502 | (replace-match "<tr><th colspan=\"2\" align=\"left\" \ |
| 445 | (skip-chars-backward " ") | 503 | style=\"text-align:left\">") |
| 446 | (delete-region (point) (line-end-position)) | 504 | (search-forward "</pre></th></tr>") |
| 447 | (insert "</td>\n </tr>"))) | 505 | (replace-match "</th></tr>\n")) |
| 448 | (insert " <tr>\n ") | 506 | ;; Not all manuals have the detailed menu. |
| 449 | (if table-workaround | 507 | ;; If it is there, split it into a separate table. |
| 450 | ;; This works around a Firefox bug in the mono file. | 508 | ((re-search-forward "<tr>.*The Detailed Node Listing *" |
| 451 | (insert "<td bgcolor=\"white\">") | 509 | (line-end-position) t) |
| 452 | (insert "<td>")) | 510 | (setq opoint (match-beginning 0)) |
| 453 | (insert tag "</td>\n <td>" (or desc "")) | 511 | (while (and (looking-at " *—") |
| 454 | (setq open-td t)) | 512 | (zerop (forward-line 1)))) |
| 455 | ((eq (char-after) ?\n) | 513 | (delete-region opoint (point)) |
| 456 | (delete-char 1) | 514 | (insert "</table>\n\n\ |
| 457 | ;; Negate the following `forward-line'. | 515 | <h2>Detailed Node Listing</h2>\n\n<p>") |
| 458 | (forward-line -1)) | 516 | ;; FIXME Fragile! |
| 459 | ((looking-at "<!-- ") | 517 | ;; The Emacs and Elisp manual have some text at the |
| 460 | (search-forward "-->")) | 518 | ;; start of the detailed menu that is not part of the menu. |
| 461 | ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*") | 519 | ;; Other manuals do not. |
| 462 | (replace-match " </td></tr></table>\n | 520 | (if (re-search-forward "in one step:" (line-end-position 3) t) |
| 521 | (forward-line 1)) | ||
| 522 | (insert "</p>\n") | ||
| 523 | (search-forward "</pre></th></tr>") | ||
| 524 | (delete-region (match-beginning 0) (match-end 0)) | ||
| 525 | (forward-line -1) | ||
| 526 | (or (looking-at "^$") (error "Parse error 1")) | ||
| 527 | (forward-line -1) | ||
| 528 | (if (looking-at "^$") (error "Parse error 2")) | ||
| 529 | (forward-line -1) | ||
| 530 | (or (looking-at "^$") (error "Parse error 3")) | ||
| 531 | (forward-line 1) | ||
| 532 | (insert "<table class=\"menu\" style=\"float:left\" width=\"100%\">\n\ | ||
| 533 | <tr><th colspan=\"2\" align=\"left\" style=\"text-align:left\">\n") | ||
| 534 | (forward-line 1) | ||
| 535 | (insert "</th></tr>") | ||
| 536 | (forward-line 1)) | ||
| 537 | ((looking-at ".*</table") | ||
| 538 | (forward-line 1) | ||
| 539 | (setq done t))))) | ||
| 540 | (let (done open-td tag desc) | ||
| 541 | ;; Convert the list that Makeinfo made into a table. | ||
| 542 | (or (search-forward "<ul class=\"menu\">" nil t) | ||
| 543 | ;; FIXME? The following search seems dangerously lax. | ||
| 544 | (search-forward "<ul>")) | ||
| 545 | (replace-match "<table style=\"float:left\" width=\"100%\">") | ||
| 546 | (forward-line 1) | ||
| 547 | (while (not done) | ||
| 548 | (cond | ||
| 549 | ((or (looking-at "<li>\\(<a.+</a>\\):[ \t]+\\(.*\\)$") | ||
| 550 | (looking-at "<li>\\(<a.+</a>\\)$")) | ||
| 551 | (setq tag (match-string 1)) | ||
| 552 | (setq desc (match-string 2)) | ||
| 553 | (replace-match "" t t) | ||
| 554 | (when open-td | ||
| 555 | (save-excursion | ||
| 556 | (forward-char -1) | ||
| 557 | (skip-chars-backward " ") | ||
| 558 | (delete-region (point) (line-end-position)) | ||
| 559 | (insert "</td>\n </tr>"))) | ||
| 560 | (insert " <tr>\n ") | ||
| 561 | (if table-workaround | ||
| 562 | ;; This works around a Firefox bug in the mono file. | ||
| 563 | (insert "<td bgcolor=\"white\">") | ||
| 564 | (insert "<td>")) | ||
| 565 | (insert tag "</td>\n <td>" (or desc "")) | ||
| 566 | (setq open-td t)) | ||
| 567 | ((eq (char-after) ?\n) | ||
| 568 | (delete-char 1) | ||
| 569 | ;; Negate the following `forward-line'. | ||
| 570 | (forward-line -1)) | ||
| 571 | ((looking-at "<!-- ") | ||
| 572 | (search-forward "-->")) | ||
| 573 | ((looking-at "<p>[- ]*The Detailed Node Listing[- \n]*") | ||
| 574 | (replace-match " </td></tr></table>\n | ||
| 463 | <h3>Detailed Node Listing</h3>\n\n" t t) | 575 | <h3>Detailed Node Listing</h3>\n\n" t t) |
| 464 | (search-forward "<p>") | 576 | (search-forward "<p>") |
| 465 | (search-forward "<p>" nil t) | 577 | ;; FIXME Fragile! |
| 466 | (goto-char (match-beginning 0)) | 578 | ;; The Emacs and Elisp manual have some text at the |
| 467 | (skip-chars-backward "\n ") | 579 | ;; start of the detailed menu that is not part of the menu. |
| 468 | (setq open-td nil) | 580 | ;; Other manuals do not. |
| 469 | (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">")) | 581 | (if (looking-at "Here are some other nodes") |
| 470 | ((looking-at "</li></ul>") | 582 | (search-forward "<p>")) |
| 471 | (replace-match "" t t)) | 583 | (goto-char (match-beginning 0)) |
| 472 | ((looking-at "<p>") | 584 | (skip-chars-backward "\n ") |
| 473 | (replace-match "" t t) | 585 | (setq open-td nil) |
| 474 | (when open-td | 586 | (insert "</p>\n\n<table style=\"float:left\" width=\"100%\">")) |
| 475 | (insert " </td></tr>") | 587 | ((looking-at "</li></ul>") |
| 476 | (setq open-td nil)) | 588 | (replace-match "" t t)) |
| 477 | (insert " <tr> | 589 | ((looking-at "<p>") |
| 590 | (replace-match "" t t) | ||
| 591 | (when open-td | ||
| 592 | (insert " </td></tr>") | ||
| 593 | (setq open-td nil)) | ||
| 594 | (insert " <tr> | ||
| 478 | <th colspan=\"2\" align=\"left\" style=\"text-align:left\">") | 595 | <th colspan=\"2\" align=\"left\" style=\"text-align:left\">") |
| 479 | (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t) | 596 | (if (re-search-forward "</p>[ \t\n]*<ul class=\"menu\">" nil t) |
| 480 | (replace-match " </th></tr>"))) | 597 | (replace-match " </th></tr>"))) |
| 481 | ((looking-at "[ \t]*</ul>[ \t]*$") | 598 | ((looking-at "[ \t]*</ul>[ \t]*$") |
| 482 | (replace-match | 599 | (replace-match |
| 483 | (if open-td | 600 | (if open-td |
| 484 | " </td></tr>\n</table>" | 601 | " </td></tr>\n</table>" |
| 485 | "</table>") t t) | 602 | "</table>") t t) |
| 486 | (setq done t)) | 603 | (setq done t)) |
| 487 | (t | 604 | (t |
| 488 | (if (eobp) | 605 | (if (eobp) |
| 489 | (error "Parse error in %s" | 606 | (error "Parse error in %s" |
| 490 | (file-name-nondirectory buffer-file-name))) | 607 | (file-name-nondirectory buffer-file-name))) |
| 491 | (unless open-td | 608 | (unless open-td |
| 492 | (setq done t)))) | 609 | (setq done t)))) |
| 493 | (forward-line 1)))) | 610 | (forward-line 1))))) |
| 494 | 611 | ||
| 495 | 612 | ||
| 496 | ;; Stuff to check new defcustoms got :version tags. | 613 | ;; Stuff to check new `defcustom's got :version tags. |
| 497 | ;; Adapted from check-declare.el. | 614 | ;; Adapted from check-declare.el. |
| 498 | 615 | ||
| 499 | (defun cusver-find-files (root &optional old) | 616 | (defun cusver-find-files (root &optional old) |
| 500 | "Find .el files beneath directory ROOT that contain defcustoms. | 617 | "Find .el files beneath directory ROOT that contain `defcustom's. |
| 501 | If optional OLD is non-nil, also include defvars." | 618 | If optional OLD is non-nil, also include `defvar's." |
| 502 | (process-lines find-program root | 619 | (process-lines find-program root |
| 503 | "-name" "*.el" | 620 | "-name" "*.el" |
| 504 | "-exec" grep-program | 621 | "-exec" grep-program |
| @@ -510,14 +627,14 @@ If optional OLD is non-nil, also include defvars." | |||
| 510 | 627 | ||
| 511 | (defvar cusver-new-version (format "%s.%s" emacs-major-version | 628 | (defvar cusver-new-version (format "%s.%s" emacs-major-version |
| 512 | (1+ emacs-minor-version)) | 629 | (1+ emacs-minor-version)) |
| 513 | "Version number that new defcustoms should have.") | 630 | "Version number that new `defcustom's should have.") |
| 514 | 631 | ||
| 515 | (defun cusver-scan (file &optional old) | 632 | (defun cusver-scan (file &optional old) |
| 516 | "Scan FILE for `defcustom' calls. | 633 | "Scan FILE for `defcustom' calls. |
| 517 | Return a list with elements of the form (VAR . VER), | 634 | Return a list with elements of the form (VAR . VER), |
| 518 | This means that FILE contains a defcustom for variable VAR, with | 635 | This means that FILE contains a defcustom for variable VAR, with |
| 519 | a :version tag having value VER (may be nil). | 636 | a :version tag having value VER (may be nil). |
| 520 | If optional argument OLD is non-nil, also scan for defvars." | 637 | If optional argument OLD is non-nil, also scan for `defvar's." |
| 521 | (let ((m (format "Scanning %s..." file)) | 638 | (let ((m (format "Scanning %s..." file)) |
| 522 | (re (format "^[ \t]*\\((def%s\\)[ \t\n]" | 639 | (re (format "^[ \t]*\\((def%s\\)[ \t\n]" |
| 523 | (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) | 640 | (if old "\\(custom\\|var\\)" "\\(custom\\|group\\)"))) |
| @@ -526,13 +643,19 @@ If optional argument OLD is non-nil, also scan for defvars." | |||
| 526 | (with-temp-buffer | 643 | (with-temp-buffer |
| 527 | (insert-file-contents file) | 644 | (insert-file-contents file) |
| 528 | ;; FIXME we could theoretically be inside a string. | 645 | ;; FIXME we could theoretically be inside a string. |
| 529 | (while (re-search-forward re nil t) | 646 | (while (re-search-forward re nil :noerror) |
| 530 | (goto-char (match-beginning 1)) | 647 | (goto-char (match-beginning 1)) |
| 531 | (if (and (setq form (ignore-errors (read (current-buffer)))) | 648 | (if (and (setq form (ignore-errors (read (current-buffer)))) |
| 532 | (setq var (car-safe (cdr-safe form))) | 649 | (setq var (car-safe (cdr-safe form))) |
| 533 | ;; Exclude macros, eg (defcustom ,varname ...). | 650 | ;; Exclude macros, eg (defcustom ,varname ...). |
| 534 | (symbolp var)) | 651 | (symbolp var)) |
| 535 | (progn | 652 | (progn |
| 653 | ;; FIXME It should be cus-test-apropos that does this. | ||
| 654 | (and (not old) | ||
| 655 | (equal "custom" (match-string 2)) | ||
| 656 | (not (memq :type form)) | ||
| 657 | (display-warning 'custom | ||
| 658 | (format "Missing type in: `%s'" form))) | ||
| 536 | (setq ver (car (cdr-safe (memq :version form)))) | 659 | (setq ver (car (cdr-safe (memq :version form)))) |
| 537 | (if (equal "group" (match-string 2)) | 660 | (if (equal "group" (match-string 2)) |
| 538 | ;; Group :version could be old. | 661 | ;; Group :version could be old. |
| @@ -568,7 +691,7 @@ If optional argument OLD is non-nil, also scan for defvars." | |||
| 568 | (define-button-type 'cusver-xref 'action #'cusver-goto-xref) | 691 | (define-button-type 'cusver-xref 'action #'cusver-goto-xref) |
| 569 | 692 | ||
| 570 | (defun cusver-goto-xref (button) | 693 | (defun cusver-goto-xref (button) |
| 571 | "Jump to a lisp file for the BUTTON at point." | 694 | "Jump to a Lisp file for the BUTTON at point." |
| 572 | (let ((file (button-get button 'file)) | 695 | (let ((file (button-get button 'file)) |
| 573 | (var (button-get button 'var))) | 696 | (var (button-get button 'var))) |
| 574 | (if (not (file-readable-p file)) | 697 | (if (not (file-readable-p file)) |
| @@ -584,34 +707,36 @@ If optional argument OLD is non-nil, also scan for defvars." | |||
| 584 | ;; TODO Check cus-start if something moved from C to Lisp. | 707 | ;; TODO Check cus-start if something moved from C to Lisp. |
| 585 | ;; TODO Handle renamed things with aliases to the old names. | 708 | ;; TODO Handle renamed things with aliases to the old names. |
| 586 | (defun cusver-check (newdir olddir version) | 709 | (defun cusver-check (newdir olddir version) |
| 587 | "Check that defcustoms have :version tags where needed. | 710 | "Check that `defcustom's have :version tags where needed. |
| 588 | NEWDIR is the current lisp/ directory, OLDDIR is that from the previous | 711 | NEWDIR is the current lisp/ directory, OLDDIR is that from the |
| 589 | release. A defcustom that is only in NEWDIR should have a :version | 712 | previous release, VERSION is the new version number. A |
| 590 | tag. We exclude cases where a defvar exists in OLDDIR, since | 713 | `defcustom' that is only in NEWDIR should have a :version tag. |
| 591 | just converting a defvar to a defcustom does not require a :version bump. | 714 | We exclude cases where a `defvar' exists in OLDDIR, since just |
| 715 | converting a `defvar' to a `defcustom' does not require | ||
| 716 | a :version bump. | ||
| 592 | 717 | ||
| 593 | Note that a :version tag should also be added if the value of a defcustom | 718 | Note that a :version tag should also be added if the value of a defcustom |
| 594 | changes (in a non-trivial way). This function does not check for that." | 719 | changes (in a non-trivial way). This function does not check for that." |
| 595 | (interactive (list (read-directory-name "New Lisp directory: ") | 720 | (interactive (list (read-directory-name "New Lisp directory: " nil nil t) |
| 596 | (read-directory-name "Old Lisp directory: ") | 721 | (read-directory-name "Old Lisp directory: " nil nil t) |
| 597 | (number-to-string | 722 | (number-to-string |
| 598 | (read-number "New version number: " | 723 | (read-number "New version number: " |
| 599 | (string-to-number cusver-new-version))))) | 724 | (string-to-number cusver-new-version))))) |
| 600 | (or (file-directory-p (setq newdir (expand-file-name newdir))) | 725 | (or (file-directory-p (setq newdir (expand-file-name newdir))) |
| 601 | (error "Directory `%s' not found" newdir)) | 726 | (user-error "Directory `%s' not found" newdir)) |
| 602 | (or (file-directory-p (setq olddir (expand-file-name olddir))) | 727 | (or (file-directory-p (setq olddir (expand-file-name olddir))) |
| 603 | (error "Directory `%s' not found" olddir)) | 728 | (user-error "Directory `%s' not found" olddir)) |
| 604 | (setq cusver-new-version version) | 729 | (setq cusver-new-version version) |
| 605 | (let* ((newfiles (progn (message "Finding new files with defcustoms...") | 730 | (let* ((newfiles (progn (message "Finding new files with `defcustom's...") |
| 606 | (cusver-find-files newdir))) | 731 | (cusver-find-files newdir))) |
| 607 | (oldfiles (progn (message "Finding old files with defcustoms...") | 732 | (oldfiles (progn (message "Finding old files with `defcustom's...") |
| 608 | (cusver-find-files olddir t))) | 733 | (cusver-find-files olddir t))) |
| 609 | (newcus (progn (message "Reading new defcustoms...") | 734 | (newcus (progn (message "Reading new `defcustom's...") |
| 610 | (mapcar | 735 | (mapcar |
| 611 | (lambda (file) | 736 | (lambda (file) |
| 612 | (cons file (cusver-scan file))) newfiles))) | 737 | (cons file (cusver-scan file))) newfiles))) |
| 613 | oldcus result thisfile file) | 738 | oldcus result thisfile file) |
| 614 | (message "Reading old defcustoms...") | 739 | (message "Reading old `defcustom's...") |
| 615 | (dolist (file oldfiles) | 740 | (dolist (file oldfiles) |
| 616 | (setq oldcus (append oldcus (cusver-scan file t)))) | 741 | (setq oldcus (append oldcus (cusver-scan file t)))) |
| 617 | (setq oldcus (append oldcus (cusver-scan-cus-start | 742 | (setq oldcus (append oldcus (cusver-scan-cus-start |
| @@ -636,7 +761,7 @@ changes (in a non-trivial way). This function does not check for that." | |||
| 636 | (message "No missing :version tags") | 761 | (message "No missing :version tags") |
| 637 | (pop-to-buffer "*cusver*") | 762 | (pop-to-buffer "*cusver*") |
| 638 | (erase-buffer) | 763 | (erase-buffer) |
| 639 | (insert "These defcustoms might be missing :version tags:\n\n") | 764 | (insert "These `defcustom's might be missing :version tags:\n\n") |
| 640 | (dolist (elem result) | 765 | (dolist (elem result) |
| 641 | (let* ((str (file-relative-name (car elem) newdir)) | 766 | (let* ((str (file-relative-name (car elem) newdir)) |
| 642 | (strlen (length str))) | 767 | (strlen (length str))) |
diff --git a/admin/alloc-colors.c b/admin/alloc-colors.c index d8fc97cc721..a63e1bacef5 100644 --- a/admin/alloc-colors.c +++ b/admin/alloc-colors.c | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | /* Allocate X colors. Used for testing with dense colormaps. | 1 | /* Allocate X colors. Used for testing with dense colormaps. |
| 2 | 2 | ||
| 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 42d39d3071a..924033b1554 100644 --- a/admin/bzrmerge.el +++ b/admin/bzrmerge.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; bzrmerge.el --- help merge one Emacs bzr branch to another | 1 | ;;; bzrmerge.el --- help merge one Emacs bzr branch to another |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2010-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2010-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> | 5 | ;; Author: Stefan Monnier <monnier@iro.umontreal.ca> |
| 6 | ;; Keywords: maint | 6 | ;; Keywords: maint |
diff --git a/admin/charsets/mapfiles/README b/admin/charsets/mapfiles/README index 0a742854811..15ec320589f 100644 --- a/admin/charsets/mapfiles/README +++ b/admin/charsets/mapfiles/README | |||
| @@ -1,4 +1,4 @@ | |||
| 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 54d26cc11d6..b60eac28d2a 100644 --- a/admin/cus-test.el +++ b/admin/cus-test.el | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; cus-test.el --- tests for custom types and load problems | 1 | ;;; cus-test.el --- tests for custom types and load problems |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 1998, 2000, 2002-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 1998, 2000, 2002-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de> | 5 | ;; Author: Markus Rost <markus.rost@mathematik.uni-regensburg.de> |
| 6 | ;; Maintainer: Markus Rost <rost@math.ohio-state.edu> | 6 | ;; Maintainer: Markus Rost <rost@math.ohio-state.edu> |
| @@ -187,6 +187,9 @@ The detected problematic options are stored in `cus-test-errors'." | |||
| 187 | (message "Cus Test running...%s %s" | 187 | (message "Cus Test running...%s %s" |
| 188 | (length cus-test-tested-variables) symbol) | 188 | (length cus-test-tested-variables) symbol) |
| 189 | (condition-case alpha | 189 | (condition-case alpha |
| 190 | ;; FIXME This defaults to 'sexp if no type was specified. | ||
| 191 | ;; Always report such instances as a type mismatch. | ||
| 192 | ;; Currently abusing cusver-scan to do that. | ||
| 190 | (let* ((type (custom-variable-type symbol)) | 193 | (let* ((type (custom-variable-type symbol)) |
| 191 | (conv (widget-convert type)) | 194 | (conv (widget-convert type)) |
| 192 | (get (or (get symbol 'custom-get) 'default-value)) | 195 | (get (or (get symbol 'custom-get) 'default-value)) |
diff --git a/admin/diff-tar-files b/admin/diff-tar-files index af892d6ce41..9bdc91ff5fd 100755 --- a/admin/diff-tar-files +++ b/admin/diff-tar-files | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | #! /bin/sh | 1 | #! /bin/sh |
| 2 | 2 | ||
| 3 | # Copyright (C) 2001-2013 Free Software Foundation, Inc. | 3 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | # This file is part of GNU Emacs. | 5 | # This file is part of GNU Emacs. |
| 6 | 6 | ||
diff --git a/admin/find-gc.el b/admin/find-gc.el new file mode 100644 index 00000000000..83eb26e86d7 --- /dev/null +++ b/admin/find-gc.el | |||
| @@ -0,0 +1,149 @@ | |||
| 1 | ;;; find-gc.el --- detect functions that call the garbage collector | ||
| 2 | |||
| 3 | ;; Copyright (C) 1992, 2001-2014 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Maintainer: emacs-devel@gnu.org | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 21 | |||
| 22 | ;;; Commentary: | ||
| 23 | |||
| 24 | ;; Produce in find-gc-unsafe-list the set of all functions that may invoke GC. | ||
| 25 | ;; This expects the Emacs sources to live in find-gc-source-directory. | ||
| 26 | |||
| 27 | ;;; Code: | ||
| 28 | |||
| 29 | (defvar find-gc-unsafe-list nil | ||
| 30 | "The list of unsafe functions is placed here by `find-gc-unsafe'.") | ||
| 31 | |||
| 32 | (defvar find-gc-source-directory | ||
| 33 | (file-name-as-directory (expand-file-name "src" source-directory)) | ||
| 34 | "Directory containing Emacs C sources.") | ||
| 35 | |||
| 36 | (defvar find-gc-subrs-callers nil | ||
| 37 | "Alist of users of subrs, from GC testing. | ||
| 38 | Each entry has the form (FUNCTION . FUNCTIONS-THAT-CALL-IT).") | ||
| 39 | |||
| 40 | (defvar find-gc-subrs-called nil | ||
| 41 | "Alist of subrs called, in GC testing. | ||
| 42 | Each entry has the form (FUNCTION . FUNCTIONS-IT-CALLS).") | ||
| 43 | |||
| 44 | |||
| 45 | ;;; Functions on this list are safe, even if they appear to be able | ||
| 46 | ;;; to call the target. | ||
| 47 | |||
| 48 | (defvar find-gc-noreturn-list '(Fsignal Fthrow wrong_type_argument)) | ||
| 49 | |||
| 50 | ;;; This was originally generated directory-files, but there were | ||
| 51 | ;;; too many files there that were not actually compiled. The | ||
| 52 | ;;; list below was created for a HP-UX 7.0 system. | ||
| 53 | |||
| 54 | (defvar find-gc-source-files | ||
| 55 | '("dispnew.c" "scroll.c" "xdisp.c" "window.c" | ||
| 56 | "term.c" "cm.c" "emacs.c" "keyboard.c" "macros.c" | ||
| 57 | "keymap.c" "sysdep.c" "buffer.c" "filelock.c" | ||
| 58 | "insdel.c" "marker.c" "minibuf.c" "fileio.c" | ||
| 59 | "dired.c" "cmds.c" "casefiddle.c" | ||
| 60 | "indent.c" "search.c" "regex.c" "undo.c" | ||
| 61 | "alloc.c" "data.c" "doc.c" "editfns.c" | ||
| 62 | "callint.c" "eval.c" "fns.c" "print.c" "lread.c" | ||
| 63 | "syntax.c" "unexcoff.c" | ||
| 64 | "bytecode.c" "process.c" "callproc.c" "doprnt.c" | ||
| 65 | "xterm.c" "xfns.c")) | ||
| 66 | |||
| 67 | |||
| 68 | (defun find-gc-unsafe () | ||
| 69 | "Return a list of unsafe functions--that is, which can call GC. | ||
| 70 | Also store it in `find-gc-unsafe-list'." | ||
| 71 | (trace-call-tree nil) | ||
| 72 | (trace-use-tree) | ||
| 73 | (find-unsafe-funcs 'Fgarbage_collect) | ||
| 74 | (setq find-gc-unsafe-list | ||
| 75 | (sort find-gc-unsafe-list | ||
| 76 | (function (lambda (x y) | ||
| 77 | (string-lessp (car x) (car y))))))) | ||
| 78 | |||
| 79 | ;;; This does a depth-first search to find all functions that can | ||
| 80 | ;;; ultimately call the function "target". The result is an a-list | ||
| 81 | ;;; in find-gc-unsafe-list; the cars are the unsafe functions, and the cdrs | ||
| 82 | ;;; are (one of) the unsafe functions that these functions directly | ||
| 83 | ;;; call. | ||
| 84 | |||
| 85 | (defun find-unsafe-funcs (target) | ||
| 86 | (setq find-gc-unsafe-list (list (list target))) | ||
| 87 | (trace-unsafe target)) | ||
| 88 | |||
| 89 | (defun trace-unsafe (func) | ||
| 90 | (let ((used (assq func find-gc-subrs-callers))) | ||
| 91 | (or used | ||
| 92 | (error "No find-gc-subrs-callers for %s" (car find-gc-unsafe-list))) | ||
| 93 | (while (setq used (cdr used)) | ||
| 94 | (or (assq (car used) find-gc-unsafe-list) | ||
| 95 | (memq (car used) find-gc-noreturn-list) | ||
| 96 | (progn | ||
| 97 | (push (cons (car used) func) find-gc-unsafe-list) | ||
| 98 | (trace-unsafe (car used))))))) | ||
| 99 | |||
| 100 | |||
| 101 | |||
| 102 | |||
| 103 | (defun trace-call-tree (&optional ignored) | ||
| 104 | (message "Setting up directories...") | ||
| 105 | (setq find-gc-subrs-called nil) | ||
| 106 | (let ((case-fold-search nil) | ||
| 107 | (default-directory find-gc-source-directory) | ||
| 108 | (files find-gc-source-files) | ||
| 109 | name entry rtlfile) | ||
| 110 | (dolist (file files) | ||
| 111 | (message "Compiling %s..." file) | ||
| 112 | (call-process "gcc" nil nil nil "-I" "." "-I" "../lib" | ||
| 113 | "-fdump-rtl-expand" "-o" null-device "-c" file) | ||
| 114 | (setq rtlfile | ||
| 115 | (file-expand-wildcards (format "%s.*.expand" file) t)) | ||
| 116 | (if (/= 1 (length rtlfile)) | ||
| 117 | (message "Error compiling `%s'?" file) | ||
| 118 | (with-temp-buffer | ||
| 119 | (insert-file-contents (setq rtlfile (car rtlfile))) | ||
| 120 | (delete-file rtlfile) | ||
| 121 | (while (re-search-forward ";; Function \\|(call_insn " nil t) | ||
| 122 | (if (= (char-after (- (point) 3)) ?o) | ||
| 123 | (progn | ||
| 124 | (looking-at "[a-zA-Z0-9_]+") | ||
| 125 | (setq name (intern (match-string 0))) | ||
| 126 | (message "%s : %s" (car files) name) | ||
| 127 | (setq entry (list name) | ||
| 128 | find-gc-subrs-called | ||
| 129 | (cons entry find-gc-subrs-called))) | ||
| 130 | (if (looking-at ".*\n?.*\"\\([A-Za-z0-9_]+\\)\"") | ||
| 131 | (progn | ||
| 132 | (setq name (intern (match-string 1))) | ||
| 133 | (or (memq name (cdr entry)) | ||
| 134 | (setcdr entry (cons name (cdr entry))))))))))))) | ||
| 135 | |||
| 136 | (defun trace-use-tree () | ||
| 137 | (setq find-gc-subrs-callers (mapcar 'list (mapcar 'car find-gc-subrs-called))) | ||
| 138 | (let ((ptr find-gc-subrs-called) | ||
| 139 | p2 found) | ||
| 140 | (while ptr | ||
| 141 | (setq p2 (car ptr)) | ||
| 142 | (while (setq p2 (cdr p2)) | ||
| 143 | (if (setq found (assq (car p2) find-gc-subrs-callers)) | ||
| 144 | (setcdr found (cons (car (car ptr)) (cdr found))))) | ||
| 145 | (setq ptr (cdr ptr))))) | ||
| 146 | |||
| 147 | (provide 'find-gc) | ||
| 148 | |||
| 149 | ;;; find-gc.el ends here | ||
diff --git a/admin/grammars/Makefile.in b/admin/grammars/Makefile.in new file mode 100644 index 00000000000..b89df7116a6 --- /dev/null +++ b/admin/grammars/Makefile.in | |||
| @@ -0,0 +1,116 @@ | |||
| 1 | ### @configure_input@ | ||
| 2 | |||
| 3 | ## Copyright (C) 2013-2014 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ## This file is part of GNU Emacs. | ||
| 6 | |||
| 7 | ## GNU Emacs is free software: you can redistribute it and/or modify | ||
| 8 | ## it under the terms of the GNU General Public License as published by | ||
| 9 | ## the Free Software Foundation, either version 3 of the License, or | ||
| 10 | ## (at your option) any later version. | ||
| 11 | |||
| 12 | ## GNU Emacs is distributed in the hope that it will be useful, | ||
| 13 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 14 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 15 | ## GNU General Public License for more details. | ||
| 16 | |||
| 17 | ## You should have received a copy of the GNU General Public License | ||
| 18 | ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 19 | |||
| 20 | ### Commentary: | ||
| 21 | |||
| 22 | ## This directory contains grammar files in Bison and Wisent, | ||
| 23 | ## used to generate the parser data in the lisp/cedet directory. | ||
| 24 | |||
| 25 | SHELL = @SHELL@ | ||
| 26 | |||
| 27 | srcdir = @srcdir@ | ||
| 28 | top_srcdir = @top_srcdir@ | ||
| 29 | top_builddir = @top_builddir@ | ||
| 30 | |||
| 31 | # Prevent any settings in the user environment causing problems. | ||
| 32 | unexport EMACSDATA EMACSDOC EMACSPATH | ||
| 33 | |||
| 34 | EMACS = ${top_builddir}/src/emacs | ||
| 35 | emacs = EMACSLOADPATH= "${EMACS}" -batch --no-site-file --no-site-lisp | ||
| 36 | |||
| 37 | make_bovine = ${emacs} -l semantic/bovine/grammar -f bovine-batch-make-parser | ||
| 38 | make_wisent = ${emacs} -l semantic/wisent/grammar -f wisent-batch-make-parser | ||
| 39 | |||
| 40 | cedetdir = ${top_srcdir}/lisp/cedet | ||
| 41 | bovinedir = ${cedetdir}/semantic/bovine | ||
| 42 | wisentdir = ${cedetdir}/semantic/wisent | ||
| 43 | |||
| 44 | BOVINE = \ | ||
| 45 | ${bovinedir}/c-by.el \ | ||
| 46 | ${bovinedir}/make-by.el \ | ||
| 47 | ${bovinedir}/scm-by.el | ||
| 48 | |||
| 49 | ## FIXME Should include this one too: | ||
| 50 | ## ${cedetdir}/semantic/grammar-wy.el | ||
| 51 | ## but semantic/grammar.el (which is what we use to generate grammar-wy.el) | ||
| 52 | ## requires it! | ||
| 53 | WISENT = \ | ||
| 54 | ${wisentdir}/javat-wy.el \ | ||
| 55 | ${wisentdir}/js-wy.el \ | ||
| 56 | ${wisentdir}/python-wy.el \ | ||
| 57 | ${cedetdir}/srecode/srt-wy.el | ||
| 58 | |||
| 59 | ALL = ${BOVINE} ${WISENT} | ||
| 60 | |||
| 61 | .PHONY: all bovine wisent | ||
| 62 | |||
| 63 | all: ${ALL} | ||
| 64 | |||
| 65 | bovine: ${BOVINE} | ||
| 66 | |||
| 67 | wisent: ${WISENT} | ||
| 68 | |||
| 69 | |||
| 70 | ${bovinedir}/c-by.el: ${srcdir}/c.by | ||
| 71 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 72 | ${make_bovine} -o "$@" ${srcdir}/c.by | ||
| 73 | |||
| 74 | ${bovinedir}/make-by.el: ${srcdir}/make.by | ||
| 75 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 76 | ${make_bovine} -o "$@" ${srcdir}/make.by | ||
| 77 | |||
| 78 | ${bovinedir}/scm-by.el: ${srcdir}/scheme.by | ||
| 79 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 80 | ${make_bovine} -o "$@" ${srcdir}/scheme.by | ||
| 81 | |||
| 82 | |||
| 83 | ${cedetdir}/semantic/grammar-wy.el: ${srcdir}/grammar.wy | ||
| 84 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 85 | ${make_wisent} -o "$@" ${srcdir}/grammar.wy | ||
| 86 | |||
| 87 | ${wisentdir}/javat-wy.el: ${srcdir}/java-tags.wy | ||
| 88 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 89 | ${make_wisent} -o "$@" ${srcdir}/java-tags.wy | ||
| 90 | |||
| 91 | ${wisentdir}/js-wy.el: ${srcdir}/js.wy | ||
| 92 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 93 | ${make_wisent} -o "$@" ${srcdir}/js.wy | ||
| 94 | |||
| 95 | ${wisentdir}/python-wy.el: ${srcdir}/python.wy | ||
| 96 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 97 | ${make_wisent} -o "$@" ${srcdir}/python.wy | ||
| 98 | |||
| 99 | ${cedetdir}/srecode/srt-wy.el: ${srcdir}/srecode-template.wy | ||
| 100 | [ ! -f "$@" ] || chmod +w "$@" | ||
| 101 | ${make_wisent} -o "$@" ${srcdir}/srecode-template.wy | ||
| 102 | |||
| 103 | |||
| 104 | .PHONY: distclean bootstrap-clean maintainer-clean extraclean | ||
| 105 | |||
| 106 | distclean: | ||
| 107 | rm -f Makefile | ||
| 108 | |||
| 109 | bootstrap-clean maintainer-clean: distclean | ||
| 110 | |||
| 111 | ## We do not normally delete the generated files, even in bootstrap. | ||
| 112 | ## Creating them does not take long, so we could easily change this. | ||
| 113 | extraclean: | ||
| 114 | rm -f ${ALL} | ||
| 115 | |||
| 116 | # Makefile.in ends here | ||
diff --git a/admin/grammars/README b/admin/grammars/README deleted file mode 100644 index e38260952a5..00000000000 --- a/admin/grammars/README +++ /dev/null | |||
| @@ -1,11 +0,0 @@ | |||
| 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 71607f452a0..9ff27f3a2be 100644 --- a/admin/grammars/java-tags.wy +++ b/admin/grammars/java-tags.wy | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; java-tags.wy -- Semantic LALR grammar for Java | 1 | ;;; java-tags.wy -- Semantic LALR grammar for Java |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2002-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2002-2014 Free Software Foundation, Inc. |
| 4 | ;; | 4 | ;; |
| 5 | ;; Author: David Ponce <david@dponce.com> | 5 | ;; Author: David Ponce <david@dponce.com> |
| 6 | ;; Maintainer: David Ponce <david@dponce.com> | 6 | ;; Maintainer: David Ponce <david@dponce.com> |
| @@ -25,6 +25,11 @@ | |||
| 25 | %package wisent-java-tags-wy | 25 | %package wisent-java-tags-wy |
| 26 | %provide semantic/wisent/javat-wy | 26 | %provide semantic/wisent/javat-wy |
| 27 | 27 | ||
| 28 | %{ | ||
| 29 | (declare-function semantic-parse-region "semantic" | ||
| 30 | (start end &optional nonterminal depth returnonerror)) | ||
| 31 | } | ||
| 32 | |||
| 28 | %languagemode java-mode | 33 | %languagemode java-mode |
| 29 | 34 | ||
| 30 | ;; The default start symbol | 35 | ;; The default start symbol |
diff --git a/admin/grammars/js.wy b/admin/grammars/js.wy index 3b602296552..91dbff2330d 100644 --- a/admin/grammars/js.wy +++ b/admin/grammars/js.wy | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; javascript-jv.wy -- LALR grammar for Javascript | 1 | ;;; javascript-jv.wy -- LALR grammar for Javascript |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2005-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005-2014 Free Software Foundation, Inc. |
| 4 | ;; Copyright (C) 1998-2011 Ecma International. | 4 | ;; Copyright (C) 1998-2011 Ecma International. |
| 5 | 5 | ||
| 6 | ;; Author: Joakim Verona | 6 | ;; Author: Joakim Verona |
| @@ -59,7 +59,13 @@ | |||
| 59 | 59 | ||
| 60 | %package wisent-javascript-jv-wy | 60 | %package wisent-javascript-jv-wy |
| 61 | %provide semantic/wisent/js-wy | 61 | %provide semantic/wisent/js-wy |
| 62 | ;; JAVE I prefere ecmascript-mode | 62 | |
| 63 | %{ | ||
| 64 | (declare-function semantic-parse-region "semantic" | ||
| 65 | (start end &optional nonterminal depth returnonerror)) | ||
| 66 | } | ||
| 67 | |||
| 68 | ;; JAVE I preferred ecmascript-mode. | ||
| 63 | %languagemode ecmascript-mode javascript-mode | 69 | %languagemode ecmascript-mode javascript-mode |
| 64 | 70 | ||
| 65 | ;; The default goal | 71 | ;; The default goal |
| @@ -270,8 +276,8 @@ Statement : Block | |||
| 270 | | BreakStatement | 276 | | BreakStatement |
| 271 | | ReturnStatement | 277 | | ReturnStatement |
| 272 | | WithStatement | 278 | | WithStatement |
| 273 | ; | 279 | ; |
| 274 | 280 | ||
| 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 fd3f61905d3..d4dd2ad907a 100644 --- a/admin/grammars/srecode-template.wy +++ b/admin/grammars/srecode-template.wy | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ;;; srecode-template.wy --- Semantic Recoder Template parser | 1 | ;;; srecode-template.wy --- Semantic Recoder Template parser |
| 2 | 2 | ||
| 3 | ;; Copyright (C) 2005-2013 Free Software Foundation, Inc. | 3 | ;; Copyright (C) 2005-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | ;; Author: Eric Ludlam <zappo@gnu.org> | 5 | ;; Author: Eric Ludlam <zappo@gnu.org> |
| 6 | ;; Keywords: syntax | 6 | ;; Keywords: syntax |
diff --git a/admin/mac/uvs.el b/admin/mac/uvs.el new file mode 100644 index 00000000000..a9a0c9120d3 --- /dev/null +++ b/admin/mac/uvs.el | |||
| @@ -0,0 +1,213 @@ | |||
| 1 | ;;; uvs.el --- utility for UVS (format 14) cmap subtables in OpenType fonts. | ||
| 2 | |||
| 3 | ;; Copyright (C) 2014 Free Software Foundation, Inc. | ||
| 4 | |||
| 5 | ;; Author: YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp> | ||
| 6 | |||
| 7 | ;; This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | ;; GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | ;; it under the terms of the GNU General Public License as published by | ||
| 11 | ;; the Free Software Foundation, either version 3 of the License, or | ||
| 12 | ;; (at your option) any later version. | ||
| 13 | |||
| 14 | ;; GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | ;; but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | ;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | ;; GNU General Public License for more details. | ||
| 18 | |||
| 19 | ;; You should have received a copy of the GNU General Public License | ||
| 20 | ;; along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 21 | |||
| 22 | ;;; Commentary: | ||
| 23 | |||
| 24 | ;; To extract a C array definition of a UVS table for the Adobe-Japan1 | ||
| 25 | ;; character collection from an IVD Sequences file, execute | ||
| 26 | ;; $ emacs -batch -l uvs.el \ | ||
| 27 | ;; --eval '(uvs-print-table-ivd "IVD_Sequences.txt" "Adobe-Japan1")' \ | ||
| 28 | ;; > uvs.h | ||
| 29 | |||
| 30 | ;;; Code: | ||
| 31 | |||
| 32 | (defun uvs-fields-total-size (fields) | ||
| 33 | (apply '+ (mapcar (lambda (field) (get field 'uvs-field-size)) fields))) | ||
| 34 | |||
| 35 | ;;; Fields in Format 14 header. | ||
| 36 | (defconst uvs-format-14-header-fields | ||
| 37 | '(format length num-var-selector-records)) | ||
| 38 | (put 'format 'uvs-field-size 2) | ||
| 39 | (put 'length 'uvs-field-size 4) | ||
| 40 | (put 'num-var-selector-records 'uvs-field-size 4) | ||
| 41 | (defconst uvs-format-14-header-size | ||
| 42 | (uvs-fields-total-size uvs-format-14-header-fields)) | ||
| 43 | |||
| 44 | ;;; Fields in Variation Selector Record. | ||
| 45 | (defconst uvs-variation-selector-record-fields | ||
| 46 | '(var-selector default-uvs-offset non-default-uvs-offset)) | ||
| 47 | (put 'var-selector 'uvs-field-size 3) | ||
| 48 | (put 'default-uvs-offset 'uvs-field-size 4) | ||
| 49 | (put 'non-default-uvs-offset 'uvs-field-size 4) | ||
| 50 | (defconst uvs-variation-selector-record-size | ||
| 51 | (uvs-fields-total-size uvs-variation-selector-record-fields)) | ||
| 52 | |||
| 53 | ;;; Fields in Non-Default UVS Table. | ||
| 54 | (defconst uvs-non-default-uvs-table-header-fields '(num-uvs-mappings)) | ||
| 55 | (put 'num-uvs-mappings 'uvs-field-size 4) | ||
| 56 | (defconst uvs-non-default-uvs-table-header-size | ||
| 57 | (uvs-fields-total-size uvs-non-default-uvs-table-header-fields)) | ||
| 58 | |||
| 59 | ;;; Fields in UVS Mapping. | ||
| 60 | (defconst uvs-uvs-mapping-fields '(unicode-value glyph-id)) | ||
| 61 | (put 'unicode-value 'uvs-field-size 3) | ||
| 62 | (put 'glyph-id 'uvs-field-size 2) | ||
| 63 | (defconst uvs-uvs-mapping-size | ||
| 64 | (uvs-fields-total-size uvs-uvs-mapping-fields)) | ||
| 65 | |||
| 66 | (defun uvs-alist-from-ivd (collection-id sequence-id-to-glyph-function) | ||
| 67 | "Create UVS alist from IVD Sequences and COLLECTION-ID. | ||
| 68 | The IVD (Ideographic Variation Database) Sequences are obtained | ||
| 69 | from the contents of the current buffer, and should be in the | ||
| 70 | form of IVD_Sequences.txt specified in Unicode Technical Standard | ||
| 71 | #37. COLLECTION-ID is a string specifying the identifier of the | ||
| 72 | collection to extract (e.g., \"Adobe-Japan1\"). | ||
| 73 | SEQUENCE-ID-TO-GLYPH-FUNC is a function to convert an identifier | ||
| 74 | string of the sequence to a glyph number. UVS alist is of the | ||
| 75 | following form: | ||
| 76 | ((SELECTOR1 . ((BASE11 . GLYPH11) (BASE12 . GLYPH12) ...)) | ||
| 77 | (SELECTOR2 . ((BASE21 . GLYPH21) (BASE22 . GLYPH22) ...)) ...), | ||
| 78 | where selectors and bases are sorted in ascending order." | ||
| 79 | (let (uvs-alist) | ||
| 80 | (goto-char (point-min)) | ||
| 81 | (while (re-search-forward | ||
| 82 | (concat "^[[:blank:]]*" | ||
| 83 | "\\([[:xdigit:]]+\\) \\([[:xdigit:]]+\\)" | ||
| 84 | "[[:blank:]]*;[[:blank:]]*" | ||
| 85 | "\\(?:" (regexp-quote collection-id) "\\)" | ||
| 86 | "[[:blank:]]*;[[:blank:]]*" | ||
| 87 | "\\([^\n[:blank:]]+\\)" | ||
| 88 | "[[:blank:]]*$") nil t) | ||
| 89 | (let* ((base (string-to-number (match-string 1) 16)) | ||
| 90 | (selector (string-to-number (match-string 2) 16)) | ||
| 91 | (sequence-id (match-string 3)) | ||
| 92 | (glyph (funcall sequence-id-to-glyph-function sequence-id))) | ||
| 93 | (let ((selector-bgs (assq selector uvs-alist)) | ||
| 94 | (base-glyph (cons base glyph))) | ||
| 95 | (if selector-bgs | ||
| 96 | (setcdr selector-bgs (cons base-glyph (cdr selector-bgs))) | ||
| 97 | (push (cons selector (list base-glyph)) uvs-alist))))) | ||
| 98 | (dolist (selector-bgs uvs-alist) | ||
| 99 | (setcdr selector-bgs | ||
| 100 | (sort (cdr selector-bgs) | ||
| 101 | (lambda (bg1 bg2) (< (car bg1) (car bg2)))))) | ||
| 102 | (sort uvs-alist (lambda (sb1 sb2) (< (car sb1) (car sb2)))))) | ||
| 103 | |||
| 104 | (defun uvs-int-to-bytes (value size) | ||
| 105 | "Convert integer VALUE to a list of SIZE bytes. | ||
| 106 | The most significant byte comes first." | ||
| 107 | (let (result) | ||
| 108 | (dotimes (i size) | ||
| 109 | (push (logand value #xff) result) | ||
| 110 | (setq value (lsh value -8))) | ||
| 111 | result)) | ||
| 112 | |||
| 113 | (defun uvs-insert-fields-as-bytes (fields &rest values) | ||
| 114 | "Insert VALUES for FIELDS as a sequence of bytes to the current buffer. | ||
| 115 | VALUES and FIELDS are lists of integers and field symbols, | ||
| 116 | respectively. Byte length of each value is determined by the | ||
| 117 | 'uvs-field-size' property of the corresponding field." | ||
| 118 | (while fields | ||
| 119 | (let ((field (car fields)) | ||
| 120 | (value (car values))) | ||
| 121 | (insert (apply 'unibyte-string | ||
| 122 | (uvs-int-to-bytes value (get field 'uvs-field-size)))) | ||
| 123 | (setq fields (cdr fields) values (cdr values))))) | ||
| 124 | |||
| 125 | (defun uvs-insert-alist-as-bytes (uvs-alist) | ||
| 126 | "Insert UVS-ALIST as a sequence of bytes to the current buffer." | ||
| 127 | (let* ((nrecords (length uvs-alist)) ; # of selectors | ||
| 128 | (total-nmappings | ||
| 129 | (apply '+ (mapcar | ||
| 130 | (lambda (selector-bgs) (length (cdr selector-bgs))) | ||
| 131 | uvs-alist))) | ||
| 132 | (non-default-offset | ||
| 133 | (+ uvs-format-14-header-size | ||
| 134 | (* uvs-variation-selector-record-size nrecords)))) | ||
| 135 | (uvs-insert-fields-as-bytes uvs-format-14-header-fields | ||
| 136 | 14 | ||
| 137 | (+ uvs-format-14-header-size | ||
| 138 | (* uvs-variation-selector-record-size | ||
| 139 | nrecords) | ||
| 140 | (* uvs-non-default-uvs-table-header-size | ||
| 141 | nrecords) | ||
| 142 | (* uvs-uvs-mapping-size total-nmappings)) | ||
| 143 | nrecords) | ||
| 144 | (dolist (selector-bgs uvs-alist) | ||
| 145 | (uvs-insert-fields-as-bytes uvs-variation-selector-record-fields | ||
| 146 | (car selector-bgs) | ||
| 147 | 0 ; No Default UVS Tables. | ||
| 148 | non-default-offset) | ||
| 149 | (setq non-default-offset | ||
| 150 | (+ non-default-offset | ||
| 151 | uvs-non-default-uvs-table-header-size | ||
| 152 | (* (length (cdr selector-bgs)) uvs-uvs-mapping-size)))) | ||
| 153 | (dolist (selector-bgs uvs-alist) | ||
| 154 | (uvs-insert-fields-as-bytes uvs-non-default-uvs-table-header-fields | ||
| 155 | (length (cdr selector-bgs))) | ||
| 156 | (dolist (base-glyph (cdr selector-bgs)) | ||
| 157 | (uvs-insert-fields-as-bytes uvs-uvs-mapping-fields | ||
| 158 | (car base-glyph) | ||
| 159 | (cdr base-glyph)))))) | ||
| 160 | |||
| 161 | (defun uvs-dump (&optional bytes-per-line separator separator-eol line-prefix) | ||
| 162 | "Print the current buffer as in representation of C array contents." | ||
| 163 | (or bytes-per-line (setq bytes-per-line 8)) | ||
| 164 | (or separator (setq separator ", ")) | ||
| 165 | (or separator-eol (setq separator-eol ",")) | ||
| 166 | (or line-prefix (setq line-prefix " ")) | ||
| 167 | (goto-char (point-min)) | ||
| 168 | (while (> (- (point-max) (point)) bytes-per-line) | ||
| 169 | (princ line-prefix) | ||
| 170 | (princ (mapconcat (lambda (byte) (format "0x%02x" byte)) | ||
| 171 | (string-to-unibyte | ||
| 172 | (buffer-substring (point) (+ (point) bytes-per-line))) | ||
| 173 | separator)) | ||
| 174 | (princ separator-eol) | ||
| 175 | (terpri) | ||
| 176 | (forward-char bytes-per-line)) | ||
| 177 | (princ line-prefix) | ||
| 178 | (princ (mapconcat (lambda (byte) (format "0x%02x" byte)) | ||
| 179 | (string-to-unibyte | ||
| 180 | (buffer-substring (point) (point-max))) | ||
| 181 | separator)) | ||
| 182 | (terpri)) | ||
| 183 | |||
| 184 | (defun uvs-print-table-ivd (filename collection-id | ||
| 185 | &optional sequence-id-to-glyph-func) | ||
| 186 | "Print a C array definition of a UVS table for IVD Sequences. | ||
| 187 | FILENAME specifies the IVD Sequences file. COLLECTION-ID is a | ||
| 188 | string specifying the identifier of the collection to | ||
| 189 | extract (e.g., \"Adobe-Japan1\"). SEQUENCE-ID-TO-GLYPH-FUNC is a | ||
| 190 | function to convert an identifier string of the sequence to a | ||
| 191 | glyph number, and nil means to convert \"CID\\+[0-9]+\" to the | ||
| 192 | corresponding number." | ||
| 193 | (or sequence-id-to-glyph-func | ||
| 194 | (setq sequence-id-to-glyph-func | ||
| 195 | (lambda (sequence-id) | ||
| 196 | (string-match "\\`CID\\+\\([[:digit:]]+\\)\\'" sequence-id) | ||
| 197 | (string-to-number (match-string 1 sequence-id))))) | ||
| 198 | (let ((uvs-alist | ||
| 199 | (with-temp-buffer | ||
| 200 | (insert-file-contents filename) | ||
| 201 | (setq uvs-alist (uvs-alist-from-ivd collection-id | ||
| 202 | sequence-id-to-glyph-func))))) | ||
| 203 | (princ | ||
| 204 | (format "static const unsigned char mac_uvs_table_%s_bytes[] =\n {\n" | ||
| 205 | (replace-regexp-in-string "[^_[:alnum:]]" "_" | ||
| 206 | (downcase collection-id)))) | ||
| 207 | (with-temp-buffer | ||
| 208 | (set-buffer-multibyte nil) | ||
| 209 | (uvs-insert-alist-as-bytes uvs-alist) | ||
| 210 | (uvs-dump)) | ||
| 211 | (princ " };\n"))) | ||
| 212 | |||
| 213 | ;;; uvs.el ends here | ||
diff --git a/admin/make-emacs b/admin/make-emacs index 58295c9607a..17d1cdc239a 100755 --- a/admin/make-emacs +++ b/admin/make-emacs | |||
| @@ -2,7 +2,7 @@ | |||
| 2 | # Build Emacs with various options for profiling, debugging, | 2 | # Build Emacs with various options for profiling, debugging, |
| 3 | # with and without warnings enabled etc. | 3 | # with and without warnings enabled etc. |
| 4 | 4 | ||
| 5 | # Copyright (C) 2001-2013 Free Software Foundation, Inc. | 5 | # Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 6 | 6 | ||
| 7 | # This file is part of GNU Emacs. | 7 | # This file is part of GNU Emacs. |
| 8 | 8 | ||
| @@ -21,6 +21,8 @@ | |||
| 21 | 21 | ||
| 22 | 22 | ||
| 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 fc7f81f0c28..a2e8a9e7da3 100644 --- a/admin/make-tarball.txt +++ b/admin/make-tarball.txt | |||
| @@ -5,6 +5,11 @@ Instructions to create pretest or release tarballs. -*- coding: utf-8 -*- | |||
| 5 | 5 | ||
| 6 | Steps to take before starting on the first pretest in any release sequence: | 6 | Steps to take before starting on the first pretest in any release sequence: |
| 7 | 7 | ||
| 8 | 0. The release branch (e.g. emacs-24) should already have been made | ||
| 9 | and you should use it for all that follows. Diffs from this | ||
| 10 | branch should be going to the emacs-diffs mailing list (see | ||
| 11 | admin/notes/bzr section on bzr-email plugin). | ||
| 12 | |||
| 8 | 1. Decide on versions of automake and autoconf, and ensure you will | 13 | 1. Decide on versions of automake and autoconf, and ensure you will |
| 9 | have them available for the duration of the release process. | 14 | have them available for the duration of the release process. |
| 10 | 15 | ||
| @@ -14,28 +19,22 @@ Steps to take before starting on the first pretest in any release sequence: | |||
| 14 | when preparing the first pretest for a major Emacs release.) | 19 | when preparing the first pretest for a major Emacs release.) |
| 15 | Commit cus-edit.el if changed. | 20 | Commit cus-edit.el if changed. |
| 16 | 21 | ||
| 22 | 3. Remove any old pretests from ftp://alpha.gnu.org/gnu/emacs/pretest. | ||
| 23 | You can use `gnupload --delete' (see below for more gnupload details). | ||
| 17 | 24 | ||
| 18 | General steps (for each step, check for possible errors): | 25 | General steps (for each step, check for possible errors): |
| 19 | 26 | ||
| 20 | 1. `bzr update' (for a bound branch), or `bzr pull'. | 27 | 1. `bzr update' (for a bound branch), or `bzr pull'. |
| 21 | bzr status # check for locally modified files | 28 | bzr status # check for locally modified files |
| 22 | 29 | ||
| 23 | 2. Bootstrap to make 100% sure all elc files are up-to-date, and to | 30 | 2. Regenerate the etc/AUTHORS file: |
| 24 | make sure that the later tagged version will bootstrap, should it be | ||
| 25 | necessary to check it out. | ||
| 26 | |||
| 27 | 3. Regenerate the etc/AUTHORS file: | ||
| 28 | M-: (require 'authors) RET | 31 | M-: (require 'authors) RET |
| 29 | M-x authors RET | 32 | M-x authors RET |
| 30 | 33 | ||
| 31 | There is almost guaranteed to be an "*Authors Errors*" buffer with | 34 | If there is an "*Authors Errors*" buffer, address the issues. |
| 32 | problems caused by certain bad ChangeLog entries. You can ignore | 35 | If there was a ChangeLog typo, fix it. If a file was deleted or |
| 33 | the very old ones (eg lisp/erc has a lot). If there are errors | 36 | renamed, consider adding an appropriate entry to authors-ignored-files, |
| 34 | related to new entries (especially entries that are new since the | 37 | authors-valid-file-names, or authors-renamed-files-alist. |
| 35 | last pretest), see if you can fix them. If there was a ChangeLog | ||
| 36 | typo, fix it. If a file was deleted or renamed, consider adding | ||
| 37 | an appropriate entry to authors-ignored-files, authors-valid-file-names, | ||
| 38 | or authors-renamed-files-alist. | ||
| 39 | 38 | ||
| 40 | If necessary, repeat M-x authors after making those changes. | 39 | If necessary, repeat M-x authors after making those changes. |
| 41 | Save the "*Authors*" buffer as etc/AUTHORS. | 40 | Save the "*Authors*" buffer as etc/AUTHORS. |
| @@ -43,7 +42,7 @@ General steps (for each step, check for possible errors): | |||
| 43 | authors-ambiguous-files or authors-aliases, and repeat. | 42 | authors-ambiguous-files or authors-aliases, and repeat. |
| 44 | Commit any fixes to ChangeLogs or authors.el. | 43 | Commit any fixes to ChangeLogs or authors.el. |
| 45 | 44 | ||
| 46 | 4. Set the version number (M-x load-file RET admin/admin.el RET, then | 45 | 3. Set the version number (M-x load-file RET admin/admin.el RET, then |
| 47 | M-x set-version RET). For a release, add released ChangeLog | 46 | M-x set-version RET). For a release, add released ChangeLog |
| 48 | entries (M-x add-release-logs RET). | 47 | entries (M-x add-release-logs RET). |
| 49 | 48 | ||
| @@ -58,31 +57,37 @@ General steps (for each step, check for possible errors): | |||
| 58 | emacs-XX.Y-rc1.tar. If all goes well in the following week, you | 57 | emacs-XX.Y-rc1.tar. If all goes well in the following week, you |
| 59 | can simply rename the file and use it for the actual release. | 58 | can simply rename the file and use it for the actual release. |
| 60 | 59 | ||
| 61 | 5. autoreconf -i -I m4 --force | 60 | 4. autoreconf -i -I m4 --force |
| 62 | make bootstrap | 61 | make bootstrap |
| 63 | 62 | ||
| 64 | make -C etc/refcards | 63 | make -C etc/refcards |
| 65 | make -C etc/refcards clean | 64 | make -C etc/refcards clean |
| 66 | 65 | ||
| 67 | 6. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. | 66 | 5. Copy lisp/loaddefs.el to lisp/ldefs-boot.el. |
| 68 | 67 | ||
| 69 | Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed | 68 | Commit etc/AUTHORS, lisp/ldefs-boot.el, and the files changed |
| 70 | by M-x set-version. | 69 | by M-x set-version. Use a commit log message that bzrmerge.el |
| 70 | will ignore (eg "Bump version..."). | ||
| 71 | For a release, also commit the ChangeLog files in all directories. | 71 | For a release, also commit the ChangeLog files in all directories. |
| 72 | 72 | ||
| 73 | 7. ./make-dist --snapshot --no-compress | 73 | If someone else made a commit between step 1 and now, |
| 74 | you need to repeat from step 4 onwards. (You can commit the files | ||
| 75 | from step 2 and 3 earlier to reduce the chance of this.) | ||
| 76 | |||
| 77 | 6. ./make-dist --snapshot --no-compress | ||
| 74 | 78 | ||
| 75 | Check the contents of the new tar with | 79 | Check the contents of the new tar with admin/diff-tar-files |
| 76 | admin/diff-tar-files against an older tar file. Some old pretest | 80 | against the previous release (if this is the first pretest) or the |
| 77 | tarballs may be found at <ftp://alpha.gnu.org/gnu/emacs/pretest>; | 81 | previous pretest. If you did not make the previous pretest |
| 78 | old release tarballs are at <ftp://ftp.gnu.org/pub/gnu/emacs/>. | 82 | yourself, find it at <ftp://alpha.gnu.org/gnu/emacs/pretest>. |
| 83 | Releases are of course at <ftp://ftp.gnu.org/pub/gnu/emacs/>. | ||
| 79 | 84 | ||
| 80 | If this is the first pretest of a major release, just comparing | 85 | If this is the first pretest of a major release, just comparing |
| 81 | with the previous release may overlook many new files. You can try | 86 | with the previous release may overlook many new files. You can try |
| 82 | something like `find . | sort' in a clean bzr tree, and compare the | 87 | something like `find . | sort' in a clean bzr tree, and compare the |
| 83 | results against the new tar contents. | 88 | results against the new tar contents. |
| 84 | 89 | ||
| 85 | 8. tar -xf emacs-NEW.tar; cd emacs-NEW | 90 | 7. tar -xf emacs-NEW.tar; cd emacs-NEW |
| 86 | ./configure --prefix=/tmp/emacs && make && make install | 91 | ./configure --prefix=/tmp/emacs && make && make install |
| 87 | Use `script' or M-x compile to save the compilation log in | 92 | Use `script' or M-x compile to save the compilation log in |
| 88 | compile-NEW.log and compare it against an old one. The easiest way | 93 | compile-NEW.log and compare it against an old one. The easiest way |
| @@ -91,25 +96,21 @@ General steps (for each step, check for possible errors): | |||
| 91 | M-x ediff. Especially check that Info files aren't built, and that | 96 | M-x ediff. Especially check that Info files aren't built, and that |
| 92 | no autotools (autoconf etc) run. | 97 | no autotools (autoconf etc) run. |
| 93 | 98 | ||
| 94 | 9. cd EMACS_ROOT_DIR && bzr tag TAG | 99 | 8. cd EMACS_ROOT_DIR && bzr tag TAG |
| 95 | TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. | 100 | TAG is emacs-XX.Y.ZZ for a pretest, emacs-XX.Y for a release. |
| 96 | 101 | ||
| 97 | Shortly before the release, cut the version branch also, and open | 102 | 9. Decide what compression schemes to offer. |
| 98 | a Savannah support request asking for commits to the new branch to | ||
| 99 | be sent to the emacs-diffs mailing list (by default, the list | ||
| 100 | normally only gets commits to the trunk). | ||
| 101 | |||
| 102 | 10. Decide what compression schemes to offer. | ||
| 103 | For a release, at least gz and xz: | 103 | For a release, at least gz and xz: |
| 104 | gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz | 104 | gzip --best -c emacs-NEW.tar > emacs-NEW.tar.gz |
| 105 | xz -c emacs-NEW.tar > emacs-NEW.tar.xz | 105 | xz -c emacs-NEW.tar > emacs-NEW.tar.xz |
| 106 | For pretests, just xz is probably fine (saves bandwidth). | ||
| 106 | 107 | ||
| 107 | Now you should upload the files to the GNU ftp server. In order to | 108 | Now you should upload the files to the GNU ftp server. In order to |
| 108 | do that, you must be registered as an Emacs maintainer and have your | 109 | do that, you must be registered as an Emacs maintainer and have your |
| 109 | GPG key acknowledged by the ftp people. For instructions, see | 110 | GPG key acknowledged by the ftp people. For instructions, see |
| 110 | http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html | 111 | http://www.gnu.org/prep/maintain/html_node/Automated-Upload-Registration.html |
| 111 | The simplest method is to use the gnulib <http://www.gnu.org/s/gnulib/> | 112 | The simplest method to upload is to use the gnulib |
| 112 | script "build-aux/gnupload" to upload each FILE, like this: | 113 | <http://www.gnu.org/s/gnulib/> script "build-aux/gnupload": |
| 113 | 114 | ||
| 114 | For a pretest: | 115 | For a pretest: |
| 115 | gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \ | 116 | gnupload [--user your@gpg.key.email] --to alpha.gnu.org:emacs/pretest \ |
| @@ -140,19 +141,21 @@ General steps (for each step, check for possible errors): | |||
| 140 | For a pretest, place the files in /incoming/alpha instead, so that | 141 | For a pretest, place the files in /incoming/alpha instead, so that |
| 141 | they appear on ftp://alpha.gnu.org/. | 142 | they appear on ftp://alpha.gnu.org/. |
| 142 | 143 | ||
| 143 | 11. After five minutes, verify that the files are visible at | 144 | 10. After five minutes, verify that the files are visible at |
| 144 | ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or | 145 | ftp://alpha.gnu.org/gnu/emacs/pretest/ for a pretest, or |
| 145 | ftp://ftp.gnu.org/gnu/emacs/ for a release. | 146 | ftp://ftp.gnu.org/gnu/emacs/ for a release. |
| 146 | 147 | ||
| 147 | Download them and check the signatures. Check they build. | 148 | Download them and check the signatures. Check they build. |
| 148 | 149 | ||
| 149 | 12. For a pretest, announce it on emacs-devel and info-gnu-emacs@gnu.org. | 150 | 11. Send an announcement to: emacs-devel, and bcc: info-gnu-emacs@gnu.org. |
| 150 | Probably should also include the platform-testers list: | 151 | For a pretest, also bcc: platform-testers@gnu.org. |
| 151 | https://lists.gnu.org/mailman/listinfo/platform-testers | 152 | (The reason for using bcc: is to make it less likely that people |
| 152 | For a release, also announce it on info-gnu@gnu.org. (Probably | 153 | will followup on the wrong list.) |
| 153 | bcc the info- addresses to make it less likely that people will | 154 | See the info-gnu-emacs mailing list archives for the form |
| 154 | followup on those lists.) | 155 | of past announcements. The first pretest announcement, and the |
| 155 | 156 | release announcement, should have more detail. | |
| 156 | 13. For a release, update the Emacs homepage in the web repository. | 157 | |
| 157 | Also add the new NEWS file as NEWS.xx.y. | 158 | 12. For a release, update the Emacs homepage in the web repository. |
| 158 | Maybe regenerate the html manuals, update the FAQ, etc, etc. | 159 | Also update history.html, and add the new NEWS file as NEWS.xx.y. |
| 160 | Regenerate the html manuals (use make-manuals from admin.el). | ||
| 161 | If there are new manuals, add appropriate index pages. | ||
diff --git a/admin/merge-gnulib b/admin/merge-gnulib index 97126704d10..5df2020f3aa 100755 --- a/admin/merge-gnulib +++ b/admin/merge-gnulib | |||
| @@ -4,7 +4,7 @@ | |||
| 4 | # | 4 | # |
| 5 | # admin/merge-gnulib | 5 | # admin/merge-gnulib |
| 6 | 6 | ||
| 7 | # Copyright 2012-2013 Free Software Foundation, Inc. | 7 | # Copyright 2012-2014 Free Software Foundation, Inc. |
| 8 | 8 | ||
| 9 | # This file is part of GNU Emacs. | 9 | # This file is part of GNU Emacs. |
| 10 | 10 | ||
| @@ -26,17 +26,19 @@ | |||
| 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 fcntl-h fdatasync fdopendir filemode fstatat fsync | 33 | fcntl fcntl-h fdatasync fdopendir filemode fstatat fsync |
| 33 | getloadavg getopt-gnu gettime gettimeofday | 34 | getloadavg getopt-gnu gettime gettimeofday |
| 34 | intprops largefile lstat | 35 | intprops largefile lstat |
| 35 | manywarnings memrchr mkostemp mktime | 36 | manywarnings memrchr mkostemp mktime |
| 36 | pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat | 37 | pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat |
| 37 | sig2str socklen stat-time stdalign stdarg stdbool stdio | 38 | sig2str socklen stat-time stdalign stdio |
| 38 | strftime strtoimax strtoumax symlink sys_stat | 39 | strftime strtoimax strtoumax symlink sys_stat |
| 39 | sys_time time timer-time timespec-add timespec-sub unsetenv utimens | 40 | sys_time time timer-time timespec-add timespec-sub |
| 41 | unsetenv update-copyright utimens | ||
| 40 | warnings | 42 | warnings |
| 41 | ' | 43 | ' |
| 42 | 44 | ||
| @@ -46,7 +48,8 @@ GNULIB_TOOL_FLAGS=' | |||
| 46 | --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow | 48 | --avoid=malloc-posix --avoid=msvc-inval --avoid=msvc-nothrow |
| 47 | --avoid=open --avoid=openat-die --avoid=opendir | 49 | --avoid=open --avoid=openat-die --avoid=opendir |
| 48 | --avoid=raise | 50 | --avoid=raise |
| 49 | --avoid=save-cwd --avoid=select --avoid=sigprocmask --avoid=sys_types | 51 | --avoid=save-cwd --avoid=select --avoid=sigprocmask |
| 52 | --avoid=stdarg --avoid=stdbool | ||
| 50 | --avoid=threadlib | 53 | --avoid=threadlib |
| 51 | --conditional-dependencies --import --no-changelog --no-vc-files | 54 | --conditional-dependencies --import --no-changelog --no-vc-files |
| 52 | --makefile-name=gnulib.mk | 55 | --makefile-name=gnulib.mk |
| @@ -90,7 +93,9 @@ test -x "$gnulib_srcdir"/gnulib-tool || { | |||
| 90 | } | 93 | } |
| 91 | 94 | ||
| 92 | "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && | 95 | "$gnulib_srcdir"/gnulib-tool --dir="$src" $GNULIB_TOOL_FLAGS $GNULIB_MODULES && |
| 93 | rm -- "$src"m4/fcntl-o.m4 "$src"m4/gnulib-cache.m4 "$src"m4/warn-on-use.m4 && | 96 | rm -- "$src"lib/gl_openssl.h "$src"m4/fcntl-o.m4 "$src"m4/gl-openssl.m4 \ |
| 97 | "$src"m4/gnulib-cache.m4"$src" m4/warn-on-use.m4 && | ||
| 94 | cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && | 98 | cp -- "$gnulib_srcdir"/build-aux/texinfo.tex "$src"doc/misc && |
| 95 | cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && | 99 | cp -- "$gnulib_srcdir"/build-aux/move-if-change "$src"build-aux && |
| 96 | autoreconf -i -I m4 -- ${src:+"$src"} | 100 | { test -z "$src" || cd "$src"; } && |
| 101 | ./autogen.sh | ||
diff --git a/admin/merge-pkg-config b/admin/merge-pkg-config new file mode 100755 index 00000000000..fd03a441b11 --- /dev/null +++ b/admin/merge-pkg-config | |||
| @@ -0,0 +1,63 @@ | |||
| 1 | #! /bin/sh | ||
| 2 | # Merge pkg-config macros into Emacs sources. | ||
| 3 | # Typical usage: | ||
| 4 | # | ||
| 5 | # admin/merge-pkg-config | ||
| 6 | |||
| 7 | # Copyright 2014 Free Software Foundation, Inc. | ||
| 8 | |||
| 9 | # This file is part of GNU Emacs. | ||
| 10 | |||
| 11 | # GNU Emacs is free software: you can redistribute it and/or modify | ||
| 12 | # it under the terms of the GNU General Public License as published by | ||
| 13 | # the Free Software Foundation, either version 3 of the License, or | ||
| 14 | # (at your option) any later version. | ||
| 15 | |||
| 16 | # GNU Emacs is distributed in the hope that it will be useful, | ||
| 17 | # but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 18 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 19 | # GNU General Public License for more details. | ||
| 20 | |||
| 21 | # You should have received a copy of the GNU General Public License | ||
| 22 | # along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 23 | |||
| 24 | # written by Paul Eggert | ||
| 25 | |||
| 26 | { | ||
| 27 | # Maybe ACLOCAL_PATH is already set-up. | ||
| 28 | oIFS=$IFS | ||
| 29 | IFS=: | ||
| 30 | for dir in $ACLOCAL_PATH ''; do | ||
| 31 | test -n "$dir" && test -r "$dir/pkg.m4" && break | ||
| 32 | done | ||
| 33 | IFS=$oIFS | ||
| 34 | |||
| 35 | test -n "$dir" | ||
| 36 | } || { | ||
| 37 | # Use the pkg.m4 installed where aclocal knows about it. | ||
| 38 | # Maybe we are running our own aclocal, which doesn't know where | ||
| 39 | # the standard pkg.m4 is installed, so try running all the | ||
| 40 | # aclocal programs in our PATH. | ||
| 41 | oIFS=$IFS | ||
| 42 | IFS=: | ||
| 43 | for dir in $PATH ''; do | ||
| 44 | if test -n "$dir" && test -x "$dir/aclocal"; then | ||
| 45 | dir=$("$dir/aclocal" --print-ac-dir) && test -r "$dir/pkg.m4" && break | ||
| 46 | fi | ||
| 47 | done | ||
| 48 | IFS=$oIFS | ||
| 49 | |||
| 50 | test -n "$dir" | ||
| 51 | } || { | ||
| 52 | echo >&2 "$0: cannot find pkg.m4" | ||
| 53 | exit 1 | ||
| 54 | } | ||
| 55 | |||
| 56 | test -d m4 || { | ||
| 57 | echo >&2 "$0: please run this command in the main source directory" | ||
| 58 | exit 1 | ||
| 59 | } | ||
| 60 | |||
| 61 | echo >&2 "$0: copying $dir/pkg.m4 to m4/pkg.m4" | ||
| 62 | |||
| 63 | cp $dir/pkg.m4 m4 | ||
diff --git a/admin/notes/bzr b/admin/notes/bzr index d3886abfd69..13a3beb4ca8 100644 --- a/admin/notes/bzr +++ b/admin/notes/bzr | |||
| @@ -3,9 +3,9 @@ NOTES ON COMMITTING TO EMACS'S BAZAAR REPO -*- outline -*- | |||
| 3 | * Install changes only on one branch, let them get merged elsewhere if needed. | 3 | * Install changes only on one branch, let them get merged elsewhere if needed. |
| 4 | In particular, install bug-fixes only on the release branch (if there | 4 | In particular, install bug-fixes only on the release branch (if there |
| 5 | is one) and let them get synced to the trunk; do not install them by | 5 | is one) and let them get synced to the trunk; do not install them by |
| 6 | hand on the trunk as well. E.g. if there is an active "emacs-23" branch | 6 | hand on the trunk as well. E.g. if there is an active "emacs-24" branch |
| 7 | and you have a bug-fix appropriate for the next Emacs-23.x release, | 7 | and you have a bug-fix appropriate for the next emacs-24.x release, |
| 8 | install it only on the emacs-23 branch, not on the trunk as well. | 8 | install it only on the emacs-24 branch, not on the trunk as well. |
| 9 | 9 | ||
| 10 | Installing things manually into more than one branch makes merges more | 10 | Installing things manually into more than one branch makes merges more |
| 11 | difficult. | 11 | difficult. |
| @@ -18,7 +18,7 @@ In that case, it's helpful if you can apply the change to both trunk | |||
| 18 | and branch yourself (when committing the branch change, indicate | 18 | and branch yourself (when committing the branch change, indicate |
| 19 | in the commit log that it should not be merged to the trunk; see below). | 19 | in the commit log that it should not be merged to the trunk; see below). |
| 20 | 20 | ||
| 21 | * Backporting a bug-fix from the trunk to a branch (e.g. "emacs-23"). | 21 | * Backporting a bug-fix from the trunk to a branch (e.g. "emacs-24"). |
| 22 | Indicate in the commit log that there is no need to merge the commit | 22 | Indicate in the commit log that there is no need to merge the commit |
| 23 | to the trunk. Anything that matches `bzrmerge-skip-regexp' will do; | 23 | to the trunk. Anything that matches `bzrmerge-skip-regexp' will do; |
| 24 | eg start the commit message with "Backport:". This is helpful for the | 24 | eg start the commit message with "Backport:". This is helpful for the |
| @@ -49,7 +49,7 @@ http://lists.gnu.org/archive/html/emacs-devel/2010-04/msg00086.html | |||
| 49 | * Installing changes from gnulib | 49 | * Installing changes from gnulib |
| 50 | Some of the files in Emacs are copied from gnulib. To synchronize | 50 | Some of the files in Emacs are copied from gnulib. To synchronize |
| 51 | these files from the version of gnulib that you have checked out into | 51 | these files from the version of gnulib that you have checked out into |
| 52 | a sibling directory of your branch, type "make sync-from-gnulib"; this | 52 | a sibling directory of your branch, type "admin/merge-gnulib"; this |
| 53 | will check out the latest version of gnulib if there is no sibling | 53 | will check out the latest version of gnulib if there is no sibling |
| 54 | directory already. It is a good idea to run "bzr status" afterwards, | 54 | directory already. It is a good idea to run "bzr status" afterwards, |
| 55 | so that if a gnulib module added a file, you can record the new file | 55 | so that if a gnulib module added a file, you can record the new file |
| @@ -57,17 +57,12 @@ using "bzr add". After synchronizing from gnulib, do a "make" in the | |||
| 57 | usual way. | 57 | usual way. |
| 58 | 58 | ||
| 59 | To change the set of gnulib modules, change the GNULIB_MODULES | 59 | To change the set of gnulib modules, change the GNULIB_MODULES |
| 60 | variable in the top-level Makefile.in, and then run: | 60 | variable in admin/merge-gnulib before running it. |
| 61 | 61 | ||
| 62 | ./config.status | 62 | If you remove a gnulib module, or if a gnulib module |
| 63 | make sync-from-gnulib | ||
| 64 | bzr status | ||
| 65 | |||
| 66 | The last command will mention files that may need to be added using | ||
| 67 | "bzr add". If you remove a gnulib module, or if a gnulib module | ||
| 68 | removes a file, then remove the corresponding files by hand. | 63 | removes a file, then remove the corresponding files by hand. |
| 69 | 64 | ||
| 70 | * How to merge changes from emacs-23 to trunk | 65 | * How to merge changes from emacs-24 to trunk |
| 71 | 66 | ||
| 72 | The following description uses bound branches, presumably it works in | 67 | The following description uses bound branches, presumably it works in |
| 73 | a similar way with unbound ones. | 68 | a similar way with unbound ones. |
| @@ -90,7 +85,7 @@ copy in ~/.bazaar if you upgrade bzr. | |||
| 90 | Maybe the default Emacs behavior without this plugin is better, | 85 | Maybe the default Emacs behavior without this plugin is better, |
| 91 | though, it's not clear yet. | 86 | though, it's not clear yet. |
| 92 | 87 | ||
| 93 | 1) Get clean, up-to-date copies of the emacs-23 and trunk branches. | 88 | 1) Get clean, up-to-date copies of the emacs-24 and trunk branches. |
| 94 | Check for any uncommitted changes with bzr status. | 89 | Check for any uncommitted changes with bzr status. |
| 95 | 90 | ||
| 96 | 2) M-x cd /path/to/trunk | 91 | 2) M-x cd /path/to/trunk |
| @@ -102,7 +97,7 @@ changelog_merge_files = ChangeLog | |||
| 102 | 97 | ||
| 103 | 3) load admin/bzrmerge.el | 98 | 3) load admin/bzrmerge.el |
| 104 | 99 | ||
| 105 | 4) M-x bzrmerge RET /path/to/emacs-23 RET | 100 | 4) M-x bzrmerge RET /path/to/emacs-24 RET |
| 106 | 101 | ||
| 107 | It will prompt about revisions that should be skipped, based on the | 102 | It will prompt about revisions that should be skipped, based on the |
| 108 | regexp in bzrmerge-missing. If there are more revisions that you know | 103 | regexp in bzrmerge-missing. If there are more revisions that you know |
| @@ -119,7 +114,7 @@ Do not commit (or exit Emacs) until you have run bzrmerge to completion. | |||
| 119 | 114 | ||
| 120 | Before committing, check bzr status and bzr diff output. | 115 | Before committing, check bzr status and bzr diff output. |
| 121 | If you have run bzrmerge enough times, the "pending merge tip" in bzr | 116 | If you have run bzrmerge enough times, the "pending merge tip" in bzr |
| 122 | status should be the last revision from the emacs-23 branch, and | 117 | status should be the last revision from the emacs-24 branch, and |
| 123 | bzr status -v should show all the revisions you expect to merge. | 118 | bzr status -v should show all the revisions you expect to merge. |
| 124 | 119 | ||
| 125 | (Note that it will also show "skipped" revisions. This is expected, | 120 | (Note that it will also show "skipped" revisions. This is expected, |
| @@ -141,18 +136,13 @@ authors, don't break the logical ordering in doing this. | |||
| 141 | 136 | ||
| 142 | Notes: | 137 | Notes: |
| 143 | 138 | ||
| 144 | 1) A lot that was in tramp.el in emacs-23 has moved to tramp-sh.el in | 139 | 1) If a file is modified in emacs-24, and deleted in the trunk, you |
| 145 | the trunk. If you end up with a conflict in tramp.el, the changes may | ||
| 146 | need to go to tramp-sh.el instead. Remember to update the file name in | ||
| 147 | the ChangeLog. | ||
| 148 | |||
| 149 | 2) If a file is modified in emacs-23, and deleted in the trunk, you | ||
| 150 | get a "contents conflict". Assuming the changes don't need to be in | 140 | get a "contents conflict". Assuming the changes don't need to be in |
| 151 | the trunk at all, use `bzr resolve path/to/file --take-this' to keep the | 141 | the trunk at all, use `bzr resolve path/to/file --take-this' to keep the |
| 152 | trunk version. Prior to bzr 2.2.3, this may fail. You can just | 142 | trunk version. Prior to bzr 2.2.3, this may fail. You can just |
| 153 | delete the .OTHER etc files by hand and use bzr resolve path/to/file. | 143 | delete the .OTHER etc files by hand and use bzr resolve path/to/file. |
| 154 | 144 | ||
| 155 | 3) Conflicts in autoload md5sums in comments. Strictly speaking, the | 145 | 2) Conflicts in autoload md5sums in comments. Strictly speaking, the |
| 156 | right thing to do is merge everything else, resolve the conflict by | 146 | right thing to do is merge everything else, resolve the conflict by |
| 157 | choosing either the trunk or branch version, then run `make -C lisp | 147 | choosing either the trunk or branch version, then run `make -C lisp |
| 158 | autoloads' to update the md5sums to the correct trunk value before | 148 | autoloads' to update the md5sums to the correct trunk value before |
| @@ -364,3 +354,45 @@ works), or by adding an entry to ~/.bazaar/locations.conf: | |||
| 364 | 354 | ||
| 365 | You have to use locations.conf rather than bazaar.conf because the | 355 | You have to use locations.conf rather than bazaar.conf because the |
| 366 | latter has a lower priority than branch.conf. | 356 | latter has a lower priority than branch.conf. |
| 357 | |||
| 358 | * Using git-bzr | ||
| 359 | |||
| 360 | ** initially | ||
| 361 | |||
| 362 | You can use Git locally to talk to the Bazaar repo as a "remote" repo | ||
| 363 | via git-bzr (aka git-remote-bzr). Initial clone: | ||
| 364 | |||
| 365 | git clone bzr::bzr+ssh://USER@bzr.sv.gnu.org/emacs/trunk e | ||
| 366 | |||
| 367 | This creates the working dir e/ (with subdir .git, etc). Disk usage | ||
| 368 | is 13G (as of early 2014), so you will probably want to repack: | ||
| 369 | |||
| 370 | git repack -a -d -f --window=250 --depth=250 --window-memory=N | ||
| 371 | |||
| 372 | where N is chosen to avoid swapping. E.g., given 512MB RAM, N="200m" | ||
| 373 | results in "du -sh .git" => 559M, about double the smallest reported | ||
| 374 | value (obtained with "deprecated" command "git gc --aggressive"). | ||
| 375 | |||
| 376 | ** steady-state | ||
| 377 | |||
| 378 | Use "fetch", "pull" and other remote-to-local commands as usual. | ||
| 379 | |||
| 380 | For "push", the Emacs Bazaar repo is configured with | ||
| 381 | |||
| 382 | append_revisions_only = True | ||
| 383 | |||
| 384 | so some versions of git-remote-bzr may raise AppendRevisionsOnlyViolation | ||
| 385 | (in func do_export) instead of displaying a "non fast-forward" message | ||
| 386 | and skipping the branch. See: | ||
| 387 | |||
| 388 | http://lists.gnu.org/archive/html/emacs-devel/2014-01/msg00436.html | ||
| 389 | |||
| 390 | which includes a provisional patch to git-remote-bzr to do that. | ||
| 391 | |||
| 392 | ** remote name | ||
| 393 | |||
| 394 | Although Git itself is agnostic about what names you choose for | ||
| 395 | the remote repo, it seems git-bzr is more likely to get confused. | ||
| 396 | After the clone as described above, the remote name is "origin"; | ||
| 397 | changing it is Not Recommended. [Insert 9-hour high-entropy then | ||
| 398 | mysterious bug w/ JSON parsing errors anecdote here. --ttn] | ||
diff --git a/admin/notes/changelogs b/admin/notes/changelogs index 1025cfc217f..e8158060e70 100644 --- a/admin/notes/changelogs +++ b/admin/notes/changelogs | |||
| @@ -1,3 +1,12 @@ | |||
| 1 | Emacs generally follows the GNU coding standards when it comes to ChangeLogs: | ||
| 2 | http://www.gnu.org/prep/standards/html_node/Change-Logs.html | ||
| 3 | |||
| 4 | One exception is that we still sometimes quote `like-this' (as the | ||
| 5 | standards used to recommend) rather than 'like-this' (as they do now), | ||
| 6 | because `...' is so widely used elsewhere in Emacs. | ||
| 7 | http://lists.gnu.org/archive/html/emacs-devel/2014-05/msg00514.html | ||
| 8 | |||
| 9 | |||
| 1 | If installing changes written by someone else, make the ChangeLog | 10 | If installing changes written by someone else, make the ChangeLog |
| 2 | entry in their name, not yours. | 11 | entry in their name, not yours. |
| 3 | 12 | ||
diff --git a/admin/notes/commits b/admin/notes/commits index 2c6f80c56f0..f33c6905d4c 100644 --- a/admin/notes/commits +++ b/admin/notes/commits | |||
| @@ -45,6 +45,15 @@ Date: Tue, 31 Mar 2009 12:21:20 +0900 | |||
| 45 | for modern source-control systems with a global log, it's better to | 45 | for modern source-control systems with a global log, it's better to |
| 46 | have something like "Regenerate configure". | 46 | have something like "Regenerate configure". |
| 47 | 47 | ||
| 48 | (4) (Added in 2014) In commit comments, and ChangeLog files, it is best | ||
| 49 | to use ways of identifying revisions that are not dependent on a | ||
| 50 | particular version control system. (At time of writing Emacs is | ||
| 51 | about to move to its fourth VCS and another move in the future is | ||
| 52 | not impossible.) An excellent way to identify commits is by | ||
| 53 | quoting their summary line. Another is with an action stamp - an | ||
| 54 | RFC3339 date followed by ! followed by the committer's email - for | ||
| 55 | example, "2014-01-16T05:43:35Z!esr@thyrsus.com". Often, "my | ||
| 56 | previous commit" will suffice. | ||
| 48 | 57 | ||
| 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..ebef0633032 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 | ||
| @@ -137,7 +137,10 @@ GNUstep/Emacs.base/Resources/Info-gnustep.plist | |||
| 137 | aclocal.m4 | 137 | aclocal.m4 |
| 138 | configure | 138 | configure |
| 139 | m4/*.m4 | 139 | m4/*.m4 |
| 140 | - copyright FSF, with unlimited permission to copy, distribute and modify | 140 | - These files are copyright FSF, with unlimited permission to copy, |
| 141 | distribute and modify, so long as the copyright notice is preserved. | ||
| 142 | Exception: m4/pkg.m4 is copyright Scott James Remnant; it is | ||
| 143 | distributed under the same terms as for the rest of Emacs. | ||
| 141 | 144 | ||
| 142 | lib/Makefile.in | 145 | lib/Makefile.in |
| 143 | - copyright FSF, with MIT-like license | 146 | - copyright FSF, with MIT-like license |
| @@ -161,13 +164,6 @@ etc/letter.pbm,letter.xpm | |||
| 161 | etc/FTP, ORDERS | 164 | etc/FTP, ORDERS |
| 162 | - trivial (at time of writing), no license needed | 165 | - trivial (at time of writing), no license needed |
| 163 | 166 | ||
| 164 | etc/GNU, INTERVIEW, LINUX-GNU, MOTIVATION, SERVICE, THE-GNU-PROJECT, | ||
| 165 | WHY-FREE | ||
| 166 | rms: "These are statements of opinion or testimony. Their licenses | ||
| 167 | should permit verbatim copying only. Please don't change the | ||
| 168 | licenses that they have. They are distributed with Emacs but they | ||
| 169 | are not part of Emacs." | ||
| 170 | |||
| 171 | etc/HELLO | 167 | etc/HELLO |
| 172 | standard notices. Just a note that although the file itself is not | 168 | standard notices. Just a note that although the file itself is not |
| 173 | really copyrightable, in the wider context of it being part of | 169 | really copyrightable, in the wider context of it being part of |
diff --git a/admin/notes/font-backend b/admin/notes/font-backend index cdf2001580d..5c36cf08c62 100644 --- a/admin/notes/font-backend +++ b/admin/notes/font-backend | |||
| @@ -1,4 +1,4 @@ | |||
| 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 index 71e35d092c8..3b6bc87a2f6 100644 --- a/admin/notes/hydra +++ b/admin/notes/hydra | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*- outline -*- | 1 | -*- outline -*- |
| 2 | 2 | ||
| 3 | Copyright (C) 2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2013-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 | NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA | 6 | NOTES FOR EMACS CONTINUOUS BUILD ON HYDRA |
diff --git a/admin/notes/lel-TODO b/admin/notes/lel-TODO index 2c6d86a4ffd..4a4ccb5e6e8 100644 --- a/admin/notes/lel-TODO +++ b/admin/notes/lel-TODO | |||
| @@ -1,6 +1,6 @@ | |||
| 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..f67911d0ff4 100644 --- a/admin/notes/multi-tty +++ b/admin/notes/multi-tty | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*- coding: utf-8; mode: text; -*- | 1 | -*- coding: utf-8; mode: text; -*- |
| 2 | 2 | ||
| 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. |
| @@ -101,16 +101,6 @@ Known problems: | |||
| 101 | I plan to implement better user notification and support for | 101 | I plan to implement better user notification and support for |
| 102 | breaking out of single-kboard mode from locked displays. | 102 | breaking out of single-kboard mode from locked displays. |
| 103 | 103 | ||
| 104 | * Mac and DOS support is broken, doesn't even | ||
| 105 | compile. Multiple display support will probably not provide | ||
| 106 | new Emacs features on these systems, but the multi-tty | ||
| 107 | branch changed a few low-level interfaces, and the | ||
| 108 | system-dependent source files need to be adapted | ||
| 109 | accordingly. The changes are mostly trivial, so almost | ||
| 110 | anyone can help, if only by compiling the branch and | ||
| 111 | reporting the compiler errors. | ||
| 112 | |||
| 113 | |||
| 114 | TESTING | 104 | TESTING |
| 115 | ------- | 105 | ------- |
| 116 | 106 | ||
| @@ -504,17 +494,6 @@ THINGS TO DO | |||
| 504 | 494 | ||
| 505 | (This is likely an error in the CVS trunk.) | 495 | (This is likely an error in the CVS trunk.) |
| 506 | 496 | ||
| 507 | ** Dan Nicolaescu suggests that -nw should be added as an alias for -t | ||
| 508 | in emacsclient. Good idea. (Alas, implementing this is not | ||
| 509 | trivial, getopt_long does not seem to support two-letter ``short'' | ||
| 510 | options. Patches are welcome.) | ||
| 511 | |||
| 512 | ** Mark Plaksin suggests that emacsclient should accept the same | ||
| 513 | X-related command-line arguments as Emacs. Most of the X-related | ||
| 514 | argument-handling is done in Lisp, so this should be quite easy to | ||
| 515 | implement. (For example, Samium Gromoff wants emacsclient to | ||
| 516 | support --geometry; implementing this would add that support.) | ||
| 517 | |||
| 518 | ** Gergely Nagy suggests that C-x # should only kill the current | 497 | ** Gergely Nagy suggests that C-x # should only kill the current |
| 519 | frame, not any other emacsclient frame that may have the same file | 498 | frame, not any other emacsclient frame that may have the same file |
| 520 | opened for editing. I think I agree with him. | 499 | opened for editing. I think I agree with him. |
| @@ -532,21 +511,9 @@ THINGS TO DO | |||
| 532 | an initial frame. (The user would connect to it and open frames | 511 | an initial frame. (The user would connect to it and open frames |
| 533 | later, with emacsclient.) | 512 | later, with emacsclient.) |
| 534 | 513 | ||
| 535 | ** Fix Mac support (I can't do this entirely myself). Note that the | 514 | ** Implement Mac/Windows/DOS support. Many XXX comments mark things |
| 536 | current state of Mac-specific source files in the multi-tty tree | 515 | that probably need updating, ChangeLogs will help in spotting |
| 537 | are not useful; before starting work on Mac support, revert to | 516 | changes to X specific files that may need porting. |
| 538 | pristine, pre-multi-tty versions. | ||
| 539 | |||
| 540 | ** Fix DOS support (I can't do this entirely myself). Note that the | ||
| 541 | current state of DOS-specific source files in the multi-tty tree | ||
| 542 | are not useful; before starting work on DOS support, revert to | ||
| 543 | pristine, pre-multi-tty versions. | ||
| 544 | |||
| 545 | ** Fix Windows support. Currently bootstrapping works on w32, but Emacs | ||
| 546 | crashes on startup and none of the multi-tty features are | ||
| 547 | implemented. Many XXX comments mark things that probably need | ||
| 548 | updating, ChangeLogs will help in spotting changes to X specific | ||
| 549 | files that may need porting. | ||
| 550 | 517 | ||
| 551 | ** Do a grep on XXX and ?? for more issues. | 518 | ** Do a grep on XXX and ?? for more issues. |
| 552 | 519 | ||
| @@ -1085,18 +1052,6 @@ DIARY OF CHANGES | |||
| 1085 | 1052 | ||
| 1086 | (Done.) | 1053 | (Done.) |
| 1087 | 1054 | ||
| 1088 | -- Miles Bader suggests that C-x C-c on an emacsclient frame should | ||
| 1089 | only close the frame, not exit the entire Emacs session. Update: | ||
| 1090 | see above for a function that does this. Maybe this should be the | ||
| 1091 | new default? | ||
| 1092 | |||
| 1093 | (Done. This is the new default. No complaints so far.) | ||
| 1094 | |||
| 1095 | -- Clean up the frame-local variable system. I think it's ugly and | ||
| 1096 | error-prone. But maybe I just haven't yet fully understood it. | ||
| 1097 | |||
| 1098 | (Nothing to do. It doesn't seem ugly any more. It's rather clever.) | ||
| 1099 | |||
| 1100 | -- Support multiple character locales. A version of | 1055 | -- Support multiple character locales. A version of |
| 1101 | `set-locale-environment' needs to be written for setting up | 1056 | `set-locale-environment' needs to be written for setting up |
| 1102 | display-local settings on ttys. I think calling | 1057 | display-local settings on ttys. I think calling |
| @@ -1114,18 +1069,6 @@ DIARY OF CHANGES | |||
| 1114 | (Done, by making `function-key-map' terminal-local (i.e., part of | 1069 | (Done, by making `function-key-map' terminal-local (i.e., part of |
| 1115 | struct kboard). This has probably covered all the remaining problems.) | 1070 | struct kboard). This has probably covered all the remaining problems.) |
| 1116 | 1071 | ||
| 1117 | -- Make `function-key-map' and `key-translation-map' terminal-local. | ||
| 1118 | |||
| 1119 | (Done.) | ||
| 1120 | |||
| 1121 | -- Implement `terminal-local-value' and `set-terminal-local-value' to | ||
| 1122 | allow deterministic access to terminal local bindings. The | ||
| 1123 | encode-kb package can not set up `key-translation-map' without | ||
| 1124 | these. The terminal-local bindings seem to be independent of what | ||
| 1125 | frame is selected. | ||
| 1126 | |||
| 1127 | (Done.) | ||
| 1128 | |||
| 1129 | -- xt-mouse.el needs to be adapted for multi-tty. It currently | 1072 | -- xt-mouse.el needs to be adapted for multi-tty. It currently |
| 1130 | signals an error on kill-emacs under X, which prevents the user | 1073 | signals an error on kill-emacs under X, which prevents the user |
| 1131 | from exiting Emacs. (Reported by Mnemonikk on freenode.) | 1074 | from exiting Emacs. (Reported by Mnemonikk on freenode.) |
diff --git a/admin/notes/unicode b/admin/notes/unicode index 6db5bb7d05c..841b7ebd5e4 100644 --- a/admin/notes/unicode +++ b/admin/notes/unicode | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*-mode: text; coding: utf-8;-*- | 1 | -*-mode: text; coding: utf-8;-*- |
| 2 | 2 | ||
| 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 |
| @@ -181,13 +181,6 @@ nontrivial changes to the build process. | |||
| 181 | 181 | ||
| 182 | admin/charsets/mapfiles/cns2ucsdkw.txt | 182 | admin/charsets/mapfiles/cns2ucsdkw.txt |
| 183 | 183 | ||
| 184 | * no-conversion | ||
| 185 | |||
| 186 | This file purposely contains arbitrary bytes interspersed within text, | ||
| 187 | to test whether the Emacs distribution is corrupted. | ||
| 188 | |||
| 189 | lib-src/testfile | ||
| 190 | |||
| 191 | * iso-2022-7bit | 184 | * iso-2022-7bit |
| 192 | 185 | ||
| 193 | This file switches between CJK charsets, which is not encoded in UTF-8. | 186 | This file switches between CJK charsets, which is not encoded in UTF-8. |
diff --git a/admin/notes/www b/admin/notes/www index 0bb0850af0d..4d092ca7fa0 100644 --- a/admin/notes/www +++ b/admin/notes/www | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | -*- outline -*- | 1 | -*- outline -*- |
| 2 | 2 | ||
| 3 | Copyright (C) 2013 Free Software Foundation, Inc. | 3 | Copyright (C) 2013-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 | NOTES FOR EMACS WWW PAGES | 6 | NOTES FOR EMACS WWW PAGES |
diff --git a/admin/notes/years b/admin/notes/years index e6b38c5aefd..342fe9e2307 100644 --- a/admin/notes/years +++ b/admin/notes/years | |||
| @@ -2,6 +2,8 @@ HOW TO MAINTAIN COPYRIGHT YEARS FOR GNU EMACS | |||
| 2 | 2 | ||
| 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 304251f3ce4..5f5b4a951af 100644 --- a/admin/nt/README-ftp-server +++ b/admin/nt/README-ftp-server | |||
| @@ -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 | Precompiled Distributions of | 4 | Precompiled Distributions of |
diff --git a/admin/quick-install-emacs b/admin/quick-install-emacs index 98bd61f839d..5edc8d4d9ad 100755 --- a/admin/quick-install-emacs +++ b/admin/quick-install-emacs | |||
| @@ -1,7 +1,7 @@ | |||
| 1 | #!/bin/sh | 1 | #!/bin/sh |
| 2 | ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly | 2 | ### quick-install-emacs --- do a halfway-decent job of installing emacs quickly |
| 3 | 3 | ||
| 4 | ## Copyright (C) 2001-2013 Free Software Foundation, Inc. | 4 | ## Copyright (C) 2001-2014 Free Software Foundation, Inc. |
| 5 | 5 | ||
| 6 | ## Author: Miles Bader <miles@gnu.org> | 6 | ## Author: Miles Bader <miles@gnu.org> |
| 7 | 7 | ||
| @@ -30,7 +30,7 @@ | |||
| 30 | PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse' | 30 | PUBLIC_LIBSRC_BINARIES='emacsclient etags ctags ebrowse' |
| 31 | PUBLIC_LIBSRC_SCRIPTS='grep-changelog' | 31 | PUBLIC_LIBSRC_SCRIPTS='grep-changelog' |
| 32 | 32 | ||
| 33 | AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile testfile test-distrib" | 33 | AVOID="CVS -DIC README COPYING ChangeLog ~ [.]orig$ [.]rej$ Makefile$ Makefile.in$ makefile$ makefile.w32-in$ stamp-subdir [.]cvsignore [.]arch-ids [{]arch[}] [.][cho]$ make-docfile" |
| 34 | 34 | ||
| 35 | # Prune old binaries lying around in the source tree | 35 | # Prune old binaries lying around in the source tree |
| 36 | PRUNE=no | 36 | PRUNE=no |
diff --git a/admin/unidata/BidiMirroring.txt b/admin/unidata/BidiMirroring.txt index ec41b769375..d97c0dd9617 100644 --- a/admin/unidata/BidiMirroring.txt +++ b/admin/unidata/BidiMirroring.txt | |||
| @@ -1,19 +1,19 @@ | |||
| 1 | # BidiMirroring-6.2.0.txt | 1 | # BidiMirroring-6.3.0.txt |
| 2 | # Date: 2012-05-15, 24:19:00 GMT [KW, LI] | 2 | # Date: 2013-02-12, 08:20:00 GMT [KW, LI] |
| 3 | # | 3 | # |
| 4 | # Bidi_Mirroring_Glyph Property | 4 | # Bidi_Mirroring_Glyph Property |
| 5 | # | 5 | # |
| 6 | # This file is an informative contributory data file in the | 6 | # This file is an informative contributory data file in the |
| 7 | # Unicode Character Database. | 7 | # Unicode Character Database. |
| 8 | # | 8 | # |
| 9 | # Copyright (c) 1991-2012 Unicode, Inc. | 9 | # Copyright (c) 1991-2013 Unicode, Inc. |
| 10 | # For terms of use, see http://www.unicode.org/terms_of_use.html | 10 | # For terms of use, see http://www.unicode.org/terms_of_use.html |
| 11 | # | 11 | # |
| 12 | # This data file lists characters that have the Bidi_Mirrored=Yes property | 12 | # This data file lists characters that have the Bidi_Mirrored=Yes property |
| 13 | # value, for which there is another Unicode character that typically has a glyph | 13 | # value, for which there is another Unicode character that typically has a glyph |
| 14 | # that is the mirror image of the original character's glyph. | 14 | # that is the mirror image of the original character's glyph. |
| 15 | # | 15 | # |
| 16 | # The repertoire covered by the file is Unicode 6.2.0. | 16 | # The repertoire covered by the file is Unicode 6.3.0. |
| 17 | # | 17 | # |
| 18 | # The file contains a list of lines with mappings from one code point | 18 | # The file contains a list of lines with mappings from one code point |
| 19 | # to another one for character-based mirroring. | 19 | # to another one for character-based mirroring. |
| @@ -42,7 +42,7 @@ | |||
| 42 | # | 42 | # |
| 43 | # This file was originally created by Markus Scherer. | 43 | # This file was originally created by Markus Scherer. |
| 44 | # Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler, | 44 | # Extended for Unicode 3.2, 4.0, 4.1, 5.0, 5.1, 5.2, and 6.0 by Ken Whistler, |
| 45 | # and for Unicode 6.1 and 6.2 by Ken Whistler and Laurentiu Iancu. | 45 | # and for Unicode 6.1, 6.2, and 6.3 by Ken Whistler and Laurentiu Iancu. |
| 46 | # | 46 | # |
| 47 | # ############################################################ | 47 | # ############################################################ |
| 48 | # | 48 | # |
| @@ -204,8 +204,8 @@ | |||
| 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 df225cc8cbf..3ad81a94bae 100644 --- a/admin/unidata/Makefile.in +++ b/admin/unidata/Makefile.in | |||
| @@ -1,6 +1,6 @@ | |||
| 1 | ### @configure_input@ | 1 | ### @configure_input@ |
| 2 | 2 | ||
| 3 | # Copyright (C) 2012-2013 Free Software Foundation, Inc. | 3 | # Copyright (C) 2012-2014 Free Software Foundation, Inc. |
| 4 | 4 | ||
| 5 | # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 | 5 | # Copyright (C) 2005, 2006, 2007, 2008, 2009, 2010, 2011 |
| 6 | # National Institute of Advanced Industrial Science and Technology (AIST) | 6 | # National Institute of Advanced Industrial Science and Technology (AIST) |
| @@ -24,13 +24,14 @@ | |||
| 24 | SHELL = @SHELL@ | 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..d9d34fa3d6e --- /dev/null +++ b/admin/update_autogen | |||
| @@ -0,0 +1,391 @@ | |||
| 1 | #!/bin/bash | ||
| 2 | ### update_autogen - update some auto-generated files in the Emacs tree | ||
| 3 | |||
| 4 | ## Copyright (C) 2011-2014 Free Software Foundation, Inc. | ||
| 5 | |||
| 6 | ## Author: Glenn Morris <rgm@gnu.org> | ||
| 7 | |||
| 8 | ## This file is part of GNU Emacs. | ||
| 9 | |||
| 10 | ## GNU Emacs is free software: you can redistribute it and/or modify | ||
| 11 | ## it under the terms of the GNU General Public License as published by | ||
| 12 | ## the Free Software Foundation, either version 3 of the License, or | ||
| 13 | ## (at your option) any later version. | ||
| 14 | |||
| 15 | ## GNU Emacs is distributed in the hope that it will be useful, | ||
| 16 | ## but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 17 | ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 18 | ## GNU General Public License for more details. | ||
| 19 | |||
| 20 | ## You should have received a copy of the GNU General Public License | ||
| 21 | ## along with GNU Emacs. If not, see <http://www.gnu.org/licenses/>. | ||
| 22 | |||
| 23 | ### Commentary: | ||
| 24 | |||
| 25 | ## This is a helper script to update some generated files in the Emacs | ||
| 26 | ## repository. This is suitable for running from cron. | ||
| 27 | ## Only Emacs maintainers need use this, so it uses bash features. | ||
| 28 | ## | ||
| 29 | ## By default, it updates the versioned loaddefs-like files in lisp, | ||
| 30 | ## except ldefs-boot.el. | ||
| 31 | |||
| 32 | ### Code: | ||
| 33 | |||
| 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 | if [ -d .bzr ]; then | ||
| 51 | vcs=bzr | ||
| 52 | elif [ -d .git ]; then | ||
| 53 | vcs=git | ||
| 54 | else | ||
| 55 | die "Cannot determine vcs" | ||
| 56 | fi | ||
| 57 | |||
| 58 | |||
| 59 | usage () | ||
| 60 | { | ||
| 61 | cat 1>&2 <<EOF | ||
| 62 | Usage: ${PN} [-f] [-c] [-q] [-A dir] [-I] [-L] [-C] [-- make-flags] | ||
| 63 | Update some auto-generated files in the Emacs tree. | ||
| 64 | By default, only does the versioned loaddefs-like files in lisp/. | ||
| 65 | This requires a build. Passes any non-option args to make (eg -- -j2). | ||
| 66 | Options: | ||
| 67 | -f: force an update even if the source files are locally modified. | ||
| 68 | -c: if the update succeeds and the generated files are modified, | ||
| 69 | commit them (caution). | ||
| 70 | -q: be quiet; only give error messages, not status messages. | ||
| 71 | -A: only update autotools files, copying into specified dir. | ||
| 72 | -I: also update info/dir. | ||
| 73 | -L: also update ldefs-boot.el. | ||
| 74 | -C: start from a clean state. Slower, but more correct. | ||
| 75 | EOF | ||
| 76 | exit 1 | ||
| 77 | } | ||
| 78 | |||
| 79 | |||
| 80 | ## Defaults. | ||
| 81 | |||
| 82 | force= | ||
| 83 | commit= | ||
| 84 | quiet= | ||
| 85 | clean= | ||
| 86 | autogendir= # was "autogen" | ||
| 87 | ldefs_flag=1 | ||
| 88 | lboot_flag= | ||
| 89 | info_flag= | ||
| 90 | |||
| 91 | ## Parameters. | ||
| 92 | ldefs_in=lisp/loaddefs.el | ||
| 93 | ldefs_out=lisp/ldefs-boot.el | ||
| 94 | sources="configure.ac lib/Makefile.am" | ||
| 95 | ## Files to copy into autogendir. | ||
| 96 | ## Everything: | ||
| 97 | genfiles=" | ||
| 98 | configure aclocal.m4 src/config.in lib/Makefile.in | ||
| 99 | build-aux/compile build-aux/config.guess build-aux/config.sub | ||
| 100 | build-aux/depcomp build-aux/install-sh build-aux/missing | ||
| 101 | " | ||
| 102 | ## msdos-only: | ||
| 103 | genfiles="src/config.in lib/Makefile.in" | ||
| 104 | |||
| 105 | for g in $genfiles; do | ||
| 106 | basegen="$basegen ${g##*/}" | ||
| 107 | done | ||
| 108 | |||
| 109 | [ "$basegen" ] || die "internal error" | ||
| 110 | |||
| 111 | tempfile=/tmp/$PN.$$ | ||
| 112 | |||
| 113 | trap "rm -f $tempfile 2> /dev/null" EXIT | ||
| 114 | |||
| 115 | |||
| 116 | while getopts ":hcfqA:CIL" option ; do | ||
| 117 | case $option in | ||
| 118 | (h) usage ;; | ||
| 119 | |||
| 120 | (c) commit=1 ;; | ||
| 121 | |||
| 122 | (f) force=1 ;; | ||
| 123 | |||
| 124 | (q) quiet=1 ;; | ||
| 125 | |||
| 126 | (A) autogendir=$OPTARG | ||
| 127 | [ -d "$autogendir" ] || die "No autogen directory: $autogendir" | ||
| 128 | ;; | ||
| 129 | |||
| 130 | (C) clean=1 ;; | ||
| 131 | |||
| 132 | (I) info_flag=1 ;; | ||
| 133 | |||
| 134 | (L) lboot_flag=1 ;; | ||
| 135 | |||
| 136 | (\?) die "Bad option -$OPTARG" ;; | ||
| 137 | |||
| 138 | (:) die "Option -$OPTARG requires an argument" ;; | ||
| 139 | |||
| 140 | (*) die "getopts error" ;; | ||
| 141 | esac | ||
| 142 | done | ||
| 143 | shift $(( --OPTIND )) | ||
| 144 | OPTIND=1 | ||
| 145 | |||
| 146 | |||
| 147 | ## Does not work 100% because a lot of Emacs batch output comes on stderr (?). | ||
| 148 | [ "$quiet" ] && exec 1> /dev/null | ||
| 149 | |||
| 150 | |||
| 151 | ## Run status on inputs, list modified files on stdout. | ||
| 152 | status () | ||
| 153 | { | ||
| 154 | local statflag="-S" | ||
| 155 | [ "$vcs" = "git" ] && statflag="-s" | ||
| 156 | |||
| 157 | $vcs status $statflag "$@" >| $tempfile || die "$vcs status error for $@" | ||
| 158 | |||
| 159 | local stat file modified | ||
| 160 | |||
| 161 | while read stat file; do | ||
| 162 | |||
| 163 | [ "$stat" != "M" ] && \ | ||
| 164 | die "Unexpected status ($stat) for generated $file" | ||
| 165 | modified="$modified $file" | ||
| 166 | |||
| 167 | done < $tempfile | ||
| 168 | |||
| 169 | echo "$modified" | ||
| 170 | |||
| 171 | return 0 | ||
| 172 | } # function status | ||
| 173 | |||
| 174 | |||
| 175 | echo "Checking input file status..." | ||
| 176 | |||
| 177 | ## The lisp portion could be more permissive, eg only care about .el files. | ||
| 178 | modified=$(status ${autogendir:+$sources} ${ldefs_flag:+lisp} ${info_flag:+doc}) || die | ||
| 179 | |||
| 180 | [ "$modified" ] && { | ||
| 181 | echo "Locally modified: $modified" | ||
| 182 | [ "$force" ] || die "There are local modifications" | ||
| 183 | } | ||
| 184 | |||
| 185 | |||
| 186 | ## Probably this is overkill, and there's no need to "bootstrap" just | ||
| 187 | ## for making autoloads. | ||
| 188 | [ "$clean" ] && { | ||
| 189 | |||
| 190 | echo "Running 'make maintainer-clean'..." | ||
| 191 | |||
| 192 | make maintainer-clean #|| die "Cleaning error" | ||
| 193 | |||
| 194 | rm -f $ldefs_in | ||
| 195 | } | ||
| 196 | |||
| 197 | |||
| 198 | echo "Running autoreconf..." | ||
| 199 | |||
| 200 | autoreconf ${clean:+-f} -i -I m4 2>| $tempfile | ||
| 201 | |||
| 202 | retval=$? | ||
| 203 | |||
| 204 | ## Annoyingly, autoreconf puts the "installing `./foo' messages on stderr. | ||
| 205 | if [ "$quiet" ]; then | ||
| 206 | grep -v 'installing `\.' $tempfile 1>&2 | ||
| 207 | else | ||
| 208 | cat "$tempfile" 1>&2 | ||
| 209 | fi | ||
| 210 | |||
| 211 | [ $retval -ne 0 ] && die "autoreconf error" | ||
| 212 | |||
| 213 | |||
| 214 | ## Uses global $commit. | ||
| 215 | commit () | ||
| 216 | { | ||
| 217 | local type=$1 | ||
| 218 | shift | ||
| 219 | |||
| 220 | [ $# -gt 0 ] || { | ||
| 221 | echo "No files were modified" | ||
| 222 | return 0 | ||
| 223 | } | ||
| 224 | |||
| 225 | echo "Modified file(s): $@" | ||
| 226 | |||
| 227 | [ "$commit" ] || return 0 | ||
| 228 | |||
| 229 | echo "Committing..." | ||
| 230 | |||
| 231 | $vcs commit -m "Auto-commit of $type files." "$@" || return $? | ||
| 232 | |||
| 233 | [ "$vcs" = "git" ] && { | ||
| 234 | $vcs push || return $? | ||
| 235 | } | ||
| 236 | |||
| 237 | echo "Committed files: $@" | ||
| 238 | } # function commit | ||
| 239 | |||
| 240 | |||
| 241 | ## No longer used since info/dir is now generated at install time if needed, | ||
| 242 | ## and is not in the repository any more. | ||
| 243 | info_dir () | ||
| 244 | { | ||
| 245 | local basefile=build-aux/dir_top outfile=info/dir | ||
| 246 | |||
| 247 | echo "Regenerating info/dir..." | ||
| 248 | |||
| 249 | ## Header contains non-printing characters, so this is more | ||
| 250 | ## reliable than using echo. | ||
| 251 | rm -f $outfile | ||
| 252 | cp $basefile $outfile | ||
| 253 | |||
| 254 | local topic file dircat dirent | ||
| 255 | |||
| 256 | ## FIXME inefficient looping. | ||
| 257 | for topic in "Texinfo documentation system" "Emacs" "GNU Emacs Lisp" \ | ||
| 258 | "Emacs editing modes" "Emacs network features" "Emacs misc features" \ | ||
| 259 | "Emacs lisp libraries"; do | ||
| 260 | |||
| 261 | cat - <<EOF >> $outfile | ||
| 262 | |||
| 263 | $topic | ||
| 264 | EOF | ||
| 265 | ## Bit faster than doc/*/*.texi. | ||
| 266 | for file in doc/emacs/emacs.texi doc/lispintro/*.texi \ | ||
| 267 | doc/lispref/elisp.texi doc/misc/*.texi; do | ||
| 268 | |||
| 269 | ## FIXME do not ignore w32 if OS is w32. | ||
| 270 | case $file in | ||
| 271 | *-xtra.texi|*efaq-w32.texi) continue ;; | ||
| 272 | esac | ||
| 273 | |||
| 274 | dircat=$(sed -n -e 's/@value{emacsname}/Emacs/' -e 's/^@dircategory //p' $file) | ||
| 275 | |||
| 276 | ## TODO warn about unknown topics (check-info in top-level | ||
| 277 | ## Makefile does this). | ||
| 278 | [ "$dircat" = "$topic" ] || continue | ||
| 279 | |||
| 280 | sed -n -e 's/@value{emacsname}/Emacs/' \ | ||
| 281 | -e 's/@acronym{\([A-Z]*\)}/\1/' \ | ||
| 282 | -e '/^@direntry/,/^@end direntry/ s/^\([^@]\)/\1/p' \ | ||
| 283 | $file >> $outfile | ||
| 284 | |||
| 285 | done | ||
| 286 | done | ||
| 287 | |||
| 288 | local modified | ||
| 289 | |||
| 290 | modified=$(status $outfile) || die | ||
| 291 | |||
| 292 | commit "info/dir" $modified || die "commit error" | ||
| 293 | } # function info_dir | ||
| 294 | |||
| 295 | |||
| 296 | [ "$autogendir" ] && { | ||
| 297 | |||
| 298 | oldpwd=$PWD | ||
| 299 | |||
| 300 | cp $genfiles $autogendir/ | ||
| 301 | |||
| 302 | cd $autogendir || die "cd error for $autogendir" | ||
| 303 | |||
| 304 | echo "Checking status of generated files..." | ||
| 305 | |||
| 306 | modified=$(status $basegen) || die | ||
| 307 | |||
| 308 | ## bzr status output is always relative to top-level, not PWD. | ||
| 309 | [ "$vcs" = "bzr" ] && cd $oldpwd | ||
| 310 | |||
| 311 | commit "generated" $modified || die "commit error" | ||
| 312 | |||
| 313 | exit 0 | ||
| 314 | } # $autogendir | ||
| 315 | |||
| 316 | |||
| 317 | [ "$info_flag" ] && info_dir | ||
| 318 | |||
| 319 | |||
| 320 | [ "$ldefs_flag" ] || exit 0 | ||
| 321 | |||
| 322 | |||
| 323 | echo "Finding loaddef targets..." | ||
| 324 | |||
| 325 | sed -n -e '/^AUTOGEN_VCS/,/^$/p' lisp/Makefile.in | \ | ||
| 326 | sed -e '/AUTOGEN_VCS/d' -e '/^$/d' -e 's/\\//' \ | ||
| 327 | >| $tempfile || die "sed error" | ||
| 328 | |||
| 329 | genfiles= | ||
| 330 | |||
| 331 | while read genfile; do | ||
| 332 | |||
| 333 | [ -r lisp/$genfile ] || die "Unable to read $genfile" | ||
| 334 | |||
| 335 | genfiles="$genfiles $genfile" | ||
| 336 | done < $tempfile | ||
| 337 | |||
| 338 | |||
| 339 | [ "$genfiles" ] || die "Error setting genfiles" | ||
| 340 | |||
| 341 | |||
| 342 | [ -e Makefile ] || { | ||
| 343 | echo "Running ./configure..." | ||
| 344 | |||
| 345 | ## Minimize required packages. | ||
| 346 | ./configure --without-x || die "configure error" | ||
| 347 | } | ||
| 348 | |||
| 349 | |||
| 350 | ## Build the minimum needed to get the autoloads. | ||
| 351 | echo "Running lib/ make..." | ||
| 352 | |||
| 353 | make -C lib "$@" all || die "make lib error" | ||
| 354 | |||
| 355 | |||
| 356 | echo "Running src/ make..." | ||
| 357 | |||
| 358 | make -C src "$@" bootstrap-emacs || die "make src error" | ||
| 359 | |||
| 360 | |||
| 361 | echo "Running lisp/ make..." | ||
| 362 | |||
| 363 | make -C lisp "$@" autoloads EMACS=../src/bootstrap-emacs || die "make src error" | ||
| 364 | |||
| 365 | |||
| 366 | ## Ignore comment differences. | ||
| 367 | [ ! "$lboot_flag" ] || \ | ||
| 368 | diff -q -I '^;' $ldefs_in $ldefs_out || \ | ||
| 369 | cp $ldefs_in $ldefs_out || die "cp ldefs_boot error" | ||
| 370 | |||
| 371 | |||
| 372 | cd lisp | ||
| 373 | |||
| 374 | echo "Checking status of loaddef files..." | ||
| 375 | |||
| 376 | ## It probably would be fine to just check+commit lisp/, since | ||
| 377 | ## making autoloads should not effect any other files. But better | ||
| 378 | ## safe than sorry. | ||
| 379 | modified=$(status $genfiles ${ldefs_out#lisp/}) || die | ||
| 380 | |||
| 381 | |||
| 382 | ## bzr status output is always relative to top-level, not PWD. | ||
| 383 | [ "$vcs" = "bzr" ] && cd ../ | ||
| 384 | |||
| 385 | |||
| 386 | commit "loaddefs" $modified || die "commit error" | ||
| 387 | |||
| 388 | |||
| 389 | exit 0 | ||
| 390 | |||
| 391 | ### update_autogen ends here | ||