Commit graph

39877 commits

Author SHA1 Message Date
Alan Third
3db0dc2168 Fix crash when closing fullscreen frame on macOS (bug#28661)
* src/nsterm.m (EmacsView::windowWillResize): Return new frame size
unmodified if the frame isn't live.
2017-10-07 21:57:16 +01:00
Piotr Trojanek
0fa353b504 * src/gnutls.c (syms_of_gnutls): Remove duplicated call to DEFSYM.
Copyright-paperwork-exempt: yes.
2017-10-07 17:54:36 +03:00
Eli Zaretskii
75174a632d Fix glitches in displaying TTY menus
* src/dispnew.c (update_frame_line): Accept an additional argument
UPDATING_MENU_P; if non-zero, home the cursor before updating a
frame's line.  All callers changed.
(update_frame_1): Accept an additional argument UPDATING_MENU_P,
and pass it to update_frame_line.  All callers changed.
(update_frame_with_menu): Call update_frame_1 with last argument
non-zero.  (Bug#17497)
2017-10-07 14:20:42 +03:00
Paul Eggert
9226cf3254 Fix bug in recent styled_format change
Problem reported by Kaushal Modi in:
http://lists.gnu.org/archive/html/emacs-devel/2017-10/msg00141.html
* src/editfns.c (styled_format): Fix bug where USE_SAFE_ALLOCA was
not always followed by SAFE_FREE.  This bug was introduced in my
patch 2017-09-26T23:31:57Z!eggert@cs.ucla.edu entitled "Avoid some
unnecessary copying in Fformat etc."
2017-10-06 10:33:53 -07:00
Piotr Trojanek
560dd9b573 * src/process.c (syms_of_process): Remove duplicated call to DEFSYM.
Fixes: Bug#28721

Copyright-paperwork-exempt: yes.
2017-10-06 17:12:31 +03:00
Paul Eggert
db893ab863 Fix bug with unmounted directory on GNU/Linux
* src/sysdep.c (emacs_get_current_dir_name): Do not use
get_current_dir_name result unless it is absolute (Bug#27871).
2017-10-05 16:05:49 -07:00
Johan Bockgård
3d8df4d636 Fix search for ~/.Xdefaults-HOSTNAME
* src/xrdb.c (get_environ_db): Fix typo when handling
~/.Xdefaults-HOSTNAME (Bug#28708).
2017-10-04 15:25:08 -07:00
Paul Eggert
3db388b0bf Speed up (format "%s" STRING) and the like
Although the Lisp manual said that ‘format’ returns a
newly-allocated string, this was not true for a few cases like
(format "%s" ""), and fixing the documentation to allow reuse of
arguments lets us improve performance in common cases like
(format "foo") and (format "%s" "foo") (Bug#28625).
* doc/lispref/strings.texi (Formatting Strings):
* etc/NEWS:
Say that the result of ‘format’ might not be newly allocated.
* src/callint.c (Fcall_interactively):
* src/dbusbind.c (XD_OBJECT_TO_STRING):
* src/editfns.c (Fmessage, Fmessage_box):
* src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
Just use Fformat or Fformat_message, as that’s simpler and no
longer makes unnecessary copies.
* src/editfns.c (styled_format): Remove last argument, as it
is no longer needed: all callers now want it to behave as if it
were true.  All remaining callers changed.  Make this function
static again.  Simplify the function now that we no longer
need to worry about whether the optimization is allowed.
2017-10-04 14:45:08 -07:00
Eli Zaretskii
ea39d470bf Avoid crashes on C-g when several threads wait for input
* src/thread.h (m_getcjmp): New member of 'struct thread_state'.
(getcjmp): Define to current thread's 'm_getcjmp'.
* src/thread.c (maybe_reacquire_global_lock): Switch to main
thread, since this is called from a SIGINT handler, which always
runs in the context of the main thread.
* src/lisp.h (sys_jmp_buf, sys_setjmp, sys_longjmp): Move the
definitions before thread.h is included, as thread.h now uses
sys_jmp_buf.
* src/keyboard.c (getcjmp): Remove declaration.
(read_char): Don't call maybe_reacquire_global_lock here.
(handle_interrupt): Call maybe_reacquire_global_lock here, if
invoked from the SIGINT handler, to make sure
quit_throw_to_read_char runs with main thread's Lisp bindings and
uses the main thread's jmp_buf buffer.  (Bug#28630)
2017-10-04 10:27:49 +03:00
Philipp Stephani
0fff900c18 Work around deprecation of gtk_style_context_get_background_color
* src/gtkutil.c (xg_check_special_colors): Replace call to
gtk_style_context_get_background_color with its definition.
2017-10-03 14:58:19 +02:00
Eli Zaretskii
d09ac15005 Fix the --without-x build
* src/frame.c (Ficonify_frame) [HAVE_WINDOW_SYSTEM]: Use
frame_parent only in GUI builds to avoid compilation errors in
--without-x builds.  (Bug#28611)
2017-10-02 21:35:51 +03:00
Paul Eggert
5172fa02cc Prefer HTTPS to HTTP for gnu.org
This fixes some URLs I omitted from my previous pass,
notably those in lists.gnu.org.  Although lists.gnu.org
does not yet support TLS 1.1, TLS 1.0 is better than nothing.
* lisp/erc/erc.el (erc-official-location):
* lisp/mail/emacsbug.el (report-emacs-bug):
Use https:, not http:.
2017-10-01 19:59:01 -07:00
Paul Eggert
8cdd8b920a Merge from Gnulib
This is mostly to change http: to https: in licenses.
* COPYING, build-aux/config.guess, build-aux/config.sub:
* doc/emacs/doclicense.texi, doc/emacs/gpl.texi:
* doc/lispintro/doclicense.texi, doc/lispref/doclicense.texi:
* doc/lispref/gpl.texi, doc/misc/doclicense.texi:
* doc/misc/gpl.texi, etc/COPYING, leim/COPYING:
* lib-src/COPYING, lib/COPYING, lisp/COPYING, lwlib/COPYING:
* msdos/COPYING, nt/COPYING, src/COPYING:
Copy from Gnulib.
2017-10-01 18:31:10 -07:00
Alan Mackenzie
5f76ac150a Make the value nil in text-quoting-style mean what it does in Emacs 25.
This is a partial reversion of yesterday's commit by the same author, which
changed the meaning of nil and introduced the new value t.

* src/doc.c (text_quoting_style, text-quoting-style)
(internal--text-quoting-flag): Revert yesterday's changes.

* lisp/cus-start.el: (top level): Amend the entry for text-quoting-style.

* etc/NEWS: Amend the entry for text-quoting-style.

* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Bind text-quoting-style to
grave rather than nil to inhibit translation of quotes.

* doc/lispref/help.texi (Keys in Documentation): Revert the description of the
proposed new default, t.
2017-10-01 11:27:16 +00:00
Alan Mackenzie
d5e4e004fa Make text-quoting-style customizable. Introduce t and new meaning for nil.
A value of nil for text-quoting-style now means "no translation".  t means
"Use curved quotes if displayable".

* src/doc.c (text-quoting-style (function)): modify for new semantics.
(text-quoting-style (variable)): Amend the doc string, set the default value
to t.

* lisp/cus-start.el: (top level): Create a customize entry for
text-quoting-style in group display.

* etc/NEWS: Amend the entry for text-quoting-style.

* doc/emacs/display.texi (Text Display): Describe the translation of ASCII
quotes to curved quotes, and how to influence or inhibit it.

* doc/lispref/control.texi (Signalling Errors)
* doc/lispref/display.texi (Displaying Messages)
* doc/lispref/strings.texi (Formatting Strings): Describe binding
text-quoting-style to nil to inhibit unwanted quote translation.

* doc/lispref/help.texi (Keys in Documentation): Change text-quoting-style
from a variable to a user option.  Describe its changed set of values.  State
that it can be customized freely.
2017-10-01 11:27:15 +00:00
Martin Rudalics
b03b4f6d79 Improve handling of iconification of child frames (Bug#28611)
* src/frame.c (Ficonify_frame): Handle `iconify-child-frame' option.
(syms_of_frame): New symbols Qiconify_top_level and Qmake_invisible.
(iconify_child_frame): New option.
* lisp/cus-start.el (iconify-child-frame): Add customization
properties.
* doc/lispref/frames.texi (Child Frames): Describe new option
`iconify-child-frame'.  Don't index "top-level frame" twice.
2017-10-01 10:17:17 +02:00
Eli Zaretskii
cb93a6ce72 Improve documentation of 'copy-sequence'
* src/fns.c (Fcopy_sequence):
* doc/lispref/sequences.texi (Sequence Functions): Mention the
exception when copying an empty sequence.  (Bug#28627)
2017-09-30 16:01:00 +03:00
Mark Oteiza
645ff6c702 Add CAM02 JCh and CAM02-UCS J'a'b' conversions
* src/lcms.c (rad2deg, parse_jch_list, parse_jab_list, xyz_to_jch):
(jch_to_xyz, jch_to_jab, jab_to_jch): New functions.
(lcms-jch->xyz, lcms-jch->xyz, lcms-jch->jab, lcms-jab->jch): New Lisp
functions.
(lcms-cam02-ucs): Refactor.
(syms_of_lcms2): Declare new functions.
* test/src/lcms-tests.el (lcms-roundtrip, lcms-ciecam02-gold):
(lcms-jmh->cam02-ucs-silver): New tests.
* etc/NEWS: Mention new functions.
2017-09-30 08:00:53 -04:00
Paul Eggert
cbc8324488 Prefer HTTPS to HTTP for gnu.org
This catches some URLs I missed in my previous scan,
or perhaps were added after the scan.
2017-09-29 17:48:22 -07:00
Noam Postavsky
695cf5300b Wait for frame visibility with timeout in w32term too
* src/w32term.c (syms_of_w32term) [x-wait-for-event-timeout]: New
variable.
(x_make_frame_visible): Wait for frame to become visible according to
its value.
(input_signal_count): Remove.
2017-09-29 18:40:06 -04:00
Noam Postavsky
e1f6e3127a Bring back the busy wait after x_make_frame_visible (Bug#25521)
But wait specfically for a MapNotify event, and only for a
configurable amount of time.
* src/xterm.c (syms_of_xterm) [x-wait-for-event-timeout]: New
variable.
(x_wait_for_event): Use it instead of hardcoding the wait to 0.1s.
(x_make_frame_visible): Call x_wait_for_event at the end.
* etc/NEWS: Announce x_wait_for_event.
2017-09-29 18:40:06 -04:00
Philipp Stephani
bccf635217 ; * src/gtkutil.c (xg_check_special_colors): Add another GTK+ FIXME. 2017-09-29 22:47:33 +02:00
Alan Third
7476eeaa23 Revert "Fix build on macOS (bug#28571)"
This reverts commit fec63089d5.

Prematurely pushed.
2017-09-28 22:27:02 +01:00
Alan Third
fec63089d5 Fix build on macOS (bug#28571)
* src/conf_post.h (HAVE_FUTIMENS, HAVE_FUTIMESAT, HAVE_UTIMENSAT)
[DARWIN_OS]: Undefine.
2017-09-28 19:01:12 +01:00
Martin Rudalics
88a0dd71f1 In w32fullscreen_hook don't add decorations to undecorated frames
* src/w32term.c (w32fullscreen_hook): Do not add (or try to
remove) decorations for undecorated frames.
2017-09-28 10:10:21 +02:00
Paul Eggert
a3f647c5c8 * src/editfns.c (styled_format): Fix typo in previous change. 2017-09-26 17:16:19 -07:00
Paul Eggert
0e82fa3416 Avoid some unnecessary copying in Fformat etc.
This patch is just for performance; it should not affect behavior.
On my platform, it made the microbenchmark (format "%S" load-path)
run about 45% faster.  It should also speed up calls like (message
"%s" STRING).
* src/callint.c (Fcall_interactively):
* src/dbusbind.c (XD_OBJECT_TO_STRING):
* src/editfns.c (Fmessage, Fmessage_box):
* src/xdisp.c (vadd_to_log, Ftrace_to_stderr):
Use styled_format instead of Fformat or Fformat_message,
to avoid unnecessary copying.
* src/editfns.c (styled_format): New arg NEW_RESULT.
All uses changed.  Reuse an input string if it has the
right value and if !NEW_RESULT.
* src/lisp.h (style_format): New decl.
2017-09-26 16:36:43 -07:00
Philipp Stephani
1e5949642a ; * src/gtkutil.c (xg_create_frame_widgets): Add FIXME re. X drawing 2017-09-26 20:34:27 +02:00
Alan Third
638f64c40a Improve new NS scrolling variable names
* src/nsterm.m (ns-use-system-mwheel-acceleration): Replace with
'ns-use-mwheel-acceleration'.
(ns-touchpad-scroll-line-height): Replace with
'ns-mwheel-line-height'.
(ns-touchpad-use-momentum): Replace with 'ns-use-mwheel-momentum'.
* etc/NEWS: Change variable names.
2017-09-24 22:47:50 +01:00
Alan Third
00e4e3e9d2 Fix undecorated frame resizing issues on NS (bug#28512)
* src/nsterm.m (EmacsView::updateFrameSize): Don't wait for the
toolbar on undecorated frames.
(EmacsView::initFrameFromEmacs): Group window flags correctly.
2017-09-23 19:47:21 +01:00
Mark Oteiza
d24ec58540 Expose viewing conditions in CAM02-UCS metric
Also add tests from the colorspacious library.  Finally, catch an
errant calculation, where degrees were not being converted to radians.
* src/lcms.c (deg2rad, default_viewing_conditions):
(parse_viewing_conditions): New functions.
(lcms-cam02-ucs): Add comments pointing to references used.  Expand
the docstring and explain viewing conditions.  JCh hue is given in
degrees and needs to be converted to radians.
(lcms-d65-xyz): Remove.  No need to duplicate this in Lisp or make the
API needlessly impure.
* test/src/lcms-tests.el: Reword commentary.
(lcms-rgb255->xyz): New function.
(lcms-cri-cam02-ucs): Fix let-binding.
(lcms-dE-cam02-ucs-silver): New test, assimilated from colorspacious.
2017-09-21 23:06:00 -04:00
Alan Third
a81d5a3d3f Revert "Set frame size to actual requested size (bug#18215)"
This reverts commit d31cd79b40.

See bug#28536. I misunderstood bug#18215. It wasn't a bug.
2017-09-21 22:08:48 +01:00
Alan Third
a5fec62b51 Provide native touchpad scrolling on macOS
* etc/NEWS: Describe changes.
* lisp/term/ns-win.el (mouse-wheel-scroll-amount,
mouse-wheel-progressive-speed): Set to smarter values for macOS
touchpads.
* src/nsterm.m (emacsView::mouseDown): Use precise scrolling deltas to
calculate scrolling for touchpads and mouse wheels.
(syms_of_nsterm): Add variables 'ns-use-system-mwheel-acceleration',
'ns-touchpad-scroll-line-height' and 'ns-touchpad-use-momentum'.
* src/keyboard.c (make_lispy_event): Pass on .arg when relevant.
* src/termhooks.h (event_kind): Update comments re. WHEEL_EVENT.
* lisp/mwheel.el (mwheel-scroll): Use line count.
* lisp/subr.el (event-line-count): New function.
2017-09-19 20:08:51 +01:00
Eli Zaretskii
7b3d1c6beb Fix MinGW64 build broken by recent MinGW64 import libraries
* configure.ac (W32_LIBS): Put -lusp10 before -lgdi32, as latest
MinGW64 import libraries require that.  (Bug#28493)

* src/Makefile.in: Adjust commentary to the new order of w32
libraries.
2017-09-19 20:31:02 +03:00
Eli Zaretskii
c83d0c5fdf Fix crashes in 'move-point-visually' in minibuffer windows
* src/xdisp.c (Fmove_point_visually): Fix off-by-one error in
comparing against the last valid glyph_row of a window glyph
matrix.  (Bug#28505)
2017-09-19 20:11:42 +03:00
Eli Zaretskii
7f3d5f929d * src/emacs.c (usage_message): Don't mention 'find-file'. 2017-09-19 19:52:50 +03:00
Paul Eggert
059184e645 Avoid crash with C-g C-g in GC
Problem reported by Richard Stallman (Bug#17406).
Based on fix suggested by Eli Zaretskii (Bug#28279#16).
* src/term.c (tty_send_additional_strings):
Use only safe accessors, to avoid crash when C-g C-g in GC.
2017-09-17 22:03:00 -07:00
Paul Eggert
541006c536 Fix format-time-string %Z bug with negative tz
* src/editfns.c (tzlookup): Fix sign error in %Z when a purely
numeric zone is negative (Bug#28746).
* test/src/editfns-tests.el (format-time-string-with-zone):
Add test for this bug.
2017-09-17 20:39:12 -07:00
Paul Eggert
5f28f0db73 Fix bug with min and max and NaNs
* src/data.c (minmax_driver): Fix bug with (min 0 NaN), which
mistakenly yielded 0.  Also, pacify GCC in a better way.
* test/src/data-tests.el (data-tests-min): Test for the bug.
2017-09-17 15:26:41 -07:00
Eli Zaretskii
411bec82c4 Avoid GCC 7 compilation warning in eval.c
* src/eval.c (push_handler_nosignal): Use CACHEABLE to work around
GCC compilation warning.  Suggested by Paul Eggert <eggert@cs.ucla.edu>
in http://lists.gnu.org/archive/html/emacs-devel/2017-09/msg00492.html.
2017-09-17 19:50:43 +03:00
Eli Zaretskii
96aaeaaffa ; * src/lcms.c: Minor stylistic changes in comments. 2017-09-16 22:25:13 +03:00
Mark Oteiza
5490ccc5eb Add lisp variable lcms-d65-xyz
This serves as the default optional argument for functions in this
library.
* src/lcms.c (lcms-d65-xyz): New variable.
(lcms-cam02-ucs): Use it.  Use better word in docstring.  Fix bug
color1 -> color2.
* test/src/lcms-tests.el: Add some tests for lcms-cri-cam02-ucs.
(lcms-colorspacious-d65): New variable.
2017-09-16 12:49:28 -04:00
Andy Moreton
12e864eb30 Avoid MinGW64 compiler warnings in unexw32.c
* src/unexw32.c (pDWP) [MINGW_W64]: Define to "16llx" only for the
64-bit build.
2017-09-16 16:44:39 +03:00
Eli Zaretskii
2d53f8783f Fix order of sorted overlays returned by 'overlays-at'
* src/buffer.c (Foverlays_at): If SORTED is non-nil, reverse the
list of results, to have their order as per the documentation.
(Bug#28390)

* etc/NEWS: Mention the change in the behavior of overlays-at.
2017-09-16 13:02:31 +03:00
Eli Zaretskii
a103dbe360 Disable execution of unsafe Lisp by Enriched Text mode
* src/xdisp.c (handle_display_spec): If the display property is
wrapped in 'disable-eval' form, disable Lisp evaluation while
processing this property.
(handle_single_display_spec): Accept new argument ENABLE_EVAL_P.
If that argument is false, don't evaluate Lisp while processing
display properties.

* lisp/textmodes/enriched.el
(enriched-allow-eval-in-display-props): New defcustom.
(enriched-decode-display-prop): If
enriched-allow-eval-in-display-props is nil, wrap the display
property with 'disable-eval' to disable Lisp evaluation when the
display property is processed for display.  (Bug#28350)
* lisp/gnus/mm-view.el (mm-inline-text): Re-enable processing of
enriched text.

* doc/lispref/display.texi (Display Property): Document the
'disable-eval' wrapping of 'display' properties.
* doc/emacs/text.texi (Enriched Properties): Document
'enriched-allow-eval-in-display-props'.

* etc/NEWS: Describe the security issues with Enriched Text mode
and their solution.
2017-09-16 12:45:24 +03:00
Eli Zaretskii
6d6dc246f9 Avoid MinGW64 compilation warning in w32.c
* src/w32.c (sys_strerror): Provide a prototype for MinGW64.
2017-09-16 11:51:24 +03:00
Eli Zaretskii
d25d2a9b2d ; * src/data.c (minmax_driver): Fix last change. 2017-09-16 11:01:19 +03:00
Eli Zaretskii
1170c2f371 Fix MS-Windows build broken by recent changes in lcms.c
* src/lcms.c [WINDOWSNT]: Define types for cmsWhitePointFromTemp
and cmsxyY2XYZ function pointers.
(init_lcms_functions) [WINDOWSNT]: Load cmsWhitePointFromTemp and
cmsxyY2XYZ from liblcms2.
(cmsWhitePointFromTemp, cmsxyY2XYZ) [WINDOWSNT]: Redirect to the
corresponding function pointers.
(Flcms_temp_to_white_point): Minor stylistic changes.  Doc fix.
(syms_of_lcms2): Defsubr Slcms_temp_to_white_point.
2017-09-16 10:41:52 +03:00
Eli Zaretskii
cb27a13413 Avoid GCC 7 compilation warning in data.c
* src/data.c (minmax_driver): Use UNINIT to avoid compilation
warnings.  Reported by Fabrice Popineau
<fabrice.popineau@centralesupelec.fr>.
2017-09-16 10:31:32 +03:00
Mark Oteiza
f5f261c690 Add lcms-temp->white-point and initial tests
* src/lcms.c (lcms-temp->white-point): New function.
* test/src/lcms-tests.el: New file.
2017-09-15 23:49:42 -04:00