Hi, with this correction, output barcodes match what I'm seeing with other
codabar outputs. Found in Debian:

Author: Chris Howie <crazycomputers@yahoo.com>
Description: Following codabar specification (Closes: #320908).
Upstream-Status: Submitted [http://lists.gnu.org/archive/html/bug-barcode/2014-01/msg00000.html]
--- codabar.c.orig	2015-10-19 19:48:14.000000000 +0200
+++ codabar.c	2015-10-19 19:49:50.000000000 +0200
@@ -28,10 +28,11 @@
 
 /* this is ordered in decades to simplify encoding */
 static char alphabet[] = 
-   "0123456789" "-$:/.+ABCD";
+   "0123456789" "-$:/.+ABCDTN*E";
 
 #define CODE_A	16
 #define CODE_B	17
+#define CODE_T	20
 
 #define NARROW	12
 #define WIDE	14
@@ -167,13 +168,13 @@
     }
     if (!startpresent) {
 	if (usesum) {
-	    /* if no start character specified, B is used as a stop char */
-	    checksum += CODE_B;
+	    /* if no start character specified, T is used as a stop char */
+	    checksum += CODE_T;
 	    checksum = (checksum + 15) / 16 * 16 - checksum;
 	    add_one(ptr, checksum);
 	    ptr += strlen(ptr);
 	}
-	add_one(ptr, CODE_B);
+	add_one(ptr, CODE_T);
     }
     bc->partial = partial;
     bc->textinfo = textinfo;