Extract is a software management tool which allows the user to store
different versions of the same code or several related codes in one file.
Interleaving of routines allows the user to have code such that when one
version is updated, all versions are changed. Many capabilities of
C's preprocessor are emulated, but the code produced by extract is
much more readable. Extract also has some scripting abilities
not present in cpp, such as looping, if structures, and integer arithmetic.
The code developer keeps code in basefiles but gives
the extracted files to users. A successful use of extract will
result in files that no one can tell came from extract.
[User Guide (PDF)]
[User Guide (HTML)]
Extract v4.0.0 released 04/10/00, last modified 03/01/01.
Extract v4.0 mod history:
- 3/01/01: Corrected file inheritence error I introduced in last fix.
- 2/20/01: Corrected seg fault when -o refers to nonexistant directory
- 2/07/01: Added @(@) for escape sequence for @
Extract v3.1 last modified on 8/17/99:
- Fixed bug in sticky space for @multidef & @whiledef
Extract modified on 11/14/98, problems reported by Antoine:
- Fixed problem associated with use of -addkeys flag
- Fixed problem with @declare not freeing memory when sorting
Extract modified on 2/07/98:
- Added support for -langM, so @declare could be used in makefiles
- Fixed problem with @declare leaving extra whitespace on end of line
Extract modified on 1/28/98:
- Added @echo command
- Added -multidef for commandline extract
- Ensured that extracted files do not effect key state in file they
are extracted from
- Rewrote code for greater efficiency
Extract modified on 1/23/98:
- Added @addkeys and @killkeys commands
- Added sticky space (@^) to @multidef, @whiledef, and @declare
- Removed "" meaning one argument to @multidef and @whiledef
- Made error reporting print out entire stack of input files, rather
than just most recent input file
- Made it so extract does not warn you when it truncates a macro due
to user formatting
- Fixed bug in @undefall noticed by Andy: it only worked for lower
case macro handles
Click here to return to
my main page.