* locale/hungarian.ct: updated hungarian translation kindly provided by "gmiki".
2 lines of code changed in 2 files:
* extrasrc/strcasestr.c: removed the initial NULL check to match the common implementation.
16 lines of code changed in 1 file:
* UserIdentity.c: creating a new user identity must know the configuration to take the default SMTP server and default signature from. Otherwise certain code passages might operate on invalid pointers from a no longer existing configration structure.
7 lines of code changed in 5 files:
* mui/WriteWindow.c: in case quoted-printable has been excluded as possible encoding for an attachment because of binary or unprinable characters within the attachment file it was possible that it was chosen nevertheless again if the ratio between the number of unsafe and total characters was below a certain threshold. This could have malformed the attachment as the decoding it again would not have produced the same file again. Now base64 is the ultimate encoding if all other encodings have been excluded before.
11 lines of code changed in 1 file:
* mui/FilterChooser.c, mui/IdentityChooser.c, mui/MailServerChooser.c: added a workaround for a bug in MUI4 of MorphOS which occurs when no entries are available for selection. MorphOS uses a local and non-static variable as replacement in this case, which of course ceased to live as soon as the object's constructor is left. As consequence random memory is accessed.
92 lines of code changed in 3 files:
* YAM_FI.c: added some debug output before the actual import starts.
2 lines of code changed in 1 file:
* YAM_CO.c: import external filters only if the name is not empty.
1 lines of code changed in 1 file:
* YAM_WR.c: added a const keyword.
1 lines of code changed in 1 file:
* YAM_WR.c: slightly optimized the duplicate person check when adding further recipients.
1 lines of code changed in 1 file:
* Debug.c: added a NULL pointer check before checking debug modules and debug files. The implementation of strcasestr() on certain systems seems to be missing this check internally and return a non-NULL pointer even if one of the parameters is NULL.
2 lines of code changed in 1 file:
* Debug.c: added the active debug files to the output.
1 lines of code changed in 1 file:
* Debug.c: print out the contents of ENV:yamdebug before parsing it.
2 lines of code changed in 1 file:
* YAM_RE.c: changed some common and harmless errors from the base64 and quoted-printable decoding process into a warning.
6 lines of code changed in 1 file:
* mime/base64.c: fixed a NULL pointer access in case the decoding process was aborted early due to invalid characters. This closes #341.
41 lines of code changed in 1 file:
* YAM_COs.c: fixed a warning.
2 lines of code changed in 1 file:
* YAM_COg.c: simplified the MDN notification setup.
2 lines of code changed in 1 file:
* YAM_COs.c: added the usual ENTER()/RETURN() calls to the MapTZ() function.
18 lines of code changed in 1 file:
* mime/base64.c: fixed a typo.
1 lines of code changed in 1 file:
* mime/base64.c: fixed a memory leak.
3 lines of code changed in 1 file:
* mime/uucode.c: added missing opening brace.
1 lines of code changed in 1 file:
* mime/all, YAM_RE.c: check the codeset's name to be non-NULL before comparing it.
54 lines of code changed in 4 files:
* mime/base64.c: removed a senseless check for LF conversion.
1 lines of code changed in 1 file:
* mime/base64.c: added an additional NULL pointer check when comparing a codeset's name.
14 lines of code changed in 1 file:
* YAM_WR.c: centralized the NULL pointer checks when composing a mail in the called functions instead of the calling point.
26 lines of code changed in 1 file:
* Threads.c: added another check if the inner loop is to be exited to avoid accessing the just freed command message port.
4 lines of code changed in 1 file:
* YAM_WR.c: added the missing CC addresses when replying to all recipients. This closes #339.
2 lines of code changed in 1 file:
* Threads.c: reworked the thread framework to handle the startup message separately and to allocate a separate command message port. This should solve the issues on MorphOS when redirecting the debug output to stdout which could interfere with communication of the C library via pr_MsgPort.
116 lines of code changed in 1 file:
* UserIdentity.c: compare signature IDs instead of signature pointers.
1 lines of code changed in 1 file:
* YAM_COs.c, YAM_UT.c: added a new function to sort the elements of an Exec list according to their order within in NList object. This makes the update process of a modified configuration lots easier as the algorithmic approach is the exactly same every time.
44 lines of code changed in 3 files:
* YAM_COs.c: added missing variable initialization.
1 lines of code changed in 1 file:
* YAM_COs.c: use the same algorithmic approach for all lists when having to resort them.
17 lines of code changed in 1 file:
* YAM_CO.c: copying the configuration must make sure that all embedded pointers are rally pointing to something within the same configuration structure and not to the source configuration. This was not true for the signature nodes and was most probably the reason why the signature setting of all identities was reset back to "no signature" from time to time.
28 lines of code changed in 1 file:
* mui/FilterChooser.c: make sure to always return a valid name pointer, even if no external filter files were found. This closes #337.
13 lines of code changed in 1 file:
* mui/FilterChooser.c: fixed a warning for certain platforms.
2 lines of code changed in 1 file:
* Thread.c: removed superflous LF from debug message.
1 lines of code changed in 1 file:
* Threads.c: use WaitPort() instead of Wait() since we are waiting for messages on a single port only.
4 lines of code changed in 1 file:
* Threads.c: added some comments.
3 lines of code changed in 1 file:
* Threads.c: in case a thread is woken up from its Wait() call all pending messages will now be handled instead of just the first one and then immediately falling back into another Wait(). If more than one message has been sent to the thread this may have caused a deadlock before, because the signal that Wait() is waiting for is triggered just once.
3 lines of code changed in 1 file:
* tcp/ssl.c: fixed a typo.
2 lines of code changed in 1 file:
* tcp/ssl.c: show the values of the passed parameters in the crosscallable functions to ensure they are in the correct order.
6 lines of code changed in 1 file:
* YAM.c: moved InitThreads() before the CheckMCC() calls because in case of
a missing mcc this function will raise an error via MUI_Request() which
in turn will use IsMainThread() and thus needs a working thread interface.
4 lines of code changed in 1 file:
* tcp/ssl.c: declared the two verification callback functions as crosscall functions as MorphOS has no native AmiSSL and eventually must call native PPC code from the emulated 68k AmiSSL code.
6 lines of code changed in 1 file:
* FileInfo.c: added missing #include.
3 lines of code changed in 1 file:
* tcp/ssl.c: added some more debug output to the SSL stuff to track down #336.
10 lines of code changed in 1 file:
* FileInfo.c, YAM_ER.c: added some debug output.
9 lines of code changed in 2 files:
* MUIObjects.c: added an error message in case the obtained string pointer is NULL.
6 lines of code changed in 1 file:
* MUIObjects.c: swapped the implementation of simple integer based and string based functions. Integer based functions are macros now and string based functions are true functions now as these require NULL pointer checks which integer based function don't need.
32 lines of code changed in 2 files:
* tcp/Connection.c: added a missing definition for the AROS build.
4 lines of code changed in 1 file:
* tcp/Connection.c: fixed a warning.
1 lines of code changed in 1 file:
* mui/ClassesExtra.h: added some definitions to fix the broken AROS build.
6 lines of code changed in 1 file:
* Debug.h: fixed build where GCC2 is used so that no _Pragma() call is used to
warn that a kprintf()/printf() function is still in use. Now ((void)0) is
used instead. Also some header includes have to be moved so that compilation
does not break as it did for OS3 and the MOS builds.
14 lines of code changed in 5 files:
* mui/GenericRequestWindow.c: enhanced the requester window to let the user navigate through the buttons using the cursor keys.
47 lines of code changed in 1 file:
* Debug.h: removed the warning when using printf() in the non-debug build again as it completely breaks the AmigaOS3 non-debug build.
0 lines of code changed in 1 file:
* tcp/Connection.c: instead of using printf(), the TCP debug output will now
be printed via fprintf() on stderr.
* Debug.h: implemented a check for forgotten printf() calls in YAM. Now YAM
will throw a compiler warning once it recognizes printf() function calls
when being compiled in non-debug mode.
7 lines of code changed in 3 files:
* YAM_UT.c, mui/PreselectionWindow.c: renamed the preselection layout variable as it affects the list only and not the complete window.
12 lines of code changed in 3 files:
* mui/Base64Dataspace.c: fixed the completely wrong creation of the final base64 encoded string. The length and ID values were contained twice before.
8 lines of code changed in 1 file:
* YAM_UT.c: fixed an aliasing warning.
40 lines of code changed in 1 file:
* YAM_ER.c: fixed a crash when trying to open the error window from within a thread.
5 lines of code changed in 1 file:
* YAM_UT.c: removed printf() line.
0 lines of code changed in 1 file:
* YAM_UT.c: added the missing commas in the layout template.
11 lines of code changed in 1 file:
* YAM_UT.c: added a bit of error checking when parsing the layout string.
23 lines of code changed in 1 file:
* YAM_UT.c: simplified the default value handling even more.
2 lines of code changed in 1 file:
* YAM_UT.c, mui/PreselectionWindow.c: simplified the usage of encoded empty strings and old style weight strings.
41 lines of code changed in 2 files:
* mui/Base64Dataspace.c: added an exported definition of an encoded empty string.
5 lines of code changed in 1 file:
* YAM_UT.c, mui/Base64Dataspace.c, mui/PreselectionWindow.c: fixed the inconsistent usage of default encoded empty base64 strings.
5 lines of code changed in 3 files:
* YAM_UT.c: reworked the layout weight loading and saving functions to use a ReadArgs() compatible string instead of a handcrafted string. This makes it possible to add further weight values in the future without breaking anything. The old string format is still supporting during the load process.
189 lines of code changed in 1 file:
* YAM_FI.c: imported spam filter engines like SpamAssassin are applied to new mails only to allow to filter false negative non-spam mails again without applying the SpamAssassin recognition over and over again.
5 lines of code changed in 1 file:
* YAM_CO.c: fixed some missing variables.
5 lines of code changed in 1 file:
* YAM.c: fixed wrong pointer usage.
1 lines of code changed in 1 file:
* YAM.c, YAM_CO.c: external spam filters are now imported after loading the folder tree to ensure that the spam folder really exists.
41 lines of code changed in 3 files:
* UpdateNotifyWindow.c: fixed an unfreed memory situation where the changelog
text was never freed upon diposing the object.
5 lines of code changed in 1 file:
* YAM_COs.c: added the saving and loading of the size limit for large mails again. This closes #335.
52 lines of code changed in 1 file:
* tcp/pop3.c: localized a not yet translatable error message.
1 lines of code changed in 1 file:
* tcp/http.c, tcp/pop3.c: removed some trailing spaces.
5 lines of code changed in 3 files:
* YAM_ER.c, YAM_RE.c: implemented new function ER_NewWarning(). This servers exactly the same purpose as ER_NewError() but will not open the error window. It will be used in cases a mail does not contain the usual MIME-Version header line, for example, to record such error, but to not annoy the user too many error messages. This finally closes #240.
71 lines of code changed in 4 files:
* YAM_ER.c: moved the static label string to the GUI data structure.
3 lines of code changed in 2 files:
* YAM_UT.c: fixed the dynamic string buffer functions to not use realloc() as this does not zero the additional space. This closes #332. Sorry Jens, realloc() was a nice idea, but it sucks!
21 lines of code changed in 1 file:
* YAM_MA.c, YAM_RE.c, YAM_UT.c: set the initial weights of the embedded read pane upon creating it. Furthermore set two unused weight values to their default values.
22 lines of code changed in 3 files:
* YAM_CO.c, YAM_FI.c: external spam filters will be applied on user request now as well. Furthermore the import function gets the destination list passed in.
20 lines of code changed in 3 files:
* YAM_CO.c: fixed an access to a wrong structure.
1 lines of code changed in 1 file:
* YAM_WR.c: added some debug output to the NewEditMailWindow() function to track down #332.
16 lines of code changed in 1 file:
* YAM_CO.c: fixed the default path to import .sfd files from.
1 lines of code changed in 1 file:
* Themes.c, YAM.c, mui/ThemeListGroup.c: moved the themes directory to the resources directory. For compatibility the themes are still searched in the old location as well.
13 lines of code changed in 7 files:
* resources/spamfilters: renamed "filters" to "spamfilter" to emphasize its real meaning.
1 lines of code changed in 1 file:
* resources/certificates, resources/filters: added another directory level to build up a structure within the resources directory.
3 lines of code changed in 2 files:
* YAM_CO.c, YAM_COg.c, YAM_COs.c, YAM_FI.c: implemented the "trust header lines of external filter" feature as known from Thunderbird. This lets the user choose an external filter from an number of installed .sfd files in the resources directory. These files usually define two filters for specific header lines to tell spam and non-spam mails apart. The filters will *not* occur in YAM's own list of filters. This finally closes #128 again.
425 lines of code changed in 9 files:
* tcp/ssl.c: renamed the "Certificates" directory to "Resources" to keep all kind of auxiliary files instead of certificates only.
2 lines of code changed in 1 file:
* YAM_FI.c: renamed the "abort filter process" action to "terminate filter process" as this is a bit more appropriate.
16 lines of code changed in 5 files:
* mui/ReadMailGroup.c: corrected the parameter order of the double click hook function. This closes #333.
1 lines of code changed in 1 file:
* YAM_UT.c: added missing folding marker.
1 lines of code changed in 1 file:
* mui/SignatureChooser.c: removed some TAB characters.
2 lines of code changed in 1 file:
* YAM_FI.c, YAM_COg.c, YAM_COs.c: automatically and manually created filers now abort the filtering process by default.
8 lines of code changed in 4 files:
* YAM_COg.c, YAM_FI.c: implemented a filter import from Thunderbird's .sfd files. This import will try to replicate the given filters as close as possible using YAM's filtering facilities. Please note that not all features of Thunderbird's filters can be replicated by YAM due to fundamental differences in operation. This closes #128.
390 lines of code changed in 8 files:
* YAM_FI.c: implemented "abort filter" action for filters. This will cause the filter process to be aborted after executing that specific filter.
21 lines of code changed in 5 files:
* locale/YAM.cd, tcp/ssl.c: added some error and warning output in case the CAPATH
and/or CAFILE was not found during the SSL certificate verification process.
This should give users a hint why YAM pops up a SSL verification error even if
the connection peer uses fully verified certificates.
17 lines of code changed in 1 file:
* base64.c: fixed bug in base64decode() where an incorrect pointer was used for
the calculation of the final output string length. This caused crashes when
extracting attachments from base64 encoded emails after the recent base64
API changes.
3 lines of code changed in 1 file:
* Requesters.c, misc: did some housekeeping regarding the function calls of
MUI_Request(). Now a refWindow should always be specified so that the position
will always be relative to it. In addition MUIF_NONE is now always applied.
Furthermore MSG_OkayReq is now used instead of MSG_Okay as that contains
definitions for a keyboard shortcut.
186 lines of code changed in 29 files:
* Requesters.c, mui/GenericRequestWindow.c, tcp/ssl.c, misc: moved the
SSL Certificate warning requester code to an own function in Requesters.c
and adapted GenericRequestWindow to allow to use a Floattext for
creating requesters with resizable text. Now the certificate warning
requester has an additional button "Show Certificate" which will show
the whole human-readable output of the certificate in question so that a
user could better judge if he trusts this certificate or not.
334 lines of code changed in 6 files:
* Debug.c,h: added a DBF_MTRACK flag which allows to output information
on all alloc and free calls. This flag should, however, handled with care
as it will output tons a information.
7 lines of code changed in 2 files:
* YAM_MAf.c: fixed a crash problem where in case a mail contained multiple
"References:" headers YAM was overwriting the old one. Now StrBufCat()
is used instead solving the problem.
8 lines of code changed in 1 file:
* mime/rfc2047.c: fixed minor bug where an base64/rfc2047 encoded string
was not trimmed before being supplied to base64decode().
4 lines of code changed in 1 file:
- fixed bug in reworked base64decode() interface
4 lines of code changed in 1 file:
* mime/base64.c, misc: reworked the base64 encoding/decoding functions to
allocate the output string rather than relyig that the user supplies a
large enough string. This should eliminate potential buffer overruns and
make the whole API a bit more clean.
311 lines of code changed in 8 files:
* tcp/ssl.c: set the svn:eol-style property to native.
2 lines of code changed in 2 files:
* tcp/ssl.c: used fixed definitions for the default CA file and path until these may become adjustable.
6 lines of code changed in 1 file:
* renamed the ssl directory to "certificates" and adapted the nightly build script to include our default certificate bundle file.
1 lines of code changed in 1 file:
* doc/Install-YAM, tools/mkrelease.sh: both scripts will now create the Certificates directory and copy the supplied ca-bundle.crt file there.
3 lines of code changed in 1 file:
* tcp/ssl.c: renamed the default certificate bundle file to "PROGDIR:Certificates/ca-bundle.crt".
1 lines of code changed in 1 file:
* tcp/ssl.c: certificates are now loaded either from the supplied file "PROGDIR:Certificates/yam-ca-bundle.crt" or from further certificate files in PEM format in this directory if it exists.
3 lines of code changed in 1 file:
* tcp/ssl.c: fixed a warning about an unused variable in the non-debug build.
14 lines of code changed in 1 file:
* tcp/ssl.c, tcp/Connection.c, misc: completely reworked the SSL connection
handling and moved all SSL related stuff into tcp/ssl.c. Now the random number
seed will be checked right before creating a secure connection. Also the
SSL connection setup has been updated to common sense. More important, YAM
will now check the validity of the SSL certificate during connection according
to common rules. In case an SSL certificate can not be verified a warning
requester will be presented to the user allowing to accept the certificate
once, permanently or simply reject the connection attempt. By permanently
accepting an SSL certificate YAM will store the fingerprint and the failures
bitmask in the YAM configuration so that for the next connection YAM will
not ask the user again until the validation results are different next
time. By having implemented full SSL certificate verification support YAM
makes a big leap forward regarding connection security. This closes #131.
1186 lines of code changed in 15 files:
* YAM_UT.c, misc: reworked all "*StrBuf*" functions for allocating and
string copy/concatenation operations for dynamic buffers. Now the function
calls should be more common to how, e.g., strlcpy/strlcat are defined.
In addition, realloc() is now used instead of complately allocating a
new memory block for every concatenation. Overall this should make the
API for dynamic buffers a bit more nice and consistent.
187 lines of code changed in 14 files:
* YAM_FI.c: replaced even more numeric values by approriate CP_#? constants.
21 lines of code changed in 2 files:
* YAM_FI.c: fixed the constant "NULL" string output for a simple string search.
3 lines of code changed in 1 file:
* YAM_FI.c: use the same enumeration values for the search structure as for the rule structure which the search structure is derived from. Furthermore the Boyer-Moore substring search will only be used if a substring search is actually requested.
75 lines of code changed in 2 files:
* YAM_FI.c: changed the CreateNewRule() prototype to pass a flag value.
15 lines of code changed in 4 files:
* YAM_FI.c: fixed an incomplete variable name.
1 lines of code changed in 1 file:
* YAM_FI.c: fixed some possibly dangling pointers when doing a deep copy of a filter structure.
9 lines of code changed in 1 file:
* Requesters.c: check the return value of vasprintf() for failure.
6 lines of code changed in 1 file:
* Requesters.c: fixed a warning for the AmigaOS3 build.
3 lines of code changed in 1 file:
* YAM_FI.c: added some debug messages to outline the different search algorithms and their results.
12 lines of code changed in 1 file:
* Requesters.c, mui/YAMApplication.c: created a new YAMMUIRequestA() function which
takes the already preparsed requester text and can be called from any thread
without having to use PushMethodOnStackWait() directly. Now any thread could
directly call MUI_Request() without having to care about locking and reentrantness.
58 lines of code changed in 3 files: