All these programs are copyrighted © by Bob Crispen and are provided without charge under the terms of the GNU General Public License and other licenses as READMEware: In return for the software, you promise to read the documentation.
Files marked
contain an executable which will run in a
DOS shell (console window) under Windows 95, 98, 2000, ME, and NT with
no additional runtime apart from DLLs which come with Windows 95
(crtdll.dll and kernel32.dll). They are also known to run under the
Cygwin bash shell and may run on other shells and, if they're
recompiled from the sources (included), on other operating systems.
Note: if you download one of these programs and double-click on its icon in Explorer, nothing much will happen. I know, I shouldn't have to say that, but you'd be surprised at how many people have never seen a program that runs from the command line. Bring up a DOS window and type in the name of the program and its arguments and you'll be much happier.
How can you find out what the command line arguments and options are? Look in the C source code (which is also a good source for known bugs and hints) or simply type:
<executable name> -?
Files marked
are 32-bit Windows executables that run on
Windows 95 (etc.). Windows executables require a variety of runtime
DLLs, but you already have all those DLLs on your machine. None of
these programs use any features of those DLLs that didn't come with the
first release of Windows 95, so whatever versions you already have of
those DLLs should work fine. Basically, if your computer can download
one of my Windows programs, it has more than what it needs to run it.
These programs do not install any DLLs on your system or modify the Registry. Unzip them anywhere and run them.
And this time you can double-click on the icon to run the program. ;-) More seriously, some of these programs have optional command line arguments which can make them more useful. e.g., as context menu programs. Read the documentation to find out about them.
I've included the source code for all these programs. If you have no interest in compiling these programs or porting them to another system, just delete the source code and the programs will still run exactly the same. However, you may not distribute these programs to anyone else without including the source code and the files that describe the copyright and terms of license.
The source files for the command line tools are intended to be vanilla (mostly ANSI) C with no exotic system calls. I write them like they're Unix programs. They compile with Jacob Navia's lcc-Win32 and gcc on my system. Everyone who's tried to compile these programs on various Unix systems hasn't had to change a thing, but note that on more recent programs I sometimes yield to the temptation to use some C99 things like declaring loop counters in for statements. If you're compiling for a Microsoft Windows system, make sure you define MSDOS to the C compiler -- e.g.,
gcc -DMSDOS -o foo.exe foo.c
or you may get spurious carriage return (0x0d) characters in your output files.
The source code for my Windows programs compiles with Jacob Navia's lcc-Win32. They're pure Win32 C, with no C++ or MFC, and they should compile with gcc, MSVC++, and other Windows C compilers with little or no modification.
If you'd like to modify any of these programs or use any of this code in your own work, read the GPL to find out what you're permitted to do. Also look in the source code and documentation to see where I've used the work of others and what license terms apply to that code. If you wish to add an advanced feature that's only available in more recent versions of some DLLs, Microsoft has restrictions on how those DLLs may be distributed. Unless other licenses are specified, the GPL applies.
Win-GZ Why
is the only gzip program for Win9x/NT/2k a console app? Wouldn't it be
much nicer to have a real Windows application that lets you gzip and
gunzip files? I thought so, too. Here it is. Version 1.2 now built
with zlib 1.1.4 which fixes a security fault in earlier versions of
zlib. (50,435 bytes, zipped).
Note: The link above is to simtel, one of the oldest, most trusted download sites on the net, to save my ISP a little bandwidth. If you want to verify the file you get from simtel, here's the md5 checksum and PGP signature.
htmlcolor Ever
find yourself editing web pages by hand and needing to pick a color for
text or a background? You don't want to go to the trouble to bring up a
huge WYSIWYG web page editor just to pick one color, but you hate
typing and reloading over and over again till you get the color right.
Fire up this little utility instead. When you exit htmlcolor, the color
you picked will be on the clipboard, ready to paste into your file in
familiar HTML hex color form (e.g., "#ff0804"). Version 1.0
(14,769 bytes, zipped).
Some of these tools may give unexpected results if the VRML file you feed them is ungrammatical. Use Vorlon from Trapezium (free) to syntax-check your files before you use any of the tools that read VRML files.
3dmf2wrl
Converts Apple QuickDraw 3D Metafiles to VRML 97. Includes a Windows
executable and a Windows command line executable. The current version
converts TriMesh, DiffuseColor, CameraPlacement, and DirectionalLight
nodes, so this will give you basic geometry, color, lighting, and
viewpoints. You can take it from there. Special thanks to Steve
Chenney, who provided orient.c, the program that turns 3DMF directional
notation into VRML notation. Version 1.0.3 (89,723 bytes,
zipped).
gcc -DMSDOS -DCONSOLE_VERSION -c foo.c
for each of the source files or you'll get more errors than you can shake a stick at.
ColorPicker
This is a Windows 9x/NT/2k program that brings up a color palette, lets
you choose a color, then copies the VRML color values of the chosen
color to the clipboard, where you can paste it into your VRML file in
your favorite text editor. Version 1.0 (7386 bytes, zipped)
Wireframe
Some modelers have build-in utilities to turn IndexedFaceSets into
IndexedLineSets so you can make a wireframe of your object. But if you
haven't got one of those modelers, you were in for some tedious work.
No longer. Feed this program a Shape node containing an IndexedFaceSet,
and out comes another Shape node with an IndexedLineSet. Version 1.0
(7,858 bytes, zipped)
Pbm2wrl
Wouldn't it be nice to sketch an image using the airbrush in your
favorite graphics program and then turn it into an ElevationGrid? Well,
you can with pbm2wrl. A couple of notes: this works on greyscale images
only, and only allows 255 different height values. Paint Shop Pro will
convert a PBM file to 2 colors; you'll want to save as PGM or PPM
(ASCII or binary). If your graphics program won't save PGMs or PPMs,
download our program pnmtopix and use the
included giftopnm utility. Version 1.0 (14,958 bytes, zipped)
Vwaif Inspired
by Twiggy, Kate Moss, and the other "waif" models who weigh less than
your average 8-year-old, this program is serious about putting your
VRML files on a diet. Reduces the number of significant digits to any
number you specify, turns tiny numbers like -3e-07 generated by some
converters to zero (you specify how small), and removes commas and
whitespace. Version 1.1 (9,400 bytes, zipped)
Vpp VRML Pretty
Printer, Version 1.0. Indents your lines, adds a space around brackets
and braces (required by some VRML browsers), and makes files you've
reduced using vwaif easy to read and debug again. (9.574 bytes,
zipped)
Unnormal
Removes all Normal nodes and normalIndex fields from VRML 1.0 files and
all Normal subnodes and normal and normalIndex fields from VRML 97
files. (7,814 butes, zipped)
Pnmtopix
Sometimes a PixelTexture is just what you need. This tool generates
4-component PixelTextures from color PPM files and 2-component
PixelTextures from greyscale PGM files. You can specify a color to be
made transparent and a transparency for that color, plus a default
transparency for the other colors. What are PPM and PGM files? Your
favorite graphics program can probably save them, or your can use the
terrific giftopnm tool (also included) from the netpbm library. ppmhist
is also included, so you can see what colors are in your GIF, and we
include ppmtogif, to turn the PPM or PGM file back to a GIF, in case
you need to debug. This program was inspired by Cindy Ballreich, Queen
of Textures. (103,909 bytes, zipped)
Numpoints
Did you ever get a file from a repository and convert it to VRML only
to discover that the converter messed up and left some holes or
backwards triangles in it? It'd be easy to patch the holes if you just
knew the vertex numbers, but typically the holes occur on the most
unwieldy IndexedFaceSets. Feed this tool a complete Shape node, and it
will generate a VRML file that has the shape node, plus a bunch of
billboarded Text nodes that number the vertices. Take your text editor
and fill in the coordIndex values for the empty (or inverted)
triangles, and you're done. Also good for splitting IndexedFaceSets
into multiple objects. (9,608 bytes, zipped)
Dem2wrl has
been withdrawn. Richard Horne's 3DEM is so much
better that I didn't want people to struggle with an inferior tool. I'm
keeping the link active in case anybody needs anything in the source
code, but I don't recommend using dem2wrl.
Glut37 A
port to of GLUT (the OpenGL Utility Toolkit) for Jacob Navia's free LCC-Win32 compiler.
Includes glut.h, glut32.lib, and a simple test program. (236,223 bytes,
zipped)
Nd This may very
well be the first C program I ever wrote. It's a simple hex/ASCII dump
that I like a lot better than od. I feel stupid posting this here,
because anyone could write this in 5 minutes, but since every time I
set up an account on a new machine, I copy it over, what the heck.
(7,137 bytes, zipped)
Prettify This
program prettifies the capitalization of Ada source files. Unlike a
full-blown Ada prettyprinter, it does a couple of simple jobs, and it's
provided in source code form so you can make it do other things. As
supplied, it puts Ada keywords and attribute names in lowercase,
symbolic names in mixed case, and lets you define some common
abbreviations that, when they occur in symbolic names, are displayed in
a different case than the default (e.g., Loudness_In_dB instead of
Loudness_In_Db).
This is pretty much the standard of Ada Quality & Style, and since I deal with a lot of source code that's been produced by people with different (and IMHO much less readable) coding standards, it's a great convenience to run files through prettify. It also adds spaces (e.g., before and after colons), but only if they're needed, and removes superfluous spaces (e.g., after left parens and before semicolons). I also have it mapped to function keys in my editor, so I can prettify a line or paragraph as I edit. (11,797 bytes, zipped)
Prettify95
The same thing as prettify.c, but (a) improved to cover Ada 95 keywords
and attributes, (b) improved to surround arithmetical and logical
operators with spaces, and (c) supplied in Ada 95 source code form
only. (8,276 bytes, zipped)
Colalign I
map this to a function key in my text editor to align the colons in a
"paragraph" -- usually an Ada declarative region. Once again, it's
useful if you program Ada, and not much use otherwise. (7,868 bytes,
zipped)
Codelns Counts
(a) the number of lines, (b) the number of statements, and (c) the
number of comments in a list of Ada, C, C++, and FORTRAN source files.
Also counts the number of lines in scripts, and names but doesn't count
binary and "other" files (anything else it finds and can open, but
can't identify). You can feed this a number of filenames and it will
produce totals for each filetype and grand totals. The Ada line count
follows the AJPO algorithm, and the others are just semicolon and
newline counts with allowance made for quotes and comments. (54,100
bytes, zipped)
sed -f mail2html.sed foo.txt >foo.html
and it should do the most tedious stuff for you. If you knock off everything in the mail header except the "Subject:" and "From:" lines before you feed it to mail2html, it'll leave you a lot less stuff to clean up. Like most sed scripts, fooling around with this will give you hours and hours of fun. (1,325 bytes, zipped)
Foxynews A
Windows 9x/NT newsreader and attachment extractor. The focus of
foxynews is on low calories. You have to enter the name of the news
host and newsgroup yourself (the first time -- after that, you can
select it from a list), but in return, it doesn't clog up your disk
with huge, mostly useless files. It downloads articles, extracts
uuencoded and MIME attachments, and collects URLs from articles
posted on USENET, and you can grab all the articles or just the
articles that match a pattern. Very primitive, very beta, but small
and fast. Version 1.7.4 (123,386 bytes, zipped).
Monday, July 7, 2003