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.
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.
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.
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.
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 |
9KB |
|
| Header file used only to compile miffed.c |
7KB |
|
| The single source of all MIFFEd library functions. |
106KB |
|
| The MIFFEd manual as saved by FrameMaker 5.5 |
273KB |
|
| The MIFFEd manual as saved by FrameMaker 6 |
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.
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. |
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. |
12KB |
|
| Read an ASCII file, convert to MIF for importing into a Frame document. Preserves ASCII tab alignment using Frame tabs. |
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. |
23KB |
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 |
54KB |
|
| Documentation (same) saved by Frame 6 |
50KB |
|
| Required template file - Frame 5 |
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. |
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. |
24KB |
|
| Read tables prepared by doccount, with your instructions on replacement, and convert all uses of old tag names to new ones. |
29KB |