X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=server-info.c;h=05bce7da3b4935675465f993c24bb1188439d6d9;hb=74237d6236d7e32f69469ff26df3f3bb3875f523;hp=7d7bcb2188e8f4a65f83a4693220864d0a255951;hpb=5e80092f7e6db09a40a62e837ca3f74f0bc5ad73;p=git.git diff --git a/server-info.c b/server-info.c index 7d7bcb21..05bce7da 100644 --- a/server-info.c +++ b/server-info.c @@ -99,7 +99,10 @@ static int read_pack_info_file(const char *infofile) while (fgets(line, sizeof(line), fp)) { int len = strlen(line); if (line[len-1] == '\n') - line[len-1] = 0; + line[--len] = 0; + + if (!len) + continue; switch (line[0]) { case 'P': /* P name */ @@ -140,7 +143,12 @@ static int compare_info(const void *a_, const void *b_) return 1; /* then it does not matter but at least keep the comparison stable */ - return (*a)->p - (*b)->p; + if ((*a)->p == (*b)->p) + return 0; + else if ((*a)->p < (*b)->p) + return -1; + else + return 1; } static void init_pack_info(const char *infofile, int force) @@ -195,6 +203,7 @@ static void write_pack_info_file(FILE *fp) int i; for (i = 0; i < num_pack; i++) fprintf(fp, "P %s\n", info[i]->p->pack_name + objdirlen + 6); + fputc('\n', fp); } static int update_info_packs(int force)