Some refinement towards unicode on web.
This commit is contained in:
@ -29,7 +29,7 @@ r|
|
|||||||
|
|
||||||
r~
|
r~
|
||||||
context.inbuffer = [];
|
context.inbuffer = [];
|
||||||
context.outbuffer = '';
|
context.outbuffer = [];
|
||||||
if (!globalObj.write) {
|
if (!globalObj.write) {
|
||||||
function AddMeta(name, content) {
|
function AddMeta(name, content) {
|
||||||
var meta = document.createElement('meta');
|
var meta = document.createElement('meta');
|
||||||
@ -242,8 +242,15 @@ if (!globalObj.write) {
|
|||||||
window.onkeydown = KeyDown;
|
window.onkeydown = KeyDown;
|
||||||
context.Update = function(active) {
|
context.Update = function(active) {
|
||||||
var cursor = String.fromCharCode(0x2592);
|
var cursor = String.fromCharCode(0x2592);
|
||||||
context.terminal.innerText = context.outbuffer + cursor;
|
context.terminal.innerText = new TextDecoder('utf-8').decode(
|
||||||
|
new Uint8Array(context.outbuffer)) + cursor;
|
||||||
};
|
};
|
||||||
|
window.addEventListener('paste', function(e) {
|
||||||
|
var data = new TextEncoder().encode(e.clipboardData.getData('text'));
|
||||||
|
for (var i = 0; i < data.length; ++i) {
|
||||||
|
context.inbuffer.push(data[i]);
|
||||||
|
}
|
||||||
|
});
|
||||||
setMode(0);
|
setMode(0);
|
||||||
context.Clear();
|
context.Clear();
|
||||||
}
|
}
|
||||||
@ -260,12 +267,12 @@ r|
|
|||||||
for (var i = 0; i < n; ++i) {
|
for (var i = 0; i < n; ++i) {
|
||||||
var ch = u8[a + i];
|
var ch = u8[a + i];
|
||||||
if (ch == 12) {
|
if (ch == 12) {
|
||||||
context.outbuffer = '';
|
context.outbuffer = [];
|
||||||
} else if (ch == 8) {
|
} else if (ch == 8) {
|
||||||
context.outbuffer = context.outbuffer.slice(0, -1);
|
context.outbuffer = context.outbuffer.slice(0, -1);
|
||||||
} else if (ch == 13) {
|
} else if (ch == 13) {
|
||||||
} else {
|
} else {
|
||||||
context.outbuffer += String.fromCharCode(ch);
|
context.outbuffer.push(ch);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
context.Update();
|
context.Update();
|
||||||
|
|||||||
@ -55,18 +55,33 @@ function Call(sp) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
function Load(addr, content) {
|
function Load(addr, content) {
|
||||||
|
if (globalObj.write) {
|
||||||
for (var i = 0; i < content.length; ++i) {
|
for (var i = 0; i < content.length; ++i) {
|
||||||
u8[addr++] = content.charCodeAt(i);
|
u8[addr++] = content.charCodeAt(i);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
var data = new TextEncoder().encode(content);
|
||||||
|
for (var i = 0; i < data.length; ++i) {
|
||||||
|
u8[addr++] = data[i];
|
||||||
|
}
|
||||||
|
}
|
||||||
return addr;
|
return addr;
|
||||||
}
|
}
|
||||||
|
|
||||||
function GetString(a, n) {
|
function GetString(a, n) {
|
||||||
|
if (globalObj.write) {
|
||||||
var ret = '';
|
var ret = '';
|
||||||
for (var i = 0; i < n; ++i) {
|
for (var i = 0; i < n; ++i) {
|
||||||
ret += String.fromCharCode(u8[a + i]);
|
ret += String.fromCharCode(u8[a + i]);
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
|
} else {
|
||||||
|
var data = new Uint8Array(n);
|
||||||
|
for (var i = 0; i < n; ++i) {
|
||||||
|
data[i] = u8[a + i];
|
||||||
|
}
|
||||||
|
return new TextDecoder('utf-8').decode(data);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function CELL_ALIGNED(n) { return (n + 3) & ~3; }
|
function CELL_ALIGNED(n) { return (n + 3) & ~3; }
|
||||||
|
|||||||
Reference in New Issue
Block a user