* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 @ 2013-09-19 14:16 Richard Copley 2013-09-19 21:26 ` Stefan Monnier 0 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-09-19 14:16 UTC (permalink / raw To: 15418 [-- Attachment #1: Type: text/plain, Size: 3209 bytes --] For some files under RCS version control, `vc-annotate' now fails with error `(wrong-type-argument integer-or-marker-p nil)'. I think the problem is with the variable `b' whose dynamic binding was used by `gather' and set by `incg' (local functions in `vc-rcs-parse'), prior to r114131. Sorry, I haven't been able to craft an example RCS master file that reproduces the problem. The top of the stack trace looks like this. Debugger entered--Lisp error: (wrong-type-argument integer-or-marker-p nil) buffer-substring-no-properties(nil 6747) (let ((x (buffer-substring-no-properties (cadr pairs) (car pairs)))) (message "%d %d %s" (cadr pairs) (car pairs) x) (setq acc (cons x acc))) (while pairs (let ((x (buffer-substring-no-properties (cadr pairs) (car pairs)))) (message "%d %d %s" (cadr pairs) (car pairs) x) (setq acc (cons x acc))) (setq pairs (cddr pairs))) (let ((pairs (cons e (append @-holes (list b)))) acc) (while pairs (let ((x (buffer-substring-no-properties (cadr pairs) (car pairs)))) (message "%d %d %s" (cadr pairs) (car pairs) x) (setq acc (cons x acc))) (setq pairs (cddr pairs))) (apply (quote concat) acc)) In GNU Emacs 24.3.50.1 (i686-pc-mingw32) of 2013-09-19 on 57172UHB Bzr revision: 114395 michael.albinus@gmx.de-20130919110801-tl6ne4cxp0bmx0kf Windowing system distributor `Microsoft Corp.', version 6.1.7601 Configured using: `configure --prefix c:/emacs/emacs-114395 --enable-locallisppath=%emacs_dir%/../site-lisp 'CPPFLAGS=-I G:/usr/include -I C:/GnuWin32/include' 'LDFLAGS=-L G:/usr/lib -L C:/GnuWin32/lib'' Important settings: value of $LANG: ENG locale-coding-system: cp1252 default enable-multibyte-characters: t Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t mouse-wheel-mode: t tool-bar-mode: t menu-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t line-number-mode: t transient-mark-mode: t Recent input: M-x r - e - b <return> Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Load-path shadows: None found. Features: (shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment lisp-mode prog-mode register page menu-bar rfn-eshadow timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files text-properties overlay sha1 md5 base64 format env code-pages mule custom widget hashtable-print-readable backquote make-network-process w32notify w32 multi-tty emacs) [-- Attachment #2: Type: text/html, Size: 3573 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-09-19 14:16 bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 Richard Copley @ 2013-09-19 21:26 ` Stefan Monnier 2013-09-24 22:47 ` Richard Copley 0 siblings, 1 reply; 14+ messages in thread From: Stefan Monnier @ 2013-09-19 21:26 UTC (permalink / raw To: Richard Copley; +Cc: 15418 >>>>> "Richard" == Richard Copley <rcopley@gmail.com> writes: > For some files under RCS version control, `vc-annotate' now fails with > error `(wrong-type-argument integer-or-marker-p nil)'. > I think the problem is with the variable `b' whose dynamic binding > was used by `gather' and set by `incg' (local functions in > `vc-rcs-parse'), prior to r114131. Indeed, it seems like there was some subtle dynamic scoping at play. Does the patch below fix your problem? Stefan === modified file 'lisp/vc/vc-rcs.el' --- lisp/vc/vc-rcs.el 2013-09-04 21:09:42 +0000 +++ lisp/vc/vc-rcs.el 2013-09-19 21:24:53 +0000 @@ -1234,6 +1234,8 @@ (vc-do-command "*vc*" 0 "rcs" (vc-name file) (concat "-b" branch)) (vc-file-setprop file 'vc-rcs-default-branch branch)) +(defvar vc-rcs--b) + (defun vc-rcs-parse (&optional buffer) "Parse current buffer, presumed to be in RCS-style masterfile format. Optional arg BUFFER specifies another buffer to parse. Return an alist @@ -1314,7 +1316,7 @@ tok ;; Region (begin and end buffer positions) of the printed ;; representation for the current tag. - b e + vc-rcs--b e ;; A list of buffer positions where "@@" can be found within the ;; printed representation region. For each location, we push two ;; elements onto the list, 1+ and 2+ the location, respectively, @@ -1330,11 +1332,11 @@ (to-eol () (buffer-substring-no-properties (point) (progn (forward-line 1) (1- (point))))) - (to-semi () (setq b (point) + (to-semi () (setq vc-rcs--b (point) e (progn (search-forward ";") (1- (point))))) (to-one@ () (setq @-holes nil - b (progn (search-forward "@") (point)) + vc-rcs--b (progn (search-forward "@") (point)) e (progn (while (and (search-forward "@") (= ?@ (char-after)) (progn @@ -1349,9 +1351,9 @@ (funcall set-b+e) (cons tok (if proc (funcall proc) - (buffer-substring-no-properties b e)))) + (buffer-substring-no-properties vc-rcs--b e)))) (k-semi (name &optional proc) (tok+val #'to-semi name proc)) - (gather () (let ((pairs `(,e ,@@-holes ,b)) + (gather () (let ((pairs `(,e ,@@-holes ,vc-rcs--b)) acc) (while pairs (push (buffer-substring-no-properties @@ -1381,7 +1383,7 @@ (setcdr two (cadr two)) two)) (split-string - (buffer-substring-no-properties b e))))) + (buffer-substring-no-properties vc-rcs--b e))))) (hpush 'locks)) (push `(strict . ,(when (at 'strict) (search-forward ";") @@ -1403,7 +1405,7 @@ (let ((ls (mapcar 'string-to-number (split-string (buffer-substring-no-properties - b e) + vc-rcs--b e) "\\.")))) ;; Hack the year -- verified to be the ;; same algorithm used in RCS 5.7. @@ -1414,7 +1416,7 @@ ,(k-semi 'branches (lambda () (split-string - (buffer-substring-no-properties b e)))) + (buffer-substring-no-properties vc-rcs--b e)))) ,(k-semi 'next)) revs) (sw)) @@ -1440,8 +1442,8 @@ ;; only the former since it behaves identically to the ;; latter in the absence of "@@".) sub) - (cl-flet ((incg (_beg end) - (let ((e end) @-holes) + (cl-flet ((incg (beg end) + (let ((vc-rcs--b beg) (e end) @-holes) (while (and asc (< (car asc) e)) (push (pop asc) @-holes)) ;; Self-deprecate when work is done. @@ -1471,7 +1473,7 @@ (setq asc (nreverse @-holes) sub #'incg) (setq sub #'buffer-substring-no-properties)) - (goto-char b) + (goto-char vc-rcs--b) (setq acc nil) (while (< (point) e) (forward-char 1) ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-09-19 21:26 ` Stefan Monnier @ 2013-09-24 22:47 ` Richard Copley 2013-09-25 0:55 ` Stefan Monnier 0 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-09-24 22:47 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 628 bytes --] On 19 September 2013 22:26, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > >>>>> "Richard" == Richard Copley <rcopley@gmail.com> writes: > > > For some files under RCS version control, `vc-annotate' now fails with > > error `(wrong-type-argument integer-or-marker-p nil)'. > > > I think the problem is with the variable `b' whose dynamic binding > > was used by `gather' and set by `incg' (local functions in > > `vc-rcs-parse'), prior to r114131. > > Indeed, it seems like there was some subtle dynamic scoping at play. > Does the patch below fix your problem? > No, I'm afraid it does not. I get the same error. Thanks. [-- Attachment #2: Type: text/html, Size: 1190 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-09-24 22:47 ` Richard Copley @ 2013-09-25 0:55 ` Stefan Monnier 2013-09-25 7:08 ` Richard Copley 0 siblings, 1 reply; 14+ messages in thread From: Stefan Monnier @ 2013-09-25 0:55 UTC (permalink / raw To: Richard Copley; +Cc: 15418 >> > For some files under RCS version control, `vc-annotate' now fails with >> > error `(wrong-type-argument integer-or-marker-p nil)'. >> > I think the problem is with the variable `b' whose dynamic binding >> > was used by `gather' and set by `incg' (local functions in >> > `vc-rcs-parse'), prior to r114131. >> Indeed, it seems like there was some subtle dynamic scoping at play. >> Does the patch below fix your problem? > No, I'm afraid it does not. I get the same error. Can you show the new backtrace? Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-09-25 0:55 ` Stefan Monnier @ 2013-09-25 7:08 ` Richard Copley 2013-10-14 16:14 ` Richard Copley 0 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-09-25 7:08 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 1433 bytes --] The top of the stack trace is exactly the same as before, except for the new name for "b". buffer-substring-no-properties(nil 6747) (cons (buffer-substring-no-properties (cadr pairs) (car pairs)) acc) (setq acc (cons (buffer-substring-no-properties (cadr pairs) (car pairs)) acc)) (while pairs (setq acc (cons (buffer-substring-no-properties (cadr pairs) (car pairs)) acc)) (setq pairs (cddr pairs))) (let ((pairs (cons e (append @-holes (list vc-rcs--b)))) acc) (while pairs (setq acc (cons (buffer-substring-no-properties (cadr pairs) (car pairs)) acc)) (setq pairs (cddr pairs))) (apply (quote concat) acc)) (The next line of the backtrace has 159030 characters, most of which are from the master file. Sorry again that I can't provide an example, but the file doesn't belong to me.) On 25 September 2013 01:55, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > >> > For some files under RCS version control, `vc-annotate' now fails with > >> > error `(wrong-type-argument integer-or-marker-p nil)'. > >> > I think the problem is with the variable `b' whose dynamic binding > >> > was used by `gather' and set by `incg' (local functions in > >> > `vc-rcs-parse'), prior to r114131. > >> Indeed, it seems like there was some subtle dynamic scoping at play. > >> Does the patch below fix your problem? > > No, I'm afraid it does not. I get the same error. > > Can you show the new backtrace? > > > Stefan > [-- Attachment #2: Type: text/html, Size: 2036 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-09-25 7:08 ` Richard Copley @ 2013-10-14 16:14 ` Richard Copley 2013-10-14 22:33 ` Richard Copley ` (2 more replies) 0 siblings, 3 replies; 14+ messages in thread From: Richard Copley @ 2013-10-14 16:14 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1.1: Type: text/plain, Size: 228 bytes --] On 25 September 2013 08:08, Richard Copley <rcopley@gmail.com> wrote: > [...] Sorry again that I can't provide an example, but the file doesn't > belong to me. > Attached is a simple RCS master file that reproduces the issue. [-- Attachment #1.2: Type: text/html, Size: 581 bytes --] [-- Attachment #2: vcbug.txt,v --] [-- Type: application/octet-stream, Size: 468 bytes --] head 1.3; access; symbols; locks RCO:1.3; strict; comment @# @; 1.3 date 2013.10.14.16.08.16; author RCO; state Exp; branches; next 1.2; 1.2 date 2013.10.14.15.58.51; author RCO; state Exp; branches; next 1.1; 1.1 date 2013.10.14.15.57.55; author RCO; state Exp; branches; next ; desc @Just a test @ 1.3 log @Emptied @ text @@ 1.2 log @Another version @ text @a0 1 This version @@ has @@ three @@ holes. @ 1.1 log @Initial revision @ text @d1 1 a1 3 @ ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-10-14 16:14 ` Richard Copley @ 2013-10-14 22:33 ` Richard Copley 2013-10-15 21:09 ` Richard Copley 2013-10-16 3:05 ` Stefan Monnier 2013-11-05 15:37 ` Stefan Monnier 2 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-10-14 22:33 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 101 bytes --] Making `e' and `@-holes' special variables, in addition to `b', as in your patch, does seem to work. [-- Attachment #2: Type: text/html, Size: 173 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-10-14 22:33 ` Richard Copley @ 2013-10-15 21:09 ` Richard Copley 0 siblings, 0 replies; 14+ messages in thread From: Richard Copley @ 2013-10-15 21:09 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 568 bytes --] On 14 October 2013 23:33, Richard Copley <rcopley@gmail.com> wrote: > Making `e' and `@-holes' special variables, in addition to `b', as in your > patch, does seem to work. > > No, it doesn't, sorry. With those changes, `vc-annotate' no longer signals an error, but it also annotates files wrongly. Some lines are attributed to version 1 that shouldn't be. Do you see the same for the RCS master files you have available for testing? I tried to find the mistake(s) but it's very hard to spot let- and lambda-bindings intended to be used outside their lexical scope. [-- Attachment #2: Type: text/html, Size: 1002 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-10-14 16:14 ` Richard Copley 2013-10-14 22:33 ` Richard Copley @ 2013-10-16 3:05 ` Stefan Monnier 2013-11-05 10:09 ` Richard Copley 2013-11-05 15:37 ` Stefan Monnier 2 siblings, 1 reply; 14+ messages in thread From: Stefan Monnier @ 2013-10-16 3:05 UTC (permalink / raw To: Richard Copley; +Cc: 15418 >> [...] Sorry again that I can't provide an example, but the file doesn't >> belong to me. > Attached is a simple RCS master file that reproduces the issue. Thanks, I'll take a look, Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-10-16 3:05 ` Stefan Monnier @ 2013-11-05 10:09 ` Richard Copley 0 siblings, 0 replies; 14+ messages in thread From: Richard Copley @ 2013-11-05 10:09 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 276 bytes --] On 16 October 2013 03:05, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > > Thanks, I'll take a look, > In the meantime, it would be convenient if RCS blame were working on the trunk. Would you consider reverting vc-rcs.el to the last working version, r112756? Richard. [-- Attachment #2: Type: text/html, Size: 665 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-10-14 16:14 ` Richard Copley 2013-10-14 22:33 ` Richard Copley 2013-10-16 3:05 ` Stefan Monnier @ 2013-11-05 15:37 ` Stefan Monnier 2013-11-06 10:56 ` Richard Copley 2 siblings, 1 reply; 14+ messages in thread From: Stefan Monnier @ 2013-11-05 15:37 UTC (permalink / raw To: Richard Copley; +Cc: 15418 > Attached is a simple RCS master file that reproduces the issue. Thanks. I installed the patch below which fixes the problem at least on this trivial file. And sorry for taking so long. Please confirm that it fixes the problem in real life as well. Stefan === modified file 'lisp/vc/vc-rcs.el' --- lisp/vc/vc-rcs.el 2013-10-04 23:47:00 +0000 +++ lisp/vc/vc-rcs.el 2013-11-05 15:25:06 +0000 @@ -1355,18 +1354,18 @@ (funcall proc) (buffer-substring-no-properties b e)))) (k-semi (name &optional proc) (tok+val #'to-semi name proc)) - (gather () (let ((pairs `(,e ,@@-holes ,b)) + (gather (b e @-holes) + (let ((pairs `(,e ,@@-holes ,b)) acc) (while pairs (push (buffer-substring-no-properties (cadr pairs) (car pairs)) acc) (setq pairs (cddr pairs))) - (apply 'concat acc))) - (k-one@ (name &optional later) (tok+val #'to-one@ name - (if later - (lambda () t) - #'gather)))) + (apply #'concat acc))) + (gather1 () (gather b e @-holes)) + (k-one@ (name &optional later) + (tok+val #'to-one@ name (if later (lambda () t) #'gather1)))) (save-excursion (goto-char (point-min)) ;; headers @@ -1444,9 +1443,10 @@ ;; only the former since it behaves identically to the ;; latter in the absence of "@@".) sub) - (cl-flet ((incg (_beg end) - (let ((e end) @-holes) + (cl-flet ((incg (beg end) + (let ((b beg) (e end) @-holes) (while (and asc (< (car asc) e)) + (push (pop asc) @-holes) (push (pop asc) @-holes)) ;; Self-deprecate when work is done. ;; Folding many dimensions into one. @@ -1454,7 +1454,7 @@ ;; O beauteous math! --the Unvexed Bum (unless asc (setq sub #'buffer-substring-no-properties)) - (gather)))) + (gather b e @-holes)))) (while (and (sw) (not (eobp)) (setq context (to-eol) @@ -1470,7 +1470,7 @@ ;; other revisions, replace the `text' tag+value with `:insn' ;; plus value, always scanning in-place. (if (string= context (cdr (assq 'head headers))) - (setcdr (cadr rev) (gather)) + (setcdr (cadr rev) (gather b e @-holes)) (if @-holes (setq asc (nreverse @-holes) sub #'incg) ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-11-05 15:37 ` Stefan Monnier @ 2013-11-06 10:56 ` Richard Copley 2013-11-06 11:19 ` Richard Copley 0 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-11-06 10:56 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 557 bytes --] On 5 November 2013 15:37, Stefan Monnier <monnier@iro.umontreal.ca> wrote: > Attached is a simple RCS master file that reproduces the issue. Thanks. I installed the patch below which fixes the problem at least on this trivial file. And sorry for taking so long. Please confirm that it fixes the problem in real life as well. Thanks. I rebuilt Emacs from trunk r114733 to test. `vc-annotate' no longer signals an error, but neither does it work correctly. For non-trivial master files, many lines are wrongly attributed to revision 1.1. [-- Attachment #2: Type: text/html, Size: 671 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-11-06 10:56 ` Richard Copley @ 2013-11-06 11:19 ` Richard Copley 2013-11-06 13:46 ` Stefan Monnier 0 siblings, 1 reply; 14+ messages in thread From: Richard Copley @ 2013-11-06 11:19 UTC (permalink / raw To: Stefan Monnier; +Cc: 15418 [-- Attachment #1: Type: text/plain, Size: 680 bytes --] On 6 November 2013 10:56, Richard Copley <rcopley@gmail.com> wrote: > Thanks. I rebuilt Emacs from trunk r114733 to test. `vc-annotate' no > longer signals an error, but neither does it work correctly. For > non-trivial master files, many lines are wrongly attributed to revision 1.1. > Oops, sorry. I was testing the wrong version (because I didn't notice that my build had failed). I've tested again by loading the new version of vc-rcs.el. I think it works perfectly now. I ran `vc-annotate' on a large, complex master file using vc-rcs.el revisions 112756 (before lexical-bindings) and 114977 (latest revision) and got exactly the same results from both versions. Thanks. [-- Attachment #2: Type: text/html, Size: 1069 bytes --] ^ permalink raw reply [flat|nested] 14+ messages in thread
* bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 2013-11-06 11:19 ` Richard Copley @ 2013-11-06 13:46 ` Stefan Monnier 0 siblings, 0 replies; 14+ messages in thread From: Stefan Monnier @ 2013-11-06 13:46 UTC (permalink / raw To: Richard Copley; +Cc: 15418-done > I've tested again by loading the new version of vc-rcs.el. I think it works > perfectly now. I ran `vc-annotate' on a large, complex master file using > vc-rcs.el revisions 112756 (before lexical-bindings) and 114977 (latest > revision) and got exactly the same results from both versions. Yay! Thanks for your patience, Stefan ^ permalink raw reply [flat|nested] 14+ messages in thread
end of thread, other threads:[~2013-11-06 13:46 UTC | newest] Thread overview: 14+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-09-19 14:16 bug#15418: 24.3.50; RCS annotate broken in vc-rcs.el r114131 Richard Copley 2013-09-19 21:26 ` Stefan Monnier 2013-09-24 22:47 ` Richard Copley 2013-09-25 0:55 ` Stefan Monnier 2013-09-25 7:08 ` Richard Copley 2013-10-14 16:14 ` Richard Copley 2013-10-14 22:33 ` Richard Copley 2013-10-15 21:09 ` Richard Copley 2013-10-16 3:05 ` Stefan Monnier 2013-11-05 10:09 ` Richard Copley 2013-11-05 15:37 ` Stefan Monnier 2013-11-06 10:56 ` Richard Copley 2013-11-06 11:19 ` Richard Copley 2013-11-06 13:46 ` Stefan Monnier
Code repositories for project(s) associated with this external index https://git.savannah.gnu.org/cgit/emacs.git https://git.savannah.gnu.org/cgit/emacs/org-mode.git This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.