* extrasrc/ItemPoolAlloc.c, extrasrc/ItemPoolFree.c: restored the former non-vector pool allocations to reduce the memory foot print a bit again now that #435 is fixed.
2 lines of code changed in 2 files:
* YAM_MA.c: changed the ARexx menu item help node to the new Wiki link. This closes #434.
1 lines of code changed in 1 file:
* mui/MainMailList.c: fixed a typo in function comparing two address book entries which could have caused an access to a NULL pointer in case one of the entries did not exist. This closes #429.
1 lines of code changed in 1 file:
* extrasrc/AllocSysObject.c: removed the memory munging in the debug build. There are far better tools to catch invalid memory accesses.
0 lines of code changed in 1 file:
* YAM_MA.c, mui/WriteWindow.c: removed some artificial references to a mail as it is going to be removed and freed anyway.
2 lines of code changed in 2 files:
* YAM_UT.c, mui/WriteWindow.c: defer dereferencing and freeing a replaced mail until it is really no longer in use to avoid accessing just freed memory.
5 lines of code changed in 2 files:
* MailList.c: added two new functions to control a mail's reference counter and automatically free a mail as soon as its reference counter becomes zero.
51 lines of code changed in 6 files:
* YAM_MA.c, mui/WriteWindow.c: artifically increase and decrease the mail's reference counter before it is moved to another folder to prevent it from being freed too early when one of its referencing mail nodes is freed. This refs #429 and refs #435.
31 lines of code changed in 3 files:
* YAM_WR.c, mui/WriteWindow.c: all header lines are encoded using the configured or dynamically set write charset. This finally makes it possible to compose proper UTF8 encoded mails and refs #9.
97 lines of code changed in 5 files:
* YAM_UT.c: erase the replaced mail's folder pointer in ReplaceMailInFolder(), too.
3 lines of code changed in 1 file:
* extrasrc/AllocSysObject.c: don't use the SET_FLAG() macro.
7 lines of code changed in 1 file:
* extrasrc/AllocSysObject.c, extrasrc/ItemPoolAlloc.c, extrasrc/ItemPoolFree.c: let the system handle the semaphore protection for ItemPools on MorphOS and AROS.
19 lines of code changed in 4 files:
* extrasrc/ItemPoolAlloc.c, extrasrc/ItemPoolFree.c: use Alloc/FreeVecPooled instead of the simple allocation functions.
2 lines of code changed in 2 files:
* mui/WriteWindow.c, YAM_MA.c, YAM_UT.c: erase the mail's folder pointer after removing it from a folder to avoid accessing this pointer after the mail has been freed. This closes #431.
16 lines of code changed in 3 files:
* tcp/pop3.c, MailTransferList.c: pass the mail pointer directly to CreateNewMailTransferNode() instead of setting it later in order to avoid memory leaks.
4 lines of code changed in 2 files:
* mui/WriteWindow.c: fixed a memory leak in case writing out a mail file failed for any reason.
4 lines of code changed in 1 file:
* YAM_WR.c: cleaned up the FreePartsList() function for better readability.
6 lines of code changed in 1 file:
* YAM.c, mui/MainFolderListtree.c: reworked the folder edit window disposing once again to be really bullet proof. This refs #433.
20 lines of code changed in 2 files:
* mui/YAMApplication.c: fixed the broken address cache saving. This refs #433.
1 lines of code changed in 1 file:
* mui/AddressBookListtree.c: removed an unused function.
0 lines of code changed in 1 file:
* MailImport.c: really fixed the former fix.
2 lines of code changed in 1 file:
* MailImport.c: fixed a shadowed variable.
0 lines of code changed in 1 file:
* mui/MainFolderListtree.c: don't try to close the folder edit window during OM_DISPOSE, but just close it if it exists. Pushing the dispose method might let YAM try to dispose the window twice later on. This closes #433.
6 lines of code changed in 1 file:
* MailTransferList.c: bump the mail's reference counter only once.
1 lines of code changed in 1 file:
* mui/ObjectList.c: don't push the disposing of removed objects but dispose them immediately.
4 lines of code changed in 1 file:
* YAM_RE.c: always try to find a suitable codeset when reading in mails, even for UTF8 encoded mails. Otherwise an UTF8 encoded mail will be converted to UTF8 a second time resulting in invalid UTF8 sequences.
17 lines of code changed in 1 file:
* YAM_RE.c: don't reset the "artificial name" information once it has been set.
1 lines of code changed in 1 file:
* mui/AttachmentRequestWindow.c: made a notification work by removing the erasing of the attribute.
0 lines of code changed in 1 file:
* mui/AttachmentRequestWindow.c: fixed a typo.
1 lines of code changed in 1 file:
* mui/Attachment.c: fixed a typo.
1 lines of code changed in 1 file:
* mui/Attachment.c: restored the former behaviour to generate a suitable file name now that the SuggestPartFileName() correctly respects artificial names.
9 lines of code changed in 1 file:
* mui/AttachmentRequestWindow.c: simplified the notification handling.
38 lines of code changed in 1 file:
* MailList.c, MailTransferList.c: always try to free a mail after decreasing its reference counter to avoid memory leaks.
5 lines of code changed in 2 files:
* AddressBook.c: fixed the wrong alias correction when editing old entries.
14 lines of code changed in 4 files:
* AddressBookEditUserPanel.c: always set a modified address for the user photo object to let it correctly resolve a gravatar.com user image.
2 lines of code changed in 1 file:
* YAM_RE.c: artificial MIME part names like "part 1.2" are now remembered as such and are no longer used when having to suggest suitable file names as they are lacking the typical extensions.
9 lines of code changed in 2 files:
* mui/UserPortraitGroup.c: don't use a never set address book entry but a user's address and photo instead. This closes #428.
31 lines of code changed in 2 files:
* mui/Attachment.c: use the true file name of a mail part instead of a generated one. This fixes the issues of browsers rejecting HTML parts to be displayed outside YAM.
9 lines of code changed in 2 files:
* mui/YAMApplication.c: restored the former restricted number of cached addresses.
33 lines of code changed in 1 file:
* MailTransferList.c: added missing increasing of the mail's reference counter to avoid a memory leak. Also removed an unused function.
2 lines of code changed in 2 files:
* src/AddressBook.c: restored the former behaviour of adding new entries at the bottom rather than at the top.
13 lines of code changed in 1 file:
* AddressBook.c, misc: completely reworked the address book handling. Before the address book was very tightly convoluted with the MUI GUI. This approach has the big disadvantage that a simple search for a person within the address book always resulted into lots of accessed to an NListtree object which makes things far slower than they need to be. Now the complete address book is separated from the GUI and a search can be performed much faster and independendly of any GUI related bottle necks.
The drawback is that the ARexx interface also made heavy use of the GUI as controling element of a data structure. Not everything could be reimplemented 100% compatible. So if you have some ARexx scripts dealing with YAM's address book please check them as intensively as possible to rule out any unwanted new inconsistencies.
4242 lines of code changed in 71 files:
* mui/SearchControlGroup.c: set the status cycle entries when the final address of the instance data is valid. Before the address of some temporary structrue was used which made MUI access invalid memory as soon as the config window was opened. This closes #426.
4 lines of code changed in 1 file:
* MailImport.c: added required mail duplication.
21 lines of code changed in 1 file:
* MailTransferList.c: removed a const qualifier.
2 lines of code changed in 2 files:
* YAM_mainFolder.h, MailTransferList.c, tcp/smtp.c: removed the mail reference pointer which was required for sending mails only and is now obsolete due to the reference counter which ensures that mails don't vanish by themself.
14 lines of code changed in 4 files:
* YAM_UT.c, mui/WriteWindow.c: simplified the replacing of mails in a folder.
50 lines of code changed in 3 files:
* MailTransferList.c: fixed another memory leak.
1 lines of code changed in 2 files:
* mui/SearchControlGroup.c, misc: use a new attribute to allow/forbid the usage of "Spam" as selectable status instead of accessing the configuration being edited directly as this might not exist. This closes #425.
16 lines of code changed in 3 files:
* MailList.c: allow NULL mail pointers in mail lists. This is required during composing new mails but needs special handing for the reference counter. This closes #424.
9 lines of code changed in 1 file:
* YAM_UT.c: modify the mail reference counter in ReplaceMailInFolder() as well.
6 lines of code changed in 1 file:
* YAM_FO.c, mui/MainFolderListtree.c: moved the listtree clearing outside the load function to ensure that no old tree nodes might be accessed while reloading the folder tree.
3 lines of code changed in 2 files:
* mui/MainFolderListtree.c: free the folder image only once. Trying to do this twice doesn't cause any harm but is unneeded overhead.
3 lines of code changed in 1 file:
* Config.c: fixed a shadowed variable.
3 lines of code changed in 1 file:
* MailTransferList.c: fixed yet another memory leak caused by not modified reference counters in the mail transfer list.
7 lines of code changed in 1 file:
* MailList.c, misc: fixed two memory leaks caused by the new reference counter. On the other hand this counter makes things much easier to handle, as we don't have to distinguish between temporary and static mail lists anymore.
13 lines of code changed in 5 files:
* YAM_MA.c: removed the never used return value of MA_MoveCopySingle().
12 lines of code changed in 1 file:
* MailList.c, misc: added a reference counter to each mail. This makes it possible move a mail to a different folder in concurrent processes while still accessing the same mail without accessing invalid or already freed memory. The last referencing instance will finally free the mail if requested. This finally closes #420.
106 lines of code changed in 14 files:
* YAM_FI.c: slightly changed the debug output during the filtering process.
4 lines of code changed in 1 file:
* mui/ScriptsConfigPage.c, Config.c: simplified the internal handling of script entries in the configuration.
88 lines of code changed in 6 files:
* mui/PlaceholderPopup.c: made notifications of the string contents work again.
1 lines of code changed in 1 file:
* misc: updated various files to reflect my new real name "Jens Maus". Same
quality, different name. A new era begins...
2 lines of code changed in 1 file:
* YAM.c: moved the validation of the config after loading the configured theme. This solves the problem when YAM is run for the very first time after an installation from scratch without any valid .config file. Opening the config window too early will leave this window without any graphics from the default theme otherwise. This refs #413.
3 lines of code changed in 1 file:
* mui/YAMApplication.c: corrected the method parameters of the MoveCopyMail method to fix a crash after sending mails.
7 lines of code changed in 2 files:
* mui/SearchControlGroup.c: pass the corresponding string object directly to the EditFile method.
20 lines of code changed in 1 file:
* mui/IdentitiesConfigPage.c, mui/ScriptsConfigPage.c, mui/TCPIPConfigPage.c: renamed some methods to make their purpose more clear.
84 lines of code changed in 3 files:
* YAM_FI.c, YAM_MA.c, misc: simplified the moving/copying of mails by omitting the additional folder pointer. Since each mail already carries a pointer to the folder it resides in it is quite senseless to specify the mail's source folder explicitly again. Furthermore this changes makes it possible to filter mails from different folders in one go as is it required after receiving mails and some of these mails have been moved from the Incoming folder to somewhere else by a script already (i.e. SpamFryer). This closes #420.
74 lines of code changed in 11 files:
* mui/FiltersConfigPage.c, mui/SearchControlGroup.c: make sure that all filter conditions are correctly saved when changing filters or config pages. This closes #423.
38 lines of code changed in 2 files:
* mui/FiltersConfigPage.c: changed the way to set up the notifications of new condition objects to ensure that modifications are really noticed.
14 lines of code changed in 1 file:
* mui/FiltersConfigPage.c, mui/SearchControlGroup.c: disable the spam related GUI objects in case the spam filter is disabled.
3 lines of code changed in 2 files:
* mui/FiltersConfigPage.c: renamed some methods to make their mode of operation more clear.
33 lines of code changed in 1 file:
* Config.c, mui/ConfigWindow.c, mui/SpamConfigPage.c: a poossible state change of the spam filter is now checked again upon using/saving the configuration instead of when changing pages.
285 lines of code changed in 4 files:
* Requesters.c, mui/SpamConfigPage.c: made the confirmation requester when deactivating the spam filter working again.
10 lines of code changed in 2 files:
* mui/ReplyForwardConfigPage.c: corrected a variable assignment which caused the alternative leave-taking text to be remain unchanged. This closes #422.
1 lines of code changed in 1 file:
* mui/FiltersConfigPage.c: disable the spam related GUI objects in case the spam filter is disabled.
5 lines of code changed in 1 file:
* mui/SpamConfigPage.c: disabled all GUI objects in case the spam filter is disabled. This closes #421.
7 lines of code changed in 1 file:
* mui/MimeTypePopup.c: replaced stricmp() by strcasecmp() to fix all AROS builds.
3 lines of code changed in 1 file:
* mui/ConfigWindow.c: don't pass CE as config structure to be filled by MUIM_ConfigPage_GUIToConfig/ConfigToGUI as the individual pages always use CE anyways.
5 lines of code changed in 1 file:
* mui/AddressBookListtree.c: added missing ENTER() statement.
2 lines of code changed in 1 file:
* YAM_UT.c: use the SafeIterateList() macro instead of iterating over some lists manually.
6 lines of code changed in 1 file:
* Config.c, mui/AddressBookConfigPage.c: use real flags instead of plain integers for the address book column mask.
3 lines of code changed in 2 files:
* mui/AddressBookListtree.c: fixed the missing tree column.
2 lines of code changed in 1 file:
* mui/MainFolderListtree.c: defer the disposing of the folder edit window until the notification has finished completely. Since the method to close the window is called synchronously from the notification handling the window must not be disposed immediately as this would "pull out the rug" from under the window's feet while it is still alive. But it is quite strange that only MUI 3.8 falls prey to this effect, while MUI 3.9 and MUI 4.0 seems to be immune. This closes #417.
5 lines of code changed in 1 file:
* YAM_FI.c: mails in the Trash folder are now excluded from the spam filter. This closes #419.
4 lines of code changed in 1 file:
* mui/YAMApplication.c: replace two identical methods by a single one.
11 lines of code changed in 6 files:
* mui/FolderEditWindow.c: made the DisposeRequest attribute OM_GETable to ensure that notifications are working properly.
25 lines of code changed in 2 files:
* mui/FolderEditWindow.c: make sure the ML support GUI elements are initially correctly disabled for folders without ML support. This refs #417.
3 lines of code changed in 1 file:
* mui/FolderEditWindow.c: deobfuscated some code passages a bit.
5 lines of code changed in 1 file:
* mui/FolderEditWindow.c: changing a folder's path will now save the global .folders file again to make the change persistent. This closes #418.
30 lines of code changed in 1 file:
* Config.c: added a NULL pointer check for a valid main window pointer. This refs #416.
1 lines of code changed in 1 file:
* mui/FiltersConfigPage.c: don't ghost inactive GUI elements in the constructor as this requires a valid application pointer. This really closes #416.
0 lines of code changed in 1 file:
* AddressBook.c: added a new module for handling address books without the need to use NListtree.mcc as the controlling instance.
1934 lines of code changed in 3 files:
* YAM_error.h: added a missing include statement.
2 lines of code changed in 1 file:
* mui/FolderRequestListtree.c: added a NULL pointer check before adding the global folder tree notification. This closes #416.
2 lines of code changed in 1 file:
- forward the result value of FindPerson() in AddressBookListtree
2 lines of code changed in 1 file:
* YAM_AB.c, mui/AddressBookWindow.c, misc: implemented some methods to replace certain old functions in the future.
248 lines of code changed in 20 files:
* mui, misc: renamed some of our mui classes to carry a more appropriate name
and also enforced a proper CamelCase for the class names as they weren't
quite consistent (e.g. Recipientstring vs. RecipientString).
6184 lines of code changed in 59 files:
* YAM_AB.c, mui/AddressBookWindow.c: implemented some methods to replace certain old functions in the future.
403 lines of code changed in 8 files:
* YAM_AB.c, mui/AddressBookWindow.c: added a tree object parameter to some functions to make them usable (in theory) from the new address book window class.
68 lines of code changed in 3 files: