1 /*
2  * reimplementation of Daniel Bernstein's buffer library.
3  * placed in the public domain by Uwe Ohse, uwe@ohse.de.
4  */
5 #include "buffer.h"
6 
7 /* return  0: ok.
8  * return -2: read error.
9  * return -3: write error.
10  * somewhat unusual ...
11  */
12 int
buffer_copy(buffer * out,buffer * in)13 buffer_copy (buffer * out, buffer * in)
14 {
15 
16 	while (1) {
17 		int got;
18 		char *p;
19 		got = buffer_feed (in);
20 		if (got < 0)
21 			return -2;
22 		if (!got)
23 			break;
24 		p = buffer_PEEK (in);
25 		if (buffer_put (out, p, got) == -1)
26 			return -3;
27 		buffer_SEEK (in, got);
28 	}
29 	return 0;
30 }
31