Brandon's Program Archive
The following programs are programs that I find useful and/or fun. I didn't
write all of them, though I have modified quite a number of them. I've
attributed things where I can, but if you feel that you wrote something
here and I didn't attribute you, feel free to mail me at
blong@fiction.net.
The Encapper 1.3
Written by
Brian Swetland,
this is a C program to create the link tree for a new program in an encap
distribution. For more information, see
Mark Roth's encap package manager,
epkg, and a whole lot of
information on it
here.
C Source
Webgrab 1.3
Another program originally written by
Brian Swetland. Brian and I
have since made a few changes to allow header editing, etc.
Webgrab is a command line browser, and is quite useful for testing servers
and writing scripts to snarf web content. The current version of webgrab is
also part of the
NCSA HTTPd 1.5.x
distribution.
C Source
Randroot 1.1
This program was initially written by
Scott Powers, and I modified it
and cleaned it up to make it useable on my system. This program uses
a configuration file and an external image viewer to change the background
image under X every so often. Includes documentation.
Gzipped Tar
GIFtrans 1.11.1
This program was written by Andreas Ley (ley@rz.uni-karlsruhe.de). It converts
any GIF to a GIF89a and allows for setting the transparent and background color,
changing colors, adding or removing comments, and anaylyzing GIF contents.
A must for the Un*x based Web Content Developer.
C Source
get_links.pl
This is a perl script which uses
webgrab to show and/or
download all of the links on a remote page. Useful for mirroring sites,
or downloading a directory of images.
Perl 4 Script
AA.pl 1.1 - Archie CGI Gateway
This is a perl script which I wrote to replace a shell script version. It
interfaces with the Un*x C-Archie command-line archie query program, and
creates a hyper-linked response in HTML. It can be seen in action
here.
Perl 4 Script
S3Mod 1.10 - A Portable s3m and mod Player
This was a program that originated as an x86 assembly project for
ECE 291 by my roommates
David Jeske and
Dan Marks while
I was a TA for the course. I decided to port it to Linux on a whim, and
they took over from there. Since then, I've helped with various issues,
including the reorganization of the most recent versions. See the
S3Mod Home Page for
more information.
Gzipped Tar -
HP-UX 9.05 Binary -
IRIX 5.3 Binary -
Linux 2.0.0 Binary
OSF/1 3.0 Binary -
Solaris 2.4 Binary
XBuffy - A multi folder biff for X
XBuffy was written by Bill Pemberton (wfp5p@virginia.edu) and was
based on Xmultibiff. It allows the user to specify multiple mail folders
which XBuffy will watch for incoming mail. The first patch below is
by David DeSimone (fox@convex.hp.com) and
fixes a couple of bugs and makes sure that XBuffy doesn't change the
mtime and atime of the folder so that XBuffy doesn't interfere with
other programs which check for new mail, such as the mailboxes (buffy) feature
of
Mutt. I wrote the second patch to expand XBuffy to
support MH and Maildir format folders. I don't actually have any MH
folders to test it on, so let me know if it doesn't work. This was
for XBuffy 3.2.1. Now, I've updated the patches for xbuffy 3.3, and
added a few more fixes from the Debian xbuffy distribution, including
autoconf configuration to replace the Imake configuration. Just grab
the new xbuffy Gzipped Tar, no need to apply any patches.
Note: You might want to check out GBuffy, a
rewrite of XBuffy using the GTK+ toolkit.
XBuffy 3.3 Patched Gzipped Tar -
XBuffy 3.3 Patched Readme
Access Time README -
Access Time PATCH
MH/Maildir Support README -
MH/Maildir Support PATCH
snprintf - A Portable, Partial Implementation
For security and stability reasons, one should use functions in C which
do checking of string lengths, yet most of the standard C functions
don't. Nowadays, most libc's have quite a few of the standard string
functions with length checking, but rarely do they have snprintf.
Another problem is that most library implementations of
sprintf() are
closely coupled with
printf() and
fprintf(). For
mutt, we needed a version of
snprintf() for
machines which didn't have one, and I modified one we found to be as
complete as we needed it. It doesn't support the ',' modifier, and it
doesn't support the %e and %g formating codes, but is fairly complete in
all other respects. If you have any suggestions or bugfixes, I'd be
interested in hearing about it. This code is in the public domain.
C Source -
Original
rtfreader - A portable application/ms-rtf parser
RTF is the Microsoft Richtext Format, a more portable, mostly-ASCII
formatting language that is exported by word processors like MS Word.
These files generally have the extension .rtf, but occassionally I've
seen them with .doc as well.
For these files, I use a parser from Microsoft, which is part of the RTF
format specification. I copied it out of the spec, and "ported" it to
Unix. The mailcap line is:
application/ms-rtf; rtfreader ; copiousoutput
Gzipped TAR
catdoc - A simple application/ms-word parser
Yes, this is for MS Word .doc files. Someone pointed out a
debian
package to me. This program does a fair job of stripping the garbage
from a MS Word document and presenting only the text. It is nowhere
near complete, but it should be good enough for handling those people
who seem to require using MS Word to send a sentence or paragraph of
pure text. The author has rewritten this from scratch, and the new
version can handle more Word files and also includes an Excel data
extractor. The homepage for this tool is located
here.
application/ms-word; catdoc '%s' ; copiousoutput
Gzipped TAR
aub - Assemble Usenet Binaries
Most newsreaders these days allow you to uudecode a multi-post image or
binary from the binary newsgroups, but this can be slow and tedious,
especially for large binaries or over a slow link. This is a perl
script which automates the process. The original is quite old, but I've
modified it for a number of things, including making it quite a bit
faster at selecting articles for downloading, and a 'killfile' type
option for killing the more obvious spam. Also, this version has a
first pass at decoding MIME/Base64 encoded images, and also NNTP
Authorization.
PERL Script