Nicolas Petton [Tue, 29 Mar 2016 07:19:32 +0000 (09:19 +0200)]
New function seq-sort-by in seq.el
* lisp/emacs-lisp/seq.el (seq-sort-by): New function.
* test/lisp/emacs-lisp/seq-tests.el: New test for seq-sort-by.
* doc/lispref/sequences.texi: Add documentation for seq-sort-by.
Paul Eggert [Sun, 27 Mar 2016 22:52:03 +0000 (15:52 -0700)]
Rename C names to match Lisp symbols better
This was inspired by commit e65c3079c65595d95749348366af9811fafff062,
which fixed a bug where the C name for a symbol disagreed with the
symbol name itself. Fix other instances of disagreements that I found.
Although this doesn’t fix a bug, it should make code easier to follow.
The remaining disagreements are idiosyncratic: Qminus, Qplus,
Qsans__serif, Qbackquote, Qcomma, Qcomma_at, Qcomma_dot.
All uses changed.
* src/alloc.c (QAutomatic_GC): Rename from Qautomatic_gc.
* src/dbusbind.c (QCsystem): Rename from QCdbus_system_bus.
(QCsession): Rename from QCdbus_session_bus.
(QCtimeout): Rename from QCdbus_timeout.
(QCbyte): Rename from QCdbus_type_byte.
(QCboolean): Rename from QCdbus_type_boolean.
(QCint16): Rename from QCdbus_type_int16.
(QCuint16): Rename from QCdbus_type_uint16.
(QCint32): Rename from QCdbus_type_int32.
(QCuint32): Rename from QCdbus_type_uint32.
(QCint64): Rename from QCdbus_type_int64.
(QCuint64): Rename from QCdbus_type_uint64.
(QCdouble): Rename from QCdbus_type_double.
(QCstring): Rename from QCdbus_type_string.
(QCobject_path): Rename from QCdbus_type_object_path.
(QCsignature): Rename from QCdbus_type_signature.
(QCunix_fd): Rename from QCdbus_type_unix_fd.
(QCarray): Rename from QCdbus_type_array.
(QCvariant): Rename from QCdbus_type_variant.
(QCstruct): Rename from QCdbus_type_struct.
(QCdict_entry): Rename from QCdbus_type_dict_entry.
(QCserial): Rename from QCdbus_registered_serial.
(QCmethod): Rename from QCdbus_registered_method.
(QCsignal): Rename from QCdbus_registered_signal.
* src/emacs-module.c (Qinternal__module_call):
Rename from Qinternal_module_call.
* src/frame.c (Qwindow__pixel_to_total):
Rename from Qwindow_pixel_to_total.
* src/gnutls.c (QChostname): Rename from QCgnutls_bootprop_hostname.
(QCpriority): Rename from QCgnutls_bootprop_priority.
(QCtrustfiles): Rename from QCgnutls_bootprop_trustfiles.
(QCkeylist): Rename from QCgnutls_bootprop_keylist.
(QCcrlfiles): Rename from QCgnutls_bootprop_crlfiles.
(QCmin_prime_bits): Rename from QCgnutls_bootprop_min_prime_bits.
(QCloglevel): Rename from QCgnutls_bootprop_loglevel.
(QCcomplete_negotiation): Rename from QCgnutls_complete_negotiation.
(QCverify_flags): Rename from QCgnutls_bootprop_verify_flags.
(QCverify_error): Rename from QCgnutls_bootprop_verify_error.
* src/w32fns.c (Qfont_parameter): Rename from Qfont_param.
(Qgnutls): Rename from Qgnutls_dll.
(Qlibxml2): Rename from Qlibxml2_dll.
(Qzlib): Rename from Qzlib_dll.
* src/w32select.c (Qutf_16le_dos): Rename from QUNICODE.
* src/window.c (Qwindow__resize_root_window):
Rename from Qwindow_resize_root_window.
(Qwindow__resize_root_window_vertically):
Rename from Qwindow_resize_root_window_vertically.
(Qwindow__sanitize_window_sizes):
Rename from Qwindow_sanitize_window_sizes.
(Qwindow__pixel_to_total): Rename from Qwindow_pixel_to_total.
* src/xdisp.c (Qredisplay_internal_xC_functionx):
Rename from Qredisplay_internal.
* src/xfns.c (Qfont_parameter): Rename from Qfont_param.
* src/xselect.c (Q_EMACS_TMP_): Rename from QEMACS_TMP.
Paul Eggert [Sun, 27 Mar 2016 02:24:25 +0000 (19:24 -0700)]
func-arity minor improvements
* src/bytecode.c (get_byte_code_arity): Omit unnecessary
runtime test for integer argument, unless debugging.
Use EMACS_INT for Emacs integers.
* src/eval.c (Ffunc_arity): Omit unused locals.
Avoid side effects in ‘if’ expr.
(lambda_arity): Use bool for boolean, and EMACS_INT for Emacs ints.
Martin Rudalics [Sat, 26 Mar 2016 13:43:25 +0000 (14:43 +0100)]
Safely run window size change functions
* src/window.c (run_window_size_change_functions): Use
safe_call1 when running a size change function.
(grow_mini_window, shrink_mini_window): Report error when
minibuffer window cannot be resized.
Michael Albinus [Fri, 25 Mar 2016 13:36:14 +0000 (14:36 +0100)]
Cleanup file notification code in Tramp
* lisp/net/tramp-sh.el (tramp-sh-handle-file-notify-add-watch):
Make `events' a list of symbols for "inotifywait".
(tramp-sh-gvfs-monitor-dir-process-filter): Make event a list.
Call `file-notify-handle-event' for better traces.
(tramp-sh-inotifywait-process-filter): Check for expected events.
Call `file-notify-handle-event' for better traces.
Michael Albinus [Thu, 24 Mar 2016 17:34:05 +0000 (18:34 +0100)]
Adapt filenotify-tests.el according latest tests
* test/lisp/filenotify-tests.el (file-notify-test02-events)
(file-notify-test04-file-validity, file-notify-test05-dir-validity):
Remove superfluous `read-event' calls.
(file-notify-test02-events): Expect different events under MS
Windows 7 and 10.
(file-notify-test04-file-validity): Move `file-notify-valid-p'
check up.
Paul Eggert [Wed, 23 Mar 2016 18:17:37 +0000 (11:17 -0700)]
Sync with gnulib
This incorporates:
2016-03-22 gitlog-to-changelog: suppress ignored chatter
2016-03-21 sys_select: port to new Cygwin
* build-aux/gitlog-to-changelog, doc/misc/texinfo.tex:
* lib/sys_select.in.h: Copy from gnulib.
Simen Heggestøyl [Wed, 23 Mar 2016 18:03:47 +0000 (19:03 +0100)]
Support completion of attribute values in CSS mode
* lisp/textmodes/css-mode.el (css-property-alist): New defconst
holding CSS identifiers and the values they can have.
(css-property-ids): Compute dynamically from `css-property-alist'.
(css-value-class-alist): New defconst holding property value classes
and their values.
(css--property-value-cache): New variable providing a cache for
`css--property-values'.
(css--value-class-lookup): New function for computing a list of values
in a value class.
(css--property-values): New function for computing a list of possible
values for a CSS property.
(css--complete-property-value): New function for completing a property
value.
(css-completion-at-point): Add support for completing property values.
* test/lisp/textmodes/css-mode-tests.el: New file.
Paul Eggert [Wed, 23 Mar 2016 07:07:14 +0000 (00:07 -0700)]
Resurrect GNUS-NEWS autogeneration
* doc/misc/gnus-coding.texi (Gnus Maintenance Guide): Update
GNUS-NEWS section to match current file locations and procedure.
* etc/GNUS-NEWS: Regenerate by using new procedure.
* lisp/Makefile.in (update-gnus-news): New rule, containing a
procedure for building GNUS-NEWS. The old procedure got lost
somehow when Gnus was merged into Emacs.
Wilson Snyder [Wed, 23 Mar 2016 00:46:40 +0000 (20:46 -0400)]
Sync with verilog-mode development tree.
* lisp/progmodes/verilog-mode.el (verilog-imenu-generic-expression,
verilog-speedbar-initialize): Automatically add verilog-mode
extensions when in speedbar mode, bug1045, bug1046. Reported by
David Shleifman.
(verilog-mode-map): Move `verilog-star-comment' from M-* to C-c/ to
avoid conflict with `pop-tag-mark'. Reported by Ian Perryman.
(verilog-read-always-signals-recurse): Fix :: notation for
auto-reset signals. Reported by Andrew Jones.
(verilog-font-lock-grouping-keywords-face): Fix highlighting of
grouping keywords, bug1002. Reported by Paul Sargent.
(verilog-save-font-no-change-functions): Commentary and fix
pre-Emacs 21 behavior.
Paul Eggert [Tue, 22 Mar 2016 23:42:28 +0000 (16:42 -0700)]
Compute a better commit message for merges
Problem reported by David Engster in:
http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg01270.html
* admin/gitmerge.el (gitmerge-commit-message):
Truncate the computed commit message to at most 72 characters per line.
(gitmerge-maybe-resume): Don’t use "-" as the commit message for
merges; use the computed commit message instead.
Paul Eggert [Tue, 22 Mar 2016 19:53:54 +0000 (12:53 -0700)]
Change do-not-merge pattern to "do not merge"
This should avoid the problem we recently had with
automatically-generated merge messages, while still letting people
specify commits not to merge.
* admin/gitmerge.el (gitmerge-skip-regexp): Add "do not merge".
(gitmerge-highlight-skip-regexp): Fold case when searching
for gitmerge-skip-regexp.
Anders Lindgren [Tue, 22 Mar 2016 19:18:33 +0000 (20:18 +0100)]
Make `toggle-frame-maximized' respect the dock on OS X (bug#22988).
* src/nsterm.m (ns_screen_margins): New function.
(ns_screen_margins_ignoring_hidden_dock): New function.
(ns_menu_bar_height): Reimplement in terms of `ns_screen_margins'.
([EmacsWindow zoom:]): Take all screen margins (except those
originating from a hidden dock) into account.
Eli Zaretskii [Tue, 22 Mar 2016 18:16:42 +0000 (20:16 +0200)]
Fix bug in displaying header line with a box face
* src/xdisp.c (get_next_display_element): Handle the case when a
display string acquires the box face from an underlying string,
not from the buffer. (Bug#23091)
Paul Eggert [Tue, 22 Mar 2016 18:04:36 +0000 (11:04 -0700)]
; Merge from origin/emacs-25
The following commits were skipped:
8a35f83 Render empty <ul><li><ul> correctly d8b2ce5 Ignore invalid base64 encoded embedded images 52ba24b Fix <p> and <div> newlines with or without <li> in shr
Paul Eggert [Tue, 22 Mar 2016 08:17:56 +0000 (01:17 -0700)]
Assume NON_BLOCKING_CONNECT (Bug#22946)
* lisp/proced.el (proced-signal-list): Omit comment about
obsolete systems that do not support POSIX 1003.1-2001 signals.
* src/process.c (NON_BLOCKING_CONNECT): Remove, since we can now
assume POSIX 1003.1-2001 or better here. Assume it’s defined.
(connect_network_socket): Assume EINPROGRESS is defined,
as that’s portable too now.
(Fmake_network_process): Use bool for boolean.
Kaushal Modi [Mon, 21 Mar 2016 23:28:27 +0000 (00:28 +0100)]
Fix an Isearch var to be a string (Bug#23038)
* isearch.el (isearch--describe-regexp-mode): The `description' var
needs to always be a string. Add the missing default case for the
cond form that ensures that.
Before this bug fix, for the events when `regexp-function' and
`search-default-mode' both were nil, `description' also stayed nil. So
when `space-before' was non-nil, the "non-string" `description'
(with a value of nil) got passed as an argument to
`replace-regexp-in-string' (where a string was expected). That caused
the error described in Bug#23038.
Martin Rudalics [Sun, 20 Mar 2016 15:52:39 +0000 (16:52 +0100)]
Resurrect earlier fix of resize_frame_windows
* src/window.c (resize_frame_windows): Resurrect earlier fix for
calculating the number of columns of the minibuffer window which
was lost in subsequent merges.
Don't remove too much white space at the end of documents
* lisp/net/shr.el (shr--remove-blank-lines-at-the-end): Don't
remove too much white space -- leave it on the last line (in
case there's a background color).
Alan Mackenzie [Sun, 20 Mar 2016 13:19:48 +0000 (13:19 +0000)]
Amend parse-partial-sexp correctly to handle two character comment delimiters
Do this by adding a new field to the parser state: the syntax of the last
character scanned, should that be the first char of a (potential) two char
construct, nil otherwise.
This should make the parser state complete.
Also document element 9 of the parser state. Also refactor the code a bit.
* src/syntax.c (struct lisp_parse_state): Add a new field.
(SYNTAX_FLAGS_COMSTARTEND_FIRST): New function.
(internalize_parse_state): New function, extracted from scan_sexps_forward.
(back_comment): Call internalize_parse_state.
(forw_comment): Return the syntax of the last character scanned to the caller
when that character might be the first of a two character construct.
(Fforward_comment, scan_lists): New dummy variables, passed to forw_comment.
(scan_sexps_forward): Remove a redundant state parameter. Access all `state'
information via the address parameter `state'. Remove the code which converts
from external to internal form of `state'. Access buffer contents only from
`from' onwards. Reformulate code at the top of the main loop correctly to
recognize comment openers when starting in the middle of one. Call
forw_comment with extra argument (for return of syntax value of possible first
char of a two char construct).
(Fparse_partial_sexp): Document elements 9, 10 of the parser state in the
doc string. Clarify the doc string in general. Call
internalize_parse_state. Take account of the new elements when consing up the
output parser state.
* doc/lispref/syntax.texi: (Parser State): Document element 9 and the new
element 10. Minor wording corrections (remove reference to "trivial
cases").
(Low Level Parsing): Minor corrections.
* etc/NEWS: Note new element 10, and documentation of element 9 of parser
state.
Fix <p> and <div> newlines with or without <li> in shr
* lisp/net/shr.el (shr-ensure-newline): Respect that we're in
a <li>, if we are, and don't insert newlines there.
(shr-ensure-paragraph): When mixing newlines and paragraph
ensurements, don't insert too many blank lines.
(shr-tag-div): A <div> shouldn't introduce a paragraph, but a
new line.
(cherry picked from commit 292921facaff2f02ac4e8602c1f7ecbdcfe7ef45)
Fix <p> and <div> newlines with or without <li> in shr
* lisp/net/shr.el (shr-ensure-newline): Respect that we're in
a <li>, if we are, and don't insert newlines there.
(shr-ensure-paragraph): When mixing newlines and paragraph
ensurements, don't insert too many blank lines.
(shr-tag-div): A <div> shouldn't introduce a paragraph, but a
new line.
* lisp/net/shr.el (shr--remove-blank-lines-at-the-end): New function.
(shr-insert-document): Use it to remove trailing blank lines
at the end of documents, since these never seem to be very useful.
Ernest Adrogué [Sun, 20 Mar 2016 11:01:23 +0000 (12:01 +0100)]
Add a Catalan language environment
* international/mule-cmds.el (locale-language-names): Map locale
language name `ca' to language environment `Catalan'.
* language/european.el: Add definition of language environment for
the Catalan language.
* leim/quail/latin-pre.el: Add quail rule to the `catalan-prefix'
input method to support input of middle dot characters through
composition (bug#18279).
Paul Eggert [Sun, 20 Mar 2016 01:44:15 +0000 (18:44 -0700)]
No need to block input when reading directories
* src/dired.c: Don’t include blockinput.h.
(open_directory, directory_files_internal_unwind)
(directory_files_internal, file_attributes):
Don’t block input here, as the reasons for blocking input should
no longer apply. See blockinput.h FIXME. (Bug#22996).
Fabrice Popineau [Sat, 19 Mar 2016 12:44:53 +0000 (14:44 +0200)]
Improve w32notify notifications
* src/w32notify.c (DIRWATCH_BUFFER_SIZE): New macro.
(struct notification): 'terminate' is now a HANDLE.
(send_notifications): Argument is now a pointer to a
notification. Don't loop waiting for the notification to be
acknowledged by the main thread; instead, just add the
notification to the linked list of notifications waiting to be
acknowledged.
(watch_end): Don't close the directory handle.
(watch_completion): Allocate a new notification structure to be
added to the notifications set. Call ReadDirectoryChangesW
immediately after adding the new notification, and before sending
a message to the main thread about them.
(watch_worker): Don't loop calling ReadDirectoryChangesW; instead,
call it just once -- it will be called again in watch_completion.
Loop waiting for the main thread's indication to terminate.
(start_watching): Create the event to be used to indicate to the
worker thread that its should terminate.
(remove_watch): Indicate to the worker thread that it should
terminate.
* src/w32term.c (queue_notifications): Loop over all the
notifications in the linked list, processing all of them in one
go.
* src/w32inevt.c (handle_file_notifications): Loop over all the
notifications in the linked list.
* src/w32xfns.c (init_crit): Initialize the linked list of file
notifications.
(delete_crit): Free the linked list of file notifications,
including any unprocessed notifications left in it.
* src/w32term.h (struct notifications_se): New struct.
* test/lisp/filenotify-tests.el (file-notify-test02-events)
(file-notify-test05-dir-validity): Add read-event calls to
facilitate event recognition by the main thread in batch mode.
Eli Zaretskii [Sat, 19 Mar 2016 11:05:55 +0000 (13:05 +0200)]
Adjudicate review comments in abbrevs.texi
* doc/lispref/abbrevs.texi (Abbrev Files, Abbrev Expansion):
* doc/emacs/abbrevs.texi (Dabbrev Customization): State the
default values of variables. Suggested by Steve Byrne
<sbb@penguinis.org>. (Bug#23016)
* admin/release-process (Check manuals): Mark files reviewed by
Steve Byrne.
Dmitry Gutov [Fri, 18 Mar 2016 22:37:09 +0000 (00:37 +0200)]
Fixup the "normal" matcher; highlight global var symbols, too
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Highlight
operator name symbols with the "normal" matcher (it actually
needed updating). Highlight global variable symbols, too.
Marcin Borkowski [Mon, 14 Mar 2016 10:15:10 +0000 (11:15 +0100)]
Honor prefix arg in doc-view-next-line-or-next-page
* lisp/doc-view.el (doc-view-next-line-or-next-page): Take the
prefix argument into consideration when continuous scrolling is
not in effect (i.e., by default) (bug#19559).
Paul Eggert [Fri, 18 Mar 2016 15:42:15 +0000 (08:42 -0700)]
Port to strict C99 offsetof
* src/bidi.c (bidi_copy_it):
* src/lisp.h (CHAR_TABLE_EXTRA_SLOTS):
Use only a single identifier as the second argument of offsetof.
Found by using clang -pedantic.
Paul Eggert [Fri, 18 Mar 2016 15:36:59 +0000 (08:36 -0700)]
Port to GTK with strict C11 compiler
* src/gtkutil.c (xg_create_frame_widgets, xg_toggle_notify_cb):
Cast from function type to void * where the C standard requires this.
This works around a problem in the prototypes for
g_signal_handler_find and g_signal_handlers_block_by_func, which
use gpointer instead of GCallback. Found by using gcc -pedantic.
Paul Eggert [Fri, 18 Mar 2016 06:45:02 +0000 (23:45 -0700)]
Port to GTK with strict C99 compiler
* src/emacsgtkfixed.c: Use workaround for GNOME bug 683906 only
in glib 2.35.6 and earlier, since the bug is fixed in 2.35.7.
* src/emacsgtkfixed.c (EmacsFixedPrivate):
* src/emacsgtkfixed.h (EmacsFixedClass):
Remove duplicate typedef, which strict C99 does not allow (Bug#23003).
Anders Lindgren [Thu, 17 Mar 2016 20:07:04 +0000 (21:07 +0100)]
Avoid screen artifacts with new OS X visible bell after scrolling
* src/nsterm.m (EmacsBell): Save NSView when displaying the
visible bell and set `needsDisplay' when removed.
(hide_bell): Trace.
(ns_copy_bits): Trace.