<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
<title>cio, branch HEAD</title>
<subtitle>a simple irc client
</subtitle>
<entry>
<id>1e98f8a44d2dda525d94f8945d2344d7f744ae54</id>
<published>2026-04-03T05:53:00Z</published>
<updated>2026-04-03T16:06:17Z</updated>
<title>cio release v1.0</title>
<link rel="alternate" type="text/html" href="commit/1e98f8a44d2dda525d94f8945d2344d7f744ae54.html" />
<author>
<name>Andrew Kloet</name>
<email>andrew@kloet.net</email>
</author>
<content>commit 1e98f8a44d2dda525d94f8945d2344d7f744ae54
parent 17fc6b5c307623fb94a2b5179e5732119a08704f
Author: Andrew Kloet &lt;andrew@kloet.net&gt;
Date:   Fri,  3 Apr 2026 01:53:00 -0400

cio release v1.0

This marks the release of cio v1.0, forked from irc.c by Quentin
Carbonneaux.

Notable changes:
- Security: Made TLS default and now verify the server hostname.
- Authentication: Add support for SASL Plain/External.
- scmd():
  * Less rigid argument parser into a generic argc/argv.
  * Use a switch instead of chaining if-elses.
  * Handle a handful of previous unhandled commands
    (yo dawg, i herd you like hands).
- Le Correctness:
  * Avoid unsafe string manipulation functions.
  * Now comes with a standard manual page.
  * Adhere closer RFC 2812: case sensitivity, nick collisions,
    server-sent JOIN/PART, +more...
  * When possible, parse errno into a string and prints.

</content>
</entry>
<entry>
<id>17fc6b5c307623fb94a2b5179e5732119a08704f</id>
<published>2022-05-10T19:17:19Z</published>
<updated>2024-04-12T19:53:35Z</updated>
<title>ping the server regularly</title>
<link rel="alternate" type="text/html" href="commit/17fc6b5c307623fb94a2b5179e5732119a08704f.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin@c9x.me</email>
</author>
<content>commit 17fc6b5c307623fb94a2b5179e5732119a08704f
parent e8fdea1df28fd08f4a8d150ddf99f1eb530f0e0f
Author: Quentin Carbonneaux &lt;quentin@c9x.me&gt;
Date:   Tue, 10 May 2022 21:17:19 +0200

ping the server regularly

</content>
</entry>
<entry>
<id>e8fdea1df28fd08f4a8d150ddf99f1eb530f0e0f</id>
<published>2023-02-02T09:40:06Z</published>
<updated>2023-02-02T09:40:06Z</updated>
<title>use LDLIBS instead of LDFLAGS</title>
<link rel="alternate" type="text/html" href="commit/e8fdea1df28fd08f4a8d150ddf99f1eb530f0e0f.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin@c9x.me</email>
</author>
<content>commit e8fdea1df28fd08f4a8d150ddf99f1eb530f0e0f
parent 490f194d9146d3c41ea804047a539fda2f025800
Author: Quentin Carbonneaux &lt;quentin@c9x.me&gt;
Date:   Thu,  2 Feb 2023 10:40:06 +0100

use LDLIBS instead of LDFLAGS

</content>
</entry>
<entry>
<id>490f194d9146d3c41ea804047a539fda2f025800</id>
<published>2020-01-11T16:19:49Z</published>
<updated>2021-03-02T07:45:51Z</updated>
<title>install/uninstall targets</title>
<link rel="alternate" type="text/html" href="commit/490f194d9146d3c41ea804047a539fda2f025800.html" />
<author>
<name>thebenraskin</name>
<email>ben@thebenraskin.tech</email>
</author>
<content>commit 490f194d9146d3c41ea804047a539fda2f025800
parent b9c8db79bf4902329e427dfae03e537f128df4c4
Author: thebenraskin &lt;ben@thebenraskin.tech&gt;
Date:   Sat, 11 Jan 2020 11:19:49 -0500

install/uninstall targets

</content>
</entry>
<entry>
<id>b9c8db79bf4902329e427dfae03e537f128df4c4</id>
<published>2017-06-13T17:28:16Z</published>
<updated>2017-06-13T17:32:14Z</updated>
<title>update README</title>
<link rel="alternate" type="text/html" href="commit/b9c8db79bf4902329e427dfae03e537f128df4c4.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit b9c8db79bf4902329e427dfae03e537f128df4c4
parent 8bc46324826d19a8fcf0f09a2721f8edd1ef560b
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Tue, 13 Jun 2017 13:28:16 -0400

update README

</content>
</entry>
<entry>
<id>8bc46324826d19a8fcf0f09a2721f8edd1ef560b</id>
<published>2017-01-23T01:47:39Z</published>
<updated>2017-01-23T01:47:39Z</updated>
<title>default nick to user</title>
<link rel="alternate" type="text/html" href="commit/8bc46324826d19a8fcf0f09a2721f8edd1ef560b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 8bc46324826d19a8fcf0f09a2721f8edd1ef560b
parent 240a558ac936ef74f05ee3558dac433d29073f0f
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Sun, 22 Jan 2017 20:47:39 -0500

default nick to user

</content>
</entry>
<entry>
<id>240a558ac936ef74f05ee3558dac433d29073f0f</id>
<published>2017-01-19T16:39:46Z</published>
<updated>2017-01-19T16:39:46Z</updated>
<title>use terminal colors for main window</title>
<link rel="alternate" type="text/html" href="commit/240a558ac936ef74f05ee3558dac433d29073f0f.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 240a558ac936ef74f05ee3558dac433d29073f0f
parent 19ba268b6a8dcde8bbd77046e52cb62e1ffc7f5b
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Thu, 19 Jan 2017 11:39:46 -0500

use terminal colors for main window

</content>
</entry>
<entry>
<id>19ba268b6a8dcde8bbd77046e52cb62e1ffc7f5b</id>
<published>2017-01-19T16:26:23Z</published>
<updated>2017-01-19T16:26:23Z</updated>
<title>get rid of spurious continue</title>
<link rel="alternate" type="text/html" href="commit/19ba268b6a8dcde8bbd77046e52cb62e1ffc7f5b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 19ba268b6a8dcde8bbd77046e52cb62e1ffc7f5b
parent 3bb53c314db1eede1b9359c9e7886105cedd8fc3
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Thu, 19 Jan 2017 11:26:23 -0500

get rid of spurious continue

</content>
</entry>
<entry>
<id>3bb53c314db1eede1b9359c9e7886105cedd8fc3</id>
<published>2017-01-19T16:10:01Z</published>
<updated>2017-01-19T16:10:01Z</updated>
<title>tentative reconnection support</title>
<link rel="alternate" type="text/html" href="commit/3bb53c314db1eede1b9359c9e7886105cedd8fc3.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 3bb53c314db1eede1b9359c9e7886105cedd8fc3
parent 874cde6562f0c0817a6d14878269c4364cddb801
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Thu, 19 Jan 2017 11:10:01 -0500

tentative reconnection support

</content>
</entry>
<entry>
<id>874cde6562f0c0817a6d14878269c4364cddb801</id>
<published>2017-01-18T23:00:25Z</published>
<updated>2017-01-18T23:00:25Z</updated>
<title>style nit</title>
<link rel="alternate" type="text/html" href="commit/874cde6562f0c0817a6d14878269c4364cddb801.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 874cde6562f0c0817a6d14878269c4364cddb801
parent baa319ce6d7db30a166843fe1687cd0660d08f8b
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 18 Jan 2017 18:00:25 -0500

style nit

</content>
</entry>
<entry>
<id>baa319ce6d7db30a166843fe1687cd0660d08f8b</id>
<published>2017-01-18T22:53:10Z</published>
<updated>2017-01-18T22:53:10Z</updated>
<title>oops, unguarded ssl stuff segfaults</title>
<link rel="alternate" type="text/html" href="commit/baa319ce6d7db30a166843fe1687cd0660d08f8b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit baa319ce6d7db30a166843fe1687cd0660d08f8b
parent 758f7a193ec87514576ec5d427724cd9e56dd0b2
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 18 Jan 2017 17:53:10 -0500

oops, unguarded ssl stuff segfaults

</content>
</entry>
<entry>
<id>758f7a193ec87514576ec5d427724cd9e56dd0b2</id>
<published>2017-01-18T22:50:08Z</published>
<updated>2017-01-18T22:50:08Z</updated>
<title>more glorious feature macros</title>
<link rel="alternate" type="text/html" href="commit/758f7a193ec87514576ec5d427724cd9e56dd0b2.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 758f7a193ec87514576ec5d427724cd9e56dd0b2
parent 21c47bf2c7498d9fdabbcfe886d6f549b858ae9b
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 18 Jan 2017 17:50:08 -0500

more glorious feature macros

</content>
</entry>
<entry>
<id>21c47bf2c7498d9fdabbcfe886d6f549b858ae9b</id>
<published>2017-01-18T22:39:31Z</published>
<updated>2017-01-18T22:39:31Z</updated>
<title>ssl support, thanks xcko shrdlu!</title>
<link rel="alternate" type="text/html" href="commit/21c47bf2c7498d9fdabbcfe886d6f549b858ae9b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 21c47bf2c7498d9fdabbcfe886d6f549b858ae9b
parent 0cfe3fad8f593bcf11d495d90f158afd567b1984
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 18 Jan 2017 17:39:31 -0500

ssl support, thanks xcko shrdlu!

</content>
</entry>
<entry>
<id>0cfe3fad8f593bcf11d495d90f158afd567b1984</id>
<published>2016-06-09T18:54:35Z</published>
<updated>2017-01-18T22:09:27Z</updated>
<title>add PASS support</title>
<link rel="alternate" type="text/html" href="commit/0cfe3fad8f593bcf11d495d90f158afd567b1984.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 0cfe3fad8f593bcf11d495d90f158afd567b1984
parent 1d3c109eb02c514ecedda65cd1bda5256ef0c6c2
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Thu,  9 Jun 2016 20:54:35 +0200

add PASS support

</content>
</entry>
<entry>
<id>1d3c109eb02c514ecedda65cd1bda5256ef0c6c2</id>
<published>2017-01-18T20:12:44Z</published>
<updated>2017-01-18T20:12:44Z</updated>
<title>privmsg support, thanks Evil_Bob!</title>
<link rel="alternate" type="text/html" href="commit/1d3c109eb02c514ecedda65cd1bda5256ef0c6c2.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 1d3c109eb02c514ecedda65cd1bda5256ef0c6c2
parent 48569cdb36dd1a71f3221390b8f25e2ec62fecd7
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 18 Jan 2017 15:12:44 -0500

privmsg support, thanks Evil_Bob!

</content>
</entry>
<entry>
<id>48569cdb36dd1a71f3221390b8f25e2ec62fecd7</id>
<published>2016-11-13T07:39:39Z</published>
<updated>2016-11-21T21:33:31Z</updated>
<title>ctrl-w deletes one word</title>
<link rel="alternate" type="text/html" href="commit/48569cdb36dd1a71f3221390b8f25e2ec62fecd7.html" />
<author>
<name>xcko shrdlu</name>
<email>xcko@bitmessage.ch</email>
</author>
<content>commit 48569cdb36dd1a71f3221390b8f25e2ec62fecd7
parent 294e0d2522d6044bf68dc232f87d00703c756d17
Author: xcko shrdlu &lt;xcko@bitmessage.ch&gt;
Date:   Sun, 13 Nov 2016 07:39:39 +0000

ctrl-w deletes one word

</content>
</entry>
<entry>
<id>294e0d2522d6044bf68dc232f87d00703c756d17</id>
<published>2016-11-21T21:27:28Z</published>
<updated>2016-11-21T21:27:34Z</updated>
<title>minor tweaks for compiler warnings</title>
<link rel="alternate" type="text/html" href="commit/294e0d2522d6044bf68dc232f87d00703c756d17.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 294e0d2522d6044bf68dc232f87d00703c756d17
parent 7cf5b1709a715eb8af0caadb3af229e04895a822
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Mon, 21 Nov 2016 16:27:28 -0500

minor tweaks for compiler warnings

</content>
</entry>
<entry>
<id>7cf5b1709a715eb8af0caadb3af229e04895a822</id>
<published>2016-11-06T08:47:24Z</published>
<updated>2016-11-06T16:39:54Z</updated>
<title>allow ctrl-h as backspace</title>
<link rel="alternate" type="text/html" href="commit/7cf5b1709a715eb8af0caadb3af229e04895a822.html" />
<author>
<name>xcko shrdlu</name>
<email>xcko@bitmessage.ch</email>
</author>
<content>commit 7cf5b1709a715eb8af0caadb3af229e04895a822
parent f80202802bc1fb4d56f6ce27bcdeaf58d7d1cd1e
Author: xcko shrdlu &lt;xcko@bitmessage.ch&gt;
Date:   Sun,  6 Nov 2016 01:47:24 -0700

allow ctrl-h as backspace

</content>
</entry>
<entry>
<id>f80202802bc1fb4d56f6ce27bcdeaf58d7d1cd1e</id>
<published>2016-08-09T23:35:26Z</published>
<updated>2016-08-09T23:35:26Z</updated>
<title>add ipv6 support, thanks Evil_Bob</title>
<link rel="alternate" type="text/html" href="commit/f80202802bc1fb4d56f6ce27bcdeaf58d7d1cd1e.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit f80202802bc1fb4d56f6ce27bcdeaf58d7d1cd1e
parent c3722d014fe734bd6e7cb97cf1352f9822811c97
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Tue,  9 Aug 2016 19:35:26 -0400

add ipv6 support, thanks Evil_Bob

</content>
</entry>
<entry>
<id>c3722d014fe734bd6e7cb97cf1352f9822811c97</id>
<published>2016-05-07T14:04:09Z</published>
<updated>2016-05-07T14:04:09Z</updated>
<title>this is horrible, build on openbsd</title>
<link rel="alternate" type="text/html" href="commit/c3722d014fe734bd6e7cb97cf1352f9822811c97.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit c3722d014fe734bd6e7cb97cf1352f9822811c97
parent f1a2b62b2f4d47de58152a1834fa5a8b971dd6d9
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Sat,  7 May 2016 10:04:09 -0400

this is horrible, build on openbsd

</content>
</entry>
<entry>
<id>f1a2b62b2f4d47de58152a1834fa5a8b971dd6d9</id>
<published>2016-05-05T02:41:22Z</published>
<updated>2016-05-05T02:41:22Z</updated>
<title>do not print non-printable characters</title>
<link rel="alternate" type="text/html" href="commit/f1a2b62b2f4d47de58152a1834fa5a8b971dd6d9.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit f1a2b62b2f4d47de58152a1834fa5a8b971dd6d9
parent 734cc4f0e72259a8be86115c71dce0f112d6ff0b
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed,  4 May 2016 22:41:22 -0400

do not print non-printable characters

</content>
</entry>
<entry>
<id>734cc4f0e72259a8be86115c71dce0f112d6ff0b</id>
<published>2016-05-05T02:17:19Z</published>
<updated>2016-05-05T02:17:28Z</updated>
<title>support in-channel unicode</title>
<link rel="alternate" type="text/html" href="commit/734cc4f0e72259a8be86115c71dce0f112d6ff0b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 734cc4f0e72259a8be86115c71dce0f112d6ff0b
parent 1c4a83b81f92884d7add4962151f16b74637a0c5
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed,  4 May 2016 22:17:19 -0400

support in-channel unicode

</content>
</entry>
<entry>
<id>1c4a83b81f92884d7add4962151f16b74637a0c5</id>
<published>2016-05-04T01:54:34Z</published>
<updated>2016-05-04T01:54:34Z</updated>
<title>remove meaningless logic, handle tiny screens</title>
<link rel="alternate" type="text/html" href="commit/1c4a83b81f92884d7add4962151f16b74637a0c5.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 1c4a83b81f92884d7add4962151f16b74637a0c5
parent 01cb7d3ebee300dac6af2e8d835af425ec66e6e4
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Tue,  3 May 2016 21:54:34 -0400

remove meaningless logic, handle tiny screens

</content>
</entry>
<entry>
<id>01cb7d3ebee300dac6af2e8d835af425ec66e6e4</id>
<published>2016-05-04T01:32:15Z</published>
<updated>2016-05-04T01:32:21Z</updated>
<title>do not panic</title>
<link rel="alternate" type="text/html" href="commit/01cb7d3ebee300dac6af2e8d835af425ec66e6e4.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 01cb7d3ebee300dac6af2e8d835af425ec66e6e4
parent fea5b2171f559a5aac7b38773659eca26064562d
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Tue,  3 May 2016 21:32:15 -0400

do not panic

</content>
</entry>
<entry>
<id>fea5b2171f559a5aac7b38773659eca26064562d</id>
<published>2016-05-04T01:31:50Z</published>
<updated>2016-05-04T01:31:50Z</updated>
<title>style change</title>
<link rel="alternate" type="text/html" href="commit/fea5b2171f559a5aac7b38773659eca26064562d.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit fea5b2171f559a5aac7b38773659eca26064562d
parent 35d40adb208fd0c8ded353fb80b202d5f6f0b77e
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Tue,  3 May 2016 21:31:50 -0400

style change

</content>
</entry>
<entry>
<id>35d40adb208fd0c8ded353fb80b202d5f6f0b77e</id>
<published>2016-04-28T00:57:41Z</published>
<updated>2016-04-28T00:57:41Z</updated>
<title>Adjust indent.</title>
<link rel="alternate" type="text/html" href="commit/35d40adb208fd0c8ded353fb80b202d5f6f0b77e.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 35d40adb208fd0c8ded353fb80b202d5f6f0b77e
parent e3ce65b0ed8f3e7342646f8272a0cf0c78d31f79
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Thu, 28 Apr 2016 00:57:41 +0000

Adjust indent.

</content>
</entry>
<entry>
<id>e3ce65b0ed8f3e7342646f8272a0cf0c78d31f79</id>
<published>2016-04-24T16:32:41Z</published>
<updated>2016-04-27T15:44:09Z</updated>
<title>Add nickname and new message indicator.</title>
<link rel="alternate" type="text/html" href="commit/e3ce65b0ed8f3e7342646f8272a0cf0c78d31f79.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit e3ce65b0ed8f3e7342646f8272a0cf0c78d31f79
parent 9d13c27310b659f41379c638b799281d7735201c
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 24 Apr 2016 18:32:41 +0200

Add nickname and new message indicator.

</content>
</entry>
<entry>
<id>9d13c27310b659f41379c638b799281d7735201c</id>
<published>2016-04-24T14:29:51Z</published>
<updated>2016-04-27T15:44:02Z</updated>
<title>Highlight nickname by prefixing message with &gt;.</title>
<link rel="alternate" type="text/html" href="commit/9d13c27310b659f41379c638b799281d7735201c.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 9d13c27310b659f41379c638b799281d7735201c
parent 588eaca2cef25a0e061d977126c1af0ceb63a443
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 24 Apr 2016 16:29:51 +0200

Highlight nickname by prefixing message with &gt;.

</content>
</entry>
<entry>
<id>588eaca2cef25a0e061d977126c1af0ceb63a443</id>
<published>2016-04-24T13:59:19Z</published>
<updated>2016-04-27T15:43:01Z</updated>
<title>Allow logging to a file with -l logfile.</title>
<link rel="alternate" type="text/html" href="commit/588eaca2cef25a0e061d977126c1af0ceb63a443.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 588eaca2cef25a0e061d977126c1af0ceb63a443
parent dc7c7582abd1fac3cdbb6068999bc8126bb3848b
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 24 Apr 2016 15:59:19 +0200

Allow logging to a file with -l logfile.

</content>
</entry>
<entry>
<id>dc7c7582abd1fac3cdbb6068999bc8126bb3848b</id>
<published>2016-04-27T15:27:46Z</published>
<updated>2016-04-27T15:42:58Z</updated>
<title>Sanitize Makefile.</title>
<link rel="alternate" type="text/html" href="commit/dc7c7582abd1fac3cdbb6068999bc8126bb3848b.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit dc7c7582abd1fac3cdbb6068999bc8126bb3848b
parent 21abe4f408d582c26ba69a115fec14f778d97563
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 27 Apr 2016 11:27:46 -0400

Sanitize Makefile.

</content>
</entry>
<entry>
<id>21abe4f408d582c26ba69a115fec14f778d97563</id>
<published>2016-04-27T15:23:31Z</published>
<updated>2016-04-27T15:42:52Z</updated>
<title>Get rid of com line.</title>
<link rel="alternate" type="text/html" href="commit/21abe4f408d582c26ba69a115fec14f778d97563.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 21abe4f408d582c26ba69a115fec14f778d97563
parent fb2a9d3e0ef321180de4fb0b65741ae571cce9ef
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 27 Apr 2016 11:23:31 -0400

Get rid of com line.

</content>
</entry>
<entry>
<id>fb2a9d3e0ef321180de4fb0b65741ae571cce9ef</id>
<published>2016-04-24T13:05:04Z</published>
<updated>2016-04-27T15:42:49Z</updated>
<title>Add Makefile.</title>
<link rel="alternate" type="text/html" href="commit/fb2a9d3e0ef321180de4fb0b65741ae571cce9ef.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit fb2a9d3e0ef321180de4fb0b65741ae571cce9ef
parent 420e494643d4ae10c509d67ddffc7bae069c86eb
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 24 Apr 2016 15:05:04 +0200

Add Makefile.

</content>
</entry>
<entry>
<id>420e494643d4ae10c509d67ddffc7bae069c86eb</id>
<published>2016-04-27T15:22:25Z</published>
<updated>2016-04-27T15:42:45Z</updated>
<title>Add README.</title>
<link rel="alternate" type="text/html" href="commit/420e494643d4ae10c509d67ddffc7bae069c86eb.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit 420e494643d4ae10c509d67ddffc7bae069c86eb
parent 2fe8873b070fca24e5ce7f1b5bf73e402791ad0f
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Wed, 27 Apr 2016 11:22:25 -0400

Add README.

</content>
</entry>
<entry>
<id>2fe8873b070fca24e5ce7f1b5bf73e402791ad0f</id>
<published>2016-04-24T13:04:18Z</published>
<updated>2016-04-27T15:42:39Z</updated>
<title>Redefine CTRL macro, make it build on OpenBSD.</title>
<link rel="alternate" type="text/html" href="commit/2fe8873b070fca24e5ce7f1b5bf73e402791ad0f.html" />
<author>
<name>Hiltjo Posthuma</name>
<email>hiltjo@codemadness.org</email>
</author>
<content>commit 2fe8873b070fca24e5ce7f1b5bf73e402791ad0f
parent ec9dab336522a0282804bfa0aa0b3c79a5630faa
Author: Hiltjo Posthuma &lt;hiltjo@codemadness.org&gt;
Date:   Sun, 24 Apr 2016 15:04:18 +0200

Redefine CTRL macro, make it build on OpenBSD.

</content>
</entry>
<entry>
<id>ec9dab336522a0282804bfa0aa0b3c79a5630faa</id>
<published>2015-04-03T03:03:04Z</published>
<updated>2015-04-03T03:03:04Z</updated>
<title>Cosmetic changes in pushl.</title>
<link rel="alternate" type="text/html" href="commit/ec9dab336522a0282804bfa0aa0b3c79a5630faa.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit ec9dab336522a0282804bfa0aa0b3c79a5630faa
parent d29cd51fd4ed8c891bbe6efd7b4f9b5cf67e96e1
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Fri,  3 Apr 2015 03:03:04 +0000

Cosmetic changes in pushl.

</content>
</entry>
<entry>
<id>d29cd51fd4ed8c891bbe6efd7b4f9b5cf67e96e1</id>
<published>2015-04-02T22:47:31Z</published>
<updated>2015-04-02T22:47:31Z</updated>
<title>Add clean output for long lines.</title>
<link rel="alternate" type="text/html" href="commit/d29cd51fd4ed8c891bbe6efd7b4f9b5cf67e96e1.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>quentin.carbonneaux@yale.edu</email>
</author>
<content>commit d29cd51fd4ed8c891bbe6efd7b4f9b5cf67e96e1
parent a10ff13d00eb7fa816a3771b2c4ae7265627a024
Author: Quentin Carbonneaux &lt;quentin.carbonneaux@yale.edu&gt;
Date:   Thu,  2 Apr 2015 22:47:31 +0000

Add clean output for long lines.

This might make some of the scrolling logic a little bit
inconsistent, but it pleases the eye a lot more!

</content>
</entry>
<entry>
<id>a10ff13d00eb7fa816a3771b2c4ae7265627a024</id>
<published>2012-03-25T08:41:07Z</published>
<updated>2012-03-25T08:41:07Z</updated>
<title>Added option parsing.</title>
<link rel="alternate" type="text/html" href="commit/a10ff13d00eb7fa816a3771b2c4ae7265627a024.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit a10ff13d00eb7fa816a3771b2c4ae7265627a024
parent 9ec61b4072285e36baeab8f1ac6d819f9445b56c
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sun, 25 Mar 2012 10:41:07 +0200

Added option parsing.

This commit allows users to customize their IRC user name, nick name,
and server. The user name, if not specified, is taken from the
environment variable USER. The nick name, if not specified, is taken
from IRCNICK. The nick name cannot exceed 63 chars (which is way more
than what is currently accepted by most IRC servers).

</content>
</entry>
<entry>
<id>9ec61b4072285e36baeab8f1ac6d819f9445b56c</id>
<published>2012-03-17T21:37:15Z</published>
<updated>2012-03-17T21:37:15Z</updated>
<title>Fix uparse to deal explicitely with empty lines.</title>
<link rel="alternate" type="text/html" href="commit/9ec61b4072285e36baeab8f1ac6d819f9445b56c.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 9ec61b4072285e36baeab8f1ac6d819f9445b56c
parent 15ec7fd992fc9943740da3d90aec084e13b4392e
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sat, 17 Mar 2012 22:37:15 +0100

Fix uparse to deal explicitely with empty lines.

Uparse accessed undefined elements if the input line was empty. This was
harmless because the default branch of the switch led the control flow
to the right place, however it could appear a bit obscure. Adding an
extra test will not hurt performance and make the code easier to read.

</content>
</entry>
<entry>
<id>15ec7fd992fc9943740da3d90aec084e13b4392e</id>
<published>2012-03-14T23:42:39Z</published>
<updated>2012-03-14T23:42:39Z</updated>
<title>Zero all the hints before calling getaddrinfo.</title>
<link rel="alternate" type="text/html" href="commit/15ec7fd992fc9943740da3d90aec084e13b4392e.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 15ec7fd992fc9943740da3d90aec084e13b4392e
parent 3597152e7424b24233a60fe1b7492e8ee178d08f
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Thu, 15 Mar 2012 00:42:39 +0100

Zero all the hints before calling getaddrinfo.

Testing the program on NetBSD made getaddrinfo whine because all non
filled elements of the struct addrinfo given as hints must be zeros (or
null pointers). Except this point, irc.c seems to work like charm on
NetBSD.

</content>
</entry>
<entry>
<id>3597152e7424b24233a60fe1b7492e8ee178d08f</id>
<published>2012-03-14T23:18:31Z</published>
<updated>2012-03-14T23:18:31Z</updated>
<title>Removed a useless reminiscent from the past.</title>
<link rel="alternate" type="text/html" href="commit/3597152e7424b24233a60fe1b7492e8ee178d08f.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 3597152e7424b24233a60fe1b7492e8ee178d08f
parent 45c4c659970dee52d8dd373e548877ae453b690d
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Thu, 15 Mar 2012 00:18:31 +0100

Removed a useless reminiscent from the past.

</content>
</entry>
<entry>
<id>45c4c659970dee52d8dd373e548877ae453b690d</id>
<published>2012-03-14T23:03:24Z</published>
<updated>2012-03-14T23:03:24Z</updated>
<title>Cosmetic modifications.</title>
<link rel="alternate" type="text/html" href="commit/45c4c659970dee52d8dd373e548877ae453b690d.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 45c4c659970dee52d8dd373e548877ae453b690d
parent f8a2a7b155eef7c14cf0f08fb24cb04b46c70fa8
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Thu, 15 Mar 2012 00:03:24 +0100

Cosmetic modifications.

Fixed one panic message, they must start with an upper case letter and
end with a dot.

Removed spurious comments in tgetch.

Added ^D as a recognised command in tgetch, it has its usual behavior:
it deletes the letter under the cursor.

</content>
</entry>
<entry>
<id>f8a2a7b155eef7c14cf0f08fb24cb04b46c70fa8</id>
<published>2012-03-14T22:46:13Z</published>
<updated>2012-03-14T22:49:07Z</updated>
<title>Display joined channels in status bar.</title>
<link rel="alternate" type="text/html" href="commit/f8a2a7b155eef7c14cf0f08fb24cb04b46c70fa8.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit f8a2a7b155eef7c14cf0f08fb24cb04b46c70fa8
parent 43b2c32a6d4ddbb64edbd7428a7d0a425cab6e96
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Wed, 14 Mar 2012 23:46:13 +0100

Display joined channels in status bar.

The status bar was not useful, now it displays the list of joined
channels. The function tdrawbar will redraw the whole bar (no clever
refreshing here, it does not worth the complexity). Tdrawbar tries to
keep the current channel in the middle of the bar to maximize the
context on both sides.

</content>
</entry>
<entry>
<id>43b2c32a6d4ddbb64edbd7428a7d0a425cab6e96</id>
<published>2012-03-12T08:40:37Z</published>
<updated>2012-03-12T08:40:37Z</updated>
<title>Heavy surgery on tgetch.</title>
<link rel="alternate" type="text/html" href="commit/43b2c32a6d4ddbb64edbd7428a7d0a425cab6e96.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 43b2c32a6d4ddbb64edbd7428a7d0a425cab6e96
parent 110c0a8075a87cf1991233c158ad51fe69e48e2a
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Mon, 12 Mar 2012 09:40:37 +0100

Heavy surgery on tgetch.

The code layout used in the main switch was unified. The printer was re
written from scratch to handle long input lines. The code is supposed to
resist to terminal resizes (with some slight refresh problems).

</content>
</entry>
<entry>
<id>110c0a8075a87cf1991233c158ad51fe69e48e2a</id>
<published>2012-03-11T22:54:14Z</published>
<updated>2012-03-11T22:54:14Z</updated>
<title>Test the result of ioctl (TIOCGWINSZ).</title>
<link rel="alternate" type="text/html" href="commit/110c0a8075a87cf1991233c158ad51fe69e48e2a.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 110c0a8075a87cf1991233c158ad51fe69e48e2a
parent 7242e2cc4b68ca55086a26cb57139a9b29470bbf
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sun, 11 Mar 2012 23:54:14 +0100

Test the result of ioctl (TIOCGWINSZ).

</content>
</entry>
<entry>
<id>7242e2cc4b68ca55086a26cb57139a9b29470bbf</id>
<published>2012-03-11T22:46:50Z</published>
<updated>2012-03-11T22:49:54Z</updated>
<title>Cosmetic modifications.</title>
<link rel="alternate" type="text/html" href="commit/7242e2cc4b68ca55086a26cb57139a9b29470bbf.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 7242e2cc4b68ca55086a26cb57139a9b29470bbf
parent 61e93595f832ccc9a46428eaf398d776e482dfd2
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sun, 11 Mar 2012 23:46:50 +0100

Cosmetic modifications.

Tried to beautify the code by aligning some related code and renaming lb
in tgetch to l which is more consistent with the rest of the file.

In tgetch, the invariant changed from len&lt;=BufSz to len&lt;=BufSz-1, this
allows to trivially nul terminate the line being processed.

</content>
</entry>
<entry>
<id>61e93595f832ccc9a46428eaf398d776e482dfd2</id>
<published>2012-03-11T22:10:35Z</published>
<updated>2012-03-11T22:10:35Z</updated>
<title>Use ioctl to retreive screen&#39;s size in tresize.</title>
<link rel="alternate" type="text/html" href="commit/61e93595f832ccc9a46428eaf398d776e482dfd2.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 61e93595f832ccc9a46428eaf398d776e482dfd2
parent c5b6ac6afa188bd107bdbfb96500182447368b05
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sun, 11 Mar 2012 23:10:35 +0100

Use ioctl to retreive screen&#39;s size in tresize.

The curses (ncurses) library does not automatically get the new size of
the terminal, thus, we must rely on an ioctl to retreive it and inform
ncurses with a resizeterm call.

</content>
</entry>
<entry>
<id>c5b6ac6afa188bd107bdbfb96500182447368b05</id>
<published>2012-03-11T21:03:49Z</published>
<updated>2012-03-11T21:03:49Z</updated>
<title>Handle terminal resizes.</title>
<link rel="alternate" type="text/html" href="commit/c5b6ac6afa188bd107bdbfb96500182447368b05.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit c5b6ac6afa188bd107bdbfb96500182447368b05
parent 646d0a762d1536fca7c19518d1e30a269b57cba5
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sun, 11 Mar 2012 22:03:49 +0100

Handle terminal resizes.

The KEY_RESIZE feature of ncurses is not used since it is not possible
to detect if a KEY_RESIZE was queued by selecting on stdin. Hence, tinit
now installs a SIGWINCH handler which will set the winchg variable to 1.

I rely on the fact that select will be interrupted by the signal which
pops after a terminal resize to be able to redraw the screen
instantaneously.

tresize does all the job of resizing the three used curses windows.

</content>
</entry>
<entry>
<id>646d0a762d1536fca7c19518d1e30a269b57cba5</id>
<published>2012-03-10T16:13:54Z</published>
<updated>2012-03-10T16:13:54Z</updated>
<title>Fixed the &#39;r&#39; command.</title>
<link rel="alternate" type="text/html" href="commit/646d0a762d1536fca7c19518d1e30a269b57cba5.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 646d0a762d1536fca7c19518d1e30a269b57cba5
parent f87508a1f9fd98d217a8dbe07281835160a58116
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sat, 10 Mar 2012 17:13:54 +0100

Fixed the &#39;r&#39; command.

This command kept sending the &#39;r&#39; before the actual string we wanted to
send.

</content>
</entry>
<entry>
<id>f87508a1f9fd98d217a8dbe07281835160a58116</id>
<published>2012-03-10T16:01:15Z</published>
<updated>2012-03-10T16:01:15Z</updated>
<title>Factoring of pushf and pushm, plus minor changes.</title>
<link rel="alternate" type="text/html" href="commit/f87508a1f9fd98d217a8dbe07281835160a58116.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit f87508a1f9fd98d217a8dbe07281835160a58116
parent 9853570e09cd34fc5fd6a4a0c03055e5012920ec
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sat, 10 Mar 2012 17:01:15 +0100

Factoring of pushf and pushm, plus minor changes.

Pushm was no used in the current code, I inlined it in pushf to save
lines and factor logic. I removed the call for tredraw to avoid blinking
and only redrawn the last line.

Some minor changes were done:
* NOTICE, and motd are now handled by the scmd function.
* Tredraw was slightly modified to make use of the last line of scr.mw.
* The sz element of channels was moved from int to size_t.

</content>
</entry>
<entry>
<id>9853570e09cd34fc5fd6a4a0c03055e5012920ec</id>
<published>2012-03-10T12:23:07Z</published>
<updated>2012-03-10T12:23:07Z</updated>
<title>Initial import in Git.</title>
<link rel="alternate" type="text/html" href="commit/9853570e09cd34fc5fd6a4a0c03055e5012920ec.html" />
<author>
<name>Quentin Carbonneaux</name>
<email>qcarbonneaux@gmail.com</email>
</author>
<content>commit 9853570e09cd34fc5fd6a4a0c03055e5012920ec
Author: Quentin Carbonneaux &lt;qcarbonneaux@gmail.com&gt;
Date:   Sat, 10 Mar 2012 13:23:07 +0100

Initial import in Git.

</content>
</entry>
</feed>
