<feed xmlns='http://www.w3.org/2005/Atom'>
<title>bubger, branch master</title>
<subtitle>IMAP archive generator
</subtitle>
<id>https://git.causal.agency/bubger/atom?h=master</id>
<link rel='self' href='https://git.causal.agency/bubger/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/'/>
<updated>2022-09-19T02:06:16+00:00</updated>
<entry>
<title>Make copyrights and AUTHORS consistent</title>
<updated>2022-09-19T02:06:16+00:00</updated>
<author>
<name>June McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2022-09-19T02:06:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=80020ae6e39f52dd4147c1d02b50347bed9dc9c3'/>
<id>urn:sha1:80020ae6e39f52dd4147c1d02b50347bed9dc9c3</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add thr:in-reply-to elements to Atom entries</title>
<updated>2021-06-13T17:56:59+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-13T17:56:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=8aa4c82b81600cccd3d89baf3d489f0b7ef046ea'/>
<id>urn:sha1:8aa4c82b81600cccd3d89baf3d489f0b7ef046ea</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Add search definition examples</title>
<updated>2021-06-13T15:57:15+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-13T15:57:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=0e5a58fe4607724ca40429918c17d552f072ab2a'/>
<id>urn:sha1:0e5a58fe4607724ca40429918c17d552f072ab2a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Avoid performing a SEARCH for ALL</title>
<updated>2021-06-13T15:22:57+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-13T15:22:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=a18b3d324f2861666872bd3cdf2e5db1583044cf'/>
<id>urn:sha1:a18b3d324f2861666872bd3cdf2e5db1583044cf</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Sort and compress export fetch UIDs</title>
<updated>2021-06-13T15:17:21+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-13T15:17:21+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=2d048a0c5a7be72038d70e7473b84f19cacc85fa'/>
<id>urn:sha1:2d048a0c5a7be72038d70e7473b84f19cacc85fa</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Compress thread root UID sets with ranges</title>
<updated>2021-06-13T02:05:15+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-13T02:05:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=e03c4e10ea7ac0f436aff0ba6b8a7a135fb2a9d1'/>
<id>urn:sha1:e03c4e10ea7ac0f436aff0ba6b8a7a135fb2a9d1</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Use SEARCH for a subset of thread roots</title>
<updated>2021-06-12T23:20:47+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-12T23:20:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=9b09a5ff483aef05dc5b4d9ab0fd0243d21cb1d3'/>
<id>urn:sha1:9b09a5ff483aef05dc5b4d9ab0fd0243d21cb1d3</id>
<content type='text'>
This does way less duplicate work by fetching all threads and all
thread root envelopes once, then doing searches for subsets of
thread roots.
</content>
</entry>
<entry>
<title>Add margin between header navs</title>
<updated>2021-06-11T23:11:14+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-11T23:11:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=74c902b053163eeaa7d2a2cc46b4bd75f30dac6a'/>
<id>urn:sha1:74c902b053163eeaa7d2a2cc46b4bd75f30dac6a</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Generate navigation for search pages</title>
<updated>2021-06-11T23:05:54+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-11T23:05:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=64003835f0446d05b5a53a527e29d5634a9b80be'/>
<id>urn:sha1:64003835f0446d05b5a53a527e29d5634a9b80be</id>
<content type='text'>
</content>
</entry>
<entry>
<title>Generate arbitrary search pages and feeds</title>
<updated>2021-06-11T22:29:36+00:00</updated>
<author>
<name>C. McEnroe</name>
<email>june@causal.agency</email>
</author>
<published>2021-06-11T21:32:18+00:00</published>
<link rel='alternate' type='text/html' href='https://git.causal.agency/bubger/commit/?id=f1f9c20bd8d9d175f8db73b062a60a9f79e95a7e'/>
<id>urn:sha1:f1f9c20bd8d9d175f8db73b062a60a9f79e95a7e</id>
<content type='text'>
First export ALL threads, then generate search pages. Skip search
threads that weren't exported by the ALL search, i.e. non-root
threads.
</content>
</entry>
</feed>
because every HTTP_ variable should be unset between each request,
but this doesn't track them.


</td></tr>
<tr class='logheader'><td><span title='2021-09-23 23:28:47 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/home/.config/X/resources?id=acd65d2284cdd34190694ca88a7e204b07dc5a54&amp;follow=1'>Scroll by single lines in xterm</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-23 23:22:23 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/home/.config/htop/htoprc?id=0362a9ccb07a4c7a3cd3fef6b7e23d6f999ee9d5&amp;follow=1'>Hide htop "function bar"</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Useless thing...


</td></tr>
<tr class='logheader'><td><span title='2021-09-23 23:12:17 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/home/.config/X/resources?id=15e9ea8c787e9fccd0003db409ac5c443f93868f&amp;follow=1'>Allow FocusEvents in xterm</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Oops! This whole time I thought OpenBSD xterm for some reason didn't
support focus events. It turns out allowMouseOps: false disables
them by default. Replace the disallowedMouseOps list with everything
but.


</td></tr>
<tr class='logheader'><td><span title='2021-09-23 22:41:15 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/bin/quick.c?id=ab3a6ba0fdf2424103ce50aaf594813e77539e7e&amp;follow=1'>Use NI_NUMERICSERV</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-23 22:23:27 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/www/temp.causal.agency/up.c?id=422e835ad33a11dbff86b7f526b591a191c8c407&amp;follow=1'>Make up build away from FreeBSD</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-23 21:39:49 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/bin/quick.c?id=4b7b96f37cd956bde4bcd9a2d6dc44f916bfec73&amp;follow=1'>Add quick</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-23 16:08:02 -0400'>2021-09-23</span></td><td class='logsubject'><a href='/src/commit/txt/books.txt?id=bf2e2782f08568626ae4b800c8a61e43e17c9741&amp;follow=1'>Add The Hobbit</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Surprisingly good for something written by a man like a hundred
years ago!


</td></tr>
<tr class='logheader'><td><span title='2021-09-22 18:50:50 -0400'>2021-09-22</span></td><td class='logsubject'><a href='/src/commit/etc/psf/sans6x8.psf?id=717a0fc69c87b51b851c4db53a8bfe5c0cae39f9&amp;follow=1'>Remove PSF fonts</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
They were fun to make but I never actually used them.


</td></tr>
<tr class='logheader'><td><span title='2021-09-22 18:46:14 -0400'>2021-09-22</span></td><td class='logsubject'><a href='/src/commit/bin/psfed.c?id=dc173ca9c660f775675d6c712f82dcedccdf9db0&amp;follow=1'>Remove Linux-specific utilities</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
I haven't used these in ages.


</td></tr>
<tr class='logheader'><td><span title='2021-09-22 21:13:12 +0000'>2021-09-22</span></td><td class='logsubject'><a href='/src/commit/www/temp.causal.agency/up.c?id=dbcf4c53325774c83d29cdd96a3e822e71029221&amp;follow=1'>Call sandbox in CGI mode</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Otherwise upload won't actually work.


</td></tr>
<tr class='logheader'><td><span title='2021-09-22 19:43:54 +0000'>2021-09-22</span></td><td class='logsubject'><a href='/src/commit/www/temp.causal.agency/up.c?id=6ded0a072c0e63c8062d5429deee7e988f24afe9&amp;follow=1'>Support HTTP PUT in up</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
For use by Palaver[1]. Unfortunately, at least in the current App
Store version of Palaver, this doesn't work correctly with basic
auth.

[1]: https://palaverapp.com/guides/commands/set.html#ui-image_service


</td></tr>
<tr class='logheader'><td><span title='2021-09-22 15:40:24 +0000'>2021-09-22</span></td><td class='logsubject'><a href='/src/commit/www/git.causal.agency/cgit/favicon.ico?id=b66b864a89e0a956e9d5d8909ccb3084df3c273e&amp;follow=1'>Remove default favicon</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
I hate these things and also this one sucks.


</td></tr>
<tr class='logheader'><td><span title='2021-09-21 22:04:26 -0400'>2021-09-21</span></td><td class='logsubject'><a href='/src/commit/bin/pngo.c?id=f6e92ca67f72999ae9b520c9008a4855a339620b&amp;follow=1'>Use Z_FILTERED strategy</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-21 21:33:33 -0400'>2021-09-21</span></td><td class='logsubject'><a href='/src/commit/bin/pngo.c?id=d16660acf755488a7ec936ab959b82dcb219ac67&amp;follow=1'>Recalculate various lengths only as needed</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
This actually speeds things up quite a bit, saving roughly a second
on a big PNG screenshot. Almost all the remaining time is spent in
deflate.


</td></tr>
<tr class='logheader'><td><span title='2021-09-21 15:02:46 -0400'>2021-09-21</span></td><td class='logsubject'><a href='/src/commit/bin/pngo.c?id=9fc326b10ab2e20a8bdb100bbfef24e8b8f3934f&amp;follow=1'>Rewrite pngo, add explicit options</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Interesting to see how my code habits have changed.


</td></tr>
<tr class='logheader'><td><span title='2021-09-16 09:34:37 -0400'>2021-09-16</span></td><td class='logsubject'><a href='/src/commit/bin/c11.l?id=be809c51a57225e17897ca9e5243c259c65895f0&amp;follow=1'>Fix /* **/ comment matching</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-15 19:02:12 -0400'>2021-09-15</span></td><td class='logsubject'><a href='/src/commit/bin/typer.c?id=e4e49b1b03e6eb666d6efaf2850cc15f2f71b713&amp;follow=1'>Remove typer, add downgrade to README</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-15 12:13:31 -0400'>2021-09-15</span></td><td class='logsubject'><a href='/src/commit/bin/man1/downgrade.1?id=9932abb09e3204d6cbd44c92f3678b6184625693&amp;follow=1'>Set bot mode on downgrade</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-15 14:48:03 +0000'>2021-09-15</span></td><td class='logsubject'><a href='/src/commit/bin/downgrade.c?id=68f41009e9283757b672bbafcaa7bb0bdd121e32&amp;follow=1'>Enter capsicum in downgrade</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-15 10:46:21 -0400'>2021-09-15</span></td><td class='logsubject'><a href='/src/commit/bin/downgrade.c?id=48e911f761cb4593706bfeb721b478bf4e7ea7c6&amp;follow=1'>Factor out common parts of downgrade messages</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Also bump the message cap to 1024 because that is ostensibly useful
for replying to older messages.


</td></tr>
<tr class='logheader'><td><span title='2021-09-14 23:37:51 -0400'>2021-09-14</span></td><td class='logsubject'><a href='/src/commit/bin/man1/downgrade.1?id=55dfaa3c16c9bfda165d823d74034fda0dc6b4f6&amp;follow=1'>Add downgrade IRC bot</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-14 23:20:57 -0400'>2021-09-14</span></td><td class='logsubject'><a href='/src/commit/bin/bibsort.pl?id=b124bde2b6ec698b5468167cfaea63b598f77bd0&amp;follow=1'>Sort by title if authors match</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
There are probably better things to sort by but title definitely
always exists.


</td></tr>
<tr class='logheader'><td><span title='2021-09-13 09:14:02 -0400'>2021-09-13</span></td><td class='logsubject'><a href='/src/commit/bin/htagml.c?id=abda08060ecf83cf2ae3b47e7ba8af3701a5fb38&amp;follow=1'>Swap-remove tags as they're found</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
This makes it even faster. From ~1s on a sqlite3.c amalgamation to
~0.85s.


</td></tr>
<tr class='logheader'><td><span title='2021-09-12 21:02:19 -0400'>2021-09-12</span></td><td class='logsubject'><a href='/src/commit/bin/htagml.c?id=e7b4d18510cf26a0a72fac72604f930d62b4fa7d&amp;follow=1'>Replace htagml regex with strncmp</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
Since ctags only ever produces regular expressions of the form
/^re$/ or /^re/ with no other special characters, instead unescape
the pattern and simply use strncmp.

Running on a sqlite3.c amalgamation, the regex version takes ~37s
while the strncmp version takes ~1s, producing identical output.
Big win!


</td></tr>
<tr class='logheader'><td><span title='2021-09-11 15:11:48 -0400'>2021-09-11</span></td><td class='logsubject'><a href='/src/commit/bin/git-comment.pl?id=9d3e8a88a0d06310ff0a9309a5439ab97b8f922f&amp;follow=1'>Also defer printing comment for lone close-parens</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-10 20:06:21 -0400'>2021-09-10</span></td><td class='logsubject'><a href='/src/commit/www/text.causal.agency/Makefile?id=ae5823a4cda93b6def9ae017ba3d93daa2eceeb9&amp;follow=1'>Publish "git-comment"</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-10 17:10:15 -0400'>2021-09-10</span></td><td class='logsubject'><a href='/src/commit/bin/man1/git-comment.1?id=4c6cb6a661e970cf6951f627390f65b59ec8a7de&amp;follow=1'>Add git comment --pretty option</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-08 23:32:51 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/git-comment.pl?id=774decfc311710c12a27a3c5cd827c96fea4d332&amp;follow=1'>Defer printing comment if line is blank or closing brace</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
This fixes badly indented comments.


</td></tr>
<tr class='logheader'><td><span title='2021-09-08 22:17:13 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/man1/git-comment.1?id=1a5ecb6c6d42d8e0a9284897c90d6047f8ad8842&amp;follow=1'>Up default min-repeat to 30 lines</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-08 22:11:15 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/git-comment.pl?id=5908b0ae469e5d20d6b05eb3aabf2ea7b3d65311&amp;follow=1'>Handle dirty lines in git-comment</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-08 21:59:30 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/man1/git-comment.1?id=a237a866bba3b7c4618ccef1347c0c01009e66f3&amp;follow=1'>Document and install git-comment</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-08 21:05:33 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/git-comment.pl?id=ce5d7b18c0143dda7b3c9a78260b6e5ce7eec11a&amp;follow=1'>Add repeat and all options to git-comment</a></td><td>June McEnroe</td></tr>
<tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'>
</td></tr>
<tr class='logheader'><td><span title='2021-09-08 19:05:36 -0400'>2021-09-08</span></td><td class='logsubject'><a href='/src/commit/bin/git-comment.pl?id=c06e03fe68c3f55ff251607a534c75ac5d419af8&amp;follow=1'>Add group threshold to git-comment</a></td><td>June McEnroe