+#include <stddef.h>
+#include <stdio.h>
+#include "debug.h"
+
+#include "code.h"
+
+/* concatenate code */
+
+int codcat (char *dst, size_t n, char *src)
+{
+ while ((*dst != 0) && (n > 0)) {
+ n--;
+ dst++;
+ }
+
+ return (n > 0) ? codcpy (dst, n, src) : -1;
+}
+
+/* compare 2 codes */
+
+int codcmp (char *cod1, char *cod2)
+{
+ int i = -1;
+
+ do {
+ i++;
+ if (cod1[i] != cod2[i]) {
+ return (cod1[i] < cod2[i]) ? -1 : 1;
+ }
+ } while (cod1[i] != 0);
+
+ return 0;
+}
+
+/* copy code */
+
+int codcpy (char *dst, size_t n, char *src)
+{
+ size_t i;
+
+ for (i = 0; i < n; i++) {
+ dst[i] = src[i];
+ if (src[i]== 0) {
+ return i;
+ }
+ }
+ VERBOSE (ERROR, printf ("Buffer too short\n"));
+
+ return -1;
+}
+
+/* code length */
+
+int codlen (char *code)
+{
+ int i = 0;
+
+ while (code[i] != 0) {
+ i++;
+ }
+
+ return i;
+}
+
+// vim: ts=4 sw=4 et