commit 00140ca6bfceda53eb4f504b859e283d04c2c67f (HEAD, refs/remotes/origin/master) Author: Martin Rudalics Date: Fri Jun 11 09:55:02 2021 +0200 Rename/rewrite recently added option and function in window.el * lisp/window.el (window-at-x-y): Rename from `window-at-pos'. Fix doc-string. (delete-window-choose-selected): Rename from `delete-window-set-selected'. Fix doc-string. (delete-window): Adjust to above renaming. * doc/emacs/windows.texi (Change Window): Mention new option `delete-window-choose-selected'. * etc/NEWS: * doc/lispref/windows.texi (Deleting Windows): Follow up on above renamings. diff --git a/doc/emacs/windows.texi b/doc/emacs/windows.texi index c66deb7748..5e07e83ee5 100644 --- a/doc/emacs/windows.texi +++ b/doc/emacs/windows.texi @@ -310,6 +310,8 @@ the space that it occupied is given to an adjacent window (but not the minibuffer window, even if that is active at the time). Deleting the window has no effect on the buffer it used to display; the buffer continues to exist, and you can still switch to it with @kbd{C-x b}. +The option @code{delete-window-choose-selected} allows to choose which +window becomes the new selected window instead. @findex kill-buffer-and-window @kindex C-x 4 0 diff --git a/doc/lispref/windows.texi b/doc/lispref/windows.texi index bcb492d68f..6792d1b2d2 100644 --- a/doc/lispref/windows.texi +++ b/doc/lispref/windows.texi @@ -1322,17 +1322,27 @@ When @code{delete-window} deletes the selected window of its frame, it has to make another window the new selected window of that frame. The following option allows to choose which window gets selected instead. -@defopt delete-window-set-selected +@defopt delete-window-choose-selected This option allows to specify which window should become a frame's selected window after @code{delete-window} has deleted the previously -selected one. +selected one. Possible choices are + +@itemize +@item @code{mru} +(the default) to choose the most recently used window on that frame. + +@item @code{pos} +to choose the window comprising the frame coordinates of point of the +previously selected window on that frame. + +@item @code{nil} +to choose the first window (the window returned by +@code{frame-first-window}) on that frame. +@end itemize -Possible choices are @code{mru} (the default) to select the most -recently used window on that frame and @code{pos} to choose the window -at the position of point of the previously selected window. If this -option is @code{nil}, it means to choose the frame's first window -instead. Note that a window with a non-@code{nil} -@code{no-other-window} parameter is never chosen. +A window with a non-@code{nil} @code{no-other-window} parameter is +chosen only if all other windows on that frame have that parameter set +to a non-@code{nil} value too. @end defopt @deffn Command delete-other-windows &optional window diff --git a/etc/NEWS b/etc/NEWS index f3db28d3cb..1693342f0a 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -605,14 +605,14 @@ These options include 'windmove-default-keybindings', ** Windows +++ -*** New option 'delete-window-set-selected'. +*** New option 'delete-window-choose-selected'. This allows to choose a frame's selected window after deleting the previously selected one. +++ *** New argument NO-OTHER for some window functions. 'get-lru-window', ‘get-mru-window’ and 'get-largest-window' now accept a -new optional argument NO-OTHER which if non-nil avoids returning a +new optional argument NO-OTHER which, if non-nil, avoids returning a window whose 'no-other-window' parameter is non-nil. +++ diff --git a/lisp/window.el b/lisp/window.el index e7551f30c3..ff4a39a2a0 100644 --- a/lisp/window.el +++ b/lisp/window.el @@ -4142,16 +4142,16 @@ frame can be safely deleted." ;; of its frame. t)))) -(defun window-at-pos (x y &optional frame no-other) +(defun window-at-x-y (x y &optional frame no-other) "Return live window at coordinates X, Y on specified FRAME. -X and Y are counted in pixels from an origin at 0, 0 of FRAME's -native frame. A coordinate on an edge shared by two windows is -attributed to the window on the right (or below). Return nil if -no such window can be found. +X and Y are FRAME-relative pixel coordinates. A coordinate on an +edge shared by two windows is attributed to the window on the +right (or below). Return nil if no such window can be found. Optional argument FRAME must specify a live frame and defaults to the selected one. Optional argument NO-OTHER non-nil means to -not return a window with a non-nil 'no-other-window' parameter." +return nil if the window located at the specified coordinates has +a non-nil `no-other-window' parameter." (setq frame (window-normalize-frame frame)) (let* ((root-edges (window-edges (frame-root-window frame) nil nil t)) (root-left (nth 2 root-edges)) @@ -4169,7 +4169,7 @@ not return a window with a non-nil 'no-other-window' parameter." (throw 'window window))))) frame)))) -(defcustom delete-window-set-selected 'mru +(defcustom delete-window-choose-selected 'mru "How to choose a frame's selected window after window deletion. When a frame's selected window gets deleted, Emacs has to choose another live window on that frame to serve as its selected @@ -4177,14 +4177,17 @@ window. This option allows to control which window gets selected instead. The possible choices are 'mru' (the default) to select the most -recently used window on that frame and 'pos' to choose the window -at the position of point of the previously selected window. If -this is nil, choose the frame's first window instead. A window -with a non-nil 'no-other-window' parameter is never chosen." +recently used window on that frame, and 'pos' to choose the +window at the frame coordinates of point of the previously +selected window. If this is nil, choose the frame's first window +instead. A window with a non-nil `no-other-window' parameter is +chosen only if all windows on that frame have that parameter set +to a non-nil value." :type '(choice (const :tag "Most recently used" mru) (const :tag "At position of deleted" pos) (const :tag "Frame's first " nil)) :group 'windows + :group 'frames :version "28.1") (defun delete-window (&optional window) @@ -4207,7 +4210,7 @@ that is its frame's root window. If WINDOW is the selected window on its frame, choose some other window as that frame's selected window according to the value of -the option `delete-window-set-selected'." +the option `delete-window-choose-selected'." (interactive) (setq window (window-normalize-window window)) (let* ((frame (window-frame window)) @@ -4263,7 +4266,7 @@ the option `delete-window-set-selected'." ;; Can't do without resizing fixed-size windows. (window--resize-siblings window (- size) horizontal t))) - (when (eq delete-window-set-selected 'pos) + (when (eq delete-window-choose-selected 'pos) ;; Remember edges and position of point of the selected window ;; of WINDOW'S frame. (setq frame-selected-window-edges @@ -4276,8 +4279,8 @@ the option `delete-window-set-selected'." (window--pixel-to-total frame horizontal) ;; If we deleted the selected window of WINDOW's frame, choose - ;; another one based on `delete-window-set-selected'. Note - ;; that both `window-at-pos' and `get-mru-window' may fail to + ;; another one based on `delete-window-choose-selected'. Note + ;; that both `window-at-x-y' and `get-mru-window' may fail to ;; produce a suitable window in which case we will fall back on ;; its frame's first window, chosen by `delete-window-internal'. (cond @@ -4287,7 +4290,7 @@ the option `delete-window-set-selected'." ;; selected window. Try to find the window that is now ;; at that position. (let ((new-frame-selected-window - (window-at-pos + (window-at-x-y (+ (nth 0 frame-selected-window-edges) (car frame-selected-window-pos)) (+ (nth 1 frame-selected-window-edges) @@ -4297,7 +4300,7 @@ the option `delete-window-set-selected'." ;; Select window at WINDOW's position at point. (set-frame-selected-window frame new-frame-selected-window))))) - ((and (eq delete-window-set-selected 'mru) + ((and (eq delete-window-choose-selected 'mru) ;; Try to use the most recently used window. (let ((mru-window (get-mru-window frame nil nil t))) (and mru-window commit 0088cf4f938de6335904fffc54793cde3ddfc13c Author: Eli Zaretskii Date: Fri Jun 11 09:29:37 2021 +0300 ; * etc/NEWS: Rephrase the entry about 'grep-find-template'. diff --git a/etc/NEWS b/etc/NEWS index 06c6efd995..f3db28d3cb 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -1113,7 +1113,14 @@ grep-like tools. On systems where the grep command supports it, directories will be skipped. -*** 'grep-find-template' now includes the 'find' option '-H'. +*** Commands that use 'grep-find' now follow symlinks for command-line args. +This is because the default value of 'grep-find-template' now includes +the 'find' option '-H'. Commands that use that variable, including +indirectly via a call to 'xref-matches-in-directory', might be +affected. In particular, there should be no need anymore to ensure +any directory names on the 'find' command lines end in a slash. +This change is for better compatibility with old versions of non-GNU +'find', such as the one used on macOS. ** Help commit 86309efb4ad8fc0f3821254ba076834f24e71e4c Author: Dmitry Gutov Date: Fri Jun 11 04:39:34 2021 +0300 Simplify vc-git-log-switches's usage; change default value to nil * lisp/vc/vc-git.el (vc-git-log-switches): Do not mention or allow the value 't' anymore (https://lists.gnu.org/archive/html/emacs-devel/2021-06/msg00452.html). (vc-git-print-log): Use 'vc-git-log-switches' directly. diff --git a/lisp/vc/vc-git.el b/lisp/vc/vc-git.el index bd29b88e87..89f9800a1b 100644 --- a/lisp/vc/vc-git.el +++ b/lisp/vc/vc-git.el @@ -127,9 +127,9 @@ If nil, use the value of `vc-annotate-switches'. If t, use no switches." (repeat :tag "Argument List" :value ("") string)) :version "25.1") -(defcustom vc-git-log-switches t +(defcustom vc-git-log-switches nil "String or list of strings specifying switches for Git log under VC." - :type '(choice (const :tag "None" t) + :type '(choice (const :tag "None" nil) (string :tag "Argument String") (repeat :tag "Argument List" :value ("") string)) :version "28.1") @@ -1171,10 +1171,10 @@ If LIMIT is a revision string, use it as an end-revision." (when shortlog `("--graph" "--decorate" "--date=short" ,(format "--pretty=tformat:%s" - (car vc-git-root-log-format)) - "--abbrev-commit")) - (vc-switches 'git 'log) - (when (numberp limit) + (car vc-git-root-log-format)) + "--abbrev-commit")) + vc-git-log-switches + (when (numberp limit) (list "-n" (format "%s" limit))) (when start-revision (if (and limit (not (numberp limit))) commit af4cccb8d98516ae96a3ebdc9a9eb7d7d8d5c1c5 Author: Eli Zaretskii Date: Thu Jun 10 16:55:04 2021 +0300 Support mercury in 'ctags' as well The previous lack of support was due to incorrect calls to 'make_tag' in 'mercury_pr', which caused 'pfnote' to refrain from adding Mercury tags to the list of recorded tags. * lib-src/etags.c (mercury_pr): Pass the correct NAME and NAMELEN arguments to 'make_tag'. * test/manual/etags/CTAGS.good: Adjust to the above change. diff --git a/lib-src/etags.c b/lib-src/etags.c index e5bd36c782..9f20e44caf 100644 --- a/lib-src/etags.c +++ b/lib-src/etags.c @@ -6399,7 +6399,7 @@ mercury_decl (char *s, size_t pos) { if (strcmp (buf, "pred") != 0 && strcmp (buf, "func") != 0) /* Bad syntax. */ return 0; - is_mercury_quantifier = false; /* Beset to base value. */ + is_mercury_quantifier = false; /* Reset to base value. */ found_decl_tag = true; } else @@ -6530,7 +6530,7 @@ mercury_pr (char *s, char *last, ptrdiff_t lastlen) len0 = skip_spaces (s + 2) - s; } - size_t len = mercury_decl (s , len0); + size_t len = mercury_decl (s, len0); if (len == 0) return 0; len += len0; @@ -6545,7 +6545,22 @@ mercury_pr (char *s, char *last, ptrdiff_t lastlen) the first line. */ || is_mercury_type) { - make_tag (s, 0, true, s, len, lineno, linecharno); + char *name = skip_non_spaces (s + len0); + size_t namelen; + if (name >= s + len) + { + name = s; + namelen = len; + } + else + { + name = skip_spaces (name); + namelen = len - (name - s); + } + /* Remove trailing non-name characters. */ + while (namelen > 0 && notinname (name[namelen - 1])) + namelen--; + make_tag (name, namelen, true, s, len, lineno, linecharno); return len; } diff --git a/test/manual/etags/CTAGS.good b/test/manual/etags/CTAGS.good index 3cffd6d25e..e265836fd2 100644 --- a/test/manual/etags/CTAGS.good +++ b/test/manual/etags/CTAGS.good @@ -2461,8 +2461,47 @@ abs/f ada-src/etags-test-for.ada /^ function "abs" (Right : Complex) return absolute_dirname c-src/etags.c /^absolute_dirname (char *file, char *dir)$/ absolute_filename c-src/etags.c /^absolute_filename (char *file, char *dir)$/ abt cp-src/c.C 55 +acc_pred_info merc-src/accumulator.m /^:- pred acc_pred_info(list(mer_type)::in, list(pro/ +acc_proc_info merc-src/accumulator.m /^:- pred acc_proc_info(list(prog_var)::in, prog_var/ +acc_unification merc-src/accumulator.m /^:- pred acc_unification(pair(prog_var)::in, hlds_g/ +acc_var_subst_init merc-src/accumulator.m /^:- pred acc_var_subst_init(list(prog_var)::in,$/ accent_key_syms c-src/emacs/src/keyboard.c 4625 access_keymap_keyremap c-src/emacs/src/keyboard.c /^access_keymap_keyremap (Lisp_Object map, Lisp_Obje/ +accu_assoc merc-src/accumulator.m /^:- pred accu_assoc(module_info::in, vartypes::in, / +accu_assoc merc-src/accumulator.m /^:- type accu_assoc$/ +accu_base merc-src/accumulator.m /^:- type accu_base$/ +accu_before merc-src/accumulator.m /^:- pred accu_before(module_info::in, vartypes::in,/ +accu_case merc-src/accumulator.m /^:- type accu_case$/ +accu_construct merc-src/accumulator.m /^:- pred accu_construct(module_info::in, vartypes::/ +accu_construct_assoc merc-src/accumulator.m /^:- pred accu_construct_assoc(module_info::in, vart/ +accu_create_goal merc-src/accumulator.m /^:- pred accu_create_goal(accu_goal_id::in, list(pr/ +accu_divide_base_case merc-src/accumulator.m /^:- pred accu_divide_base_case(module_info::in, var/ +accu_goal_id merc-src/accumulator.m /^:- type accu_goal_id$/ +accu_goal_list merc-src/accumulator.m /^:- func accu_goal_list(list(accu_goal_id), accu_go/ +accu_goal_store merc-src/accumulator.m /^:- type accu_goal_store == goal_store(accu_goal_id/ +accu_has_heuristic merc-src/accumulator.m /^:- pred accu_has_heuristic(module_name::in, string/ +accu_heuristic merc-src/accumulator.m /^:- pred accu_heuristic(module_name::in, string::in/ +accu_is_associative merc-src/accumulator.m /^:- pred accu_is_associative(module_info::in, pred_/ +accu_is_update merc-src/accumulator.m /^:- pred accu_is_update(module_info::in, pred_id::i/ +accu_process_assoc_set merc-src/accumulator.m /^:- pred accu_process_assoc_set(module_info::in, ac/ +accu_process_update_set merc-src/accumulator.m /^:- pred accu_process_update_set(module_info::in, a/ +accu_related merc-src/accumulator.m /^:- pred accu_related(module_info::in, vartypes::in/ +accu_rename merc-src/accumulator.m /^:- func accu_rename(list(accu_goal_id), accu_subst/ +accu_sets merc-src/accumulator.m /^:- type accu_sets$/ +accu_sets_init merc-src/accumulator.m /^:- pred accu_sets_init(accu_sets::out) is det.$/ +accu_stage1 merc-src/accumulator.m /^:- pred accu_stage1(module_info::in, vartypes::in,/ +accu_stage1_2 merc-src/accumulator.m /^:- pred accu_stage1_2(module_info::in, vartypes::i/ +accu_stage2 merc-src/accumulator.m /^:- pred accu_stage2(module_info::in, proc_info::in/ +accu_stage3 merc-src/accumulator.m /^:- pred accu_stage3(accu_goal_id::in, list(prog_va/ +accu_standardize merc-src/accumulator.m /^:- pred accu_standardize(hlds_goal::in, hlds_goal:/ +accu_store merc-src/accumulator.m /^:- pred accu_store(accu_case::in, hlds_goal::in,$/ +accu_subst merc-src/accumulator.m /^:- type accu_subst == map(prog_var, prog_var).$/ +accu_substs merc-src/accumulator.m /^:- type accu_substs$/ +accu_substs_init merc-src/accumulator.m /^:- pred accu_substs_init(list(prog_var)::in, prog_/ +accu_top_level merc-src/accumulator.m /^:- pred accu_top_level(top_level::in, hlds_goal::i/ +accu_transform_proc merc-src/accumulator.m /^:- pred accu_transform_proc(pred_proc_id::in, pred/ +accu_update merc-src/accumulator.m /^:- pred accu_update(module_info::in, vartypes::in,/ +accu_warning merc-src/accumulator.m /^:- type accu_warning$/ act prol-src/natded.prolog /^act(OutForm,OutSyn,Ws):-$/ action prol-src/natded.prolog /^action(KeyVals):-$/ active_maps c-src/emacs/src/keyboard.c /^active_maps (Lisp_Object first_event)$/ @@ -2534,6 +2573,8 @@ assemby-code-word forth-src/test-forth.fth /^code assemby-code-word ( dunno what assert c-src/etags.c 135 assert c-src/etags.c /^# define assert(x) ((void) 0)$/ assign_neighbor cp-src/clheir.hpp /^ void assign_neighbor(int direction, location */ +assoc_list merc-src/accumulator.m /^:- import_module assoc_list.$/ +associativity_assertion merc-src/accumulator.m /^:- pred associativity_assertion(module_info::in, l/ at_end c-src/etags.c 249 at_filename c-src/etags.c 247 at_language c-src/etags.c 245 @@ -2567,6 +2608,8 @@ bas_syn prol-src/natded.prolog /^bas_syn(n(_)).$/ base c-src/emacs/src/lisp.h 2188 base cp-src/c.C /^double base (void) const { return rng_base; }$/ base cp-src/Range.h /^ double base (void) const { return rng_base; }$/ +base_case_ids merc-src/accumulator.m /^:- func base_case_ids(accu_goal_store) = list(accu/ +base_case_ids_set merc-src/accumulator.m /^:- func base_case_ids_set(accu_goal_store) = set(a/ baz= ruby-src/test1.ru /^ :baz,$/ bb c.c 275 bbb c.c 251 @@ -2604,6 +2647,7 @@ bodyindent tex-src/texinfo.tex /^\\exdentamount=\\defbodyindent$/ bodyindent tex-src/texinfo.tex /^\\advance\\leftskip by \\defbodyindent \\advance \\righ/ bodyindent tex-src/texinfo.tex /^\\exdentamount=\\defbodyindent$/ bool c.c 222 +bool merc-src/accumulator.m /^:- import_module bool.$/ bool_header_size c-src/emacs/src/lisp.h 1472 bool_vector_bitref c-src/emacs/src/lisp.h /^bool_vector_bitref (Lisp_Object a, EMACS_INT i)$/ bool_vector_bytes c-src/emacs/src/lisp.h /^bool_vector_bytes (EMACS_INT size)$/ @@ -2645,6 +2689,7 @@ c_ext c-src/etags.c 2271 caccacacca c.c /^caccacacca (a,b,c,d,e,f,g)$/ cacheLRUEntry_s c.c 172 cacheLRUEntry_t c.c 177 +calculate_goal_info merc-src/accumulator.m /^:- pred calculate_goal_info(hlds_goal_expr::in, hl/ calloc c-src/emacs/src/gmalloc.c 66 calloc c-src/emacs/src/gmalloc.c 70 calloc c-src/emacs/src/gmalloc.c /^calloc (size_t nmemb, size_t size)$/ @@ -2665,6 +2710,8 @@ cgrep html-src/software.html /^cgrep$/ chain c-src/emacs/src/lisp.h 1162 chain c-src/emacs/src/lisp.h 2206 chain c-src/emacs/src/lisp.h 2396 +chain_subst merc-src/accumulator.m /^:- func chain_subst(accu_subst, accu_subst) = accu/ +chain_subst_2 merc-src/accumulator.m /^:- pred chain_subst_2(list(A)::in, map(A, B)::in, / char_bits c-src/emacs/src/lisp.h 2443 char_table_specials c-src/emacs/src/lisp.h 1692 charpos c-src/emacs/src/lisp.h 2011 @@ -2707,6 +2754,7 @@ command_loop_1 c-src/emacs/src/keyboard.c /^command_loop_1 (void)$/ command_loop_2 c-src/emacs/src/keyboard.c /^command_loop_2 (Lisp_Object ignore)$/ command_loop_level c-src/emacs/src/keyboard.c 195 comment php-src/lce_functions.php /^ function comment($line, $class)$/ +commutativity_assertion merc-src/accumulator.m /^:- pred commutativity_assertion(module_info::in,li/ compile_empty prol-src/natded.prolog /^compile_empty:-$/ compile_lex prol-src/natded.prolog /^compile_lex(File):-$/ complete prol-src/natded.prolog /^complete(Cat):-$/ @@ -2740,6 +2788,13 @@ create-bar forth-src/test-forth.fth /^: create-bar foo ;$/ createPOEntries php-src/lce_functions.php /^ function createPOEntries()$/ createWidgets pyt-src/server.py /^ def createWidgets(self, host):$/ createWidgets pyt-src/server.py /^ def createWidgets(self):$/ +create_acc_call merc-src/accumulator.m /^:- func create_acc_call(hlds_goal::in(goal_plain_c/ +create_acc_goal merc-src/accumulator.m /^:- pred create_acc_goal(hlds_goal::in, accu_substs/ +create_new_base_goals merc-src/accumulator.m /^:- func create_new_base_goals(set(accu_goal_id), a/ +create_new_orig_recursive_goals merc-src/accumulator.m /^:- func create_new_orig_recursive_goals(set(accu_g/ +create_new_recursive_goals merc-src/accumulator.m /^:- func create_new_recursive_goals(set(accu_goal_i/ +create_new_var merc-src/accumulator.m /^:- pred create_new_var(prog_var::in, string::in, p/ +create_orig_goal merc-src/accumulator.m /^:- pred create_orig_goal(hlds_goal::in, accu_subst/ cscInitTime cp-src/c.C 7 cscSegmentationTime cp-src/c.C 8 cstack c-src/etags.c 2523 @@ -3104,6 +3159,8 @@ gcpro c-src/emacs/src/lisp.h 3042 gcpro c-src/emacs/src/lisp.h 3132 gen_help_event c-src/emacs/src/keyboard.c /^gen_help_event (Lisp_Object help, Lisp_Object fram/ genalgorithm html-src/algrthms.html /^Generating the Data<\/font><\/i><\/b>$/ +generate_warning merc-src/accumulator.m /^:- pred generate_warning(module_info::in, prog_var/ +generate_warnings merc-src/accumulator.m /^:- pred generate_warnings(module_info::in, prog_va/ generic_object cp-src/clheir.cpp /^generic_object::generic_object(void)$/ generic_object cp-src/clheir.hpp 13 getArchs objc-src/PackInsp.m /^-(void)getArchs$/ @@ -3172,6 +3229,21 @@ help_char_p c-src/emacs/src/keyboard.c /^help_char_p (Lisp_Object c)$/ help_form_saved_window_configs c-src/emacs/src/keyboard.c 2156 helpwin pyt-src/server.py /^def helpwin(helpdict):$/ hide_cursor cp-src/screen.cpp /^void hide_cursor(void)$/ +hlds merc-src/accumulator.m /^:- import_module hlds.$/ +hlds.assertion merc-src/accumulator.m /^:- import_module hlds.assertion.$/ +hlds.goal_util merc-src/accumulator.m /^:- import_module hlds.goal_util.$/ +hlds.hlds_error_util merc-src/accumulator.m /^:- import_module hlds.hlds_error_util.$/ +hlds.hlds_goal merc-src/accumulator.m /^:- import_module hlds.hlds_goal.$/ +hlds.hlds_module merc-src/accumulator.m /^:- import_module hlds.hlds_module.$/ +hlds.hlds_out merc-src/accumulator.m /^:- import_module hlds.hlds_out.$/ +hlds.hlds_out.hlds_out_util merc-src/accumulator.m /^:- import_module hlds.hlds_out.hlds_out_util.$/ +hlds.hlds_pred merc-src/accumulator.m /^:- import_module hlds.hlds_pred.$/ +hlds.hlds_promise merc-src/accumulator.m /^:- import_module hlds.hlds_promise.$/ +hlds.instmap merc-src/accumulator.m /^:- import_module hlds.instmap.$/ +hlds.pred_table merc-src/accumulator.m /^:- import_module hlds.pred_table.$/ +hlds.quantification merc-src/accumulator.m /^:- import_module hlds.quantification.$/ +hlds.status merc-src/accumulator.m /^:- import_module hlds.status.$/ +hlds.vartypes merc-src/accumulator.m /^:- import_module hlds.vartypes.$/ htmltreelist prol-src/natded.prolog /^htmltreelist([]).$/ hybrid_aligned_alloc c-src/emacs/src/gmalloc.c /^hybrid_aligned_alloc (size_t alignment, size_t siz/ hybrid_calloc c-src/emacs/src/gmalloc.c /^hybrid_calloc (size_t nmemb, size_t size)$/ @@ -3191,6 +3263,9 @@ ialpage tex-src/texinfo.tex /^ \\dimen@=\\pageheight \\advance\\dimen@ by-\\ht\ ialpage tex-src/texinfo.tex /^ \\availdimen@=\\pageheight \\advance\\availdimen@ by/ ialpage tex-src/texinfo.tex /^ \\dimen@=\\pageheight \\advance\\dimen@ by-\\ht\\pa/ ialpage= tex-src/texinfo.tex /^ \\output={\\global\\setbox\\partialpage=$/ +identify_goal_type merc-src/accumulator.m /^:- pred identify_goal_type(pred_id::in, proc_id::i/ +identify_out_and_out_prime merc-src/accumulator.m /^:- pred identify_out_and_out_prime(module_info::in/ +identify_recursive_calls merc-src/accumulator.m /^:- pred identify_recursive_calls(pred_id::in, proc/ idx c-src/emacs/src/lisp.h 3150 ignore_case c-src/etags.c 266 ignore_mouse_drag_p c-src/emacs/src/keyboard.c 1256 @@ -3220,6 +3295,7 @@ inita c.c /^static void inita () {}$/ initb c.c /^static void initb () {}$/ initial_kboard c-src/emacs/src/keyboard.c 84 initialize-new-tags-table el-src/emacs/lisp/progmodes/etags.el /^(defun initialize-new-tags-table ()$/ +initialize_goal_store merc-src/accumulator.m /^:- func initialize_goal_store(list(hlds_goal), ins/ initialize_random_junk y-src/cccp.y /^initialize_random_junk ()$/ input-pending-p c-src/emacs/src/keyboard.c /^DEFUN ("input-pending-p", Finput_pending_p, Sinput/ input_available_clear_time c-src/emacs/src/keyboard.c 324 @@ -3235,6 +3311,7 @@ instance_method_exclamation! ruby-src/test.rb /^ def instance_method_excl instance_method_question? ruby-src/test.rb /^ def instance_method_question?$/ instr y-src/parse.y 81 instruct c-src/etags.c 2527 +int merc-src/accumulator.m /^:- import_module int.$/ intNumber go-src/test1.go 13 integer c-src/emacs/src/lisp.h 2127 integer y-src/cccp.y 112 @@ -3257,6 +3334,7 @@ intoken c-src/etags.c /^#define intoken(c) (_itk[CHAR (c)]) \/* c can be in/ intspec c-src/emacs/src/lisp.h 1688 intvar c-src/emacs/src/lisp.h 2277 invalidate_nodes c-src/etags.c /^invalidate_nodes (fdesc *badfdp, node **npp)$/ +io merc-src/accumulator.m /^:- import_module io.$/ ipc3dCSC19 cp-src/c.C 6 ipc3dChannelType cp-src/c.C 1 ipc3dIslandHierarchy cp-src/c.C 1 @@ -3266,6 +3344,7 @@ irregular_location cp-src/clheir.hpp /^ irregular_location(double xi, double isComment php-src/lce_functions.php /^ function isComment($class)$/ isHoliday cp-src/functions.cpp /^bool isHoliday ( Date d ){$/ isLeap cp-src/functions.cpp /^bool isLeap ( int year ){$/ +is_associative_construction merc-src/accumulator.m /^:- pred is_associative_construction(module_info::i/ is_curly_brace_form c-src/h.h 54 is_explicit c-src/h.h 49 is_func c-src/etags.c 221 @@ -3274,6 +3353,7 @@ is_idchar y-src/cccp.y 948 is_idstart y-src/cccp.y 950 is_muldiv_operation cp-src/c.C /^is_muldiv_operation(pc)$/ is_ordset prol-src/ordsets.prolog /^is_ordset(X) :- var(X), !, fail.$/ +is_recursive_case merc-src/accumulator.m /^:- pred is_recursive_case(list(hlds_goal)::in, pre/ iso_lispy_function_keys c-src/emacs/src/keyboard.c 5151 isoperator prol-src/natded.prolog /^isoperator(Char):-$/ isoptab prol-src/natded.prolog /^isoptab('%').$/ @@ -3370,6 +3450,10 @@ letter: tex-src/texinfo.tex /^\\xdef\\thischapter{Appendix \\appendixletter: \\n level c-src/emacs/src/lisp.h 3153 lex prol-src/natded.prolog /^lex(W,SynOut,Sem):-$/ lexptr y-src/cccp.y 332 +libs merc-src/accumulator.m /^:- import_module libs.$/ +libs.globals merc-src/accumulator.m /^:- import_module libs.globals.$/ +libs.optimization_options merc-src/accumulator.m /^:- import_module libs.optimization_options.$/ +libs.options merc-src/accumulator.m /^:- import_module libs.options.$/ licenze html-src/softwarelibero.html /^Licenze d'uso di un programma$/ limit cp-src/Range.h /^ double limit (void) const { return rng_limit; }$/ line c-src/etags.c 2493 @@ -3427,6 +3511,7 @@ lispy_modifier_list c-src/emacs/src/keyboard.c /^lispy_modifier_list (int modifi lispy_multimedia_keys c-src/emacs/src/keyboard.c 4962 lispy_wheel_names c-src/emacs/src/keyboard.c 5174 list c-src/emacs/src/gmalloc.c 186 +list merc-src/accumulator.m /^:- import_module list.$/ list-tags el-src/emacs/lisp/progmodes/etags.el /^(defun list-tags (file &optional _next-match)$/ list-tags-function el-src/emacs/lisp/progmodes/etags.el /^(defvar list-tags-function nil$/ list2i c-src/emacs/src/lisp.h /^list2i (EMACS_INT x, EMACS_INT y)$/ @@ -3443,6 +3528,7 @@ local_if_set c-src/emacs/src/lisp.h 2338 location cp-src/clheir.hpp 33 location cp-src/clheir.hpp /^ location() { }$/ lookup y-src/cccp.y /^lookup (name, len, hash)$/ +lookup_call merc-src/accumulator.m /^:- pred lookup_call(accu_goal_store::in, accu_goal/ lowcase c-src/etags.c /^#define lowcase(c) tolower (CHAR (c))$/ lucid_event_type_list_p c-src/emacs/src/keyboard.c /^lucid_event_type_list_p (Lisp_Object object)$/ mabort c-src/emacs/src/gmalloc.c /^mabort (enum mcheck_status status)$/ @@ -3488,6 +3574,7 @@ mallochook c-src/emacs/src/gmalloc.c /^mallochook (size_t size)$/ man manpage make-src/Makefile /^man manpage: etags.1.man$/ mao c-src/h.h 101 map c-src/emacs/src/keyboard.c 8748 +map merc-src/accumulator.m /^:- import_module map.$/ map_word prol-src/natded.prolog /^map_word([[_]|Ws],Exp):-$/ mapping html-src/algrthms.html /^Mapping the Channel Symbols$/ mapsyn prol-src/natded.prolog /^mapsyn(A\/B,AM\/BM):-$/ @@ -3501,15 +3588,19 @@ max_args c-src/emacs/src/lisp.h 1686 max_num_directions cp-src/clheir.hpp 31 max_num_generic_objects cp-src/clheir.cpp 9 maxargs c-src/emacs/src/lisp.h 2831 +maybe merc-src/accumulator.m /^:- import_module maybe.$/ maybe_gc c-src/emacs/src/lisp.h /^maybe_gc (void)$/ mcCSC cp-src/c.C 6 mcheck c-src/emacs/src/gmalloc.c /^mcheck (void (*func) (enum mcheck_status))$/ mcheck_status c-src/emacs/src/gmalloc.c 283 mcheck_used c-src/emacs/src/gmalloc.c 2012 +mdbcomp merc-src/accumulator.m /^:- import_module mdbcomp.$/ +mdbcomp.sym_name merc-src/accumulator.m /^:- import_module mdbcomp.sym_name.$/ me22b lua-src/test.lua /^ local function test.me22b (one)$/ me_22a lua-src/test.lua /^ function test.me_22a(one, two)$/ memalign c-src/emacs/src/gmalloc.c /^memalign (size_t alignment, size_t size)$/ member prol-src/natded.prolog /^member(X,[X|_]).$/ +member_lessthan_goalid merc-src/accumulator.m /^:- pred member_lessthan_goalid(accu_goal_store::in/ memclear c-src/emacs/src/lisp.h /^memclear (void *p, ptrdiff_t nbytes)$/ menu_bar_item c-src/emacs/src/keyboard.c /^menu_bar_item (Lisp_Object key, Lisp_Object item, / menu_bar_items c-src/emacs/src/keyboard.c /^menu_bar_items (Lisp_Object old)$/ @@ -3780,6 +3871,7 @@ pMu c-src/emacs/src/lisp.h 151 pMu c-src/emacs/src/lisp.h 156 p_next c-src/etags.c 258 pagesize c-src/emacs/src/gmalloc.c 1703 +pair merc-src/accumulator.m /^:- import_module pair.$/ parent c-src/emacs/src/keyboard.c 8745 parent c-src/emacs/src/lisp.h 1590 parse prol-src/natded.prolog /^parse(Ws,Cat):-$/ @@ -3797,6 +3889,12 @@ parse_return y-src/parse.y 74 parse_return_error y-src/cccp.y 70 parse_solitary_modifier c-src/emacs/src/keyboard.c /^parse_solitary_modifier (Lisp_Object symbol)$/ parse_tool_bar_item c-src/emacs/src/keyboard.c /^parse_tool_bar_item (Lisp_Object key, Lisp_Object / +parse_tree merc-src/accumulator.m /^:- import_module parse_tree.$/ +parse_tree.error_util merc-src/accumulator.m /^:- import_module parse_tree.error_util.$/ +parse_tree.prog_data merc-src/accumulator.m /^:- import_module parse_tree.prog_data.$/ +parse_tree.prog_mode merc-src/accumulator.m /^:- import_module parse_tree.prog_mode.$/ +parse_tree.prog_util merc-src/accumulator.m /^:- import_module parse_tree.prog_util.$/ +parse_tree.set_of_var merc-src/accumulator.m /^:- import_module parse_tree.set_of_var.$/ pat c-src/etags.c 262 pattern c-src/etags.c 260 pdlcount c-src/emacs/src/lisp.h 3046 @@ -3989,6 +4087,7 @@ removeexp prol-src/natded.prolog /^removeexp(E,E,'NIL'):-!.$/ reorder_modifiers c-src/emacs/src/keyboard.c /^reorder_modifiers (Lisp_Object symbol)$/ request c.c /^request request (a, b)$/ requeued_events_pending_p c-src/emacs/src/keyboard.c /^requeued_events_pending_p (void)$/ +require merc-src/accumulator.m /^:- import_module require.$/ required_argument c-src/getopt.h 90 reset-this-command-lengths c-src/emacs/src/keyboard.c /^DEFUN ("reset-this-command-lengths", Freset_this_c/ restore_getcjmp c-src/emacs/src/keyboard.c /^restore_getcjmp (sys_jmp_buf temp)$/ @@ -4061,6 +4160,7 @@ separator_names c-src/emacs/src/keyboard.c 7372 serializeToVars php-src/lce_functions.php /^ function serializeToVars($prefix)$/ serializeToVars php-src/lce_functions.php /^ function serializeToVars($prefix)$/ set cp-src/conway.hpp /^ void set(void) { alive = 1; }$/ +set merc-src/accumulator.m /^:- import_module set.$/ set-input-interrupt-mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-interrupt-mode", Fset_input_inte/ set-input-meta-mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-meta-mode", Fset_input_meta_mode/ set-input-mode c-src/emacs/src/keyboard.c /^DEFUN ("set-input-mode", Fset_input_mode, Sset_inp/ @@ -4088,11 +4188,14 @@ set_sub_char_table_contents c-src/emacs/src/lisp.h /^set_sub_char_table_contents set_symbol_function c-src/emacs/src/lisp.h /^set_symbol_function (Lisp_Object sym, Lisp_Object / set_symbol_next c-src/emacs/src/lisp.h /^set_symbol_next (Lisp_Object sym, struct Lisp_Symb/ set_symbol_plist c-src/emacs/src/lisp.h /^set_symbol_plist (Lisp_Object sym, Lisp_Object pli/ +set_upto merc-src/accumulator.m /^:- func set_upto(accu_case, int) = set(accu_goal_i/ set_waiting_for_input c-src/emacs/src/keyboard.c /^set_waiting_for_input (struct timespec *time_to_cl/ setref tex-src/texinfo.tex /^\\expandafter\\expandafter\\expandafter\\appendixsetre/ setup cp-src/c.C 5 shift cp-src/functions.cpp /^void Date::shift ( void ){\/\/Shift this date to pre/ shouldLoad objc-src/PackInsp.m /^-(BOOL)shouldLoad$/ +should_attempt_accu_transform merc-src/accumulator.m /^:- pred should_attempt_accu_transform(module_info:/ +should_attempt_accu_transform_2 merc-src/accumulator.m /^:- pred should_attempt_accu_transform_2(module_inf/ should_see_this_array_type cp-src/c.C 156 should_see_this_function_pointer cp-src/c.C 153 should_see_this_one_enclosed_in_extern_C cp-src/c.C 149 @@ -4122,6 +4225,7 @@ skip_non_spaces c-src/etags.c /^skip_non_spaces (char *cp)$/ skip_spaces c-src/etags.c /^skip_spaces (char *cp)$/ snarf-tag-function el-src/emacs/lisp/progmodes/etags.el /^(defvar snarf-tag-function nil$/ snone c-src/etags.c 2443 +solutions merc-src/accumulator.m /^:- import_module solutions.$/ some_mouse_moved c-src/emacs/src/keyboard.c /^some_mouse_moved (void)$/ space tex-src/texinfo.tex /^ {#2\\labelspace #1}\\dotfill\\doshortpageno{#3}}%/ space tex-src/texinfo.tex /^ \\dosubsubsecentry{#2.#3.#4.#5\\labelspace#1}{#6}}/ @@ -4171,10 +4275,12 @@ step cp-src/conway.hpp /^ void step(void) { alive = next_alive; }$/ step cp-src/clheir.hpp /^ virtual void step(void) { }$/ step_everybody cp-src/clheir.cpp /^void step_everybody(void)$/ stop_polling c-src/emacs/src/keyboard.c /^stop_polling (void)$/ +store_info merc-src/accumulator.m /^:- type store_info$/ store_user_signal_events c-src/emacs/src/keyboard.c /^store_user_signal_events (void)$/ str go-src/test1.go 9 strcaseeq c-src/etags.c /^#define strcaseeq(s,t) (assert ((s)!=NULL && (t)!=/ streq c-src/etags.c /^#define streq(s,t) (assert ((s)!=NULL || (t)!=NULL/ +string merc-src/accumulator.m /^:- import_module string.$/ string_intervals c-src/emacs/src/lisp.h /^string_intervals (Lisp_Object s)$/ stripLine php-src/lce_functions.php /^ function stripLine($line, $class)$/ stripname pas-src/common.pas /^function stripname; (* ($/ @@ -4314,6 +4420,7 @@ tee ruby-src/test1.ru /^ attr_accessor :tee$/ tee= ruby-src/test1.ru /^ attr_accessor :tee$/ temporarily_switch_to_single_kboard c-src/emacs/src/keyboard.c /^temporarily_switch_to_single_kboard (struct frame / tend c-src/etags.c 2432 +term merc-src/accumulator.m /^:- import_module term.$/ terminate objc-src/Subprocess.m /^- terminate:sender$/ terminateInput objc-src/Subprocess.m /^- terminateInput$/ test c-src/emacs/src/lisp.h 1871 @@ -4365,6 +4472,7 @@ tool_bar_items c-src/emacs/src/keyboard.c /^tool_bar_items (Lisp_Object reuse, i tool_bar_items_vector c-src/emacs/src/keyboard.c 7965 toolkit_menubar_in_use c-src/emacs/src/keyboard.c /^toolkit_menubar_in_use (struct frame *f)$/ top-level c-src/emacs/src/keyboard.c /^DEFUN ("top-level", Ftop_level, Stop_level, 0, 0, / +top_level merc-src/accumulator.m /^:- type top_level$/ top_level_1 c-src/emacs/src/keyboard.c /^top_level_1 (Lisp_Object ignore)$/ top_level_2 c-src/emacs/src/keyboard.c /^top_level_2 (void)$/ total_keys c-src/emacs/src/keyboard.c 97 @@ -4376,6 +4484,9 @@ tpcmd c-src/h.h 15 track-mouse c-src/emacs/src/keyboard.c /^DEFUN ("internal--track-mouse", Ftrack_mouse, Stra/ tracking_off c-src/emacs/src/keyboard.c /^tracking_off (Lisp_Object old_value)$/ traffic_light cp-src/conway.cpp /^void traffic_light(int x, int y)$/ +transform_hlds.accumulator merc-src/accumulator.m /^:- module transform_hlds.accumulator.$/ +transform_hlds.accumulator merc-src/accumulator.m /^:- end_module transform_hlds.accumulator.$/ +transform_hlds.goal_store merc-src/accumulator.m /^:- import_module transform_hlds.goal_store.$/ translate c-src/emacs/src/regex.h 361 treats cp-src/c.C 131 tt prol-src/natded.prolog /^tt:-$/ @@ -4421,12 +4532,14 @@ unblock_input c-src/emacs/src/keyboard.c /^unblock_input (void)$/ unblock_input_to c-src/emacs/src/keyboard.c /^unblock_input_to (int level)$/ unchar c-src/h.h 99 unexpand-abbrev c-src/abbrev.c /^DEFUN ("unexpand-abbrev", Funexpand_abbrev, Sunexp/ +univ merc-src/accumulator.m /^:- import_module univ.$/ unread_switch_frame c-src/emacs/src/keyboard.c 204 unsignedp y-src/cccp.y 112 unwind c-src/emacs/src/lisp.h 2962 unwind_int c-src/emacs/src/lisp.h 2972 unwind_ptr c-src/emacs/src/lisp.h 2967 unwind_void c-src/emacs/src/lisp.h 2976 +update_accumulator_pred merc-src/accumulator.m /^:- pred update_accumulator_pred(pred_id::in, proc_/ uprintmax_t c-src/emacs/src/lisp.h 149 uprintmax_t c-src/emacs/src/lisp.h 154 usage perl-src/yagrip.pl /^sub usage {$/ @@ -4458,6 +4571,7 @@ varargs tex-src/texinfo.tex /^\\defvarargs {#3}\\endgroup %$/ varargs tex-src/texinfo.tex /^\\defvarargs {#3}\\endgroup %$/ varargs tex-src/texinfo.tex /^\\defvarargs {#2}\\endgroup %$/ varargs tex-src/texinfo.tex /^\\defvarargs {#2}\\endgroup %$/ +varset merc-src/accumulator.m /^:- import_module varset.$/ vcopy c-src/emacs/src/lisp.h /^vcopy (Lisp_Object v, ptrdiff_t offset, Lisp_Objec/ vectorlike_header c-src/emacs/src/lisp.h 1343 verde cp-src/c.C 40 commit e27b531d5a61e37d5e7d453663f3ec1a08a76fb9 Author: Eli Zaretskii Date: Thu Jun 10 15:06:10 2021 +0300 Improve documentation of 'M-y' * doc/emacs/killing.texi (Yanking): Mention that TTY frames can also support yanking from the clipboard. (Earlier Kills): Finalize the documentation of the new behavior of the lone 'M-y'. (Bug#48478) diff --git a/doc/emacs/killing.texi b/doc/emacs/killing.texi index 89de9af13e..56763b2967 100644 --- a/doc/emacs/killing.texi +++ b/doc/emacs/killing.texi @@ -311,13 +311,13 @@ the end. Using any other prefix argument specifies an earlier kill; e.g., @kbd{C-u 4 C-y} reinserts the fourth most recent kill. @xref{Earlier Kills}. - On graphical displays, @kbd{C-y} first checks if another application -has placed any text in the system clipboard more recently than the -last Emacs kill. If so, it inserts the clipboard's text instead. -Thus, Emacs effectively treats ``cut'' or ``copy'' clipboard -operations performed in other applications like Emacs kills, except -that they are not recorded in the kill ring. @xref{Cut and Paste}, -for details. + On graphical displays and on capable text-mode displays, @kbd{C-y} +first checks if another application has placed any text in the system +clipboard more recently than the last Emacs kill. If so, it inserts +the clipboard's text instead. Thus, Emacs effectively treats ``cut'' +or ``copy'' clipboard operations performed in other applications like +Emacs kills, except that they are not recorded in the kill ring. +@xref{Cut and Paste}, for details. @menu * Kill Ring:: Where killed text is stored. @@ -371,12 +371,12 @@ command, it works differently, see below.) last-yank pointer which points at an entry in the kill ring. Each time you kill, the last-yank pointer moves to the newly made entry at the front of the ring. @kbd{C-y} yanks the entry which the last-yank -pointer points to. @kbd{M-y} moves the last-yank pointer to a -different entry, and the text in the buffer changes to match. Enough -@kbd{M-y} commands can move the pointer to any entry in the ring, so -you can get any entry into the buffer. Eventually the pointer reaches -the end of the ring; the next @kbd{M-y} loops back around to the first -entry again. +pointer points to. @kbd{M-y} after a @kbd{C-y} or another @kbd{M-y} +moves the last-yank pointer to the previous entry, and the text in the +buffer changes to match. Enough @kbd{M-y} commands one after another +can move the pointer to any entry in the ring, so you can get any +entry into the buffer. Eventually the pointer reaches the end of the +ring; the next @kbd{M-y} loops back around to the first entry again. @kbd{M-y} moves the last-yank pointer around the ring, but it does not change the order of the entries in the ring, which always runs from @@ -388,12 +388,13 @@ pointer by. A negative argument moves the pointer toward the front of the ring; from the front of the ring, it moves around to the last entry and continues forward from there. - Once the text you are looking for is brought into the buffer, you can -stop doing @kbd{M-y} commands and it will stay there. It's just a copy -of the kill ring entry, so editing it in the buffer does not change -what's in the ring. As long as no new killing is done, the last-yank -pointer remains at the same place in the kill ring, so repeating -@kbd{C-y} will yank another copy of the same previous kill. + Once the text you are looking for is brought into the buffer, you +can stop doing @kbd{M-y} commands and the last yanked text will stay +there. It's just a copy of the kill ring entry, so editing it in the +buffer does not change what's in the ring. As long as no new killing +is done, the last-yank pointer remains at the same place in the kill +ring, so repeating @kbd{C-y} will yank another copy of the same +previous kill. When you call @kbd{C-y} with a numeric argument, that also sets the last-yank pointer to the entry that it yanks. @@ -404,11 +405,18 @@ one of the previous kills. You can use the minibuffer history commands (@pxref{Minibuffer History}) to navigate or search through the entries in the kill ring until you find the one you want to reinsert. Or you can use completion commands (@pxref{Completion -Commands}) to complete on the list of entries in the kill ring or pop -up the @file{*Completions*} buffer with the candidate entries from -which you can choose. After selecting the kill-ring entry, you can -optionally edit it in the minibuffer. Finally, type @kbd{RET} to exit -the minibuffer and insert the selected text. +Commands}) to complete on an entry from the list of entries in the +kill ring or pop up the @file{*Completions*} buffer with the candidate +entries from which you can choose. After selecting the kill-ring +entry, you can optionally edit it in the minibuffer. Finally, type +@kbd{RET} to exit the minibuffer and insert the text of the selected +kill-ring entry. Like in case of @kbd{M-y} after another yank +command, the last-yank pointer is left pointing at the text you just +yanked, whether it is one of the previous kills or an entry from the +kill-ring that you edited before inserting it. (In the latter case, +the edited entry is added to the front of the kill-ring.) So here, +too, typing @kbd{C-y} will yank another copy of the text just +inserted. When invoked with a plain prefix argument (@kbd{C-u M-y}) after a command that is not a yank command, @kbd{M-y} leaves the cursor in