Commit | Line | Data |
---|---|---|
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 | 11 | int 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 | ||
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 | ||
92fc2c44 | 39 | int 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 | ||
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 | ||
5f83300c | 67 | /* vim: set ts=4 sw=4 et */ |