unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Live System User <nyc4bos@aol.com>
To: 32257@debbugs.gnu.org
Subject: bug#32257: 26.1; read-multiple-choice inf loops on mouse clicks
Date: Wed, 01 Aug 2018 16:55:14 -0400	[thread overview]
Message-ID: <877el9u7rh.fsf@aol.com> (raw)
In-Reply-To: <87muug4z52.fsf@gmail.com>

[-- Attachment #1: Type: text/plain, Size: 606 bytes --]

martin rudalics <rudalics@gmx.at> writes:

>>> Here I use separate echo (area) and minibuffer windows.  If you want
>>> to play around with a patch please tell me.
>>>
>>> martin
>>
>> Yes please - prefeably in a new bug report for the enhancement patch,
>> so it can be tracked separately from this bug.
>
> It's not yet ready for broader discussion.  I attach it here so you
> can just test whether making the echo interference go away during
> the minibuffer dialog.

  I know this is not ready but I thought I'd report this error
  when using this patch with popwin.el (a third-party app).

  Thanks.


[-- Attachment #2: echomini error --]
[-- Type: text/plain, Size: 18808 bytes --]

Debugger entered--Lisp error: (wrong-number-of-arguments nil 1)
  signal(wrong-number-of-arguments (nil 1))
  (if (= (length --cl-rest--) 2) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))
  (let* ((--cl-rest-- (window-tree)) (root (if (= (length --cl-rest--) 2) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--)))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (mini (car --cl-rest--))) (list (popwin:window-config-tree-1 root) mini))
  popwin:window-config-tree()
  (car (popwin:window-config-tree))
  (let ((win-outline (car (popwin:window-config-tree)))) (let* ((--cl-rest-- (let ((size (if ... width height)) (adjust popwin:adjust-other-windows)) (popwin:create-popup-window size position adjust))) (master-win (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...))) (signal 'wrong-number-of-arguments (list nil (length --cl-rest--))))) (popup-win (car-safe (prog1 --cl-rest-- (setq --cl-rest-- (cdr --cl-rest--))))) (win-map (car --cl-rest--))) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window (selected-window))) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer))
  (if context (progn (popwin:use-context context) (setq popwin:context-stack context-stack)) (let ((win-outline (car (popwin:window-config-tree)))) (let* ((--cl-rest-- (let ((size ...) (adjust popwin:adjust-other-windows)) (popwin:create-popup-window size position adjust))) (master-win (if (= (length --cl-rest--) 3) (car-safe (prog1 --cl-rest-- ...)) (signal 'wrong-number-of-arguments (list nil ...)))) (popup-win (car-safe (prog1 --cl-rest-- (setq --cl-rest-- ...)))) (win-map (car --cl-rest--))) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window (selected-window))) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer)) (let ((save-selected-window--state (internal--before-with-selected-window popwin:popup-window))) (save-current-buffer (unwind-protect (progn (select-window (car save-selected-window--state) 'norecord) (popwin:switch-to-buffer buffer) (if tail (progn (set-window-point popwin:popup-window ...) (recenter -2)))) (internal--after-with-selected-window save-selected-window--state)))) (setq popwin:popup-buffer buffer popwin:popup-last-config (list buffer :width width :height height :position position :noselect noselect :dedicated dedicated :stick stick :tail tail) popwin:popup-window-dedicated-p dedicated popwin:popup-window-stuck-p stick))
  (let* ((--cl-var-- (popwin:find-context-for-buffer buffer :valid-only t)) (context (nth 0 --cl-var--)) (context-stack (nth 1 --cl-var--))) (if context (progn (popwin:use-context context) (setq popwin:context-stack context-stack)) (let ((win-outline (car (popwin:window-config-tree)))) (let* ((--cl-rest-- (let (... ...) (popwin:create-popup-window size position adjust))) (master-win (if (= ... 3) (car-safe ...) (signal ... ...))) (popup-win (car-safe (prog1 --cl-rest-- ...))) (win-map (car --cl-rest--))) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window (selected-window))) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer)) (let ((save-selected-window--state (internal--before-with-selected-window popwin:popup-window))) (save-current-buffer (unwind-protect (progn (select-window (car save-selected-window--state) 'norecord) (popwin:switch-to-buffer buffer) (if tail (progn ... ...))) (internal--after-with-selected-window save-selected-window--state)))) (setq popwin:popup-buffer buffer popwin:popup-last-config (list buffer :width width :height height :position position :noselect noselect :dedicated dedicated :stick stick :tail tail) popwin:popup-window-dedicated-p dedicated popwin:popup-window-stuck-p stick)))
  (progn (setq buffer (get-buffer buffer)) (popwin:push-context) (run-hooks 'popwin:before-popup-hook) (let* ((--cl-var-- (popwin:find-context-for-buffer buffer :valid-only t)) (context (nth 0 --cl-var--)) (context-stack (nth 1 --cl-var--))) (if context (progn (popwin:use-context context) (setq popwin:context-stack context-stack)) (let ((win-outline (car (popwin:window-config-tree)))) (let* ((--cl-rest-- (let ... ...)) (master-win (if ... ... ...)) (popup-win (car-safe ...)) (win-map (car --cl-rest--))) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window (selected-window))) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer)) (let ((save-selected-window--state (internal--before-with-selected-window popwin:popup-window))) (save-current-buffer (unwind-protect (progn (select-window ... ...) (popwin:switch-to-buffer buffer) (if tail ...)) (internal--after-with-selected-window save-selected-window--state)))) (setq popwin:popup-buffer buffer popwin:popup-last-config (list buffer :width width :height height :position position :noselect noselect :dedicated dedicated :stick stick :tail tail) popwin:popup-window-dedicated-p dedicated popwin:popup-window-stuck-p stick))) (if noselect (setq popwin:focus-window popwin:selected-window) (setq popwin:focus-window popwin:popup-window) (select-window popwin:popup-window)) (run-hooks 'popwin:after-popup-hook) popwin:popup-window)
  (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '(:width :height :position :noselect :dedicated :stick :tail :allow-other-keys)) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:width :height :position :noselect :dedicated :stick :tail)" (car --cl-keys--)))))) (progn (setq buffer (get-buffer buffer)) (popwin:push-context) (run-hooks 'popwin:before-popup-hook) (let* ((--cl-var-- (popwin:find-context-for-buffer buffer :valid-only t)) (context (nth 0 --cl-var--)) (context-stack (nth 1 --cl-var--))) (if context (progn (popwin:use-context context) (setq popwin:context-stack context-stack)) (let ((win-outline (car ...))) (let* ((--cl-rest-- ...) (master-win ...) (popup-win ...) (win-map ...)) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window (selected-window))) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer)) (let ((save-selected-window--state (internal--before-with-selected-window popwin:popup-window))) (save-current-buffer (unwind-protect (progn ... ... ...) (internal--after-with-selected-window save-selected-window--state)))) (setq popwin:popup-buffer buffer popwin:popup-last-config (list buffer :width width :height height :position position :noselect noselect :dedicated dedicated :stick stick :tail tail) popwin:popup-window-dedicated-p dedicated popwin:popup-window-stuck-p stick))) (if noselect (setq popwin:focus-window popwin:selected-window) (setq popwin:focus-window popwin:popup-window) (select-window popwin:popup-window)) (run-hooks 'popwin:after-popup-hook) popwin:popup-window))
  (let* ((width (car (cdr (or (plist-member --cl-rest-- ':width) (list nil popwin:popup-window-width))))) (height (car (cdr (or (plist-member --cl-rest-- ':height) (list nil popwin:popup-window-height))))) (position (car (cdr (or (plist-member --cl-rest-- ':position) (list nil popwin:popup-window-position))))) (noselect (car (cdr (plist-member --cl-rest-- ':noselect)))) (dedicated (car (cdr (plist-member --cl-rest-- ':dedicated)))) (stick (car (cdr (plist-member --cl-rest-- ':stick)))) (tail (car (cdr (plist-member --cl-rest-- ':tail))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:width :height :position :noselect :dedicated :stick :tail)" (car --cl-keys--)))))) (progn (setq buffer (get-buffer buffer)) (popwin:push-context) (run-hooks 'popwin:before-popup-hook) (let* ((--cl-var-- (popwin:find-context-for-buffer buffer :valid-only t)) (context (nth 0 --cl-var--)) (context-stack (nth 1 --cl-var--))) (if context (progn (popwin:use-context context) (setq popwin:context-stack context-stack)) (let ((win-outline ...)) (let* (... ... ... ...) (setq popwin:popup-window popup-win popwin:master-window master-win popwin:window-outline win-outline popwin:window-map win-map popwin:window-config nil popwin:selected-window ...)) (popwin:update-window-reference 'popwin:context-stack :recursive t) (popwin:start-close-popup-window-timer)) (let ((save-selected-window--state ...)) (save-current-buffer (unwind-protect ... ...))) (setq popwin:popup-buffer buffer popwin:popup-last-config (list buffer :width width :height height :position position :noselect noselect :dedicated dedicated :stick stick :tail tail) popwin:popup-window-dedicated-p dedicated popwin:popup-window-stuck-p stick))) (if noselect (setq popwin:focus-window popwin:selected-window) (setq popwin:focus-window popwin:popup-window) (select-window popwin:popup-window)) (run-hooks 'popwin:after-popup-hook) popwin:popup-window)))
  popwin:popup-buffer(#<buffer *Help*> :width 30 :height 15 :position bottom :noselect nil :dedicated nil :stick nil :tail nil)
  (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '(:regexp :width :height :position :noselect :dedicated :stick :tail :allow-other-keys)) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:regexp :width :height :position :noselect :dedicated :stick :tail)" (car --cl-keys--)))))) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or (popwin:minibuffer-window-selected-p) noselect) :dedicated dedicated :stick stick :tail tail))
  (let* ((--cl-rest-- (append (cdr pattern-and-keywords) default-config-keywords)) (regexp (car (cdr (plist-member --cl-rest-- ':regexp)))) (width (car (cdr (plist-member --cl-rest-- ':width)))) (height (car (cdr (plist-member --cl-rest-- ':height)))) (position (car (cdr (plist-member --cl-rest-- ':position)))) (noselect (car (cdr (plist-member --cl-rest-- ':noselect)))) (dedicated (car (cdr (plist-member --cl-rest-- ':dedicated)))) (stick (car (cdr (plist-member --cl-rest-- ':stick)))) (tail (car (cdr (plist-member --cl-rest-- ':tail))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:regexp :width :height :position :noselect :dedicated :stick :tail)" (car --cl-keys--)))))) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or (popwin:minibuffer-window-selected-p) noselect) :dedicated dedicated :stick stick :tail tail)))
  (let* ((buffer (popwin:get-buffer buffer-or-name if-buffer-not-found)) (pattern-and-keywords (popwin:match-config buffer))) (if pattern-and-keywords nil (if if-config-not-found (throw '--cl-block-popwin:display-buffer-1-- (funcall if-config-not-found buffer)) (setq pattern-and-keywords '(t)))) (let* ((--cl-rest-- (append (cdr pattern-and-keywords) default-config-keywords)) (regexp (car (cdr (plist-member --cl-rest-- ':regexp)))) (width (car (cdr (plist-member --cl-rest-- ':width)))) (height (car (cdr (plist-member --cl-rest-- ':height)))) (position (car (cdr (plist-member --cl-rest-- ':position)))) (noselect (car (cdr (plist-member --cl-rest-- ':noselect)))) (dedicated (car (cdr (plist-member --cl-rest-- ':dedicated)))) (stick (car (cdr (plist-member --cl-rest-- ':stick)))) (tail (car (cdr (plist-member --cl-rest-- ':tail))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq ... ...) (setq --cl-keys-- ...)) ((car ...) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:regexp :width :height :position :noselect :dedicated :stick :tail)" ...))))) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or (popwin:minibuffer-window-selected-p) noselect) :dedicated dedicated :stick stick :tail tail))))
  (catch '--cl-block-popwin:display-buffer-1-- (let* ((buffer (popwin:get-buffer buffer-or-name if-buffer-not-found)) (pattern-and-keywords (popwin:match-config buffer))) (if pattern-and-keywords nil (if if-config-not-found (throw '--cl-block-popwin:display-buffer-1-- (funcall if-config-not-found buffer)) (setq pattern-and-keywords '(t)))) (let* ((--cl-rest-- (append (cdr pattern-and-keywords) default-config-keywords)) (regexp (car (cdr (plist-member --cl-rest-- ...)))) (width (car (cdr (plist-member --cl-rest-- ...)))) (height (car (cdr (plist-member --cl-rest-- ...)))) (position (car (cdr (plist-member --cl-rest-- ...)))) (noselect (car (cdr (plist-member --cl-rest-- ...)))) (dedicated (car (cdr (plist-member --cl-rest-- ...)))) (stick (car (cdr (plist-member --cl-rest-- ...)))) (tail (car (cdr (plist-member --cl-rest-- ...))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond (... ...) (... ...) (t ...)))) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or (popwin:minibuffer-window-selected-p) noselect) :dedicated dedicated :stick stick :tail tail)))))
  (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '(:default-config-keywords :if-buffer-not-found :if-config-not-found :allow-other-keys)) (setq --cl-keys-- (cdr (cdr --cl-keys--)))) ((car (cdr (memq ... --cl-rest--))) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:default-config-keywords :if-buffer-not-found :if-config-not-found)" (car --cl-keys--)))))) (catch '--cl-block-popwin:display-buffer-1-- (let* ((buffer (popwin:get-buffer buffer-or-name if-buffer-not-found)) (pattern-and-keywords (popwin:match-config buffer))) (if pattern-and-keywords nil (if if-config-not-found (throw '--cl-block-popwin:display-buffer-1-- (funcall if-config-not-found buffer)) (setq pattern-and-keywords '(t)))) (let* ((--cl-rest-- (append (cdr pattern-and-keywords) default-config-keywords)) (regexp (car (cdr ...))) (width (car (cdr ...))) (height (car (cdr ...))) (position (car (cdr ...))) (noselect (car (cdr ...))) (dedicated (car (cdr ...))) (stick (car (cdr ...))) (tail (car (cdr ...)))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ... ... ...))) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or (popwin:minibuffer-window-selected-p) noselect) :dedicated dedicated :stick stick :tail tail))))))
  (let* ((default-config-keywords (car (cdr (plist-member --cl-rest-- ':default-config-keywords)))) (if-buffer-not-found (car (cdr (or (plist-member --cl-rest-- ':if-buffer-not-found) (list nil :create))))) (if-config-not-found (car (cdr (plist-member --cl-rest-- ':if-config-not-found))))) (progn (let ((--cl-keys-- --cl-rest--)) (while --cl-keys-- (cond ((memq (car --cl-keys--) '...) (setq --cl-keys-- (cdr ...))) ((car (cdr ...)) (setq --cl-keys-- nil)) (t (error "Keyword argument %s not one of (:default-config-keywords :if-buffer-not-found :if-config-not-found)" (car --cl-keys--)))))) (catch '--cl-block-popwin:display-buffer-1-- (let* ((buffer (popwin:get-buffer buffer-or-name if-buffer-not-found)) (pattern-and-keywords (popwin:match-config buffer))) (if pattern-and-keywords nil (if if-config-not-found (throw '--cl-block-popwin:display-buffer-1-- (funcall if-config-not-found buffer)) (setq pattern-and-keywords '...))) (let* ((--cl-rest-- (append ... default-config-keywords)) (regexp (car ...)) (width (car ...)) (height (car ...)) (position (car ...)) (noselect (car ...)) (dedicated (car ...)) (stick (car ...)) (tail (car ...))) (progn (let (...) (while --cl-keys-- ...)) (popwin:popup-buffer buffer :width (or width popwin:popup-window-width) :height (or height popwin:popup-window-height) :position (or position popwin:popup-window-position) :noselect (or ... noselect) :dedicated dedicated :stick stick :tail tail)))))))
  popwin:display-buffer-1(#<buffer *Help*> :if-config-not-found (lambda (buffer) (popwin:original-display-buffer buffer not-this-window)))
  (if (popwin:reuse-window-p buffer-or-name not-this-window) (popwin:original-display-buffer buffer-or-name not-this-window) (popwin:display-buffer-1 buffer-or-name :if-config-not-found (if (with-no-warnings (called-interactively-p)) nil #'(lambda (buffer) (popwin:original-display-buffer buffer not-this-window)))))
  popwin:display-buffer(#<buffer *Help*> nil)
  (let ((not-this-window (plist-get 'inhibit-same-window alist))) (popwin:display-buffer buffer not-this-window))
  popwin:display-buffer-action(#<buffer *Help*> (reusable-frames quote visible (inhibit-same-window . t)))
  display-buffer(#<buffer *Help*> nil)
  temp-buffer-window-show(#<buffer *Help*> nil)
  describe-face(window-divider)
  #f(compiled-function (s _b _f) #<bytecode 0x3f2b9d>)(window-divider #<buffer *scratch*> #<frame  liveuser@localhost *scratch*  0x3438e30>)
  #f(compiled-function (arg0) #<bytecode 0x3ed405>)(("face" facep #f(compiled-function (s _b _f) #<bytecode 0x3f2b9d>)))
  mapcar(#f(compiled-function (arg0) #<bytecode 0x3ed405>) ((nil cl-find-class #f(compiled-function (s b f) #<bytecode 0x3b6119>)) (nil fboundp #f(compiled-function (s _b _f) #<bytecode 0x3f2b71>)) (nil #f(compiled-function (symbol) #<bytecode 0x3f2b89>) describe-variable) ("face" facep #f(compiled-function (s _b _f) #<bytecode 0x3f2b9d>))))
  describe-symbol(window-divider)
  funcall-interactively(describe-symbol window-divider)
  call-interactively(describe-symbol nil nil)
  command-execute(describe-symbol)

[-- Attachment #3: Type: text/plain, Size: 239 bytes --]


>
> To put it into use run emacs with
>
> (setq default-frame-alist '((minibuffer . loose) (echo-area . t)))
>
> Looks better with window dividers enabled.
>
> Eventually I'll make a remote branch.  But this may take its time.
>
> martin

  parent reply	other threads:[~2018-08-01 20:55 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 12:05 bug#32257: 26.1; read-multiple-choice inf loops on mouse clicks Noam Postavsky
2018-07-26  1:25 ` Noam Postavsky
2018-07-27  9:08   ` Eli Zaretskii
2018-07-27 11:35     ` Andy Moreton
2018-07-27 12:30       ` Eli Zaretskii
2018-07-27 12:45         ` Noam Postavsky
2018-07-27 13:50           ` Eli Zaretskii
2018-07-31  1:52             ` Noam Postavsky
2018-07-31 11:59               ` Andy Moreton
2018-07-31 12:27                 ` martin rudalics
2018-07-31 12:38                   ` Andy Moreton
2018-08-01  8:44                     ` martin rudalics
2018-08-01 12:30                       ` Noam Postavsky
2018-08-01 12:57                       ` Robert Pluim
2018-08-02  7:09                         ` martin rudalics
2018-08-01 20:55                       ` Live System User [this message]
2018-08-02  7:09                         ` martin rudalics
2018-07-31 16:06                 ` Eli Zaretskii
2018-07-31 19:26                   ` Andy Moreton
2018-08-01  5:27                     ` Eli Zaretskii
2018-07-31 16:04               ` Eli Zaretskii
2018-07-31 19:29                 ` Andy Moreton
2018-08-01  5:29                   ` Eli Zaretskii
2018-08-01 12:05                     ` Andy Moreton
2019-05-22  0:52                       ` Noam Postavsky
2019-05-22 10:08                         ` Eli Zaretskii
2019-05-26 12:57                           ` Noam Postavsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=877el9u7rh.fsf@aol.com \
    --to=nyc4bos@aol.com \
    --cc=32257@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).