From: Jeremias M. <jm...@us...> - 2007-03-22 21:06:02
|
Update of /cvsroot/barcode4j/barcode4j/src/java/org/krysalis/barcode4j/impl/pdf417 In directory sc8-pr-cvs3.sourceforge.net:/tmp/cvs-serv6726/src/java/org/krysalis/barcode4j/impl/pdf417 Modified Files: PDF417HighLevelEncoder.java Log Message: Fixed a bug in PDF417 (ArrayIndexOutOfBoundsException in text encoding with the Punctuation table). Index: PDF417HighLevelEncoder.java =================================================================== RCS file: /cvsroot/barcode4j/barcode4j/src/java/org/krysalis/barcode4j/impl/pdf417/PDF417HighLevelEncoder.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** PDF417HighLevelEncoder.java 7 Nov 2006 16:03:17 -0000 1.2 --- PDF417HighLevelEncoder.java 22 Mar 2007 21:05:55 -0000 1.3 *************** *** 176,184 **** if (isAlphaUpper(ch)) { tmp.append((char)27); //as ! if (ch != ' ') { ! tmp.append((char)(ch - 65)); ! } else { ! tmp.append((char)26); //space ! } break; } else if (isMixed(ch)) { --- 176,181 ---- if (isAlphaUpper(ch)) { tmp.append((char)27); //as ! tmp.append((char)(ch - 65)); ! //space cannot happen here, it is also in "Lower" break; } else if (isMixed(ch)) { *************** *** 221,225 **** default: //SUBMODE_PUNCTUATION if (isPunctuation(ch)) { ! tmp.append(PUNCTUATION[ch]); } else { submode = SUBMODE_ALPHA; --- 218,222 ---- default: //SUBMODE_PUNCTUATION if (isPunctuation(ch)) { ! tmp.append((char)PUNCTUATION[ch]); } else { submode = SUBMODE_ALPHA; *************** *** 238,242 **** boolean odd = (i % 2) != 0; if (odd) { ! sb.append((char)((h * 30) + tmp.charAt(i))); } else { h = tmp.charAt(i); --- 235,240 ---- boolean odd = (i % 2) != 0; if (odd) { ! h = (char)((h * 30) + tmp.charAt(i)); ! sb.append(h); } else { h = tmp.charAt(i); |