[Git][java-team/jcodings][master] 5 commits: Fix UNICODE_VALID_CODEPOINT_P

Hideki Yamane (@henrich) gitlab at salsa.debian.org
Sun Nov 13 07:31:38 GMT 2022



Hideki Yamane pushed to branch master at Debian Java Maintainers / jcodings


Commits:
0860897b by Josef Haider at 2022-07-15T13:32:59+02:00
Fix UNICODE_VALID_CODEPOINT_P

- - - - -
c1e30975 by Charles Oliver Nutter at 2022-09-22T00:41:09-05:00
Merge pull request #59 from djoooooe/jh/fix-unicode-valid-codepoint

Fix handling of negative values in UNICODE_VALID_CODEPOINT_P.
- - - - -
7d647c5d by Charles Oliver Nutter at 2022-11-10T13:43:39-06:00
Fixes for CESU-8

* Use sStart and oStart for transcoding in and out offsets.
* Do not override state init.

- - - - -
729c96c8 by Charles Oliver Nutter at 2022-11-10T13:52:47-06:00
[maven-release-plugin] prepare release jcodings-1.0.58

- - - - -
367e3c73 by Charles Oliver Nutter at 2022-11-10T13:52:50-06:00
[maven-release-plugin] prepare for next development iteration

- - - - -


4 changed files:

- pom.xml
- src/org/jcodings/transcode/TranscodeFunctions.java
- src/org/jcodings/transcode/specific/To_CESU_8_Transcoder.java
- src/org/jcodings/util/Macros.java


Changes:

=====================================
pom.xml
=====================================
@@ -3,7 +3,7 @@
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.jruby.jcodings</groupId>
   <artifactId>jcodings</artifactId>
-  <version>1.0.58-SNAPSHOT</version>
+  <version>1.0.59-SNAPSHOT</version>
   <name>JCodings</name>
   <description>Byte based encoding support library for java</description>
   <parent>


=====================================
src/org/jcodings/transcode/TranscodeFunctions.java
=====================================
@@ -15,23 +15,23 @@ public class TranscodeFunctions {
     public static final int LE = 2;
 
     public static int funSoToCESU8(byte[] statep, byte[] s, int sStart, int l, byte[] o, int oStart, int osize) {
-        long scalar = ((s[0] & 0x07) << 18) | ((s[1] & 0x3F) << 12) | ((s[2] & 0x3F) << 6) | (s[3] & 0x3F);
+        long scalar = ((toUnsignedInt(s[sStart+0]) & 0x07) << 18) | ((toUnsignedInt(s[sStart+1]) & 0x3F) << 12) | ((toUnsignedInt(s[sStart+2]) & 0x3F) << 6) | (toUnsignedInt(s[sStart+3]) & 0x3F);
         scalar -= 0x10000;
-        o[0] = (byte)0xED;
-        o[1] = (byte)(0xA0 | (scalar >> 16));
-        o[2] = (byte)(0x80 | ((scalar >> 10) & 0x3F));
-        o[3] = (byte)0xED;
-        o[4] = (byte)(0xB0 | ((scalar >> 6) & 0x0F));
-        o[5] = (byte)(0x80 | (scalar & 0x3F));
+        o[oStart+0] = (byte)0xED;
+        o[oStart+1] = (byte)(0xA0 | (scalar >> 16));
+        o[oStart+2] = (byte)(0x80 | ((scalar >> 10) & 0x3F));
+        o[oStart+3] = (byte)0xED;
+        o[oStart+4] = (byte)(0xB0 | ((scalar >> 6) & 0x0F));
+        o[oStart+5] = (byte)(0x80 | (scalar & 0x3F));
         return 6;
     }
 
     public static int funSoFromCESU8(byte[] statep, byte[] s, int sStart, int l, byte[] o, int oStart, int osize) {
-        long scalar = (((s[1] & 0x0F) << 16) | ((s[2] & 0x3F) << 10) | ((s[4] & 0x0F) << 6) | (s[5] & 0x3F)) + 0x10000;
-        o[0] = (byte)(0xF0 | (scalar >> 18));
-        o[1] = (byte)(0x80 | ((scalar >> 12) & 0x3F));
-        o[2] = (byte)(0x80 | ((scalar >> 6) & 0x3F));
-        o[3] = (byte)(0x80 | (scalar & 0x3F));
+        long scalar = (((toUnsignedInt(s[sStart+1]) & 0x0F) << 16) | ((toUnsignedInt(s[sStart+2]) & 0x3F) << 10) | ((toUnsignedInt(s[sStart+4]) & 0x0F) << 6) | (toUnsignedInt(s[sStart+5]) & 0x3F)) + 0x10000;
+        o[oStart+0] = (byte)(0xF0 | (scalar >> 18));
+        o[oStart+1] = (byte)(0x80 | ((scalar >> 12) & 0x3F));
+        o[oStart+2] = (byte)(0x80 | ((scalar >> 6) & 0x3F));
+        o[oStart+3] = (byte)(0x80 | (scalar & 0x3F));
         return 4;
     }
 


=====================================
src/org/jcodings/transcode/specific/To_CESU_8_Transcoder.java
=====================================
@@ -30,17 +30,6 @@ public class To_CESU_8_Transcoder extends Transcoder {
 
     public static final Transcoder INSTANCE = new To_CESU_8_Transcoder();
 
-    @Override
-    public boolean hasStateInit() {
-        return true;
-    }
-
-    @Override
-    public int stateInit(byte[] statep) {
-        statep[0] = 0;
-        return 0;
-    }
-
     @Override
     public int startToOutput(byte[] statep, byte[] s, int sStart, int l, byte[] o, int oStart, int oSize) {
         return TranscodeFunctions.funSoToCESU8(statep, s, sStart, l, o, oStart, oSize);


=====================================
src/org/jcodings/util/Macros.java
=====================================
@@ -48,7 +48,7 @@ public class Macros {
 
     // UNICODE_VALID_CODEPOINT_P
     public static boolean UNICODE_VALID_CODEPOINT_P(int c) {
-        return ((c) <= 0x10ffff) &&
+        return (Integer.compareUnsigned(c, 0x10ffff) <= 0) &&
             !((c) < 0x10000 && UTF16_IS_SURROGATE((c) >> 8));
     }
 



View it on GitLab: https://salsa.debian.org/java-team/jcodings/-/compare/d87794d566a81e15c4a27f05d91f5c151bc52928...367e3c73b78415132314ed834297354c17c6979f

-- 
View it on GitLab: https://salsa.debian.org/java-team/jcodings/-/compare/d87794d566a81e15c4a27f05d91f5c151bc52928...367e3c73b78415132314ed834297354c17c6979f
You're receiving this email because of your account on salsa.debian.org.


-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/pkg-java-commits/attachments/20221113/0e391ba7/attachment.htm>


More information about the pkg-java-commits mailing list