remove stdout/stderr calls
[compress.git] / code.c
CommitLineData
5f83300c 1#include <stddef.h>
92fc2c44 2#include <unistd.h>
5f83300c 3
c9987f3b 4#include "debug.h"
5f83300c 5#include "fprintf.h"
c9987f3b
LM
6
7#include "code.h"
8
9/* concatenate code */
10
92fc2c44 11int codcat (char *dst, int n, char *src)
c9987f3b
LM
12{
13 while ((*dst != 0) && (n > 0)) {
14 n--;
15 dst++;
16 }
17
18 return (n > 0) ? codcpy (dst, n, src) : -1;
19}
20
21/* compare 2 codes */
22
23int codcmp (char *cod1, char *cod2)
24{
25 int i = -1;
26
27 do {
28 i++;
29 if (cod1[i] != cod2[i]) {
30 return (cod1[i] < cod2[i]) ? -1 : 1;
31 }
32 } while (cod1[i] != 0);
33
34 return 0;
35}
36
37/* copy code */
38
92fc2c44 39int codcpy (char *dst, int n, char *src)
c9987f3b 40{
92fc2c44 41 int i;
c9987f3b
LM
42
43 for (i = 0; i < n; i++) {
44 dst[i] = src[i];
45 if (src[i]== 0) {
46 return i;
47 }
48 }
92fc2c44 49 VERBOSE (ERROR, fdprintf (STDOUT_FILENO, "Buffer too short\n"));
c9987f3b
LM
50
51 return -1;
52}
53
54/* code length */
55
56int codlen (char *code)
57{
58 int i = 0;
59
60 while (code[i] != 0) {
61 i++;
62 }
63
64 return i;
65}
66
5f83300c 67/* vim: set ts=4 sw=4 et */