* bug#29959: cc-mode: wrong indentation in absence of semicolon
@ 2018-01-03 6:02 Konstantin Kharlamov
2018-01-13 11:11 ` Konstantin Kharlamov
0 siblings, 1 reply; 7+ messages in thread
From: Konstantin Kharlamov @ 2018-01-03 6:02 UTC (permalink / raw)
To: 29959
# Steps to reproduce:
1. Open emacs -Q test.c
2. Write the following:
int main() {
int a,
}
3. put the caret after the comma symbol, and press enter, e.g. to
continue writing variables on the new line.
# Expected:
the new line alignment stands out with regard to the prev. line.
# Actual:
the new line aligned to the beginning of the prev. line.
# Workarounds:
Typing the following text:
int main() {
int a,;
}
…then pressing enter right after the comma works as expected.
------------
In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
of 2017-12-15 built on constantine-N61Ja
Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
System Description: Arch Linux
Recent messages:
For information about GNU Emacs and the GNU system, type C-h C-a.
Configured using:
'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
--localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
--with-sound=alsa --with-xft --with-modules --with-x-toolkit=gtk3
--without-gconf --without-gsettings --without-gpm --without-m17n-flt
--without-imagemagick 'CFLAGS=-flto=2 -march=native -O3 -pipe
-fno-stack-protector -fweb -fno-semantic-interposition
-fmerge-all-constants' 'LDFLAGS=-flto=2 -O3 -march=native -fweb
-fno-semantic-interposition -fmerge-all-constants -floop-nest-optimize
-Wl,--sort-common,-z,relro -fuse-ld=gold''
Configured features:
XPM JPEG TIFF GIF PNG RSVG SOUND DBUS NOTIFY ACL GNUTLS LIBXML2 FREETYPE
LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES LIBSYSTEMD JSON
LCMS2
Important settings:
value of $LC_CTYPE: ru_RU.UTF-8
value of $LC_TIME: ru_RU.UTF-8
value of $LANG: en_US.UTF-8
value of $XMODIFIERS: @im=none
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 rmc 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 cyril-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 lcms2
dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty make-network-process emacs)
Memory information:
((conses 16 95121 11339)
(symbols 48 20190 1)
(miscs 40 48 119)
(strings 32 28421 1060)
(string-bytes 1 750170)
(vectors 16 14089)
(vector-slots 8 494084 10026)
(floats 8 49 212)
(intervals 56 239 0)
(buffers 992 11))
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
2018-01-03 6:02 bug#29959: cc-mode: wrong indentation in absence of semicolon Konstantin Kharlamov
@ 2018-01-13 11:11 ` Konstantin Kharlamov
2018-01-13 20:37 ` Alan Mackenzie
0 siblings, 1 reply; 7+ messages in thread
From: Konstantin Kharlamov @ 2018-01-13 11:11 UTC (permalink / raw)
To: 29959
Just tested with current git, the problem is still present.
I am almost sure this is a regression, I don't remember having that
problem before. The real-world consequences are just too annoying for it
to go unnoticed — basically, every time I'm typing variables indentation
just doesn't work. And I also seem to remember a few irrelevant
situations where I was typing conditions with the like results.
On 03.01.2018 09:02, Konstantin Kharlamov wrote:
> # Steps to reproduce:
> 1. Open emacs -Q test.c
> 2. Write the following:
>
> int main() {
> int a,
> }
>
> 3. put the caret after the comma symbol, and press enter, e.g. to
> continue writing variables on the new line.
>
> # Expected:
> the new line alignment stands out with regard to the prev. line.
>
> # Actual:
> the new line aligned to the beginning of the prev. line.
>
> # Workarounds:
> Typing the following text:
>
> int main() {
> int a,;
> }
>
> …then pressing enter right after the comma works as expected.
>
> ------------
>
> In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
> of 2017-12-15 built on constantine-N61Ja
> Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
> Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
> System Description: Arch Linux
>
> Recent messages:
> For information about GNU Emacs and the GNU system, type C-h C-a.
>
> Configured using:
> 'configure --prefix=/usr --sysconfdir=/etc --libexecdir=/usr/lib
> --localstatedir=/var --mandir=/usr/share/man --with-gameuser=:games
> --with-sound=alsa --with-xft --with-modules --with-x-toolkit=gtk3
> --without-gconf --without-gsettings --without-gpm --without-m17n-flt
> --without-imagemagick 'CFLAGS=-flto=2 -march=native -O3 -pipe
> -fno-stack-protector -fweb -fno-semantic-interposition
> -fmerge-all-constants' 'LDFLAGS=-flto=2 -O3 -march=native -fweb
> -fno-semantic-interposition -fmerge-all-constants -floop-nest-optimize
> -Wl,--sort-common,-z,relro -fuse-ld=gold''
>
> Configured features:
> XPM JPEG TIFF GIF PNG RSVG SOUND DBUS NOTIFY ACL GNUTLS LIBXML2 FREETYPE
> LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES LIBSYSTEMD JSON
> LCMS2
>
> Important settings:
> value of $LC_CTYPE: ru_RU.UTF-8
> value of $LC_TIME: ru_RU.UTF-8
> value of $LANG: en_US.UTF-8
> value of $XMODIFIERS: @im=none
> 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 rmc 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 cyril-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 lcms2
> dynamic-setting font-render-setting move-toolbar gtk x-toolkit x
> multi-tty make-network-process emacs)
>
> Memory information:
> ((conses 16 95121 11339)
> (symbols 48 20190 1)
> (miscs 40 48 119)
> (strings 32 28421 1060)
> (string-bytes 1 750170)
> (vectors 16 14089)
> (vector-slots 8 494084 10026)
> (floats 8 49 212)
> (intervals 56 239 0)
> (buffers 992 11))
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
2018-01-13 11:11 ` Konstantin Kharlamov
@ 2018-01-13 20:37 ` Alan Mackenzie
2018-01-18 18:41 ` Alan Mackenzie
[not found] ` <20180118184137.GB21934@ACM>
0 siblings, 2 replies; 7+ messages in thread
From: Alan Mackenzie @ 2018-01-13 20:37 UTC (permalink / raw)
To: Konstantin Kharlamov; +Cc: 29959
Hello, Konstantin.
On Sat, Jan 13, 2018 at 14:11:31 +0300, Konstantin Kharlamov wrote:
> Just tested with current git, the problem is still present.
> I am almost sure this is a regression, I don't remember having that
> problem before. The real-world consequences are just too annoying for it
> to go unnoticed — basically, every time I'm typing variables indentation
> just doesn't work. And I also seem to remember a few irrelevant
> situations where I was typing conditions with the like results.
The problem originates in a new feature, C99 compound literals, which was
committed on 2017-11-10. This detects brace blocks (meaning something
like the initialisation of a struct) in the middle of executable code,
but it is clear the test for such a brace block isn't rigorous enough,
since even function blocks are being mistaken for them.
> On 03.01.2018 09:02, Konstantin Kharlamov wrote:
> > # Steps to reproduce:
> > 1. Open emacs -Q test.c
> > 2. Write the following:
> > int main() {
> > int a,
> > }
> > 3. put the caret after the comma symbol, and press enter, e.g. to
> > continue writing variables on the new line.
> > # Expected:
> > the new line alignment stands out with regard to the prev. line.
> > # Actual:
> > the new line aligned to the beginning of the prev. line.
> > # Workarounds:
> > Typing the following text:
> > int main() {
> > int a,;
> > }
> > …then pressing enter right after the comma works as expected.
At the moment, the bug you're seeing is triggered by CC Mode checking for
commas and semicolons in blocks; if the last such delimiter is a comma,
the block is taken as a brace block. So a workaround, for the moment, is
to ensure that you have a semicolon in each block as the last delimiter
there.
I will be working on fixing this bug. Thanks for taking the trouble to
report it.
> > ------------
> > In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
> > of 2017-12-15 built on constantine-N61Ja
> > Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
> > Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
> > System Description: Arch Linux
[ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
2018-01-13 20:37 ` Alan Mackenzie
@ 2018-01-18 18:41 ` Alan Mackenzie
[not found] ` <20180118184137.GB21934@ACM>
1 sibling, 0 replies; 7+ messages in thread
From: Alan Mackenzie @ 2018-01-18 18:41 UTC (permalink / raw)
To: Konstantin Kharlamov; +Cc: 29959
Hello again, Konstantin.
On Sat, Jan 13, 2018 at 20:37:52 +0000, Alan Mackenzie wrote:
> On Sat, Jan 13, 2018 at 14:11:31 +0300, Konstantin Kharlamov wrote:
> > Just tested with current git, the problem is still present.
> > I am almost sure this is a regression, I don't remember having that
> > problem before. The real-world consequences are just too annoying for it
> > to go unnoticed — basically, every time I'm typing variables indentation
> > just doesn't work. And I also seem to remember a few irrelevant
> > situations where I was typing conditions with the like results.
> The problem originates in a new feature, C99 compound literals, which was
> committed on 2017-11-10. This detects brace blocks (meaning something
> like the initialisation of a struct) in the middle of executable code,
> but it is clear the test for such a brace block isn't rigorous enough,
> since even function blocks are being mistaken for them.
The new feature, C99 compound literals, has been removed from the
emacs-26 branch, so as to avoid delaying the relase process for that
branch. The commit has hash 36edb6cb97ce3d53543c87643077d270bb5bdfd1,
and it should apply without problems to the master branch.
It is to be hoped that a more elaborate and more correct solution will
be found soon for the master branch.
> > On 03.01.2018 09:02, Konstantin Kharlamov wrote:
> > > # Steps to reproduce:
> > > 1. Open emacs -Q test.c
> > > 2. Write the following:
> > > int main() {
> > > int a,
> > > }
> > > 3. put the caret after the comma symbol, and press enter, e.g. to
> > > continue writing variables on the new line.
> > > # Expected:
> > > the new line alignment stands out with regard to the prev. line.
> > > # Actual:
> > > the new line aligned to the beginning of the prev. line.
> > > # Workarounds:
> > > Typing the following text:
> > > int main() {
> > > int a,;
> > > }
> > > …then pressing enter right after the comma works as expected.
> > > ------------
> > > In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
> > > of 2017-12-15 built on constantine-N61Ja
> > > Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
> > > Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
> > > System Description: Arch Linux
> [ .... ]
--
Alan Mackenzie (Nuremberg, Germany).
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
[not found] ` <20180118184137.GB21934@ACM>
@ 2018-01-18 19:08 ` Konstantin Kharlamov
2018-01-18 19:19 ` Konstantin Kharlamov
2018-02-08 1:53 ` Noam Postavsky
1 sibling, 1 reply; 7+ messages in thread
From: Konstantin Kharlamov @ 2018-01-18 19:08 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: 29959
Cool, thanks, I applied it locally, works for me!
On 18.01.2018 21:41, Alan Mackenzie wrote:
> Hello again, Konstantin.
>
> On Sat, Jan 13, 2018 at 20:37:52 +0000, Alan Mackenzie wrote:
>> On Sat, Jan 13, 2018 at 14:11:31 +0300, Konstantin Kharlamov wrote:
>>> Just tested with current git, the problem is still present.
>
>>> I am almost sure this is a regression, I don't remember having that
>>> problem before. The real-world consequences are just too annoying for it
>>> to go unnoticed — basically, every time I'm typing variables indentation
>>> just doesn't work. And I also seem to remember a few irrelevant
>>> situations where I was typing conditions with the like results.
>
>> The problem originates in a new feature, C99 compound literals, which was
>> committed on 2017-11-10. This detects brace blocks (meaning something
>> like the initialisation of a struct) in the middle of executable code,
>> but it is clear the test for such a brace block isn't rigorous enough,
>> since even function blocks are being mistaken for them.
>
> The new feature, C99 compound literals, has been removed from the
> emacs-26 branch, so as to avoid delaying the relase process for that
> branch. The commit has hash 36edb6cb97ce3d53543c87643077d270bb5bdfd1,
> and it should apply without problems to the master branch.
>
> It is to be hoped that a more elaborate and more correct solution will
> be found soon for the master branch.
>
>>> On 03.01.2018 09:02, Konstantin Kharlamov wrote:
>>>> # Steps to reproduce:
>>>> 1. Open emacs -Q test.c
>>>> 2. Write the following:
>
>>>> int main() {
>>>> int a,
>>>> }
>
>>>> 3. put the caret after the comma symbol, and press enter, e.g. to
>>>> continue writing variables on the new line.
>
>>>> # Expected:
>>>> the new line alignment stands out with regard to the prev. line.
>
>>>> # Actual:
>>>> the new line aligned to the beginning of the prev. line.
>
>>>> # Workarounds:
>>>> Typing the following text:
>
>>>> int main() {
>>>> int a,;
>>>> }
>
>>>> …then pressing enter right after the comma works as expected.
>
>>>> ------------
>
>>>> In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.22.26)
>>>> of 2017-12-15 built on constantine-N61Ja
>>>> Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
>>>> Windowing system distributor 'The X.Org Foundation', version 11.0.11906000
>>>> System Description: Arch Linux
>
>> [ .... ]
>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
2018-01-18 19:08 ` Konstantin Kharlamov
@ 2018-01-18 19:19 ` Konstantin Kharlamov
0 siblings, 0 replies; 7+ messages in thread
From: Konstantin Kharlamov @ 2018-01-18 19:19 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: 29959
Sorry, I mean, not cool that it doesn't work, but cool there's a workaround.
On side note — though I am not experienced in elisp — I think it'd be
nice to add a comment in the removed code that it's looking for C99
compound literals. Otherwise I personally struggle to understand what's
being looked up there. In fact, whole file doesn't mention sentence "C99
compound literals" anywhere.
On 18.01.2018 22:08, Konstantin Kharlamov wrote:
> Cool, thanks, I applied it locally, works for me!
>
> On 18.01.2018 21:41, Alan Mackenzie wrote:
>> Hello again, Konstantin.
>>
>> On Sat, Jan 13, 2018 at 20:37:52 +0000, Alan Mackenzie wrote:
>>> On Sat, Jan 13, 2018 at 14:11:31 +0300, Konstantin Kharlamov wrote:
>>>> Just tested with current git, the problem is still present.
>>
>>>> I am almost sure this is a regression, I don't remember having that
>>>> problem before. The real-world consequences are just too annoying
>>>> for it
>>>> to go unnoticed — basically, every time I'm typing variables
>>>> indentation
>>>> just doesn't work. And I also seem to remember a few irrelevant
>>>> situations where I was typing conditions with the like results.
>>
>>> The problem originates in a new feature, C99 compound literals, which
>>> was
>>> committed on 2017-11-10. This detects brace blocks (meaning something
>>> like the initialisation of a struct) in the middle of executable code,
>>> but it is clear the test for such a brace block isn't rigorous enough,
>>> since even function blocks are being mistaken for them.
>>
>> The new feature, C99 compound literals, has been removed from the
>> emacs-26 branch, so as to avoid delaying the relase process for that
>> branch. The commit has hash 36edb6cb97ce3d53543c87643077d270bb5bdfd1,
>> and it should apply without problems to the master branch.
>>
>> It is to be hoped that a more elaborate and more correct solution will
>> be found soon for the master branch.
>>
>>>> On 03.01.2018 09:02, Konstantin Kharlamov wrote:
>>>>> # Steps to reproduce:
>>>>> 1. Open emacs -Q test.c
>>>>> 2. Write the following:
>>
>>>>> int main() {
>>>>> int a,
>>>>> }
>>
>>>>> 3. put the caret after the comma symbol, and press enter, e.g. to
>>>>> continue writing variables on the new line.
>>
>>>>> # Expected:
>>>>> the new line alignment stands out with regard to the prev. line.
>>
>>>>> # Actual:
>>>>> the new line aligned to the beginning of the prev. line.
>>
>>>>> # Workarounds:
>>>>> Typing the following text:
>>
>>>>> int main() {
>>>>> int a,;
>>>>> }
>>
>>>>> …then pressing enter right after the comma works as expected.
>>
>>>>> ------------
>>
>>>>> In GNU Emacs 27.0.50 (build 1, x86_64-pc-linux-gnu, GTK+ Version
>>>>> 3.22.26)
>>>>> of 2017-12-15 built on constantine-N61Ja
>>>>> Repository revision: 6c301afa70f6eac32ad1ce92412ea3cf6fcdeeca
>>>>> Windowing system distributor 'The X.Org Foundation', version
>>>>> 11.0.11906000
>>>>> System Description: Arch Linux
>>
>>> [ .... ]
>>
^ permalink raw reply [flat|nested] 7+ messages in thread
* bug#29959: cc-mode: wrong indentation in absence of semicolon
[not found] ` <20180118184137.GB21934@ACM>
2018-01-18 19:08 ` Konstantin Kharlamov
@ 2018-02-08 1:53 ` Noam Postavsky
1 sibling, 0 replies; 7+ messages in thread
From: Noam Postavsky @ 2018-02-08 1:53 UTC (permalink / raw)
To: Alan Mackenzie; +Cc: 29959, Konstantin Kharlamov
tags 29959 fixed
close 29959
quit
Alan Mackenzie <acm@muc.de> writes:
> The new feature, C99 compound literals, has been removed from the
> emacs-26 branch, so as to avoid delaying the relase process for that
> branch. The commit has hash 36edb6cb97ce3d53543c87643077d270bb5bdfd1,
> and it should apply without problems to the master branch.
>
> It is to be hoped that a more elaborate and more correct solution will
> be found soon for the master branch.
Seems to be fixed on the master branch too by now.
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2018-02-08 1:53 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-03 6:02 bug#29959: cc-mode: wrong indentation in absence of semicolon Konstantin Kharlamov
2018-01-13 11:11 ` Konstantin Kharlamov
2018-01-13 20:37 ` Alan Mackenzie
2018-01-18 18:41 ` Alan Mackenzie
[not found] ` <20180118184137.GB21934@ACM>
2018-01-18 19:08 ` Konstantin Kharlamov
2018-01-18 19:19 ` Konstantin Kharlamov
2018-02-08 1:53 ` Noam Postavsky
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).