diff options
author | Shawn Pearce <spearce@spearce.org> | 2006-05-18 02:34:48 +0400 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-05-18 04:36:36 +0400 |
commit | 70e34b2dc88e28f09903b85932ea679992da62ff (patch) | |
tree | ca893ed0f5e887650962a9c9a5e5cc2b42674336 | |
parent | d556fae2c0ea063f15ea4c3678fe931cc426f1ca (diff) |
Fix ref log parsing so it works properly.
The log parser was only ever matching the last log record due to
calling strtoul on "> 1136091609" rather than " 1136091609". Also
once a match for '@' has been found after the name of the ref there
is no point in looking for another '@' within the remaining text.
Signed-off-by: Junio C Hamano <junkio@cox.net>
-rw-r--r-- | refs.c | 2 | ||||
-rw-r--r-- | sha1_name.c | 1 |
2 files changed, 2 insertions, 1 deletions
@@ -459,7 +459,7 @@ int read_ref_at(const char *ref, unsigned long at_time, unsigned char *sha1) c++; if (c == logend || *c == '\n') die("Log %s is corrupt.", logfile); - date = strtoul(c, NULL, 10); + date = strtoul(c + 1, NULL, 10); if (date <= at_time) { if (get_sha1_hex(rec + 41, sha1)) die("Log %s is corrupt.", logfile); diff --git a/sha1_name.c b/sha1_name.c index 3ac3ab4f58..4376cb3928 100644 --- a/sha1_name.c +++ b/sha1_name.c @@ -267,6 +267,7 @@ static int get_sha1_basic(const char *str, int len, unsigned char *sha1) at_time = approxidate(date_spec); free(date_spec); len = at_mark; + break; } } |