Commit e3060a0c authored by Eli Zaretskii's avatar Eli Zaretskii
Browse files

Merge from trunk and resolve conflicts.

parents 1a3eca06 980d78b3
2014-10-14 Jan Djärv <>
* apple-darwin powerpc is unported.
Require OSX >= 10.6 even if --with-ns is not given.
2014-10-12 Ken Brown <>
to 8 MB. (Bug#18438)
2014-10-12 Jan Djärv <>
* Require OSX 10.6. Remove NSInteger test,
use nsfont for Gnustep, macfont for OSX.
2014-10-12 Paul Eggert <>
Fix putenv race conditions that can crash Emacs (Bug#8705).
We needn't worry about SunOS 4 any more; Sun dropped support in 2003.
All uses of LOCALTIME_CACHE removed. This simplifies the fix.
(tzalloc): Add check for this function.
2014-10-06 Jan Djärv <>
* Add -Wno-string-plus-int for clang.
2014-10-04 Glenn Morris <>
* Silence warning with some old Xrandr.h. (Bug#18465)
2014-10-03 Paul Eggert <>
* Port to strict POSIX shells on non-MinGW (Bug#18612).
2014-09-29 Eli Zaretskii <>
* README: Bump version to 25.0.50.
* (AC_INIT): Bump version to 25.0.50.
2014-09-29 Dmitry Antipov <>
For USE_STACK_LISP_OBJECTS, we always assume __GNUC__.
2014-09-27 Ken Brown <>
* [CYGWIN]: Enable sound support.
2014-09-25 Paul Eggert <>
* (MAKEINFO): Allow 'makeinfo' to be called 'texi2any'.
2014-09-23 Paul Eggert <>
Merge from gnulib, incorporating:
2014-09-11 fcntl-h: fix compilation with Intel C++ compiler
2014-09-04 pthread, pthread_sigmask, threadlib: port to Ubuntu 14.04
2014-09-22 Jan Djärv <>
* Increase headerpad_extra to 1000, update the comment
about load commands (Bug#18505).
2014-09-15 Eli Zaretskii <>
* (HAVE_SOUND): Check for mmsystem.h header that
defines the sound stuff on MS-Windows. (Bug#18463)
2014-09-10 Paul Eggert <>
Improve the experimental local and scoped allocation.
(HAVE_STATEMENT_EXPRESSIONS): New configure-time checks.
2014-09-07 Paul Eggert <>
Expand @AM_DEFAULT_VERBOSITY@ even if Automake is old (Bug#18415).
* Assume verbose output for older Automake.
2014-09-04 Paul Eggert <>
* (MAKEINFO): Clean up some configuration bitrot.
MAKEINFO is already set before we get here, so no need to call AC_PATH_PROG.
Bypass $am_missing_run. Simplify version-number checking.
2014-09-02 Paul Eggert <>
Merge from gnulib, incorporating:
2014-09-02 gnulib-common.m4: port to GCC 4.2.1 and Sun Studio 12 C++
2014-09-01 manywarnings: add GCC 4.9 warnings
* m4/gnulib-common.m4, m4/manywarnings.m4: Update from gnulib.
2014-09-01 Paul Eggert <>
--enable-silent-rules now suppresses more chatter.
* INSTALL: Document this.
Clean up extern decls a bit.
* (WERROR_CFLAGS): Don't disable -Wnested-externs.
While we're at it, don't disable -Wlogical-op either.
2014-08-31 Paul Eggert <>
* (MAKE): Export it, for config.status.
Needed on AIX when 'configure' infers MAKE=gmake.
(__restrict_arr): Remove; no longer used.
2014-08-30 Paul Eggert <>
Vector-sorting fixes (Bug#18361).
* (qsort_r): Remove, as we no longer use qsort-like
* lib/, m4/gnulib-comp.m4: Regenerate.
* lib/vla.h, m4/vararrays.m4: New files, copied from gnulib.
* lib/, m4/stdlib_h.m4: Sync from gnulib, incorporating:
2014-08-29 qsort_r: new module, for GNU-style qsort_r
The previous two files' changes are boilerplate generated by
admin/merge-gnulib, and should not affect Emacs.
2014-08-29 Dmitry Antipov <>
* (AC_CHECK_FUNCS): Check for qsort_r.
2014-08-28 Ken Brown <>
* (HYBRID_MALLOC): New macro; define to use gmalloc
before dumping and the system malloc after dumping. Define on
Cygwin. (Bug#18222)
2014-08-28 Glenn Morris <>
* (appdatadir): New variable.
(install-etc, uninstall, clean): Handle etc/emacs.appdata.xml.
2014-08-27 Paul Eggert <>
Improve robustness of new string-collation code (Bug#18051).
* (newlocale): Check for this, not for uselocale.
2014-08-26 Dmitry Antipov <>
Detect features needed to handle C stack overflows.
* Check for sigaltstack and related sigaction
support. Unconditionally check for sigsetjmp and siglongjmp.
(HAVE_STACK_OVERFLOW_HANDLING): Define if we can support it.
(HAVE_LINUX_SYSINFO): Avoid false positive on Solaris.
2014-08-25 Ken Brown <>
* (G_SLICE_ALWAYS_MALLOC): Remove obsolete macro.
2014-08-25 Christoph Scholtes <>
* INSTALL.REPO: Remove reference to obsolete configure scripts
on non-Posix platforms (Bug#18323).
2014-08-24 Michael Albinus <>
* Check also for the uselocale function. (Bug#18051)
2014-08-23 Karol Ostrovsky <> (tiny change)
* Accept "*-mingw*", not just "*-mingw32", as
canonical name of a MinGW build, because using MSYS2 'uname'
produces "MINGW64".
2014-08-21 Ken Brown <>
* (HAVE_XPM): Explain the use of CPPFLAGS in the
......@@ -280,6 +449,7 @@
dumped heap size depending on 32/64bits arch on Windows.
Don't check for pthreads.h on MinGW32/64, it gets in the way.
Use mmap(2) for buffers and system malloc for MinGW32/64.
2014-05-27 Paul Eggert <>
......@@ -1434,8 +1604,8 @@
2013-07-29 Michael Albinus <>
--without-file-notification to --without-all.
Add --without-file-notification to --without-all.
2013-07-29 Xue Fuqiao <>
......@@ -1708,8 +1878,8 @@
CONFIG_SITE for the MSYS build on MS-Windows.
(Makefile): Use $(CFG).
* .bzrignore: Ignore *.res, *.tmp, and *.map. Remove
* .bzrignore: Ignore *.res, *.tmp, and *.map.
Remove src/emacs.res.
2013-05-16 Paul Eggert <>
......@@ -13323,7 +13493,7 @@
detail: -with-x... and --srcdir.
(options, boolean_opts): Delete; we don't have enough options to
make this worthwhile.
(prefix, bindir, lisppath, datadir, libdir, lockdir): Deleted,
(prefix, bindir, lisppath, datadir, libdir, lockdir): Delete,
along with the code which supported them; these should be set as
arguments to the top-level make.
(config_h_opts): Since this no longer doubles as a list of option
......@@ -328,6 +328,11 @@ and is useful with GNU-compatible compilers. On a recent GNU system
there should be no warnings; on older and on non-GNU systems the
generated warnings may still be useful.
Use --enable-silent-rules to cause 'make' to chatter less. This is
helpful when combined with options like --enable-gcc-warnings that
generate long shell-command lines. 'make V=0' also suppresses the
Use --enable-link-time-optimization to enable link-time optimizer. If
you're using GNU compiler, this feature is supported since version 4.5.0.
If `configure' can determine number of online CPUS on your system, final
......@@ -52,11 +52,6 @@ If either of the above partial procedures fails, try 'make bootstrap'.
If CPU time is not an issue, 'make bootstrap' is the most thorough way
to rebuild, and avoid any spurious problems.
Users of non-Posix systems (MS-Windows, etc.) should run the
platform-specific configuration scripts ('nt/configure.bat',
'config.bat', etc.) before 'make'; the rest of the procedure is
applicable to those systems as well.
Because the repository version of Emacs is a work in progress, it will
sometimes fail to build. Please wait a day or so (and check the
archives of the emacs-buildstatus, emacs-devel, and bug-gnu-emacs
......@@ -179,6 +179,9 @@ x_default_search_path=@x_default_search_path@
# Where the etc/emacs.desktop file is to be installed.
# Where the etc/emacs.appdata.xml file is to be installed.
# Where the etc/images/icons/hicolor directory is to be installed.
......@@ -687,6 +690,12 @@ install-etc:
${srcdir}/etc/emacs.desktop > $${tmp}; \
${INSTALL_DATA} $${tmp} "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"; \
rm -f $${tmp}
umask 022; ${MKDIR_P} "$(DESTDIR)${appdatadir}"
tmp=etc/emacs.tmpappdata; rm -f $${tmp}; \
sed -e "s/emacs\.desktop/${EMACS_NAME}.desktop/" \
${srcdir}/etc/emacs.appdata.xml > $${tmp}; \
${INSTALL_DATA} $${tmp} "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml"; \
rm -f $${tmp}
thisdir=`/bin/pwd`; \
cd ${iconsrcdir} || exit 1; umask 022 ; \
for dir in */*/apps */*/mimetypes; do \
......@@ -751,6 +760,7 @@ uninstall: uninstall-$(NTDIR) uninstall-doc
hicolor/scalable/mimetypes/`echo emacs-document | sed '$(TRANSFORM)'`.svg; \
-rm -f "$(DESTDIR)${desktopdir}/${EMACS_NAME}.desktop"
-rm -f "$(DESTDIR)${appdatadir}/${EMACS_NAME}.appdata.xml"
for file in snake-scores tetris-scores; do \
file="$(DESTDIR)${gamedir}/$${file}"; \
[ -s "$${file}" ] || rm -f "$$file"; \
......@@ -806,7 +816,7 @@ clean: $(clean_dirs:=_clean)
for dir in test/automated; do \
[ ! -d $$dir ] || $(MAKE) -C $$dir clean; \
-rm -f etc/emacs.tmpdesktop
-rm -f etc/emacs.tmpdesktop etc/emacs.tmpappdata
### `bootclean'
### Delete all files that need to be remade for a clean bootstrap.
......@@ -2,7 +2,7 @@ Copyright (C) 2001-2014 Free Software Foundation, Inc.
See the end of the file for license conditions.
This directory tree holds version 24.4.50 of GNU Emacs, the extensible,
This directory tree holds version 25.0.50 of GNU Emacs, the extensible,
customizable, self-documenting real-time display editor.
The file INSTALL in this directory says how to build and install GNU
......@@ -368,7 +368,6 @@ HAVE___FPENDING
2014-10-13 Glenn Morris <>
* authors.el (authors-aliases, authors-fixed-case)
(authors-obsolete-files-regexps): Additions.
(authors-no-scan-regexps): New constant.
(authors-no-scan-file-p): New function.
(authors): Respect authors-no-scan-file-p.
2014-10-12 Paul Eggert <>
Fix putenv race conditions with undefined behavior (Bug#8705).
* merge-gnulib (GNULIB_MODULES): Add time_r, since Emacs now
calls localtime_r and gmtime_r directly.
2014-10-07 Glenn Morris <>
* unidata/ Check for deleted uni- files. (Bug#18489)
(all): Use unifiles rather than charprop.el.
(FORCE): New variable and phony rule.
(${unidir}/charprop.el): Respect FORCE.
(unifiles): New rule.
* unidata/ (unidir): Rename from DSTDIR. Change all uses.
(charprop.el, install): Remove rules.
(clean): Simplify.
2014-10-04 Glenn Morris <>
* authors.el (authors-renamed-files-alist): Add package-x-test.el
2014-10-01 Stefan Monnier <>
* unidata/unidata-gen.el (unidata-gen-table-word-list): Use alist-get
and cl-incf.
2014-09-08 Eli Zaretskii <>
* unidata/unidata-gen.el (unidata-check): Bring this function up
to date with the currently supported methods of generating Unicode
property tables. Add a comment with a description how to invoke
the check. Update the copyright years in the reference to the
Unicode data files we use.
2014-08-30 Paul Eggert <>
Vector-sorting fixes (Bug#18361).
* merge-gnulib (GNULIB_MODULES): Add vla.
2014-08-30 Eli Zaretskii <>
* authors.el (authors): Fix last change so it works for MS-Windows
as well.
2014-08-29 Michael Albinus <>
* authors.el (authors): Use LOCALE argument of `string-collate-lessp'.
2014-08-28 Michael Albinus <>
* authors.el (authors-aliases): Addition.
2014-08-26 Glenn Morris <>
* authors.el (authors-ignored-files, authors-valid-file-names)
(authors-renamed-files-alist): Additions.
(authors-renamed-files-alist): Revert 2014-08-09 change.
(authors): Sort authors in utf-8 order. (Bug#2263)
2014-08-09 Reuben Thomas <>
* notes/copyright: Remove mention of msdos/is_exec.c and
......@@ -92,6 +92,7 @@ files.")
("Joseph Arceneaux" "Joe Arceneaux")
("Joseph M. Kelsey" "Joe Kelsey") ; FIXME ?
("Juan León Lahoz García" "Juan-Leon Lahoz Garcia")
("Jürgen Hötzel" "Juergen Hoetzel")
("K. Shane Hartman" "Shane Hartman")
("Kai Großjohann" "Kai Grossjohann")
("Karl Berry" "K. Berry")
......@@ -120,6 +121,7 @@ files.")
("Mikio Nakajima" "Nakajima Mikio")
("Nelson Jose dos Santos Ferreira" "Nelson Ferreira")
("Noorul Islam" "Noorul Islam K M")
;;; ("Tetsurou Okazaki" "OKAZAKI Tetsurou") ; FIXME?
("Paul Eggert" "Paul R\\. Eggert")
("Pavel Janík" "Pavel Janík Ml." "Pavel Janik Ml." "Pavel Janik")
("Pavel Kobiakov" "Pavel Kobyakov")
......@@ -142,6 +144,7 @@ files.")
("Sam Steingold" "Sam Shteingold")
("Satyaki Das" "Indexed search by Satyaki Das")
("Sébastien Vauban" "Sebastien Vauban")
("Sergey Litvinov" "Litvinov Sergey")
;; There are other Stefans.
;;; ("Stefan Monnier" "Stefan")
("Steven L. Baur" "SL Baur" "Steven L Baur")
......@@ -177,11 +180,13 @@ If REALNAME is nil, ignore that author.")
;; FIXME seems it would be less fragile to check for O', Mc, etc.
(defconst authors-fixed-case
'("Brian van den Broek"
'("Barry O'Reilly"
"Brian van den Broek"
"Bryan O'Sullivan"
"Christian von Roques"
"Christophe de Dinechin"
"Craig McDaniel"
"Daniel LaLiberte"
"David J. MacKenzie"
"David McCabe"
"David O'Toole"
......@@ -189,12 +194,16 @@ If REALNAME is nil, ignore that author.")
"Dominique de Waleffe"
"Edward O'Connor"
"Exal de Jesus Garcia Carrillo"
"George McNinch"
"Greg McGary"
"Hans de Graaff"
"Ivan Vilata i Balaguer"
"Jae-hyeon Park"
"James TD Smith"
"Jay McCarthy"
"Joel N. Weber II"
"Matt McClure"
"Mike McLean"
"Michael McNamara"
"Mike McEwan"
"Nelson Jose dos Santos Ferreira"
......@@ -202,10 +211,13 @@ If REALNAME is nil, ignore that author.")
"Peter O'Gorman"
"Piet van Oostrum"
"Roland McGrath"
"Santiago Payà i Miralta"
"Sean O'Halpin"
"Sean O'Rourke"
"Shun-ichi Goto"
"Thomas DeWeese"
"Tijs van Bakel")
"Tijs van Bakel"
"Yu-ji Hosokawa")
"List of authors whose names cannot be simply capitalized.")
(defvar authors-public-domain-files
......@@ -230,6 +242,7 @@ If REALNAME is nil, ignore that author.")
'(".*loaddefs.el$" ; not obsolete, but auto-generated
"\\.\\(cvs\\|git\\)ignore$" ; obsolete or uninteresting
"automated/data/" ; not interesting
;; TODO lib/? Matches other things?
"build-aux/" "m4/" "Emacs.xcodeproj" "mapfiles" "\\.map\\'"
......@@ -239,6 +252,11 @@ gnus-booklet\\|fr-drdref\\)\\.p\\(df\\|s\\)\\'")
"List of regexps matching obsolete files.
Changes to files matching one of the regexps in this list are not listed.")
(defconst authors-no-scan-regexps
"Lists of regexps matching files not to scan for authorship.")
(defconst authors-ignored-files
"lock" "share-lib" "local-lisp"
......@@ -283,6 +301,7 @@ Changes to files matching one of the regexps in this list are not listed.")
;; Never had any meaningful changes logged, now deleted:
"lib/" "lib/"
"unidata/bidimirror.awk" "unidata/biditype.awk"
"split-man" "Xkeymap.txt" "ms-7bkermit" "ulimit.hack"
"gnu-hp300" "refcard.bit" "ledit.l" "forms.README" "forms-d2.dat"
......@@ -575,9 +594,10 @@ Changes to files in this list are not listed.")
;; There were a few of these, not just the generated top-level one.
"configure" "config.h"
"is_exec.c" "sigaction.c"
;; nt/
"ebuild.bat" "install.bat" "fast-install.bat"
"" ""
"" "" "addsection.c"
"inc/sys/dir.h" "inc/gettext.h"
......@@ -631,6 +651,8 @@ Changes to files in this list are not listed.")
"mh-exec.el" "mh-init.el" "mh-customize.el"
"net/zone-mode.el" "xesam.el"
"term/mac-win.el" "sup-mouse.el"
"term/vt102.el" "term/vt201.el" "term/vt220.el" "term/vt300.el"
"term/vt320.el" "term/vt400.el" "term/vt420.el"
"org-mac-message.el" "org-mew.el" "org-w3m.el" "org-vm.el" "org-wl.el"
"org-mks.el" "org-remember.el" "org-xoxo.el" "org-docbook.el"
......@@ -638,6 +660,7 @@ Changes to files in this list are not listed.")
"org-exp-blocks.el" ; maybe this is ob-exp now? dunno
"org-special-blocks.el" "org-taskjuggler.el"
;; gnus
"nnwfm.el" "nnlistserv.el" "nnkiboze.el" "nndb.el" "nnsoup.el"
"netrc.el" "password.el" "sasl-cram.el" "sasl-digest.el" "sasl-ntlm.el"
......@@ -712,6 +735,7 @@ in the repository.")
("server.c" . "emacsserver.c")
("lib-src/etags.c" . "etags.c")
;; msdos/
("is-exec.c" . "is_exec.c")
("enriched.doc" . "enriched.txt")
......@@ -755,6 +779,13 @@ in the repository.")
;; Obsolete.
("emacs-lisp/assoc.el" . "assoc.el")
("emacs-lisp/cust-print.el" . "cust-print.el")
("emacs-lisp/gulp.el" . "gulp.el")
("emulation/crisp.el" . "crisp.el")
("emulation/tpu-edt.el" . "tpu-edt.el")
("emulation/tpu-extras.el" . "tpu-extras.el")
("emulation/vi.el" . "vi.el")
("emulation/vip.el" . "vip.el")
("emulation/ws-mode.el" . "ws-mode.el")
("mail/mailpost.el" . "mailpost.el")
("play/bruce.el" . "bruce.el")
("play/yow.el" . "yow.el")
......@@ -768,6 +799,7 @@ in the repository.")
;; The one in lisp is eshell/eshell.el.
("eshell.el" . "automated/eshell.el")
("eshell/esh-test.el" . "automated/eshell.el")
("automated/package-x-test.el" . "automated/package-test.el")
......@@ -786,6 +818,8 @@ in the repository.")
("emacs.tex" . "emacs.texi")
("faq.texi" . "efaq.texi")
("major.texi" . "modes.texi")
("msdog-xtra.texi" . "msdos-xtra.texi")
("msdog.texi" . "msdos.texi")
;; And from emacs/ to misc/ and back again.
("ns-emacs.texi" . "macos.texi")
("overrides.texi" . "gnus-overrides.texi")
......@@ -824,6 +858,8 @@ in the repository.")
("autogen/update_autogen" . "update_autogen")
;; Moved from etc/ to admin/.
("grammars" . "grammars")
;; Moved from lisp/emacs-lisp/ to admin/.
("emacs-lisp/authors.el" . "authors.el")
;; From etc to lisp/cedet/semantic/.
("grammars/bovine-grammar.el" . "bovine/grammar.el")
("grammars/wisent-grammar.el" . "wisent/grammar.el")
......@@ -1050,6 +1086,15 @@ from `authors-obsolete-files-regexps'."
regexps (cdr regexps)))
(defun authors-no-scan-file-p (file)
"Return non-nil if FILE should not be scanned.
FILE is not scanned if it matches any of `authors-no-scan-regexps'."
(let (no-scan-p
(regexps authors-no-scan-regexps))
(while (and regexps (not no-scan-p))
(setq no-scan-p (string-match-p (car regexps) file)
regexps (cdr regexps)))
(defun authors-add (author file action table)
"Record that AUTHOR worked on FILE.
......@@ -1281,8 +1326,9 @@ buffer *Authors Errors* containing references to unknown files."
(authors-scan-change-log log table)))
(let ((els (process-lines find-program root "-name" "*.el")))
(dolist (file els)
(message "Scanning %s..." file)
(authors-scan-el file table)))
(unless (authors-no-scan-file-p file)
(message "Scanning %s..." file)
(authors-scan-el file table))))
(message "Generating buffer %s..." buffer-name)
(set-buffer (get-buffer-create buffer-name))
......@@ -1296,7 +1342,11 @@ list of their contributions.\n")
(maphash #'authors-add-to-author-list table)
(setq authors-author-list
(sort authors-author-list
(lambda (a b) (string-lessp (car a) (car b)))))
(lambda (a b)
(string-collate-lessp (car a) (car b)
(if (eq system-type 'windows-nt)
(dolist (a authors-author-list)
(let ((author (car a))
(wrote (nth 1 a))
......@@ -149,13 +149,15 @@ General steps (for each step, check for possible errors):
11. Send an announcement to: emacs-devel, and bcc:
For a pretest, also bcc:
For a release, also bcc:
(The reason for using bcc: is to make it less likely that people
will followup on the wrong list.)
See the info-gnu-emacs mailing list archives for the form
of past announcements. The first pretest announcement, and the
release announcement, should have more detail.
12. For a release, update the Emacs homepage in the web repository.
Also update history.html, and add the new NEWS file as NEWS.xx.y.
12. For a release, update the Emacs homepage emacs.html in the web repository.
Also update history.html, and add the new NEWS file as news/NEWS.xx.y.
Regenerate the html manuals (use make-manuals from admin.el).
If there are new manuals, add appropriate index pages.
Delete any old manual pages that are no longer present.
......@@ -37,9 +37,9 @@ GNULIB_MODULES='
pipe2 pselect pthread_sigmask putenv qacl readlink readlinkat
sig2str socklen stat-time stdalign stdio
strftime strtoimax strtoumax symlink sys_stat
sys_time time timer-time timespec-add timespec-sub
sys_time time time_r timer-time timespec-add timespec-sub
unsetenv update-copyright utimens
vla warnings
......@@ -307,6 +307,18 @@ When finished, use
or simply delete the entire branch if you created it just for this.
** Some tips for speeding up bisections:
*** Use ./configure --without-all --cache-file=/tmp/config.cache
(assuming the thing you are testing for does not need a feature that
--without-all disables).
*** Rather than `make', use `make -C lib && make -C src bootstrap-emacs
&& make -C src emacs', to avoid compiling the non-essential lisp files
(unless the thing you are testing for only shows up in compiled files;
if so compile just the relevant ones). Obviously use whatever make -j
option is appropriate for your system.
* Commit emails
** Old method: bzr-hookless-email
......@@ -28,12 +28,12 @@ top_srcdir = @top_srcdir@
top_builddir = @top_builddir@
EMACS = ${top_builddir}/src/emacs
DSTDIR = ${top_srcdir}/lisp/international
unidir = ${top_srcdir}/lisp/international
emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
.PHONY: all compile install
.PHONY: all unifiles
all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el
all: ${top_srcdir}/src/macuvs.h unifiles
## Specify .elc as an order-only prereq so as to not needlessly rebuild
## target just because the .elc is missing.
......@@ -50,31 +50,33 @@ ${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt | \
unidata.txt: ${srcdir}/UnicodeData.txt
sed -e 's/\([^;]*\);\(.*\)/(#x\1 "\2")/' -e 's/;/" "/g' < $< > $@
${DSTDIR}/charprop.el: ${srcdir}/unidata-gen.el ${srcdir}/UnicodeData.txt \
${srcdir}/BidiMirroring.txt ${srcdir}/BidiBrackets.txt | \
${unidir}/charprop.el: ${FORCE} ${