0.7: 16-bit MS-DOS builds are now compiled under IA16-GCC for greater reliability than the C compiler included in Visual C++ 1.5, thereby permitting more efficient code in the putVal() function. Consequently, DOS builds are now twice as large as they were previously. When performing a write operation, the file to be written to is now opened in binary mode, and compiler definitions determine whether to use CR LF or just LF for line breaks. A bug with the interactive prompt function where the last character would be cut off was also fixed. 0.6: The code behind Infsect has undergone a major restructuring; more garbage has been cut out, and some considerably more elegant code has taken its place. This should ensure the program does not take up as much space as it would have otherwise, less memory is wasted, and most, if not all potential segfaults are prevented. Nonetheless, usage of this program remains consistent with previous versions of Infsect. When printing a value to stdout, trailing comments are removed. Furthermore, several new functions have been added: the ability to add and remove comma-terminated subvalues on one field, and alter .REG scripts by forcing either version 4 (Windows 95/NT4/98) or 5 (Windows 2000 and later) in the header. These functions were mainly added to put Infsect in a position close to being ready for integration into a future release of Hierma - not that I really have plans to revive that project, but I do want to see how much faster it'll run with a compiled program replacing a Bash script. Be findful that there is around a hard 64KB limit when modifying files using the DOS build, since it first writes modifications to a memory buffer. If you need to modify larger files, use a 32-bit or 64-bit build. 0.5: Writes are much faster, thanks only to a slow and convoluted write function being ditched in favor of fprintf(). calloc() calls were also replaced with malloc(), as initializing memory allocations to all zeroes is a pure waste of CPU cycles. As long as the other string functions are doing null termination, everything should be fine, hah! 0.4: Added -l switch for listing all sections in a file, and allowed for printing a section just by using -s without any extra arguments. When requesting for user input with the -i switch, Infsect automatically surrounds the resulting value with quote marks when writing to a file if the user enters any spaces in the input. It's also possible to specify a limit of how many characters the user can input interactively using the -j switch. Note that if the default value is longer than the limit specified, the program will terminate. Some bugs were fixed, like a new section being created in the event the -d switch is used to specify a field and/or value for a nonexistent section - the program no longer does this. The method of overwriting a file has changed so that the new contents are buffered in memory before writing to a file, better ensuring that the file is modified and not deleted. If you are working with a very large file, make sure you have enough conventional memory. Additionally, Infsect's memory allocation is now much more adaptive to user input, eliminating a hard 128B/4K cap in most cases and saving additional memory for very small inputs. 0.3: Increased filename length limits to allow for entering longer paths to files, adjusted line break handling so it works right with both Unix (LF) and DOS (CRLF) styles. If a CRLF file is modified from Unix, CRLFs are converted to LFs, so be mindful to use the unix2dos command to convert them back to a format DOS and Windows can work with. -v switch was added, and version output now prints compile timestamp. Source code is now distributed in Unix line break format. 0.2: Total rewrite. 0.1: Initial "release", obsolete.