1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 18:40:39 -08:00
Commit graph

119116 commits

Author SHA1 Message Date
Glenn Morris
1152755364 Auto-commit of loaddefs files. 2015-01-27 06:19:52 -05:00
Oleh Krehel
2c3b05c93e lisp/emacs-lisp/derived.el (define-derived-mode): Declare indent 3.
Now, e.g. `indent-sexp' will produce:

    (define-derived-mode outline-mode text-mode "Outline"
      "Set ...")

instead of:

    (define-derived-mode outline-mode text-mode "Outline"
                         "Set ...")
2015-01-27 10:48:40 +01:00
Paul Eggert
589094a489 Port autogen.sh hook creation to Apple Git
* autogen.sh: Do not assume that the hook samples exist.
This ports to git version 1.9.3 (Apple Git-50).
For some reason Apple decided to populate the git hooks directory
in a different way from the way that standard Git does it.
The downside is that patch applications won't be checked on Apple,
but that's better than autogen.sh failing.
Problem reported by Sam Steingold in:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00898.html
2015-01-26 22:35:03 -08:00
Lars Magne Ingebrigtsen
b28c81bcf2 lisp/gnus/nnir.el Check for literal+ capability in IMAP 2015-01-27 06:06:43 +00:00
Eric Abrahamsen
4f2ca8e550 lisp/gnus/nnir.el (nnir-run-imap): Enable non-ASCII IMAP searches 2015-01-27 05:46:15 +00:00
Eric Abrahamsen
9e0866e121 [Gnus] Make nnmairix always select the correct article 2015-01-27 05:45:12 +00:00
Katsumi Yamaoka
de925ab19d lisp/ChangeLog (2015-01-27): Add bug# 2015-01-27 03:25:16 +00:00
Katsumi Yamaoka
1fe087a1ab lisp/emacs-lisp/cl.el (cl--function-convert): Work for cl-flet and cl-labels 2015-01-27 03:15:49 +00:00
Paul Eggert
2639c2ed08 Use bool for boolean in xfaces.c
* dispextern.h: Adjust to signature changes.
* font.c (font_at, font_range):
* fontset.c (Finternal_char_font):
* fringe.c (draw_fringe_bitmap_1):
* xdisp.c (handle_face_prop, face_before_or_after_it_pos)
(get_next_display_element, highlight_trailing_whitespace)
(display_string, calc_line_height_property)
(note_mode_line_or_margin_highlight, note_mouse_highlight):
* xfaces.c (tty_suppress_bold_inverse_default_colors_p)
(menu_face_changed_default, recompute_basic_faces)
(Fbitmap_spec_p, parse_rgb_list, tty_lookup_color)
(tty_defined_color, defined_color, face_color_gray_p)
(face_color_supported_p, load_color2, load_face_colors)
(Fx_list_fonts, LFACEP, push_named_merge_point)
(resolve_face_name, lface_from_face_name_no_resolve)
(lface_from_face_name, get_lface_attributes_no_remap)
(get_lface_attributes, lface_fully_specified_p)
(set_lface_from_font, merge_face_vectors, merge_named_face)
(merge_face_ref, Finternal_make_lisp_face)
(Finternal_lisp_face_p, Finternal_copy_lisp_face)
(Finternal_set_lisp_face_attribute)
(update_face_from_frame_parameter, set_font_frame_param)
(face_boolean_x_resource_value)
(Finternal_set_lisp_face_attribute_from_resource)
(x_update_menu_appearance, Finternal_get_lisp_face_attribute)
(Finternal_merge_in_global_face, Fface_font, face_attr_equal_p)
(lface_equal_p, Finternal_lisp_face_equal_p)
(Finternal_lisp_face_empty_p, lface_same_font_attributes_p)
(Fcolor_distance, lookup_named_face, lookup_basic_face)
(lookup_derived_face, Fface_attributes_as_vector)
(x_supports_face_attributes_p, tty_supports_face_attributes_p)
(Fdisplay_supports_face_attributes_p, realize_basic_faces)
(realize_default_face, realize_named_face)
(realize_non_ascii_face, realize_x_face, map_tty_color)
(realize_tty_face, compute_char_face, face_at_buffer_position)
(face_for_overlay_string, face_at_string_position):
Use bool for boolean.
* xfaces.c (set_lface_from_font):
Return void, since callers never use the result.
2015-01-26 17:03:09 -08:00
Paul Eggert
81f7fcb4b8 * INSTALL.REPO: Mention minimum Git version. 2015-01-26 11:21:45 -08:00
Andreas Schwab
e912f35dc5 * image.c (lookup_pixel_color): Reorder conditions that are
written backwards.
(x_to_xcolors): Likewise.
(x_detect_edges): Likewise.
(png_load_body): Likewise.
(gif_close): Likewise.
(gif_load): Likewise.
2015-01-26 19:01:38 +01:00
Stefan Monnier
a9a3d429e6 * lisp/emacs-lisp/cl-generic.el (cl--generic-method): New struct.
(cl--generic): The method-table is now a (list-of cl--generic-method).
(cl--generic-member-method): New function.
(cl-generic-define-method): Use it.
(cl--generic-build-combined-method, cl--generic-cache-miss):
Adapt to new method-table.
(cl--generic-no-next-method-function): Add `method' argument.
(cl-generic-call-method): Adapt to new method representation.
(cl--generic-cnm-sample, cl--generic-nnm-sample): Adjust.
(cl-find-method, cl-method-qualifiers): New functions.
(cl--generic-method-info): Adapt to new method representation.
Return a string for the qualifiers.
(cl--generic-describe):
* lisp/emacs-lisp/eieio-opt.el (eieio-help-class): Adjust accordingly.
(eieio-all-generic-functions, eieio-method-documentation):
Adjust to new method representation.

* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use cl-find-method.

* test/automated/cl-generic-tests.el: Try and make sure cl-lib is not
required at run-time.
2015-01-26 11:43:06 -05:00
Stefan Monnier
4cdde9196f * lisp/emacs-lisp/cl-generic.el: Add a method-combination hook.
(cl-generic-method-combination-function): New var.
(cl--generic-lambda): Remove `with-cnm' arg.
(cl-defmethod): Change accordingly.
(cl-generic-define-method): Don't check qualifiers validity.
Preserve all qualifiers in `method-table'.
(cl-generic-call-method): New function.
(cl--generic-nest): Remove (morph into cl-generic-call-method).
(cl--generic-build-combined-method): Adjust to new format of method-table
and use cl-generic-method-combination-function.
(cl--generic-standard-method-combination): New function, extracted from
cl--generic-build-combined-method.
(cl--generic-cnm-sample): Adjust to new format of method-table.

* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Use () qualifiers
instead of :primary.

* lisp/emacs-lisp/eieio-datadebug.el (eieio-debug-methodinvoke):
Remove obsolete function.

* test/automated/cl-generic-tests.el (cl-generic-test-11-next-method-p):
New test.
2015-01-26 09:04:55 -05:00
Trevor Murphy
242354a23a lisp/gnus/nnimap.el Allow using the Google X-GM-LABELS, if present 2015-01-26 07:56:37 +00:00
Lars Magne Ingebrigtsen
dafb0ef852 * lisp/net/shr.el (shr-make-table-1): Fix colspan typo. 2015-01-26 16:14:17 +11:00
Lars Magne Ingebrigtsen
8fded982c1 Update the etc/publicsuffix.txt file
* etc/publicsuffix.txt: Install an updated version of the file from
https://publicsuffix.org/list/effective_tld_names.dat.
2015-01-26 15:21:34 +11:00
Peder O. Klingenberg
f6019361e2 [Gnus] Fixups when displaying certain attachments 2015-01-26 04:19:51 +00:00
Lars Ingebrigtsen
8e39ec680c [Gnus] Make moving IMAP articles faster in large groups 2015-01-26 04:18:57 +00:00
Eli Barzilay
44df0a8f50 lisp/calculator.el (calculator-update-display): Bug fix & improvement.
Avoid a crash when the daved ptr is at the end of the list (= when it's
before the first one).  Also use `eq' to compare the value so the saved
list indicator appears when a value was retrieved from the list rather
than an equal result is shown.
2015-01-25 22:42:01 -05:00
Lars Ingebrigtsen
c3d4505b5a * lisp/net/eww.el (eww-add-bookmark): Fix prompt
And clean up the code slightly.
2015-01-26 12:50:01 +11:00
Eli Zaretskii
03a20dc951 Use bool for boolean in w32term.c
src/w32term.c (x_update_window_begin, x_update_window_end)
 (x_update_end, x_after_update_window_line)
 (x_set_glyph_string_gc, x_draw_glyph_string_background)
 (x_draw_glyph_string_foreground)
 (x_draw_composite_glyph_string_foreground)
 (x_draw_glyphless_glyph_string_foreground)
 (x_draw_image_glyph_string, x_draw_glyph_string)
 (x_draw_stretch_glyph_string, note_mouse_movement)
 (w32_mouse_position, x_scroll_bar_report_motion)
 (x_horizontal_scroll_bar_report_motion, w32_read_socket)
 (w32_set_vertical_scroll_bar, w32_set_horizontal_scroll_bar)
 (w32_draw_window_cursor, x_new_font, x_set_offset)
 (x_set_window_size, x_make_frame_invisible, x_iconify_frame): Use
 bool where appropriate.
2015-01-26 00:03:14 +02:00
Eli Zaretskii
49b822741f Use bool for boolean in w32fns.c
src/w32fns.c (w32_defined_color, x_decode_color)
 (Fxw_color_defined_p, Fxw_color_values, x_set_icon_type)
 (x_set_menu_bar_lines, x_change_tool_bar_height)
 (x_set_internal_border_width, x_explicitly_set_name)
 (x_implicitly_set_name, Fx_create_frame, w32_window)
 (x_create_tip_frame, Fx_show_tip): Use bool where appropriate.
2015-01-25 23:12:35 +02:00
Paul Eggert
11a9f3779c Use bool for boolean in xfns.c
* xfaces.c (x_update_menu_appearance):
* xfns.c (x_real_positions, x_defined_color, x_decode_color)
(xg_set_icon, xg_set_icon_from_xpm_data, x_set_cursor_color)
(x_set_icon_type, x_set_icon_name, x_set_menu_bar_lines)
(x_change_tool_bar_height, x_set_internal_border_width)
(x_encode_text, x_set_name_internal, x_explicitly_set_name)
(x_implicitly_set_name, x_default_scroll_bar_color_parameter)
(hack_wm_protocols, xic_create_fontsetname, xic_free_xfontset)
(x_window, x_icon, Fx_wm_set_size_hint, Fx_create_frame)
(Fxw_color_defined_p, Fxw_color_values, x_create_tip_frame)
(Fx_show_tip, clean_up_file_dialog, Fx_file_dialog)
(clean_up_dialog, syms_of_xfns):
* xterm.h (xg_set_icon, xg_set_icon_from_xpm_data)
(xic_create_fontsetname):
Use bool for boolean.
* xfns.c: Include bitmaps/gray.xbm unconditionally.
2015-01-25 12:34:02 -08:00
Paul Eggert
a3689d3c66 Count MANY function args more reliably
* alloc.c (Fgc_status, purecopy, unbind_to, garbage_collect_1):
* buffer.c (Fbuffer_list, Fkill_buffer):
* callint.c (read_file_name, Fcall_interactively):
* charset.c (Fset_charset_priority, syms_of_charset):
* chartab.c (uniprop_encode_value_numeric):
* coding.c (syms_of_coding):
* composite.c (syms_of_composite):
* data.c (wrong_range):
* dbusbind.c (syms_of_dbusbind):
* dired.c (file_attributes):
* editfns.c (Fdecode_time, update_buffer_properties, format2):
* eval.c (run_hook_with_args_2, apply1, call1, call2, call3)
(call4, call5, call6, call7):
* fileio.c (Finsert_file_contents, choose_write_coding_system)
(Fcar_less_than_car, build_annotations, auto_save_error):
* filelock.c (get_boot_time):
* fns.c (internal_equal, nconc2, Fyes_or_no_p, Fwidget_apply):
(maybe_resize_hash_table, secure_hash):
* font.c (font_style_to_value, font_open_by_name, Flist_fonts):
* fontset.c (fontset_add, Fset_fontset_font):
* ftfont.c (ftfont_lookup_cache):
* gtkutil.c (xg_get_font):
* insdel.c (signal_before_change, signal_after_change):
* keymap.c (append_key):
* lread.c (load_warn_old_style_backquotes, Fload, init_lread):
* minibuf.c (Fread_buffer):
* print.c (print_preprocess):
* process.c (Fformat_network_address, Fmake_network_process)
(server_accept_connection):
* sound.c (Fplay_sound_internal):
* term.c (Fsuspend_tty, Fresume_tty):
* window.c (window_list):
* xdisp.c (run_redisplay_end_trigger_hook, add_to_log)
(message_with_string):
* xfaces.c (Fx_list_fonts):
* xfont.c (syms_of_xfont):
* xselect.c (x_handle_selection_request)
(x_handle_selection_clear, x_clear_frame_selections)
(x_clipboard_manager_error_1):
Prefer CALLMANY and CALLN to counting args by hand.
* doc.c (reread_doc_file): Remove unused code.
* fns.c (concat2, concat3): Redo to avoid need for local-var vector.
(cmpfn_user_defined, hashfn_user_defined, Fmaphash):
Prefer call1 and call2 to Ffuncall.
* keyboard.c (safe_run_hook_funcall, safe_run_hooks):
Use struct literal rather than a local var, for simplicity.
* keymap.c (where_is_internal): Use NULL rather than a pointer
to unused args.
* lisp.h (CALLMANY, CALLN): New macros.
* sound.c (Fplay_sound_internal): Coalesce duplicate code.
Fixes: bug#19634
2015-01-25 09:11:25 -08:00
Stefan Monnier
c4e54f9627 * lisp/emacs-lisp/cl-generic.el: Fix next-method-p test
Fixes: debbugs:19672

* lisp/emacs-lisp/cl-generic.el (cl--generic-no-next-method-function): New.
(cl--generic-build-combined-method, cl--generic-nnm-sample): Use it.
(cl--generic-typeof-types): Add support for `sequence'.
(cl-defmethod): Add non-keywords in the qualifiers.
2015-01-25 11:09:53 -05:00
Lars Ingebrigtsen
f67446455f lisp/gnus/gnus-group.el (gnus-group-suspend): Close all backends 2015-01-25 12:18:51 +00:00
Paul Eggert
407e6beeb3 * indent/shell.sh (bar): Use '[ $# -eq 0 ]', not '[ $# == 0 ]'.
This is more portable in shell scripts.
Fixes: bug#19658
2015-01-24 19:02:07 -08:00
Paul Eggert
f6ef836521 Use gnustep-config if available
* configure.ac (--with-gnustep): Document this.
(NS_GNUSTEP_CONFIG): New variable, set if gnustep-config works.
If gnustep-config works, use 'gnustep-config --objc-flags' and
'gnustep-config --gui-libs' to compute GNUstep configuration
variables, instead of attempting to infer them individually.
* etc/NEWS: Document this.
* src/emacs.c [NS_IMPL_GNUSTEP]: Don't include <GNUstepBase/GSConfig.h>.
It doesn't appear to be needed, and the inclusion breaks on
Ubuntu 14.10 when 'configure' uses 'gnustep-config'.
Fixes: bug#19507
2015-01-24 18:20:29 -08:00
Dmitry Gutov
bce27d8845 (find-function-regexp): Don't match `defgroup'
* lisp/emacs-lisp/find-func.el (find-function-regexp): Don't match
`defgroup' (regression from the previous change here).
2015-01-25 02:20:01 +02:00
Paul Eggert
02cbd38ae4 Fix a couple of AM_V_GEN bugs
* admin/unidata/Makefile.in (unifiles):
Use AM_V_at instead of AM_V_GEN, since this doesn't generate a file.
* lib-src/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0, am__v_GEN_1)
(AM_V_at, am__v_at_, am__v_at_0, am__v_at_1):
New macros, copied from ../src/Makefile.in.
2015-01-23 16:08:57 -08:00
Stefan Monnier
ac5475dacb lisp/net/{eudc,ldap}: Merge branch streamline-eudc-configuration 2015-01-23 17:20:19 -05:00
Stefan Monnier
fd62486e81 * lisp/emacs-lisp/cl-generic.el (cl-no-primary-method): New fun and error.
(cl--generic-build-combined-method): Use it.
2015-01-23 16:50:56 -05:00
Dmitry Gutov
f02406c74a Fix package tests when TMPDIR is in HOME
Fixes: debbugs:19657

* test/automated/package-test.el (with-package-test):
Bind `abbreviated-home-dir' to nil.
(package-test-describe-package, package-test-signed):
Expect abbreviated directory names.
2015-01-23 02:50:15 +02:00
Jorgen Schaefer
2f908e0cac Re-add and fix prioritized archives test.
* automated/package-test.el (package-test-install-prioritized):
Re-add the test case and add priority to the correct repository
this time around.
2015-01-22 21:06:47 +01:00
Eli Zaretskii
3e359626e6 src/xdisp.c (init_iterator): Restore a comment lost in transition. 2015-01-22 19:57:18 +02:00
Glenn Morris
d7995b18e4 Auto-commit of loaddefs files. 2015-01-22 06:21:14 -05:00
Paul Eggert
74ab488ff2 Check exit statuses in lib-src/Makefile
* Makefile.in ($(DESTDIR)${archlibdir}, install, uninstall)
(mostlyclean, clean, distclean, extraclean):
Check exit statuses more carefully.  Reindent to fit in 80 chars.
(bootstrap-clean maintainer-clean): Remove unnecessary 'true'.
2015-01-22 00:40:16 -08:00
Paul Eggert
b631bb57cf Use bool for boolean in xfont.c, xftfont.c, xgselect.c
* xfont.c (xfont_driver, xfont_chars_supported)
(xfont_text_extents):
* xftfont.c (xftfont_get_colors, xftfont_open)
(xftfont_prepare_face, xftfont_done_face)
(xftfont_cached_font_ok):
* xgselect.c (xg_select):
Use bool for boolean.
2015-01-21 23:41:24 -08:00
Ulrich Müller
7f4e7dd378 Don't fail if chown or chgrp for 'update-game-score' is unsuccessful.
* lib-src/Makefile.in ($(DESTDIR)${archlibdir}): Don't fail if the
chown or chgrp command is unsuccessful; the 'update-game-score'
program has a fallback for this at runtime.
2015-01-22 08:24:42 +01:00
Paul Eggert
394b976fb9 Spelling fix 2015-01-21 22:06:58 -08:00
Paul Eggert
8dd58a2d1f Don't downcase system diagnostics' first letters
* etc/NEWS: Document this.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file):
* lisp/ffap.el (find-file-at-point):
* lisp/files.el (insert-file-1):
* lisp/net/ange-ftp.el (ange-ftp-barf-if-not-directory)
(ange-ftp-copy-file-internal):
* lisp/progmodes/etags.el (visit-tags-table):
* lisp/url/url-dav.el (url-dav-delete-directory, url-dav-delete-file)
(url-dav-directory-files):
Keep diagnostics consistent with system's.
* lisp/erc/erc-dcc.el (erc-dcc-server):
* lisp/ffap.el (ffap-machine-p):
Ignore case while comparing diagnostics.
* src/fileio.c (report_file_errno): Don't downcase, and simplify.
Fixes: bug#19642
2015-01-21 20:29:42 -08:00
Stefan Monnier
938bca8e41 Avoid generating invalid usage info for pathological function
Fixes: debbugs:19645

* lisp/help.el (help-make-usage): Don't turn a "_" arg into an empty-string.
* lisp/emacs-lisp/cl-generic.el (cl--generic-lambda): Don't confuse a string
body with a docstring.
2015-01-21 23:16:45 -05:00
Paul Eggert
74244d239e Better isolate code that assumes NIL_IS_ZERO
Suggested by Stefan Monnier in:
http://lists.gnu.org/archive/html/emacs-devel/2015-01/msg00588.html
* alloc.c (allocate_pseudovector):
Use memclear, not memsetnil, to remove a 'verify'.
* callint.c (Fcall_interactively):
* dispnew.c (realloc_glyph_pool):
* xdisp.c (init_iterator):
Use memclear, not memset, to remove a 'verify'.
* lisp.h (memclear): Rename from memsetnil, and take a byte
count rather than a word count.  All callers changed.
2015-01-21 20:03:34 -08:00
Dmitry Gutov
03346fb074 xref: Replace defgeneric and defmethod with cl- counterparts
* lisp/progmodes/xref.el (xref-location-marker, xref-location-group):
Use `cl-defgeneric' and `cl-defmethod' instead of the EIEIO
counterparts.

* lisp/progmodes/etags.el (xref-location-marker): Same.
2015-01-22 04:24:31 +02:00
Dmitry Gutov
a17a5daebf xref: Input history and minor tweaks
* lisp/progmodes/xref.el (xref--current): Rename from `xref--selected'.
(xref--inhibit-mark-current): Rename from
`xref--inhibit-mark-selected'.  Update the usages.
(xref-quit): Reword the docstring.  Kill buffers after quitting
windows instead of before.
(xref--insert-xrefs): Tweak help-echo.
(xref--read-identifier-history, xref--read-pattern-history):
New variables.
(xref--read-identifier, xref-find-apropos): Use them.
2015-01-22 04:09:23 +02:00
Ulrich Müller
20f6648552 Allow update-game-score to run sgid instead of suid.
* configure.ac (gamegroup): New AC_SUBST.
(--with-gameuser): Allow to specify a group instead of a user.
In the default case, check at configure time if a 'games' user
exists.
* lib-src/update-game-score.c: Allow the program to run sgid
instead of suid, in order to match common practice for most games.
(main): Check if we are running sgid.  Pass appropriate file
permission bits to 'write_scores'.
(write_scores): New 'mode' argument, instead of hardcoding 0644.
(get_prefix): Update error message.
* lib-src/Makefile.in (gamegroup): New variable, set by configure.
($(DESTDIR)${archlibdir}): Handle both suid or sgid when
installing the 'update-game-score' program.
* lisp/play/gamegrid.el (gamegrid-add-score-with-update-game-score):
Allow the 'update-game-score' helper program to run suid or sgid.
2015-01-21 21:33:17 +01:00
Stefan Monnier
59e7fe6d0c * lisp/emacs-lisp/eieio*.el: Fix up warnings and improve compatibility
Fixes: debbugs:19645

* lisp/emacs-lisp/cl-generic.el (cl-defgeneric): Add support for `declare'.
(cl--generic-setf-rewrite): Setup the setf expander right away.
(cl-defmethod): Make sure the setf expander is setup before we expand
the body.
(cl-defmethod): Silence byte-compiler warnings.
(cl-generic-define-method): Shuffle code to change return value.
(cl--generic-method-info): New function, extracted from
cl--generic-describe.
(cl--generic-describe): Use it.

* lisp/emacs-lisp/eieio-speedbar.el:
* lisp/emacs-lisp/eieio-datadebug.el:
* lisp/emacs-lisp/eieio-custom.el:
* lisp/emacs-lisp/eieio-base.el: Use cl-defmethod.

* lisp/emacs-lisp/eieio-compat.el (eieio--defmethod): Avoid no-next-method
errors when there's a `before' but no `primary'.
(next-method-p): Return nil rather than signal an error.
(eieio-defgeneric): Remove bogus (fboundp 'method).

* lisp/emacs-lisp/eieio-opt.el: Adapt to cl-generic.
(eieio--specializers-apply-to-class-p):	New function.
(eieio-all-generic-functions): Use it.
(eieio-method-documentation): Use it as well as cl--generic-method-info.
Change format of return value.
(eieio-help-class): Adapt accordingly.

* lisp/emacs-lisp/eieio.el: Use cl-defmethod.
(defclass): Generate cl-defmethod calls; use setf methods for :accessor.
(eieio-object-name-string): Declare as obsolete.

* test/automated/cl-generic-tests.el (setf cl--generic-2): Make sure
the setf can be used already in the body of the method.
2015-01-21 14:39:06 -05:00
Glenn Morris
41efcf4db1 Auto-commit of loaddefs files. 2015-01-21 06:20:15 -05:00
Dmitry Gutov
e7697d9763 Remap quit-window to xref-quit in xref buffers
Fixes: debbugs:19466

* lisp/progmodes/xref.el (xref--xref-buffer-mode-map): Define before
the major mode.  Remap `quit-window' to `xref-quit'.
(xref--xref-buffer-mode): Inherit from special-mode.
2015-01-21 09:20:04 +02:00
Dmitry Gutov
956b13c527 xref: Keep track of temporary buffers
Fixes: debbugs:19466

xref: Keep track of temporary buffers.
* lisp/progmodes/xref.el (xref--temporary-buffers, xref--selected)
(xref--inhibit-mark-selected): New variables.
(xref--mark-selected): New function.
(xref--show-location): Maybe add the buffer to
`xref--temporary-buffers', add `xref--mark-selected' to
`buffer-list-update-hook' there.
(xref--window): Add docstring.
(xref-quit): Rename from `xref--quit'.  Update both references.
Add KILL argument.  When it's non-nil, kill the temporary buffers
that haven't been selected by the user.
(xref--show-xref-buffer): Change the second argument to alist,
extract the values for `xref--window' and
`xref--temporary-buffers' from it.  Add `xref--mark-selected' to
`buffer-list-update-hook' to each buffer in the list.
(xref--show-xrefs): Move the logic of calling `xref-find-function'
here.  Save the difference between buffer lists before and after
it's called as "temporary buffers", and `pass it to
`xref-show-xrefs-function'.
(xref--find-definitions, xref-find-references)
(xref-find-apropos): Update accordingly.
2015-01-21 08:43:39 +02:00