xread/write can use full_read/write (smaller code)
authorDenis Vlasenko <vda.linux@googlemail.com>
Thu, 12 Oct 2006 22:44:13 +0000 (22:44 -0000)
committerDenis Vlasenko <vda.linux@googlemail.com>
Thu, 12 Oct 2006 22:44:13 +0000 (22:44 -0000)
libbb/full_read.c
libbb/full_write.c
libbb/xfuncs.c

index b5837d5bd9b96e648ccc749a1110d54afa0279a7..068d16698cb483fe82b9117c441f595b5986b58f 100644 (file)
@@ -24,7 +24,7 @@ ssize_t full_read(int fd, void *buf, size_t len)
 
        total = 0;
 
-       while (len > 0) {
+       while (len) {
                cc = safe_read(fd, buf, len);
 
                if (cc < 0)
index d812d04b42a1f4dc99e8bd0f8d244b4f6b19327e..563f4a851b7f709a8464c061a14464a1f9c59ed1 100644 (file)
@@ -23,7 +23,7 @@ ssize_t full_write(int fd, const void *buf, size_t len)
 
        total = 0;
 
-       while (len > 0) {
+       while (len) {
                cc = safe_write(fd, buf, len);
 
                if (cc < 0)
index d22cd279a891b9643415fc3957f6c409262de180..efc919491c78f16ba200f8a4e897d59a3621e6ba 100644 (file)
@@ -113,24 +113,20 @@ int xopen3(const char *pathname, int flags, int mode)
 // Die with an error message if we can't read the entire buffer.
 void xread(int fd, void *buf, size_t count)
 {
-       while (count) {
-               ssize_t size = safe_read(fd, buf, count);
-               if (size < 1)
+       if (count) {
+               ssize_t size = full_read(fd, buf, count);
+               if (size != count)
                        bb_error_msg_and_die("short read");
-               count -= size;
-               buf = ((char *) buf) + size;
        }
 }
 
 // Die with an error message if we can't write the entire buffer.
 void xwrite(int fd, void *buf, size_t count)
 {
-       while (count) {
-               ssize_t size = safe_write(fd, buf, count);
-               if (size < 1)
+       if (count) {
+               ssize_t size = full_write(fd, buf, count);
+               if (size != count)
                        bb_error_msg_and_die("short write");
-               count -= size;
-               buf = ((char *) buf) + size;
        }
 }