Merge from emacs-24; up to 2014-05-29T17:16:00Z!dmantipov@yandex.ru

This commit is contained in:
Glenn Morris 2014-06-01 17:18:22 -07:00
commit 953e106ac8
43 changed files with 28306 additions and 276 deletions

View file

@ -1,3 +1,13 @@
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Fix port to 32-bit AIX with xlc (Bug#17598).
This doesn't fix Bug#17598, but it does fix a regression since Emacs
built with xlc until recently, and perhaps it'll help us fix Bug#17598.
* configure.ac (GC_SETJMP_WORKS): Define for AIX, too.
Merge from gnulib, incorporating:
2014-05-30 ftoastr: work around compiler bug in IBM xlc 12.1
* lib/ftoastr.c: Update from gnulib.
2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
Merge from gnulib, incorporating:

View file

@ -1,3 +1,17 @@
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Include sources used to create macuvs.h.
* unidata/IVD_Sequences.txt: New file.
* unidata/Makefile.in (${top_srcdir}/src/macuvs.h): New rule.
(all): Build it.
(extraclean): Remove it.
* unidata/README: Mention BidiMirroring.txt and IVD_Sequences.txt.
* unidata/copyright.html: Update to current version from Unicode
Consortium.
* unidata/uvs.el: Rename from ../mac/uvs.el.
(uvs-print-table-ivd): Output a header in the form that
unidata-gen.el generates.
2014-05-25 YAMAMOTO Mitsuharu <mituharu@math.s.chiba-u.ac.jp>
* mac/uvs.el: New file from Mac port. Generates src/macuvs.h.

View file

@ -2,7 +2,9 @@ Tasks needed before the next release.
* TO BE DONE SHORTLY BEFORE RELEASE
** Either update, test, and support the old w32 build method, or remove it.
** Make sure the necessary sources and scripts for any generated files
are included in the source tarfile. (They don't need to be installed,
so eg admin/ is fine.)
** Manuals
Check for node names using problematic characters:

File diff suppressed because it is too large Load diff

View file

@ -33,7 +33,12 @@ emacs = "${EMACS}" -batch --no-site-file --no-site-lisp
.PHONY: all compile install
all: ${DSTDIR}/charprop.el
all: ${top_srcdir}/src/macuvs.h ${DSTDIR}/charprop.el
${top_srcdir}/src/macuvs.h: ${srcdir}/uvs.el ${srcdir}/IVD_Sequences.txt
${EMACS} -batch -l "${srcdir}/uvs.el" \
--eval '(uvs-print-table-ivd "${srcdir}/IVD_Sequences.txt" "Adobe-Japan1")' \
> $@
.el.elc:
${emacs} -f batch-byte-compile $<
@ -82,6 +87,7 @@ maintainer-clean: distclean
## change and it slows down bootstrap (a tiny bit).
## Cf leim/ja-dic (which is much slower).
extraclean:
rm -f ${top_srcdir}/src/macuvs.h
if test -f ${DSTDIR}/charprop.el; then \
(cd ${DSTDIR} && rm -f `sed -n 's/^;; FILE: //p' < charprop.el`); \
rm -f ${DSTDIR}/charprop.el; \

View file

@ -1,4 +1,18 @@
The file `UnicodeData.txt' in this directory is a copy of
<http://www.unicode.org/Public/UNIDATA/UnicodeData.txt> on 2012.04.07,
and is a part of the Unicode Character Database governed by the "UCD
Terms of Use" shown in the file `copyright.html'.
Some files in this directory are taken from the Unicode Character
Database and the Unicode Ideographic Variation Database. These files
are governed by the Unicode Terms of Use contained in the file
copyright.html.
The names, URLs, and dates for these files are as follows.
BidiMirroring.txt
http://www.unicode.org/Public/6.3.0/ucd/BidiMirroring.txt
2013-02-12
IVD_Sequences.txt
http://www.unicode.org/ivd/data/2012-03-02/IVD_Sequences.txt
2012-03-02
UnicodeData.txt
http://www.unicode.org/Public/UNIDATA/UnicodeData.txt
2012-04-07

View file

@ -5,37 +5,32 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Language" content="en-us">
<meta name="VI60_defaultClientScript" content="JavaScript">
<meta name="GENERATOR" content="Microsoft FrontPage 12.0">
<meta name="keywords" content="Unicode Standard, copyright">
<meta name="ProgId" content="FrontPage.Editor.Document">
<title>Unicode Terms of Use</title>
<link rel="stylesheet" type="text/css"
href="http://www.unicode.org/webscripts/standard_styles.css">
</head>
<style type="text/css">
pre {
FONT-FAMILY: Arial, Geneva, sans-serif;
}
</style>
</head>
<body text="#330000">
<table width="100%" cellpadding="0" cellspacing="0" border="0">
<tr>
<td colspan="2">
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td class="icon"><a href="http://www.unicode.org/"><img border="0"
@ -136,7 +131,7 @@ <h1>Unicode Terms of Use</h1>
<ol type="A">
<li><u><a name="1"></a>Unicode Copyright.</u>
<ol>
<li>Copyright © 1991-2013 Unicode, Inc. All rights reserved.</li>
<li>Copyright © 1991-2014 Unicode, Inc. All rights reserved.</li>
<li>Certain documents and files on this website contain a legend
indicating that &quot;Modification is permitted.&quot; Any person is
hereby authorized, without fee, to modify such documents and
@ -249,40 +244,72 @@ <h1>Unicode Terms of Use</h1>
</ol>
</blockquote>
<hr width="95%">
<blockquote>
<h3 align="center"><a name="Exhibit1">EXHIBIT 1</a><br>
UNICODE, INC. LICENSE AGREEMENT - DATA FILES AND SOFTWARE</h3>
<blockquote>
<p>Unicode Data Files include all data files under the directories
<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>,
and
<a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
http://www.unicode.org/cldr/data/</a>. Unicode Data Files do not include PDF online code charts under the directory <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>. Software includes any source code
published in the Unicode Standard or under the directories <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>,
and
<a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
<p>Unicode Data Files include all data files under the directories
<a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>, <a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>, and <a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
http://www.unicode.org/cldr/data/</a>.
Unicode Data Files do not include PDF online code charts under the
directory <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>.
Software includes any source code published in the Unicode Standard
or under the directories <a href="http://www.unicode.org/Public/">http://www.unicode.org/Public/</a>,
<a href="http://www.unicode.org/reports/">http://www.unicode.org/reports/</a>, and <a title="http://www.unicode.org/cldr/data/" onClick="return top.js.OpenExtLink(window,event,this)" target="_blank" href="http://www.unicode.org/cldr/data/">
http://www.unicode.org/cldr/data/</a>.</p>
<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>
<p>COPYRIGHT AND PERMISSION NOTICE</p>
<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>
<p>Copyright © 1991-2013 Unicode, Inc. All rights reserved. Distributed under the Terms of Use in
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.</p>
<div align="center">
<p>Permission is hereby granted, free of charge, to any person obtaining a copy of the Unicode data files and
any associated documentation (the "Data Files") or Unicode software and any associated documentation (the "Software") to deal in the Data Files or Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, and/or sell copies of the Data Files or Software, and to permit persons to whom the Data Files or Software are furnished to do so, provided that (a) the above copyright notice(s) and this permission notice appear
with all copies of the Data Files or Software, (b) both the above copyright notice(s) and this permission notice appear in associated documentation, and (c) there is clear notice in each modified Data File or in the Software as well as in the documentation associated with the Data File(s) or Software that the data or software has been modified.</p>
<table class="simple"><tr><td>
<pre>COPYRIGHT AND PERMISSION NOTICE
<p>THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.</p>
Copyright © 1991-2014 Unicode, Inc. All rights reserved.
Distributed under the Terms of Use in
<a href="http://www.unicode.org/copyright.html">http://www.unicode.org/copyright.html</a>.
<p>Except as contained in this notice, the name of a copyright holder shall not be used in advertising or otherwise to promote the sale, use or other dealings in these Data Files or Software without prior written authorization of the copyright holder.</p>
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation
(the "Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software
without restriction, including without limitation the rights to use,
copy, modify, merge, publish, distribute, and/or sell copies of
the Data Files or Software, and to permit persons to whom the Data Files
or Software are furnished to do so, provided that
(a) this copyright and permission notice appear with all copies
of the Data Files or Software,
(b) this copyright and permission notice appear in associated
documentation, and
(c) there is clear notice in each modified Data File or in the Software
as well as in the documentation associated with the Data File(s) or
Software that the data or software has been modified.
<hr width="80%">
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS
NOTICE BE LIABLE FOR ANY CLAIM, OR ANY SPECIAL INDIRECT OR CONSEQUENTIAL
DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THE DATA FILES OR SOFTWARE.
<p>Unicode and the Unicode logo are trademarks of Unicode, Inc. in the United States and other countries. All third party trademarks referenced herein are the property of their respective owners.</p>
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale,
use or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.</pre>
</td></tr></table>
</div>
</blockquote>

View file

@ -200,6 +200,7 @@ corresponding number."
(insert-file-contents filename)
(setq uvs-alist (uvs-alist-from-ivd collection-id
sequence-id-to-glyph-func)))))
(princ "/* Automatically generated by uvs.el. */\n")
(princ
(format "static const unsigned char mac_uvs_table_%s_bytes[] =\n {\n"
(replace-regexp-in-string "[^_[:alnum:]]" "_"

View file

@ -4332,7 +4332,7 @@ if test x$GCC = xyes; then
else
case $opsys in
dnl irix: Tested on Irix 6.5. SCM worked on earlier versions.
dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* )
aix* | dragonfly | freebsd | netbsd | openbsd | irix6-5 | sol2* )
AC_DEFINE(GC_SETJMP_WORKS, 1)
;;
esac

View file

@ -1,3 +1,10 @@
2014-06-02 Glenn Morris <rgm@gnu.org>
* macos.texi (Mac / GNUstep Customization): Mention ns custom group.
(Customization options specific to Mac OS / GNUstep): Remove section.
* abbrevs.texi (Expanding Abbrevs): Update re abbrev-expand-function.
2014-05-26 Eli Zaretskii <eliz@gnu.org>
* frames.texi (Fonts): Clarify which frames are affected by

View file

@ -206,8 +206,9 @@ to turn on Abbrev mode first. It may also be useful together with a
special set of abbrev definitions for making several global replacements at
once. This command is effective even if Abbrev mode is not enabled.
Expanding any abbrev runs @code{abbrev-expand-functions}, a special
hook. Functions in this special hook can make arbitrary changes to
The function @code{expand-abbrev} performs the expansion by calling
the function that @code{abbrev-expand-function} specifies. By
changing this function you can make arbitrary changes to
the abbrev expansion. @xref{Abbrev Expansion,,, elisp, The Emacs Lisp
Reference Manual}.

View file

@ -90,9 +90,10 @@ of setting PATH is recommended on Mac OS X 10.5 and later, using the
@node Mac / GNUstep Customization
@section Mac / GNUstep Customization
Emacs can be customized in several ways in addition to the standard
customization buffers and the Options menu.
There are a few customization options that are specific to the
Nextstep port. For example, they affect things such as the modifier
keys and the fullscreen behavior. To see all such options, use
@kbd{M-x customize-group @key{RET} ns @key{RET}}.
@subsection Font and Color Panels
@ -116,16 +117,14 @@ close the altered one.
Useful in this context is the listing of all faces obtained by
@kbd{M-x list-faces-display}.
@subsection Customization options specific to Mac OS / GNUstep
@cindex Core Text, on Mac OS X
In Mac OS X 10.5 and later, Emacs uses a Core Text based font backend
by default. If you prefer the older font style, enter the following
at the command-line before starting Emacs:
The following customization options are specific to the Nextstep port.
@table @code
@item ns-auto-hide-menu-bar
Non-nil means the menu-bar is hidden by default, but appears if you
move the mouse pointer over it. (Requires Mac OS X 10.6 or later.)
@end table
@example
% defaults write org.gnu.Emacs FontBackend ns
@end example
@node Mac / GNUstep Events

View file

@ -1,3 +1,11 @@
2014-06-02 Glenn Morris <rgm@gnu.org>
* text.texi (Buffer Contents):
Update for filter-buffer-substring changes.
* abbrevs.texi (Abbrev Expansion): Update for expand-abbrev changes.
* functions.texi (Advising Functions): Standardize menu case.
2014-05-26 Eli Zaretskii <eliz@gnu.org>
* display.texi (Invisible Text): Clarify the description of

View file

@ -257,13 +257,16 @@ as in @code{abbrev-symbol}.
@deffn Command expand-abbrev
This command expands the abbrev before point, if any. If point does not
follow an abbrev, this command does nothing. The command returns the
abbrev symbol if it did expansion, @code{nil} otherwise.
follow an abbrev, this command does nothing. To do the expansion, it
calls the function that is the value of the @code{abbrev-expand-function}
variable, with no arguments, and returns whatever that function does.
If the abbrev symbol has a hook function that is a symbol whose
@code{no-self-insert} property is non-@code{nil}, and if the hook
function returns @code{nil} as its value, then @code{expand-abbrev}
returns @code{nil} even though expansion did occur.
The default expansion function returns the abbrev symbol if it did
expansion, and @code{nil} otherwise. If the abbrev symbol has a hook
function that is a symbol whose @code{no-self-insert} property is
non-@code{nil}, and if the hook function returns @code{nil} as its
value, then the default expansion function returns @code{nil},
even though expansion did occur.
@end deffn
@defun abbrev-insert abbrev &optional name start end
@ -331,24 +334,21 @@ has already been unexpanded. This contains information left by
@code{expand-abbrev} for the sake of the @code{unexpand-abbrev} command.
@end defvar
@defvar abbrev-expand-functions
This is a wrapper hook (@pxref{Running Hooks}) run around the
@code{expand-abbrev} function. Each function on this hook is called
with a single argument: a function that performs the normal abbrev
expansion. The hook function can hence do anything it wants before
and after performing the expansion. It can also choose not to call
its argument, thus overriding the default behavior; or it may even
call it several times. The function should return the abbrev symbol
if expansion took place.
@defvar abbrev-expand-function
The value of this variable is a function that @code{expand-abbrev}
will call with no arguments to do the expansion. The function can do
anything it wants before and after performing the expansion.
It should return the abbrev symbol if expansion took place.
@end defvar
The following sample code shows a simple use of
@code{abbrev-expand-functions}. It assumes that @code{foo-mode} is a
@code{abbrev-expand-function}. It assumes that @code{foo-mode} is a
mode for editing certain files in which lines that start with @samp{#}
are comments. You want to use Text mode abbrevs for those lines. The
regular local abbrev table, @code{foo-mode-abbrev-table} is
appropriate for all other lines. @xref{Standard Abbrev Tables}, for the
definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}.
@xref{Advising Functions}, for details of @code{add-function}.
@smallexample
(defun foo-mode-abbrev-expand-function (expand)
@ -361,9 +361,8 @@ definitions of @code{local-abbrev-table} and @code{text-mode-abbrev-table}.
(add-hook 'foo-mode-hook
#'(lambda ()
(add-hook 'abbrev-expand-functions
'foo-mode-abbrev-expand-function
nil t)))
(add-function :around (local 'abbrev-expand-function)
#'foo-mode-abbrev-expand-function)))
@end smallexample
@node Standard Abbrev Tables

View file

@ -1207,10 +1207,10 @@ specify how the two functions are composed, since there are many different
ways to do it. The added function is also called an @emph{advice}.
@menu
* Core Advising Primitives:: Primitives to Manipulate Advices
* Advising Named Functions:: Advising Named Functions
* Advice combinators:: Ways to compose advices
* Porting old advices:: Adapting code using the old defadvice
* Core Advising Primitives:: Primitives to manipulate advice.
* Advising Named Functions:: Advising named functions.
* Advice combinators:: Ways to compose advice.
* Porting old advices:: Adapting code using the old defadvice.
@end menu
@node Core Advising Primitives

View file

@ -240,11 +240,9 @@ choose-completion-string-functions
completing-read-function
completion-annotate-function
completion-at-point-functions
completion-in-region-functions
completion-list-insert-choice-function
deactivate-current-input-method-function
describe-current-input-method-function
filter-buffer-substring-functions
font-lock-function
menu-bar-select-buffer-function
read-file-name-function

View file

@ -220,15 +220,17 @@ the current buffer, as a string.
@end defun
@defun filter-buffer-substring start end &optional delete
This function passes the buffer text between @var{start} and @var{end}
through the filter functions specified by the wrapper hook
@code{filter-buffer-substring-functions}, and returns the result. The
obsolete variable @code{buffer-substring-filters} is also consulted.
If both of these variables are @code{nil}, the value is the unaltered
text from the buffer, i.e., what @code{buffer-substring} would
return.
This function filters the buffer text between @var{start} and @var{end}
using a function specified by the variable
@code{filter-buffer-substring-function}, and returns the result.
If @var{delete} is non-@code{nil}, this function deletes the text
The default filter function consults the obsolete wrapper hook
@code{filter-buffer-substring-functions}, and the obsolete variable
@code{buffer-substring-filters}. If both of these are @code{nil}, it
returns the unaltered text from the buffer, i.e., what
@code{buffer-substring} would return.
If @var{delete} is non-@code{nil}, the function deletes the text
between @var{start} and @var{end} after copying it, like
@code{delete-and-extract-region}.
@ -236,20 +238,29 @@ Lisp code should use this function instead of @code{buffer-substring},
@code{buffer-substring-no-properties},
or @code{delete-and-extract-region} when copying into user-accessible
data structures such as the kill-ring, X clipboard, and registers.
Major and minor modes can add functions to
@code{filter-buffer-substring-functions} to alter such text as it is
copied out of the buffer.
Major and minor modes can modify @code{filter-buffer-substring-function}
to alter such text as it is copied out of the buffer.
@end defun
@c FIXME: `filter-buffer-substring-function' should be documented.
@defvar filter-buffer-substring-function
The value of this variable is a function that @code{filter-buffer-substring}
will call to do the actual work. The function receives three
arguments, the same as those of @code{filter-buffer-substring},
which it should treat as per the documentation of that function. It
should return the filtered text (and optionally delete the source text).
@end defvar
@noindent The following two variables are obsoleted by
@code{filter-buffer-substring-function}, but are still supported for
backward compatibility.
@defvar filter-buffer-substring-functions
This variable is a wrapper hook (@pxref{Running Hooks}), whose members
should be functions that accept four arguments: @var{fun},
@var{start}, @var{end}, and @var{delete}. @var{fun} is a function
that takes three arguments (@var{start}, @var{end}, and @var{delete}),
and returns a string. In both cases, the @var{start}, @var{end}, and
@var{delete} arguments are the same as those of
@code{filter-buffer-substring}.
This obsolete variable is a wrapper hook, whose members should be functions
that accept four arguments: @var{fun}, @var{start}, @var{end}, and
@var{delete}. @var{fun} is a function that takes three arguments
(@var{start}, @var{end}, and @var{delete}), and returns a string. In
both cases, the @var{start}, @var{end}, and @var{delete} arguments are
the same as those of @code{filter-buffer-substring}.
The first hook function is passed a @var{fun} that is equivalent to
the default operation of @code{filter-buffer-substring}, i.e., it
@ -263,14 +274,12 @@ hook functions acting in sequence.
@end defvar
@defvar buffer-substring-filters
This variable is obsoleted by
@code{filter-buffer-substring-functions}, but is still supported for
backward compatibility. Its value should should be a list of
functions which accept a single string argument and return another
string. @code{filter-buffer-substring} passes the buffer substring to
the first function in this list, and the return value of each function
is passed to the next function. The return value of the last function
is passed to @code{filter-buffer-substring-functions}.
The value of this obsolete variable should be a list of functions
that accept a single string argument and return another string.
The default @code{filter-buffer-substring} function passes the buffer
substring to the first function in this list, and the return value of
each function is passed to the next function. The return value of the
last function is passed to @code{filter-buffer-substring-functions}.
@end defvar
@defun current-word &optional strict really-word

View file

@ -1492,6 +1492,7 @@ This is like the old `eval-after-load', but better behaved.
*** `generic-make-keywords-list'
*** `get-upcase-table' (use `case-table-get-table' instead).
+++
** `with-wrapper-hook' is obsoleted by `add-function'.
The few hooks that used with-wrapper-hook are replaced as follows:
*** `abbrev-expand-function' obsoletes `abbrev-expand-functions'.
@ -1729,19 +1730,21 @@ edited in another Emacs session or by another user. See the node
"Interlocking" in the Emacs User Manual for the details. To disable
file locking, customize `create-lockfiles' to nil.
+++
** New Core Text based font backend for Mac OS X 10.5 and newer.
To use the old font backend, use the following on the command line:
% defaults write org.gnu.Emacs FontBackend ns
GNUstep and Mac OS X 10.4 use the old font backend.
To use the old backend by default, do on the command line:
% defaults write org.gnu.Emacs FontBackend ns
** Improved fullscreen support on Mac OS X.
Emacs supports both native (Mac OS X 10.7 and newer) and "old style" fullscreen.
Customize `ns-use-native-fullscreen' to change the style.
For Mac OS X 10.7 and newer, native is the default.
---
** Improved fullscreen support on Mac OS X 10.7 and newer, where the
default fullscreen method is now "native" fullscreen. To use the
old style fullscreen, customize `ns-use-native-fullscreen' to nil.
** On Mac OS X 10.7 and newer, Emacs uses sRGB colorspace by default.
Customize `ns-use-srgb-colorspace' to disable this. Note that this
does not apply to images.
---
** On Mac OS X 10.7 and newer, Emacs can use sRGB colorspace, and does so
by default. Customize `ns-use-srgb-colorspace' to go back to the old method.
Note that this does not apply to images.
* Installation Changes in Emacs 24.3

View file

@ -1,3 +1,75 @@
2014-06-02 Eli Zaretskii <eliz@gnu.org>
* simple.el (keyboard-quit): Force update of mode lines, to remove
the "Def" indicator, if we were defining a macro. (Bug#17615)
2014-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
* minibuffer.el (minibuffer-force-complete-and-exit):
Obey minibuffer-default (bug#17545).
* progmodes/js.el (js-indent-line): Don't mix columns and chars
(bug#17619).
* subr.el (set-transient-map): Don't wait for some "nested"
transient-map to finish if we're only supposed to be active for
the next command (bug#17642).
2014-06-02 Leo Liu <sdl.web@gmail.com>
* emacs-lisp/gv.el (window-buffer, window-display-table)
(window-dedicated-p, window-hscroll, window-point, window-start):
Fix gv-expander. (Bug#17630)
2014-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
* mouse.el (mouse-posn-property): Ignore posn-point for mode-line
clicks (bug#17633).
* leim/quail/latin-pre.el ("latin-2-prefix"): Use ",," rather than ", "
for the single comma, since ", " is *very* common in normal French text
(bug#17643).
2014-06-02 Glenn Morris <rgm@gnu.org>
* emacs-lisp/package.el (package-check-signature)
(package-unsigned-archives): Fix :version.
2014-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
* subr.el (sit-for): Don't run input-methods (bug#15614).
2014-06-02 Glenn Morris <rgm@gnu.org>
* cus-start.el: Fix some :version numbers.
2014-06-02 Stefan Monnier <monnier@iro.umontreal.ca>
* simple.el (deactivate-mark): Set mark-active to nil even if
deactivation is done via setting transient-mark-mode to nil,
since one is buffer-local and the other is global.
* emacs-lisp/byte-opt.el (byte-optimize-binary-predicate): Don't assume
there can't be more than 2 arguments (bug#17584).
2014-06-02 Glenn Morris <rgm@gnu.org>
* simple.el (filter-buffer-substring-functions)
(filter-buffer-substring-function, buffer-substring-filters)
(filter-buffer-substring, buffer-substring--filter): Doc fixes.
* minibuffer.el (completion-in-region-functions, completion-in-region)
(completion--in-region): Doc fixes.
* abbrev.el (abbrev-expand-functions, abbrev-expand-function)
(expand-abbrev, abbrev--default-expand): Doc fixes.
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Include sources used to create macuvs.h.
* international/README: Refer to the Unicode Terms of Use rather
than copying it bodily here, as that simplifies maintenance.
2014-06-01 Glenn Morris <rgm@gnu.org>
* loadup.el (load-prefer-newer): Set non-nil when dumping. (Bug#17629)

View file

@ -824,23 +824,28 @@ see `define-abbrev' for details."
value))
(defvar abbrev-expand-functions nil
"Wrapper hook around `expand-abbrev'.")
"Wrapper hook around `abbrev--default-expand'.")
(make-obsolete-variable 'abbrev-expand-functions 'abbrev-expand-function "24.4")
(defvar abbrev-expand-function #'abbrev--default-expand
"Function to perform abbrev expansion.
"Function that `expand-abbrev' uses to perform abbrev expansion.
Takes no argument and should return the abbrev symbol if expansion took place.")
(defun expand-abbrev ()
"Expand the abbrev before point, if there is an abbrev there.
Effective when explicitly called even when `abbrev-mode' is nil.
Returns the abbrev symbol, if expansion took place. (The actual
return value is that of `abbrev-insert'.)"
Before doing anything else, runs `pre-abbrev-expand-hook'.
Calls `abbrev-expand-function' with no argument to do the work,
and returns whatever it does. (This should be the abbrev symbol
if expansion occurred, else nil.)"
(interactive)
(run-hooks 'pre-abbrev-expand-hook)
(funcall abbrev-expand-function))
(defun abbrev--default-expand ()
"Default function to use for `abbrev-expand-function'.
This respects the wrapper hook `abbrev-expand-functions'.
Calls `abbrev-insert' to insert any expansion, and returns what it does."
(with-wrapper-hook abbrev-expand-functions ()
(pcase-let ((`(,sym ,name ,wordstart ,wordend) (abbrev--before-point)))
(when sym

View file

@ -366,7 +366,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
left)
(const control) (const meta)
(const alt) (const hyper)
(const super)) "24.0")
(const super)) "24.1")
(ns-command-modifier
ns
(choice (const :tag "No modifier" nil)
@ -380,7 +380,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
left)
(const control) (const meta)
(const alt) (const hyper)
(const super)) "24.0")
(const super)) "24.1")
(ns-alternate-modifier
ns
(choice (const :tag "No modifier (work as alternate/option)" none)
@ -402,7 +402,7 @@ Leaving \"Default\" unchecked is equivalent with specifying a default of
(const alt) (const hyper)
(const super)) "23.1")
(ns-antialias-text ns boolean "23.1")
(ns-auto-hide-menu-bar ns boolean "24.0")
(ns-auto-hide-menu-bar ns boolean "24.1")
(ns-use-native-fullscreen ns boolean "24.4")
(ns-use-srgb-colorspace ns boolean "24.4")
;; process.c

View file

@ -859,14 +859,16 @@
(defun byte-optimize-binary-predicate (form)
(if (macroexp-const-p (nth 1 form))
(if (macroexp-const-p (nth 2 form))
(condition-case ()
(list 'quote (eval form))
(error form))
;; This can enable some lapcode optimizations.
(list (car form) (nth 2 form) (nth 1 form)))
form))
(cond
((or (not (macroexp-const-p (nth 1 form)))
(nthcdr 3 form)) ;; In case there are more than 2 args.
form)
((macroexp-const-p (nth 2 form))
(condition-case ()
(list 'quote (eval form))
(error form)))
(t ;; This can enable some lapcode optimizations.
(list (car form) (nth 2 form) (nth 1 form)))))
(defun byte-optimize-predicate (form)
(let ((ok t)

View file

@ -340,13 +340,18 @@ The return value is the last VAL in the list.
(gv-define-simple-setter process-filter set-process-filter)
(gv-define-simple-setter process-sentinel set-process-sentinel)
(gv-define-simple-setter process-get process-put)
(gv-define-simple-setter window-buffer set-window-buffer)
(gv-define-simple-setter window-display-table set-window-display-table 'fix)
(gv-define-simple-setter window-dedicated-p set-window-dedicated-p)
(gv-define-simple-setter window-hscroll set-window-hscroll)
(gv-define-simple-setter window-parameter set-window-parameter)
(gv-define-simple-setter window-point set-window-point)
(gv-define-simple-setter window-start set-window-start)
(gv-define-setter window-buffer (v &optional w)
(macroexp-let2 nil v v
`(progn (set-window-buffer ,w ,v) ,v)))
(gv-define-setter window-display-table (v &optional w)
(macroexp-let2 nil v v
`(progn (set-window-display-table ,w ,v) ,v)))
(gv-define-setter window-dedicated-p (v &optional w)
`(set-window-dedicated-p ,w ,v))
(gv-define-setter window-hscroll (v &optional w) `(set-window-hscroll ,w ,v))
(gv-define-setter window-point (v &optional w) `(set-window-point ,w ,v))
(gv-define-setter window-start (v &optional w) `(set-window-start ,w ,v))
(gv-define-setter buffer-local-value (val var buf)
(macroexp-let2 nil v val

View file

@ -291,14 +291,14 @@ contrast, `package-user-dir' contains packages for personal use."
(const t :tag "Check always"))
:risky t
:group 'package
:version "24.1")
:version "24.4")
(defcustom package-unsigned-archives nil
"A list of archives which do not use package signature."
:type '(repeat (string :tag "Archive name"))
:risky t
:group 'package
:version "24.1")
:version "24.4")
(defvar package--default-summary "No description available.")

View file

@ -1,3 +1,8 @@
2014-06-02 Andreas Schwab <schwab@linux-m68k.org>
* html2text.el (html2text-get-attr): Fix typo when splitting value from
attribute. (Bug#17613)
2014-05-29 Stefan Monnier <monnier@iro.umontreal.ca>
* mm-view.el (mm-display-inline-fontify): Use font-lock-ensure.

View file

@ -204,7 +204,7 @@ formatting, and then moved afterward.")
;; size=3
((string-match "[^ ]=[^ ]" this)
(let ((attr (nth 0 (split-string this "=")))
(value (substring prev (1+ (string-match "=" this)))))
(value (substring this (1+ (string-match "=" this)))))
(setq attr-list (cons (list attr value) attr-list))))
;; size =3
((string-match "\\`=[^ ]" this)

View file

@ -9,40 +9,5 @@ Data File at http://www.unicode.org/Public/UNIDATA/UnicodeData.txt:
These files were generated from the version admin/unidata/UnicodeData.txt
in the Emacs sources, using the file unidata-gen.el in the same directory.
The file UnicodeData.txt is used under the terms of the following
Copyright and Permission Notice:
Copyright (C) 1991-2013 Unicode, Inc. All rights reserved. Distributed
under the Terms of Use in http://www.unicode.org/copyright.html.
Permission is hereby granted, free of charge, to any person obtaining
a copy of the Unicode data files and any associated documentation (the
"Data Files") or Unicode software and any associated documentation
(the "Software") to deal in the Data Files or Software without
restriction, including without limitation the rights to use, copy,
modify, merge, publish, distribute, and/or sell copies of the Data
Files or Software, and to permit persons to whom the Data Files or
Software are furnished to do so, provided that (a) the above copyright
notice(s) and this permission notice appear with all copies of the
Data Files or Software, (b) both the above copyright notice(s) and
this permission notice appear in associated documentation, and (c)
there is clear notice in each modified Data File or in the Software as
well as in the documentation associated with the Data File(s) or
Software that the data or software has been modified.
THE DATA FILES AND SOFTWARE ARE PROVIDED "AS IS", WITHOUT WARRANTY OF
ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT OF THIRD PARTY RIGHTS. IN NO EVENT SHALL THE COPYRIGHT
HOLDER OR HOLDERS INCLUDED IN THIS NOTICE BE LIABLE FOR ANY CLAIM, OR
ANY SPECIAL INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES
WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT
OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THE DATA FILES OR
SOFTWARE.
Except as contained in this notice, the name of a copyright holder
shall not be used in advertising or otherwise to promote the sale, use
or other dealings in these Data Files or Software without prior
written authorization of the copyright holder.
The file UnicodeData.txt is used under the Unicode Terms of Use,
contained in the file admin/unidata/copyright.html.

View file

@ -306,7 +306,7 @@ Key translation rules are:
("~ " ?~)
(",C" )
(",c" )
(", " ?,)
(",," ?,)
)
(quail-define-package

View file

@ -1224,12 +1224,16 @@ scroll the window of possible completions."
(defun minibuffer-force-complete-and-exit ()
"Complete the minibuffer with first of the matches and exit."
(interactive)
(minibuffer-force-complete)
(completion--complete-and-exit
(minibuffer-prompt-end) (point-max) #'exit-minibuffer
;; If the previous completion completed to an element which fails
;; test-completion, then we shouldn't exit, but that should be rare.
(lambda () (minibuffer-message "Incomplete"))))
(if (and (eq (minibuffer-prompt-end) (point-max))
minibuffer-default)
;; Use the provided default if there's one (bug#17545).
(minibuffer-complete-and-exit)
(minibuffer-force-complete)
(completion--complete-and-exit
(minibuffer-prompt-end) (point-max) #'exit-minibuffer
;; If the previous completion completed to an element which fails
;; test-completion, then we shouldn't exit, but that should be rare.
(lambda () (minibuffer-message "Incomplete")))))
(defun minibuffer-force-complete (&optional start end)
"Complete the minibuffer to an exact match.
@ -1878,14 +1882,14 @@ variables.")
(exit-minibuffer))
(defvar completion-in-region-functions nil
"Wrapper hook around `completion-in-region'.")
"Wrapper hook around `completion--in-region'.")
(make-obsolete-variable 'completion-in-region-functions
'completion-in-region-function "24.4")
(defvar completion-in-region-function #'completion--in-region
"Function to perform the job of `completion-in-region'.
The function is called with 4 arguments: START END COLLECTION PREDICATE.
The arguments and expected return value are like the ones of
The arguments and expected return value are as specified for
`completion-in-region'.")
(defvar completion-in-region--data nil)
@ -1903,10 +1907,12 @@ we entered `completion-in-region-mode'.")
(defun completion-in-region (start end collection &optional predicate)
"Complete the text between START and END using COLLECTION.
Return nil if there is no valid completion, else t.
Point needs to be somewhere between START and END.
PREDICATE (a function called with no arguments) says when to
exit."
PREDICATE (a function called with no arguments) says when to exit.
This calls the function that `completion-in-region-function' specifies
\(passing the same four arguments that it received) to do the work,
and returns whatever it does. The return value should be nil
if there was no valid completion, else t."
(cl-assert (<= start (point)) (<= (point) end))
(funcall completion-in-region-function start end collection predicate))
@ -1918,6 +1924,9 @@ exit."
:version "22.1")
(defun completion--in-region (start end collection &optional predicate)
"Default function to use for `completion-in-region-function'.
Its arguments and return value are as specified for `completion-in-region'.
This respects the wrapper hook `completion-in-region-functions'."
(with-wrapper-hook
;; FIXME: Maybe we should use this hook to provide a "display
;; completions" operation as well.
@ -1943,7 +1952,7 @@ exit."
"Keymap activated during `completion-in-region'.")
;; It is difficult to know when to exit completion-in-region-mode (i.e. hide
;; the *Completions*).
;; the *Completions*). Here's how previous packages did it:
;; - lisp-mode: never.
;; - comint: only do it if you hit SPC at the right time.
;; - pcomplete: pop it down on SPC or after some time-delay.

View file

@ -684,7 +684,10 @@ its value is returned."
(str (posn-string pos)))
(or (and str
(get-text-property (cdr str) property (car str)))
(and pt
;; FIXME: mouse clicks on the mode-line come with a position in
;; (nth 5). Maybe we should change the C code instead so that
;; mouse-clicks don't include a position there!
(and pt (not (memq (posn-area pos) '(mode-line header-line)))
(get-char-property pt property w))))
(get-char-property pos property)))

View file

@ -1907,7 +1907,7 @@ In particular, return the buffer position of the first `for' kwd."
(interactive)
(let* ((parse-status
(save-excursion (syntax-ppss (point-at-bol))))
(offset (- (current-column) (current-indentation))))
(offset (- (point) (save-excursion (back-to-indentation) (point)))))
(indent-line-to (js--proper-indentation parse-status))
(when (> offset 0) (forward-char offset))))

View file

@ -3554,46 +3554,50 @@ These commands include \\[set-mark-command] and \\[start-kbd-macro]."
(defvar filter-buffer-substring-functions nil
"This variable is a wrapper hook around `filter-buffer-substring'.")
"This variable is a wrapper hook around `buffer-substring--filter'.")
(make-obsolete-variable 'filter-buffer-substring-functions
'filter-buffer-substring-function "24.4")
(defvar filter-buffer-substring-function #'buffer-substring--filter
"Function to perform the filtering in `filter-buffer-substring'.
The function is called with 3 arguments:
\(BEG END DELETE). The arguments BEG, END, and DELETE are the same
as those of `filter-buffer-substring' in each case.
It should return the buffer substring between BEG and END, after filtering.")
The function is called with the same 3 arguments (BEG END DELETE)
that `filter-buffer-substring' received. It should return the
buffer substring between BEG and END, after filtering. If DELETE is
non-nil, it should delete the text between BEG and END from the buffer.")
(defvar buffer-substring-filters nil
"List of filter functions for `filter-buffer-substring'.
Each function must accept a single argument, a string, and return
a string. The buffer substring is passed to the first function
in the list, and the return value of each function is passed to
the next.
"List of filter functions for `buffer-substring--filter'.
Each function must accept a single argument, a string, and return a string.
The buffer substring is passed to the first function in the list,
and the return value of each function is passed to the next.
As a special convention, point is set to the start of the buffer text
being operated on (i.e., the first argument of `filter-buffer-substring')
being operated on (i.e., the first argument of `buffer-substring--filter')
before these functions are called.")
(make-obsolete-variable 'buffer-substring-filters
'filter-buffer-substring-function "24.1")
(defun filter-buffer-substring (beg end &optional delete)
"Return the buffer substring between BEG and END, after filtering.
The hook `filter-buffer-substring-function' performs the actual filtering.
By default, no filtering is done.
If DELETE is non-nil, delete the text between BEG and END from the buffer.
If DELETE is non-nil, the text between BEG and END is deleted
from the buffer.
This calls the function that `filter-buffer-substring-function' specifies
\(passing the same three arguments that it received) to do the work,
and returns whatever it does. The default function does no filtering,
unless a hook has been set.
This function should be used instead of `buffer-substring',
`buffer-substring-no-properties', or `delete-and-extract-region'
when you want to allow filtering to take place. For example,
major or minor modes can use `filter-buffer-substring-function' to
extract characters that are special to a buffer, and should not
be copied into other buffers."
Use `filter-buffer-substring' instead of `buffer-substring',
`buffer-substring-no-properties', or `delete-and-extract-region' when
you want to allow filtering to take place. For example, major or minor
modes can use `filter-buffer-substring-function' to extract characters
that are special to a buffer, and should not be copied into other buffers."
(funcall filter-buffer-substring-function beg end delete))
(defun buffer-substring--filter (beg end &optional delete)
"Default function to use for `filter-buffer-substring-function'.
Its arguments and return value are as specified for `filter-buffer-substring'.
This respects the wrapper hook `filter-buffer-substring-functions',
and the abnormal hook `buffer-substring-filters'.
No filtering is done unless a hook says to."
(with-wrapper-hook filter-buffer-substring-functions (beg end delete)
(cond
((or delete buffer-substring-filters)
@ -4496,17 +4500,13 @@ run `deactivate-mark-hook'."
(x-set-selection 'PRIMARY
(funcall region-extract-function nil)))))
(when mark-active (force-mode-line-update)) ;Refresh toolbar (bug#16382).
(if (and (null force)
(or (eq transient-mark-mode 'lambda)
(and (eq (car-safe transient-mark-mode) 'only)
(null (cdr transient-mark-mode)))))
;; When deactivating a temporary region, don't change
;; `mark-active' or run `deactivate-mark-hook'.
(setq transient-mark-mode nil)
(if (eq (car-safe transient-mark-mode) 'only)
(setq transient-mark-mode (cdr transient-mark-mode)))
(setq mark-active nil)
(run-hooks 'deactivate-mark-hook))
(cond
((eq (car-safe transient-mark-mode) 'only)
(setq transient-mark-mode (cdr transient-mark-mode)))
((eq transient-mark-mode 'lambda)
(setq transient-mark-mode nil)))
(setq mark-active nil)
(run-hooks 'deactivate-mark-hook)
(redisplay--update-region-highlight (selected-window))))
(defun activate-mark (&optional no-tmm)
@ -6681,6 +6681,10 @@ At top-level, as an editor command, this simply beeps."
(kmacro-keyboard-quit))
(when completion-in-region-mode
(completion-in-region-mode -1))
;; Force the next redisplay cycle to remove the "Def" indicator from
;; all the mode lines.
(if defining-kbd-macro
(force-mode-line-update t))
(setq defining-kbd-macro nil)
(let ((debug-on-quit nil))
(signal 'quit nil)))

View file

@ -2161,6 +2161,10 @@ where the optional arg MILLISECONDS specifies an additional wait period,
in milliseconds; this was useful when Emacs was built without
floating point support."
(declare (advertised-calling-convention (seconds &optional nodisp) "22.1"))
;; This used to be implemented in C until the following discussion:
;; http://lists.gnu.org/archive/html/emacs-devel/2006-07/msg00401.html
;; Then it was moved to C using an implementation based on an idle timer,
;; which was then replaced by the use of read-event.
(if (numberp nodisp)
(setq seconds (+ seconds (* 1e-3 nodisp))
nodisp obsolete)
@ -2178,7 +2182,12 @@ floating point support."
;; FIXME: we should not read-event here at all, because it's much too
;; difficult to reliably "undo" a read-event by pushing it onto
;; unread-command-events.
(let ((read (read-event nil t seconds)))
;; For bug#14782, we need read-event to do the keyboard-coding-system
;; decoding (hence non-nil as second arg under POSIX ttys).
;; For bug#15614, we need read-event not to inherit-input-method.
;; So we temporarily suspend input-method-function.
(let ((read (let ((input-method-function nil))
(read-event nil t seconds))))
(or (null read)
(progn
;; https://lists.gnu.org/archive/html/emacs-devel/2006-10/msg00394.html
@ -4318,28 +4327,28 @@ lookup sequence then continues."
;; in a cycle.
(fset clearfun
(suspicious-object
(lambda ()
(with-demoted-errors "set-transient-map PCH: %S"
(unless (cond
((not (eq map (cadr overriding-terminal-local-map)))
;; There's presumably some other transient-map in
;; effect. Wait for that one to terminate before we
;; remove ourselves.
;; For example, if isearch and C-u both use transient
;; maps, then the lifetime of the C-u should be nested
;; within isearch's, so the pre-command-hook of
;; isearch should be suspended during the C-u one so
;; we don't exit isearch just because we hit 1 after
;; C-u and that 1 exits isearch whereas it doesn't
;; exit C-u.
t)
((null keep-pred) nil)
((eq t keep-pred)
(eq this-command
(lookup-key map (this-command-keys-vector))))
(t (funcall keep-pred)))
(internal-pop-keymap map 'overriding-terminal-local-map)
(remove-hook 'pre-command-hook clearfun)
(lambda ()
(with-demoted-errors "set-transient-map PCH: %S"
(unless (cond
((null keep-pred) nil)
((not (eq map (cadr overriding-terminal-local-map)))
;; There's presumably some other transient-map in
;; effect. Wait for that one to terminate before we
;; remove ourselves.
;; For example, if isearch and C-u both use transient
;; maps, then the lifetime of the C-u should be nested
;; within isearch's, so the pre-command-hook of
;; isearch should be suspended during the C-u one so
;; we don't exit isearch just because we hit 1 after
;; C-u and that 1 exits isearch whereas it doesn't
;; exit C-u.
t)
((eq t keep-pred)
(eq this-command
(lookup-key map (this-command-keys-vector))))
(t (funcall keep-pred)))
(internal-pop-keymap map 'overriding-terminal-local-map)
(remove-hook 'pre-command-hook clearfun)
(when on-exit (funcall on-exit))
;; Comment out the fset if you want to debug the GC bug.
;;; (fset clearfun nil)

View file

@ -1,3 +1,65 @@
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
* frame.c (x_set_frame_parameters): Don't read uninitialized storage.
2014-06-02 Jan Djärv <jan.h.d@swipnet.se>
* xterm.c (xg_scroll_callback): Remove position, for jump set portion
to min(value, whole).
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Bring back the changes to GDB-visible symbols, but only on AIX.
And only if it's not pre-4.2 GCC.
* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
New macros.
2014-06-02 Eli Zaretskii <eliz@gnu.org>
* fileio.c (Finsert_file_contents): Call prepare_to_modify_buffer
with PT, not GPT. (Bug#16433)
Revert last changes to GDB-visible symbols.
* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): Delete macros.
(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Don't use them.
(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
Delete macros.
2014-06-02 Glenn Morris <rgm@gnu.org>
* cmds.c (Fself_insert_command): Allow zero repeat count. (Bug#17649)
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Fix port to 32-bit AIX with xlc (Bug#17598).
* alloc.c (gdb_make_enums_visible): Remove FLOAT_TO_STRING_BUFSIZE.
* conf_post.h (FLEXIBLE_ARRAY_MEMBER) [__IBMC__]: Don't define to empty.
* lisp.h (FLOAT_TO_STRING_BUFSIZE): Make it a macro, instead of an enum,
to work around a compiler bug in IBM xlc 12.1.
2014-06-02 Eli Zaretskii <eliz@gnu.org>
* xterm.c (x_update_window_end): Don't invalidate the entire
mouse-highlight info, just signal frame_up_to_date_hook that mouse
highlight needs to be redisplayed. (Bug#17588)
2014-06-02 Paul Eggert <eggert@cs.ucla.edu>
Port the GDB-visible symbols to AIX.
Without them, GDB doesn't work to debug Emacs, since the AIX linker
optimizes away the relevant external symbols. Use enums instead;
this suffices for the AIX port, which is 32-bit-only anyway.
* lisp.h (ENUMABLE, DEFINE_GDB_SYMBOL_ENUM): New macros.
(ARRAY_MARK_FLAG, PSEUDOVECTOR_FLAG, VALMASK): Use them.
(ARRAY_MARK_FLAG_val, PSEUDOVECTOR_FLAG_val, VALMASK_val):
New macros.
Include sources used to create macuvs.h.
* Makefile.in ($(srcdir)/macuvs.h): New rule.
* macuvs.h: Use automatically-generated header.
2014-06-01 Paul Eggert <eggert@cs.ucla.edu>
Port signal-handling to DragonFly BSD (Bug#17646).

View file

@ -419,7 +419,8 @@ all: emacs$(EXEEXT) $(OTHER_FILES)
$(leimdir)/leim-list.el: bootstrap-emacs$(EXEEXT)
cd ../leim && $(MAKE) $(MFLAGS) leim-list.el EMACS="$(bootstrap_exe)"
$(lispsource)/international/charprop.el: bootstrap-emacs$(EXEEXT)
$(srcdir)/macuvs.h $(lispsource)/international/charprop.el: \
bootstrap-emacs$(EXEEXT)
cd ../admin/unidata && $(MAKE) $(MFLAGS) all EMACS="../$(bootstrap_exe)"
## The dumped Emacs is as functional and more efficient than

View file

@ -7200,7 +7200,6 @@ union
enum char_bits char_bits;
enum CHECK_LISP_OBJECT_TYPE CHECK_LISP_OBJECT_TYPE;
enum DEFAULT_HASH_SIZE DEFAULT_HASH_SIZE;
enum FLOAT_TO_STRING_BUFSIZE FLOAT_TO_STRING_BUFSIZE;
enum Lisp_Bits Lisp_Bits;
enum Lisp_Compiled Lisp_Compiled;
enum maxargs maxargs;

View file

@ -280,8 +280,8 @@ At the end, it runs `post-self-insert-hook'. */)
bool remove_boundary = 1;
CHECK_NUMBER (n);
if (XFASTINT (n) < 1)
error ("Nonpositive repetition argument %"pI"d", XFASTINT (n));
if (XFASTINT (n) < 0)
error ("Negative repetition argument %"pI"d", XFASTINT (n));
if (!EQ (Vthis_command, KVAR (current_kboard, Vlast_command)))
nonundocount = 0;

View file

@ -311,8 +311,13 @@ extern void _DebPrint (const char *fmt, ...);
and allocate (offsetof (struct s, name) + N * sizeof (t)) bytes.
This macro used to expand to something different on pre-C99 compilers.
IBM xlc 12.1 claims to do C99 but mishandles flexible array members.
FIXME: Remove it, and remove all uses. */
#define FLEXIBLE_ARRAY_MEMBER
#ifdef __IBMC__
# define FLEXIBLE_ARRAY_MEMBER 1
#else
# define FLEXIBLE_ARRAY_MEMBER
#endif
/* Use this to suppress gcc's `...may be used before initialized' warnings. */
#ifdef lint

View file

@ -4085,7 +4085,7 @@ by calling `format-decode', which see. */)
&& !NILP (BVAR (current_buffer, filename))
&& SAVE_MODIFF >= MODIFF)
we_locked_file = 1;
prepare_to_modify_buffer (GPT, GPT, NULL);
prepare_to_modify_buffer (PT, PT, NULL);
}
move_gap_both (PT, PT_BYTE);

View file

@ -2830,7 +2830,7 @@ x_set_frame_parameters (struct frame *f, Lisp_Object alist)
/* If both of these parameters are present, it's more efficient to
set them both at once. So we wait until we've looked at the
entire list before we set them. */
int width, height;
int width = 0, height = 0;
bool width_change = 0, height_change = 0;
/* Same here. */

View file

@ -36,14 +36,40 @@ INLINE_HEADER_BEGIN
/* Define a TYPE constant ID as an externally visible name. Use like this:
#define ID_val (some integer preprocessor expression)
#if ENUMABLE (ID_val)
DEFINE_GDB_SYMBOL_ENUM (ID)
#else
DEFINE_GDB_SYMBOL_BEGIN (TYPE, ID)
#define ID something
# define ID ID_val
DEFINE_GDB_SYMBOL_END (ID)
#endif
This hack is for the benefit of compilers that do not make macro
definitions visible to the debugger. It's used for symbols that
.gdbinit needs, symbols whose values may not fit in 'int' (where an
enum would suffice). */
enum would suffice).
Some GCC versions before GCC 4.2 omit enums in debugging output;
see GCC bug 23336. So don't use enums with older GCC. */
#if !defined __GNUC__ || 4 < __GNUC__ + (2 <= __GNUC_MINOR__)
# define ENUMABLE(val) (INT_MIN <= (val) && (val) <= INT_MAX)
#else
# define ENUMABLE(val) 0
#endif
/* On AIX 7.1 ENUMABLE should return true when possible, otherwise the
linker can optimize the symbols away, making it harder to debug.
This was discovered only late in the release process, so to play it
safe for now, non-AIX platforms do not use enums for debugging symbols.
FIXME: remove this comment and the following four lines of code. */
#ifndef _AIX
# undef ENUMABLE
# define ENUMABLE(val) 0
#endif
#define DEFINE_GDB_SYMBOL_ENUM(id) enum { id = id##_val };
#if defined MAIN_PROGRAM
# define DEFINE_GDB_SYMBOL_BEGIN(type, id) type const id EXTERNALLY_VISIBLE
# define DEFINE_GDB_SYMBOL_END(id) = id;
@ -574,15 +600,25 @@ LISP_MACRO_DEFUN (XIL, Lisp_Object, (EMACS_INT i), (i))
/* In the size word of a vector, this bit means the vector has been marked. */
#define ARRAY_MARK_FLAG_val PTRDIFF_MIN
#if ENUMABLE (ARRAY_MARK_FLAG_val)
DEFINE_GDB_SYMBOL_ENUM (ARRAY_MARK_FLAG)
#else
DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, ARRAY_MARK_FLAG)
#define ARRAY_MARK_FLAG PTRDIFF_MIN
# define ARRAY_MARK_FLAG ARRAY_MARK_FLAG_val
DEFINE_GDB_SYMBOL_END (ARRAY_MARK_FLAG)
#endif
/* In the size word of a struct Lisp_Vector, this bit means it's really
some other vector-like object. */
#define PSEUDOVECTOR_FLAG_val (PTRDIFF_MAX - PTRDIFF_MAX / 2)
#if ENUMABLE (PSEUDOVECTOR_FLAG_val)
DEFINE_GDB_SYMBOL_ENUM (PSEUDOVECTOR_FLAG)
#else
DEFINE_GDB_SYMBOL_BEGIN (ptrdiff_t, PSEUDOVECTOR_FLAG)
#define PSEUDOVECTOR_FLAG (PTRDIFF_MAX - PTRDIFF_MAX / 2)
# define PSEUDOVECTOR_FLAG PSEUDOVECTOR_FLAG_val
DEFINE_GDB_SYMBOL_END (PSEUDOVECTOR_FLAG)
#endif
/* In a pseudovector, the size field actually contains a word with one
PSEUDOVECTOR_FLAG bit set, and one of the following values extracted
@ -634,9 +670,15 @@ enum More_Lisp_Bits
XCONS (tem) is the struct Lisp_Cons * pointing to the memory for
that cons. */
/* Mask for the value (as opposed to the type bits) of a Lisp object. */
#define VALMASK_val (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
#if ENUMABLE (VALMASK_val)
DEFINE_GDB_SYMBOL_ENUM (VALMASK)
#else
DEFINE_GDB_SYMBOL_BEGIN (EMACS_INT, VALMASK)
#define VALMASK (USE_LSB_TAG ? - (1 << GCTYPEBITS) : VAL_MAX)
# define VALMASK VALMASK_val
DEFINE_GDB_SYMBOL_END (VALMASK)
#endif
/* Largest and smallest representable fixnum values. These are the C
values. They are macros for use in static initializers. */
@ -3794,7 +3836,7 @@ extern void print_error_message (Lisp_Object, Lisp_Object, const char *,
Lisp_Object);
extern Lisp_Object internal_with_output_to_temp_buffer
(const char *, Lisp_Object (*) (Lisp_Object), Lisp_Object);
enum FLOAT_TO_STRING_BUFSIZE { FLOAT_TO_STRING_BUFSIZE = 350 };
#define FLOAT_TO_STRING_BUFSIZE 350
extern int float_to_string (char *, double);
extern void init_print_once (void);
extern void syms_of_print (void);

View file

@ -1,11 +1,4 @@
/* UVS (Unicode Variation Sequence) table definitions.
This file is part of GNU Emacs. */
/* This was generated from the Ideographic Variation Database file at
http://www.unicode.org/ivd/data/2012-03-02/IVD_Sequences.txt
using admin/mac/uvs.el in GNU Emacs, and distributed under
the Terms of Use in http://www.unicode.org/terms_of_use.html. */
/* Automatically generated by uvs.el. */
static const unsigned char mac_uvs_table_adobe_japan1_bytes[] =
{
0x00, 0x0e, 0x00, 0x01, 0x1f, 0x9e, 0x00, 0x00,

View file

@ -602,7 +602,13 @@ x_update_window_end (struct window *w, bool cursor_on_p,
/* If a row with mouse-face was overwritten, arrange for
XTframe_up_to_date to redisplay the mouse highlight. */
if (mouse_face_overwritten_p)
reset_mouse_highlight (MOUSE_HL_INFO (XFRAME (w->frame)));
{
Mouse_HLInfo *hlinfo = MOUSE_HL_INFO (XFRAME (w->frame));
hlinfo->mouse_face_beg_row = hlinfo->mouse_face_beg_col = -1;
hlinfo->mouse_face_end_row = hlinfo->mouse_face_end_col = -1;
hlinfo->mouse_face_window = Qnil;
}
}
@ -4428,14 +4434,11 @@ xg_scroll_callback (GtkRange *range,
gpointer user_data)
{
struct scroll_bar *bar = user_data;
gdouble position;
int part = -1, whole = 0, portion = 0;
GtkAdjustment *adj = GTK_ADJUSTMENT (gtk_range_get_adjustment (range));
struct frame *f = g_object_get_data (G_OBJECT (range), XG_FRAME_DATA);
if (xg_ignore_gtk_scrollbar) return FALSE;
position = gtk_adjustment_get_value (adj);
switch (scroll)
{
@ -4447,7 +4450,7 @@ xg_scroll_callback (GtkRange *range,
part = scroll_bar_handle;
whole = gtk_adjustment_get_upper (adj) -
gtk_adjustment_get_page_size (adj);
portion = min ((int)position, whole);
portion = min ((int)value, whole);
bar->dragging = portion;
}
break;