NoteKeeper 0.9.6 (build 20081213) has now been released.
- Added quick-select keys for tree and bookmarks list
- Better tab support
- Leave tree in more intuitive state after dropping files.
- Minidumps should now contain more data
- Correct broken import routine – handle PLTextException
- Remove beep on opening node with keyboard + removed some dead code
- Workaround for crash in CWinApp::~CWinApp
This is mainly a bug fix and tweak release, so there are no major new features. I think the biggest improvement is the keyboard support for tabbing from the tree to the editor and the Alt+1 and Alt+2 for showing and focusing on the main and bookmark trees.
The biggest bug fix is in the import routine, which was broken by the 0.9.5 release. After adding the new minidump support (see below), I confidently went through the application removing all the nasty catch(…) blocks. However it appears I was a bit overzealous; the import routine made use of the catch all semantics to catch a PLTextException object thrown by the PaintLib library when it doesn’t recognize imported data as an image. The result was an ugly uncaught exception, so NoteKeeper crashed and you couldn’t import anything. Sorry.
A good improvement for keyboard users is the removal of the dull beep sound whenever you pressed the return key to open a node in the tree. I was writing some documents in NoteKeeper and this kept annoying me, so now it is gone.
Debugging / Crash Investigation
The previous release was the first to include the automatic generation of ‘minidump’ files whenever NoteKeeper crashes. A minidump file records valuable information about the state of the application at the precise moment it crashed, giving me a much better chance of figuring out what went wrong.
This has now been used in anger with two users providing minidumps (thanks guys!). Neither crash was easy to debug; the first seemed to happen when the Windows Rich Edit control failed to parse some RTF data.
Unfortunately the minidump didn’t contain enough data to tell me what it was trying to parse at the time, so I don’t know whether it was Rich Edit control or NoteKeeper that was at fault.
The second minidump revealed a crash in CWinApp::~CWinApp as NoteKeeper was exiting. I couldn’t find an obvious culprit, so have added a workaround that might stop it from happening. I suspect it might be a case of stack corruption, but again there wasn’t enough information in the minidump to fully inspect all the data on the stack.
For this release I have increased the amount of information that will be recorded in the minidump file so if it does happen again, I might have a better chance of figuring out what went wrong.
Finally let me just say thanks to everyone who has helped out with testing and by sending me crash information or comments. As ever, I love to hear from all you NoteKeeper users out there. If you have any problems with it, let me know. If you don’t have any problems, you can still drop me a line and let me know what you’re using NoteKeeper for. I look forward to hearing from you!