Ticket UUID: | 1276561 | |||
Title: | Handling of dates/times | |||
Type: | Bug | Version: | None | |
Submitter: | yaroslav1 | Created on: | 2005-08-30 12:18:17 | |
Subsystem: | mime | Assigned To: | andreas_kupries | |
Priority: | 7 High | Severity: | ||
Status: | Closed | Last Modified: | 2005-10-05 01:48:10 | |
Resolution: | Fixed | Closed By: | andreas_kupries | |
Closed on: | 2005-10-04 18:48:10 | |||
Description: |
Dates/times are handled incorrectly in tcllib in non-English locales. Look at this piece of code from mime.tcl: --------- piece of code ------ set gmt [clock format $clock -format "%d %b %Y %H:%M:%S" \ -gmt true] if {[set diff [expr {($clock-[clock scan $gmt])/60}]] < 0} { set s - set diff [expr {-($diff)}] } else { set s + } ------------------------------ Time in this format doesn't get scanned back into seconds by clock scan, because, for example, in Russian locale (ru_RU.KOI8-R) in looks like: 30 <unicode string> 2005 11:32:07 Unicode string here transcribes as "avgust" which is russian name for August. So Tcl error "unable to convert date-time string" appears. I suggest to replace it with something like: set gmt [clock format $clock -format "%Y-%m-%d %H:%M:%S" \ -gmt true] Also I suggest to check in other such places (use of clock format / clock scan) in tcllib's code. | |||
User Comments: |
andreas_kupries added on 2005-10-05 01:48:10:
Logged In: YES user_id=75003 Accepted the patch, applied to CVS Head. andreas_kupries added on 2005-10-05 01:15:05: File Added - 151258: 1312869_mime.patch andreas_kupries added on 2005-10-05 01:15:04: Logged In: YES user_id=75003 Adding the patch file from the patch entry. It is not clear to me why asnother entry was opened. Files/patches can be attached everywhere. cc_benny added on 2005-10-04 20:18:53: Logged In: YES user_id=143885 Ah, I see that the OP already mentioned this kind of patch. There are more problems though, because the formatting part of "parsedatetime proper" is also broken. I have posted a patch on the patch tracker as #1312869. Note: I see that the same bug has been reported as #911580 in 2004. cc_benny added on 2005-10-04 19:49:03: Logged In: YES user_id=143885 I get the same problem here while just sending mail (I am not doing anything with dates myself). Smtp.tcl calls parsedatetime -now proper and that throws an error, just because I am on de_DE. There is no valid reason for that to happen here, I think. I don't know if the other parts of parsedatatime are a problem or not, they are not used in mime.tcl or smtp.tcl. I trivial fix for "parsedatetime proper" is to use an ISO-style time spec instead: set gmt [clock format $clock -format "%Y-%m-%d %H:%M:%S" \ -gmt true] This works with 8.4.7 here. |
Attachments:
- 1312869_mime.patch [download] added by andreas_kupries on 2005-10-05 01:15:04. [details]