X-Git-Url: https://vcs.fsf.org/?p=squirrelmail.git;a=blobdiff_plain;f=class%2Fdeliver%2FDeliver.class.php;h=d86a125bdc27a8a2c5fd5c220d9fb6d2c23e62b6;hp=9952a06e660d731cf773f1e010a3c682e8f0cd0f;hb=0bbf8622773554348ff9dc200e7e01411a81be0b;hpb=fc8be6aed1ee546a04909bafc4475244b8186bab;ds=inline diff --git a/class/deliver/Deliver.class.php b/class/deliver/Deliver.class.php index 9952a06e..d86a125b 100644 --- a/class/deliver/Deliver.class.php +++ b/class/deliver/Deliver.class.php @@ -858,7 +858,7 @@ class Deliver { * @return string $result with timezone and offset */ function timezone () { - global $invert_time; + global $invert_time, $show_timezone_name; $diff_second = date('Z'); if ($invert_time) { @@ -872,9 +872,24 @@ class Deliver { $diff_second = abs($diff_second); $diff_hour = floor ($diff_second / 3600); $diff_minute = floor (($diff_second-3600*$diff_hour) / 60); - $zonename = '('.strftime('%Z').')'; - $result = sprintf ("%s%02d%02d %s", $sign, $diff_hour, $diff_minute, - $zonename); + + // If an administrator wants to add the timezone name to the + // end of the date header, they can set $show_timezone_name + // to boolean TRUE in config/config_local.php, but that is + // NOT RFC-822 compliant (see section 5.1). Moreover, some + // Windows users reported that strftime('%Z') was returning + // the full zone name (not the abbreviation) which in some + // cases included 8-bit characters (not allowed as is in headers). + // The PHP manual actually does NOT promise what %Z will return + // for strftime!: "The time zone offset/abbreviation option NOT + // given by %z (depends on operating system)" + // + if ($show_timezone_name) { + $zonename = '('.strftime('%Z').')'; + $result = sprintf ("%s%02d%02d %s", $sign, $diff_hour, $diff_minute, $zonename); + } else { + $result = sprintf ("%s%02d%02d", $sign, $diff_hour, $diff_minute); + } return ($result); }