POSIX terminal handling
cbreak.c implements pause() for POSIX compiliant systems.
It removes line buffering from stdin. This is handy to get beginners off my
back.
getpass.c implements POSIX getpass(). Useful to show how to turn off terminal
echoing.
mask_read.c basically does sort of the same as getpass(), but prints asterisks
when characters are typed. It's a bit simpler, too, and just uses stdin and
stdout.
cbreak.c.
getpass.c.
mask_read.c.
Documents
I've also written several documents, all about various things.
A dungeon generation algorithm.
A maze generator.
A pathfinder.
A POSIX regular expression to match
email addresses.
No longer functioning, slightly unportable code
At one point in time I read something about building /really/ tiny executables
under Linux. The guy wrote his own ELF header, most parts overlapping, to save
space. Several times he noted that Linux was very lenient when it came to
executables.
This got me to thinking... and I'll spare you the brain cramps that resulted
in this horrible broth.
The notes are here.
Note that it /requires/ linux, and it /requires/ intel. It also may not run at all :P
Better unportable code
The above doesn't work any more. So I made a new one:
The horrible broth, and
The notes.
Stuff
After browsing through Bernstein's horrible QMail code, I felt I could do better
than his string functions. I started with strlen()... and outperformed Glibc's
function.
Get source here.
Assembler code is here.
Also, here's a way to convert a string of hexadecimal characters to numbers I've
used on occasion: Source is here.



