A bit more restructuring of the program has been put in place to adapt to the IA16-GCC compiler, which this and all future builds of Infsect will be made with in mind. The user shouldn't notice too much of a difference, but thanks to the new compiler being used, the program appears to be a lot more stable than it did when I was building it with Visual C++ 1.5. The downside is that the program is twice as large as the last version, but it should still be small enough for any floppy disk regardless.
The Win32 build is still built with Visual C++ 4.1 for the sake of static linking, so it's still not necessary to load a Visual C++ runtime package in certain early versions of Windows out of the box. If it is possible for MinGW to dynamically link to an older version of the Visual C++ runtime library than 6.0, I would be glad to use that in the future. GCC is better than any Visual C++ compiler, new or old.
Also, a bug was fixed where if the default value was entered in an interactive prompt, the last character was cut off. Now, the complete default value should be put in place (if it is specified) when receiving an empty line after an input request.
This new version of Infsect has undergone major structural changes in order to debloat the essential functions of the program. Slightly less memory is occupied by the program, various potential crashes were fixed along the way, and less complicated methods were implemented in finding sections and fields to achieve the same results from before. Undergoing a little over a week in development, this has been the most difficult version of Infsect to program by far, but I think it was well worth it given I have a lot more confidence that it will not crumble down now.
Even with all the debloating, version 0.6's executables are still larger, but this is the result of several new major functions being added to the program. Comments are finally omitted when retrieving a field's value to console output, and it's now possible to manage .REG files easily from within Infsect itself; the syntax is nearly identical, apart from an added header indicating the registry editor version, which Infsect can change.
Perhaps the most important addition to Infsect, though, is the ability to add and remove subvalues in a field. Most people may not end up using it, but this function puts Infsect in a position closer to being ready to be implemented in a future release of Hierma to gain massive speed boosts. I do not actually plan to revive the Hierma project, I just want to see how much faster it runs with a compiled program taking the place of a Bash script; it ought to be a major deal for the Pentium II systems Hierma targeted. For more details on the new functions in this release, check the updated documentation below.
This version largely focuses on running faster; the last version was VERY slow to write files on XT machines due to a convoluted function. Hopefully this won't hang or segfault; I have tested it to be sure, but some of those functions are a bit cryptic... do they null terminate automatically, or do I do that myself? Oh geez, that's a way to instill confidence in usage of the program. Seems to be reliable in some of my applications so far.
As I've been using Infsect more frequently in the automation of various routines involving INI and INF files, it needs to grow more flexible and resilient. Starting with this version, one very significant change has been made to how Infsect modifies files: rather than creating a temporary scratch file, Infsect stores the write buffer directly in memory, and then dumps it over the existing file. This fixes the problem of some writes in MS-DOS failing completely.
Depending on the file size, this means Infsect may require more memory, but memory allocation has been reworked to compensate for this, so the program doesn't take up so many giant 128 byte or 4KB chunks. Plus, most of the files you'll probably be using this with will be well under 64KB in size, anyway.
This version also includes a number of new features, like being able to list every section in an INF file and listing the contents of an entire section to console output. It's also better at handling user input when run interactively; when Infsect is called with the -i switch and the user inputs a value with one or more spaces, Infsect surrounds the value in quote marks when writing to a file. This ensures the spaces will be included when the setup engine in Windows 9x reads the file in question. You can also use the -j switch to limit the number of characters allowed in interactive input.
As usual, a number of bugs have also been fixed with this version. I plan to add yet more features down the road to make this program yet more useful for batch programmers working with INI and INF files. Once it has everything I want in there, I may want to try incorporating it into the long dead Hierma project and see how much faster it actually runs.
This is a bugfix release, making the program more usable on Unix/Linux as well as in DOS/Win32. It also raises some arbitrary limits that the previous version of Infsect suffered from, particularly the file name length.
Note that if you use Infsect on a CRLF file in a Unix environment, CRLFs will be converted to LFs by this program, so remember to use unix2dos to convert them back to the native line break format used by DOS and Windows if you intend to use your INFs there.
Once again, Infsect is completely rewritten, this time with a modest DOS-first approach. The fundamental problem with the last version was that it was trying to do too much all at once right from the start, all for a larger thing that never took off. After being tested in both MS-DOS and Win32, Infsect 0.2 should be better suited as a standalone utility for certain routines. It promises less functionality than the last version, but hey, at least it works now.
Knowing that not very many people are going to end up using this as I previously imagined, I ditched the GPL for it and released every bit of it into the public domain, so it can be used and modified without any restrictions.