* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil @ 2017-08-28 2:22 Mohammed Sadiq 2017-08-29 15:54 ` Glenn Morris 0 siblings, 1 reply; 9+ messages in thread From: Mohammed Sadiq @ 2017-08-28 2:22 UTC (permalink / raw) To: 28258 [-- Attachment #1: Type: text/plain, Size: 154 bytes --] Let file-name-base succeed when buffer-file-name is nil. Hi. This is my first patch to GNU Emacs. Please let me know if it is sensible or not. Thanks [-- Warning: decoded text below may be mangled, UTF-8 assumed --] [-- Attachment #2: Let file-name-base succeed when buffer-file-name is nil --] [-- Type: text/x-diff, Size: 1172 bytes --] From efb4f12c9083ad3930eaf5da8929d4e6b33609eb Mon Sep 17 00:00:00 2001 From: "Mohammed Sadik P. K" <sadiq@sadiqpk.org> Date: Mon, 28 Aug 2017 07:34:25 +0530 Subject: [PATCH] Let file-name-base succeed when buffer-file-name is nil FILENAME is an optional argument for file-name-base. So it shouldn't fail when no filename is associated with current buffer. * lisp/files.el (file-name-base): Don't fail when buffer-file-name is nil. --- lisp/files.el | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/lisp/files.el b/lisp/files.el index 872fc46e87..d75d402545 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4467,8 +4467,9 @@ file-name-extension (defun file-name-base (&optional filename) "Return the base name of the FILENAME: no directory, no extension. FILENAME defaults to `buffer-file-name'." - (file-name-sans-extension - (file-name-nondirectory (or filename (buffer-file-name))))) + (let ((filename (or filename (buffer-file-name)))) + (and filename + (file-name-sans-extension (file-name-nondirectory filename))))) (defcustom make-backup-file-name-function #'make-backup-file-name--default-function -- 2.11.0 [-- Attachment #3: Type: text/plain, Size: 2992 bytes --] In GNU Emacs 26.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.11) of 2017-08-27 built on rose Repository revision: 853ed4533bbddf16c50ad12ed1db70fa252715fb Windowing system distributor 'The X.Org Foundation', version 11.0.11902000 System Description: Debian GNU/Linux 9.1 (stretch) Recent messages: For information about GNU Emacs and the GNU system, type C-h C-a. Making completion list... delete-backward-char: Text is read-only Configured features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY ACL LIBSELINUX GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 LIBSYSTEMD Important settings: value of $LC_MONETARY: en_GB.UTF-8 value of $LC_NUMERIC: en_GB.UTF-8 value of $LC_TIME: en_GB.UTF-8 value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: tooltip-mode: t global-eldoc-mode: t eldoc-mode: t electric-indent-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 Load-path shadows: None found. Features: (shadow sort mail-extr emacsbug message subr-x puny seq byte-opt gv bytecomp byte-compile cconv cl-loaddefs cl-lib dired dired-loaddefs format-spec rfc822 mml easymenu mml-sec password-cache epa derived epg epg-config gnus-util rmail rmail-loaddefs mm-decode mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr mail-utils elec-pair time-date mule-util tooltip eldoc electric uniquify ediff-hook vc-hooks lisp-float-type mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode elisp-mode lisp-mode prog-mode register page menu-bar rfn-eshadow isearch timer select scroll-bar mouse jit-lock font-lock syntax facemenu font-core term/tty-colors frame cl-generic cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite charscript charprop case-table epa-hook jka-cmpr-hook help simple abbrev obarray minibuffer cl-preloaded 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 dbusbind inotify dynamic-setting system-font-setting font-render-setting move-toolbar gtk x-toolkit x multi-tty make-network-process emacs) Memory information: ((conses 16 95499 5650) (symbols 48 20292 1) (miscs 40 43 93) (strings 32 28804 1235) (string-bytes 1 763186) (vectors 16 14660) (vector-slots 8 492593 5734) (floats 8 49 67) (intervals 56 217 0) (buffers 992 12)) ^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-08-28 2:22 bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil Mohammed Sadiq @ 2017-08-29 15:54 ` Glenn Morris 2017-08-29 16:10 ` Mohammed Sadiq 0 siblings, 1 reply; 9+ messages in thread From: Glenn Morris @ 2017-08-29 15:54 UTC (permalink / raw) To: Mohammed Sadiq; +Cc: 28258 Mohammed Sadiq wrote: > * lisp/files.el (file-name-base): Don't fail when buffer-file-name > is nil. [...] > --- a/lisp/files.el > +++ b/lisp/files.el > @@ -4467,8 +4467,9 @@ file-name-extension > (defun file-name-base (&optional filename) > "Return the base name of the FILENAME: no directory, no extension. > FILENAME defaults to `buffer-file-name'." > - (file-name-sans-extension > - (file-name-nondirectory (or filename (buffer-file-name))))) > + (let ((filename (or filename (buffer-file-name)))) > + (and filename > + (file-name-sans-extension (file-name-nondirectory filename))))) Hi, and thanks for the patch. IIUC: file-name-base currently errors when called with no applicable file name, and you want it to instead return nil? This seems rather unusual for an Emacs file-related function. I would have thought this unlikely to be applied, but maybe you could explain why you want it? ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-08-29 15:54 ` Glenn Morris @ 2017-08-29 16:10 ` Mohammed Sadiq 2017-08-29 17:02 ` Glenn Morris 0 siblings, 1 reply; 9+ messages in thread From: Mohammed Sadiq @ 2017-08-29 16:10 UTC (permalink / raw) To: Glenn Morris; +Cc: 28258 > On August 29, 2017 at 9:24 PM Glenn Morris <rgm@gnu.org> wrote: > Hi, and thanks for the patch. > IIUC: file-name-base currently errors when called with no applicable > file name, and you want it to instead return nil? This seems rather > unusual for an Emacs file-related function. I would have thought this > unlikely to be applied, but maybe you could explain why you want it? The signature of `file-name-base' is (file-name-base &optional FILENAME). That is, the FILENAME argument is optional. So I believe it shouldn't be an error to not give the optional argument. And so calling the function in a buffer with no file associated shouldn't be an error. I'm not sure if my assertion is right. Feel free to do what it is felt to be right. :) ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-08-29 16:10 ` Mohammed Sadiq @ 2017-08-29 17:02 ` Glenn Morris 2017-09-18 17:12 ` Philipp Stephani 0 siblings, 1 reply; 9+ messages in thread From: Glenn Morris @ 2017-08-29 17:02 UTC (permalink / raw) To: Mohammed Sadiq; +Cc: 28258 Mohammed Sadiq wrote: >> IIUC: file-name-base currently errors when called with no applicable >> file name, and you want it to instead return nil? This seems rather >> unusual for an Emacs file-related function. I would have thought this >> unlikely to be applied, but maybe you could explain why you want it? > > The signature of `file-name-base' is (file-name-base &optional FILENAME). > That is, the FILENAME argument is optional. So I believe it shouldn't > be an error to not give the optional argument. And so calling the function > in a buffer with no file associated shouldn't be an error. I'm not sure > if my assertion is right. Thanks for explaining. I don't think I agree, but then the fact that the argument is optional and defaults to buffer-file-name also seems atypical to me (eg I don't think any other file-name- functions behaves like that). Let's wait and see if anyone else feels strongly one way or the other. ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-08-29 17:02 ` Glenn Morris @ 2017-09-18 17:12 ` Philipp Stephani 2017-09-19 0:41 ` Glenn Morris 0 siblings, 1 reply; 9+ messages in thread From: Philipp Stephani @ 2017-09-18 17:12 UTC (permalink / raw) To: Glenn Morris, Mohammed Sadiq; +Cc: 28258 [-- Attachment #1: Type: text/plain, Size: 1746 bytes --] Glenn Morris <rgm@gnu.org> schrieb am Di., 29. Aug. 2017 um 19:03 Uhr: > Mohammed Sadiq wrote: > > >> IIUC: file-name-base currently errors when called with no applicable > >> file name, and you want it to instead return nil? This seems rather > >> unusual for an Emacs file-related function. I would have thought this > >> unlikely to be applied, but maybe you could explain why you want it? > > > > The signature of `file-name-base' is (file-name-base &optional FILENAME). > > That is, the FILENAME argument is optional. So I believe it shouldn't > > be an error to not give the optional argument. And so calling the > function > > in a buffer with no file associated shouldn't be an error. I'm not sure > > if my assertion is right. > > Thanks for explaining. I don't think I agree, but then the fact that the > argument is optional and defaults to buffer-file-name also seems > atypical to me (eg I don't think any other file-name- functions behaves > like that). Let's wait and see if anyone else feels strongly one way or > the other. > > > > Changing from raising an error to returning nil is a breaking change: callers currently can rely on the return value being never nil, and can rely on errors being raised. Changing this would break these assumptions. Even ignoring that, I think raising an error is the right thing to do: unless given a filename, the function can't fulfil its promise, and raising an error is the most appropriate reaction to this. (There are already way too many Elisp functions that silently ignore errorneous situations.) I do agree that the calling convention of `file-name-base' is odd. How about making the argument mandatory (initially only by changing the advertised calling convention and the docstring)? [-- Attachment #2: Type: text/html, Size: 2175 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-09-18 17:12 ` Philipp Stephani @ 2017-09-19 0:41 ` Glenn Morris 2017-09-19 8:31 ` Philipp Stephani 0 siblings, 1 reply; 9+ messages in thread From: Glenn Morris @ 2017-09-19 0:41 UTC (permalink / raw) To: Philipp Stephani; +Cc: 28258, Mohammed Sadiq Philipp Stephani wrote: > Changing from raising an error to returning nil is a breaking change: > callers currently can rely on the return value being never nil, and can > rely on errors being raised. Changing this would break these assumptions. > Even ignoring that, I think raising an error is the right thing to do: > unless given a filename, the function can't fulfil its promise, and raising > an error is the most appropriate reaction to this. (There are already way > too many Elisp functions that silently ignore errorneous situations.) I think you've summarized things very well. > I do agree that the calling convention of `file-name-base' is odd. How > about making the argument mandatory (initially only by changing the > advertised calling convention and the docstring)? Sounds good to me. ^ permalink raw reply [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-09-19 0:41 ` Glenn Morris @ 2017-09-19 8:31 ` Philipp Stephani 2017-09-19 8:46 ` Philipp Stephani 0 siblings, 1 reply; 9+ messages in thread From: Philipp Stephani @ 2017-09-19 8:31 UTC (permalink / raw) To: Glenn Morris; +Cc: 28258, Mohammed Sadiq [-- Attachment #1.1: Type: text/plain, Size: 321 bytes --] Glenn Morris <rgm@gnu.org> schrieb am Di., 19. Sep. 2017 um 02:41 Uhr: > > > I do agree that the calling convention of `file-name-base' is odd. How > > about making the argument mandatory (initially only by changing the > > advertised calling convention and the docstring)? > > Sounds good to me. > OK, here's a patch. [-- Attachment #1.2: Type: text/html, Size: 620 bytes --] [-- Attachment #2: 0001-lisp-files.el-file-name-base-Make-FILENAME-argument-ma.txt --] [-- Type: text/plain, Size: 1311 bytes --] From 8ab66b54afdc02aca90a4c51a426205ac024ff05 Mon Sep 17 00:00:00 2001 From: Philipp Stephani <phst@google.com> Date: Tue, 19 Sep 2017 10:29:42 +0200 Subject: [PATCH] * lisp/files.el (file-name-base): Make FILENAME argument mandatory. --- etc/NEWS | 3 +++ lisp/files.el | 4 ++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/etc/NEWS b/etc/NEWS index 371cdf686c..de93ae84fa 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -43,6 +43,9 @@ When you add a new item, use the appropriate mark if you are sure it applies, \f * Incompatible Lisp Changes in Emacs 27.1 +** The FILENAME argument to 'file-name-base' is now mandatory and no +longer defaults to 'buffer-file-name'. + \f * Lisp Changes in Emacs 27.1 diff --git a/lisp/files.el b/lisp/files.el index c55c8097c1..fe7cb1a8a9 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4479,8 +4479,8 @@ file-name-extension ""))))) (defun file-name-base (&optional filename) - "Return the base name of the FILENAME: no directory, no extension. -FILENAME defaults to `buffer-file-name'." + "Return the base name of the FILENAME: no directory, no extension." + (declare (advertised-calling-convention (filename) "27.1")) (file-name-sans-extension (file-name-nondirectory (or filename (buffer-file-name))))) -- 2.14.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-09-19 8:31 ` Philipp Stephani @ 2017-09-19 8:46 ` Philipp Stephani 2017-09-24 8:07 ` Philipp Stephani 0 siblings, 1 reply; 9+ messages in thread From: Philipp Stephani @ 2017-09-19 8:46 UTC (permalink / raw) To: Glenn Morris; +Cc: 28258, Mohammed Sadiq [-- Attachment #1.1: Type: text/plain, Size: 488 bytes --] Philipp Stephani <p.stephani2@gmail.com> schrieb am Di., 19. Sep. 2017 um 10:31 Uhr: > Glenn Morris <rgm@gnu.org> schrieb am Di., 19. Sep. 2017 um 02:41 Uhr: > >> >> > I do agree that the calling convention of `file-name-base' is odd. How >> > about making the argument mandatory (initially only by changing the >> > advertised calling convention and the docstring)? >> >> Sounds good to me. >> > > OK, here's a patch. > New version of the patch, with all callers and the manual fixed. [-- Attachment #1.2: Type: text/html, Size: 1106 bytes --] [-- Attachment #2: 0001-Make-FILENAME-argument-of-file-name-base-mandatory.txt --] [-- Type: text/plain, Size: 5297 bytes --] From 89f01da2afd8b41f9af3937a8a1903c57916d19e Mon Sep 17 00:00:00 2001 From: Philipp Stephani <phst@google.com> Date: Tue, 19 Sep 2017 10:29:42 +0200 Subject: [PATCH] Make FILENAME argument of 'file-name-base' mandatory * lisp/files.el (file-name-base): Make FILENAME argument mandatory. * lisp/autoinsert.el (auto-insert-alist): * lisp/progmodes/cperl-mode.el (cperl-electric-pod): * lisp/progmodes/idlwave.el (idlwave-parse-definition): * lisp/textmodes/reftex-ref.el (reftex-replace-prefix-escapes): Fix all callers. --- doc/lispref/files.texi | 4 +--- etc/NEWS | 3 +++ lisp/autoinsert.el | 10 +++++----- lisp/files.el | 4 ++-- lisp/progmodes/cperl-mode.el | 2 +- lisp/progmodes/idlwave.el | 2 +- lisp/textmodes/reftex-ref.el | 2 +- 7 files changed, 14 insertions(+), 13 deletions(-) diff --git a/doc/lispref/files.texi b/doc/lispref/files.texi index 6be998f0b2..e4a4bfe598 100644 --- a/doc/lispref/files.texi +++ b/doc/lispref/files.texi @@ -2106,7 +2106,7 @@ File Name Components not an extension. @end defun -@defun file-name-base &optional filename +@defun file-name-base filename This function is the composition of @code{file-name-sans-extension} and @code{file-name-nondirectory}. For example, @@ -2114,8 +2114,6 @@ File Name Components (file-name-base "/my/home/foo.c") @result{} "foo" @end example - -The @var{filename} argument defaults to @code{buffer-file-name}. @end defun @node Relative File Names diff --git a/etc/NEWS b/etc/NEWS index 371cdf686c..de93ae84fa 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -43,6 +43,9 @@ When you add a new item, use the appropriate mark if you are sure it applies, \f * Incompatible Lisp Changes in Emacs 27.1 +** The FILENAME argument to 'file-name-base' is now mandatory and no +longer defaults to 'buffer-file-name'. + \f * Lisp Changes in Emacs 27.1 diff --git a/lisp/autoinsert.el b/lisp/autoinsert.el index 2820c8a9af..a43e068a4d 100644 --- a/lisp/autoinsert.el +++ b/lisp/autoinsert.el @@ -141,14 +141,14 @@ auto-insert-alist " .\\\" You may distribute this file under the terms of the GNU Free .\\\" Documentation License. -.TH " (file-name-base) +.TH " (file-name-base (buffer-file-name)) " " (file-name-extension (buffer-file-name)) " " (format-time-string "%Y-%m-%d ") "\n.SH NAME\n" - (file-name-base) + (file-name-base (buffer-file-name)) " \\- " str "\n.SH SYNOPSIS -.B " (file-name-base) +.B " (file-name-base (buffer-file-name)) "\n" _ " @@ -211,7 +211,7 @@ auto-insert-alist \(provide '" - (file-name-base) + (file-name-base (buffer-file-name)) ") \;;; " (file-name-nondirectory (buffer-file-name)) " ends here\n") (("\\.texi\\(nfo\\)?\\'" . "Texinfo file skeleton") @@ -219,7 +219,7 @@ auto-insert-alist "\\input texinfo @c -*-texinfo-*- @c %**start of header @setfilename " - (file-name-base) ".info\n" + (file-name-base (buffer-file-name)) ".info\n" "@settitle " str " @c %**end of header @copying\n" diff --git a/lisp/files.el b/lisp/files.el index c55c8097c1..fe7cb1a8a9 100644 --- a/lisp/files.el +++ b/lisp/files.el @@ -4479,8 +4479,8 @@ file-name-extension ""))))) (defun file-name-base (&optional filename) - "Return the base name of the FILENAME: no directory, no extension. -FILENAME defaults to `buffer-file-name'." + "Return the base name of the FILENAME: no directory, no extension." + (declare (advertised-calling-convention (filename) "27.1")) (file-name-sans-extension (file-name-nondirectory (or filename (buffer-file-name))))) diff --git a/lisp/progmodes/cperl-mode.el b/lisp/progmodes/cperl-mode.el index abd77bd973..e956637572 100644 --- a/lisp/progmodes/cperl-mode.el +++ b/lisp/progmodes/cperl-mode.el @@ -2314,7 +2314,7 @@ cperl-electric-pod nil t)))) ; Only one (progn (forward-word-strictly 1) - (setq name (file-name-base) + (setq name (file-name-base (buffer-file-name)) p (point)) (insert " NAME\n\n" name " - \n\n=head1 SYNOPSIS\n\n\n\n" diff --git a/lisp/progmodes/idlwave.el b/lisp/progmodes/idlwave.el index 9231e11890..92a42b1cb9 100644 --- a/lisp/progmodes/idlwave.el +++ b/lisp/progmodes/idlwave.el @@ -5240,7 +5240,7 @@ idlwave-parse-definition class (cond ((not (boundp 'idlwave-scanning-lib)) (list 'buffer (buffer-file-name))) -; ((string= (downcase (file-name-base)) +; ((string= (downcase (file-name-base (buffer-file-name)) ; (downcase name)) ; (list 'lib)) ; (t (cons 'lib (file-name-nondirectory (buffer-file-name)))) diff --git a/lisp/textmodes/reftex-ref.el b/lisp/textmodes/reftex-ref.el index c2c5ca3de0..f9f23201b4 100644 --- a/lisp/textmodes/reftex-ref.el +++ b/lisp/textmodes/reftex-ref.el @@ -314,7 +314,7 @@ reftex-replace-prefix-escapes (save-match-data (cond ((equal letter "f") - (file-name-base)) + (file-name-base (buffer-file-name))) ((equal letter "F") (let ((masterdir (file-name-directory (reftex-TeX-master-file))) (file (file-name-sans-extension (buffer-file-name)))) -- 2.14.1 ^ permalink raw reply related [flat|nested] 9+ messages in thread
* bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil 2017-09-19 8:46 ` Philipp Stephani @ 2017-09-24 8:07 ` Philipp Stephani 0 siblings, 0 replies; 9+ messages in thread From: Philipp Stephani @ 2017-09-24 8:07 UTC (permalink / raw) To: Glenn Morris, 28258-done; +Cc: Mohammed Sadiq [-- Attachment #1: Type: text/plain, Size: 629 bytes --] Philipp Stephani <p.stephani2@gmail.com> schrieb am Di., 19. Sep. 2017 um 10:46 Uhr: > Philipp Stephani <p.stephani2@gmail.com> schrieb am Di., 19. Sep. 2017 um > 10:31 Uhr: > >> Glenn Morris <rgm@gnu.org> schrieb am Di., 19. Sep. 2017 um 02:41 Uhr: >> >>> >>> > I do agree that the calling convention of `file-name-base' is odd. How >>> > about making the argument mandatory (initially only by changing the >>> > advertised calling convention and the docstring)? >>> >>> Sounds good to me. >>> >> >> OK, here's a patch. >> > > New version of the patch, with all callers and the manual fixed. > Pushed to master as 1eb4e5c3c8. [-- Attachment #2: Type: text/html, Size: 1571 bytes --] ^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2017-09-24 8:07 UTC | newest] Thread overview: 9+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2017-08-28 2:22 bug#28258: 26.0.50; [PATCH] Let file-name-base succeed when buffer-file-name is nil Mohammed Sadiq 2017-08-29 15:54 ` Glenn Morris 2017-08-29 16:10 ` Mohammed Sadiq 2017-08-29 17:02 ` Glenn Morris 2017-09-18 17:12 ` Philipp Stephani 2017-09-19 0:41 ` Glenn Morris 2017-09-19 8:31 ` Philipp Stephani 2017-09-19 8:46 ` Philipp Stephani 2017-09-24 8:07 ` Philipp Stephani
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.