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>
* 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.
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.
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.
Dmitry Gutov [Wed, 9 Mar 2016 14:43:51 +0000 (16:43 +0200)]
Propertize operator symbol names with symbol syntax class
* lisp/progmodes/ruby-mode.el (ruby-syntax-propertize):
Do it here.
(ruby-font-lock-keywords): Instead of handling them here. Leave
highlighting them to the "normal" matcher, because now we can.
(ruby-smie--forward-token, ruby-smie--backward-token):
Likewise, don't special-case operator symbols anymore.
(ruby-smie--args-separator-p): Simplify the regexp, match operator
names with \s_.
(ruby-smie--implicit-semi-p): Handle the special cases of ? and =
at EOL the same way: check if the character has been assigned the
symbol syntax class by syntax-propertize.
Dmitry Gutov [Tue, 8 Mar 2016 19:16:54 +0000 (21:16 +0200)]
Stop recognizing :#{} as symbol in ruby-mode
* lisp/progmodes/ruby-mode.el (ruby-font-lock-keywords): Remove
the weird part that recognized colon followed by interpolation
construct without quotes (e.g. ':#{abc}') as symbol, which is just a
syntax error in any modern version of Ruby. Fix nearby bug reference.
Dmitry Gutov [Tue, 8 Mar 2016 13:46:19 +0000 (15:46 +0200)]
Allow using the left shift operator without spaces on both sides
* lisp/progmodes/ruby-mode.el (ruby-singleton-class-p): Rename to
ruby-verify-heredoc, reverse the meaning of the return value, and
short-circuit if preceded by a symbol not separated by whitespace.
* test/automated/ruby-mode-tests.el (ruby-no-heredoc-left-shift)
(ruby-no-heredoc-class-self): New tests.
Andreas Schwab [Tue, 8 Mar 2016 20:32:52 +0000 (21:32 +0100)]
Properly handle unquoting in wdired (bug 22938)
The recorded old names are not quoted, don't unquote them.
* lisp/wdired.el (wdired-normalize-filename): Add argument
unquotep, only unquote if non-nil.
(wdired-get-filename): Don't unquote the old file name.
(wdired-get-previous-link): Always unquote.
Martin Rudalics [Tue, 8 Mar 2016 07:51:38 +0000 (08:51 +0100)]
Optionally reuse tooltip frames instead of deleting/recreating them.
* src/frame.c (tooltip_reuse_hidden_frame): New option.
* src/w32fns.c (x_create_tip_frame): Remove argument TEXT. Fix
handling of dividers.
(x_hide_tip): New function.
(Fx_show_tip): Try to reuse old tooltip frame when
`tooltip-reuse-hidden-frame' is non-nil and frame parameters
have not changed. Insert STRING here instead of passing it to
x_create_tip_frame. Compute size of tooltip window with
Fwindow_text_pixel_size. Obey Vw32_tooltip_extra_pixels when
padding tooltip window.
(Fx_hide_tip): Call x_hide_tip.
(Vw32_tooltip_extra_pixels): New variable.
* src/xdisp.c (Fwindow_text_pixel_size): Don't return negative y
value. Fix doc-string.
* src/xfns.c (x_create_tip_frame): Remove argument TEXT. Call
make_frame with mini_p argument false.
(x_hide_tip): New function.
(Fx_show_tip): Try to reuse old tooltip frame when
`tooltip-reuse-hidden-frame' is non-nil and frame parameters
have not changed. Insert STRING here instead of passing it to
x_create_tip_frame. Compute size of tooltip window with
Fwindow_text_pixel_size.
(Fx_hide_tip): Call x_hide_tip.
* lisp/cus-start.el (tooltip-reuse-hidden-frame): Add
customization entry.
Paul Eggert [Tue, 8 Mar 2016 02:54:25 +0000 (18:54 -0800)]
Assume getaddrinfo in C code
* admin/CPP-DEFINES, configure.ac: Remove HAVE_GETADDRINFO, HAVE_H_ERRNO.
All uses removed.
* doc/lispref/processes.texi (Network, Network Processes), etc/NEWS:
Say that port numbers can be integer strings.
* lib-src/pop.c (h_errno) [!WINDOWSNT && !HAVE_H_ERRNO]: Remove decl.
(socket_connection): Assume HAVE_GETADDRINFO.
* lisp/mpc.el (mpc--proc-connect):
* lisp/net/network-stream.el (open-network-stream):
It’s now OK to use integer strings as port numbers.
* src/process.c (conv_numerical_to_lisp) [!HAVE_GETADDRINFO]: Remove.
(Fmake_network_process): Assume HAVE_GETADDRINFO.
Dmitry Gutov [Mon, 7 Mar 2016 00:58:49 +0000 (02:58 +0200)]
Guard against nested percent literals
* lisp/progmodes/ruby-mode.el
(ruby-syntax-propertize-percent-literal):
Don't check the syntax status.
(ruby-syntax-propertize): Check it here. And also guard against
being in a larger percent literal.
* test/automated/ruby-mode-tests.el
(ruby-no-nested-percent-literals): New test.
Dmitry Gutov [Sun, 6 Mar 2016 21:18:06 +0000 (23:18 +0200)]
Recognize iuwu-mod after an escaped newline
* lisp/progmodes/ruby-mode.el (ruby-smie--bosp): Check if the
newline is escaped.
(ruby-smie-rules): Indent iuwu-mod after an escaped newline
correctly.
Ken Brown [Sun, 6 Mar 2016 17:08:39 +0000 (12:08 -0500)]
Fix Cygwin-w32 build
* src/w32fns.c (funhook, setup_w32_kbdhook, remove_w32_kbdhook):
Define only if WINDOWSNT, and update all uses accordingly.
* src/w32term.h (check_w32_winkey_state, setup_w32_kbdhook)
(remove_w32_kbdhook): Declare only if WINDOWSNT.
(w32_kbdhook_active): Define as 0 if not WINDOWSNT.
Eli Zaretskii [Sun, 6 Mar 2016 16:52:32 +0000 (18:52 +0200)]
Unbreak the MinGW64 build
* nt/inc/ms-w32.h [MINGW_W64]: Undefine HAVE_GAI_STRERROR. See
http://lists.gnu.org/archive/html/emacs-devel/2016-03/msg00130.html
for the details. Reported by Angelo Graziosi
<angelo.graziosi@alice.it>.
Eli Zaretskii [Sun, 6 Mar 2016 16:14:46 +0000 (18:14 +0200)]
Speed up redisplay of binary files with long series of nulls
* src/bidi.c (bidi_resolve_weak): Avoid entering a loop searching
for a character needed for resolving the type of a series of BN
and ET characters, as required by rule W5 of UAX#9, if the results
of the resolution are known in advance, because we are at level
zero, and the previous strong character was L.
(bidi_resolve_neutral): Partially resurrect the optimization for a
long series of control characters in an otherwise strictly L2R
text.
(bidi_level_of_next_char): Don't enter the loop that searches for
a paragraph separator if the current character is already at base
embedding level. (Bug#22739)
Dmitry Gutov [Sun, 6 Mar 2016 00:40:49 +0000 (02:40 +0200)]
Remove the highlighting support for quoting 'like this' inside Lisp docstrings
Remove the highlighting support for quoting 'like this' inside
Lisp docstrings. This part of c4151ebe15479de4c2e511b068cdf9af6a4576cf seems to have been
unintentional, considering substitute-command-keys gives wrong
output for such usage.
* lisp/emacs-lisp/lisp-mode.el (lisp-el-font-lock-keywords-2)
(lisp-cl-font-lock-keywords-2): Do not highlight text between two
straight quotes as symbol.
Paul Eggert [Sat, 5 Mar 2016 19:30:51 +0000 (11:30 -0800)]
Restore leading space in movemail pop output
* lib-src/movemail.c (movemail_strftime) [WINDOWSNT]: New function.
(strftime) [WINDOWSNT]: New macro.
(mbx_delimit_begin): Go back to previous version of this code,
now that there’s a special-purpose WINDOWSNT implementation
that should do the right thing. That way, the output continues
to use leading space rather than leading zero for day of month.
* lisp/net/gnutls.el (gnutls-negotiate): Make negotiation blocking.
* src/gnutls.c (Fgnutls_boot): Provide a new keyword,
:complete-negotiation, to specify that we want complete
negotiation even if the socket is non-blocking.
(gnutls_try_handshake): Complete negotiation if given that keyword.
Eli Zaretskii [Sat, 5 Mar 2016 10:57:06 +0000 (12:57 +0200)]
Fix mbox files produced by movemail on MS-Windows
* lib-src/movemail.c (mbx_delimit_begin): Use portable strftime
format specifiers, as at least the MS-Windows version of strftime
doesn't support %e and %T.
Eli Zaretskii [Sat, 5 Mar 2016 10:12:58 +0000 (12:12 +0200)]
Implement getaddrinfo fallback for MS-Windows
See http://lists.gnu.org/archive/html/emacs-devel/2016-02/msg01602.html
for more details.
* nt/mingw-cfg.site (ac_cv_func_getaddrinfo)
(ac_cv_func_gai_strerror): Set to "yes", as the configure script's
test program is not smart enough to auto-detect these.
* nt/inc/sys/socket.h (getaddrinfo, freeaddrinfo): Redirect to
sys_getaddrinfo and sys_freeaddrinfo. Provide prototypes for
sys_getaddrinfo and sys_freeaddrinfo.
* src/w32.c (init_winsock): Try loading getaddrinfo and
freeaddrinfo from ws2_32.dll.
(sys_getaddrinfo, sys_freeaddrinfo): New functions.
* lib-src/pop.c [WINDOWSNT]: Include winsock2.h, not winsock.h,
and also ws2tcpip.h.
(getaddrinfo, freeaddrinfo) [WINDOWSNT]: Redirect to
sys_getaddrinfo and sys_freeaddrinfo, respectively.
(load_ws2, sys_getaddrinfo, sys_freeaddrinfo) [WINDOWSNT]: New
functions.