Refactor code in send_sums to remove repeated ternaries.
authorMartin Pool <mbp@samba.org>
Wed, 23 Jan 2002 07:54:13 +0000 (07:54 +0000)
committerMartin Pool <mbp@samba.org>
Wed, 23 Jan 2002 07:54:13 +0000 (07:54 +0000)
generator.c

index 16c5618..9617c92 100644 (file)
@@ -1,7 +1,10 @@
 /* -*- c-file-style: "linux" -*-
+
+   rsync -- fast file replication program
    
    Copyright (C) 1996-2000 by Andrew Tridgell 
    Copyright (C) Paul Mackerras 1996
+   Copyright (C) 2002 by Martin Pool <mbp@samba.org>
    
    This program is free software; you can redistribute it and/or modify
    it under the terms of the GNU General Public License as published by
@@ -101,20 +104,25 @@ static int adapt_block_size(struct file_struct *file, int bsize)
   */
 static void send_sums(struct sum_struct *s, int f_out)
 {
-       int i;
-
-       /* tell the other guy how many we are going to be doing and how many
-          bytes there are in the last chunk */
-       write_int(f_out, s ? s->count : 0);
-       write_int(f_out, s ? s->n : block_size);
-       write_int(f_out, s ? s->remainder : 0);
-
-       if (!s)
-               return;
-
-       for (i = 0; i < s->count; i++) {
-               write_int(f_out, s->sums[i].sum1);
-               write_buf(f_out, s->sums[i].sum2, csum_length);
+       if (s) {
+               size_t i;
+
+               /* tell the other guy how many we are going to be
+                  doing and how many bytes there are in the last
+                  chunk */
+               write_int(f_out, s->count);
+               write_int(f_out, s->n);
+               write_int(f_out, s->remainder);
+
+               for (i = 0; i < s->count; i++) {
+                       write_int(f_out, s->sums[i].sum1);
+                       write_buf(f_out, s->sums[i].sum2, csum_length);
+               }
+       } else {
+               /* we don't have checksums */
+               write_int(f_out, 0);
+               write_int(f_out, block_size);
+               write_int(f_out, 0);
        }
 }