Since my contributions to "GNU Emacs" are spread over multiple repositories and bug tracking systems, I figured I would aggregate them in my own "tracker". This allows me to keep track of what I'm working on; it can also double as a [[https://jvns.ca/blog/brag-documents/][brag document]] when filtered on "PatchApplied" properties. Speaking of properties, here are the ones I'm attaching to these entries: - =Role= :: - =author= :: for issues I reported, - =watcher= :: issues reported by someone else… - I have taken a stab at, - I could take a stab at, if time permits, - I'll tip my hat to whoever solves it. - =PatchApplied= :: whether my patches were applied, - =TestAdded= :: for bug reports, whether I added a unit test. * GNU Emacs ** Core *** DONE [[bug:35781]] Improve font display on Cairo builds :PROPERTIES: :Role: author :END: Fixed by Yamamoto Mitsuharu. *** DONE [[bug:35871]] Fix SVG transparency with Cairo :PROPERTIES: :Role: author :END: Fixed by Yamamoto Mitsuharu. *** DONE [[bug:38492]] Warn pdumper users when pure space has been overflowed :PROPERTIES: :Role: author :END: Fixed by Eli. *** TODO [[bug:39799]] Most emoji sequences don’t render correctly :PROPERTIES: :Role: watcher :END: *** DONE [[bug:41584]] org-indent-mode's line-prefix text property flickers near overlays :PROPERTIES: :Role: author :END: First reported as [[https://github.com/dgutov/diff-hl/issues/142][dgutov/diff-hl#142]]. Fixed by Eli. *** TODO Translate unshifted keys to shifted if no bindings are found To make =C-x [0-9]= more accessible on AZERTY. Firefox does this, cf [[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1207][here]]: #+begin_src cpp // Retry with shifted keycode. guint shiftState = (baseState | keymapWrapper->GetModifierMask(SHIFT)); uint32_t shiftedChar = keymapWrapper->GetCharCodeFor(aGdkKeyEvent, shiftState, aGdkKeyEvent->group); if (IsBasicLatinLetterOrNumeral(shiftedChar)) { // A shifted character can be an ASCII alphabet on Hebrew keyboard // layout. And also shifted character can be an ASCII numeric on // AZERTY keyboad layout. Then, it's a good hint for deciding our // keyCode. return WidgetUtils::ComputeKeyCodeFromChar(shiftedChar); } #+end_src and [[https://hg.mozilla.org/mozilla-unified/file/FIREFOX_80_0_1_RELEASE/widget/gtk/nsGtkKeyUtils.cpp#l1896][there]]: #+begin_src cpp uint32_t KeymapWrapper::GetCharCodeFor(const GdkEventKey* aGdkKeyEvent, guint aModifierState, gint aGroup) { guint keyval; if (!gdk_keymap_translate_keyboard_state( mGdkKeymap, aGdkKeyEvent->hardware_keycode, GdkModifierType(aModifierState), aGroup, &keyval, nullptr, nullptr, nullptr)) { return 0; } GdkEventKey tmpEvent = *aGdkKeyEvent; tmpEvent.state = aModifierState; tmpEvent.keyval = keyval; tmpEvent.group = aGroup; return GetCharCodeFor(&tmpEvent); } #+end_src Maybe look at ~lookup-key~ in ~src/keymap.c~? Although ~src/gtkutil.c~ seems to be the place making the most calls to ~gdk_~ functions. ** Elisp *** DONE [[bug:30008]] Subdirectory vs major mode in .dir-locals.el :PROPERTIES: :Role: author :END: Unnoticed for a year, then merged with subsequent duplicate [[bug:33400]]. *** TODO [[bug:31586]] ~frame-title-format~ doesn't save match data :PROPERTIES: :Role: watcher :END: *** DONE [[bug:33697]] file-truename messes with match data :PROPERTIES: :Role: author :END: Merged with [[bug:31586]], a more general issue dealing with match data being "poisoned" by a user's =:eval= form in frame-title-format. *** DONE [[bug:35476]] font-lock-{append,prepend}-text-property and anonymous faces :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: Started off as an [[orgmode:87r2a4ztt2.fsf@gmail.com][org-mode bug]]; Stefan applied a proper fix, then I added in some refactoring and unit tests. *** DONE [[bug:36803]] Update mode-line of every window when compilation ends :PROPERTIES: :Role: author :END: Fixed by Stefan. *** DONE [[bug:39597]] M-x occur adds fontification to fundamental-mode :PROPERTIES: :Role: author :END: Fixed by Stefan & Juri. *** DONE [[bug:41747]] Add default fontset setup for "Symbols and Pictographs Extended-A" :PROPERTIES: :Role: author :END: Unfortunately, Symbola now comes with a [[https://dn-works.com/wp-content/uploads/2020/UFAS-Docs/License.pdf][non-free license]]. Cf. [[https://bugs.archlinux.org/task/58886][Arch Linux]], [[https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897047][Debian]], [[https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/EC6I35ILFICKY5W5XTHYJC6UH36B2UQS/][Fedora]], [[https://www.mail-archive.com/gentoo-dev@lists.gentoo.org/msg88799.html][Gentoo]], [[https://github.com/NixOS/nixpkgs/pull/79679][NixOS]] and [[https://bugs.launchpad.net/ubuntu/+source/ttf-ancient-fonts/+bug/1824065][Ubuntu]] threads; also [[https://en.wikipedia.org/wiki/Talk:Open-source_Unicode_typefaces#Symbola_font][Wikipedia]] thread. *** shr **** DONE [[bug:39504]] Ensure faces of enclosing elements apply to elements :PROPERTIES: :Role: author :PatchApplied: t :END: Unfortunately debbugs.el does not handle multiple patches per message; the first patch's diff was thus applied manually, with the second patch's title (and a whole new message by the maintainer). ** Major modes *** Custom **** DONE [[bug:39074]] Horizontal line messes with variable value display in Custom buffers :PROPERTIES: :Role: author :PatchApplied: t :END: *** Dired **** DONE [[bug:23284]] Cannot input 'Y' with dired-do-query-replace-regexp :PROPERTIES: :Role: author :END: Fixed by Dmitry. **** DONE [[bug:28969]] Confirmation prompt for wildcard not surrounded by whitespace :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: My commit message ran afoul of debbugs.el's =M-m= again. *** ERC **** TODO Support SASL authentication Got bitten by this when trying to connect to irc.freenode.net from =alyon-654-1-454-60.w109-213.abo.wanadoo.fr=: #+begin_quote ERROR from irc.freenode.net: Closing Link: alyon-654-1-454-60.w109-213.abo.wanadoo.fr (SASL access only) #+end_quote This was requested in [[bug:29108]]. Lars closed this report because while there is a third-party package to implement the feature, its author did not respond when prompted for copyright assignment. I did not have the patience to look at the package; instead I went straight to [[https://ircv3.net/specs/extensions/sasl-3.1][the description of SASL on ircv3.net]] and the [[https://tools.ietf.org/html/rfc4616#section-2][RFC for the =PLAIN= mechanism]], and cobbled this silly patch: #+begin_src diff diff --git a/lisp/erc/erc.el b/lisp/erc/erc.el index 1d5506e281..0da677ac18 100644 --- a/lisp/erc/erc.el +++ b/lisp/erc/erc.el @@ -6052,7 +6052,17 @@ erc-login erc-session-server erc-session-user-full-name)) (if erc-session-password - (erc-server-send (format "PASS %s" erc-session-password)) + (progn + (erc-server-send "CAP REQ :sasl") + (erc-server-send "AUTHENTICATE PLAIN") + (erc-server-send + (concat "AUTHENTICATE " (base64-encode-string + (string-join (list + (user-login-name) + (erc-current-nick) + erc-session-password) + "\0")))) + (erc-server-send "CAP END")) (message "Logging in without password")) (erc-server-send (format "NICK %s" (erc-current-nick))) (erc-server-send #+end_src AFAICT this is enough to get me authenticated on Freenode. It looks like it's not too hard to implement? Ideally Emacs's builtin =sasl.el= should be reused; that would let ERC support better SASL mechanisms than =PLAIN=. *** Gnus **** DONE [[bug:40520]] Prevent duplicate thread titles :PROPERTIES: :Role: author :PatchApplied: t :END: **** TODO [[bug:41530]] gnus-cloud-download-all-data does not mark articles as read :PROPERTIES: :Role: author :END: **** TODO [[bug:42334]] gnus-thread-sort-functions vs. loose threads :PROPERTIES: :Role: author :END: Closed by Lars because the way Gnus sorts things just isn't amenable to fixing this right now. Will probably need to take the plunge at some point. *** Org **** DONE [[orgmode:877efbgi4i.fsf@gmail.com]] Binding org-insert-todo-heading to M-S-RET :PROPERTIES: :Role: author :END: Inspired by [[https://github.com/jrblevin/markdown-mode/pull/317][jrblevin/markdown-mode#317]]; fixed by Nicolas. **** DONE [[orgmode:87r2a4ztt2.fsf@gmail.com]] Bug: Strike-through messes with heading face :PROPERTIES: :Role: author :PatchApplied: t :END: Eventually reverted in favor of a better fix in [[bug:35476]]. **** DONE [[orgmode:877dxpazbo.fsf_-_@gmail.com]] Make RET and C-j obey ~electric-indent-mode~ in org-mode :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: Followup to an emacs-devel thread about reconciling org-mode idiosyncrasies with Emacs core. **** DONE [[orgmode:87blm8v09s.fsf@gmail.com]] Possible fix for :includes header argument in org-babel C source blocks :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: Stumbled on this regression before starting work on a completely unrelated feature, and trying to get unit tests to pass. **** DONE [[orgmode:87mu5mhm1u.fsf@gmail.com]] Failing tests :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: More unrelated tests that needed fixing before I could start working. **** TODO [[orgmode:87mu62gvjk.fsf@gmail.com]] Setting org-todo-keywords through directory-local variables :PROPERTIES: :Role: author :END: ACKed by Bastien; bump once 9.4 is released. **** TODO [[bug:42184]] org-fontify-whole-heading-line does not work in emacs 27 :PROPERTIES: :Role: watcher :PatchApplied: t :END: All that remains is merging Org 9.3.8 into emacs-27 (cf. [[bug:43268]]). **** TODO [[orgmode:87mu3ze52c.fsf@gmail.com]] Default description for abbreviated links :PROPERTIES: :Role: author :END: Counter-proposal by Bastien. Next step: ACK and get back to the workbench. **** TODO Skip checkbox width when filling list item Currently items are filled like this: #+begin_example - [ ] lorem ipsum #+end_example Adding =\\[.\\]= to the regexp used in org-list-item-body-column allows "ipsum" to be aligned below "lorem". ** Minor modes *** electric-pair **** DONE [[bug:39680]] electric-pair-mode broken by undo :PROPERTIES: :Role: author :TestAdded: t :END: Fixed by Stefan. It took some time and effort, but I eventually managed to write a unit test. *** icomplete **** DONE [[bug:38024]] icomplete sometimes fails to show completions after backward-killing words :PROPERTIES: :Role: author :END: Fixed by João. **** TODO [[bug:40152]] icomplete vs recursive prompts :PROPERTIES: :Role: author :END: *** visual-line **** TODO [[bug:31666]] Bad interaction between visual-line-mode and wrap-prefix on long lines :PROPERTIES: :Role: watcher :END: Aka "visual-line-mode adds newlines before words that end up being split anyway"; the problem occurs without wrap-prefixes. ** Experimental features *** Native compilation **** DONE [[bug:41077]] Segfaults when compiling ELC+ELN :PROPERTIES: :Role: author :END: Took a couple of tries (and 3 days straight of compilation), but I got the branch to compile on my Samsung NC10. See also update 8 on Andrea's [[https://akrl.sdf.org/gccemacs.html][progress page]]. **** DONE [[bug:41194]] fibn benchmark exhausts memory :PROPERTIES: :Role: author :END: Fixed by Andrea (see update 9 on his [[https://akrl.sdf.org/gccemacs.html][progress page]]). * ELPA ** adaptive-wrap *** TODO [[bug:41810]] Fontify wrap-prefix :PROPERTIES: :Role: author :END: ** debbugs *** DONE [[bug:38551]] bind to RET rather than return :PROPERTIES: :Role: author :PatchApplied: t :END: *** TODO autoload debbugs-gnu-emacs-release-blocking-reports I prefer this over the Org variant, which is autoloaded. *** TODO Make ~debbugs-gnu-apply-patch~ smarter To avoid accidents like [[bug:28969]], [[bug:39504]], and [[bug:41810]]. ** diff-hl *** DONE [[https://github.com/dgutov/diff-hl/issues/142][#142]] Weird interaction between diff-hl-flydiff-mode and org-indent-mode Eventually reported back to Emacs core in [[bug:41584]] and fixed by Eli. * MELPA ** magit *** DONE Helping ~magit-ediff-dwim~ read my mind :PROPERTIES: :Role: author :PatchApplied: t :END: [[https://emacs.stackexchange.com/q/18200/10209][Reported on StackExchange]] first, then [[https://github.com/magit/magit/commit/f65b1bddd31070e6012fe91a7d845f748c40b901][applied by tarsius]]. *** DONE [[https://github.com/magit/magit/pull/2928][magit/magit#2928]] magit-split-range: fix handling of "..@{upstream}" :PROPERTIES: :Role: author :PatchApplied: t :END: *** DONE [[https://github.com/magit/magit/pull/3720][magit/magit#3720]] Make magit-blame-echo actually echo the commit summary :PROPERTIES: :Role: author :PatchApplied: t :END: *** DONE [[https://github.com/magit/magit/pull/4043][magit/magit#4043]] Fix git-commit fontification when comments contain brackets :PROPERTIES: :Role: author :PatchApplied: t :END: *** TODO Autoload magit-file-mode-map correctly The current state of affairs: - ~global-magit-file-mode~ says ~:init-value t~, but that has no effect. - We need to move ~magit-file-mode~ (and ~magit-blob-mode~ while we're at it) to a new, dedicated library, and either - let users customize ~global-magit-file-mode~ to t, which will DTRT, - autoload the form that enables the mode if the variable is set. It's already possible to do either, but it slows down startup considerably. Hopefully moving the mode to a file that does not ~(require 'magit)~ will mitigate this? [[https://lists.gnu.org/archive/html/help-gnu-emacs/2020-09/msg00130.html][For context.]] ** markdown-mode *** DONE [[https://github.com/jrblevin/markdown-mode/pull/124][jrblevin/markdown-mode#124]] Prevent spurious bold fontification :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: *** DONE [[https://github.com/jrblevin/markdown-mode/issues/172][jrblevin/markdown-mode#172]] Spurious bold/italic in inline code :PROPERTIES: :Role: author :TestAdded: t :END: *** DONE [[https://github.com/jrblevin/markdown-mode/issues/223][jrblevin/markdown-mode#223]] Bold markers mess up italics detection :PROPERTIES: :Role: author :END: *** DONE [[https://github.com/jrblevin/markdown-mode/pull/252][jrblevin/markdown-mode#252]] Fix markdown-inline-code-face's :inherit attribute :PROPERTIES: :Role: author :PatchApplied: t :END: *** DONE [[https://github.com/jrblevin/markdown-mode/pull/317][jrblevin/markdown-mode#317]] Bind markdown-insert-list-item to M-RET rather than M- :PROPERTIES: :Role: author :PatchApplied: t :TestAdded: t :END: ** page-break-lines *** DONE [[https://github.com/purcell/page-break-lines/pull/20][purcell/page-break-lines#20]] Fix disabling when major mode is derived from one of page-break-lines-modes :PROPERTIES: :Role: author :PatchApplied: t :END: ** paradox *** DONE [[https://github.com/Malabarba/paradox/pull/125][Malabarba/paradox#125]] Invert :inherit order for paradox-mode-line-face :PROPERTIES: :Role: author :PatchApplied: t :END: *** DONE [[https://github.com/Malabarba/paradox/pull/160][Malabarba/paradox#160]] Fix "Invalid face reference" warnings for custom-button-mouse :PROPERTIES: :Role: author :PatchApplied: t :END: * COMMENT File-local variables #+LINK: bug https://debbugs.gnu.org/ #+LINK: orgmode https://orgmode.org/list/%s/t/#u # Local variables: # org-property-format: "%-16s %s" # end: