if default squirrelmail language is set to empty string, detect default
language from HTTP_ACCEPT_LANGUAGE (#764709).
explained both tests that control language selection.
make set_my_charset work correctly when default sm language is empty.
Major search engines will not index squirrelmail-pages. This serves the
following points:
- The search engines' cache/index does not get polluted with useless data;
indexing a webmail client is not of interest. We should advise search
engines that they skip us.
- Will not make a squirrelmail install findable through google. This has
an advantage when someone is looking for vulnerable webmail systems to
exploit (i.e.: search for "SquirrelMail" in google, and try every system
you find with a known exploit).
A robots.txt is not a solution because that has to be in the root of a
document tree, which squirrelmail does not have to be.
at the second stage when appending to Sent but not the first stage (the
response was simply thrown away). I've abstracted the checking to a
separate function that is called at the two relevant points. Closes: #1172694
own utf strlen implementation is removed because we need strlen, substr and
strpos implementation in order to use it correctly.
sqbodywrap function is modified to use sq_* functions instead of vanilla
string functions.
function calls that analize string in bytes ($body{$position}) are replaced
with string functions.
closes#1043576 in devel. code is not that complex in stable and it needs only
modified strlen calls.
- Remove the many small src/folders_*, concentrate their functionality
in functions/folder_manip.php and call that from folders.php.
- Saves duplicate code and an IMAP call here and there.
- Improve the code itself, replace complex structures with simpler ones
which acheive the same.
- Improve UI by adding Cancel buttons where appropriate.
- Some other small fixes.
This fixes a bug where users with exceeded quota's could not login when the filter plugin is actively filtering.
Currently user does not get an error if filtering failed (I am working on it) and it continues parsing the next filter even if fails (I have code for this, but don't think its necessary)