Matt McCutchen's Web Site
/
rsync
/
rsync.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Patch from Roderick Schertler (roderick at argon.org) to ignore
[rsync/rsync.git]
/
fileio.c
diff --git
a/fileio.c
b/fileio.c
index
3ed2803
..
92631bc
100644
(file)
--- a/
fileio.c
+++ b/
fileio.c
@@
-1,5
+1,6
@@
/*
Copyright (C) Andrew Tridgell 1998
/*
Copyright (C) Andrew Tridgell 1998
+ Copyright (C) 2002 by Martin Pool
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
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
@@
-38,7
+39,7
@@
int sparse_end(int f)
static int write_sparse(int f,char *buf,size_t len)
{
static int write_sparse(int f,char *buf,size_t len)
{
-
int l1=0,
l2=0;
+
size_t l1=0,
l2=0;
int ret;
for (l1=0;l1<len && buf[l1]==0;l1++) ;
int ret;
for (l1=0;l1<len && buf[l1]==0;l1++) ;
@@
-56,10
+57,11
@@
static int write_sparse(int f,char *buf,size_t len)
if (l1 == len)
return len;
if (l1 == len)
return len;
- if ((ret=write(f,buf+l1,len-(l1+l2))) != len-(l1+l2)) {
- if (ret == -1 || ret == 0) return ret;
+ ret = write(f, buf + l1, len - (l1+l2));
+ if (ret == -1 || ret == 0)
+ return ret;
+ else if (ret != (int) (len - (l1+l2)))
return (l1+ret);
return (l1+ret);
- }
if (l2 > 0)
do_lseek(f,l2,SEEK_CUR);
if (l2 > 0)
do_lseek(f,l2,SEEK_CUR);