[PATCH 02/18] receive-pack: parse feature request a bit earlier

2014-08-19 Thread Junio C Hamano
Ideally, we should have also allowed the first shallow to carry
the feature request trailer, but that is water under the bridge
now.  This makes the next step to factor out the queuing of commands
easier to review.

Signed-off-by: Junio C Hamano gits...@pobox.com
---
 builtin/receive-pack.c | 24 +---
 1 file changed, 13 insertions(+), 11 deletions(-)

diff --git a/builtin/receive-pack.c b/builtin/receive-pack.c
index 1663beb..43f35c4 100644
--- a/builtin/receive-pack.c
+++ b/builtin/receive-pack.c
@@ -840,7 +840,7 @@ static struct command *read_head_info(struct sha1_array 
*shallow)
unsigned char old_sha1[20], new_sha1[20];
struct command *cmd;
char *refname;
-   int len, reflen;
+   int len, reflen, linelen;
 
line = packet_read_line(0, len);
if (!line)
@@ -853,7 +853,18 @@ static struct command *read_head_info(struct sha1_array 
*shallow)
continue;
}
 
-   if (len  83 ||
+   linelen = strlen(line);
+   if (linelen  len) {
+   const char *feature_list = line + linelen + 1;
+   if (parse_feature_request(feature_list, 
report-status))
+   report_status = 1;
+   if (parse_feature_request(feature_list, 
side-band-64k))
+   use_sideband = LARGE_PACKET_MAX;
+   if (parse_feature_request(feature_list, quiet))
+   quiet = 1;
+   }
+
+   if (linelen  83 ||
line[40] != ' ' ||
line[81] != ' ' ||
get_sha1_hex(line, old_sha1) ||
@@ -863,15 +874,6 @@ static struct command *read_head_info(struct sha1_array 
*shallow)
 
refname = line + 82;
reflen = strlen(refname);
-   if (reflen + 82  len) {
-   const char *feature_list = refname + reflen + 1;
-   if (parse_feature_request(feature_list, 
report-status))
-   report_status = 1;
-   if (parse_feature_request(feature_list, 
side-band-64k))
-   use_sideband = LARGE_PACKET_MAX;
-   if (parse_feature_request(feature_list, quiet))
-   quiet = 1;
-   }
cmd = xcalloc(1, sizeof(struct command) + reflen + 1);
hashcpy(cmd-old_sha1, old_sha1);
hashcpy(cmd-new_sha1, new_sha1);
-- 
2.1.0-301-g54593e2

--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 02/18] receive-pack: parse feature request a bit earlier

2014-08-19 Thread Junio C Hamano
Junio C Hamano gits...@pobox.com writes:

 Ideally, we should have also allowed the first shallow to carry
 the feature request trailer, but that is water under the bridge
 now.  This makes the next step to factor out the queuing of commands
 easier to review.

 Signed-off-by: Junio C Hamano gits...@pobox.com
 ---
 ...
 @@ -853,7 +853,18 @@ static struct command *read_head_info(struct sha1_array 
 *shallow)
   continue;
   }
  
 - if (len  83 ||
 + linelen = strlen(line);
 + if (linelen  len) {
 + const char *feature_list = line + linelen + 1;
 + if (parse_feature_request(feature_list, 
 report-status))
 + report_status = 1;
 + if (parse_feature_request(feature_list, 
 side-band-64k))
 + use_sideband = LARGE_PACKET_MAX;
 + if (parse_feature_request(feature_list, quiet))
 + quiet = 1;
 + }
 +
 + if (linelen  83 ||
   line[40] != ' ' ||
   line[81] != ' ' ||
   get_sha1_hex(line, old_sha1) ||
 @@ -863,15 +874,6 @@ static struct command *read_head_info(struct sha1_array 
 *shallow)
  
   refname = line + 82;
   reflen = strlen(refname);

A later patch updates this to reflen = linelen - 82 while moving
this code to a helper function, but it may be better to do that in
this patch.
--
To unsubscribe from this list: send the line unsubscribe git in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html