Upload Kmake

This commit is contained in:
Gorochu
2026-05-26 23:36:42 -07:00
parent ba051b2f74
commit 555ec72358
41615 changed files with 13344630 additions and 1 deletions

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8"/>
<title>cseucpkdfmtjapanese decoding</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-12000">
<meta name="variant" content="?12001-13000">
<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'cseucpkdfmtjapanese' as for a document labeled 'euc-jp'.">
<style>
iframe { display:none }
</style>
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
<script src="../../resources/decode-common.js"></script>
</head>
<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars-cseucpkdfmtjapanese.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
</body>
</html>

View File

@ -0,0 +1,132 @@
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8"/>
<title>EUC-JP decoding errors</title>
<meta name="timeout" content="long">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser decodes characters that are not recognised from the euc-jp encoding as replacement characters.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body onload="showNodes();">
<iframe src="eucjp_errors.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
<script>
var tests = [];
function iframeRef(frameRef) {
return frameRef.contentWindow
? frameRef.contentWindow.document
: frameRef.contentDocument;
}
function showNodes() {
var iframe = iframeRef(document.getElementById("scrwin"));
nodes = iframe.querySelectorAll("span");
t = -1;
t++;
tests[t] = async_test("lead not 0x00 and no more bytes: B0");
t++;
tests[t] = async_test("lead not 0x00 and no more bytes: B0 B5 B0");
t++;
tests[t] = async_test("lead not 0x00 and no more bytes: B0 B0 B0");
t++;
tests[t] = async_test(
"lead byte outside 0x8E, 0x8F, or the range 0xA1 to 0xFE: FF"
);
t++;
tests[t] = async_test(
"lead byte outside 0x8E, 0x8F, or the range 0xA1 to 0xFE: B0 B5 FF"
);
t++;
tests[t] = async_test(
"lead byte outside 0x8E, 0x8F, or the range 0xA1 to 0xFE: 91"
);
t++;
tests[t] = async_test(
"lead byte outside 0x8E, 0x8F, or the range 0xA1 to 0xFE: B0 B5 91"
);
t++;
tests[t] = async_test("trail byte outside 0xA1-0xFE: B0 31");
t++;
tests[t] = async_test("trail byte outside 0xA1-0xFE: B0 FF");
t++;
tests[t] = async_test("trail byte outside 0xA1-0xFE: B0 A0");
t++;
tests[t] = async_test("pointer is null: A2 B9");
t = -1;
t++;
tests[t].step(function() {
assert_equals(nodes[0].textContent, "<22>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[1].textContent, "圧<>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[2].textContent, "旭<>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[3].textContent, "<22>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[4].textContent, "圧<>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[5].textContent, "<22>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[6].textContent, "圧<>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[7].textContent, "<22>1");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[8].textContent, "<22>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[9].textContent, "<22>");
});
tests[t].done();
t++;
tests[t].step(function() {
assert_equals(nodes[10].textContent, "<22>");
});
tests[t].done();
}
</script>
</body>
</html>

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8"/>
<title>x-euc-jp decoding</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-12000">
<meta name="variant" content="?12001-13000">
<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same decoding behavior for a document labeled 'x-euc-jp' as for a document labeled 'euc-jp'.">
<style>
iframe { display:none }
</style>
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
<script src="../../resources/decode-common.js"></script>
</head>
<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars-x-euc-jp.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
</body>
</html>

View File

@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en-GB">
<head>
<meta charset="utf-8"/>
<title>EUC-JP decoding</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-12000">
<meta name="variant" content="?12001-13000">
<meta name="variant" content="?13001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser decodes all characters as expected from a file generated by encoding all pointers in the euc-jp encoding per the encoder steps in the specification.">
<style>
iframe { display:none }
</style>
<script src="jis0208_index.js"></script>
<script src="jis0212_index.js"></script>
<script src="eucjp-decoder.js"></script>
<script src="../../resources/decode-common.js"></script>
</head>
<body onload="showNodes(eucjpDecoder);">
<iframe src="eucjp_chars.html" name="scriptWindow" id="scrwin"></iframe>
<div id="log"></div>
</body>
</html>

View File

@ -0,0 +1,85 @@
function dec2char(n) {
// converts a decimal number to a Unicode character
// n: the dec codepoint value to be converted
if (n <= 0xffff) {
out = String.fromCharCode(n);
} else if (n <= 0x10ffff) {
n -= 0x10000;
out =
String.fromCharCode(0xd800 | (n >> 10)) +
String.fromCharCode(0xdc00 | (n & 0x3ff));
} else out = "dec2char error: Code point out of range: " + n;
return out;
}
function eucjpDecoder(stream) {
stream = stream.replace(/%/g, " ");
stream = stream.replace(/[\s]+/g, " ").trim();
var bytes = stream.split(" ");
for (var i = 0; i < bytes.length; i++) bytes[i] = parseInt(bytes[i], 16);
var out = "";
var lead, byte, offset, ptr, cp;
var jis0212flag = false;
var eucjpLead = 0x00;
var endofstream = 2000000;
var finished = false;
while (!finished) {
if (bytes.length == 0) byte = endofstream;
else byte = bytes.shift();
if (byte == endofstream && eucjpLead != 0x00) {
eucjpLead = 0x00;
out += "<22>";
continue;
}
if (byte == endofstream && eucjpLead == 0x00) {
finished = true;
continue;
}
if (eucjpLead == 0x8e && byte >= 0xa1 && byte <= 0xdf) {
eucjpLead = 0x00;
out += dec2char(0xff61 + byte - 0xa1);
continue;
}
if (eucjpLead == 0x8f && byte >= 0xa1 && byte <= 0xfe) {
jis0212flag = true;
eucjpLead = byte;
continue;
}
if (eucjpLead != 0x00) {
lead = eucjpLead;
eucjpLead = 0x00;
cp = null;
if (
lead >= 0xa1 &&
lead <= 0xfe &&
(byte >= 0xa1 && byte <= 0xfe)
) {
ptr = (lead - 0xa1) * 94 + byte - 0xa1;
if (jis0212flag) cp = jis0212[ptr];
else cp = jis0208[ptr];
}
jis0212flag = false;
if (cp != null) {
out += dec2char(cp);
continue;
}
if (byte >= 0x00 && byte <= 0x7f) bytes.unshift(byte);
out += "<22>";
continue;
}
if (byte >= 0x00 && byte <= 0x7f) {
out += dec2char(byte);
continue;
}
if (byte == 0x8e || byte == 0x8f || (byte >= 0xa1 && byte <= 0xfe)) {
eucjpLead = byte;
continue;
}
out += "<22>";
}
return out;
}

View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="cseucpkdfmtjapanese"><!-- test breaks if the server overrides this -->
<title>cseucpkdfmtjapanese encoding (form)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'cseucpkdfmtjapanese' as for a document labeled 'euc-jp'.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = false;
var encoder = eucjpEncoder;
var ranges = rangesAll;
var separator = ",";
function expect(result, codepoint) {
return "%" + result.replace(/ /g, "%");
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=cseucpkdfmtjapanese

View File

@ -0,0 +1,60 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, han)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-12000">
<meta name="variant" content="?12001-13000">
<meta name="variant" content="?13001-14000">
<meta name="variant" content="?14001-15000">
<meta name="variant" content="?15001-16000">
<meta name="variant" content="?16001-17000">
<meta name="variant" content="?17001-18000">
<meta name="variant" content="?18001-19000">
<meta name="variant" content="?19001-20000">
<meta name="variant" content="?20001-21000">
<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding han characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesHan;
var separator = ",";
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,50 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, hangul)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form and encoding hangul characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesHangul;
var separator = ",";
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (form, misc)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references for a URL produced by a form when encoding miscellaneous characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesMisc;
var separator = ",";
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="x-euc-jp"><!-- test breaks if the server overrides this -->
<title>x-euc-jp encoding (form)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the same encoding behavior for a document labeled 'x-euc-jp' as for a document labeled 'euc-jp'.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = false;
var encoder = eucjpEncoder;
var ranges = rangesAll;
var separator = ",";
function expect(result, codepoint) {
return "%" + result.replace(/ /g, "%");
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=x-euc-jp

View File

@ -0,0 +1,42 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"><!-- test breaks if the server overrides this -->
<title>EUC-JP encoding (form)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-jp encoding after 0x9F when encoding bytes for a URL produced by a form, using the encoder steps in the specification.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = false;
var encoder = eucjpEncoder;
var ranges = rangesAll;
var separator = ",";
function expect(result, codepoint) {
return "%" + result.replace(/ /g, "%");
}
</script>
<script src="../../resources/encode-form-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,59 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, han)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-12000">
<meta name="variant" content="?12001-13000">
<meta name="variant" content="?13001-14000">
<meta name="variant" content="?14001-15000">
<meta name="variant" content="?15001-16000">
<meta name="variant" content="?16001-17000">
<meta name="variant" content="?17001-18000">
<meta name="variant" content="?18001-19000">
<meta name="variant" content="?19001-20000">
<meta name="variant" content="?20001-21000">
<meta name="variant" content="?21001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding han characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesHan;
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-href-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,49 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, hangul)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-8000">
<meta name="variant" content="?8001-9000">
<meta name="variant" content="?9001-10000">
<meta name="variant" content="?10001-11000">
<meta name="variant" content="?11001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding hangul characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesHangul;
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-href-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="euc-jp"> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding errors (href, misc)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces percent-escaped character references when writing characters to an href value and encoding miscellaneous characters that are not in the euc-jp encoding.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = true;
var encoder = eucjpEncoder;
var ranges = rangesMisc;
function expect(result, codepoint) {
return "%26%23" + codepoint + "%3B";
}
// Overwrite normalizeStr
function normalizeStr(str) {
return str;
}
</script>
<script src="../../resources/encode-href-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,41 @@
<!DOCTYPE html>
<html>
<head>
<meta charset=euc-jp> <!-- test breaks if the server overrides this -->
<title>EUC-JP encoding (href)</title>
<meta name="timeout" content="long">
<meta name="variant" content="?1-1000">
<meta name="variant" content="?1001-2000">
<meta name="variant" content="?2001-3000">
<meta name="variant" content="?3001-4000">
<meta name="variant" content="?4001-5000">
<meta name="variant" content="?5001-6000">
<meta name="variant" content="?6001-7000">
<meta name="variant" content="?7001-last">
<script src="/resources/testharness.js"></script>
<script src="/resources/testharnessreport.js"></script>
<script src="/common/subset-tests.js"></script>
<script src="jis0208_index.js"></script>
<script src="eucjp-encoder.js"></script>
<link rel="author" title="Richard Ishida" href="mailto:ishida@w3.org">
<link rel="help" href="https://encoding.spec.whatwg.org/#euc-jp">
<meta name="assert" content="The browser produces the expected byte sequences for all characters in the euc-jp encoding after 0x9F when writing characters to an href value, using the encoder steps in the specification.">
<style>
iframe { display:none }
form { display:none }
</style>
</head>
<body>
<div id="log"></div>
<script src="../../resources/ranges.js"></script>
<script>
var errors = false;
var encoder = eucjpEncoder;
var ranges = rangesAll;
function expect(result, codepoint) {
return "%" + result.replace(/ /g, "%");
}
</script>
<script src="../../resources/encode-href-common.js"></script>
</body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,128 @@
var jis0208CPs = []; // index is unicode cp, value is pointer
for (var p = 0; p < jis0208.length; p++) {
if (jis0208[p] != null && jis0208CPs[jis0208[p]] == null) {
jis0208CPs[jis0208[p]] = p;
}
}
function chars2cps(chars) {
// this is needed because of javascript's handling of supplementary characters
// char: a string of unicode characters
// returns an array of decimal code point values
var haut = 0;
var out = [];
for (var i = 0; i < chars.length; i++) {
var b = chars.charCodeAt(i);
if (b < 0 || b > 0xffff) {
alert(
"Error in chars2cps: byte out of range " + b.toString(16) + "!"
);
}
if (haut != 0) {
if (0xdc00 <= b && b <= 0xdfff) {
out.push(0x10000 + ((haut - 0xd800) << 10) + (b - 0xdc00));
haut = 0;
continue;
} else {
alert(
"Error in chars2cps: surrogate out of range " +
haut.toString(16) +
"!"
);
haut = 0;
}
}
if (0xd800 <= b && b <= 0xdbff) {
haut = b;
} else {
out.push(b);
}
}
return out;
}
function eucjpEncoder(stream) {
var cps = chars2cps(stream);
var out = "";
var cp;
var finished = false;
while (!finished) {
if (cps.length == 0) {
finished = true;
continue;
} else cp = cps.shift();
if (cp >= 0x00 && cp <= 0x7f) {
// ASCII
out += " " + cp.toString(16).toUpperCase();
continue;
}
if (cp == 0xa5) {
out += " 5C";
continue;
}
if (cp == 0x203e) {
out += " 7E";
continue;
}
if (cp >= 0xff61 && cp <= 0xff9f) {
var temp = cp - 0xff61 + 0xa1;
out += " 8E " + temp.toString(16).toUpperCase();
continue;
}
if (cp == 0x2212) {
cp = 0xff0d;
}
var ptr = jis0208CPs[cp];
if (ptr == null) {
return null;
// out += ' &#'+cp+';'
// continue
}
var lead = Math.floor(ptr / 94) + 0xa1;
var trail = ptr % 94 + 0xa1;
out +=
" " +
lead.toString(16).toUpperCase() +
" " +
trail.toString(16).toUpperCase();
}
return out.trim();
}
function convertToHex(str) {
// converts a string of ASCII characters to hex byte codes
var out = "";
var result;
for (var c = 0; c < str.length; c++) {
result =
str
.charCodeAt(c)
.toString(16)
.toUpperCase() + " ";
out += result;
}
return out;
}
function normalizeStr(str) {
var out = "";
for (var c = 0; c < str.length; c++) {
if (str.charAt(c) == "%") {
out += String.fromCodePoint(
parseInt(str.charAt(c + 1) + str.charAt(c + 2), 16)
);
c += 2;
} else out += str.charAt(c);
}
var result = "";
for (var o = 0; o < out.length; o++) {
result +=
"%" +
out
.charCodeAt(o)
.toString(16)
.toUpperCase();
}
return result.replace(/%1B%28%42$/, "");
}

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=cseucpkdfmtjapanese

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=x-euc-jp

File diff suppressed because one or more lines are too long

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

View File

@ -0,0 +1,8 @@
<!doctype html>
<html>
<head>
<meta charset="euc-jp">
<title>EUC-JP characters</title>
</head>
<body><span><EFBFBD></span> <span><EFBFBD><EFBFBD><EFBFBD></span> <span><EFBFBD><EFBFBD><EFBFBD></span> <span><EFBFBD></span> <span><EFBFBD><EFBFBD><EFBFBD></span> <span><EFBFBD></span> <span><EFBFBD><EFBFBD><EFBFBD></span> <span><EFBFBD>1</span> <span><EFBFBD><EFBFBD></span> <span><EFBFBD><EFBFBD></span> <span><EFBFBD><EFBFBD></span> </body>
</html>

View File

@ -0,0 +1 @@
Content-Type: text/html; charset=euc-jp

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long