1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00
Commit graph

127325 commits

Author SHA1 Message Date
Mark Oteiza
7a87f82987 Turn on lexical-binding in some more libs
* lisp/calendar/icalendar.el:
* lisp/emacs-lisp/regexp-opt.el:
* lisp/emacs-lisp/timer.el:
* lisp/gnus/message.el:
* lisp/hex-util.el: Turn on lexical-binding.
2016-10-31 20:31:22 -04:00
Mark Oteiza
d3c2d3ca45 Turn on lexical-binding in some net libs
* lisp/net/dbus.el: Turn on lexical-binding.
(dbus-list-hash-table, dbus-list-known-names):
(dbus-introspect-get-node-names, dbus-introspect-get-interface-names):
(dbus-introspect-get-method-names, dbus-introspect-get-signal-names):
(dbus-introspect-get-property-names):
(dbus-introspect-get-argument-names, dbus-get-all-properties):
(dbus-property-handler, dbus-get-all-managed-objects):
(dbus-managed-object-handler): Replace add-to-list with push. Add
nreverse in some places where the APPEND argument of add-to-list was
used.
* lisp/net/network-stream.el: Turn on lexical-binding.
* lisp/net/newsticker.el: Turn on lexical-binding.
* lisp/net/shr.el: Turn on lexical-binding.
(shr-make-placeholder-image): Remove unused variable binding.
(shr-inspect-table): Replace ignored bindings with underscore.
2016-10-31 20:19:21 -04:00
Mark Oteiza
05729e5ac2 Turn on lexical-binding in some url libs
* lisp/url/url-auth.el:
* lisp/url/url-expand.el:
* lisp/url/url-future.el:
* lisp/url/url-parse.el:
* lisp/url/url-util.el: Turn on lexical-binding.
2016-10-31 19:55:17 -04:00
Johan Bockgård
dec329aefc * lisp/emacs-lisp/cl-macs.el (cl-symbol-macrolet): Fix debug spec
(Bug#24733)
2016-10-31 21:22:34 +01:00
Alan Mackenzie
8e7b1af1d7 Handle chars of syntax word which are also flagged as comment delimiters
src/syntax.c (scan_sexps_forward): When chars of syntax word are also flagged
as the start/end of two char comment delimiters, recognize a comment delimiter
in preference to a portion of a word.  This fixes bug #24767.
2016-10-30 17:29:52 +00:00
Daniel Colascione
a37eba849e Speed up initialization by preferring /dev/urandom to GnuTLS
* src/sysdep.c (init_random): Try /dev/urandom before GnuTLS.
2016-10-29 20:00:53 -07:00
José L. Doménech
27443df092 Quote file names in dired compression commands
* lisp/dired-aux.el (dired-do-compress-to): Change the string
used as shell command for compression by quoting the filenames
used for input and output (Bug #24620).
2016-10-29 21:32:11 -04:00
Eli Zaretskii
966b73b316 Avoid errors in posn-at-point for large images
* src/keyboard.c (Fposn_at_point): If pos-visible-in-window-p
returns a 6-member list for a partially visible glyph, pass the
sum of Y and RTOP to posn-at-x-y, since that's where the visible
portion of that glyph begins on display.  (Bug#24804)  (Bug#21832)
(Bug#23809)
2016-10-29 17:39:54 +03:00
Eli Zaretskii
aaa3a93e50 Unbreak MS-Windows build
* src/w32term.c (XCreateGC): Second argument is now HWND, and its
name is "wignore".
(x_set_cursor_gc, x_set_mouse_face_gc)
(x_draw_glyph_string_background, x_draw_glyph_string_bg_rect)
(x_draw_image_glyph_string, x_draw_stretch_glyph_string): Don't
use s->window, which doesn't exist anymore.

* src/w32term.h (XCreateGC): Adjust prototype.
2016-10-29 10:40:38 +03:00
Daniel Colascione
c29071587c Add double-buffering support to reduce flicker
* src/dispextern.h (struct glyph_string): Remove window member
(block_buffer_flips, unblock_buffer_flips)
(buffer_flipping_blocked_p): Declare.

* src/xterm.h (struct x_display_info): New member supports_xdbe.
(struct x_output): New members draw_desc and need_buffer_flip.
(FRAME_X_DRAWABLE, FRAME_X_RAW_DRAWABLE)
(FRAME_X_DOUBLE_BUFFERED_P)
(FRAME_X_NEED_BUFFER_FLIP): New macros.
(set_up_x_back_buffer, tear_down_x_back_buffer)
(initial_set_up_x_back_buffer): Declare.

* src/xterm.c: Include Xdbe.h.
(x_begin_cr_clip, x_fill_rectangle, x_draw_rectangle)
(x_draw_vertical_window_border, x_update_end)
(x_setup_relief_color, x_draw_relief_rect)
(x_draw_fringe_bitmap, x_shift_glyphs_for_insert)
(x_scroll_run, x_draw_hollow_cursor, x_draw_bar_cursor): Use
FRAME_X_DRAWABLE instead of FRAME_X_WINDOW; rename local
variables appropriately; substitute calls to XClearArea with
x_clear_area, which DTRT for double buffering.
(x_clear_window, x_clear_area): In double-buffering mode, use
rect-drawing X functions instead of XClearWindow and
XClearArea, which always operate on the front buffer.
(show_back_buffer): New function.
(XTframe_up_to_date): Call show_back_buffer when done.
(x_clear_frame, x_clear_frame_area): Remove obsolete calls to
gtk_widget_queue_draw to refresh scroll bars; scroll bars are
now independent X windows.
(handle_one_xevent): Call font_drop_xrender_surfaces when
XftDraw might need regenerating; perform buffer flip when
responding to Expose events; issue front-buffer clearing
commands as stopgap while we wait for redisplay.
Call flush_dirty_back_buffers.
(x_make_frame_visible): Un-bitrot comment; move XSETFRAME
earlier in function.
(x_free_frame_resources): Call tear_down_x_back_buffer when
destroying frame.
(x_term_init): Attempt to initialize double buffer extension.
(x_flip_and_flush): New function.
(x_redisplay_interface): Point to x_flip_and_flush instead of
x_flip directly.
(flush_dirty_back_buffers): New function.
(x_create_terminal): Register buffer_flipping_unblocked_hook.

* src/xftfont.c (xftfont_drop_xrender_surfaces): Use
FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
(xftfont_draw): Call x_mark_frame_dirty.
(xftfont_drop_xrender_surfaces): New function.
(syms_of_xftfont): Register it.

* src/xfont.c (xfont_draw): Use FRAME_X_DRAWABLE instead of
FRAME_X_WINDOW.

* src/xfns.c: Include Xdbe.h.
(x_set_inhibit_double_buffering, set_up_x_back_buffer)
(Fx_double_buffered_p): New functions.
(x_window): Call initial_set_up_x_back_buffer.
(x_make_gc): Use FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
(Fx_create_frame): Configure `inhibit-double-buffering'
frame parameter.
(x_create_tip_frame): Call initial_set_up_x_back_buffer.
(x_frame_parm_handlers): Register
x_set_inhibit_double_buffering.
(syms_of_xfns): Register Sx_double_buffered_p.
(x_mark_frame_dirty): Define.

* src/xfaces.c (x_create_gc): Use FRAME_X_DRAWABLE instead of
FRAME_X_WINDOW.

* src/xdisp.c (remember_mouse_glyph, init_glyph_string): Use
FRAME_X_DRAWABLE instead of FRAME_X_WINDOW.
(redisplay_internal): Restart redisplay if a frame is garbaged
during updating; explain why. Block buffer flips
during redisplay.
(redisplay_preserve_echo_area): Block buffer flip during call
to redisplay_internal.
(buffer_flip_blocked_depth): New variable.
(block_buffer_flips, unblock_buffer_flips)
(buffer_flipping_blocked_p): New functions.
(init_glyph_string): Stop setting window member of struct
glyph_string.

* src/w32fns.c (w32_frame_parm_handlers): Add placeholder for
x_set_inhibit_double_buffering.

* src/termhooks.h (struct terminal): Add
buffer_flipping_unblocked_hook.

* src/nsfns.m (ns_frame_parm_handlers): Add placeholder for
x_set_inhibit_double_buffering.

* src/image.c (x_create_bitmap_from_data)
(x_create_bitmap_from_file, x_create_x_image_and_pixmap)
(Create_Pixmap_From_Bitmap_Data)
(x_create_bitmap_from_xpm_data, xpm_load, gs_load): Use
FRAME_X_DRAWABLE instead of FRAME_X_WINDOW; rename local
variables appropriately.

* src/gtkutil.c: Include Xdbe.h.
(xg_get_widget_from_map): Forward declare.
(xg_clear_under_internal_border): Remove obsolete calls to
refresh scroll bars.
(xg_create_frame_widgets): Call initial_set_up_x_back_buffer.
(xg_free_frame_widgets): Call tear_down_x_back_buffer; reset
FRAME_X_DRAWABLE as well as FRAME_X_WINDOW and for the
same reason.
(xg_set_background_color): Set scroll bar background colors.
(xg_finish_scroll_bar_creation): New function with common
logic of xg_create_scroll_bar, xg_create_horizontal_scroll_bar. Force
scroll bars to be real X11 windows.
(xg_create_scroll_bar, xg_create_horizontal_scroll_bar): Call
xg_finish_scroll_bar_creation.
(xg_update_scrollbar_pos, xg_update_horizontal_scrollbar_pos):
Remove obsolete calls to refresh scroll bars; fix comments.

* src/ftxfont.c (ftxfont_get_gcs, ftxfont_draw_bitmap,
(ftxfont_draw_background): Use FRAME_X_DRAWABLE instead of
FRAME_X_WINDOW.

* src/frame.c (frame_parms): Add table entry for new
`inhibit-double-buffering' frame parameter
(syms_of_frame): Register Qinhibit_double_buffering.

* src/font.h (struct font_driver): Add new `flush_frame_caches' hook.
(font_drop_xrender_surfaces): Declare.

* src/font.c (font_drop_xrender_surfaces): New function.

* src/Makefile.in (XDBE_LIBS, XDBE_CFLAGS): Substitute.

* etc/NEWS: Mention use of double buffering

* doc/lispref/frames.texi (Management Parameters): Document
`inhibit-double-buffering' frame parameters.
(Visibility of Frames): Document `x-double-buffered-p'.

* configure.ac: Check for the X double buffer extension
2016-10-28 19:21:39 -07:00
Michael Albinus
f5543ffcf5 Improve result of `auth-source-search' in Tramp
* lisp/net/tramp.el (tramp-read-passwd): Require :secret and
:user in result of `auth-source-search'.
2016-10-28 17:08:14 +02:00
Mark Oteiza
e2fd20683a Fix avl-tree alias docstrings
* lisp/emacs-lisp/avl-tree.el (avl-tree--node-branch):
(avl-tree-stack-p, avl-tree-create):
(avl-tree-compare-function): Add calling convention to docstrings.
2016-10-27 11:36:41 -04:00
Paul Eggert
63eebff30e Update from gnulib
This incorporates:
2016-10-16 qsort_r: Fix macrology for platforms that lack the function.
2016-10-13 stdint: port SIZE_MAX to glibc s390
2016-10-11 maint: remove stray space after "." in AC_DEFINE comment.
* lib/gnulib.mk: Regenerate.
* lib/stdlib.in.h, m4/st_dm_mode.m4, m4/stdint.m4, m4/stdlib_h.m4:
* m4/utimes.m4: Copy from gnulib.
2016-10-27 08:28:07 -07:00
Paul Eggert
354c4a9885 electric-quote-chars fixups
* lisp/electric.el (electric-quote-chars): Check types and safety
more carefully.
(electric-quote-post-self-insert-function): Use more-mnemonic locals.
Omit no-longer-necessary runtime error diagnostic.
2016-10-27 08:11:25 -07:00
Göktuğ Kayaalp
11d380a029 New user variable 'electric-quote-chars'
* doc/emacs/text.texi (Quotation Marks), etc/NEWS: Document this.
* lisp/electric.el (electric-quote-chars): New defcustom.
(electric-quote-post-self-insert-function): Use it.
2016-10-27 08:11:25 -07:00
Paul Eggert
53a0562b2c ; Spelling fix 2016-10-27 08:04:50 -07:00
Tino Calancha
0465bf5115 Add more tests for Bug#24627
* test/lisp/thingatpt-tests.el (thing-at-point-bug24627):
Add tests for 'list-at-point'.
2016-10-27 18:06:54 +09:00
Filipp Gunbin
4e45b55a95 * lisp/shell.el (shell--unquote&requote-argument): Match data misuse
* lisp/shell.el (shell--unquote&requote-argument): Fix
off-by-one thinko.  Don't use match data after a failed string-match.
2016-10-26 14:31:12 -04:00
Paul Eggert
5edf76ba15 * src/xwidget.c (webkit_js_to_lisp): Now static. 2016-10-25 23:07:13 -07:00
Ricardo Wurmus
ca479f9e75 xwidget: Map "previous-line" and "next-line" to scroll
* lisp/xwidget.el: Map "previous-line" and "next-line" to scrolling
procedures.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
01c2fba677 xwidget: Bind "beginning-of-buffer" and "end-of-buffer"
* lisp/xwidget.el: Rebind "beginning-of-buffer" and "end-of-buffer" to
"xwidget-webkit-scroll-top" and "xwidget-webkit-scroll-bottom",
respectively.
(xwidget-webkit-scroll-top,
xwidget-webkit-scroll-bottom): New procedures.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
e443eab6bf Implement zoom for WebKit widget.
* src/xwidget.c (xwidget-webkit-zoom): New procedure.
* lisp/xwidget.el: Bind "+" and "-" to zoom in and out, respectively.
(xwidget-webkit-zoom): Declare procedure.
(xwidget-webkit-zoom-in, xwidget-webkit-zoom-out): New procedures.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
a9785bd5c2 Dynamically resize WebKit widget.
* lisp/xwidget.el (xwidget-webkit-auto-adjust-size,
xwidget-webkit-adjust-size-in-frame): New procedures.
(xwidget-webkit-new-session): Remove hint to resize widget with `a'.
(xwidget-webkit-adjust-size-dispatch): Resize current webkit widget.
(xwidget-webkit-adjust-size-to-window): Make non-interactive,
add widget and window as arguments.
(xwidget-webkit-callback): Use xwidget-webkit-adjust-size-to-window.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
c483fa6ef2 Let initial WebKit view fill window
* lisp/xwidget.el (xwidget-webkit-new-session): Change default size of
WebKit widget to window size.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
67e03311a0 xwidget: Remove title hack.
* src/xwidget.c (xwidget-webkit-get-title): Remove procedure.
* lisp/xwidget.el (xwidget-webkit-get-title,
xwidget-webkit-execute-script-rv): Remove procedures.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
8809002052 xwidget: Get URL asynchronously.
* lisp/xwidget.el (xwidget-webkit-current-url): Kill URL in callback.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
4aa7c4b4aa xwidget: Get selection with asynchronous JavaScript
* lisp/xwidget.el (xwidget-webkit-get-selection): Add PROC argument to
process selection.
(xwidget-webkit-copy-selection-as-kill): Kill selection in callback.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
efa269d146 xwidget: Add function to find element by CSS selector
* lisp/xwidget.el (xwidget-webkit-show-element): New procedure.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
74576447b9 xwidget: Simplify functions to scroll to elements
* lisp/xwidget.el (xwidget-webkit-show-named-element,
xwidget-webkit-show-id-element,
xwidget-webkit-show-id-or-named-element): Simplify functions by
scrolling exclusively with JavaScript.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
cc3b868fbf xwidget: Get title via asynchronous JavaScript.
* lisp/xwidget.el (xwidget-webkit-callback): Get document title
asynchronously.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
ff80a9c837 xwidget: Do not use `xwidget-execute-script-rv' to insert string
* lisp/xwidget.el (xwidget-webkit-insert-string): Obtain JavaScript
return value via callback instead of using
`xwidget-webkit-execute-script-rv'.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
7ee870e87c Remove scrolled window container around WebKit widget
The WebKit widget can scroll on its own and does not need to wrapped
with a scrolled window container.

* src/xwidget.h: Remove struct member widgetscrolledwindow_osr.
* src/xwidget.c: Remove widgetscrolledwindow_osr.
(xwidget-set-adjustment): Remove.
(xwidget-resize): Resize Webkit widget last.
* lisp/xwidget.el (xwidget-set-adjustment): Remove.
(xwidget-webkit-scroll-up, xwidget-webkit-scroll-down,
xwidget-webkit-scroll-forward, xwidget-webkit-scroll-backward):
Implement scrolling via JavaScript.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
623deaf406 xwidget: Pass JavaScript return value to optional callback procedure
* lisp/xwidget.el (xwidget-webkit-execute-script): Accept optional
callback argument.
(xwidget-webkit-callback): Handle "javascript-callback" event type.
* src/xwidget.c (xwidget-webkit-execute-script): Accept optional
argument FUN, a Lisp procedure to execute on the JavaScript return
value.
(store_xwidget_js_callback_event, webkit_javascript_finished_cb,
webkit_js_to_lisp): New procedures.
2016-10-25 23:07:13 -07:00
Ricardo Wurmus
d781662873 xwidget: Use WebKit2 API
* configure.ac: Check for webkit2gtk-4.0.
* src/xwidget.c: Adjust to use WebKit2 API.
* lisp/xwidget.el (xwidget-webkit-callback): Adjust matches for
`xwidget-event-type'.
2016-10-25 23:07:13 -07:00
Paul Eggert
1ea669d6f0 Merge from origin/emacs-25
4c3f738 Comment for bug#24793
2016-10-25 12:50:31 -07:00
Paul Eggert
b0eecfca56 ; Merge from origin/emacs-25
The following commit was skipped:

32827b3 Default REL_ALLOC to 'no'
2016-10-25 12:50:31 -07:00
Paul Eggert
f8eecb1c6c Merge from origin/emacs-25
96ac0c3 Yet another fix for using pointers into buffer text
1047496 Another fix for using pointer to buffer text
3121992 Fix Bug#24478
2016-10-25 12:50:31 -07:00
Paul Eggert
43645b4dc4 ; Merge from origin/emacs-25
The following commit was skipped:

7bb5c4f Port --enable-gcc-warnings to bleeding-edge glibc
2016-10-25 12:50:30 -07:00
Paul Eggert
a37820aef9 Merge from origin/emacs-25
ee04aed Fix handling of buffer relocation in regex.c functions
71ca4f6 Avoid relocating buffers while libxml2 reads its text
1b3fc8a ; Remove redundant code in gmalloc.c
9afea93 Attempt to catch reads from a buffer that is relocated
2016-10-25 12:50:30 -07:00
Paul Eggert
630f535ad6 ; Merge from origin/emacs-25
The following commits were skipped:

b8e8e15 Revert "* lisp/simple.el (process-menu-mode, list-processes--...
d784e75 Revert "* lisp/ibuf-ext.el (ibuffer-do-shell-command-file):"
1dd7b54 Revert "* lisp/ibuffer.el (ibuffer): Improve 'other-window' c...
2016-10-25 12:50:29 -07:00
Eli Zaretskii
4c3f7387df Comment for bug#24793
* lisp/info.el (Info-mode-font-lock-keywords): Add a comment
explaining why `..' quoting is not fontified using the
'Info-quoted' face.  (Bug#24793)
2016-10-25 22:33:14 +03:00
Nicolas Petton
eca10c1e68
Minor fix in the documentation of seq-random-elt
* doc/lispref/sequences.texi (Sequence Functions): Remove false
  sentence.
2016-10-25 21:28:36 +02:00
Paul Eggert
32827b374d Default REL_ALLOC to 'no'
This should make ralloc-related bugs less likely on GNU/Linux
systems with bleeding-edge glibc.  See the email thread containing:
http://lists.gnu.org/archive/html/emacs-devel/2016-10/msg00801.html
Do not merge to master.
* configure.ac (REL_ALLOC): Default to 'no' on all platforms, not
merely on platforms with Doug Lea malloc.  Although bleeding-edge
glibc no longer exports __malloc_initialize_hook and so longer
passes the configure-time test for Doug Lea malloc, ralloc tickles
longstanding bugs like Bug#24358 and Bug#24764 and Emacs is likely
to be more reliable without it.  This patch is not needed on
master, which uses hybrid malloc in this situation.
2016-10-25 12:20:26 -07:00
Eli Zaretskii
8cdbc50118 Minor copyedits in documentation of 'seq-random-elt'
* doc/lispref/sequences.texi (Sequence Functions): Fix markup in
last change.  Use 2 spaces between sentences.
2016-10-25 21:56:16 +03:00
Nicolas Petton
b4f09b92bc * lisp/emacs-lisp/seq.el (seq-random-elt): Fix docstring. 2016-10-25 17:07:07 +02:00
Philipp Stephani
4722db6c96 ; Add missing `require' 2016-10-25 13:29:52 +02:00
Damien Cassou
bd22beb6e4 Add seq-random-elt to seq.el
* lisp/emacs-lisp/seq.el (seq-random-elt): Add function to return a
  random element from it's sequence parameter.

* test/lisp/emacs-lisp/seq-tests.el (test-seq-random-elt-take-all
  test-seq-random-elt-return-nil): Test the new function

* doc/lispref/sequences.texi: Document the new function
2016-10-25 12:32:57 +02:00
Eli Zaretskii
96ac0c3ebc Yet another fix for using pointers into buffer text
* src/search.c (boyer_moore): Update pointers to buffer text
after call to set_search_regs.  (Bug#24358)
2016-10-24 21:37:20 +03:00
Ken Brown
26ccd19269 * configure.ac: Stop using mmap for buffers on Cygwin. 2016-10-24 12:41:07 -04:00
Eli Zaretskii
1047496722 Another fix for using pointer to buffer text
* src/search.c (Freplace_match): Move the call to BYTE_POS_ADDR
after the call to xpalloc, to avoid the danger of buffer text
relocation after its address was taken.  (Bug#24358)
2016-10-24 16:59:34 +03:00