ipqtags (Sat Oct 25 2014 01:31:01)

ipqtags

This program is used to mangle Quark and/or Xtags.

It scans its input directory and each file is processed according to a
parameter file specified either as the default or as the DY: FipHdr field.

There is also a question of where to send the output file as this, by default,
is put in spool/2go for IPWHEEL to distribute. So it needs a Destination(s) or
DU FipHdr field. This is added by either :
	- It there is a DX FipHdr field in the input file, that is used.
	- If not, the keyword 'dest' is used in the parameter file.
	- If that is not specified either, it is sent to 'woops' the Intercept queue. 
	- You may also specify it from the incoming data using the 'fiphdr' keyword.
		In this case the contents of DX, 'dest' or 'woops' will be the default if
there is no data.

The parameter file in tables/setup defaults to FORMAT and has the keywords:

	style: (name)	(sub keywords describing that style)
		subkeywords are :
			fiphdr:XX
			fiphdr:AA	dup:
			fiphdr:AB	dup:+
				The data with this style is also added as a FipHdr field.
				The 'dup' keyword allows for the data of multiple styles 
				all with the same FipHdr field. Any chr specified for 'dup'
				is used as the separator - space is the default.
			start:"n-- Before --n"
				Data (in FipSeq) to add when the style first occurs.
				Double quote for spaces.
			end:<e>
				Data (in FipSeq) to add when the next style occurs.
			convertfield:	upper/lower/zapspcextra/zapspc
			stripfromdata:	If FipHdr is also specified for this field - strip from the
op of the data

		Where there are many style all starting with the same name, use a wildcard
'=' to denote all following.
		A single wildcard '=' can also be used Before any text for embedded names.
			eg	style:"= kop="	fiphdr:AH	dup:73
			everything with SPACE 'kop' stuff into the FipHdr field AH
		There can be one and only style lines for a single style.
		Name is case-insensitive.
		Note that the Name can have embedded spaces - so put dbl quotes around the
name.

		Styles which are labeled in the data but are not specified in the parameter
file are logged and ignored.
		Rows with no style labeled are assumed to be in the same style as the
previous row.
		eg :
			style:"Headline="	fiphdr:AA	dup:73	stripfromdata:
			style:"Shares Head="	fiphdr:AA	dup:73
			style:"Reverse="	fiphdr:AA	dup:73

			style:"Caption="	fiphdr:AE	dup:+

			style:"Shares Price="	start:<table>	end:</table>

	zapstyle: Nameof Style to ignore
			zapstyle:"Story Notes"
	pifont:(Font name)
			Zaps all characters in this font if specified OUTSIDE a Style
	pichr (chr)	font:(FontName)	replace:(replacment string)
			pichr:35	font"Zapf Dingbats"	replace:(bullet)
			Zaps (or replaces) certain characters in this font if specified OUTSIDE a
Style

	tag:(string)	data:(replacement string)
		Replace all occurences of any tagged string - such as special chrs - with the
replacement string.
		If the Tag is NOT specified it is stripped except for Chrs specified as
		decimal numbers which are translated into their correct chr.
			eg:
				<l> will be stripped if not specified.
				<#124> will be converted to the chr '|'.
			tag:-	data:-
			tag:@	data:@
			Note that the 'string' is NOT FipSeq, so only one '' is required.
	zaptag:(string)
		Zap this tag and ALL data until next occurance.
		Use this the remove all data in a particular mode which may be used as
		a Comment mode.
		zaptag:/

Other keywords :

	keepfiphdr:	Normally the FipHdr of the incoming file is ignored unless
recreated with 'fiphdr'. Use this to presere the entire FipHdr of the input
file and stickon the top of the output.
	nofiphdr:	do NOT add a FipHdr to the output file. Any new FipHdr keywords are
			added without the tilde NL top and bottom.
	zapfiphdrfld:	Zap/delete this fiphdr field
			This is done to the incoming FipHdr BEFORE any extra fields are added.
			zapfiphdrfld:DU
			zapfiphdrfld:DX
	fiphdr:(2-letter code)	(optional FipSeq)
			Add a FipHdr with optional data

	preservetags:   Preserve any other tags. Default is to strip all tags.

	dest: (one or more Fip Destinations separated by space or '+')
			This can be overridden by the DX: FipHdr field. Note that all
			destinations MUST be in the tables/sys/USERS file. As per normal
			case is important, so ZAPME and zapme are 2 different destinations.
			eg.	dest:logcopy+outquark.
	filename: (FipSeq)	New filename for the output file name.
	overwrite:	Where 'filename' has been specified, if there is already a file
			with that name in the output queue, it is deleted first.
	before: (FipSeq)	String to parse and add at the top of the file.
	after: (FipSeq)		String to parse and add at the end of the file.
	beffile: (Path/filename)	Contents of a file in FipSeq to parse and add at the
					top of the file (after 'before')
	aftfile: (Path/filename)	Contents of a file in FipSeq to parse and add at the
					bottom of the file (before 'after')
	number:octal|dec|hex	In FipSeq, make all escaped numbers Octal, Dec or Hex.
				default is octal
	extralocale: (2chr combinations)
			For changing uppercase to lower and vice versa, we can add to the normal
locale
			by specifying a series of 2 letters which the lower then the upper.
			The lowercase chr is 1st then the upper, then a separator or space.
			eg	extralocale:aA,bB,cC,dD,212232,213237
			Normal a-z/A-Z are by default : in the example above they are included
			to give an idea of syntax

	chr:(octal/dec/hex number):(FipSeq string)
		Replace this single character with the string
		This can be a printable chr or an escaped number. The number is
		octal/dec/hex depending on the preceding 'number' keyword (if any).
		eg	chr:313:(pound)	chr:<:&lt;
		Note that ALL data is changed INCLUDING the contents of 'before' etc.
	
Input parameters (all optional) are :
Either 
	-1 : filename for a single shot		default: spooled
or	-i : spooled input queue to scan	default: spool/2qtags

	-o : output queue 			default: spool/2go
	-d : done queue for original raw data	default: none-input deleted
	-t : scan time for the directory	default: 1 sec
	-w : file wait time for files arriving	default: none
		across a network (for NFS, make about 10 secs)
	-l : log every new file pls		default: do NOT log
	-S : Splitter string for files which need
		to be split beforehand		default:none
		Use this for files like Atex Prestige Library extracts
		which are single files containing many items.
		These are split into a queue which is zapped afterwards.
	-z : name of the default parameter file	default: tables/setup/QTAGS
	-v : print version no and exit

**************** Notes ***********************

**** NULs (characters of binary zero) are stripped from the output file.
	So a parameter like the following will have no effect at all !
		tag:ds	data:00

**** Current Limitations are :
	No more than 2000 tags may be specified.


(copyright) 2014 and previous years FingerPost Ltd.