tive ASCII art </title> <meta name='generator' content='cgit 1.4.1'/> <meta name='robots' content='index, nofollow'/> <link rel='stylesheet' type='text/css' href='/custom.css'/> <link rel='alternate' title='Atom feed' href='https://git.causal.agency/torus/atom/.gitignore?h=cgi' type='application/atom+xml'/> <link rel='vcs-git' href='https://git.causal.agency/torus' title='torus Git repository'/> </head> <body> <div id='cgit'><table id='header'> <tr> <td class='main'><a href='/'>index</a> : <a href='/torus/'>torus</a></td><td class='form'><form method='get'> <input type='hidden' name='id' value='d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb'/><input type='hidden' name='showmsg' value='1'/><select name='h' onchange='this.form.submit();'> <option value='bceb3850198fadbbae525e5583af385c7583f2d2'>this commit</option> <optgroup label='branches'><option value='ansi'>ansi</option> <option value='backport'>backport</option> <option value='cgi' selected='selected'>cgi</option> <option value='daemon'>daemon</option> <option value='master'>master</option> <option value='v1'>v1</option> <option value='v2'>v2</option> </optgroup></select> <input type='submit' value='switch'/></form></td></tr> <tr><td class='sub'>collaborative ASCII art </td><td class='sub right'></td></tr></table> <table class='tabs'><tr><td> <a href='/torus/about/?h=cgi'>about</a> <a href='/torus/?h=cgi'>summary</a> <a href='/torus/refs/?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb'>refs</a> <a class='active' href='/torus/log/.gitignore?h=cgi&showmsg=1&follow=1'>log</a> <a href='/torus/tree/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb'>tree</a> <a href='/torus/commit/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&follow=1'>commit</a> <a href='/torus/diff/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&follow=1'>diff</a> <a href='https://ascii.town'>homepage</a></td><td class='form'><form class='right' method='get' action='/torus/log/.gitignore'> <input type='hidden' name='h' value='cgi'/><input type='hidden' name='id' value='d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb'/><input type='hidden' name='showmsg' value='1'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/torus/log/?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&showmsg=1&follow=1'>root</a>/<a href='/torus/log/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&showmsg=1&follow=1'>.gitignore</a> (<a href='/torus/log/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&showmsg=1'>unfollow</a>)</div><div class='content'><table class='list nowrap'><tr class='nohover'><th></th><th class='left'>Commit message (<a href='/torus/log/.gitignore?h=cgi&id=d3c3c4c561fc96e3a753e9e4c2996a19eb06a9eb&follow=1'>Collapse</a>)</th><th class='left'>Author</th></tr> <tr class='logheader'><td><span title='2017-08-08 23:33:02 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=a4898b1bd4629cc2ef0e6a3f2e245449ce9d3c8c&follow=1'>Check COLOR_PAIRS in client</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='2017-08-08 23:18:35 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/termcap.diff?h=cgi&id=c6b87d4f50d6ec9859488d7ed232ebd501a670e2&follow=1'>Patch termcap of rxvt-256color as well</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='2017-08-08 21:30:41 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=f000caedde4df752b91c861b56b15e05eadb8234&follow=1'>Add put mode</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This is what replace mode used to do. </td></tr> <tr class='logheader'><td><span title='2017-08-08 20:55:44 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=881f64ddfbc6141ac7ed2eacf7bc0de1f49bc67f&follow=1'>Remove MADV_NOSYNC</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> I don't think this has any benefit. It just takes longer to stop the server because it flushes all the pages then. </td></tr> <tr class='logheader'><td><span title='2017-08-08 20:44:22 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=8402acf0fe1451b8508d4d81a2fae8e7927d0720&follow=1'>Completely retry if a send fails during a broadcast</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This fixes a bug where the saved next client to iterate through would also get removed. This can result in messages being sent multiple times to a client, but that will have no negative effect. </td></tr> <tr class='logheader'><td><span title='2017-08-08 19:13:06 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=8606c88ea4c2c3740a7e59e7def591e3c4eeced7&follow=1'>Reverse order of main loop</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='2017-08-08 19:00:54 -0400'>2017-08-08</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=a58e055fa574c29e833f1fdeb098225594496c76&follow=1'>Turn off SIGPIPE at the socket level</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> I imagine it's better to not generate SIGPIPE at all rather than generate and ignore. </td></tr> <tr class='logheader'><td><span title='2017-08-06 15:23:34 -0400'>2017-08-06</span></td><td class='logsubject'><a href='/torus/commit/help.c?h=cgi&id=c2ac12378fa1359419671b5b58ee40ab7584efd2&follow=1'>Rewrite help</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> This code is still terrible. </td></tr> <tr class='logheader'><td><span title='2017-08-04 23:22:48 -0400'>2017-08-04</span></td><td class='logsubject'><a href='/torus/commit/snapshot.sh?h=cgi&id=20fd08dd6d8bc6b35dc135ab63f8fbe56218a771&follow=1'>Use $() in snapshot.sh</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> I don't know why I wrote ``. </td></tr> <tr class='logheader'><td><span title='2017-08-02 01:42:49 -0400'>2017-08-02</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=8e6629ca5bde365470b194c738b09f40867745f2&follow=1'>Move in insert direction on ~</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='2017-08-02 01:34:33 -0400'>2017-08-02</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=00cb0f8ca430ef97b380f35e11fbb50d3112e8c9&follow=1'>Preserve color on replace</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='2017-08-02 00:55:52 -0400'>2017-08-02</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=9595969f2e916e800ec029623305920e11ef182b&follow=1'>Split tile access and modify</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='2017-08-01 00:09:44 -0400'>2017-08-01</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=3c2d8233b880cb22e2330a877f7d9ee1a9a8a5fa&follow=1'>Madvise RANDOM and NOSYNC</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='2017-07-31 23:43:17 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=7e978b57cc75e9802242937253df8b27babb4c6f&follow=1'>Fix removing clients from clientCast</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='2017-07-31 23:40:03 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/chroot.sh?h=cgi&id=ed7646e492853fa577f449fb1be8556a5f8dbf9e&follow=1'>Build with debug info</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='2017-07-31 23:22:21 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=071962a0700f6ed344d91b724b7dc3c7a3b0b426&follow=1'>Don't dump tiles in core</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='2017-07-31 22:14:56 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=5962f9f4a7614da62bdb73954eb624ab19218b1f&follow=1'>Use designated initializers for messages</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> I did not realize this syntax was so powerful. </td></tr> <tr class='logheader'><td><span title='2017-07-31 21:30:22 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=87e515b927d15881e39b73e18ac211164f28b88f&follow=1'>Show other clients' cursors</a></td><td>June McEnroe</td></tr> <tr class='nohover-highlight'><td/><td colspan='3' class='logmsg'> Also unfuck removing on send failure. </td></tr> <tr class='logheader'><td><span title='2017-07-31 20:15:42 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=3d7768d1a6d3d56f9a472f2a2b981be515a3bef0&follow=1'>Perform enter as two moves rather than a loop</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='2017-07-31 19:21:50 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=f7bdd3ce58117d17a24d81eacff41db43fa1f9d8&follow=1'>Track tile access counts</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='2017-07-31 00:32:04 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=7ae0b16aec82ae6ae4023bfd23ddef8ba6965b3a&follow=1'>Adjust move speed in client</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='2017-07-31 00:22:07 -0400'>2017-07-31</span></td><td class='logsubject'><a href='/torus/commit/server.c?h=cgi&id=ca448f3dc88b8737e641cb9019664695eab80e51&follow=1'>Handle large moves</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='2017-07-30 23:19:30 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/chroot.sh?h=cgi&id=80dadfb7533136f7c4631875dc4b9cc089a00f66&follow=1'>Optimize builds for chroot</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='2017-07-30 22:53:29 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=68a8d1388cfaba17b8bc145e66773d042fdebe62&follow=1'>Persist bright across color changes</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='2017-07-30 19:57:01 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/index.html?h=cgi&id=856abdf0227065997231c1dd6c004fb41a7c7d79&follow=1'>Add index.html</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='2017-07-30 19:24:58 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/snapshot.sh?h=cgi&id=7d85d1813ee367c15e42206d582e5aa06e212440&follow=1'>Add snapshot.sh</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='2017-07-30 16:51:51 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/termcap.diff?h=cgi&id=e38d40500934bae533d516e2ba95ef5e3efc6363&follow=1'>Fix termcap patch for background colors</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='2017-07-30 16:30:52 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/help.c?h=cgi&id=a505ca1ee37892e31eb6baeba3a4b8376cdbed57&follow=1'>Update help</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='2017-07-30 16:01:46 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/help.c?h=cgi&id=91b289e91d96178b25b557d008b13d977f3d4638&follow=1'>Fix help to track color</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='2017-07-30 15:56:55 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=1e4da915cc0ff567c9d607a8cb9481a9f0b24c9b&follow=1'>Support background colors</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='2017-07-30 15:40:31 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=fe8ff9c8b368a5ae97ca3dea9472c13afe8e8eae&follow=1'>Track color only client-side</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='2017-07-30 15:05:20 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=16a31d2f7483f21d413efc44f182c85cc40fee89&follow=1'>Add ostensible support for background colors</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='2017-07-30 14:15:15 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=f48c10f46eab1c11827516a0610f7cd71d74bdad&follow=1'>Add tile create and access timestamps</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='2017-07-30 14:08:56 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/torus.h?h=cgi&id=71bab09c60e0d6c1043bebf97a83c41517562dde&follow=1'>Assert stable struct Tile field offsets</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='2017-07-30 13:44:17 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/chroot.sh?h=cgi&id=88dce55272dd95808b91760bf3384f193aa95a9f&follow=1'>Add chroot.sh</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='2017-07-30 12:54:45 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/client.c?h=cgi&id=5913499e9f2f56a59efd7ba8f7b81968b3f1c398&follow=1'>Add ` command</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='2017-07-30 03:16:32 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/sshd_config?h=cgi&id=9460cc38a87617f3551562b340053c0a7a6b85cd&follow=1'>Add sshd_config</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='2017-07-30 03:10:22 -0400'>2017-07-30</span></td><td class='logsubject'><a href='/torus/commit/termcap.diff?h=cgi&id=f9c2dd1b4b6acfcb9cc3d9e69e177e1d9d2597d6&follow=1'>Add termcap patch</a></td><td>June McEnroe