March 25, 2013 1 Comment
I have issued an update to Ini++ v1.5. It fixes a couple of memory leaks do with the undo stack. The memory leak applied even if the undo stack was disabled. For this reason it is important that every user update to the latest version.
In addition, a minor bug is fixed where the undo and redo stack size could be set to 128 layers. This would actually register as infinite. Now the properties panel will not allow any values greater than 127. If you previously choose 128 it will stay selected, so you ought to be aware of this.
There are still known bugs. I have been able to reproduce a crash with the encryption. Hopefully I’ll be able to fix this in future, but I do not have the tools available to do so quickly. I apologise for the instability. Thank you to HitmanN and XStar for sending me examples of these problems.
The new version can be downloaded here.
In addition, I wanted to float a new idea. Many people have asked for Ini++ to be ported to other platforms. This will not happen. Ini++ is a monster of an object with many, many features. One only has to look at the file size and options to realise this. Therefore it would be a lot of effort to port to any other platform.
There is a demand for a data storage object on other platforms though, and it seems the format of Ini++ is one that appeals to people. Therefore I propose a cut-down version of Ini++ be created and ported to every platform. This is obviously a fairly big project for me to undertake, and I’m not sure yet that I want to do this. But I wanted to ask people what features are important to them.
Some of the features that Ini++ support are:
- Built in features to save the file in specific directories
- Setting initial data
- Debugging tools, including a dialog that can be opened at runtime
- Case sensitive/insensitive options (including the ability to change it at runtime)
- Repeated groups and items via renaming
- The ordering of the file is preserved (but comments, etc. are not)
- Options to auto-save or not
- Searching features
- Sorting and reordering features
- Merging functions
- Half-baked ‘subgroups’
- Global data, including across sub-apps. (Is the latter even possible in other runtimes?)
- Hashed values
- Get/Set as text, CVS
- Listing groups and items
- ‘Perform calculation’ expressions that allows summary information to be easily extracted. Has anybody ever used that?
- Undo and redo stacks
- Escape characters
- Alphanum sorting that puts, say, “Hello 12″ before “Hello 3″
- Interaction with the chart object, array object
- Functions to get the ‘part’ of a string directly
- Lots of actions had custom dialog boxes in MMF
- Saving objects and global values directly
- Ability to allow/disallow empty groups, etc.
- ‘Current group’ set of features
Some extra features I was going to add were: Filtering of the object (so that it would changes what the object lists and so forth without actually changing the object), proper subgroups, saving to formats other than Ini files (in particular, making the whole thing work the same but write to the registry or via a server) and full preservation of white space, etc. Unicode support everywhere would be good, too. Encryption is memory was an idea too, but it is questionable how useful that is.
Which features are the most important? If people could tell me (on the Clickteam Forums) their top 5 or so features in order I would find it very useful. Remember, it would take too long to add every feature to every platform, so be conservative.