                         libcasefix Programmer's Reference Guide

		FUNCTION: custom
		
		DEPENDS ON: the c standard lib

		SOURCE FILE: libcasefix.c

		LIBRARY FILES: libcasefix.so (shared library), libcasefix.a (static archive), or libcasefix.o (object file)
 
		HEADER FILE: libcasefix.h

		PROTOTYPE:

			int custom(FILE * inputstream, FILE * outputstream, char * templatestring)

		APROPOS USES: BiCapitalization, camelCasing character blocks (words) where non-last subword lengths are the same, as well as other custom uses

		DESCRIPTION:
	
			custom, for each character in every alphanumeric character group (word), received on the incoming stream, which is pointed to by FILE * inputstream, checks the character at the same position in the casing template string which is pointed to by char * templatestring, cases the character in the incoming word according to the template and outputs every character in the order received to a stream pointed at by FILE * outputstream. The function uses the following code to indicate how each character should be cased:

			 	U or u - character should be upper case
	 			L or l - character should be lower case
				     = - leave character unchanged
 
			So a template string, say "Uu=lL" would, for every word, capitalize the 1st and 2nd charters and lower cases the 4th and 5th character, and leave the 3rd character unchanged. All characters in a word thats position is past the end of the template string, are left unchanged. All non-alphanumeric characters are passed to the output stream unchanged and act as word seperaters.
	

		RETURN VALUES: 0 = no errors encounteres; all other values are error codes.
		
		OTHER NOTES:
		
			The function validates the template string by passing it to int valid_template_check(char * templatestring) before operating on the incoming stream. EINVAL is returned if the casing template string is invalid.
