X-Git-Url: https://pd.if.org/git/?a=blobdiff_plain;f=src%2Ffetchurl.c;h=f4ae8da2779e9b63152ddbc0fde7f0027d79afe5;hb=0f71fe6a8646901c02f05104988d16f442bbd054;hp=15bf1ecb3c2efdbbcd5475c2cfb97865740a63e4;hpb=cae5c951410e659f8c78562903056889f8e989a7;p=zpackage diff --git a/src/fetchurl.c b/src/fetchurl.c index 15bf1ec..f4ae8da 100644 --- a/src/fetchurl.c +++ b/src/fetchurl.c @@ -461,7 +461,6 @@ ssize_t fill_buffer(struct io *io) { } } - fprintf(stderr, "filled %zd bytes\n", ret); return ret; } @@ -958,6 +957,12 @@ int main(int ac, char *av[]) { if (head) { io.response.len -= 2; + write(out, io.response.buffer, io.response.len); + break; + } + + if (io.status_code == 304) { + break; } if (outfile) { @@ -974,11 +979,6 @@ int main(int ac, char *av[]) { } } - if (head) { - write(out, io.response.buffer, io.response.len); - break; - } - if (raw) { write(out, io.response.buffer, header_len); } @@ -999,6 +999,7 @@ int main(int ac, char *av[]) { } do { + size_t before = io.received; if (io.response.len) { if (io.content_length && io.response.len + io.received > io.content_length) { io.response.len = io.content_length - io.received; @@ -1012,7 +1013,7 @@ int main(int ac, char *av[]) { if (progressbar) { if (io.content_length) { - pdots(50, '.', total, total+ret, + pdots(50, '.', before, io.received, io.content_length); } else { putc('\r', stderr); @@ -1052,9 +1053,9 @@ int main(int ac, char *av[]) { close(sockfd); if (progressbar && io.status_code == 200) { - if (total == io.content_length || io.content_length == 0) { + if (io.received == io.content_length || io.content_length == 0) { fprintf(stderr, " done\n"); - } else if (io.content_length != total) { + } else if (io.content_length != io.received) { fprintf(stderr, "failed (%zu bytes read)\n", total); io.status_code = 531; /* non official code */ }