This commit is contained in:
Paul Eggert 2016-02-09 14:26:40 -08:00
commit 8456ba1d49
12 changed files with 1037 additions and 697 deletions

View file

@ -278,6 +278,17 @@ you run "make check-expensive" from the top-level directory. "make
line. So "make check SELECTOR=nil" is equivalent to "make
check-expensive".
You could also use predefined selectors of the Makefile. "make
<filename> SELECTOR='$(SELECTOR_DEFAULT)'" runs all tests for
<filename>.el(c) except the tests tagged as expensive.
Selectors can be defined with different methods, see (info "(ert)Test
Selectors") or
https://www.gnu.org/software/emacs/manual/html_node/ert/Test-Selectors.html
If your test file contains the tests "test-foo", "test2-foo" and
"test-foo-remote", and you want to run only the former two tests, you
could use a regexp: "make <filename> SELECTOR='\"foo$$\"'" .
** Understanding Emacs Internals.
The best way to understand Emacs Internals is to read the code,

View file

@ -290,10 +290,11 @@ Sequences consisting of @kbd{C-c} followed by @kbd{@{}, @kbd{@}},
@kbd{<}, @kbd{>}, @kbd{:} or @kbd{;} are also reserved for major modes.
@item
Sequences consisting of @kbd{C-c} followed by any other punctuation
character are allocated for minor modes. Using them in a major mode is
not absolutely prohibited, but if you do that, the major mode binding
may be shadowed from time to time by minor modes.
Sequences consisting of @kbd{C-c} followed by any other
@acronym{ASCII} punctuation or symbol character are allocated for
minor modes. Using them in a major mode is not absolutely prohibited,
but if you do that, the major mode binding may be shadowed from time
to time by minor modes.
@item
Don't bind @kbd{C-h} following any prefix character (including

View file

@ -420,7 +420,7 @@ article body. It is effective to images in @acronym{HTML} articles
rendered when @code{mm-text-html-renderer} (@pxref{Display
Customization}) is @code{shr} or @code{w3m}. In Gnus, this is
overridden by the value of @code{gnus-inhibit-images} (@pxref{Misc
Article, ,Misc Article, gnus, Gnus manual}).
Article, ,Misc Article, gnus, Gnus manual}). The default is @code{nil}.
@item mm-html-blocked-images
@vindex mm-html-blocked-images
@ -436,7 +436,7 @@ It is effective when @code{mm-text-html-renderer} (@pxref{Display
Customization}) is @code{shr}. In Gnus, this is overridden by the value
of @code{gnus-blocked-images} or the return value of the function that
@code{gnus-blocked-images} is set to (@pxref{HTML, ,HTML, gnus, Gnus
manual}).
manual}). The default is @code{nil}.
@item mm-w3m-safe-url-regexp
@vindex mm-w3m-safe-url-regexp

File diff suppressed because it is too large Load diff

View file

@ -434,6 +434,20 @@ to version 206, you can do this with C-u C-u M-x desktop-save.
It raises an error if a bookmark of that name already exists,
unlike `bookmark-set' which silently updates an existing bookmark.
** Gnus
+++
*** New user options `mm-html-inhibit-images' and `mm-html-blocked-images'
now control how mm-* functions fetch and display images in an HTML
message. Gnus still uses `gnus-inhibit-images' and `gnus-blocked-images'
for that purpose, i.e., binds mm-html- variables with those gnus-
variables, but other packages do not have to bind gnus- variables now.
---
*** `mm-inline-text-html-with-images' has been removed.
Use `mm-html-inhibit-images' instead. Note that the value is opposite
in meaning.
** IMAP
---
@ -1062,6 +1076,11 @@ comparing with the next window, customize the new option
replace the face `compare-windows', which is now an obsolete alias for
`compare-windows-added'.
---
*** The VC state indicator in the mode line now has different faces
corresponding to each of the possible states. See the `vc-faces'
customization group.
---
*** `log-edit-insert-changelog' converts "(tiny change)" to
"Copyright-paperwork-exempt: yes". Set `log-edit-rewrite-tiny-change'

View file

@ -111,7 +111,7 @@
# endif
#endif
#if ((defined _Alignas && ! (defined __cplusplus && 201103 <= __cplusplus)) \
|| (defined __STDC_VERSION && 201112 <= __STDC_VERSION__))
|| (defined __STDC_VERSION__ && 201112 <= __STDC_VERSION__))
# define alignas _Alignas
#endif
#if defined alignas || (defined __cplusplus && 201103 <= __cplusplus)

View file

@ -145,16 +145,13 @@ nil : use external viewer (default web browser)."
(function))
:group 'mime-display)
(defcustom mm-html-inhibit-images
(if (boundp 'mm-inline-text-html-with-images)
(not (symbol-value 'mm-inline-text-html-with-images))
t)
(defcustom mm-html-inhibit-images nil
"Non-nil means inhibit displaying of images inline in the article body."
:version "25.1"
:type 'boolean
:group 'mime-display)
(defcustom mm-html-blocked-images ""
(defcustom mm-html-blocked-images nil
"Regexp matching image URLs to be blocked, or nil meaning not to block.
Note that cid images that are embedded in a message won't be blocked."
:version "25.1"

View file

@ -1818,13 +1818,15 @@ The preference is a float determined from `shr-prefer-media-type'."
(defun shr-face-background (face)
(and (consp face)
(let ((background nil))
(dolist (elem face)
(when (and (consp elem)
(eq (car elem) :background))
(setq background (cadr elem))))
(and background
(list :background background)))))
(or (and (plist-get face :background)
(list :background (plist-get face :background)))
(let ((background nil))
(dolist (elem face)
(when (and (consp elem)
(eq (car elem) :background))
(setq background (cadr elem))))
(and background
(list :background background))))))
(defun shr-expand-alignments (start end)
(while (< (setq start (next-single-property-change

View file

@ -1,5 +1,5 @@
# acl.m4 - check for access control list (ACL) primitives
# serial 21
# serial 22
# Copyright (C) 2002, 2004-2016 Free Software Foundation, Inc.
# This file is free software; the Free Software Foundation
@ -163,9 +163,8 @@ AC_DEFUN([gl_ACL_GET_FILE],
#include <sys/acl.h>
#include <errno.h>
]],
[[if (!acl_get_file (".", ACL_TYPE_ACCESS) && errno == ENOENT)
return 1;
return 0;
[[acl_t acl = acl_get_file (".", ACL_TYPE_ACCESS);
return acl ? acl_free (acl) != 0 : errno == ENOENT;
]])],
[if test $cross_compiling = yes; then
gl_cv_func_working_acl_get_file="guessing yes"

View file

@ -1,4 +1,4 @@
# serial 18
# serial 19
dnl From Jim Meyering.
dnl A wrapper around AC_FUNC_GETGROUPS.
@ -87,7 +87,9 @@ AC_DEFUN([gl_FUNC_GETGROUPS],
[AC_RUN_IFELSE([AC_LANG_PROGRAM([AC_INCLUDES_DEFAULT],
[[int size = getgroups (0, 0);
gid_t *list = malloc (size * sizeof *list);
return getgroups (-1, list) != -1;]])],
int result = getgroups (-1, list) != -1;
free (list);
return result;]])],
[gl_cv_func_getgroups_works=yes],
[gl_cv_func_getgroups_works=no],
[case "$host_os" in

View file

@ -1383,12 +1383,25 @@ lisp_align_free (void *block)
static bool
laligned (void *p, size_t size)
{
return (MALLOC_IS_GC_ALIGNED || size % GCALIGNMENT != 0
|| (intptr_t) p % GCALIGNMENT == 0);
return (MALLOC_IS_GC_ALIGNED || (intptr_t) p % GCALIGNMENT == 0
|| size % GCALIGNMENT != 0);
}
/* Like malloc and realloc except that if SIZE is Lisp-aligned, make
sure the result is too. */
sure the result is too, if necessary by reallocating (typically
with larger and larger sizes) until the allocator returns a
Lisp-aligned pointer. Code that needs to allocate C heap memory
for a Lisp object should use one of these functions to obtain a
pointer P; that way, if T is an enum Lisp_Type value and L ==
make_lisp_ptr (P, T), then XPNTR (L) == P and XTYPE (L) == T.
On typical modern platforms these functions' loops do not iterate.
On now-rare (and perhaps nonexistent) platforms, the loops in
theory could repeat forever. If an infinite loop is possible on a
platform, a build would surely loop and the builder can then send
us a bug report. Adding a counter to try to detect any such loop
would complicate the code (and possibly introduce bugs, in code
that's never really exercised) for little benefit. */
static void *
lmalloc (size_t size)
@ -1405,6 +1418,9 @@ lmalloc (size_t size)
if (laligned (p, size))
break;
free (p);
size_t bigger;
if (! INT_ADD_WRAPV (size, GCALIGNMENT, &bigger))
size = bigger;
}
eassert ((intptr_t) p % GCALIGNMENT == 0);
@ -1414,9 +1430,15 @@ lmalloc (size_t size)
static void *
lrealloc (void *p, size_t size)
{
do
p = realloc (p, size);
while (! laligned (p, size));
while (true)
{
p = realloc (p, size);
if (laligned (p, size))
break;
size_t bigger;
if (! INT_ADD_WRAPV (size, GCALIGNMENT, &bigger))
size = bigger;
}
eassert ((intptr_t) p % GCALIGNMENT == 0);
return p;

View file

@ -262,10 +262,6 @@ DEFINE_GDB_SYMBOL_END (USE_LSB_TAG)
error !;
#endif
#ifndef alignas
# error "alignas not defined"
#endif
#ifdef HAVE_STRUCT_ATTRIBUTE_ALIGNED
# define GCALIGNED __attribute__ ((aligned (GCALIGNMENT)))
#else