Mercurial > public > mercurial-scm > hg-stable
comparison mercurial/changelog.py @ 2523:4ab59a3acd16
validate the resulting date in parsedate
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Fri, 30 Jun 2006 18:48:06 +0200 |
parents | 85f796baab10 |
children | 345bac2bc4ec |
comparison
equal
deleted
inserted
replaced
2522:85f796baab10 | 2523:4ab59a3acd16 |
---|---|
37 return self.extract(self.revision(node)) | 37 return self.extract(self.revision(node)) |
38 | 38 |
39 def add(self, manifest, list, desc, transaction, p1=None, p2=None, | 39 def add(self, manifest, list, desc, transaction, p1=None, p2=None, |
40 user=None, date=None): | 40 user=None, date=None): |
41 if date: | 41 if date: |
42 # validate explicit (probably user-specified) date and | 42 parseddate = "%d %d" % util.parsedate(date) |
43 # time zone offset. values must fit in signed 32 bits for | |
44 # current 32-bit linux runtimes. timezones go from UTC-12 | |
45 # to UTC+14 | |
46 when, offset = util.parsedate(date) | |
47 if abs(when) > 0x7fffffff: | |
48 raise ValueError(_('date exceeds 32 bits: %d') % when) | |
49 if offset < -50400 or offset > 43200: | |
50 raise ValueError(_('impossible time zone offset: %d') % offset) | |
51 parseddate = "%d %d" % (when, offset) | |
52 else: | 43 else: |
53 parseddate = "%d %d" % util.makedate() | 44 parseddate = "%d %d" % util.makedate() |
54 list.sort() | 45 list.sort() |
55 l = [hex(manifest), user, parseddate] + list + ["", desc] | 46 l = [hex(manifest), user, parseddate] + list + ["", desc] |
56 text = "\n".join(l) | 47 text = "\n".join(l) |