front | blog | photos | contact | projects

Source Codes by Daniel
Sources written by me, Daniel Stenberg, alone or together with others. They're all written in C. Use whatever you want, but telling me you're using my stuff would be greatly appriciated!
Directory "View And Pick!"
A MIME decoder for mails to plain text. Ignores all attachments etc that can't be made "sane". Understands base64, multipart/mixed, uuencoded, etc. Intended as a part in our mail => sms program.
A MIME mail to short text converter. Allows regex search/replace, conditional replaces, date/time awareness, output format configs and lots more.
Official Webpage
My object-oriented-styled generic config-file functions for your program. I made this to create a system for general config/data files, where the file format is hidden from the program and the config/data is hierarchic. Its hard to explain in a few words, if you need a generic config file engine, you might consider borrow something from this...!
A full *scanf() clone package. Features all sscanf() format flags and more.
Frexx Wrapper. This works as a word wrap filter. It makes sure the text sent in via stdin comes out nicely 'wrapped' at the specified column. It is (or at least has been) used by several mail programs to (re-)format mail, and for adding "quote-prefixes" to the left of all quoted lines.
Frexx Programming Language - an interpreting programming language very similar to C. It has been written to get used by programs that want to be 'scriptable' / controlable with a scripting language. This has been ported to more than 10 different OSes. (Unixes, Amiga, OS/2, Win32, OS-9, ...)
Official webpage!
An IRC bot. It offers loads of services for an IRC channel. TCP/IP- programming and client/server solutions for everyone ;) Been ported to a large amount of unixes.
A printf()-clone. Supports $<num>-parameters, arguments using different sizes, long long (in GNU) etc. No internal floating point support, the regular sprintf() is used for that.
My implementation of a splay tree. It is a very handy way to automatically sort nodes of a "linked list" when adding and removing nodes. (I.e to prevent the need for linear search when a particular item is later requested.)
A full memory handler (malloc, free, realloc and the whole story). Written to be able to replace the operating system's own handler. It uses the best-fit algorithm (with splay-sorted free blocks) and a separate block-handling for small blocks. The functions for small blocks can be (and already has been) used separately. It gave a fair performance boost of the pSOS operating system when applied.
Generic hash table functions. Insert data using a certain key, and get it back at a later time using the same key the fastest possible way. This is written to deal with LARGE amounts of data, and uses splay- sorted lists on each hash table entry.
curl and libcurl
A tiny program and library for client-side URL transfers. Understands HTTP, HTTPS, FTP, GOPHER, LDAP, DICT, TELNET. It handles binaries, full URLs, proxies, different ports and user/passwd in ftp-URLs. Later versions feature FTP upload, HTTP POST, SSL and more.
A very small program that shows todays week number according to the ISO 8601 standard. Converts to and from dates and week numbers.
Evaluates a mathematical (C-style) expression. A generic function with support for all C-operators including the unary ones, octal and hexadecial numbers, defined variables and unlimited nested parentheses and more.
My port of the unix command 'rdate' to win32. It sets the time of your PC to the same time a unix server has. Very practical within i.e Frontec where the unix machines are set against an atomic watch.
My tiny little implementation of a ? and *-supporting wildcard matching function.
A tiny source for some quick n' easy convertions to and from base64.
I've written this full blown, 100% ANSI C compliant preprocessor. It features a bunch of neat extensions that are handy to use, for both C and HTML processing!