== 2026-08-24 == === Compiling an orignal 1993 gopher client in 2026 === I was digging through the files at the Cyber Vanguard gopher site found a collection of code for various gopher clients, for various platforms. Of the Unix ones I found BBGopher[0] and downloaded the tarball to attempt to compile a working copy 33 years after it was written. And blow me... it works! Mostly. I did a few minor tweaks to some #DEFINE statements to suit the file paths etc. and it compiles - lots of warnings rush past up the screen as it goes, but nothing fatal. And I'm left with a workable Gopher Client for reading simple text-only gopher pages. After reading a text document it offers the option to save (or email) a copy. Saving works. I doubt emailing will - I don't have sendmail (or any other MTA). So far so good. The program has a "bookmarks" function - save the current site to a bookmark file. This doesn't work. Pressing "b" to bookmark gives an instant Segmentation Fault. Another thing that doesn't work is the behaviour with other file-types. IMG, BIN etc. are detected okay - they appear correctly on the rendered menu - but trying to select/download leads to some sort of error. The bookmark issue is intriguing and I think I should use it as a learning opportunity. Last year I tried to teach myself C. I got several books and worked through them, doing all the assignments, learning about pointers and string arrays, and structs and linked-lists and malloc and memory leaks... And I've fogotten it all already. I still have all the code I wrote doing the various exercises, so I can look back and refresh my memory. One thing that always prevents me really getting to grips with coding is having a worthwhile "real" project. It's all rather abstract and meaningless unless you have a useful outcome in mind, and it's not too far beyond your current level of understanding. Looking at the source code for BBGopher (it's a single .c file) I can see much that I recognise. And much that I don't. I think I'll try to "fix" it. To remove the "email" option and to sort out the Seg Fault and the problems with correctly handling other file types. I'll need to get my books out and my thinking cap on. **************** Update.... later the same day ***************** I fixed the Bookmark issue... missing #includes - and That allows bookmarks to be saved and retrieved. Then the issue with saving non-text files.... whenever I tried to save a type 9 (BIN) or type 5 (DOS) the prog. immediately seg faulted. This led me to dig into the way it works - and I found a missing variable declaration in the "GetFile()" function! char* type was all it took. Then I looked at the "unsupported" files - types that bbgopher wouldn't download. These were just type g (GIF) and type I (PIC) I tweaked the array that decides if a filetype is "supported" and added two more cases to the switch statement that decides what to do with a chosen selector. Then I got rid of the Mail function - commented out one function and removed a few other bits & pieces. Job Done. It's quite a nice little client. And it's period-correct for my trip back to 1993! I've saved a tar-ball with the working source[1] [0]: gopher://cyber.dabamos.de/1/gopher/clients/Unix/BBGopher/ [1]: gopher://g4slv.cloud/5/media/archive_files/bbgopher_2026.tar