Mercurial > public > mercurial-scm > hg
comparison mercurial/util.py @ 15157:c208dcd0f709 stable
util: fix crash converting an invalid future date to string
Post-2038 timestamps cannot be handled on 32-bit architectures. Clamp
such dates to the maximum 32-bit timestamp.
author | Kevin Gessner <kevin@fogcreek.com> |
---|---|
date | Fri, 23 Sep 2011 09:02:27 -0700 |
parents | 94b200a11cf7 |
children | 85322c19c831 |
comparison
equal
deleted
inserted
replaced
15152:94b200a11cf7 | 15157:c208dcd0f709 |
---|---|
889 if "%1" in format or "%2" in format: | 889 if "%1" in format or "%2" in format: |
890 sign = (tz > 0) and "-" or "+" | 890 sign = (tz > 0) and "-" or "+" |
891 minutes = abs(tz) // 60 | 891 minutes = abs(tz) // 60 |
892 format = format.replace("%1", "%c%02d" % (sign, minutes // 60)) | 892 format = format.replace("%1", "%c%02d" % (sign, minutes // 60)) |
893 format = format.replace("%2", "%02d" % (minutes % 60)) | 893 format = format.replace("%2", "%02d" % (minutes % 60)) |
894 s = time.strftime(format, time.gmtime(float(t) - tz)) | 894 try: |
895 t = time.gmtime(float(t) - tz) | |
896 except ValueError: | |
897 # time was out of range | |
898 t = time.gmtime(sys.maxint) | |
899 s = time.strftime(format, t) | |
895 return s | 900 return s |
896 | 901 |
897 def shortdate(date=None): | 902 def shortdate(date=None): |
898 """turn (timestamp, tzoff) tuple into iso 8631 date.""" | 903 """turn (timestamp, tzoff) tuple into iso 8631 date.""" |
899 return datestr(date, format='%Y-%m-%d') | 904 return datestr(date, format='%Y-%m-%d') |