windows-nt/Source/XPSP1/NT/sdktools/hsplit
2020-09-26 16:20:57 +08:00
..
hsfile.c Add source files 2020-09-26 16:20:57 +08:00
hsglobal.c Add source files 2020-09-26 16:20:57 +08:00
hsparse.c Add source files 2020-09-26 16:20:57 +08:00
hsplit.c Add source files 2020-09-26 16:20:57 +08:00
hsplit.h Add source files 2020-09-26 16:20:57 +08:00
hsplit.rc Add source files 2020-09-26 16:20:57 +08:00
hsutil.c Add source files 2020-09-26 16:20:57 +08:00
makefile Add source files 2020-09-26 16:20:57 +08:00
readme.txt Add source files 2020-09-26 16:20:57 +08:00
sources Add source files 2020-09-26 16:20:57 +08:00

Last Update: 09/17/96.

HSPLIT splits an input file in to two header files. The split is
 controlled by tags written in the input file.

Traling parameters that are not preceded by a switch are assumed to be
 input files. Multiple input files can be specifed. The -i switch can
 also be used to specify the input file.

The header (output) files are specified through the -o switch. The first
 one is the public header and the second one is the internal header.

A tag is a TagMarker plus a collection of subtags: like this:

<TagMarker>[begin/end][_public/internal/both][_subtag1[_subtag2]...][_if_str__comp_version | version]

The TagMarker and at least one other subtag are required to make up a valid
 tag. Spaces are allowed between the TagMarker and the first subtag. All
 other subtags are concatenated by "_" and no spaces are allowed between them.
The TagMarker must be specified in the proper case; subtags are not case
 sensitive.

TagMarker is ";" by  default. It can be changed by using the -c switch.
 Only the last tag in a line is processed. All others are ignored.
Any text between a valid tag and the end of the line is ignored.

Untagged lines are copied to the public header only.

begin/end mark a block of lines. Blocks can be nested. If no begin/end is
 specified, the tag only affects the line it's on. If one specified, it
 must be the first subtag after the TagMarker.

public/internal/both determine what header file the line/block should go to.
 If none of these is specified, the output goes to the public file only.

Subtags can be defined through the command line as follows:
 -ta subtag1 subtag2 ....   Process line/block
 -ti subtag1 subtag2 ....   Ignore  tag
 -ts subtag1 subtag2 ....   Skip  line/bloxk
Tags containing subtags specified through the -ta switch are parsed
 and processed. Tags containing subtags specifed through -ti are
 ignored; this is, the line/block is treated as untagged. Finally,
 lines/blocks containing tags specified throgh -ts are skipped; this is,
 the line/block is not written to any output file.

For compatibility with the old hsplit, several subtags are defined when
 using the -4, -p, -e or -n command swithces. These subtags are processed,
 ignored or skipped on a compatible way with the old hsplit.

For compatibility, tags containing undefined subtags are ignored. If the
 -u switch (for Unknown) is specifed, such tags are skipped.

The version subtag is a 3 digit hex number, like 400, 40A or 500. There is
 default version which can be changed through the -v switch. Tags containing
 version subtags greater than the default/-v version are skipped. If no
 version subtag is specified, the tag is processed according to the other
 subtags.

the _if_str_comp_version subtag is used to generate #ifdef(str comp version)
 #endif blocks/lines in the output file. if comp is not specified, it defaults
 to ">=". if str itself contains "_", it should enclosed in (), like this:
 if_(_foo_)_500 which generates #ifdef(_foo_ >= 500) - #endif.