summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Add missing taskexit()concurrency-libtaskPhilipp Stephani2016-10-301-0/+1
|
* Fix pthread implementationPhilipp Stephani2016-10-303-21/+40
|
* Merge remote-tracking branch 'origin/master' into concurrency-libtaskPhilipp Stephani2016-10-3030-248/+688
|\
| * Speed up initialization by preferring /dev/urandom to GnuTLSDaniel Colascione2016-10-291-18/+26
| | | | | | | | * src/sysdep.c (init_random): Try /dev/urandom before GnuTLS.
| * Quote file names in dired compression commandsJosé L. Doménech2016-10-291-5/+7
| | | | | | | | | | | | * 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).
| * Avoid errors in posn-at-point for large imagesEli Zaretskii2016-10-291-0/+8
| | | | | | | | | | | | | | | | * 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)
| * Unbreak MS-Windows buildEli Zaretskii2016-10-292-8/+8
| | | | | | | | | | | | | | | | | | | | | | * 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.
| * Add double-buffering support to reduce flickerDaniel Colascione2016-10-2824-216/+635
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * 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
| * Improve result of `auth-source-search' in TrampMichael Albinus2016-10-281-1/+4
| | | | | | | | | | * lisp/net/tramp.el (tramp-read-passwd): Require :secret and :user in result of `auth-source-search'.
* | Fix typoPhilipp Stephani2016-10-301-1/+1
| |
* | Merge branch 'master' into concurrency-libtaskPhilipp Stephani2016-10-2812-35/+118
|\ \ | |/
| * Fix avl-tree alias docstringsMark Oteiza2016-10-271-5/+7
| | | | | | | | | | | | * 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.
| * Update from gnulibPaul Eggert2016-10-276-5/+31
| | | | | | | | | | | | | | | | | | | | 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.
| * electric-quote-chars fixupsPaul Eggert2016-10-271-19/+24
| | | | | | | | | | | | | | * 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.
| * New user variable 'electric-quote-chars'Göktuğ Kayaalp2016-10-273-22/+50
| | | | | | | | | | | | * 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.
| * ; Spelling fixPaul Eggert2016-10-271-1/+1
| |
| * Add more tests for Bug#24627Tino Calancha2016-10-271-2/+24
| | | | | | | | | | * test/lisp/thingatpt-tests.el (thing-at-point-bug24627): Add tests for 'list-at-point'.
* | Support for context switching using pthreadsPhilipp Stephani2016-10-273-6/+80
| | | | | | | | Experimental, doesn’t work yet
* | Merge branch 'concurrency-libtask' of git.sv.gnu.org:/srv/git/emacs into ↵Philipp Stephani2016-10-260-0/+0
|\ \ | | | | | | | | | concurrency-libtask
| * | Revert change in fd_handler.Philipp Stephani2016-10-261-2/+2
| | | | | | | | | | | | | | | Crashes Emacs on macOS and shouldn’t be needed anyway as fd_handler runs in a background thread.
| * | Fix format specifiersPhilipp Stephani2016-10-261-4/+4
| | |
| * | Add missing defsubrPhilipp Stephani2016-10-262-0/+6
| | |
| * | Transfer signals to main coroutinePhilipp Stephani2016-10-254-0/+74
| | |
| * | Remove wrong assertionPhilipp Stephani2016-10-251-1/+0
| | | | | | | | | | | | It’s totally fine to free a channel that still buffers something.
| * | malloc is redefined by config.hPhilipp Stephani2016-10-252-11/+1
| | | | | | | | | | | | But we need to define emacs as preprocessor symbol, not just EMACS.
| * | Support for Windows fibersPhilipp Stephani2016-10-253-0/+74
| | |
| * | WIP: CSP based on libtaskPhilipp Stephani2016-10-2540-27/+4267
| | |
| * | Clarify the behavior of minor mode commandsPhilipp Stephani2016-10-253-6/+79
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | See Bug#24706. * doc/lispref/modes.texi (Minor Mode Conventions): Clarify behavior when the argument to a minor mode command is not an integer. * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Clarify behavior when ARG is not an integer. * test/lisp/emacs-lisp/easy-mmode-tests.el: New file with unit tests.
* | | Revert change in fd_handler.Philipp Stephani2016-10-261-2/+2
| | | | | | | | | | | | | | | Crashes Emacs on macOS and shouldn’t be needed anyway as fd_handler runs in a background thread.
* | | Fix format specifiersPhilipp Stephani2016-10-261-4/+4
| | |
* | | Add missing defsubrPhilipp Stephani2016-10-262-0/+6
| | |
* | | Transfer signals to main coroutinePhilipp Stephani2016-10-264-0/+74
| | |
* | | Remove wrong assertionPhilipp Stephani2016-10-261-1/+0
| | | | | | | | | | | | It’s totally fine to free a channel that still buffers something.
* | | malloc is redefined by config.hPhilipp Stephani2016-10-262-11/+1
| | | | | | | | | | | | But we need to define emacs as preprocessor symbol, not just EMACS.
* | | Support for Windows fibersPhilipp Stephani2016-10-263-0/+74
| | |
* | | WIP: CSP based on libtaskPhilipp Stephani2016-10-2640-27/+4267
| | |
* | | Clarify the behavior of minor mode commandsPhilipp Stephani2016-10-263-6/+79
| |/ |/| | | | | | | | | | | | | | | | | See Bug#24706. * doc/lispref/modes.texi (Minor Mode Conventions): Clarify behavior when the argument to a minor mode command is not an integer. * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Clarify behavior when ARG is not an integer. * test/lisp/emacs-lisp/easy-mmode-tests.el: New file with unit tests.
* | * lisp/shell.el (shell--unquote&requote-argument): Match data misuseFilipp Gunbin2016-10-262-3/+40
| | | | | | | | | | * lisp/shell.el (shell--unquote&requote-argument): Fix off-by-one thinko. Don't use match data after a failed string-match.
* | * src/xwidget.c (webkit_js_to_lisp): Now static.Paul Eggert2016-10-251-1/+1
| |
* | xwidget: Map "previous-line" and "next-line" to scrollRicardo Wurmus2016-10-251-2/+2
| | | | | | | | | | * lisp/xwidget.el: Map "previous-line" and "next-line" to scrolling procedures.
* | xwidget: Bind "beginning-of-buffer" and "end-of-buffer"Ricardo Wurmus2016-10-251-2/+15
| | | | | | | | | | | | | | | | * 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.
* | Implement zoom for WebKit widget.Ricardo Wurmus2016-10-252-0/+33
| | | | | | | | | | | | | | * 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.
* | Dynamically resize WebKit widget.Ricardo Wurmus2016-10-251-8/+25
| | | | | | | | | | | | | | | | | | | | * 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.
* | Let initial WebKit view fill windowRicardo Wurmus2016-10-251-1/+3
| | | | | | | | | | * lisp/xwidget.el (xwidget-webkit-new-session): Change default size of WebKit widget to window size.
* | xwidget: Remove title hack.Ricardo Wurmus2016-10-252-46/+0
| | | | | | | | | | | | * src/xwidget.c (xwidget-webkit-get-title): Remove procedure. * lisp/xwidget.el (xwidget-webkit-get-title, xwidget-webkit-execute-script-rv): Remove procedures.
* | xwidget: Get URL asynchronously.Ricardo Wurmus2016-10-251-5/+5
| | | | | | | | * lisp/xwidget.el (xwidget-webkit-current-url): Kill URL in callback.
* | xwidget: Get selection with asynchronous JavaScriptRicardo Wurmus2016-10-251-5/+7
| | | | | | | | | | | | * lisp/xwidget.el (xwidget-webkit-get-selection): Add PROC argument to process selection. (xwidget-webkit-copy-selection-as-kill): Kill selection in callback.
* | xwidget: Add function to find element by CSS selectorRicardo Wurmus2016-10-251-0/+17
| | | | | | | | * lisp/xwidget.el (xwidget-webkit-show-element): New procedure.
* | xwidget: Simplify functions to scroll to elementsRicardo Wurmus2016-10-251-44/+35
| | | | | | | | | | | | | | * 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.
* | xwidget: Get title via asynchronous JavaScript.Ricardo Wurmus2016-10-251-7/+8
| | | | | | | | | | * lisp/xwidget.el (xwidget-webkit-callback): Get document title asynchronously.