refs: simplify parsing of reflog entries
The current code for reflog entries uses a lot of hard-coded constants, making it hard to read and modify. Use parse_oid_hex and two temporary variables to simplify the code and reduce the use of magic constants. Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
9461d27240
commit
43bc3b6cee
@ -3117,12 +3117,13 @@ static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *c
|
|||||||
char *email_end, *message;
|
char *email_end, *message;
|
||||||
unsigned long timestamp;
|
unsigned long timestamp;
|
||||||
int tz;
|
int tz;
|
||||||
|
const char *p = sb->buf;
|
||||||
|
|
||||||
/* old SP new SP name <email> SP time TAB msg LF */
|
/* old SP new SP name <email> SP time TAB msg LF */
|
||||||
if (sb->len < 83 || sb->buf[sb->len - 1] != '\n' ||
|
if (!sb->len || sb->buf[sb->len - 1] != '\n' ||
|
||||||
get_oid_hex(sb->buf, &ooid) || sb->buf[40] != ' ' ||
|
parse_oid_hex(p, &ooid, &p) || *p++ != ' ' ||
|
||||||
get_oid_hex(sb->buf + 41, &noid) || sb->buf[81] != ' ' ||
|
parse_oid_hex(p, &noid, &p) || *p++ != ' ' ||
|
||||||
!(email_end = strchr(sb->buf + 82, '>')) ||
|
!(email_end = strchr(p, '>')) ||
|
||||||
email_end[1] != ' ' ||
|
email_end[1] != ' ' ||
|
||||||
!(timestamp = strtoul(email_end + 2, &message, 10)) ||
|
!(timestamp = strtoul(email_end + 2, &message, 10)) ||
|
||||||
!message || message[0] != ' ' ||
|
!message || message[0] != ' ' ||
|
||||||
@ -3136,7 +3137,7 @@ static int show_one_reflog_ent(struct strbuf *sb, each_reflog_ent_fn fn, void *c
|
|||||||
message += 6;
|
message += 6;
|
||||||
else
|
else
|
||||||
message += 7;
|
message += 7;
|
||||||
return fn(&ooid, &noid, sb->buf + 82, timestamp, tz, message, cb_data);
|
return fn(&ooid, &noid, p, timestamp, tz, message, cb_data);
|
||||||
}
|
}
|
||||||
|
|
||||||
static char *find_beginning_of_line(char *bob, char *scan)
|
static char *find_beginning_of_line(char *bob, char *scan)
|
||||||
|
Loading…
Reference in New Issue
Block a user