1. 31 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Fix (c & 040) typo in emergency escapes · 7b1d2b1b
      Paul Eggert authored
      * src/keyboard.c (handle_interrupt): Fix recently-introduced
      typo (040 should have been ~040) that silently suppressed
      auto-saves after emergency escapes.  Redo comparison to avoid
      similar problems.
      7b1d2b1b
  2. 26 Jan, 2016 1 commit
  3. 22 Jan, 2016 2 commits
    • Paul Eggert's avatar
      xwidgets style cleanup · 7c3d742c
      Paul Eggert authored
      Adjust the newly-added Xwidgets code so that it uses a more-typical
      Emacs style.  This should not affect behavior, except that in
      a few places it adds runtime checks that Lisp arguments are of
      the proper type, and in one place it uses more-precise arithmetic.
      * src/buffer.c, src/dispnew.c, src/emacs.c, src/emacsgtkfixed.c:
      * src/emacs.c, src/print.c, src/window.c, src/xdisp.c, src/xterm.c:
      Include xwidget.h unconditionally.
      * src/buffer.c (Fkill_buffer):
      * src/dispnew.c (update_window):
      * src/emacs.c (main):
      * src/print.c (print_object):
      * src/window.c (Fdelete_window_internal):
      * src/xdisp.c (handle_single_display_spec, push_it, pop_it)
      (get_next_element, set_iterator_to_next, next_element_from_xwidget)
      (dump_glyph, calc_pixel_width_or_height, BUILD_GLYPH_STRINGS_XW)
      (BUILD_GLYPH_STRINGS, x_produce_glyphs, get_window_cursor_type):
      * src/xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
      Call xwidget functions and macros without worrying about
      HAVE_XWIDGETS when the code is a no-op on non-xwidget
      platforms.
      * src/dispextern.h (XWIDGET_GLYPH, struct glyph_string.xwidget)
      (IT_XWIDGET, GET_FROM_XWIDGET, struct it.u.xwidget)
      (struct it.xwidget):
      * src/lisp.h (PVEC_XWIDGET, PVEC_XWIDGET_VIEW):
      Always define.
      * src/emacsgtkfixed.h: Omit unnecessary comment.
      * src/keyboard.c: Fix spacing.
      * src/xdisp.c (BUILD_XWIDGET_GLYPH_STRING, produce_xwidget_glyph):
      Define to be a no-op if not HAVE_XWIDGETS.
      * src/xwidget.c: Include xwidget.h first (after config.h)
      to make sure that it can stand by itself.
      (Fmake_xwidget, Fxwidget_webkit_execute_script):
      Fix typo in doc string.
      (Fmake_xwidget): Check type of args.
      (Fmake_xwidget, offscreen_damage_event)
      (webkit_document_load_finished_cb, webkit_download_cb)
      (webkit_new_window_policy_decision_requested_cb)
      (webkit_navigation_policy_decision_requested_cb)
      (xwidget_osr_draw_cb, xwidget_osr_event_forward)
      (xwidget_osr_event_set_embedder, xwidget_init_view):
      Omit unnecessary casts.
      * src/xwidget.c (Fmake_xwidget, xwidget_hidden)
      (xwidget_show_view, xwidget_hide_view)
      (x_draw_xwidget_glyph_string, xwidget_start_redisplay, xwidget_touch)
      (xwidget_touched):
      * src/xwidget.h (struct xwidget.kill_without_query)
      (struct xwidget_view.redisplayed, struct xwidget_view.hidden):
      Use bool for boolean.
      * src/xwidget.c (store_xwidget_event_string, Fxwidget_size_request):
      Simplify by using list functions.
      (WEBKIT_FN_INIT): Omit unnecessary test for nil.
      (Fxwidget_resize): Check type of integer args
      before doing any work.  Check that they are nonnegative.
      (Fxwidget_set_adjustment): Check type of integer arg.
      Avoid redundant call to gtk_scrolled_window_get_vadjustment.
      Simplify.  Use double, not float.
      (Fxwidget_info, Fxwidget_view_info): Simplify by using CALLN.
      (valid_xwidget_spec_p): Simplify.
      (xwidget_spec_value): Omit unused arg FOUND.  All callers changed.
      * src/xwidget.h: Include lisp.h first, so that includers do
      not need to worry about doing that before including this file.
      Make this .h file safe to include even on non-HAVE_XWIDGETS
      configurations, to simplify the includers.
      (x_draw_xwidget_glyph_string, syms_of_xwidget, valid_xwidget_spec_p)
      (xwidget_end_redisplay, lookup_xwidget)
      (xwidget_view_delete_all_in_window, kill_buffer_xwidgets):
      Now a no-op if !HAVE_XWIDGETS, to simplify callers.
      (struct glyph_matrix, struct glyph_string, struct xwidget)
      (struct xwidget_view, struct window):
      New forward or incomplete decls, so that includers need not
      assume the corresponding .h files are already included, or that
      HAVE_XWIDGETS is defined.
      (struct xwidget_type, xwidget_from_id): Remove; unused.
      7c3d742c
    • Michael Albinus's avatar
      Backport kqueue integration from master · 7bf54d01
      Michael Albinus authored
      * configure.ac (--with-file-notification): Add kqueue.
      (top): Remove special test for "${HAVE_NS}" and
      ${with_file_notification}, this is handled inside gfilenotify
      tests.  Add kqueue tests.  Use NOTIFY_CFLAGS and NOTIFY_LIBS
      instead of library specific variables.  Add error message for
      gfile on Nextstep.
      
      * doc/lispref/os.texi (File Notifications): Add kqueue as backend.
      Fix some glitches in the example.
      
      * etc/NEWS: Mention kqueue.
      
      * lisp/filenotify.el (file-notify--library)
      (file-notify-descriptors, file-notify-callback)
      (file-notify-add-watch, file-notify-rm-watch)
      (file-notify-valid-p): Add kqueue support.
      (file-notify--rm-descriptor): Remove WHAT arg.
      
      * src/Makefile.in: Use NOTIFY_CFLAGS and NOTIFY_LIBS.
      
      * src/emacs.c (main): Call globals_of_kqueue and syms_of_kqueue.
      
      * src/inotify.c (inotifyevent_to_event): Extract file name from
      watch_object if the event doesn't provide it.
      (Finotify_add_watch): Add file name to watch_object.
      
      * src/keyboard.c (make_lispy_event): Check also for HAVE_KQUEUE.
      
      * src/kqueue.c: New file.
      
      * src/lisp.h: Declare extern globals_of_kqueue and syms_of_kqueue.
      
      * test/automated/file-notify-tests.el
      (file-notify--test-expected-events): Remove.
      (file-notify--test-cleanup): Do not set that variable.
      (file-notify--test-timeout) Use different timeouts for
      different libraries.
      (file-notify--test-library): New defun.
      (file-notify--test-event-test): Make stronger checks.
      (file-notify--test-with-events): EVENTS can also be a list of
      lists.  Flush outstanding events before running the body.
      Make timeout heuristically depend on the number of events.
      (file-notify-test01-add-watch, file-notify-test02-events)
      (file-notify-test04-file-validity, file-notify-test05-dir-validity):
      Rewrite in order to call file monitors but directory monitors.
      (file-notify-test02-events, file-notify-test04-file-validity): Do
      not skip cygwin tests.  Add additional test for file creation.
      Adapt expected result for different backends.
      (file-notify-test03-autorevert): Some of the tests don't work for
      w32notify.
      (file-notify-test06-many-events): New test.
      7bf54d01
  4. 19 Jan, 2016 1 commit
    • Joakim Verona's avatar
      Support for the new Xwidget feature. · 7c1f66a9
      Joakim Verona authored
      
      
      * configure.ac:
      (HAVE_XWIDGETS, WIDGET_OBJ, EMACS_CONFIG_FEATURES):
      * xterm.c (x_draw_glyph_string, x_draw_bar_cursor):
      * xdisp.c:
      (handle_display_spec, handle_single_display_spec, push_it)
      (pop_it, set_iterator_to_next, dump_glyph)
      (calc_pixel_width_or_height, fill_xwidget_glyph_string)
      (BUILD_XWIDGET_GLYPH_STRING, BUILD_GLYPH_STRINGS)
      (produce_xwidget_glyph, x_produce_glyphs)
      (get_window_cursor_type):
      * window.c (Fdelete_window_internal):
      * termhooks.h (e):
      * print.c (print_object):
      * lisp.h (ptrdiff_t):
      * keyboard.c (kbd_buffer_get_event, make_lispy_event)
      (syms_of_keyboard):
      * emacs.c (main):
      * dispnew.c (update_window, scrolling_window):
      * dispextern.h (g, i):
      * Makefile.in (XWIDGETS_OBJ, WEBKIT_CFLAGS, WEBKIT_LIBS)
      (GIR_LIBS, ALL_CFLAGS, base_obj, LIBES):
      * keyboard.c (kbd_buffer_get_event):
      * emacsgtkfixed.c (emacs_fixed_gtk_widget_size_allocate)
      (emacs_fixed_class_init): Add case for an xwidget view.
      
      * xwidget.c, xwidget.h, xwidget.el: New files for xwidgets
      Co-authored-by: default avatarGrégoire Jadi  <daimrod@gmail.com>
      
      Various improvements to the Xwidget feature.
      * xwidgets.c:
      * emacsgtkfixed.c:
      * xwidget.el:
      7c1f66a9
  5. 03 Jan, 2016 1 commit
    • Paul Eggert's avatar
      Avoid stdio in SIGINT handler · e79b06e6
      Paul Eggert authored
      * admin/merge-gnulib (GNULIB_MODULES): Add ignore-value.
      * lib/gnulib.mk, m4/gnulib-comp.m4: Regenerate.
      * lib/ignore-value.h: New file, from gnulib.
      * src/keyboard.c: Include it.
      (write_stdout, read_stdin): New functions.
      (handle_interrupt): Use them instead of printf and getchar,
      and avoid fflush when handling signals.
      e79b06e6
  6. 01 Jan, 2016 1 commit
  7. 31 Dec, 2015 2 commits
  8. 21 Dec, 2015 1 commit
    • Paul Eggert's avatar
      Port undo fixes to -fno-common · 3864302c
      Paul Eggert authored
      Port recent fix for Bug#21968 to platforms like 'gcc -fno-common'.
      * src/keyboard.c, src/keyboard.h (point_before_last_command_or_undo)
      (buffer_before_last_command_or_undo):
      Declare in keyboard.h, and define in keyboard.c,
      instead of assuming the traditional Unix relaxed ref-def linkage.
      3864302c
  9. 14 Dec, 2015 1 commit
    • Alan Mackenzie's avatar
      Replace GROUP argument in six window primitives by new functions. · e8937de5
      Alan Mackenzie authored
      * doc/lispref/windows.texi (Window Start and End, Textual Scrolling)
      * doc/lispref/positions.texi (Screen Lines): Remove optional GROUP argument
      from description of six window functions.  Add in description of new functions
      window-group-start, window-group-end, set-window-group-start,
      pos-visible-in-window-group-p, recenter-group and move-to-window-group-line,
      together with the six variables indirecting to the pertinent group
      functions.
      
      * src/window.c
      * src/keyboard.c: Revert the commit from 2015-11-11 12:02:48, in so far as it
      applies to these two files, which added the GROUP argument to six window
      primitives.
      
      * lisp/follow.el (follow-mode): Use updated variable names for the indirected
      functions.
      
      * lisp/isearch.el (isearch-update, isearch-done, isearch-string-out-of-window)
      (isearch-back-into-window, isearch-lazy-highlight-new-loop)
      (isearch-lazy-highlight-search, isearch-lazy-highlight-update): Replace calls
      to window primitives (e.g. window-start) with a GROUP argument by calls to
      new functions (e.g. window-group-start).
      
      * lisp/ispell.el (ispell-command-loop): Replace call to
      pos-visible-in-window-p with pos-visible-in-window-group-p.
      
      * lisp/window.el (window-group-start, window-group-end)
      (set-window-group-start, recenter-group, pos-visible-in-window-group-p)
      (selected-window-group, move-to-window-group-line): New functions.
      (window-group-start-function, window-group-end-function)
      (set-window-group-start-function, recenter-group-function)
      (pos-visible-in-window-group-p-function, selected-window-group-function)
      (move-to-window-group-line-function): New variables.
      e8937de5
  10. 12 Dec, 2015 1 commit
    • Eli Zaretskii's avatar
      Fix echo for "C-u" · 0b7d6b02
      Eli Zaretskii authored
      * src/keyboard.c (command_loop_1): Undo last change.  It caused
      duplicate echo of C-u.  (Bug#22107)
      0b7d6b02
  11. 11 Dec, 2015 1 commit
    • Eli Zaretskii's avatar
      Fix 'this-command-keys' wrt prefix argument · 9d2b8e76
      Eli Zaretskii authored
      * src/keyboard.c (command_loop_1): Restore the feature whereby C-u
      was part of this-command-keys, but not of this-single-command-keys.
      (Bug#22107)
      
      * lisp/simple.el (internal-echo-keystrokes-prefix): Add
      commentary about the function's return value.
      9d2b8e76
  12. 04 Dec, 2015 1 commit
    • Alan Mackenzie's avatar
      First commit to scratch/follow. Make Isearch work with Follow Mode, etc. · 64c57303
      Alan Mackenzie authored
      doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of
      Windows" and new @defun selected-window-group.
      (Window Start and End): Describe new &optional parameter GROUP and
      ...-group-function for window-start, window-end, set-window-start, and
      pos-visible-in-window-p.
      (Textual Scrolling) Describe the same for recenter.
      doc/lispref/positions.texi (Screen Lines): Describe the same for
      move-to-window-line.
      
      src/window.c (Fwindow_start, Fwindow_end, Fset_window_start)
      (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar
      new optional parameter "group".  At the beginning of each, check whether the
      corresponding ...-group-function is set to a function, and if so execute this
      function in place of the normal processing.
      (syms_of_window): Define symbols for the six new variables below.
      (window-start-group-function, window-end-group-function)
      (set-window-start-group-function, recenter-group-function)
      (pos-visible-in-window-p-group-function, move-to-window-line-group-function):
      New permanent local buffer local variables.
      src/keyboard.c (Fposn_at_point): Add extra parameter in call to
      Fpos_visible_in_window_p.
      
      lisp/window.el (selected-window-group-function): New permanent local buffer
      local variable.
      (selected-window-group): New function.
      
      lisp/follow.el (follow-mode): Set the ...-group-function variables at mode
      enable, kill them at mode disable.  Add/remove follow-after-change to/from
      after-change-functions.
      (follow-start-end-invalid): New variable.
      (follow-redisplay): Manipulate follow-start-end-invalid.
      (follow-after-change, follow-window-start, follow-window-end)
      (follow-set-window-start, follow-pos-visible-in-window-p)
      (follow-move-to-window-line, follow-sit-for): New functions.
      
      lisp/isearch.el (isearch-call-message): New macro.
      (isearch-update, with-isearch-suspended, isearch-del-char)
      (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro.
      (with-isearch-suspended): Rearrange code such that isearch-call-message is
      invoked before point is moved.
      (isearch-message): Add comment about where point must be at function call.
      (isearch-search): Remove call to isearch-message.
      (isearch-lazy-highlight-window-group): New variable.
      (isearch-lazy-highlight-new-loop): Unconditionally start idle timer.  Move
      the battery of tests to ...
      (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer.
      Note: (sit-for 0) is still called.
      (isearch-lazy-highlight-update): Check membership of
      isearch-lazy-highlight-window-group.  Don't set the `window' overlay
      property.
      (isearch-update, isearch-done, isearch-string-out-of-window)
      (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop)
      (isearch-lazy-highlight-search, isearch-lazy-highlight-update)
      (isearch-lazy-highlight-update): Call the six amended primitives (see
      src/window.c above) with the new `group' argument set to t, to cooperate
      with Follow Mode.
      64c57303
  13. 26 Nov, 2015 1 commit
    • Phillip Lord's avatar
      After delete, record point location in undo. · 7592cb9d
      Phillip Lord authored
      Addresses Bug #21968.
      
      	* lisp/simple.el (undo-auto--add-boundary): Clean up code to
      	better support intercalating calls.
      	* src/keyboard.c,src/keyboard.h (command_loop_1): Store value of
      	point and current buffer before each command.
      	* src/undo.c (record_point): Now only record the point.
      	* src/undo.c (prepare_record): Functionality removed form
      	record_point.
      	* src/undo.c (record_delete): Check if point needs recording.
      	* src/undo.c (undo-boundary): Record value of point before each
      	boundary.
      	* test/automated/simple-test.el: New tests.
      
      Conflicts:
      	src/undo.c
      7592cb9d
  14. 24 Nov, 2015 1 commit
    • Ken Raeburn's avatar
      Fix kbd_buffer iteration loop in readable_events · cb1bd349
      Ken Raeburn authored
      * src/keyboard.c (readable_events): Wrap the event pointer back to the
      start of the kbd_buffer array inside the top of the loop instead of
      right before checking the loop condition, since kbd_fetch_ptr and
      kbd_store_ptr point past the end of the array to mean that element 0
      is next. (bug#21935)
      cb1bd349
  15. 19 Nov, 2015 1 commit
  16. 12 Nov, 2015 1 commit
    • Phillip Lord's avatar
      The heuristic that Emacs uses to add an `undo-boundary' has been · 44dfa86b
      Phillip Lord authored
      reworked, as it interacts poorly with functions on `post-command-hook'
      or `after-change-functions'.
      
      * lisp/simple.el: New section added.
      * src/cmds.c (remove_excessive_undo_boundaries): Now in lisp.
      (self_insert_command): Calls simple.el to amalgamate.
      (delete_char): Calls simple.el to amalgamate.
      * src/keyboard.c (last_undo_boundary): Removed.
      * src/undo.c (run_undoable_change): New function.
      44dfa86b
  17. 11 Nov, 2015 1 commit
    • Alan Mackenzie's avatar
      First commit to scratch/follow. Make Isearch work with Follow Mode, etc. · 2c56fc2a
      Alan Mackenzie authored
      doc/lispref/window.texi (Basic Windows): Add paragraph defining "Group of
      Windows" and new @defun selected-window-group.
      (Window Start and End): Describe new &optional parameter GROUP and
      ...-group-function for window-start, window-end, set-window-start, and
      pos-visible-in-window-p.
      (Textual Scrolling) Describe the same for recenter.
      doc/lispref/positions.texi (Screen Lines): Describe the same for
      move-to-window-line.
      
      src/window.c (Fwindow_start, Fwindow_end, Fset_window_start)
      (Fpos_visible_in_window_p, Frecenter, Fmove_to_window_line): To each, add ar
      new optional parameter "group".  At the beginning of each, check whether the
      corresponding ...-group-function is set to a function, and if so execute this
      function in place of the normal processing.
      (syms_of_window): Define symbols for the six new variables below.
      (window-start-group-function, window-end-group-function)
      (set-window-start-group-function, recenter-group-function)
      (pos-visible-in-window-p-group-function, move-to-window-line-group-function):
      New permanent local buffer local variables.
      src/keyboard.c (Fposn_at_point): Add extra parameter in call to
      Fpos_visible_in_window_p.
      
      lisp/window.el (selected-window-group-function): New permanent local buffer
      local variable.
      (selected-window-group): New function.
      
      lisp/follow.el (follow-mode): Set the ...-group-function variables at mode
      enable, kill them at mode disable.  Add/remove follow-after-change to/from
      after-change-functions.
      (follow-start-end-invalid): New variable.
      (follow-redisplay): Manipulate follow-start-end-invalid.
      (follow-after-change, follow-window-start, follow-window-end)
      (follow-set-window-start, follow-pos-visible-in-window-p)
      (follow-move-to-window-line, follow-sit-for): New functions.
      
      lisp/isearch.el (isearch-call-message): New macro.
      (isearch-update, with-isearch-suspended, isearch-del-char)
      (isearch-search-and-update, isearch-ring-adjust): Invoke above new macro.
      (with-isearch-suspended): Rearrange code such that isearch-call-message is
      invoked before point is moved.
      (isearch-message): Add comment about where point must be at function call.
      (isearch-search): Remove call to isearch-message.
      (isearch-lazy-highlight-window-group): New variable.
      (isearch-lazy-highlight-new-loop): Unconditionally start idle timer.  Move
      the battery of tests to ...
      (isearch-lazy-highlight-maybe-new-loop): New function, started by idle timer.
      Note: (sit-for 0) is still called.
      (isearch-lazy-highlight-update): Check membership of
      isearch-lazy-highlight-window-group.  Don't set the `window' overlay
      property.
      (isearch-update, isearch-done, isearch-string-out-of-window)
      (isearch-back-into-window, isearch-lazy-highlight-maybe-new-loop)
      (isearch-lazy-highlight-search, isearch-lazy-highlight-update)
      (isearch-lazy-highlight-update): Call the six amended primitives (see
      src/window.c above) with the new `group' argument set to t, to cooperate
      with Follow Mode.
      2c56fc2a
  18. 26 Oct, 2015 1 commit
  19. 25 Oct, 2015 1 commit
  20. 21 Oct, 2015 1 commit
    • Paul Eggert's avatar
      Include-file cleanup for src directory · 63cfb75f
      Paul Eggert authored
      Omit ‘#include "foo.h"’ unless the file needs foo.h (Bug#21707).
      In a few cases, add ‘#include "foo.h"’ if the file needs foo.h
      but does not include it directly.  As a general rule, a source
      file should include foo.h if it needs the interfaces that foo.h
      defines.
      * src/alloc.c: Don’t include process.h.  Include dispextern.h,
      systime.h.
      * src/atimer.c: Don’t include blockinput.h.
      * src/buffer.c: Include coding.h, systime.h.  Don’t include
      keyboard.h, coding.h.
      * src/callint.c: Don’t include commands.h, keymap.h.
      * src/callproc.c: Don’t include character.h, ccl.h, composite.h,
      systty.h, termhooks.h.
      * src/casetab.c: Don’t include character.h.
      * src/category.c: Don’t include charset.h, keymap.h.
      * src/ccl.h: Don’t include character.h.
      * src/character.c: Don’t include charset.h.
      * src/charset.c: Don’t include disptab.h.
      * src/chartab.c: Don’t include ccl.h.
      * src/cm.c: Don’t include frame.h, termhooks.h.
      * src/cmds.c: Don’t include window.h, dispextern.h.
      * src/coding.c: Don’t include window.h, frame.h.
      * src/composite.c: Include composite.h.  Don’t include window.h,
      font.h.
      * src/data.c: Don’t include syssignal.h, termhooks.h, font.h.
      * src/dbusbind.c: Don’t include frame.h.
      * src/decompress.c: Don’t include character.h.
      * src/dired.c: Don’t include character.h, commands.h, charset.h.
      * src/dispnew.c: Don’t include character.h, indent.h, intervals.h,
      process.h, timespec.h.  Include systime.h.
      * src/doc.c: Include coding.h.  Don’t include keyboard.h.
      * src/editfns.c: Include composite.h.  Don’t include frame.h.
      * src/emacs.c: Include fcntl.h, coding.h.  Don’t include
      commands.h, systty.h..
      * src/fileio.c: Don’t include intervals.h, dispextern.h.
      Include composite.h.
      * src/filelock.c: Don’t include character.h, systime.h.
      * src/fns.c: Don’t include time.h, commands.h, keyboard.h,
      keymap.h, frame.h, blockinput.h, xterm.h.  Include composite.h.
      * src/font.c: Include termhooks.h.
      * src/font.h: Don’t include ccl.h, frame.h.  Add forward decls of
      struct composition_it, struct face, struct glyph_string.
      * src/fontset.c: Don’t include buffer.h, ccl.h, keyboard.h,
      intervals.h, window.h, termhooks.h.
      * src/frame.c: Don’t include character.h, commands.h, font.h.
      * src/frame.h: Don’t include dispextern.h.
      * src/fringe.c: Don’t include character.h.
      * src/ftcrfont.c: Don’t include dispextern.h, frame.h,
      character.h, charset.h, fontset.h.
      * src/ftfont.c: Don’t include frame.h, blockinput.h, coding.h,
      fontset.h.
      * src/ftxfont.c: Don’t include dispextern.h, character.h,
      charset.h, fontset.h.
      * src/gfilenotify.c: Don’t include frame.h, process.h.
      * src/gtkutil.c: Include dispextern.h, frame.h, systime.h.
      Don’t include syssignal.h, buffer.h, charset.h, font.h.
      * src/gtkutil.h: Don’t include frame.h.
      * src/image.c: Include fcntl.h and stdio.h instead of sysstdio.h.
      Don’t include character.h.
      * src/indent.c: Don’t include keyboard.h, termchar.h.
      * src/inotify.c: Don’t include character.h, frame.h.
      * src/insdel.c: Include composite.h.  Don’t include blockinput.h.
      * src/intervals.c: Don’t include character.h, keyboard.h.
      * src/intervals.h: Don’t include dispextern.h, composite.h.
      * src/keyboard.c: Don’t include sysstdio.h, disptab.h, puresize.h.
      Include coding.h.
      * src/keyboard.h: Don’t incldue systime.h.
      * src/keymap.c: Don’t include charset.h, frame.h.
      * src/lread.c: Include dispextern.h and systime.h.
      Don’t include frame.h.  Include systime.h.
      * src/macros.c: Don’t include commands.h, character.h, buffer.h.
      * src/menu.c: Include character.h, coding.h.  Don’t include
      dispextern.h.
      * src/menu.h: Don’t include systime.h.
      * src/minibuf.c: Don’t include commands.h, dispextern.h, syntax.h,
      intervals.h, termhooks.h.
      * src/print.c: Include coding.h.  Don’t include keyboard.h,
      window.h, dispextern.h, termchar.h, termhooks.h, font.h.
      Add forward decl of struct terminal.
      * src/process.c: Don’t include termhooks.h, commands.h,
      dispextern.h, composite.h.
      * src/region-cache.c: Don’t include character.h.
      * src/scroll.c: Don’t include keyboard.h, window.h.
      * src/search.c: Don’t include category.h, commands.h.
      * src/sound.c: Don’t include dispextern.h.
      * src/syntax.c: Don’t include command.h, keymap.h.
      * src/sysdep.c: Don’t include window.h, dispextern.h.
      * src/systime.h: Use ‘#ifdef emacs’, not ‘#ifdef EMACS_LISP_H’,
      * src/term.c: Don’t include systty.h, intervals.h, xterm.h.
      * src/terminal.c: Include character.h.
      Don’t include charset.h, coding.h.
      * src/textprop.c: Don’t include character.h.
      * src/undo.c: Don’t include character.h, commands.h, window.h.
      * src/unexsol.c: Don’t include character.h, charset.h.
      * src/widget.c: Include widget.h.  Don’t include keyboard.h,
      window.h, dispextern.h, blockinput.h, character.h, font.h.
      * src/widgetprv.h: Don’t include widget.h.
      * src/window.c: Don’t include character.h, menu.h, intervals.h.
      * src/xdisp.c: Include composite.h, systime.h.  Don’t include
      macros.h, process.h.
      * src/xfaces.c: Don’t include charset.h, keyboard.h, termhooks.h,
      intervals.h.
      * src/xfns.c: Don’t include menu.h, character.h, intervals.h,
      epaths.h, fontset.h, systime.h, atimer.h, termchar.h.
      * src/xfont.c: Don’t include dispextern.h, fontset.h, ccl.h.
      * src/xftfont.c: Don’t include dispextern.h, character.h, fontset.h.
      * src/xgselect.c: Don’t include timespec.h, frame.h.
      Include systime.h.
      * src/xgselect.h: Don’t include time.h.
      Use a forward decl to struct timespec instead.
      * src/xmenu.c: Don’t include keymap.h, character.h, charset.h,
      dispextern.h.  Include systime.h.
      * src/xml.c: Don’t include character.h.
      * src/xrdb.c [USE_MOTIF]: Don’t include keyboard.h.
      * src/xselect.c: Don’t include dispextern.h, character.h,
      buffer.h, process.h.
      * src/xsmfns.c: Don’t include systime.h, sysselect.h.
      * src/xterm.c: Don’t include syssignal.h, charset.h, disptab.h,
      intervals.h process.h, keymap.h, xgselect.h.  Include composite.h.
      63cfb75f
  21. 16 Sep, 2015 1 commit
    • Paul Eggert's avatar
      Omit unnecessary \ before paren in C docstrings · 032ce1c7
      Paul Eggert authored
      Although \( is needed in docstrings in Elisp code, it is not needed in
      docstrings in C code, since C function definitiions do not start with
      a parenthesis.  The backslashes made the docstrings a bit harder to
      read and to format in columns.  Also, some C docstrings had ( in
      column 1 and this did not appear to be causing any problems.  So,
      simplify C docstrings by replacing \( with ( and \) with ).
      032ce1c7
  22. 07 Sep, 2015 2 commits
    • Paul Eggert's avatar
      Go back to grave quoting in source-code docstrings etc. · 6afef3f6
      Paul Eggert authored
      This reverts almost all my recent changes to use curved quotes
      in docstrings and/or strings used for error diagnostics.
      There are a few exceptions, e.g., Bahá’í proper names.
      * admin/unidata/unidata-gen.el (unidata-gen-table):
      * lisp/abbrev.el (expand-region-abbrevs):
      * lisp/align.el (align-region):
      * lisp/allout.el (allout-mode, allout-solicit-alternate-bullet)
      (outlineify-sticky):
      * lisp/apropos.el (apropos-library):
      * lisp/bookmark.el (bookmark-default-annotation-text):
      * lisp/button.el (button-category-symbol, button-put)
      (make-text-button):
      * lisp/calc/calc-aent.el (math-read-if, math-read-factor):
      * lisp/calc/calc-embed.el (calc-do-embedded):
      * lisp/calc/calc-ext.el (calc-user-function-list):
      * lisp/calc/calc-graph.el (calc-graph-show-dumb):
      * lisp/calc/calc-help.el (calc-describe-key)
      (calc-describe-thing, calc-full-help):
      * lisp/calc/calc-lang.el (calc-c-language)
      (math-parse-fortran-vector-end, math-parse-tex-sum)
      (math-parse-eqn-matrix, math-parse-eqn-prime)
      (calc-yacas-language, calc-maxima-language, calc-giac-language)
      (math-read-giac-subscr, math-read-math-subscr)
      (math-read-big-rec, math-read-big-balance):
      * lisp/calc/calc-misc.el (calc-help, report-calc-bug):
      * lisp/calc/calc-mode.el (calc-auto-why, calc-save-modes)
      (calc-auto-recompute):
      * lisp/calc/calc-prog.el (calc-fix-token-name)
      (calc-read-parse-table-part, calc-user-define-invocation)
      (math-do-arg-check):
      * lisp/calc/calc-store.el (calc-edit-variable):
      * lisp/calc/calc-units.el (math-build-units-table-buffer):
      * lisp/calc/calc-vec.el (math-read-brackets):
      * lisp/calc/calc-yank.el (calc-edit-mode):
      * lisp/calc/calc.el (calc, calc-do, calc-user-invocation):
      * lisp/calendar/appt.el (appt-display-message):
      * lisp/calendar/diary-lib.el (diary-check-diary-file)
      (diary-mail-entries, diary-from-outlook):
      * lisp/calendar/icalendar.el (icalendar-export-region)
      (icalendar--convert-float-to-ical)
      (icalendar--convert-date-to-ical)
      (icalendar--convert-ical-to-diary)
      (icalendar--convert-recurring-to-diary)
      (icalendar--add-diary-entry):
      * lisp/calendar/time-date.el (format-seconds):
      * lisp/calendar/timeclock.el (timeclock-mode-line-display)
      (timeclock-make-hours-explicit, timeclock-log-data):
      * lisp/calendar/todo-mode.el (todo-prefix, todo-delete-category)
      (todo-item-mark, todo-check-format)
      (todo-insert-item--next-param, todo-edit-item--next-key)
      (todo-mode):
      * lisp/cedet/ede/pmake.el (ede-proj-makefile-insert-dist-rules):
      * lisp/cedet/mode-local.el (describe-mode-local-overload)
      (mode-local-print-binding, mode-local-describe-bindings-2):
      * lisp/cedet/semantic/complete.el (semantic-displayor-show-request):
      * lisp/cedet/srecode/srt-mode.el (srecode-macro-help):
      * lisp/cus-start.el (standard):
      * lisp/cus-theme.el (describe-theme-1):
      * lisp/custom.el (custom-add-dependencies, custom-check-theme)
      (custom--sort-vars-1, load-theme):
      * lisp/descr-text.el (describe-text-properties-1, describe-char):
      * lisp/dired-x.el (dired-do-run-mail):
      * lisp/dired.el (dired-log):
      * lisp/emacs-lisp/advice.el (ad-read-advised-function)
      (ad-read-advice-class, ad-read-advice-name, ad-enable-advice)
      (ad-disable-advice, ad-remove-advice, ad-set-argument)
      (ad-set-arguments, ad--defalias-fset, ad-activate)
      (ad-deactivate):
      * lisp/emacs-lisp/byte-opt.el (byte-compile-inline-expand)
      (byte-compile-unfold-lambda, byte-optimize-form-code-walker)
      (byte-optimize-while, byte-optimize-apply):
      * lisp/emacs-lisp/byte-run.el (defun, defsubst):
      * lisp/emacs-lisp/bytecomp.el (byte-compile-lapcode)
      (byte-compile-log-file, byte-compile-format-warn)
      (byte-compile-nogroup-warn, byte-compile-arglist-warn)
      (byte-compile-cl-warn)
      (byte-compile-warn-about-unresolved-functions)
      (byte-compile-file, byte-compile--declare-var)
      (byte-compile-file-form-defmumble, byte-compile-form)
      (byte-compile-normal-call, byte-compile-check-variable)
      (byte-compile-variable-ref, byte-compile-variable-set)
      (byte-compile-subr-wrong-args, byte-compile-setq-default)
      (byte-compile-negation-optimizer)
      (byte-compile-condition-case--old)
      (byte-compile-condition-case--new, byte-compile-save-excursion)
      (byte-compile-defvar, byte-compile-autoload)
      (byte-compile-lambda-form)
      (byte-compile-make-variable-buffer-local, display-call-tree)
      (batch-byte-compile):
      * lisp/emacs-lisp/cconv.el (cconv-convert, cconv--analyze-use):
      * lisp/emacs-lisp/chart.el (chart-space-usage):
      * lisp/emacs-lisp/check-declare.el (check-declare-scan)
      (check-declare-warn, check-declare-file)
      (check-declare-directory):
      * lisp/emacs-lisp/checkdoc.el (checkdoc-this-string-valid-engine)
      (checkdoc-message-text-engine):
      * lisp/emacs-lisp/cl-extra.el (cl-parse-integer)
      (cl--describe-class):
      * lisp/emacs-lisp/cl-generic.el (cl-defgeneric)
      (cl--generic-describe, cl-generic-generalizers):
      * lisp/emacs-lisp/cl-macs.el (cl--parse-loop-clause, cl-tagbody)
      (cl-symbol-macrolet):
      * lisp/emacs-lisp/cl.el (cl-unload-function, flet):
      * lisp/emacs-lisp/copyright.el (copyright)
      (copyright-update-directory):
      * lisp/emacs-lisp/edebug.el (edebug-read-list):
      * lisp/emacs-lisp/eieio-base.el (eieio-persistent-read):
      * lisp/emacs-lisp/eieio-core.el (eieio--slot-override)
      (eieio-oref):
      * lisp/emacs-lisp/eieio-opt.el (eieio-help-constructor):
      * lisp/emacs-lisp/eieio-speedbar.el:
      (eieio-speedbar-child-make-tag-lines)
      (eieio-speedbar-child-description):
      * lisp/emacs-lisp/eieio.el (defclass, change-class):
      * lisp/emacs-lisp/elint.el (elint-file, elint-get-top-forms)
      (elint-init-form, elint-check-defalias-form)
      (elint-check-let-form):
      * lisp/emacs-lisp/ert.el (ert-get-test, ert-results-mode-menu)
      (ert-results-pop-to-backtrace-for-test-at-point)
      (ert-results-pop-to-messages-for-test-at-point)
      (ert-results-pop-to-should-forms-for-test-at-point)
      (ert-describe-test):
      * lisp/emacs-lisp/find-func.el (find-function-search-for-symbol)
      (find-function-library):
      * lisp/emacs-lisp/generator.el (iter-yield):
      * lisp/emacs-lisp/gv.el (gv-define-simple-setter):
      * lisp/emacs-lisp/lisp-mnt.el (lm-verify):
      * lisp/emacs-lisp/macroexp.el (macroexp--obsolete-warning):
      * lisp/emacs-lisp/map-ynp.el (map-y-or-n-p):
      * lisp/emacs-lisp/nadvice.el (advice--make-docstring)
      (advice--make, define-advice):
      * lisp/emacs-lisp/package-x.el (package-upload-file):
      * lisp/emacs-lisp/package.el (package-version-join)
      (package-disabled-p, package-activate-1, package-activate)
      (package--download-one-archive)
      (package--download-and-read-archives)
      (package-compute-transaction, package-install-from-archive)
      (package-install, package-install-selected-packages)
      (package-delete, package-autoremove, describe-package-1)
      (package-install-button-action, package-delete-button-action)
      (package-menu-hide-package, package-menu--list-to-prompt)
      (package-menu--perform-transaction)
      (package-menu--find-and-notify-upgrades):
      * lisp/emacs-lisp/pcase.el (pcase-exhaustive, pcase--u1):
      * lisp/emacs-lisp/re-builder.el (reb-enter-subexp-mode):
      * lisp/emacs-lisp/ring.el (ring-previous, ring-next):
      * lisp/emacs-lisp/rx.el (rx-check, rx-anything)
      (rx-check-any-string, rx-check-any, rx-check-not, rx-=)
      (rx-repeat, rx-check-backref, rx-syntax, rx-check-category)
      (rx-form):
      * lisp/emacs-lisp/smie.el (smie-config-save):
      * lisp/emacs-lisp/subr-x.el (internal--check-binding):
      * lisp/emacs-lisp/tabulated-list.el (tabulated-list-put-tag):
      * lisp/emacs-lisp/testcover.el (testcover-1value):
      * lisp/emacs-lisp/timer.el (timer-event-handler):
      * lisp/emulation/viper-cmd.el (viper-toggle-parse-sexp-ignore-comments)
      (viper-toggle-search-style, viper-kill-buffer)
      (viper-brac-function):
      * lisp/emulation/viper-macs.el (viper-record-kbd-macro):
      * lisp/env.el (setenv):
      * lisp/erc/erc-button.el (erc-nick-popup):
      * lisp/erc/erc.el (erc-cmd-LOAD, erc-handle-login, english):
      * lisp/eshell/em-dirs.el (eshell/cd):
      * lisp/eshell/em-glob.el (eshell-glob-regexp)
      (eshell-glob-entries):
      * lisp/eshell/em-pred.el (eshell-parse-modifiers):
      * lisp/eshell/esh-opt.el (eshell-show-usage):
      * lisp/facemenu.el (facemenu-add-new-face)
      (facemenu-add-new-color):
      * lisp/faces.el (read-face-name, read-face-font, describe-face)
      (x-resolve-font-name):
      * lisp/files-x.el (modify-file-local-variable):
      * lisp/files.el (locate-user-emacs-file, find-alternate-file)
      (set-auto-mode, hack-one-local-variable--obsolete)
      (dir-locals-set-directory-class, write-file, basic-save-buffer)
      (delete-directory, copy-directory, recover-session)
      (recover-session-finish, insert-directory)
      (file-modes-char-to-who, file-modes-symbolic-to-number)
      (move-file-to-trash):
      * lisp/filesets.el (filesets-add-buffer, filesets-remove-buffer):
      * lisp/find-cmd.el (find-generic, find-to-string):
      * lisp/finder.el (finder-commentary):
      * lisp/font-lock.el (font-lock-fontify-buffer):
      * lisp/format.el (format-write-file, format-find-file)
      (format-insert-file):
      * lisp/frame.el (get-device-terminal, select-frame-by-name):
      * lisp/fringe.el (fringe--check-style):
      * lisp/gnus/nnmairix.el (nnmairix-widget-create-query):
      * lisp/help-fns.el (help-fns--key-bindings)
      (help-fns--compiler-macro, help-fns--parent-mode)
      (help-fns--obsolete, help-fns--interactive-only)
      (describe-function-1, describe-variable):
      * lisp/help.el (describe-mode)
      (describe-minor-mode-from-indicator):
      * lisp/image.el (image-type):
      * lisp/international/ccl.el (ccl-dump):
      * lisp/international/fontset.el (x-must-resolve-font-name):
      * lisp/international/mule-cmds.el (prefer-coding-system)
      (select-safe-coding-system-interactively)
      (select-safe-coding-system, activate-input-method)
      (toggle-input-method, describe-current-input-method)
      (describe-language-environment):
      * lisp/international/mule-conf.el (code-offset):
      * lisp/international/mule-diag.el (describe-character-set)
      (list-input-methods-1):
      * lisp/mail/feedmail.el (feedmail-run-the-queue):
      * lisp/mouse.el (minor-mode-menu-from-indicator):
      * lisp/mpc.el (mpc-playlist-rename):
      * lisp/msb.el (msb--choose-menu):
      * lisp/net/ange-ftp.el (ange-ftp-shell-command):
      * lisp/net/imap.el (imap-interactive-login):
      * lisp/net/mairix.el (mairix-widget-create-query):
      * lisp/net/newst-backend.el (newsticker--sentinel-work):
      * lisp/net/newst-treeview.el (newsticker--treeview-load):
      * lisp/net/rlogin.el (rlogin):
      * lisp/obsolete/iswitchb.el (iswitchb-possible-new-buffer):
      * lisp/obsolete/otodo-mode.el (todo-more-important-p):
      * lisp/obsolete/pgg-gpg.el (pgg-gpg-process-region):
      * lisp/obsolete/pgg-pgp.el (pgg-pgp-process-region):
      * lisp/obsolete/pgg-pgp5.el (pgg-pgp5-process-region):
      * lisp/org/ob-core.el (org-babel-goto-named-src-block)
      (org-babel-goto-named-result):
      * lisp/org/ob-fortran.el (org-babel-fortran-ensure-main-wrap):
      * lisp/org/ob-ref.el (org-babel-ref-resolve):
      * lisp/org/org-agenda.el (org-agenda-prepare):
      * lisp/org/org-clock.el (org-clock-notify-once-if-expired)
      (org-clock-resolve):
      * lisp/org/org-ctags.el (org-ctags-ask-rebuild-tags-file-then-find-tag):
      * lisp/org/org-feed.el (org-feed-parse-atom-entry):
      * lisp/org/org-habit.el (org-habit-parse-todo):
      * lisp/org/org-mouse.el (org-mouse-popup-global-menu)
      (org-mouse-context-menu):
      * lisp/org/org-table.el (org-table-edit-formulas):
      * lisp/org/ox.el (org-export-async-start):
      * lisp/proced.el (proced-log):
      * lisp/progmodes/ada-mode.el (ada-get-indent-case)
      (ada-check-matching-start, ada-goto-matching-start):
      * lisp/progmodes/ada-prj.el (ada-prj-display-page):
      * lisp/progmodes/ada-xref.el (ada-find-executable):
      * lisp/progmodes/ebrowse.el (ebrowse-tags-apropos):
      * lisp/progmodes/etags.el (etags-tags-apropos-additional):
      * lisp/progmodes/flymake.el (flymake-parse-err-lines)
      (flymake-start-syntax-check-process):
      * lisp/progmodes/python.el (python-shell-get-process-or-error)
      (python-define-auxiliary-skeleton):
      * lisp/progmodes/sql.el (sql-comint):
      * lisp/progmodes/verilog-mode.el (verilog-load-file-at-point):
      * lisp/progmodes/vhdl-mode.el (vhdl-widget-directory-validate):
      * lisp/recentf.el (recentf-open-files):
      * lisp/replace.el (query-replace-read-from)
      (occur-after-change-function, occur-1):
      * lisp/scroll-bar.el (scroll-bar-columns):
      * lisp/server.el (server-get-auth-key):
      * lisp/simple.el (execute-extended-command)
      (undo-outer-limit-truncate, list-processes--refresh)
      (compose-mail, set-variable, choose-completion-string)
      (define-alternatives):
      * lisp/startup.el (site-run-file, tty-handle-args, command-line)
      (command-line-1):
      * lisp/subr.el (noreturn, define-error, add-to-list)
      (read-char-choice, version-to-list):
      * lisp/term/common-win.el (x-handle-xrm-switch)
      (x-handle-name-switch, x-handle-args):
      * lisp/term/x-win.el (x-handle-parent-id, x-handle-smid):
      * lisp/textmodes/reftex-ref.el (reftex-label):
      * lisp/textmodes/reftex-toc.el (reftex-toc-rename-label):
      * lisp/textmodes/two-column.el (2C-split):
      * lisp/tutorial.el (tutorial--describe-nonstandard-key)
      (tutorial--find-changed-keys):
      * lisp/type-break.el (type-break-noninteractive-query):
      * lisp/wdired.el (wdired-do-renames, wdired-do-symlink-changes)
      (wdired-do-perm-changes):
      * lisp/whitespace.el (whitespace-report-region):
      Prefer grave quoting in source-code strings used to generate help
      and diagnostics.
      * lisp/faces.el (face-documentation):
      No need to convert quotes, since the result is a docstring.
      * lisp/info.el (Info-virtual-index-find-node)
      (Info-virtual-index, info-apropos):
      Simplify by generating only curved quotes, since info files are
      typically that ways nowadays anyway.
      * lisp/international/mule-diag.el (list-input-methods):
      Don’t assume text quoting style is curved.
      * lisp/org/org-bibtex.el (org-bibtex-fields):
      Revert my recent changes, going back to the old quoting style.
      6afef3f6
    • Stefan Monnier's avatar
  23. 03 Sep, 2015 1 commit
    • Stefan Monnier's avatar
      Re-add the notion of echo_prompt lost in the translation · 944d77f0
      Stefan Monnier authored
      * src/keyboard.h (struct kboard): Replace echo_after_prompt with new
      echo_prompt which contains the actual string.  Update all uses.
      
      * src/keyboard.c (kset_echo_prompt): New function.
      (echo_update): Add echo_prompt at the very beginning.
      (read_char): Remove workaround for bug#19875, not needed any more.
      (read_key_sequence): Set echo_prompt rather than echo_string (bug#21403).
      (mark_kboards): Mark echo_prompt.
      944d77f0
  24. 02 Sep, 2015 1 commit
    • Stefan Monnier's avatar
      Generalize the prefix-command machinery of C-u · 5dc644a6
      Stefan Monnier authored
      * lisp/simple.el (prefix-command-echo-keystrokes-functions)
      (prefix-command-preserve-state-hook): New hooks.
      (internal-echo-keystrokes-prefix): New function.
      (prefix-command--needs-update, prefix-command--last-echo): New vars.
      (prefix-command-update, prefix-command-preserve): New functions.
      (reset-this-command-lengths): New compatibility definition.
      (universal-argument--mode): Call prefix-command-update.
      (universal-argument, universal-argument-more, negative-argument)
      (digit-argument): Call prefix-command-preserve-state.
      
      * src/keyboard.c: Call internal-echo-keystrokes-prefix to build
      the "prefix argument" to echo.
      (this_command_key_count_reset, before_command_key_count)
      (before_command_echo_length): Delete variables.
      (echo_add_key): Always add a space.
      (echo_char): Remove.
      (echo_dash): Don't give up when this_command_key_count is 0, since that
      is now the case after a prefix command.
      (echo_update): New function, extracted from echo_now.
      (echo_now): Use it.
      (add_command_key, read_char, record_menu_key): Remove old disabled code.
      (command_loop_1): Don't refrain from pushing an undo boundary when
      prefix-arg is set.  Remove other prefix-arg special case, now handled
      directly in the prefix commands instead.  But call echo_now if there's
      a prefix state to echo.
      (read_char, record_menu_key): Use echo_update instead of echo_char.
      (read_key_sequence): Use echo_now rather than echo_dash/echo_char.
      (Freset_this_command_lengths): Delete function.
      (syms_of_keyboard): Define Qinternal_echo_keystrokes_prefix.
      (syms_of_keyboard): Don't defsubr Sreset_this_command_lengths.
      
      * lisp/simple.el: Use those new hooks for C-u.
      (universal-argument--description): New function.
      (prefix-command-echo-keystrokes-functions): Use it.
      (universal-argument--preserve): New function.
      (prefix-command-preserve-state-hook): Use it.
      (command-execute): Call prefix-command-update if needed.
      
      * lisp/kmacro.el (kmacro-step-edit-prefix-commands)
      (kmacro-step-edit-prefix-index): Delete variables.
      (kmacro-step-edit-query, kmacro-step-edit-insert): Remove ad-hoc
      support for prefix arg commands.
      (kmacro-step-edit-macro): Don't bind kmacro-step-edit-prefix-index.
      
      * lisp/emulation/cua-base.el (cua--prefix-override-replay)
      (cua--shift-control-prefix): Use prefix-command-preserve-state.
      Remove now unused arg `arg'.
      (cua--prefix-override-handler, cua--prefix-repeat-handler)
      (cua--shift-control-c-prefix, cua--shift-control-x-prefix):
      Update accordingly.
      (cua--prefix-override-timeout): Don't call reset-this-command-lengths
      any more.
      (cua--keep-active, cua-exchange-point-and-mark): Don't set mark-active
      if the mark is not set.
      5dc644a6
  25. 01 Sep, 2015 1 commit
  26. 27 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Assume GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS · 60d1b187
      Paul Eggert authored
      This removes the need for GCPRO1 etc.  Suggested by Stefan Monnier in:
      http://lists.gnu.org/archive/html/emacs-devel/2015-08/msg00918.html
      * doc/lispref/internals.texi (Writing Emacs Primitives):
      * etc/NEWS:
      Document the change.
      * src/alloc.c (gcprolist, dump_zombies, MAX_ZOMBIES, zombies)
      (nzombies, ngcs, avg_zombies, max_live, max_zombies, avg_live)
      (Fgc_status, check_gcpros, relocatable_string_data_p, gc-precise):
      * src/bytecode.c (mark_byte_stack) [BYTE_MARK_STACK]:
      * src/eval.c (gcpro_level) [DEBUG_GCPRO]:
      * src/lisp.h (struct handler.gcpro, struct gcpro, GC_MARK_STACK)
      (GC_USE_GCPROS_AS_BEFORE, GC_MAKE_GCPROS_NOOPS)
      (GC_MARK_STACK_CHECK_GCPROS, GC_USE_GCPROS_CHECK_ZOMBIES)
      (BYTE_MARK_STACK, GCPRO1, GCPRO2, GCPRO3, GCPRO4, GCPRO5, GCPRO6)
      (GCPRO7, UNGCPRO, RETURN_UNGCPRO):
      Remove.  All uses removed.  The code now assumes
      GC_MARK_STACK == GC_MAKE_GCPROS_NOOPS.
      * src/bytecode.c (relocate_byte_stack):
      Rename from unmark_byte_stack, since it now only relocates.
      All callers changed.
      * src/frame.c (make_frame): Add an IF_LINT to pacify GCC 5.2
      with GCPROs removed.
      * src/systime.h: Use EMACS_LISP_H as the canary instead of GCPRO1.
      * test/automated/finalizer-tests.el (finalizer-basic)
      (finalizer-circular-reference, finalizer-cross-reference)
      (finalizer-error):
      * test/automated/generator-tests.el (cps-test-iter-close-finalizer):
      Remove tests, as they depend on gc-precise.
      60d1b187
  27. 14 Aug, 2015 1 commit
  28. 12 Aug, 2015 1 commit
    • David Kastrup's avatar
      Deal gracefully with up-events (Bug#19746) · ad0b6dd0
      David Kastrup authored
      * keyboard.c (apply_modifiers_uncached, parse_solitary_modifier)
      (parse_modifiers_uncached): React gracefully to "up-" modifiers:
      those may easily be injected by user-level Lisp code.
      (read_key_sequence): Discard unbound up-events like unbound
      down-events: they are even more likely only relevant for special
      purposes.
      
      While Emacs will not produce up-events on its own currently (those are
      converted to drag or click events before being converted to
      Lisp-readable structures), the input queue can be made to contain them
      by synthesizing events to `unread-command-events'.  Emacs should deal
      consistently with such events.
      ad0b6dd0
  29. 10 Aug, 2015 1 commit
  30. 08 Aug, 2015 1 commit
    • Eli Zaretskii's avatar
      Support recovery from C stack overflow on MS-Windows · 7afa4f30
      Eli Zaretskii authored
      * src/w32fns.c (w32_reset_stack_overflow_guard)
      (stack_overflow_handler): New functions for handling C stack
      overflow exceptions.
      (my_exception_handler): Handle EXCEPTION_STACK_OVERFLOW exceptions
      specially, and zero out except_addr if we do.
      (globals_of_w32fns): Initialize dwMainThreadId in non-interactive
      mode.
      * src/sysdep.c [HAVE_STACK_OVERFLOW_HANDLING]: Add !WINDOWSNT to
      the condition, as HAVE_STACK_OVERFLOW_HANDLING is now defined for
      the MinGW build, but the code guarded by that is for Posix hosts.
      * src/keyboard.c (command_loop) [WINDOWSNT]: Call
      w32_reset_stack_overflow_guard.
      
      * nt/inc/ms-w32.h (sigjmp_buf): New typedef.
      (sigsetjmp): New macro.
      (w32_reset_stack_overflow_guard): Declare the prototype.
      
      * configure.ac (HAVE_STACK_OVERFLOW_HANDLING): Set to 1 for MinGW.
      7afa4f30
  31. 02 Aug, 2015 1 commit
    • Paul Eggert's avatar
      Treat help strings like other doc strings · 5f5fe275
      Paul Eggert authored
      * doc/lispref/text.texi (Special Properties), etc/NEWS: Document this.
      * lisp/epa.el (epa--select-keys): Remove no-longer-needed calls to
      substitute-command-keys.
      * src/keyboard.c (show_help_echo, parse_menu_item): Call
      substitute-command-keys on the help string before displaying it.
      5f5fe275
  32. 31 Jul, 2015 1 commit
    • Paul Eggert's avatar
      Port to pedantic memcpy · 8a7a99e0
      Paul Eggert authored
      * src/keyboard.c (menu_bar_items, tool_bar_items):
      * src/xrdb.c (magic_db):
      Port to pedantic memcpy implementations that reject memcpy (0, 0, 0).
      8a7a99e0
  33. 17 Jul, 2015 1 commit
    • Paul Eggert's avatar
      Fix hang with large yanks This should fix the bug fixed by Mike · 0592cefd
      Paul Eggert authored
      Crowe's patch in:
      https://lists.gnu.org/archive/html/emacs-devel/2015-07/msg00106.html
      A problem in this area has been reported by several users; see
      Bug#16737, Bug#17101, Bug#17026, Bug#17172, Bug#19320, Bug#20283.
      This fix differs from Mike Crowe's patch in that it should avoid a
      race condition that could lose SIGIO signals.  ignore_sigio dates
      back to the 1980s when some platforms couldn't block signals, and
      could only ignore them, which led to races when signals arrived
      while being ignored.  We shouldn't have to worry about those old
      platforms now.
      * src/dispextern.h, src/sysdep.c (ignore_sigio): Remove.
      * src/emacs.c (shut_down_emacs):
      Don't call ignore_sigio; unrequest_sigio should suffice.
      * src/keyboard.c (kbd_buffer_store_buffered_event):
      Use unrequest_sigio, not ignore_sigio.
      (kbd_buffer_get_event):
      Call request_sigio when getting the ball rolling again.
      0592cefd
  34. 01 Jul, 2015 1 commit
  35. 23 Jun, 2015 2 commits
    • Paul Eggert's avatar
      Fix bug that munged selection info · 1552e673
      Paul Eggert authored
      On some optimizing C compilers, copying a structure did not
      copy the padding bytes between elements, and the type punning
      between struct input_data and struct selection_input_data did
      not work.  Change the C code to use a proper union type instead.
      Problem reported by YAMAMOTO Mitsuharu (Bug#20756).
      * src/keyboard.c (kbd_buffer, kbd_fetch_ptr, kbd_store_ptr)
      (readable_events, discard_mouse_events, kbd_buffer_events_waiting)
      (kbd_buffer_get_event, process_special_events, stuff_buffered_input)
      (mark_kboards):
      Use union buffered_input_event, not struct input_event.
      (clear_event, deliver_input_available_signal, process_special_events):
      Remove unnecessary forward decls.
      (kbd_buffer_store_buffered_event): New function, mostly just the
      old kbd_buffer_store_event_hold, except its argument is of type
      union buffered_input_event, not struct input_event.
      (kbd_buffer_unget_event): Define only if HAVE_X11, since it's
      not needed otherwise.  Argument is now of type
      struct selection_input_event *, not struct input_event *.
      All callers changed.
      (clear_event): Arg is now of type union buffered_input_event *,
      not struct input_event *.  All callers changed.
      * src/keyboard.h [HAVE_X11]: Include "xterm.h".
      (union buffered_input_event): New type.
      (kbd_buffer_store_event_hold): Now an inline function,
      defined here.
      * src/termhooks.h (EVENT_KIND_WIDTH): New constant.
      (struct input_event): Use it.
      * src/xselect.c (struct selection_event_queue):
      Make elements be of type struct selection_input_event,
      not struct input_event.
      (selection_input_event_equal): New static function.
      (x_queue_event): Use it.
      (x_queue_event, x_decline_selection_request)
      (x_selection_current_request, x_reply_selection_request)
      (x_handle_selection_request, x_handle_selection_clear)
      (x_handle_selection_event): Use struct selection_input_event,
      not struct input_event.  All callers changed.
      (x_convert_selection): Omit unused first arg.  All callers changed.
      (Fx_disown_selection_internal): Omit unnecessary union.
      * src/xterm.c (handle_one_xevent): Use new union buffered_input_event
      rather than rolling our own equivalent.  Prefer sie.kind when
      setting up that kind of structure.
      Call kbd_buffer_store_buffered_event, not kbd_buffer_store_event_hold.
      * src/xterm.h (struct selection_input_event: Use EVENT_KIND_WIDTH.
      (SELECTION_EVENT_DISPLAY, SELECTION_EVENT_DPYINFO)
      (SELECTION_EVENT_REQUESTOR, SELECTION_EVENT_SELECTION)
      (SELECTION_EVENT_TARGET, SELECTION_EVENT_PROPERTY)
      (SELECTION_EVENT_TIME, x_handle_selection_event):
      Arg is now of type struct selection_input_event *)
      not struct input_event *.  All callers changed.
      1552e673
    • Paul Eggert's avatar
      931f0067
  36. 21 Jun, 2015 1 commit
    • Paul Eggert's avatar
      Fix some “nested” quoting confusion in doc strings · 38bb9ff0
      Paul Eggert authored
      * lisp/emacs-lisp/advice.el (ad-map-arglists):
      * lisp/kermit.el (kermit-clean-on):
      * lisp/mh-e/mh-comp.el (mh-repl-group-formfile):
      * src/keyboard.c (Frecursive_edit):
      Use curved quotes when quoting text containing apostrophe,
      so that the apostrophe isn't curved in the output.
      38bb9ff0