README
1) The need for a casefix type toolset
A) How many times have you been touch typing notes into your editor, and looked up and realized that your caps lock has been on for the whole section, and the quickest way to redo the incorrectly cased text is to re-type the whole section?
B) How many of database administrators know that the names in their database are all mis-cased? Every time a form letter must be sent out, either you must write a program to recase the names or needlessly displeasing customers who don't appreciate the false casting?
Obviously, a preprogrammed solution would save lots of peoples' time and effort and increase productivity. Any number of secretaries, typist and data entry personnel over the years would have given the programmer a hug, if the required tool was available at the time it was needed., or if not a hug, loyalty to tour app would have been created.
2) The rationale for a shared library solution
It is true that a casefix tool probably would not be needed every editing session, and having a casefix tool in every app would be wasteful of end user resources, however the need to have a casefix style tool is still real even if it isn't used too often. This is where a shared library really shines. When I say shared library, I do not mean an app specific library shared between different instances of the same app. That would indicate that the tools would be a feature either specific to your program's application or you hope to have such a tool set as an exclusive feature of your app. In either case, this is not realistic. It is just to wasteful of user resources to not have a library shared between all applicable apps. A casing toolset seems to be ideal for a shared library, a really shared library.
2) The casefix project
It consist of two main parts, libcasefix and the casefix command. libcasefix is a set of tools to edit, modify or adjust the casing of any character, group of alphanumeric characters or word, , any sentence or sentences, any text string, any char array, or any text stream (of any of the supported character set) according to 6 preconfigured modes or by use of a programmer or user supplied template, a custom mode.
libcasefix is ANSI C / ISO C90 compatible but also provides for even older C compilers.
libcasefix relies only on the standard C library and uses no extensions to the standard C library.
In other words, libcasefix is portable.
The heart of libcasefix is 7 streaming text case editing functions which are fast. Also, there are 3 functions that provide an easy to use interface to the 7 streaming functions for char arrays and char strings.
libcasefix is fairly easy to implement and can give your text handling app (gui or text mode) a feature that may not have previously been available, though the need for has always been there.
The casefix command is a WYAFIWYG style text casing editor program that can modify the text casing of a alphabetic character, alphanumeric group of characters (word), group of words, sentence or sentences, string, char array, or stream of words according to several user selectable modes including a custom mode.
The casefix command is a command line implementation of libcasefix and serves as one of the example programs for developers who wish to utilize libcasefix.
If you invoked casefix by one of its supported aliases, all options are the same except that no mode option is required.
Please feel free to join me in making it into the ultimate practical case editing toolset.
I live in the woods, and at this time, I only access the internet when I go to town. My access point is via a windows box with no ssh. I tried out the telnet which it had and the next time I went in to the local library, they had updated and telnet had been removed, and still no ssh. I have requested ssh, but that remains to be seen. Absolutely no version control system will be available. I'll be amazed if I can get them to install ssh. So I can only access my sourceforge directories via the web file manager interface provided by Sourceforge. For now, e-mail revised code to:
casefixproject@gmail.com
I will figure it out.
In any case, developers and app developer can get the accepted code and all other casefix project materials by downloading the devkit folder.
Thanks,
Jerry