Jay Belanger [Thu, 8 Oct 2015 13:32:00 +0000 (08:32 -0500)]
Format initial input uniformly.
* lisp/calc/calc.el (calc-digit-start-entry): New function.
* lisp/calc/calc.el (calcDigit-start):
* lisp/calc/calc-aent.el (calc-alg-digit-entry):
Use `calc-digit-start-entry' to format input.
Ken Raeburn [Mon, 5 Oct 2015 15:11:32 +0000 (11:11 -0400)]
Disable non-working pointerColor setting for X tooltip frame.
It generates a bunch of server traffic, but there's some bug wherein
the new mouse cursor settings don't seem to get used. In most
situations the cursor isn't likely to be seen anyway, so it's not
urgent to fix.
* src/xfns.c (x_create_tip_frame): Don't set pointerColor.
Ken Raeburn [Sun, 4 Oct 2015 13:54:44 +0000 (09:54 -0400)]
Reduce some unnecessary X calls.
* src/xfns.c (x_real_pos_and_offsets): Remove a redundant XGetGeometry
call. If border width is wanted, get it from the XGetGeometry call
instead of calling XGetWindowAttributes on the same window. Skip some
X calls if we've already detected an error from the X server.
* src/xterm.c (x_wm_supports): Delete x_sync before x_had_errors_p.
(handle_one_xevent): Delete XSync call before x_uncatch_errors.
Ken Raeburn [Sat, 3 Oct 2015 04:18:50 +0000 (00:18 -0400)]
Reduce color allocation/query traffic in the TrueColor case.
When working with an X visual with TrueColor class, pixel values can
be generated from the RGB values according to mask value provided by
the server on connection. Some of the image-handling code was already
doing this.
* src/xterm.h (x_make_truecolor_pixel): New function; code taken from
lookup_rgb_color.
(x_mutable_colormap): New function.
* src/image.c (lookup_rgb_color): Move pixel composition code to
x_make_truecolor_pixel.
(x_kill_gs_process): Call x_mutable_colormap.
* src/xfaces.c (x_free_colors, x_free_dpy_colors): Call
x_mutable_colormap.
* src/xftfont.c (xftfont_get_colors): Call x_query_colors.
* src/xterm.c (x_query_colors): For a TrueColor display, decompose the
pixel value into RGB values directly, and don't send a request to the
server.
(x_alloc_nearest_color): For a TrueColor display, construct the pixel
value with x_make_truecolor_pixel.
(x_copy_color): For an immutable color map, just return the provided
pixel value.
Ken Raeburn [Sat, 3 Oct 2015 04:15:54 +0000 (00:15 -0400)]
Cache XParseColor results in the X display info structure.
With repeated lookups of foreground and background colors for multiple
faces per frame, we issue a lot of redundant color name lookups to the
X server, waiting every time for the response. On a remote network
with, say, 30ms round-trip time, this can add nearly a full second to
creation of a new frame.
* src/gtkutil.c (xg_check_special_colors): Call x_parse_color.
* src/image.c (get_spec_bg_or_alpha_as_argb):
(xpm_init_color_cache, xpm_lookup_color):
* src/xfns.c (x_defined_color):
* src/xterm.c (x_parse_color): New function; caches color names not
starting with "#" in the display-info structure.
(x_delete_display): Delete the cache content.
* src/xterm.h (struct color_name_cache_entry): New type.
(x_parse_color): Declare.
(struct x_display_info): Add a new field for the cache.
Paul Eggert [Tue, 6 Oct 2015 20:33:50 +0000 (13:33 -0700)]
Fix bug in GC_CHECK_MARKED_OBJECTS check
* src/alloc.c (mark_object): Fix bug in checking code.
When GC_CHECK_MARKED_OBJECTS is defined, the bug caused
CHECK_ALLOCATED_AND_LIVE_SYMBOL to repeatedly do the
CHECK_ALLOCATED and CHECK_LIVE tests for the first symbol in each
bucket. The bug did not affect behavior either in the normal case
where GC_CHECK_MARKED_OBJECTS is not defined, or where Emacs does
not have an internal error that a properly-written
CHECK_ALLOCATED_AND_LIVE_SYMBOL would detect.
Eli Zaretskii [Tue, 6 Oct 2015 16:08:21 +0000 (19:08 +0300)]
Fix display of characters adjacent to ZWJ and ZWNJ
* src/bidi.c (bidi_resolve_neutral): Treat all Bn (a.k.a. "control")
characters the same as directional formatting controls.
(bidi_level_of_next_char): Include all Bn characters in rule L1,
as mandated by the UBA.
Eli Zaretskii [Mon, 5 Oct 2015 07:22:08 +0000 (10:22 +0300)]
Remove redundant redisplay code
* src/xdisp.c (redisplay_internal, try_cursor_movement)
(try_window_reusing_current_matrix, try_window_id): Remove
redundant restrictions on redisplay optimizations based on the
frame's 'redisplay' flag. See
http://osdir.com/ml/general/2015-10/msg02110.html for the relevant
discussions.
Michael Albinus [Sun, 4 Oct 2015 11:00:33 +0000 (13:00 +0200)]
Improve XEmacs compatibility of Tramp
* lisp/net/tramp-compat.el (directory-listing-before-filename-regexp):
Declare if it doesn't exist.
(file-remote-p): Remove defalias, which was necessary for GNU Emacs 21.
(redisplay): Make it an alias if it doesn't exist.
* lisp/net/tramp.el (tramp-get-remote-tmpdir): Don't use
`file-remote-p' (due to XEmacs compatibility).
* lisp/net/trampver.el (locate-dominating-file)
(tramp-compat-replace-regexp-in-string): Autoload.
(tramp-repository-get-version): Do not dupe byte-compiler.
Eli Zaretskii [Thu, 9 Jul 2015 02:38:29 +0000 (05:38 +0300)]
shr: fix too long lines in rendered buffers (Bug#21012)
Co-authored-by: Michael Heerdegen <michael_heerdegen@web.de>
* lisp/net/shr.el (shr-insert-document, shr-fill-text):
Correct calculation of available width.
(shr-find-fill-point): Don't overflow window edge if shr-kinsoku-shorten
is nil.
Restore blank line before next section, erroneously erased in my previous commit
* etc/compilation.txt (symbol ant): add an additional trailing blank line to this section, so that there are two of them immediately before the next section
* lisp/json.el (json-object-type): Mention order handling in doc-string.
(json--plist-reverse): New utility function.
(json-read-object): Maintain ordering for alists and plists.
(json-pretty-print): Ensure that ordering is maintained.
* test/automated/json-tests.el (test-json-plist-reverse): New test for
`json--plist-reverse'.
(json-read-simple-alist): Update test to accommodate for changes in
`json-read-object'.
* etc/NEWS: Document the new behavior of the pretty printing functions.
Eli Zaretskii [Sat, 3 Oct 2015 11:49:16 +0000 (14:49 +0300)]
More validatation of coding system in 'write-region'
* src/coding.c (choose_write_coding_system): More validation of
coding-system from various sources. Suggested by Andreas Schwab
<schwab@linux-m68k.org>. (Bug#21602)
Eli Zaretskii [Sat, 3 Oct 2015 10:44:44 +0000 (13:44 +0300)]
Avoid crashes due to invalid coding-system
* src/fileio.c (choose_write_coding_system)
(Finsert_file_contents): Check validity of coding-system-for-write
and coding-system-for-read bound by the caller. (Bug#21602)
Paul Eggert [Fri, 2 Oct 2015 04:42:53 +0000 (21:42 -0700)]
Fix a few problems with directed quotes
This is in response to a problem report by Kaushal Modi in:
http://bugs.gnu.org/21588#25
* lisp/cedet/mode-local.el (describe-mode-local-overload):
* lisp/emacs-lisp/bytecomp.el (byte-compile-fix-header):
* lisp/info-xref.el (info-xref-check-all-custom):
* lisp/mail/emacsbug.el (report-emacs-bug-hook):
Prefer directed to undirected single quotes in diagnostics.
Eli Zaretskii [Thu, 1 Oct 2015 16:56:46 +0000 (19:56 +0300)]
Attempt to fix slow redisplay caused by last changes
* src/xdisp.c (try_window_id, try_window_reusing_current_matrix)
(try_cursor_movement): Relax requirements for redisplay
optimizations for the selected frame. (Bug#21597)
Eli Zaretskii [Thu, 1 Oct 2015 11:40:10 +0000 (14:40 +0300)]
Fix GUD display of GDB output with non-ASCII text
* lisp/progmodes/gdb-mi.el (gdb-mi-decode-strings): New defcustom.
(gdb-mi-decode): New function.
(gud-gdbmi-marker-filter): If gdb-mi-decode-strings is non-nil,
decode octal escapes in GDB output. (Bug#21572)
Eli Zaretskii [Wed, 30 Sep 2015 19:32:14 +0000 (22:32 +0300)]
Disable some display optimizations when frames need redisplay
These optimizations were previously disabled by the
windows_or_buffers_changed flag, which now is not set
when only some frames need to be redrawn.
* src/xdisp.c (redisplay_internal): Redisplay any frame whose
'redisplay' flag is set.
(try_window_reusing_current_matrix, try_window_id)
(try_cursor_movement): Disable these optimizations when the
frame's 'redisplay' flag is set.
* lisp/progmodes/prog-mode.el (prettify-symbols--compose-symbol):
(prettify-symbols--post-command-hook, prettify-symbols-mode): Don't
modify buffer when setting/removing custom prettify-symbols-start/end
text properties. Add them to font-lock-extra-managed-props, too.
Stefan Monnier [Wed, 30 Sep 2015 14:00:13 +0000 (10:00 -0400)]
Try to avoid redisplaying all frames when creating a new one
* src/xfns.c (x_set_menu_bar_lines, x_change_tool_bar_height):
* src/xfaces.c (Finternal_make_lisp_face, Finternal_copy_lisp_face)
(Finternal_set_lisp_face_attribute, update_face_from_frame_parameter):
* src/frame.c (x_set_screen_gamma): Set the specific frame's
`redisplay' bit rather than windows_or_buffers_changed.
* src/window.c (apply_window_adjustment): Remove redundant setting of
windows_or_buffers_changed.
* src/xdisp.c (redisplay_internal): Set the specific frame's
`redisplay' bit rather than update_mode_lines in response to
cursor_type_changed.
(syms_of_xdisp): Use hash-tables for redisplay_*_cause tables.
(AINC): Adjust accordingly.
* lisp/progmodes/prog-mode.el: Implement feature for unprettifying the
symbol at point.
(prettify-symbols--current-symbol-bounds): New variable.
(prettify-symbols--post-command-hook): New function.
(prettify-symbols-unprettify-at-point): New defcustom.
(prettify-symbols-mode): Use it.
(prettify-symbols--compose-symbol): Use them.
Phil Sainty [Wed, 30 Sep 2015 07:39:21 +0000 (10:39 +0300)]
Avoid empty -path arguments in rgrep
* lisp/progmodes/grep.el (rgrep-default-command): Remove nil from
the list produced according to grep-find-ignored-directories,
before passing it to Find/Grep invocation. (Bug#21548)
Eli Zaretskii [Wed, 30 Sep 2015 07:19:41 +0000 (10:19 +0300)]
Clarify documentation of pos-visible-in-window-p
* src/window.c (Fpos_visible_in_window_p): Clarify the meaning of
t for POS. See
http://lists.gnu.org/archive/html/emacs-devel/2015-09/msg01040.html
for the original report.
* doc/lispref/windows.texi (Window Start and End): Clarify the
meaning of t for the POSITION argument of pos-visible-in-window-p.
Stefan Monnier [Wed, 30 Sep 2015 03:28:32 +0000 (23:28 -0400)]
* lisp/progmodes/prolog.el: Fix various indentation cases
(prolog-operator-chars): New const (add \\).
(prolog-smie-forward-token, prolog-smie-backward-token): Use it.
(prolog-smie-rules): Add rules according to bug#21526.
Stefan Monnier [Wed, 30 Sep 2015 01:43:07 +0000 (21:43 -0400)]
* lisp/progmodes/sh-script.el: Old "dumb" continued line indent
(sh-indent-after-continuation): Add new value `always' (bug#17620)
(sh-smie-sh-rules): Remove old handling of continued lines.
(sh-smie--indent-continuation): New function.
(sh-set-shell): Use it.