Video: C Programming on System 6 - Adding a GUI to diff(1)

In the previous episode I quickly ported OpenBSD's diff(1) but there wasn't any interface to select files or scroll through the output. I've since added a proper GUI with the ability to select files or folders, and in this episode I walk through the GUI and filesystem code and then add a proper Edit menu. I also make a formal release of the code and binary available for download.

Continue reading 156 words...

Video: C Programming on System 6 - Porting OpenBSD's diff(1)

I've wanted a simple revision control system on my Mac since starting development of my IMAP client. Porting a large system like Git or even CVS would be overkill (and very slow), but maybe something small like OpenBSD's RCS implementation would suffice. For now, just having a diff utility would be helpful so in this video I port the guts of OpenBSD's diff(1) and show it generating a unified diff between revisions of a C file.

Continue reading 203 words...

Video: C Programming on System 6 - Parsing RFC822 Dates

I wrote a utility function to parse RFC822 dates/times sent by the IMAP server, which then converts them to a UTC time. In this video, I hook it into the IMAP parser and add a resource string for the local timezone offset setting, so these UTC times can then be converted to a local time and displayed in the message list.

Continue reading 134 words...

Video: C Programming on System 6 - Intro

I've been writing an IMAP client for and on my Mac 512Ke over the past many weeks. Taking inspiration from Andreas Kling's excellent YouTube videos documenting his development of the Serenity operating system, I thought I'd start screencasting some of my work.

This video is the first of hopefully many and presents a quick introduction to System 6, HFS resource forks, THINK C 5.0, and a look at some of the progress of my IMAP client so far.

Continue reading 320 words...