White space fixes.
[bertos.git] / bertos / io / kfile.c
index 6113d5f77e6ef0e19538799e08fd30f9f977f1e9..52762bd7dfd59ea8e82ba08162b88e93c392b56f 100644 (file)
@@ -167,6 +167,29 @@ int kfile_gets_echo(struct KFile *fd, char *buf, int size, bool echo)
 #endif /* !CONFIG_KFILE_GETS */
 
 
+kfile_off_t kfile_copy(KFile *src, KFile *dst, kfile_off_t size)
+{
+       char buf[32];
+       kfile_off_t cp_len = 0;
+
+       while (size)
+       {
+               size_t len = MIN(sizeof(buf), (size_t)size);
+               if (kfile_read(src, buf, len) != len)
+                       break;
+
+               size_t wr_len = kfile_write(dst, buf, len);
+               cp_len += wr_len;
+               size -= len;
+
+               if (wr_len != len)
+                       break;
+       }
+
+       return cp_len;
+}
+
+
 /**
  * Move \a fd file seek position of \a offset bytes from \a whence.
  *
@@ -195,11 +218,9 @@ kfile_off_t kfile_genericSeek(struct KFile *fd, kfile_off_t offset, KSeekMode wh
                break;
        }
 
-       #if LOG_LEVEL >= LOG_LVL_INFO
        /* Bound check */
        if (seek_pos + offset > fd->size)
                LOG_INFO("seek outside EOF\n");
-       #endif
 
        fd->seek_pos = seek_pos + offset;
 
@@ -220,12 +241,12 @@ struct KFile * kfile_genericReopen(struct KFile *fd)
 
 /**
  * Close file \a fd.
- * This is a generic implementation that only return 0.
+ * This is a generic implementation that only flush the file.
  */
-int kfile_genericClose(UNUSED_ARG(struct KFile *, fd))
+int kfile_genericClose(struct KFile *fd)
 {
-       return 0;
-};
+       return kfile_flush(fd);
+}
 
 
 /**