remove calls to standard fprintf function
[compress.git] / code.c
1 #include <stddef.h>
2 #include <stdio.h>
3
4 #include "debug.h"
5 #include "fprintf.h"
6
7 #include "code.h"
8
9 /* concatenate code */
10
11 int codcat (char *dst, size_t n, char *src)
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
23 int 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
39 int codcpy (char *dst, size_t n, char *src)
40 {
41 size_t i;
42
43 for (i = 0; i < n; i++) {
44 dst[i] = src[i];
45 if (src[i]== 0) {
46 return i;
47 }
48 }
49 VERBOSE (ERROR, _fprintf (stdout, "Buffer too short\n"));
50
51 return -1;
52 }
53
54 /* code length */
55
56 int codlen (char *code)
57 {
58 int i = 0;
59
60 while (code[i] != 0) {
61 i++;
62 }
63
64 return i;
65 }
66
67 /* vim: set ts=4 sw=4 et */