Memo Field

Terry tboldt@attglobal.net
Thu, 20 Jul 2000 10:40:48 -0400


I reported this 'bug' under 1.3.100, but was rather vague since I couldn't
remember the exact step to reproduce. The same 'bug' appears in 1.5.0 and the
following describe the exact steps I have followed to produce this same
behavior every time. Running Mandrake 7.01 (Air), gnucash 1.5.0 under KDE 1.1.2.

The behavior I believe to be a bug: Open a register for an account. Choose a
transaction, i.e., click on it. Duplicate the transaction. Highlight the memo
field, i.e., swipe the mouse pointer across it while holding down the mouse
button (this highlights the characters), press the "Delete" key to delete the
memo field contents. Type in new contents. Move the entry cursor to the amount
entry field (the right field in the cases I have tried - do not know if same
behavior exhibited with left field) edit the amount of the transaction. Press
the right mouse key to raise the options menu and 'record' the transaction.
Click on "Blank" icon to make the "blank" transaction the current transaction.
The Memo field in the duplicated transaction which was just edited has now
reverted to its original contents. Make the duplicated transaction the
'current' transaction to again - the new contents of the memo are magically
returned. Go back to the blank transaction and the memo field contents are
again displayed as the original contents. (I can repeat switching back and
forth and the edited contents are always displayed when the transaction is
'current' and the original contents whenever the transaction is not the current
transaction.

Now save the file. exit gnucash. Restart gnucash, open the register with the
transaction in question above. The memo field is displayed with its original
contents, make the transaction the current transaction and the edited contents
magically appear.

My guess - the memo field is stored as a pointer to the text. The pointer gets
passed to the display routine pointing to the original text string when the
transaction is not current. When the transaction is current, the correct
pointer is passed and the edited contents get displayed properly.

But that's only my guess based on knowing absolutely nothing about the gnucash
internals