MIFFEd Access

Copyright 1998 David E. Cortesi

In 1994 I wrote MIFFEd, a package of C functions with which you can read, manipulate, and generate document text in an Adobe FrameMaker MIF file.

Here is the MIFFEd overview, which tells you all about what MIFFEd is and does. That file also contains the License and Conditions of Use.

History of MIFFEd

Through 1997, I made MIFFEd available on the net, first through a Netcom account, later through a Silicon Graphics web page. Over that time, several dozen people (that I knew of) downloaded MIFFEd. However, nobody ever gave me any feedback on what they did with it. Perhaps they did nothing. On the bright side, nobody every complained about bugs in it!

I used MIFFEd to write several useful utilities that are still in use in the publications group at Silicon Graphics. These programs are among the demo suite below.

Using MIFFEd

In order to use MIFFEd, you must be adept at programming in C; and you must be familiar with Adobe's MIF file format, which is documented in one of the online reference manuals distributed with FrameMaker.

MIFFEd is written in ANSI C and is portable to any platform where ANSI C is supported. I am not providing any binaries here. You have to download the source and compile it. Then you can download the source of one or more demo programs and compile and test them to verify correct operation.

Getting MIFFEd

I provide these as single files because, since I don't know what platform you are working on, I don't know what kind of archive tool you use (tar, stuffit, or zip). In order to download one of these files, use your browser's ability to "Save this link as...". In Netscape, do this by bringing up a popup menu over a link. For UNIX, right-click on the name of a file; for Mac, hold down the mouse button over a name.

Get the Library and Documentation

You need the following files in order to use MIFFEd. The Frame documents are binary files; download only the one you need (Frame 5.5 or 6).
Description Link Size
Header file used by client programs to access MIFFEd functions

miffed.h

9KB

Header file used only to compile miffed.c

mifmain.h

7KB

The single source of all MIFFEd library functions.

miffed.c

106KB

The MIFFEd manual as saved by FrameMaker 5.5

miffedoc.fm5

273KB

The MIFFEd manual as saved by FrameMaker 6

miffedoc.fm6

273KB

Download miffed.h, mifmain.h, and miffed.c. Do not attempt to read miffed.c unless you have a lot of time on your hands. Read the documentation file instead! Compile miffed.c to produce an object file, miffed. This object file is a library containing the implementation of the functions documented in the manual.

Get the Simple Demo Programs

Now download one or more of the demo programs. Each is a single-module C program that includes miffed.h and standard header files. Compile each and include the library miffed.
Description Link Size
Minimal program reads MIF from stdin, writes it to stdout, dumps program statistics afterward. Use for test/debug.

tfilt.c

1KB

Extract the text of a Frame document and dump it, showing the use of fonts, frames, and tables interspersed in the text. Notes on extending/reusing the code in the source file.

dumpmif.c

12KB

Read an ASCII file, convert to MIF for importing into a Frame document. Preserves ASCII tab alignment using Frame tabs.

atom.c

14KB

Parses the Font catalog of a document and writes Frame tables to display the usage of font attributes. You can extend the program to display different catalogs and attributes.

catable.c

23KB

Get the Docwasher Suite

Finally, if you want to see what can be done with MIFFEd, get the Docwasher suite:
Description Link Size
Documentation of the suite saved by Frame 5

docwash.fm5

54KB

Documentation (same) saved by Frame 6

docwash.fm6

50KB

Required template file - Frame 5

MIFFEDTP.fm5

12KB

Required template file - Frame 6 MIFFEDTP.fm6

12KB

Read a MIF file, write extensive tables documenting the contents of the catalogs of styles, fonts, colors, variables, etc, etc. This is a grown-up version of catable.c.

docalyze.c

30KB

Read one or more MIF files, write tables that tally the exact use of all colors, styles, variables, xrefs, table types, conditions, including uncataloged ones.

doccount.c

24KB

Read tables prepared by doccount, with your instructions on replacement, and convert all uses of old tag names to new ones.

docwash.c

29KB