Rev 3675 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3675 | Rev 4377 | ||
---|---|---|---|
Line 32... | Line 32... | ||
32 | #include <stdlib.h> |
32 | #include <stdlib.h> |
33 | #include <unistd.h> |
33 | #include <unistd.h> |
34 | #include <getopt.h> |
34 | #include <getopt.h> |
35 | #include <string.h> |
35 | #include <string.h> |
36 | #include <fcntl.h> |
36 | #include <fcntl.h> |
37 | #include <assert.h> |
- | |
38 | #include "config.h" |
37 | #include "config.h" |
39 | #include "util.h" |
38 | #include "util.h" |
40 | #include "errors.h" |
39 | #include "errors.h" |
41 | #include "entry.h" |
40 | #include "entry.h" |
42 | #include "cp.h" |
41 | #include "cp.h" |
Line 68... | Line 67... | ||
68 | return -1; |
67 | return -1; |
69 | 68 | ||
70 | return (int) t1; |
69 | return (int) t1; |
71 | } |
70 | } |
72 | 71 | ||
73 | static int64_t copy_file(const char *src, const char *dest, size_t blen, int vb) |
72 | static int64_t copy_file(const char *src, const char *dest, |
- | 73 | size_t blen, int vb) |
|
74 | { |
74 | { |
75 | int fd1, fd2, bytes = 0; |
75 | int fd1, fd2, bytes = 0; |
76 | off_t total = 0; |
76 | off_t total = 0; |
77 | int64_t copied = 0; |
77 | int64_t copied = 0; |
78 | char *buff = NULL; |
78 | char *buff = NULL; |
Line 122... | Line 122... | ||
122 | bytes = write(fd2, buff, res); |
122 | bytes = write(fd2, buff, res); |
123 | if (bytes < 0) |
123 | if (bytes < 0) |
124 | goto err; |
124 | goto err; |
125 | res -= bytes; |
125 | res -= bytes; |
126 | } while (res > 0); |
126 | } while (res > 0); |
- | 127 | ||
- | 128 | /* TODO: re-insert assert() once this is stand alone, |
|
- | 129 | * removed as abort() exits the entire shell |
|
- | 130 | */ |
|
127 | assert(res == 0); |
131 | if (res != 0) { |
- | 132 | printf("\n%d more bytes than actually exist were copied\n", res); |
|
- | 133 | goto err; |
|
- | 134 | } |
|
128 | } |
135 | } |
129 | 136 | ||
130 | if (bytes < 0) { |
137 | if (bytes < 0) { |
131 | err: |
138 | err: |
132 | printf("Error copying %s, (%d)\n", src, bytes); |
139 | printf("\nError copying %s, (%d)\n", src, bytes); |
133 | copied = bytes; |
140 | copied = bytes; |
134 | } |
141 | } |
135 | 142 | ||
136 | out: |
143 | out: |
137 | close(fd1); |
144 | close(fd1); |