Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jcodings
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 32707e87b84d
Choose a base ref
...
head repository: jruby/jcodings
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 2c13f407415a
Choose a head ref
  • 2 commits
  • 5 files changed
  • 1 contributor

Commits on Mar 19, 2018

  1. bump java version

    lopex committed Mar 19, 2018

    Verified

    This commit was signed with the committer’s verified signature.
    headius Charles Oliver Nutter
    Copy the full SHA
    ad58ef5 View commit details
  2. Copy the full SHA
    2c13f40 View commit details
Showing with 64 additions and 5 deletions.
  1. +2 −2 pom.xml
  2. +8 −0 scripts/EncodingListTemplate.java
  3. +2 −1 scripts/generate.rb
  4. +2 −2 src/org/jcodings/EncodingDB.java
  5. +50 −0 src/org/jcodings/EncodingList.java
4 changes: 2 additions & 2 deletions pom.xml
Original file line number Diff line number Diff line change
@@ -96,8 +96,8 @@
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.5</source>
<target>1.5</target>
<source>1.7</source>
<target>1.7</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
8 changes: 8 additions & 0 deletions scripts/EncodingListTemplate.java
Original file line number Diff line number Diff line change
@@ -18,11 +18,19 @@
* SOFTWARE.
*/
package org.jcodings;
import org.jcodings.specific.*;

final class EncodingList {
static final void load() {
%{defines}
EncodingDB.ascii = EncodingDB.encodings.get("ASCII-8BIT".getBytes());
%{other}
}

public static Encoding getInstange(String name) {
switch (name) {
%{switch}
default: return Encoding.load(name);
}
}
}
3 changes: 2 additions & 1 deletion scripts/generate.rb
Original file line number Diff line number Diff line change
@@ -77,7 +77,8 @@ def generate_encoding_list

open("#{SRC_DIR}/EncodingList.java", "wb") { |f| f << open("EncodingListTemplate.java", "rb").read.
sub(/%\{defines\}/, defines.map { |cmd, name| "#{INDENT*2}EncodingDB.declare(#{name}, \"#{enc_map[name[/[^"]+/]] || (raise 'class not found for encoding ' + name)}\");" }.join("\n")).
sub(/%\{other\}/, other.map { |cmd, from, to| "#{INDENT*2}EncodingDB.#{cmd.downcase}(#{from}#{to.nil? ? "" : to});" }.join("\n")) }
sub(/%\{other\}/, other.map { |cmd, from, to| "#{INDENT*2}EncodingDB.#{cmd.downcase}(#{from}#{to.nil? ? "" : to});" }.join("\n")).
sub(/%\{switch\}/, defines.map { |cmd, name| "#{INDENT*3}case \"#{enc_map[name[/[^"]+/]]}\": return #{enc_map[name[/[^"]+/]]}Encoding.INSTANCE;"}.join("\n"))}

end

4 changes: 2 additions & 2 deletions src/org/jcodings/EncodingDB.java
Original file line number Diff line number Diff line change
@@ -74,9 +74,9 @@ public Entry getBase() {
public Encoding getEncoding() {
if (encoding == null) {
if (name == null) {
encoding = Encoding.load(encodingClass);
encoding = EncodingList.getInstange(encodingClass);
} else {
encoding = Encoding.load(encodingClass).replicate(name);
encoding = EncodingList.getInstange(encodingClass).replicate(name);
if (isDummy) encoding.setDummy();
}
}
50 changes: 50 additions & 0 deletions src/org/jcodings/EncodingList.java
Original file line number Diff line number Diff line change
@@ -18,6 +18,7 @@
* SOFTWARE.
*/
package org.jcodings;
import org.jcodings.specific.*;

final class EncodingList {
static final void load() {
@@ -194,4 +195,53 @@ static final void load() {
EncodingDB.replicate("SJIS-SoftBank", "Windows-31J");
EncodingDB.alias("MS932", "Windows-31J");
}

public static Encoding getInstange(String name) {
switch (name) {
case "ASCII": return ASCIIEncoding.INSTANCE;
case "UTF8": return UTF8Encoding.INSTANCE;
case "USASCII": return USASCIIEncoding.INSTANCE;
case "BIG5": return BIG5Encoding.INSTANCE;
case "Big5HKSCS": return Big5HKSCSEncoding.INSTANCE;
case "Big5UAO": return Big5UAOEncoding.INSTANCE;
case "CP949": return CP949Encoding.INSTANCE;
case "EmacsMule": return EmacsMuleEncoding.INSTANCE;
case "EUCJP": return EUCJPEncoding.INSTANCE;
case "EUCKR": return EUCKREncoding.INSTANCE;
case "EUCTW": return EUCTWEncoding.INSTANCE;
case "GB2312": return GB2312Encoding.INSTANCE;
case "GB18030": return GB18030Encoding.INSTANCE;
case "GBK": return GBKEncoding.INSTANCE;
case "ISO8859_1": return ISO8859_1Encoding.INSTANCE;
case "ISO8859_2": return ISO8859_2Encoding.INSTANCE;
case "ISO8859_3": return ISO8859_3Encoding.INSTANCE;
case "ISO8859_4": return ISO8859_4Encoding.INSTANCE;
case "ISO8859_5": return ISO8859_5Encoding.INSTANCE;
case "ISO8859_6": return ISO8859_6Encoding.INSTANCE;
case "ISO8859_7": return ISO8859_7Encoding.INSTANCE;
case "ISO8859_8": return ISO8859_8Encoding.INSTANCE;
case "ISO8859_9": return ISO8859_9Encoding.INSTANCE;
case "ISO8859_10": return ISO8859_10Encoding.INSTANCE;
case "ISO8859_11": return ISO8859_11Encoding.INSTANCE;
case "ISO8859_13": return ISO8859_13Encoding.INSTANCE;
case "ISO8859_14": return ISO8859_14Encoding.INSTANCE;
case "ISO8859_15": return ISO8859_15Encoding.INSTANCE;
case "ISO8859_16": return ISO8859_16Encoding.INSTANCE;
case "KOI8R": return KOI8REncoding.INSTANCE;
case "KOI8U": return KOI8UEncoding.INSTANCE;
case "SJIS": return SJISEncoding.INSTANCE;
case "UTF16BE": return UTF16BEEncoding.INSTANCE;
case "UTF16LE": return UTF16LEEncoding.INSTANCE;
case "UTF32BE": return UTF32BEEncoding.INSTANCE;
case "UTF32LE": return UTF32LEEncoding.INSTANCE;
case "Windows_31J": return Windows_31JEncoding.INSTANCE;
case "Windows_1250": return Windows_1250Encoding.INSTANCE;
case "Windows_1251": return Windows_1251Encoding.INSTANCE;
case "Windows_1252": return Windows_1252Encoding.INSTANCE;
case "Windows_1253": return Windows_1253Encoding.INSTANCE;
case "Windows_1254": return Windows_1254Encoding.INSTANCE;
case "Windows_1257": return Windows_1257Encoding.INSTANCE;
default: return Encoding.load(name);
}
}
}