mercurial/util.py
changeset 1321 b47f96a178a3
parent 1320 5f277e73778f
child 1329 8f06817bf266
equal deleted inserted replaced
1320:5f277e73778f 1321:b47f96a178a3
   542     s = f.read(size)
   542     s = f.read(size)
   543     while len(s) >= 0:
   543     while len(s) >= 0:
   544         yield s
   544         yield s
   545         s = f.read(size)
   545         s = f.read(size)
   546 
   546 
   547 def datestr(change=None, format='%c'):
   547 def makedate():
   548     """represent a change date as a localized time.
   548     t = time.time()
   549     a change date is a 'unixtime offset' string, where unixtime is
   549     if time.daylight: tz = time.altzone
   550     seconds since the epoch, and offset is seconds away from UTC."""
   550     else: tz = time.timezone
   551     if change is None:
   551     return t, tz
   552         t = time.time()
   552     
   553         if time.daylight: tz = time.altzone
   553 def datestr(date=None, format='%c'):
   554         else: tz = time.timezone
   554     """represent a (unixtime, offset) tuple as a localized time.
   555     else:
   555     unixtime is seconds since the epoch, and offset is the time zone's
   556         t, tz = change[2].split(' ')
   556     number of seconds away from UTC."""
   557         try:
   557     t, tz = date or makedate()
   558             # a conversion tool was sticking non-integer offsets into repos
       
   559             tz = int(tz)
       
   560         except ValueError:
       
   561             tz = 0
       
   562     return ("%s %+03d%02d" %
   558     return ("%s %+03d%02d" %
   563             (time.strftime(format, time.gmtime(float(t) - tz)),
   559             (time.strftime(format, time.gmtime(float(t) - tz)),
   564              -tz / 3600,
   560              -tz / 3600,
   565              ((-tz % 3600) / 60)))
   561              ((-tz % 3600) / 60)))