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.
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.
* 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.
* lisp/net/soap-client.el: Update copyright years.
(soap-warning): Fix docstring quoting.
(soap-decode-date-time): Likewise.
(soap-validate-xs-simple-type): Remove tabs for indentation.
* lisp/net/soap-inspect.el: Update copyright years.
* lisp/net/soap-client.el (soap-encode-xs-basic-type): Do not
assume xsd:base64Binary values are UTF-8 strings.
(soap-decode-xs-basic-type): Likewise.
(soap-invoke): Document xsd:base64Binary handling.
* lisp/net/soap-client.el (soap-find-port, soap-find-operation)
(soap-operation-arity): new defuns
(soap-invoke-internal): use soap-find-port, soap-find-operation.
Co-authored-by: Alex Harsanyi <AlexHarsanyi@gmail.com>
Dmitry Gutov [Wed, 16 Mar 2016 13:58:21 +0000 (15:58 +0200)]
Support safe navigation operator in non-SMIE indentation code
* lisp/progmodes/ruby-mode.el (ruby-calculate-indent):
Support safe navigation operator in non-SMIE indentation code.
Cherry-picked from
https://github.com/ruby/ruby/commit/68e16ddd7961b86e5013e62ae2954e88638de058.
Move xsd:base64Binary decoding fix to debbugs.el 0.9.1
* lisp/net/soap-client.el (soap-encode-xs-basic-type): Do not
assume xsd:base64Binary values are UTF-8 strings.
(soap-decode-xs-basic-type): Likewise.
(soap-invoke): Document xsd:base64Binary handling.
Paul Eggert [Tue, 15 Mar 2016 20:47:47 +0000 (13:47 -0700)]
Port to clang 3.7.0 on x86-64
* configure.ac: Use AS_IF so that gl_WARN_ADD’s prerequisites are
not done conditionally. This helps clang, which needs
-Wunknown-warning-option later when configured with warnings.
* src/editfns.c (invalid_time): Now _Noreturn, since clang isn’t
smart enough to figure this out on its own if warnings are enabled.
(lisp_time_struct): Redo for clarity, and to pacify clang.
* src/xfns.c (x_real_pos_and_offsets) [USE_XCB]: Don’t use
uninitialized locals. This avoids undefined behavior and pacifies
clang.
Paul Eggert [Tue, 15 Mar 2016 20:20:29 +0000 (13:20 -0700)]
Sync with gnulib
This incorporates:
2016-03-15 time_rz: port to clang -Wunused-const-variable
2016-03-15 select: port more to Intel 2016.1.150 compiler
* lib/sys_select.in.h, lib/time_rz.c: Copy from gnulib.
Paul Eggert [Tue, 15 Mar 2016 00:36:23 +0000 (17:36 -0700)]
ASCII-only etc/NEWS etc.
* etc/NEWS, nextstep/README: Revert the recently-added curved
quotes, and stick to ASCII. This typically involves replacing
curved with straight quotes. Since etc/NEWS is viewed so often by
UTF-8-ignorant tools, rewrite its non-ASCII text to spell out
Unicode, e.g., replace ‘‒’ with ‘U+2012 (FIGURE DASH)’.
Alan Mackenzie [Mon, 14 Mar 2016 21:44:11 +0000 (21:44 +0000)]
Fix a cacheing bug, which led to inordinately slow c-beginning-of-defun.
* lisp/progmodes/cc-defs.el (c-self-bind-state-cache): New macro.
* lisp/progmodes/cc-engine.el (c-ssb-lit-begin): Always call c-parse-state
rather than just using the cache variable c-state-cache.
(c-syntactic-skip-backward): Invoke c-self-bind-state-cache to isolate calls
to c-parse-state from other uses of the parse state cache.
* lisp/progmodes/cc-cmds.el (c-beginning-of-defun, c-end-of-defun): Invoke
c-self-bind-state-cache around the processing, replacing flawed bindings of
c-state-cache.
* lisp/gnus/nnimap.el (nnimap-request-move-article): Don't use
MOVE on Dovecot, since it's broken in many versions.
(nnimap-quirks): Mark MOVE on Dovecot as non-working.
Kaushal Modi [Mon, 14 Mar 2016 18:15:17 +0000 (20:15 +0200)]
Fix Isearch prompt when invoked with an argument
* lisp/isearch.el (isearch--describe-regexp-mode): With
`search-default-mode' set to nil, if user does C-u C-s, the minibuffer
now displays "Regexp I-search: " again. But if the user has set
`search-default-mode' to t, and then does C-s, the minibuffer now
displays "I-search: " because the default search mode is now regexp
mode. Comments have been added to explain the priority of conditions
in the `cond' form. (Bug#22991)
Paul Eggert [Mon, 14 Mar 2016 16:30:01 +0000 (09:30 -0700)]
Curved quotes in etc/NEWS etc.
* etc/NEWS, nextstep/README: Prefer curved quotes in the
recently-changed text documentation. See:
http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg00860.html
Paul Eggert [Mon, 14 Mar 2016 15:40:08 +0000 (08:40 -0700)]
Fix some single quotes in documentation
* doc/emacs/anti.texi (Antinews): Avoid confusion in info and PDF
when documenting quoting styles.
* etc/NEWS, nextstep/README: In these plain text files, quote
'like this' consistently, rather than also (sometimes) ‘like this’
or (more often) `like this'.
Paul Eggert [Sun, 13 Mar 2016 19:20:01 +0000 (12:20 -0700)]
Improve diff hunk headers when maintaining Emacs
* .gitattributes: Improve diff hunk header support for makefiles,
shell scripts, Ada, C, C++, Objective C, HTML, SHTML, XML, Java,
Perl, PHP, Python, Ruby, and TeX, all of which are used in Emacs
somewhere (sometimes just in test cases).
* autogen.sh: Add regexes for makefiles and shell scripts.
Phillip Lord [Sat, 12 Mar 2016 22:26:20 +0000 (22:26 +0000)]
Simplify "Visit New File" to "New File"
* doc/emacs/files.texi,lisp/menu-bar.el (menu-bar-file-menu),
lisp/startup.el(normal-mouse-start-screen,
normal-no-mouse-startup-screen): Change label "Visit New File" to "New
File".
Eli Zaretskii [Sat, 12 Mar 2016 15:51:45 +0000 (17:51 +0200)]
Import new data files from Unicode 9.0.0beta
* admin/unidata/UnicodeData.txt:
* admin/unidata/Blocks.txt:
* admin/unidata/BidiMirroring.txt:
* admin/unidata/BidiBrackets.txt: Update from Unicode 9.0.0beta.
* admin/unidata/unidata-gen.el (unidata-gen-files): Bind
'coding-system-for-read' to 'utf-8, as various Unicode data files
now actually use non-ASCII characters.
(unidata-setup-list, unidata-get-name): Support the new Tangut
Ideographs block.
* lisp/international/characters.el (standard-case-table): Add new
characters from Unicode 9.0.0.
(standard-category-table): Add Arabic block u+08A0..u+08FF. Add
Cyrillic Extended-C block.
(char-width-table): Update ranges per Unicode 9.0.0.
* lisp/international/fontset.el (script-representative-chars): Add
new scripts defined by Unicode 9.0.0.
(otf-script-alist): Add new OTF script tags.
* lisp/international/mule-cmds.el (ucs-names): Update ranges per
Unicode 9.0.0 additions.
Eli Zaretskii [Sat, 12 Mar 2016 09:51:03 +0000 (11:51 +0200)]
Avoid crashes at startup on systems that CANNOT_DUMP
* src/xdisp.c (syms_of_xdisp) <redisplay--inhibit-bidi>: New
boolean variable.
(init_iterator, reseat_to_string)
(Fcurrent_bidi_paragraph_direction)
(Fbidi_find_overridden_directionality): Use
redisplay--inhibit-bidi instead of purify-flag, to determine when
it's safe to reorder bidirectional text.
* lisp/loadup.el (redisplay--inhibit-bidi): Set to t at the
beginning of the file. Reset to nil when charprop.el is
successfully loaded, or when we are going to dump, whichever
happens last. (Bug#22975)
Dmitry Gutov [Fri, 11 Mar 2016 22:18:42 +0000 (00:18 +0200)]
Support Ruby 2.3.0's safe navigation operator
* lisp/progmodes/ruby-mode.el (ruby-smie--forward-token)
(ruby-smie--backward-token): Tokenize '&.' as '.'.
(ruby-smie--implicit-semi-p): Check for possible '&' before '.'.
* test/indent/ruby.rb: Add an example using safe navigation
operator. Fix a syntax error in existing example.
John Wiegley [Fri, 11 Mar 2016 21:33:32 +0000 (13:33 -0800)]
Merge from origin/emacs-25
facb5e2 Update Emacs manual section related to character folding 4efea8e ; * etc/DEBUG: Fix a typo. (Bug#22984) f8df21b Update admin/notes/unicode 950be68 Add symref-filepattern entries for c?perl-mode 8b8a6ad Don't use XRANDR 1.3 extensions if the server doesn't support them. 985dacf ; NEWS update for the last change in etags 741a6f8 Sync with gnulib 7352c6c Rework C source files to avoid ^( a589e9a By default, etags produces unqualified Perl tag names 72c7438 Indent methods with keyword names correctly 28532a9 Propertize character literals and special global variables
differently a7d6f39 ; Fix last change in NEWS 83b2a20 Change how /etc/NEWS presents character folding b417c5a Revert "Revert "Backport: * lisp/isearch.el: Turn char-folding
off by default"" 711ca36 Properly handle lambda as read function (bug 22961) 1b9d616 Propertize operator symbol names with symbol syntax class 9b16bc2 Stop recognizing :#{} as symbol in ruby-mode 366ec77 Allow using the left shift operator without spaces on both sides 02bf7cc Properly handle unquoting in wdired (bug 22938) 16cf469 ; Spelling fix and tighten up comment f50bc04 Allow splat operator before percent literal 991c801 Don't apply the return value of goto-char as syntax class 6e63b3e Guard against nested percent literals 066f3bc Recognize iuwu-mod after an escaped newline 6f7a57c Fix symbolic mode string conversion for s and t 50b9826 Update 'ucs-names' database 993b2fb Improve doc string of 'shell-command' b71c717 Make the code in movemail_strftime more general cc057e4 Speed up redisplay of binary files with long series of nulls e51b27e Remove the highlighting support for quoting 'like this' inside
Lisp docstrings b1abce1 Restore leading space in movemail pop output 98b8d44 Fix bidi-paragraph-direction in Rmail view buffer dc9d837 Don't misindent computed property generator methods 7923112 Fix mbox files produced by movemail on MS-Windows c45a1ca doc string file descriptor exhaustion fix 265141b Fix Bug#22814
John Wiegley [Fri, 11 Mar 2016 21:32:13 +0000 (13:32 -0800)]
Merge from origin/emacs-25
620951f Fix previous fix of enlarge-/shrink-window 2e78353 * lisp/isearch.el (isearch-define-mode-toggle): Fix toggling logic 66d2717 Complete temperature units in calc-convert-temperature dbb02bf Make sure to use case-sensitive search 8b01e69 Prevent infinite loop on not-well-formed xml. (Bug#16344) 100346a Add the missing test case for the previous patch 5aba61e Use the correct dabbrev expansion
Eli Zaretskii [Fri, 11 Mar 2016 10:50:55 +0000 (12:50 +0200)]
Update admin/notes/unicode
* admin/notes/unicode: Update the list of files from the UCD we
are using. Mention the possible need to change 'ucs-names' when
importing a new version of the Unicode Standard.
Stefan Monnier [Thu, 10 Mar 2016 20:17:47 +0000 (15:17 -0500)]
* lisp/textmodes/tex-mode.el: Complete local envs. Use #'.
Use #' for function names.
(latex-complete-envnames): Include existing environments in
current buffer.
(latex-insert-block): Use latex-complete-envnames.
(tildify-foreach-ignore-environments): Declare.
Ken Raeburn [Wed, 9 Mar 2016 03:17:16 +0000 (22:17 -0500)]
Don't use XRANDR 1.3 extensions if the server doesn't support them.
* src/xterm.h (struct x_display_info): Add fields to save XRANDR
version number.
* src/xfns.c (x_get_monitor_attributes): Save the version numbers
after querying the X server.
(x_get_monitor_attributes_xrandr): Don't use XRRGetOutputPrimary or
XRRGetScreenResourcesCurrent if the server doesn't support at least
RANDR version 1.3. Conditionalize the code blocks on compiling
against library version 1.3 or better, rather than feature tests for
each function.
* configure.ac: Stop testing for those two functions.
Paul Eggert [Thu, 10 Mar 2016 15:55:38 +0000 (07:55 -0800)]
Sync with gnulib
This incorporates:
2016-03-08 intprops: make .h file license match module
2016-03-08 acl: fix missing return on Cygwin
2016-03-05 extern-inline: port to PGI CC
* doc/misc/texinfo.tex, lib/intprops.h, lib/set-permissions.c:
* m4/extern-inline.m4:
Copy from gnulib.
Paul Eggert [Thu, 10 Mar 2016 15:34:52 +0000 (07:34 -0800)]
Rework C source files to avoid ^(
Work around Bug#22884 by rewording comments and strings to avoid ‘(’
at the start of a line unless it starts a function. This change
is a short-term hack; in the longer run we plan to fix cc-mode’s
performance for C files that have ‘(’ at the start of a line in a
comment or string.
Alain Schneble [Thu, 10 Mar 2016 14:43:09 +0000 (16:43 +0200)]
Fix asynchronous TLS connections on MS-Windows
* src/w32.c (sys_write): Don't switch the socket to blocking mode
if the connection attempt is in progress. Instead, return either
EWOULDBLOCK immediately if the connection is in progress, or the
error code produced by '_sys_wait_connect' if the connection
failed. Switching the socket to blocking mode was found to
interfere with GnuTLS handshake. (Bug#22789)
Dmitry Gutov [Thu, 10 Mar 2016 12:35:45 +0000 (14:35 +0200)]
Indent methods with keyword names correctly
* lisp/progmodes/ruby-mode.el (ruby-smie--at-dot-call):
Rename to ruby-smie--before-method-name. Now also check if we're
after a 'def' keyword. Update both callers.
Dmitry Gutov [Thu, 10 Mar 2016 02:13:25 +0000 (04:13 +0200)]
Propertize character literals and special global variables differently
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize): Propertize
character literals and global variables with special names with
prefix and symbol syntax classes, for SMIE to tokenize them
together automatically.
(ruby-font-lock-keywords): Fix an old regression in highlighting
character literals.
Alan Mackenzie [Thu, 10 Mar 2016 11:42:32 +0000 (11:42 +0000)]
Clarify the documentation of nested comments.
* doc/lispref/syntax.texi (Syntax Flags): State that only comments of the same
style are recognized inside nestable comments.
(Low-Level Parsing): Clarify that parsing will stop after the start or end of
UNNESTED comments.