Import sources from 2011-03-30 iso image - sys/lib
This commit is contained in:
parent
b41b903422
commit
e463eb4036
1144 changed files with 388460 additions and 0 deletions
163
sys/lib/acid/386
Executable file
163
sys/lib/acid/386
Executable file
|
@ -0,0 +1,163 @@
|
|||
// 386 support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'b';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/386/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, 0, 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, 0, 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general(hah hah!) purpose registers
|
||||
{
|
||||
print("AX\t", *AX, " BX\t", *BX, " CX\t", *CX, " DX\t", *DX, "\n");
|
||||
print("DI\t", *DI, " SI\t", *SI, " BP\t", *BP, "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc;
|
||||
local cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
print("SP\t", *SP, " ECODE ", *ECODE, " EFLAG ", *EFLAGS, "\n");
|
||||
print("CS\t", *CS, " DS\t ", *DS, " SS\t", *SS, "\n");
|
||||
print("GS\t", *GS, " FS\t ", *FS, " ES\t", *ES, "\n");
|
||||
|
||||
cause = *TRAP;
|
||||
print("TRAP\t", cause, " ", reason(cause), "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *F0, "\n");
|
||||
print("F1\t", *F1, "\n");
|
||||
print("F2\t", *F2, "\n");
|
||||
print("F3\t", *F3, "\n");
|
||||
print("F4\t", *F4, "\n");
|
||||
print("F5\t", *F5, "\n");
|
||||
print("F6\t", *F6, "\n");
|
||||
print("F7\t", *F7, "\n");
|
||||
print("control\t", *fmt(E0, 'x'), "\n");
|
||||
print("status\t", *fmt(E1, 'x'), "\n");
|
||||
print("tag\t", *fmt(E2, 'x'), "\n");
|
||||
print("ip offset\t", *fmt(E3, 'X'), "\n");
|
||||
print("cs selector\t", *fmt(E4, 'x'), "\n");
|
||||
print("opcode\t", *fmt(E4>>8, 'x'), "\n");
|
||||
print("data operand offset\t", *fmt(E5, 'x'), "\n");
|
||||
print("operand selector\t", *fmt(E6, 'x'), "\n");
|
||||
}
|
||||
|
||||
defn mmregs()
|
||||
{
|
||||
print("MM0\t", *MM0, " MM1\t", *MM1, "\n");
|
||||
print("MM2\t", *MM2, " MM3\t", *MM3, "\n");
|
||||
print("MM4\t", *MM4, " MM5\t", *MM5, "\n");
|
||||
print("MM6\t", *MM6, " MM7\t", *MM7, "\n");
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l;
|
||||
local pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*TRAP), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggr Ureg
|
||||
{
|
||||
'X' 0 di;
|
||||
'X' 4 si;
|
||||
'X' 8 bp;
|
||||
'X' 12 nsp;
|
||||
'X' 16 bx;
|
||||
'X' 20 dx;
|
||||
'X' 24 cx;
|
||||
'X' 28 ax;
|
||||
'X' 32 gs;
|
||||
'X' 36 fs;
|
||||
'X' 40 es;
|
||||
'X' 44 ds;
|
||||
'X' 48 trap;
|
||||
'X' 52 ecode;
|
||||
'X' 56 pc;
|
||||
'X' 60 cs;
|
||||
'X' 64 flags;
|
||||
{
|
||||
'X' 68 usp;
|
||||
'X' 68 sp;
|
||||
};
|
||||
'X' 72 ss;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" di ", addr.di, "\n");
|
||||
print(" si ", addr.si, "\n");
|
||||
print(" bp ", addr.bp, "\n");
|
||||
print(" nsp ", addr.nsp, "\n");
|
||||
print(" bx ", addr.bx, "\n");
|
||||
print(" dx ", addr.dx, "\n");
|
||||
print(" cx ", addr.cx, "\n");
|
||||
print(" ax ", addr.ax, "\n");
|
||||
print(" gs ", addr.gs, "\n");
|
||||
print(" fs ", addr.fs, "\n");
|
||||
print(" es ", addr.es, "\n");
|
||||
print(" ds ", addr.ds, "\n");
|
||||
print(" trap ", addr.trap, "\n");
|
||||
print(" ecode ", addr.ecode, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" cs ", addr.cs, "\n");
|
||||
print(" flags ", addr.flags, "\n");
|
||||
print(" sp ", addr.sp, "\n");
|
||||
print(" ss ", addr.ss, "\n");
|
||||
};
|
||||
sizeofUreg = 76;
|
||||
|
||||
print("/sys/lib/acid/386");
|
137
sys/lib/acid/68020
Executable file
137
sys/lib/acid/68020
Executable file
|
@ -0,0 +1,137 @@
|
|||
// 68020 support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'x';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/68020/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *A7, 0, 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *A7, 0, 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("R0\t", *R0, "R1\t", *R1, "R2\t", *R2, "R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, "R5\t", *R5, "R6\t", *R6, "R7\t", *R7, "\n");
|
||||
print("A0\t", *A0, "A1\t", *A1, "A2\t", *A2, "A3\t", *A3, "\n");
|
||||
print("A4\t", *A4, "A5\t", *A5, "A6\t", *A6, "A7\t", *A7, "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc;
|
||||
local cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
print("SP\t", *A7, " MAGIC\t", *MAGIC, "\n");
|
||||
|
||||
cause = *VO;
|
||||
print("SR\t", *SR, "VO ", cause, " ", reason(cause), "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l;
|
||||
local pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*VO), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggr Ureg
|
||||
{
|
||||
'U' 0 r0;
|
||||
'U' 4 r1;
|
||||
'U' 8 r2;
|
||||
'U' 12 r3;
|
||||
'U' 16 r4;
|
||||
'U' 20 r5;
|
||||
'U' 24 r6;
|
||||
'U' 28 r7;
|
||||
'U' 32 a0;
|
||||
'U' 36 a1;
|
||||
'U' 40 a2;
|
||||
'U' 44 a3;
|
||||
'U' 48 a4;
|
||||
'U' 52 a5;
|
||||
'U' 56 a6;
|
||||
'U' 60 sp;
|
||||
'U' 64 usp;
|
||||
'U' 68 magic;
|
||||
'u' 72 sr;
|
||||
'U' 74 pc;
|
||||
'u' 78 vo;
|
||||
'a' 80 microstate;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" r0 ", addr.r0, "\n");
|
||||
print(" r1 ", addr.r1, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" a0 ", addr.a0, "\n");
|
||||
print(" a1 ", addr.a1, "\n");
|
||||
print(" a2 ", addr.a2, "\n");
|
||||
print(" a3 ", addr.a3, "\n");
|
||||
print(" a4 ", addr.a4, "\n");
|
||||
print(" a5 ", addr.a5, "\n");
|
||||
print(" a6 ", addr.a6, "\n");
|
||||
print(" sp ", addr.sp, "\n");
|
||||
print(" usp ", addr.usp, "\n");
|
||||
print(" magic ", addr.magic, "\n");
|
||||
print(" sr ", addr.sr, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" vo ", addr.vo, "\n");
|
||||
print(" microstate ", addr.microstate, "\n");
|
||||
};
|
||||
|
||||
print("/sys/lib/acid/68020");
|
133
sys/lib/acid/acme
Executable file
133
sys/lib/acid/acme
Executable file
|
@ -0,0 +1,133 @@
|
|||
// support for acme; acid must be run with /acme/acid/$cputype/Acid
|
||||
|
||||
|
||||
defn w(*code)
|
||||
{
|
||||
local dir;
|
||||
|
||||
printto("/tmp/acme.acid", eval code);
|
||||
rc("cat /tmp/acme.acid | wnew -d "+"Acid/-stk'("+itoa(pid)+")'");
|
||||
}
|
||||
|
||||
defn procstk(pid, name)
|
||||
{
|
||||
local dir;
|
||||
|
||||
printto("/tmp/acme.acid", stk());
|
||||
rc("cat /tmp/acme.acid | wnew -d "+"Acid/-'"+name+"("+itoa(pid)+")'");
|
||||
}
|
||||
|
||||
defn taskstk(tid, name)
|
||||
{
|
||||
local dir;
|
||||
|
||||
printto("/tmp/acme.acid", threadstk(tid));
|
||||
rc("cat /tmp/acme.acid | wnew -d "+"Acid/-"+name+"'("+itoa(pid)+")'");
|
||||
}
|
||||
|
||||
defn _stk(pc, sp, link, dolocals)
|
||||
{
|
||||
local stk;
|
||||
|
||||
print("At pc:", pc, ":", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
|
||||
stk = strace(pc, sp, link);
|
||||
|
||||
while stk do {
|
||||
frame = head stk;
|
||||
print(fmt(frame[0], 'a'), "(");
|
||||
params(frame[2], frame[0]);
|
||||
print(") ");
|
||||
print("\n\tcalled from ", fmt(frame[1], 'a'), " ");
|
||||
pfl(frame[1]);
|
||||
stk = tail stk;
|
||||
if dolocals then
|
||||
locals(frame[3], frame[0]);
|
||||
}
|
||||
}
|
||||
|
||||
//defn _stk(pc, sp, dolocals)
|
||||
//{
|
||||
// w(__stk(pc, sp, dolocals));
|
||||
//}
|
||||
|
||||
|
||||
defn params(param, name)
|
||||
{
|
||||
while param do {
|
||||
sym = head param;
|
||||
print("*", fmt(name, 'a'), ":", sym[0], "=", sym[1]);
|
||||
param = tail param;
|
||||
if param then
|
||||
print (",");
|
||||
}
|
||||
}
|
||||
|
||||
defn locals(l, name)
|
||||
{
|
||||
local sym;
|
||||
|
||||
while l do {
|
||||
sym = head l;
|
||||
print("\t*", fmt(name, 'a'), ":", sym[0], "=", sym[1], "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
|
||||
defn bptab() // print a table of breakpoints
|
||||
{
|
||||
local lst, addr;
|
||||
|
||||
lst = bplist;
|
||||
while lst do {
|
||||
addr = head lst;
|
||||
print("\tbpdel(", fmt(addr, 'a'), ")\n");
|
||||
lst = tail lst;
|
||||
}
|
||||
}
|
||||
|
||||
defn procs() // print status of processes
|
||||
{
|
||||
local c, lst, cpid;
|
||||
|
||||
cpid = pid;
|
||||
lst = proclist;
|
||||
while lst do {
|
||||
np = head lst;
|
||||
setproc(np);
|
||||
if np == cpid then
|
||||
print(">");
|
||||
print("\t", "setproc(", np, ")\t", status(np), " at ", fmt(*PC, 'a'), "\n");
|
||||
lst = tail lst;
|
||||
}
|
||||
pid = cpid;
|
||||
if pid != 0 then
|
||||
setproc(pid);
|
||||
}
|
||||
|
||||
defn allstacks() // print stacks of processes and threads
|
||||
{
|
||||
complex Proc P;
|
||||
local T, Tq;
|
||||
local c, lst, cpid;
|
||||
|
||||
cpid = pid;
|
||||
P = (Proc)pq.$head;
|
||||
while P != 0 do{
|
||||
Tq = (Tqueue)P.threads;
|
||||
T = (Thread)Tq.$head;
|
||||
setproc(P.pid);
|
||||
while T != 0 do{
|
||||
if(T.cmdname == 0) then taskstk(T, "unknown");
|
||||
else taskstk(T, *(T.cmdname\s));
|
||||
T = T.nextt;
|
||||
}
|
||||
P = P.next;
|
||||
}
|
||||
pid = cpid;
|
||||
if pid != 0 then
|
||||
setproc(pid);
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/acme");
|
147
sys/lib/acid/alef
Executable file
147
sys/lib/acid/alef
Executable file
|
@ -0,0 +1,147 @@
|
|||
// runtime library definitions
|
||||
if objtype=="mips2" then objtype="mips";
|
||||
|
||||
include("/sys/src/alef/lib/"+objtype+"/acid");
|
||||
|
||||
defn
|
||||
pchan(addr)
|
||||
{
|
||||
local l, n;
|
||||
|
||||
complex Chan addr;
|
||||
|
||||
if addr.sva then
|
||||
print("Sender waiting: buffer ", addr.sva, "\n");
|
||||
else
|
||||
print("No sender\n");
|
||||
|
||||
if addr.rva then
|
||||
print("Receiver waiting: buffer ", addr.rva, "\n");
|
||||
else
|
||||
print("No receiver\n");
|
||||
|
||||
if addr.async then {
|
||||
n = 0;
|
||||
l = addr.qh;
|
||||
while l do {
|
||||
n = n+1;
|
||||
l = l.next;
|
||||
}
|
||||
print("Async channel\n\t", n\D, " messsages queued\n\t");
|
||||
l = addr.free;
|
||||
while l do {
|
||||
n = n+1;
|
||||
l = l.next;
|
||||
}
|
||||
print(n\D, " free buffers\n");
|
||||
}
|
||||
|
||||
if addr.selt then {
|
||||
l = "send";
|
||||
if addr.selt then
|
||||
l = "receive";
|
||||
print("In select ", l, ": task ", addr.selt\X, "\n");
|
||||
labstk(addr.selt);
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
tdb()
|
||||
{
|
||||
local ta, tq;
|
||||
|
||||
// Private proc tdb pointer
|
||||
ta = *{ 0x7fffe000,
|
||||
0x0ffdf000,
|
||||
0xbfff5000 }[match(objtype, {"mips", "sparc", "386"})];
|
||||
|
||||
complex Tdb ta;
|
||||
|
||||
print("tdb ", ta.ntask, " tasks:");
|
||||
if *ta then
|
||||
print("locked\n");
|
||||
else
|
||||
print("unlocked\n");
|
||||
|
||||
if ta.ctask then {
|
||||
print("current task ", ta.ctask, "\n");
|
||||
Task(ta.ctask);
|
||||
}
|
||||
else
|
||||
print("proc is idle\n");
|
||||
|
||||
tq = (Task)ta.runhd;
|
||||
if tq == 0 then
|
||||
return {};
|
||||
|
||||
print("Tasks ready to run:\n");
|
||||
while tq != 0 do {
|
||||
print("Task(", tq, ")\n");
|
||||
tq = tq.link;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
lselect(addr)
|
||||
{
|
||||
local c;
|
||||
|
||||
complex Task addr;
|
||||
complex Chan c;
|
||||
|
||||
c = addr.slist;
|
||||
if c == 0 then {
|
||||
print("No select pending\n");
|
||||
return {};
|
||||
}
|
||||
while c do {
|
||||
print("pchan(", c\X, ")\n");
|
||||
c = c.sellink;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
pqlock(addr)
|
||||
{
|
||||
local t;
|
||||
|
||||
complex QLock addr;
|
||||
|
||||
if *addr then
|
||||
print("QLock is under modification\n");
|
||||
if addr.used == 0 then
|
||||
return {};
|
||||
|
||||
print("QLock is held\n");
|
||||
t = addr.queue;
|
||||
complex Task t;
|
||||
if t == 0 then {
|
||||
print("No tasks waiting\n");
|
||||
return {};
|
||||
}
|
||||
print("Tasks waiting:\n");
|
||||
while t do {
|
||||
print("Task(", t, ")\n");
|
||||
tq = tq.qlink;
|
||||
}
|
||||
}
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/alef/lib/port/",
|
||||
"/sys/src/alef/lib/p9/",
|
||||
"/sys/src/alef/lib/"+objtype+"/"
|
||||
};
|
||||
|
||||
defn labstk(l)
|
||||
{
|
||||
if objtype == "386" then
|
||||
_stk(ALEF_switch, *l, linkreg(0), 0);
|
||||
else
|
||||
_stk(*(l+4), *l, linkreg(0), 0);
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/alef");
|
||||
|
||||
include("/sys/src/alef/lib/port/acid."+objtype);
|
||||
include("/sys/src/alef/lib/p9/acid."+objtype);
|
205
sys/lib/acid/alpha
Executable file
205
sys/lib/acid/alpha
Executable file
|
@ -0,0 +1,205 @@
|
|||
// Alpha support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/alpha/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("R0\t", *R0, "\n");
|
||||
print("R1\t", *R1, " R2\t", *R2, " R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, " R5\t", *R5, " R6\t", *R6, "\n");
|
||||
print("R7\t", *R7, " R8\t", *R8, " R9\t", *R9, "\n");
|
||||
print("R10\t", *R10, " R11\t", *R11, " R12\t", *R12, "\n");
|
||||
print("R13\t", *R13, " R14\t", *R14, " R15\t", *R15, "\n");
|
||||
print("R16\t", *R16, " R17\t", *R17, " R18\t", *R18, "\n");
|
||||
print("R19\t", *R19, " R20\t", *R20, " R21\t", *R21, "\n");
|
||||
print("R22\t", *R22, " R23\t", *R23, " R24\t", *R24, "\n");
|
||||
print("R25\t", *R25, " R26\t", *R26, " R27\t", *R27, "\n");
|
||||
print("R28\t", *R28, " R29\t", *R29, " R30\t", *SP\Y, "\n");
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'G'), "\tF1\t", *fmt(F1, 'G'), "\n");
|
||||
print("F2\t", *fmt(F2, 'G'), "\tF3\t", *fmt(F3, 'G'), "\n");
|
||||
print("F4\t", *fmt(F4, 'G'), "\tF5\t", *fmt(F5, 'G'), "\n");
|
||||
print("F6\t", *fmt(F6, 'G'), "\tF7\t", *fmt(F7, 'G'), "\n");
|
||||
print("F8\t", *fmt(F8, 'G'), "\tF9\t", *fmt(F9, 'G'), "\n");
|
||||
print("F10\t", *fmt(F10, 'G'), "\tF11\t", *fmt(F11, 'G'), "\n");
|
||||
print("F12\t", *fmt(F12, 'G'), "\tF13\t", *fmt(F13, 'G'), "\n");
|
||||
print("F14\t", *fmt(F14, 'G'), "\tF15\t", *fmt(F15, 'G'), "\n");
|
||||
print("F16\t", *fmt(F16, 'G'), "\tF17\t", *fmt(F17, 'G'), "\n");
|
||||
print("F18\t", *fmt(F18, 'G'), "\tF19\t", *fmt(F19, 'G'), "\n");
|
||||
print("F20\t", *fmt(F20, 'G'), "\tF21\t", *fmt(F21, 'G'), "\n");
|
||||
print("F22\t", *fmt(F22, 'G'), "\tF23\t", *fmt(F23, 'G'), "\n");
|
||||
print("F24\t", *fmt(F24, 'G'), "\tF25\t", *fmt(F25, 'G'), "\n");
|
||||
print("F26\t", *fmt(F26, 'G'), "\tF27\t", *fmt(F27, 'G'), "\n");
|
||||
print("F28\t", *fmt(F28, 'G'), "\tF29\t", *fmt(F29, 'G'), "\n");
|
||||
print("F30\t", *fmt(F30, 'G'), "\tF31\t", *fmt(F31, 'G'), "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc, link, cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
|
||||
link = *R26;
|
||||
print("SP\t", *SP, "\tLINK\t", link, " ", fmt(link, 'a'), " ");
|
||||
pfl(link);
|
||||
|
||||
cause = *TYPE;
|
||||
print("STATUS\t", *STATUS, "\tTYPE\t", cause, " ", reason(cause), "\n");
|
||||
print("A0\t", *A0, " A1\t", *A1, " A2\t", *A2, "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l, pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*TYPE), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sizeofUreg = 296;
|
||||
aggr Ureg
|
||||
{
|
||||
'W' 0 type;
|
||||
'W' 8 a0;
|
||||
'W' 16 a1;
|
||||
'W' 24 a2;
|
||||
'W' 32 r0;
|
||||
'W' 40 r1;
|
||||
'W' 48 r2;
|
||||
'W' 56 r3;
|
||||
'W' 64 r4;
|
||||
'W' 72 r5;
|
||||
'W' 80 r6;
|
||||
'W' 88 r7;
|
||||
'W' 96 r8;
|
||||
'W' 104 r9;
|
||||
'W' 112 r10;
|
||||
'W' 120 r11;
|
||||
'W' 128 r12;
|
||||
'W' 136 r13;
|
||||
'W' 144 r14;
|
||||
'W' 152 r15;
|
||||
'W' 160 r19;
|
||||
'W' 168 r20;
|
||||
'W' 176 r21;
|
||||
'W' 184 r22;
|
||||
'W' 192 r23;
|
||||
'W' 200 r24;
|
||||
'W' 208 r25;
|
||||
'W' 216 r26;
|
||||
'W' 224 r27;
|
||||
'W' 232 r28;
|
||||
{
|
||||
'W' 240 r30;
|
||||
'W' 240 usp;
|
||||
'W' 240 sp;
|
||||
};
|
||||
'W' 248 status;
|
||||
'W' 256 pc;
|
||||
'W' 264 r29;
|
||||
'W' 272 r16;
|
||||
'W' 280 r17;
|
||||
'W' 288 r18;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" type ", addr.type, "\n");
|
||||
print(" a0 ", addr.a0, "\n");
|
||||
print(" a1 ", addr.a1, "\n");
|
||||
print(" a2 ", addr.a2, "\n");
|
||||
print(" r0 ", addr.r0, "\n");
|
||||
print(" r1 ", addr.r1, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" r8 ", addr.r8, "\n");
|
||||
print(" r9 ", addr.r9, "\n");
|
||||
print(" r10 ", addr.r10, "\n");
|
||||
print(" r11 ", addr.r11, "\n");
|
||||
print(" r12 ", addr.r12, "\n");
|
||||
print(" r13 ", addr.r13, "\n");
|
||||
print(" r14 ", addr.r14, "\n");
|
||||
print(" r15 ", addr.r15, "\n");
|
||||
print(" r19 ", addr.r19, "\n");
|
||||
print(" r20 ", addr.r20, "\n");
|
||||
print(" r21 ", addr.r21, "\n");
|
||||
print(" r22 ", addr.r22, "\n");
|
||||
print(" r23 ", addr.r23, "\n");
|
||||
print(" r24 ", addr.r24, "\n");
|
||||
print(" r25 ", addr.r25, "\n");
|
||||
print(" r26 ", addr.r26, "\n");
|
||||
print(" r27 ", addr.r27, "\n");
|
||||
print(" r28 ", addr.r28, "\n");
|
||||
print("_12_ {\n");
|
||||
_12_(addr+240);
|
||||
print("}\n");
|
||||
print(" status ", addr.status, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" r29 ", addr.r29, "\n");
|
||||
print(" r16 ", addr.r16, "\n");
|
||||
print(" r17 ", addr.r17, "\n");
|
||||
print(" r18 ", addr.r18, "\n");
|
||||
};
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
complex Ureg addr;
|
||||
return addr.r26\X;
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/alpha");
|
||||
|
116
sys/lib/acid/arm
Executable file
116
sys/lib/acid/arm
Executable file
|
@ -0,0 +1,116 @@
|
|||
// ARM support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/arm/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
return *R14;
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("R0\t", *R0, " R1\t", *R1, " R2\t", *R2, "\n");
|
||||
print("R3\t", *R3, " R4\t", *R4, " R5\t", *R5, "\n");
|
||||
print("R6\t", *R6, " R7\t", *R7, " R8\t", *R8, "\n");
|
||||
print("R9\t", *R9, " R10\t", *R10, " R11\t", *R11, "\n");
|
||||
print("R12\t", *R12, " R13\t", *R13, " R14\t", *R14, "\n");
|
||||
print("R15\t", *R15, "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l;
|
||||
local pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*TYPE), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggr Ureg
|
||||
{
|
||||
'U' 0 r0;
|
||||
'U' 4 r1;
|
||||
'U' 8 r2;
|
||||
'U' 12 r3;
|
||||
'U' 16 r4;
|
||||
'U' 20 r5;
|
||||
'U' 24 r6;
|
||||
'U' 28 r7;
|
||||
'U' 32 r8;
|
||||
'U' 36 r9;
|
||||
'U' 40 r10;
|
||||
'U' 44 r11;
|
||||
'U' 48 r12;
|
||||
'U' 52 r13;
|
||||
'U' 56 r14;
|
||||
'U' 60 type;
|
||||
'U' 64 psr;
|
||||
'U' 68 pc;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" r0 ", addr.r0, "\n");
|
||||
print(" r1 ", addr.r1, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" r8 ", addr.r8, "\n");
|
||||
print(" r9 ", addr.r9, "\n");
|
||||
print(" r10 ", addr.r10, "\n");
|
||||
print(" r11 ", addr.r11, "\n");
|
||||
print(" r12 ", addr.r12, "\n");
|
||||
print(" r13 ", addr.r13, "\n");
|
||||
print(" r14 ", addr.r14, "\n");
|
||||
print(" type ", addr.type, "\n");
|
||||
print(" psr ", addr.psr, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
};
|
||||
|
||||
print("/sys/lib/acid/arm");
|
128
sys/lib/acid/coverage
Executable file
128
sys/lib/acid/coverage
Executable file
|
@ -0,0 +1,128 @@
|
|||
// Coverage library
|
||||
|
||||
defn coverage()
|
||||
{
|
||||
local lmap, lp, e, pc, n, l;
|
||||
|
||||
new();
|
||||
|
||||
bblock = {};
|
||||
|
||||
// find the first location in the text
|
||||
e = (map()[0][1])\i;
|
||||
|
||||
while e < etext-4 do {
|
||||
l = follow(e);
|
||||
if tail l != {} then {
|
||||
if match(l[0], bblock) < 0 then
|
||||
bblock = append bblock, l[0];
|
||||
if match(l[1], bblock) < 0 then
|
||||
bblock = append bblock, l[1];
|
||||
}
|
||||
e++;
|
||||
}
|
||||
|
||||
l = bblock;
|
||||
while l != {} do {
|
||||
*fmt(head l, bpfmt) = bpinst;
|
||||
l = tail l;
|
||||
}
|
||||
|
||||
while 1 do {
|
||||
cont();
|
||||
pc = *PC;
|
||||
n = match(pc, bblock);
|
||||
if n >= 0 then {
|
||||
pc = fmt(pc, bpfmt);
|
||||
*pc = @pc;
|
||||
bblock = delete bblock, n;
|
||||
}
|
||||
else {
|
||||
pstop(pid);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn eblock(addr)
|
||||
{
|
||||
addr = addr\i;
|
||||
|
||||
while addr < etext do {
|
||||
if (tail follow(addr)) != {} then
|
||||
return pcline(addr);
|
||||
addr++;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
defn basic(stsrc, ensrc, file)
|
||||
{
|
||||
local src, text;
|
||||
|
||||
if stsrc >= ensrc then
|
||||
return {};
|
||||
|
||||
print(file, ":", stsrc, ",", ensrc, "\n");
|
||||
src = match(file, srcfiles);
|
||||
|
||||
if src >= 0 then
|
||||
src = srctext[src];
|
||||
else
|
||||
src = findsrc(file);
|
||||
|
||||
if src == {} then
|
||||
print("no source for ", file, "\n");
|
||||
else {
|
||||
while stsrc <= ensrc do {
|
||||
text = src[stsrc];
|
||||
if text != {} then
|
||||
print("\t", stsrc, ":", text, "\n");
|
||||
stsrc = stsrc+1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn analyse(fnaddr)
|
||||
{
|
||||
local addr, l, tfn;
|
||||
|
||||
new();
|
||||
|
||||
tfn = fnbound(fnaddr);
|
||||
|
||||
l = bblock;
|
||||
while l do {
|
||||
addr = head l;
|
||||
|
||||
if addr >= tfn[0] && addr < tfn[1] then
|
||||
basic(pcline(addr), eblock(addr), pcfile(addr));
|
||||
|
||||
l = tail l;
|
||||
}
|
||||
kill(pid);
|
||||
}
|
||||
|
||||
defn report()
|
||||
{
|
||||
local addr, l;
|
||||
|
||||
new();
|
||||
|
||||
l = bblock;
|
||||
while l do {
|
||||
addr = head l;
|
||||
|
||||
basic(pcline(addr), eblock(addr), pcfile(addr));
|
||||
|
||||
l = tail l;
|
||||
}
|
||||
kill(pid);
|
||||
}
|
||||
|
||||
defn stopped(pid)
|
||||
{
|
||||
return {};
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/coverage");
|
387
sys/lib/acid/kernel
Executable file
387
sys/lib/acid/kernel
Executable file
|
@ -0,0 +1,387 @@
|
|||
include("/sys/lib/acid/syscall");
|
||||
|
||||
// print various /proc files
|
||||
defn fd() {
|
||||
rc("cat /proc/"+itoa(pid)+"/fd");
|
||||
}
|
||||
|
||||
defn segment() {
|
||||
rc("cat /proc/"+itoa(pid)+"/segment");
|
||||
}
|
||||
|
||||
defn ns() {
|
||||
rc("cat /proc/"+itoa(pid)+"/ns");
|
||||
}
|
||||
|
||||
defn qid(qid) {
|
||||
complex Qid qid;
|
||||
return itoa(qid.path\X)+"."+itoa(qid.vers\X);
|
||||
}
|
||||
|
||||
defn path(p) {
|
||||
complex Path p;
|
||||
if p != 0 then {
|
||||
return *(p.s\s);
|
||||
} else
|
||||
return "<null>";
|
||||
}
|
||||
|
||||
// print Image cache contents
|
||||
// requires include("/sys/src/9/xxx/segment.acid")
|
||||
IHASHSIZE = 64;
|
||||
defn imagecacheline(h) {
|
||||
while h != 0 do {
|
||||
complex Image h;
|
||||
print (h\X, " ", qid(h.qid), " type ", h.type\D, " ref ", h.ref, " next ", h.next\X, " ", cname(h.c.name), "\n");
|
||||
h = h.hash;
|
||||
}
|
||||
}
|
||||
|
||||
defn imagecache() {
|
||||
local i;
|
||||
|
||||
i=0; loop 1,IHASHSIZE do {
|
||||
imagecacheline(imagealloc.free[i]);
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
// dump channels
|
||||
defn chan(c) {
|
||||
local d, q;
|
||||
|
||||
c = (Chan)c;
|
||||
d=(Dev)(*(devtab+4*c.type));
|
||||
q=c.qid;
|
||||
print("chan(", c\X, "): ref=", c.ref\D, " #", d.dc\r, c.dev\D, " (", q.path, " ", q.vers\D, " ", q.type\X, ")");
|
||||
print(" fid=", c.fid\D, " iounit=", c.iounit\D);
|
||||
if c.ref != 0 then {
|
||||
print(" ", cname(c.name), " mchan=", c.mchan\X);
|
||||
if c.mchan != 0 then {
|
||||
print(" ", cname(c.mchan.name));
|
||||
}
|
||||
}
|
||||
print("\n");
|
||||
}
|
||||
|
||||
defn chans() {
|
||||
local c;
|
||||
|
||||
c = (Chan)chanalloc.list;
|
||||
while c != 0 do {
|
||||
if c.ref != 0 then
|
||||
chan(c);
|
||||
c=(Chan)c.link;
|
||||
}
|
||||
}
|
||||
|
||||
defn nchans() {
|
||||
local c, n;
|
||||
|
||||
n = 0;
|
||||
c = (Chan)chanalloc.list;
|
||||
while c != 0 do {
|
||||
if c.ref != 0 then
|
||||
n++;
|
||||
c = (Chan)c.link;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
defn activechanlist() {
|
||||
local l, n;
|
||||
|
||||
l = {};
|
||||
c = (Chan)chanalloc.list;
|
||||
while c != 0 do {
|
||||
if c.ref != 0 then
|
||||
l = append l,c;
|
||||
c = (Chan)c.link;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
defn difflist(a, b) {
|
||||
local l, x;
|
||||
|
||||
l = {};
|
||||
while a != {} do {
|
||||
x = head a;
|
||||
if match(x, b) == -1 then
|
||||
l = append l, x;
|
||||
a = tail a;
|
||||
}
|
||||
return l;
|
||||
}
|
||||
|
||||
_active_chan_list = {};
|
||||
defn newchans() {
|
||||
local l, new;
|
||||
|
||||
l = activechanlist();
|
||||
if _active_chan_list != {} then
|
||||
newerchans(_active_chan_list);
|
||||
_active_chan_list = l;
|
||||
}
|
||||
|
||||
defn newerchans(oldlist){
|
||||
local new;
|
||||
|
||||
new = difflist(activechanlist(), oldlist);
|
||||
while new != {} do {
|
||||
chan(head new);
|
||||
new = tail new;
|
||||
}
|
||||
}
|
||||
|
||||
// look for channels that refer to themselves
|
||||
defn badchans() {
|
||||
local bad, c, i, len, mtpt, p;
|
||||
|
||||
c = (Chan)chanalloc.list;
|
||||
while c != 0 do {
|
||||
if c.ref != 0 then {
|
||||
bad = "";
|
||||
p = (Path)c.path;
|
||||
if p != 0 then {
|
||||
path(p);
|
||||
mtpt = p.mtpt;
|
||||
len = p.mlen;
|
||||
i=0; loop 1,len do {
|
||||
if mtpt[i] == c then
|
||||
bad = bad+" mtpt self-ref";
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
if bad != "" then
|
||||
print("chan(", c\X, "):", bad, "\n");
|
||||
}
|
||||
c = (Chan)c.link;
|
||||
}
|
||||
}
|
||||
|
||||
// manipulate processes
|
||||
defn proctab(x) {
|
||||
return procalloc.arena+sizeofProc*x;
|
||||
}
|
||||
|
||||
defn proc(p) {
|
||||
complex Proc p;
|
||||
local s, i;
|
||||
|
||||
if p.state != 0 && p.pid != 0 && p.text != 0 then { // 0 is Dead
|
||||
s = p.psstate;
|
||||
if s == 0 then {
|
||||
s = "kproc";
|
||||
} else {
|
||||
s = *(s\s);
|
||||
}
|
||||
print(p\X, " ", p.pid, ": ", *(p.text\s), " ", *(p.user\s), " pc ", p.pc\X, " ", s, " (", *(statename[p.state]\s), ") ut ", p.time[0]\D, " st ", p.time[1]\D, " qpc ", p.qpc\X, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
defn procenv(p) {
|
||||
complex Proc p;
|
||||
local e, v;
|
||||
|
||||
e = p.egrp;
|
||||
complex Egrp e;
|
||||
v = e.entries;
|
||||
while v != 0 do {
|
||||
complex Evalue v;
|
||||
print(*(v.name\s), "=");
|
||||
printstringn(v.value, v.len);
|
||||
print("\n");
|
||||
v = v.link;
|
||||
}
|
||||
}
|
||||
|
||||
KSTACK=4096;
|
||||
|
||||
defn procstksize(p) {
|
||||
complex Proc p;
|
||||
local top, sp;
|
||||
|
||||
if p.state != 0 then { // 0 is Dead
|
||||
top = p.kstack+KSTACK;
|
||||
sp = *p.sched;
|
||||
print(top-sp\D, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
defn procstk(p) {
|
||||
complex Proc p;
|
||||
local l;
|
||||
|
||||
if p.state != 0 then { // 0 is Dead
|
||||
l = p.sched;
|
||||
if objtype=="386" then
|
||||
_stk(gotolabel, *l, linkreg(0), 0);
|
||||
else
|
||||
_stk(*(l+4), *l, linkreg(0), 0);
|
||||
}
|
||||
}
|
||||
|
||||
defn procs() {
|
||||
local i;
|
||||
|
||||
i=0; loop 1,conf.nproc do {
|
||||
proc(proctab(i));
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
defn stacks() {
|
||||
local i, p;
|
||||
|
||||
i=0; loop 1,conf.nproc do {
|
||||
p = (Proc)proctab(i);
|
||||
if p.state != 0 then {
|
||||
print("=========================================================\n");
|
||||
proc(p);
|
||||
procstk(p);
|
||||
}
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
defn stacksizes() {
|
||||
local i;
|
||||
|
||||
i=0; loop 1,conf.nproc do {
|
||||
procstksize(proctab(i));
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
// segment-related
|
||||
defn procsegs(p) {
|
||||
complex Proc p;
|
||||
local i;
|
||||
|
||||
i=0; loop 1,NSEG do {
|
||||
psegment(p.seg[i]);
|
||||
i = i+1;
|
||||
}
|
||||
}
|
||||
|
||||
segtypes = { "text", "data", "bss", "stack", "shared", "physical", "shdata", "map" };
|
||||
defn psegment(s) {
|
||||
complex Segment s;
|
||||
|
||||
if s != 0 then {
|
||||
print(s\X, " ", segtypes[s.type&SG_TYPE], " ", s.base\X, "-", s.top\X, " image ", s.image\X, "\n");
|
||||
}
|
||||
}
|
||||
|
||||
// find physical address for an address in a given process
|
||||
defn procaddr(p, a) {
|
||||
complex Proc p;
|
||||
local i, s, r;
|
||||
|
||||
r = 0;
|
||||
i=0; loop 1,NSEG do {
|
||||
s = p.seg[i];
|
||||
if s != 0 then {
|
||||
complex Segment s;
|
||||
if s.base <= a && a < s.top then {
|
||||
r = segaddr(s, a);
|
||||
}
|
||||
}
|
||||
i = i+1;
|
||||
}
|
||||
return r;
|
||||
}
|
||||
|
||||
// find an address in a given segment
|
||||
defn segaddr(s, a) {
|
||||
complex Segment s;
|
||||
local pte, pg;
|
||||
|
||||
a = a - s.base;
|
||||
if s.map == 0 || s.mapsize < a/PTEMAPMEM then {
|
||||
return 0;
|
||||
}
|
||||
|
||||
pte = s.map[a/PTEMAPMEM];
|
||||
if pte == 0 then {
|
||||
return 0;
|
||||
}
|
||||
|
||||
complex Pte pte;
|
||||
pg = pte.pages[(a%PTEMAPMEM)/BY2PG];
|
||||
if pg == 0 then {
|
||||
return 0;
|
||||
}
|
||||
|
||||
if pg & 1 then { // swapped out, return disk address
|
||||
return pg&~1;
|
||||
}
|
||||
|
||||
complex Page pg;
|
||||
return (KZERO|(pg.pa+(a%BY2PG)))\X;
|
||||
}
|
||||
|
||||
defn kzero() {
|
||||
return main - (main & 0x0FFFFFFF);
|
||||
}
|
||||
|
||||
// PC only
|
||||
PTEMAPMEM = (1024*1024);
|
||||
BY2PG = 4096;
|
||||
PTEPERTAB = (PTEMAPMEM/BY2PG);
|
||||
defn up() {
|
||||
local mach;
|
||||
|
||||
MACHADDR = KZERO+0x4000;
|
||||
mach = MACHADDR;
|
||||
complex Mach mach;
|
||||
return mach.externup;
|
||||
}
|
||||
|
||||
defn intrcount() {
|
||||
local p, pp, t, i, j;
|
||||
|
||||
p = intrtimes;
|
||||
i=0;
|
||||
loop 1,256 do {
|
||||
pp = p[i];
|
||||
i=i+1;
|
||||
if pp != 0 then {
|
||||
j=0;
|
||||
t=0;
|
||||
loop 1,1000 do {
|
||||
t = t+pp[j];
|
||||
j=j+1;
|
||||
}
|
||||
print(itoa(i, "%5d"), " ", itoa(t, "%11d"), "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/kernel");
|
||||
|
||||
defn needacid(s){
|
||||
print("\trc(\"cd /sys/src/9/", kdir, "; mk ", s, ".acid\")\n");
|
||||
print("\tinclude(\"/sys/src/9/", kdir, "/", s, ".acid\")\n");
|
||||
}
|
||||
|
||||
defn kinit() {
|
||||
if (map()[2]) != {} then { // map has more than two elements -> active proc
|
||||
kdir = "unknown";
|
||||
KZERO = kzero();
|
||||
|
||||
if objtype == "386" then {
|
||||
map({"*data", KZERO, 0xffffffff, KZERO});
|
||||
kdir="pc";
|
||||
}
|
||||
if (objtype == "mips" || objtype == "mips2") then {
|
||||
kdir = "ch";
|
||||
}
|
||||
if objtype == "alpha" then {
|
||||
map({"*data", KZERO, 0xffffffff, KZERO});
|
||||
kdir = "alpha";
|
||||
}
|
||||
needacid("proc");
|
||||
}
|
||||
}
|
188
sys/lib/acid/leak
Executable file
188
sys/lib/acid/leak
Executable file
|
@ -0,0 +1,188 @@
|
|||
//
|
||||
// usage: acid -l pool -l leak
|
||||
//
|
||||
include("/sys/src/libc/port/pool.acid");
|
||||
|
||||
defn
|
||||
dumppool(p, sum)
|
||||
{
|
||||
complex Pool p;
|
||||
a = p.arenalist;
|
||||
|
||||
print("A: ", p.arenalist\X, "\n");
|
||||
while a != 0 && a < 0xff000000 do {
|
||||
complex Arena a;
|
||||
dumparena(a, sum);
|
||||
a = a.down;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
dumparena(arena, sum)
|
||||
{
|
||||
local atail, b, nb;
|
||||
|
||||
atail = A2TB(arena);
|
||||
complex Bhdr arena;
|
||||
b = a;
|
||||
print("B: ", b\X, " ", atail\X, "\n");
|
||||
while b < atail && b.magic != ARENATAIL_MAGIC do {
|
||||
dumpblock(b, sum);
|
||||
nb = B2NB(b);
|
||||
if nb == b then {
|
||||
print("B2NB(", b\X, ") = b\n");
|
||||
b = atail; // end loop
|
||||
}
|
||||
if nb > atail then {
|
||||
b = (Bhdr)(b+4);
|
||||
print("lost at block ", (b-4)\X, ", scanning forward\n");
|
||||
while b < atail && b.magic != ALLOC_MAGIC && b.magic != FREE_MAGIC do
|
||||
b = (Bhdr)(b+4);
|
||||
print("stopped at ", b\X, " ", *b\X, "\n");
|
||||
}else
|
||||
b = nb;
|
||||
}
|
||||
if b != atail then
|
||||
print("found wrong tail to arena ", arena\X, " wanted ", atail\X, "\n");
|
||||
}
|
||||
|
||||
defn
|
||||
isptr(a)
|
||||
{
|
||||
if end <= a && a < xbloc then
|
||||
return 1;
|
||||
if 0xdefff000 <= a && a < 0xdffff000 then
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
lastalloc = 0;
|
||||
lastcount = 0;
|
||||
lastsize = 0;
|
||||
defn
|
||||
emitsum()
|
||||
{
|
||||
if lastalloc then
|
||||
print("summary ", lastalloc\a, " ", lastcount\D, " ", lastsize\D, "\n");
|
||||
lastalloc = 0;
|
||||
lastcount = 0;
|
||||
lastsize = 0;
|
||||
}
|
||||
|
||||
defn
|
||||
dumpblock(addr, sum)
|
||||
{
|
||||
complex Bhdr addr;
|
||||
|
||||
if addr.magic == ALLOC_MAGIC || (!sum && addr.magic == FREE_MAGIC) then {
|
||||
local a, x, s;
|
||||
|
||||
a = addr;
|
||||
complex Alloc a;
|
||||
|
||||
x = addr+8;
|
||||
if sum then {
|
||||
if *(addr+8) != lastalloc then {
|
||||
emitsum();
|
||||
lastalloc = *(addr+8);
|
||||
}
|
||||
lastcount = lastcount+1;
|
||||
lastsize = lastsize+a.size;
|
||||
}else{
|
||||
if addr.magic == ALLOC_MAGIC then
|
||||
s = "block";
|
||||
else
|
||||
s = "free";
|
||||
print(s, " ", addr\X, " ", a.size\X, " ");
|
||||
print(*(addr+8)\X, " ", *(addr+12)\X, " ",
|
||||
*(addr+8)\a, " ", *(addr+12)\a, "\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
dumprange(s, e, type)
|
||||
{
|
||||
local x, y;
|
||||
|
||||
print("range ", type, " ", s\X, " ", e\X, "\n");
|
||||
x = s;
|
||||
while x < e do {
|
||||
y = *(x\X);
|
||||
if isptr(y) then print("data ", x\X, " ", y\X, " ", type, "\n");
|
||||
x = x + 4;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
stacktop()
|
||||
{
|
||||
local e, m;
|
||||
|
||||
m = map();
|
||||
while m != {} do {
|
||||
e = head m;
|
||||
if e[0] == "*data" then
|
||||
return e[2];
|
||||
m = tail m;
|
||||
}
|
||||
return 0xdffff000;
|
||||
}
|
||||
|
||||
defn
|
||||
dumpmem()
|
||||
{
|
||||
local s, top;
|
||||
|
||||
xbloc = *bloc;
|
||||
// assume map()[1] is "data"
|
||||
dumprange(map()[1][1], end, "bss"); // bss
|
||||
dumprange(end, xbloc, "alloc"); // allocated
|
||||
|
||||
top = stacktop() - 8;
|
||||
if top-0x01000000 < *SP && *SP < top then
|
||||
s = *SP;
|
||||
else
|
||||
s = top-32*1024;
|
||||
|
||||
dumprange(s, top, "stack");
|
||||
}
|
||||
|
||||
defn
|
||||
dumpregs()
|
||||
{
|
||||
dumprange(0, sizeofUreg, "reg");
|
||||
}
|
||||
|
||||
|
||||
defn
|
||||
leakdump(l)
|
||||
{
|
||||
print("==LEAK BEGIN==\n");
|
||||
dumppool(*mainmem, 0);
|
||||
dumpmem();
|
||||
dumpregs();
|
||||
while l != {} do {
|
||||
setproc(head l);
|
||||
dumpregs();
|
||||
l = tail l;
|
||||
}
|
||||
print("==LEAK END==\n");
|
||||
}
|
||||
|
||||
defn
|
||||
blockdump()
|
||||
{
|
||||
print("==BLOCK BEGIN==\n");
|
||||
dumppool(*mainmem, 0);
|
||||
print("==BLOCK END==\n");
|
||||
}
|
||||
|
||||
defn
|
||||
blocksummary()
|
||||
{
|
||||
print("==BLOCK BEGIN==\n");
|
||||
dumppool(*mainmem, 1);
|
||||
emitsum();
|
||||
print("==BLOCK END==\n");
|
||||
}
|
217
sys/lib/acid/mips
Executable file
217
sys/lib/acid/mips
Executable file
|
@ -0,0 +1,217 @@
|
|||
// Mips support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/mips/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("R1\t", *R1, " R2\t", *R2, " R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, " R5\t", *R5, " R6\t", *R6, "\n");
|
||||
print("R7\t", *R7, " R8\t", *R8, " R9\t", *R9, "\n");
|
||||
print("R10\t", *R10, " R11\t", *R11, " R12\t", *R12, "\n");
|
||||
print("R13\t", *R13, " R14\t", *R14, " R15\t", *R15, "\n");
|
||||
print("R16\t", *R16, " R17\t", *R17, " R18\t", *R18, "\n");
|
||||
print("R19\t", *R19, " R20\t", *R20, " R21\t", *R21, "\n");
|
||||
print("R22\t", *R22, " R23\t", *R23, " R24\t", *R24, "\n");
|
||||
print("R25\t", *R25, " R26\t", *R26, " R27\t", *R27, "\n");
|
||||
print("R28\t", *R28, " R29\t", *SP, " R30\t", *R30, "\n");
|
||||
print("R31\t", *R31, "\n");
|
||||
}
|
||||
|
||||
defn Fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'G'), "\tF2\t", *fmt(F2, 'G'), "\n");
|
||||
print("F4\t", *fmt(F4, 'G'), "\tF6\t", *fmt(F6, 'G'), "\n");
|
||||
print("F8\t", *fmt(F8, 'G'), "\tF10\t", *fmt(F10, 'G'), "\n");
|
||||
print("F12\t", *fmt(F12, 'G'), "\tF14\t", *fmt(F14, 'G'), "\n");
|
||||
print("F16\t", *fmt(F16, 'G'), "\tF18\t", *fmt(F18, 'G'), "\n");
|
||||
print("F20\t", *fmt(F20, 'G'), "\tF22\t", *fmt(F22, 'G'), "\n");
|
||||
print("F24\t", *fmt(F24, 'G'), "\tF26\t", *fmt(F26, 'G'), "\n");
|
||||
print("F28\t", *fmt(F28, 'G'), "\tF30\t", *fmt(F30, 'G'), "\n");
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'g'), "\tF1\t", *fmt(F1, 'g'), "\n");
|
||||
print("F2\t", *fmt(F2, 'g'), "\tF3\t", *fmt(F3, 'g'), "\n");
|
||||
print("F4\t", *fmt(F4, 'g'), "\tF5\t", *fmt(F5, 'g'), "\n");
|
||||
print("F6\t", *fmt(F6, 'g'), "\tF7\t", *fmt(F7, 'g'), "\n");
|
||||
print("F8\t", *fmt(F8, 'g'), "\tF9\t", *fmt(F9, 'g'), "\n");
|
||||
print("F10\t", *fmt(F10, 'g'), "\tF11\t", *fmt(F11, 'g'), "\n");
|
||||
print("F12\t", *fmt(F12, 'g'), "\tF13\t", *fmt(F13, 'g'), "\n");
|
||||
print("F14\t", *fmt(F14, 'g'), "\tF15\t", *fmt(F15, 'g'), "\n");
|
||||
print("F16\t", *fmt(F16, 'g'), "\tF17\t", *fmt(F17, 'g'), "\n");
|
||||
print("F18\t", *fmt(F18, 'g'), "\tF19\t", *fmt(F19, 'g'), "\n");
|
||||
print("F20\t", *fmt(F20, 'g'), "\tF21\t", *fmt(F21, 'g'), "\n");
|
||||
print("F22\t", *fmt(F22, 'g'), "\tF23\t", *fmt(F23, 'g'), "\n");
|
||||
print("F24\t", *fmt(F24, 'g'), "\tF25\t", *fmt(F25, 'g'), "\n");
|
||||
print("F26\t", *fmt(F26, 'g'), "\tF27\t", *fmt(F27, 'g'), "\n");
|
||||
print("F28\t", *fmt(F28, 'g'), "\tF29\t", *fmt(F29, 'g'), "\n");
|
||||
print("F30\t", *fmt(F30, 'g'), "\tF31\t", *fmt(F31, 'g'), "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc, link, cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
|
||||
link = *R31;
|
||||
print("SP\t", *SP, "\tLINK\t", link, " ", fmt(link, 'a'), " ");
|
||||
pfl(link);
|
||||
|
||||
cause = *CAUSE;
|
||||
print("STATUS\t", *STATUS, "\tCAUSE\t", cause, " ", reason(cause), "\n");
|
||||
print("TLBVIR\t", *TLBVIRT, "\tBADVADR\t", *BADVADDR, "\n");
|
||||
|
||||
print("HI\t", *HI, "\tLO\t", *LO, "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l, pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*CAUSE), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sizeofUreg = 152;
|
||||
aggr Ureg
|
||||
{
|
||||
'X' 0 status;
|
||||
'X' 4 pc;
|
||||
{
|
||||
'X' 8 sp;
|
||||
'X' 8 usp;
|
||||
};
|
||||
'X' 12 cause;
|
||||
'X' 16 badvaddr;
|
||||
'X' 20 tlbvirt;
|
||||
'X' 24 hi;
|
||||
'X' 28 lo;
|
||||
'X' 32 r31;
|
||||
'X' 36 r30;
|
||||
'X' 40 r28;
|
||||
'X' 44 r27;
|
||||
'X' 48 r26;
|
||||
'X' 52 r25;
|
||||
'X' 56 r24;
|
||||
'X' 60 r23;
|
||||
'X' 64 r22;
|
||||
'X' 68 r21;
|
||||
'X' 72 r20;
|
||||
'X' 76 r19;
|
||||
'X' 80 r18;
|
||||
'X' 84 r17;
|
||||
'X' 88 r16;
|
||||
'X' 92 r15;
|
||||
'X' 96 r14;
|
||||
'X' 100 r13;
|
||||
'X' 104 r12;
|
||||
'X' 108 r11;
|
||||
'X' 112 r10;
|
||||
'X' 116 r9;
|
||||
'X' 120 r8;
|
||||
'X' 124 r7;
|
||||
'X' 128 r6;
|
||||
'X' 132 r5;
|
||||
'X' 136 r4;
|
||||
'X' 140 r3;
|
||||
'X' 144 r2;
|
||||
'X' 148 r1;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" status ", addr.status, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" sp ", addr.sp, "\n");
|
||||
print(" cause ", addr.cause, "\n");
|
||||
print(" badvaddr ", addr.badvaddr, "\n");
|
||||
print(" tlbvirt ", addr.tlbvirt, "\n");
|
||||
print(" hi ", addr.hi, "\n");
|
||||
print(" lo ", addr.lo, "\n");
|
||||
print(" r31 ", addr.r31, "\n");
|
||||
print(" r30 ", addr.r30, "\n");
|
||||
print(" r28 ", addr.r28, "\n");
|
||||
print(" r27 ", addr.r27, "\n");
|
||||
print(" r26 ", addr.r26, "\n");
|
||||
print(" r25 ", addr.r25, "\n");
|
||||
print(" r24 ", addr.r24, "\n");
|
||||
print(" r23 ", addr.r23, "\n");
|
||||
print(" r22 ", addr.r22, "\n");
|
||||
print(" r21 ", addr.r21, "\n");
|
||||
print(" r20 ", addr.r20, "\n");
|
||||
print(" r19 ", addr.r19, "\n");
|
||||
print(" r18 ", addr.r18, "\n");
|
||||
print(" r17 ", addr.r17, "\n");
|
||||
print(" r16 ", addr.r16, "\n");
|
||||
print(" r15 ", addr.r15, "\n");
|
||||
print(" r14 ", addr.r14, "\n");
|
||||
print(" r13 ", addr.r13, "\n");
|
||||
print(" r12 ", addr.r12, "\n");
|
||||
print(" r11 ", addr.r11, "\n");
|
||||
print(" r10 ", addr.r10, "\n");
|
||||
print(" r9 ", addr.r9, "\n");
|
||||
print(" r8 ", addr.r8, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r1 ", addr.r1, "\n");
|
||||
};
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
complex Ureg addr;
|
||||
return addr.r31\X;
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/mips");
|
169
sys/lib/acid/network
Executable file
169
sys/lib/acid/network
Executable file
|
@ -0,0 +1,169 @@
|
|||
_ni=0; // network indent level
|
||||
|
||||
defn
|
||||
_ni() {
|
||||
loop 1,_ni do {
|
||||
print("\t");
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
ipdev(n) {
|
||||
_ipfs(*(ipfs+4*n));
|
||||
}
|
||||
|
||||
// the funny _foo/foo pairs exist so that if we get
|
||||
// interrupted in the middle of one of these, _ni will
|
||||
// get reset to 0 next time an external call happens.
|
||||
|
||||
defn
|
||||
_ipfs(fs) {
|
||||
complex Fs fs;
|
||||
local i;
|
||||
|
||||
print("ipfs(", fs\X, ") #I", fs.dev\D, "\n");
|
||||
i=0;
|
||||
_ni = _ni+1;
|
||||
while i < fs.np do {
|
||||
_proto(*(fs.p+i*4));
|
||||
i = i + 1;
|
||||
}
|
||||
_ni = _ni-1;
|
||||
}
|
||||
|
||||
defn
|
||||
ipfs(fs) {
|
||||
_ni = 0;
|
||||
_ipfs(fs);
|
||||
}
|
||||
|
||||
defn
|
||||
_proto(p) {
|
||||
local c;
|
||||
complex Proto p;
|
||||
_ni();
|
||||
print("proto(", p\X, ") ", *(p.name\s), "\n");
|
||||
_ni = _ni+1;
|
||||
local i;
|
||||
i = 0;
|
||||
while i < p.nc do {
|
||||
c = *(p.conv+i*4);
|
||||
complex Conv c;
|
||||
if c != 0 && c.inuse then
|
||||
_conv(*(p.conv+i*4));
|
||||
i = i + 1;
|
||||
}
|
||||
_ni = _ni - 1;
|
||||
}
|
||||
|
||||
defn
|
||||
proto(p) {
|
||||
_ni = 0;
|
||||
_proto(p);
|
||||
}
|
||||
|
||||
defn
|
||||
_conv(c) {
|
||||
complex Conv c;
|
||||
_ni();
|
||||
local p;
|
||||
p = c.p;
|
||||
complex Proto p;
|
||||
print("conv(", c\X, ") ", *(p.name\s), "/", c.x\D, " ",
|
||||
iptostr(*(c.laddr+12)), "!", c.lport\D, " ", iptostr(*(c.raddr+12)),
|
||||
"!", c.rport\D, " rq ", qtostr(c.rq), " wq ", qtostr(c.wq),
|
||||
" eq ", qtostr(c.eq), "\n");
|
||||
}
|
||||
|
||||
defn
|
||||
conv(c) {
|
||||
_ni = 0;
|
||||
_conv(c);
|
||||
}
|
||||
|
||||
defn
|
||||
iptostr(a)
|
||||
{
|
||||
// BUG: little endian
|
||||
return itoa(a&0xFF)+"."+itoa((a>>8)&0xFF)+"."+itoa((a>>16)&0xFF)+"."+itoa((a>>24)&0xFF);
|
||||
}
|
||||
|
||||
defn
|
||||
qtostr(q)
|
||||
{
|
||||
complex Queue q;
|
||||
|
||||
return "queue("+itoa(q, "%lux")+") ["+itoa(q.len, "%d")+","+itoa(q.dlen, "%d")+","+itoa(qblocks(q), "%d")+"]";
|
||||
}
|
||||
|
||||
defn
|
||||
qblocks(q)
|
||||
{
|
||||
complex Queue q;
|
||||
local b, n;
|
||||
|
||||
b = q.bfirst;
|
||||
n = 0;
|
||||
while b != 0 do {
|
||||
n = n + 1;
|
||||
complex Block b;
|
||||
b = b.next;
|
||||
}
|
||||
return n;
|
||||
}
|
||||
|
||||
defn
|
||||
_queue(q)
|
||||
{
|
||||
complex Queue q;
|
||||
local b;
|
||||
|
||||
print("queue(", q\X, ") len ", q.len\D, " dlen ", q.dlen\D, " limit ", q.limit\D, " nblocks ", qblocks(q)\D);
|
||||
if q.state & Qstarve then
|
||||
print(" starve");
|
||||
if q.state & Qmsg then
|
||||
print(" msg");
|
||||
if q.state & Qclosed then
|
||||
print(" closed");
|
||||
if q.state & Qflow then
|
||||
print(" flow");
|
||||
if q.state & Qcoalesce then
|
||||
print(" coalesce");
|
||||
print("\n");
|
||||
|
||||
b = q.bfirst;
|
||||
_ni = _ni+1;
|
||||
while b != 0 do {
|
||||
_block(b);
|
||||
complex Block b;
|
||||
b = b.next;
|
||||
}
|
||||
_ni = _ni - 1;
|
||||
}
|
||||
|
||||
defn
|
||||
queue(q)
|
||||
{
|
||||
_ni = 0;
|
||||
_queue(q);
|
||||
}
|
||||
|
||||
defn
|
||||
_block(b)
|
||||
{
|
||||
complex Block b;
|
||||
|
||||
_ni();
|
||||
print("block(", b\X, ") base ", b.base\X, " rp ", b.rp\X, "/", b.rp-b.base\D, " wp ", b.wp\X, "/", b.wp-b.base\D, " lim ", b.lim\X, "/", b.lim-b.base\D, "\n");
|
||||
}
|
||||
|
||||
defn
|
||||
block(b)
|
||||
{
|
||||
_ni = 0;
|
||||
block(b);
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/network");
|
||||
needacid("tcp");
|
||||
needacid("qio");
|
306
sys/lib/acid/pool
Executable file
306
sys/lib/acid/pool
Executable file
|
@ -0,0 +1,306 @@
|
|||
include("/sys/src/libc/port/pool.acid");
|
||||
|
||||
aggr Byte {
|
||||
'b' 0 byte;
|
||||
};
|
||||
|
||||
defn
|
||||
byteat(addr)
|
||||
{
|
||||
local x;
|
||||
complex Byte addr;
|
||||
x = addr.byte;
|
||||
return x\d;
|
||||
}
|
||||
|
||||
defn
|
||||
B2T(addr) {
|
||||
complex Bhdr addr;
|
||||
addr = addr+addr.size-sizeofBtail;
|
||||
complex Btail addr;
|
||||
return addr;
|
||||
}
|
||||
|
||||
defn
|
||||
B2D(addr) {
|
||||
local x;
|
||||
x = addr+sizeofBhdr;
|
||||
return x\X;
|
||||
}
|
||||
|
||||
defn
|
||||
D2B(addr) {
|
||||
local x;
|
||||
x = addr-sizeofBhdr;
|
||||
complex Bhdr x;
|
||||
return x;
|
||||
}
|
||||
|
||||
defn
|
||||
B2NB(addr) {
|
||||
complex Bhdr addr;
|
||||
addr = addr+addr.size;
|
||||
complex Bhdr addr;
|
||||
return addr;
|
||||
}
|
||||
|
||||
defn
|
||||
A2TB(addr) {
|
||||
local b;
|
||||
complex Arena addr;
|
||||
b = addr+addr.asize-sizeofBhdr;
|
||||
complex Bhdr b;
|
||||
return b;
|
||||
}
|
||||
|
||||
defn
|
||||
A2B(addr) {
|
||||
return B2NB(addr);
|
||||
}
|
||||
|
||||
defn
|
||||
B2PT(addr) {
|
||||
complex Bhdr addr;
|
||||
addr = addr-sizeofBtail;
|
||||
complex Btail addr;
|
||||
return addr;
|
||||
}
|
||||
|
||||
defn
|
||||
SHORT(addr) {
|
||||
local hi, lo;
|
||||
|
||||
hi = byteat(addr);
|
||||
lo = byteat(addr+1);
|
||||
return lo+hi*256;
|
||||
}
|
||||
|
||||
defn
|
||||
Btail(addr) {
|
||||
complex Btail addr;
|
||||
print(" magic0 ", addr.magic0, "\n");
|
||||
print(" datadiff ", SHORT(addr.datasize), "\n");
|
||||
print(" magic1 ", addr.magic1, "\n");
|
||||
print(" size ", addr.size\X, "\n");
|
||||
print(" hdr ", addr+sizeofBtail-addr.size\X, "\n");
|
||||
};
|
||||
|
||||
defn
|
||||
Tail(addr)
|
||||
{
|
||||
print(" ", B2T(addr)\X, "\n");
|
||||
Btail(B2T(addr));
|
||||
}
|
||||
|
||||
defn
|
||||
Magic(m)
|
||||
{
|
||||
if m == FREE_MAGIC then
|
||||
return "free";
|
||||
if m == ARENA_MAGIC then
|
||||
return "arena";
|
||||
if m == UNKEMPT_MAGIC then
|
||||
return "unkempt";
|
||||
if m == KEMPT_MAGIC then
|
||||
return "kempt";
|
||||
if m == ARENATAIL_MAGIC then
|
||||
return "arenatail";
|
||||
if m == DEAD_MAGIC then
|
||||
return "dead";
|
||||
return "unknown magic";
|
||||
}
|
||||
|
||||
defn
|
||||
Block(addr)
|
||||
{
|
||||
complex Bhdr addr;
|
||||
print(" ", Magic(addr.magic), "\n");
|
||||
print(" data ", B2D(addr), "\n");
|
||||
print(" datasize ", getdsize(addr), "\n");
|
||||
Bhdr(addr);
|
||||
Tail(addr);
|
||||
}
|
||||
|
||||
defn
|
||||
getdsize(addr)
|
||||
{
|
||||
complex Bhdr addr;
|
||||
local x;
|
||||
|
||||
x = addr.size\d;
|
||||
x = x-SHORT(B2T(addr).datasize);
|
||||
return x\d;
|
||||
}
|
||||
|
||||
defn
|
||||
datamagic(x)
|
||||
{
|
||||
x = x%4;
|
||||
if x == 0 then return 0xFE;
|
||||
if x == 1 then return 0xF1;
|
||||
if x == 2 then return 0xF0;
|
||||
if x == 3 then return 0xFA;
|
||||
}
|
||||
|
||||
defn
|
||||
checkblock(addr)
|
||||
{
|
||||
local badmagic, datamagic, a, b, t, q, n, dsize, taddr, checked;
|
||||
complex Bhdr addr;
|
||||
taddr = B2T(addr);
|
||||
complex Btail taddr;
|
||||
|
||||
if addr.magic == FREE_MAGIC || addr.magic == UNKEMPT_MAGIC then {
|
||||
if taddr.magic0 != TAIL_MAGIC0 || taddr.magic1 != TAIL_MAGIC1 then
|
||||
print(addr\X, " corrupt tail magic\n");
|
||||
if taddr.size != addr.size then
|
||||
print(addr\X, " corrupt tail header pointer\n");
|
||||
}
|
||||
|
||||
if addr.magic == ARENA_MAGIC then {
|
||||
taddr = A2TB(addr);
|
||||
if taddr.magic != ARENATAIL_MAGIC then
|
||||
print(addr\X, " arena with bad tail block\n");
|
||||
else
|
||||
addr = taddr;
|
||||
}
|
||||
|
||||
if addr.magic == ARENATAIL_MAGIC then {
|
||||
if addr.size != 0 then
|
||||
print(addr\X, " bad size in arena tail\n");
|
||||
}
|
||||
|
||||
if addr.magic == KEMPT_MAGIC then {
|
||||
a = addr;
|
||||
complex Alloc a;
|
||||
if a.size > 1024*1024*1024 then
|
||||
print(addr\X, " block ridiculously large\n");
|
||||
t = B2T(addr);
|
||||
if t.magic0 != TAIL_MAGIC0 || t.magic1 != TAIL_MAGIC1 then
|
||||
print(addr\X, " bad tail magic\n");
|
||||
if t.size != addr.size then
|
||||
print(addr\X, " bad tail pointer\n");
|
||||
dsize = getdsize(a);
|
||||
if dsize > a.size then
|
||||
print(addr\X, " too much data in block\n");
|
||||
q = B2D(a)\X+dsize;
|
||||
n = 4;
|
||||
if q+4 > t then
|
||||
n = t-q;
|
||||
badmagic = 0;
|
||||
loop 0,n-1 do {
|
||||
if byteat(q) != datamagic(q) then {
|
||||
badmagic=1;
|
||||
}
|
||||
q = q+1;
|
||||
}
|
||||
if badmagic then
|
||||
print(addr\X, " size ", dsize, " user has overwritten boundary\n");
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
checkarena(arena)
|
||||
{
|
||||
local atail, b;
|
||||
|
||||
atail = A2TB(arena);
|
||||
complex Bhdr arena;
|
||||
b = arena;
|
||||
while b.magic != ARENATAIL_MAGIC && b < atail do {
|
||||
checkblock(b);
|
||||
if B2NB(b) == b then {
|
||||
print("B2NB(", b\X, ") = b\n");
|
||||
b = atail; // end loop
|
||||
}
|
||||
b = B2NB(b);
|
||||
}
|
||||
|
||||
checkblock(b);
|
||||
if b != atail then
|
||||
print("found wrong tail to arena ", arena\X, "\n");
|
||||
}
|
||||
|
||||
defn
|
||||
checkpool(p)
|
||||
{
|
||||
complex Pool p;
|
||||
local a;
|
||||
a = p.arenalist;
|
||||
|
||||
while a != 0 do {
|
||||
complex Arena a;
|
||||
checkarena(a);
|
||||
a = a.down;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
gendumptree(f, in, s)
|
||||
{
|
||||
complex Free f;
|
||||
|
||||
loop 1,in do {print(" ");}
|
||||
print(s, " size ", f.size\D, " left ", f.left\X, " right ", f.right\X, "\n");
|
||||
if f.left != 0 && f.left < 0x7FFFFFFF then
|
||||
gendumptree(f.left, in+1, "l");
|
||||
if f.right != 0 && f.right < 0x7FFFFFFF then
|
||||
gendumptree(f.right, in+1, "r");
|
||||
}
|
||||
|
||||
defn
|
||||
dumptree(f)
|
||||
{
|
||||
gendumptree(f, 0, "*");
|
||||
}
|
||||
|
||||
defn
|
||||
poolwhopointsat(p, addr)
|
||||
{
|
||||
complex Pool p;
|
||||
local a;
|
||||
|
||||
a = p.arenalist;
|
||||
while a != 0 do {
|
||||
complex Arena a;
|
||||
arenawhopointsat(a, addr);
|
||||
a = a.down;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
arenawhopointsat(arena, addr)
|
||||
{
|
||||
local atail, b;
|
||||
|
||||
atail = A2TB(arena);
|
||||
complex Bhdr arena;
|
||||
b = arena;
|
||||
while b < atail do {
|
||||
if *b == addr then
|
||||
print(b\X, "\n");
|
||||
b = b+4;
|
||||
}
|
||||
}
|
||||
|
||||
defn
|
||||
whopointsat(addr)
|
||||
{
|
||||
poolwhopointsat(*mainmem, addr);
|
||||
}
|
||||
|
||||
defn
|
||||
blockhdr(addr)
|
||||
{
|
||||
addr = addr & ~3;
|
||||
|
||||
while *addr != FREE_MAGIC
|
||||
&& *addr != ARENA_MAGIC
|
||||
&& *addr != UNKEMPT_MAGIC
|
||||
&& *addr != KEMPT_MAGIC
|
||||
&& *addr != ARENATAIL_MAGIC
|
||||
do
|
||||
addr = addr-4;
|
||||
return addr;
|
||||
}
|
||||
|
574
sys/lib/acid/port
Executable file
574
sys/lib/acid/port
Executable file
|
@ -0,0 +1,574 @@
|
|||
// portable acid for all architectures
|
||||
|
||||
defn pfl(addr)
|
||||
{
|
||||
print(pcfile(addr), ":", pcline(addr), "\n");
|
||||
}
|
||||
|
||||
defn
|
||||
notestk(addr)
|
||||
{
|
||||
local pc, sp;
|
||||
complex Ureg addr;
|
||||
|
||||
pc = addr.pc\X;
|
||||
sp = addr.sp\X;
|
||||
|
||||
print("Note pc:", pc, " sp:", sp, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
_stk(pc, sp, linkreg(addr), 1);
|
||||
}
|
||||
|
||||
defn
|
||||
notelstk(addr)
|
||||
{
|
||||
local pc, sp;
|
||||
complex Ureg addr;
|
||||
|
||||
pc = addr.pc\X;
|
||||
sp = addr.sp\X;
|
||||
|
||||
print("Note pc:", pc, " sp:", sp, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
_stk(pc, sp, linkreg(addr), 1);
|
||||
}
|
||||
|
||||
defn labstk(l) // trace from a label
|
||||
{
|
||||
_stk(*(l+4), *l, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn params(param)
|
||||
{
|
||||
while param do {
|
||||
sym = head param;
|
||||
print(sym[0], "=", itoa(sym[1], "%ux"));
|
||||
param = tail param;
|
||||
if param then
|
||||
print (",");
|
||||
}
|
||||
}
|
||||
|
||||
stkprefix = "";
|
||||
stkignore = {};
|
||||
stkend = 0;
|
||||
|
||||
defn locals(l)
|
||||
{
|
||||
local sym;
|
||||
|
||||
while l do {
|
||||
sym = head l;
|
||||
print(stkprefix, "\t", sym[0], "=", itoa(sym[1], "%ux"), "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
|
||||
defn _stkign(file)
|
||||
{
|
||||
s = stkignore;
|
||||
while s do {
|
||||
if regexp(head s, file) then
|
||||
return 1;
|
||||
s = tail s;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
// print a stack trace
|
||||
//
|
||||
// in a run of leading frames in files matched by regexps in stkignore,
|
||||
// only print the last one.
|
||||
defn _stk(pc, sp, link, dolocals)
|
||||
{
|
||||
local stk, ign, last, lastpc;
|
||||
|
||||
stk = strace(pc, sp, link);
|
||||
if stkignore then
|
||||
ign = 1;
|
||||
else
|
||||
ign = 0;
|
||||
last = stk;
|
||||
lastpc = pc;
|
||||
while stk do {
|
||||
if ign then {
|
||||
if !_stkign(pcfile(pc)) then {
|
||||
ign = 0;
|
||||
stk = last;
|
||||
pc = lastpc;
|
||||
}
|
||||
}
|
||||
frame = head stk;
|
||||
if !ign then {
|
||||
print(stkprefix, fmt(frame[0], 'a'), "(");
|
||||
params(frame[2]);
|
||||
print(")+", itoa(pc-frame[0], "%ux"), " ");
|
||||
pfl(pc);
|
||||
if dolocals then
|
||||
locals(frame[3]);
|
||||
}
|
||||
last = stk;
|
||||
lastpc = pc;
|
||||
stk = tail stk;
|
||||
pc = frame[1];
|
||||
}
|
||||
print(stkprefix, fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
}
|
||||
|
||||
defn findsrc(file)
|
||||
{
|
||||
local lst, src;
|
||||
|
||||
if file[0] == '/' then {
|
||||
src = file(file);
|
||||
if src != {} then {
|
||||
srcfiles = append srcfiles, file;
|
||||
srctext = append srctext, src;
|
||||
return src;
|
||||
}
|
||||
return {};
|
||||
}
|
||||
|
||||
lst = srcpath;
|
||||
while head lst do {
|
||||
src = file(head lst+file);
|
||||
if src != {} then {
|
||||
srcfiles = append srcfiles, file;
|
||||
srctext = append srctext, src;
|
||||
return src;
|
||||
}
|
||||
lst = tail lst;
|
||||
}
|
||||
}
|
||||
|
||||
defn line(addr)
|
||||
{
|
||||
local src, file;
|
||||
|
||||
file = pcfile(addr);
|
||||
src = match(file, srcfiles);
|
||||
|
||||
if src >= 0 then
|
||||
src = srctext[src];
|
||||
else
|
||||
src = findsrc(file);
|
||||
|
||||
if src == {} then {
|
||||
print("no source for ", file, "\n");
|
||||
return {};
|
||||
}
|
||||
line = pcline(addr)-1;
|
||||
print(file, ":", src[line], "\n");
|
||||
}
|
||||
|
||||
defn addsrcdir(dir)
|
||||
{
|
||||
dir = dir+"/";
|
||||
|
||||
if match(dir, srcpath) >= 0 then {
|
||||
print("already in srcpath\n");
|
||||
return {};
|
||||
}
|
||||
|
||||
srcpath = {dir}+srcpath;
|
||||
}
|
||||
|
||||
defn source()
|
||||
{
|
||||
local l;
|
||||
|
||||
l = srcpath;
|
||||
while l do {
|
||||
print(head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
l = srcfiles;
|
||||
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
|
||||
defn Bsrc(addr)
|
||||
{
|
||||
local lst;
|
||||
|
||||
lst = srcpath;
|
||||
file = pcfile(addr);
|
||||
if file[0] == '/' && access(file) then {
|
||||
rc("B "+file+":"+itoa(pcline(addr)));
|
||||
return {};
|
||||
}
|
||||
while head lst do {
|
||||
name = head lst+file;
|
||||
if access(name) then {
|
||||
rc("B "+name+":"+itoa(pcline(addr)));
|
||||
return {};
|
||||
}
|
||||
lst = tail lst;
|
||||
}
|
||||
print("no source for ", file, "\n");
|
||||
}
|
||||
|
||||
defn srcline(addr)
|
||||
{
|
||||
local text, cline, line, file, src;
|
||||
file = pcfile(addr);
|
||||
src = match(file,srcfiles);
|
||||
if (src>=0) then
|
||||
src = srctext[src];
|
||||
else
|
||||
src = findsrc(file);
|
||||
if (src=={}) then
|
||||
{
|
||||
return "(no source)";
|
||||
}
|
||||
return src[pcline(addr)-1];
|
||||
}
|
||||
|
||||
defn src(addr)
|
||||
{
|
||||
local src, file, line, cline, text;
|
||||
|
||||
file = pcfile(addr);
|
||||
src = match(file, srcfiles);
|
||||
|
||||
if src >= 0 then
|
||||
src = srctext[src];
|
||||
else
|
||||
src = findsrc(file);
|
||||
|
||||
if src == {} then {
|
||||
print("no source for ", file, "\n");
|
||||
return {};
|
||||
}
|
||||
|
||||
cline = pcline(addr)-1;
|
||||
print(file, ":", cline+1, "\n");
|
||||
line = cline-5;
|
||||
loop 0,10 do {
|
||||
if line >= 0 then {
|
||||
text = src[line];
|
||||
if text == {} then
|
||||
return {};
|
||||
if line == cline then
|
||||
print(">");
|
||||
else
|
||||
print(" ");
|
||||
print(line+1, "\t", text, "\n");
|
||||
}
|
||||
line = line+1;
|
||||
}
|
||||
}
|
||||
|
||||
defn step() // single step the process
|
||||
{
|
||||
local lst, lpl, addr, bput;
|
||||
|
||||
bput = 0;
|
||||
if match(*PC, bplist) >= 0 then { // Sitting on a breakpoint
|
||||
bput = fmt(*PC, bpfmt);
|
||||
*bput = @bput;
|
||||
}
|
||||
|
||||
lst = follow(*PC);
|
||||
|
||||
lpl = lst;
|
||||
while lpl do { // place break points
|
||||
*(head lpl) = bpinst;
|
||||
lpl = tail lpl;
|
||||
}
|
||||
|
||||
startstop(pid); // do the step
|
||||
|
||||
while lst do { // remove the breakpoints
|
||||
addr = fmt(head lst, bpfmt);
|
||||
*addr = @addr;
|
||||
lst = tail lst;
|
||||
}
|
||||
if bput != 0 then
|
||||
*bput = bpinst;
|
||||
}
|
||||
|
||||
defn bpset(addr) // set a breakpoint
|
||||
{
|
||||
if status(pid) != "Stopped" then {
|
||||
print("Waiting...\n");
|
||||
stop(pid);
|
||||
}
|
||||
if match(addr, bplist) >= 0 then
|
||||
print("breakpoint already set at ", fmt(addr, 'a'), "\n");
|
||||
else {
|
||||
*fmt(addr, bpfmt) = bpinst;
|
||||
bplist = append bplist, addr;
|
||||
}
|
||||
}
|
||||
|
||||
defn bptab() // print a table of breakpoints
|
||||
{
|
||||
local lst, addr;
|
||||
|
||||
lst = bplist;
|
||||
while lst do {
|
||||
addr = head lst;
|
||||
print("\t", fmt(addr, 'X'), " ", fmt(addr, 'a'), " ", fmt(addr, 'i'), "\n");
|
||||
lst = tail lst;
|
||||
}
|
||||
}
|
||||
|
||||
defn bpdel(addr) // delete a breakpoint
|
||||
{
|
||||
local n, pc, nbplist;
|
||||
|
||||
n = match(addr, bplist);
|
||||
if n < 0 then {
|
||||
print("no breakpoint at ", fmt(addr, 'a'), "\n");
|
||||
return {};
|
||||
}
|
||||
|
||||
addr = fmt(addr, bpfmt);
|
||||
*addr = @addr;
|
||||
|
||||
nbplist = {}; // delete from list
|
||||
while bplist do {
|
||||
pc = head bplist;
|
||||
if pc != addr then
|
||||
nbplist = append nbplist, pc;
|
||||
bplist = tail bplist;
|
||||
}
|
||||
bplist = nbplist; // delete from memory
|
||||
}
|
||||
|
||||
defn cont() // continue execution
|
||||
{
|
||||
local addr;
|
||||
|
||||
addr = fmt(*PC, bpfmt);
|
||||
if match(addr, bplist) >= 0 then { // Sitting on a breakpoint
|
||||
*addr = @addr;
|
||||
step(); // Step over
|
||||
*addr = bpinst;
|
||||
}
|
||||
startstop(pid); // Run
|
||||
}
|
||||
|
||||
defn stopped(pid) // called from acid when a process changes state
|
||||
{
|
||||
pstop(pid); // stub so this is easy to replace
|
||||
}
|
||||
|
||||
defn procs() // print status of processes
|
||||
{
|
||||
local c, lst, cpid;
|
||||
|
||||
cpid = pid;
|
||||
lst = proclist;
|
||||
while lst do {
|
||||
np = head lst;
|
||||
setproc(np);
|
||||
if np == cpid then
|
||||
c = '>';
|
||||
else
|
||||
c = ' ';
|
||||
print(fmt(c, 'c'), np, ": ", status(np), " at ", fmt(*PC, 'a'), " setproc(", np, ")\n");
|
||||
lst = tail lst;
|
||||
}
|
||||
pid = cpid;
|
||||
if pid != 0 then
|
||||
setproc(pid);
|
||||
}
|
||||
|
||||
_asmlines = 30;
|
||||
|
||||
defn asm(addr)
|
||||
{
|
||||
local bound;
|
||||
|
||||
bound = fnbound(addr);
|
||||
|
||||
addr = fmt(addr, 'i');
|
||||
loop 1,_asmlines do {
|
||||
print(fmt(addr, 'a'), " ", fmt(addr, 'X'));
|
||||
print("\t", @addr++, "\n");
|
||||
if bound != {} && addr > bound[1] then {
|
||||
lasmaddr = addr;
|
||||
return {};
|
||||
}
|
||||
}
|
||||
lasmaddr = addr;
|
||||
}
|
||||
|
||||
defn casm()
|
||||
{
|
||||
asm(lasmaddr);
|
||||
}
|
||||
|
||||
defn win()
|
||||
{
|
||||
local npid, estr;
|
||||
|
||||
bplist = {};
|
||||
notes = {};
|
||||
|
||||
estr = "/sys/lib/acid/window '0 0 600 400' "+textfile;
|
||||
if progargs != "" then
|
||||
estr = estr+" "+progargs;
|
||||
|
||||
npid = rc(estr);
|
||||
npid = atoi(npid);
|
||||
if npid == 0 then
|
||||
error("win failed to create process");
|
||||
|
||||
setproc(npid);
|
||||
stopped(npid);
|
||||
}
|
||||
|
||||
defn win2()
|
||||
{
|
||||
local npid, estr;
|
||||
|
||||
bplist = {};
|
||||
notes = {};
|
||||
|
||||
estr = "/sys/lib/acid/transcript '0 0 600 400' '100 100 700 500' "+textfile;
|
||||
if progargs != "" then
|
||||
estr = estr+" "+progargs;
|
||||
|
||||
npid = rc(estr);
|
||||
npid = atoi(npid);
|
||||
if npid == 0 then
|
||||
error("win failed to create process");
|
||||
|
||||
setproc(npid);
|
||||
stopped(npid);
|
||||
}
|
||||
|
||||
defn new()
|
||||
{
|
||||
bplist = {};
|
||||
newproc(progargs);
|
||||
// Dont miss the delay slot calls
|
||||
bpset(follow(main)[0]);
|
||||
cont();
|
||||
bpdel(*PC);
|
||||
}
|
||||
|
||||
defn stmnt() // step one statement
|
||||
{
|
||||
local line;
|
||||
|
||||
line = pcline(*PC);
|
||||
while 1 do {
|
||||
step();
|
||||
if line != pcline(*PC) then {
|
||||
src(*PC);
|
||||
return {};
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn func() // step until we leave the current function
|
||||
{
|
||||
local bound, end, start, pc;
|
||||
|
||||
bound = fnbound(*PC);
|
||||
if bound == {} then {
|
||||
print("cannot locate text symbol\n");
|
||||
return {};
|
||||
}
|
||||
|
||||
pc = *PC;
|
||||
start = bound[0];
|
||||
end = bound[1];
|
||||
while pc >= start && pc < end do {
|
||||
step();
|
||||
pc = *PC;
|
||||
}
|
||||
}
|
||||
|
||||
defn next()
|
||||
{
|
||||
local sp, bound;
|
||||
|
||||
sp = *SP;
|
||||
bound = fnbound(*PC);
|
||||
stmnt();
|
||||
pc = *PC;
|
||||
if pc >= bound[0] && pc < bound[1] then
|
||||
return {};
|
||||
|
||||
while (pc < bound[0] || pc > bound[1]) && sp >= *SP do {
|
||||
step();
|
||||
pc = *PC;
|
||||
}
|
||||
src(*PC);
|
||||
}
|
||||
|
||||
defn dump(addr, n, fmt)
|
||||
{
|
||||
// see definition of dump in acid manual: it does n+1 iterations
|
||||
loop 0, n do {
|
||||
print(fmt(addr, 'X'), ": ");
|
||||
addr = mem(addr, fmt);
|
||||
}
|
||||
}
|
||||
|
||||
defn mem(addr, fmt)
|
||||
{
|
||||
|
||||
local i, c, n;
|
||||
|
||||
i = 0;
|
||||
while fmt[i] != 0 do {
|
||||
c = fmt[i];
|
||||
n = 0;
|
||||
while '0' <= fmt[i] && fmt[i] <= '9' do {
|
||||
n = 10*n + fmt[i]-'0';
|
||||
i = i+1;
|
||||
}
|
||||
if n <= 0 then n = 1;
|
||||
addr = fmt(addr, fmt[i]);
|
||||
while n > 0 do {
|
||||
print(*addr++, " ");
|
||||
n = n-1;
|
||||
}
|
||||
i = i+1;
|
||||
}
|
||||
print("\n");
|
||||
return addr;
|
||||
}
|
||||
|
||||
defn symbols(pattern)
|
||||
{
|
||||
local l, s;
|
||||
|
||||
l = symbols;
|
||||
while l do {
|
||||
s = head l;
|
||||
if regexp(pattern, s[0]) then
|
||||
print(s[0], "\t", s[1], "\t", s[2], "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
|
||||
defn spsrch(len)
|
||||
{
|
||||
local addr, a, s, e;
|
||||
|
||||
addr = *SP;
|
||||
s = origin & 0x7fffffff;
|
||||
e = etext & 0x7fffffff;
|
||||
loop 1, len do {
|
||||
a = *addr++;
|
||||
c = a & 0x7fffffff;
|
||||
if c > s && c < e then {
|
||||
print("src(", a, ")\n");
|
||||
pfl(a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
progargs="";
|
||||
print("/sys/lib/acid/port");
|
120
sys/lib/acid/power
Executable file
120
sys/lib/acid/power
Executable file
|
@ -0,0 +1,120 @@
|
|||
// Power PC support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/power/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("SP\t", *SP, " R2\t", *R2, " R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, " R5\t", *R5, " R6\t", *R6, "\n");
|
||||
print("R7\t", *R7, " R8\t", *R8, " R9\t", *R9, "\n");
|
||||
print("R10\t", *R10, " R11\t", *R11, " R12\t", *R12, "\n");
|
||||
print("R13\t", *R13, " R14\t", *R14, " R15\t", *R15, "\n");
|
||||
print("R16\t", *R16, " R17\t", *R17, " R18\t", *R18, "\n");
|
||||
print("R19\t", *R19, " R20\t", *R20, " R21\t", *R21, "\n");
|
||||
print("R22\t", *R22, " R23\t", *R23, " R24\t", *R24, "\n");
|
||||
print("R25\t", *R25, " R26\t", *R26, " R27\t", *R27, "\n");
|
||||
print("R28\t", *R28, " R29\t", *R29, " R30\t", *R30, "\n");
|
||||
print("R31\t", *R31, "\n");
|
||||
}
|
||||
|
||||
defn Fpr()
|
||||
{
|
||||
fpr();
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'G'), "\tF1\t", *fmt(F1, 'G'), "\n");
|
||||
print("F2\t", *fmt(F2, 'G'), "\tF3\t", *fmt(F3, 'G'), "\n");
|
||||
print("F4\t", *fmt(F4, 'G'), "\tF5\t", *fmt(F5, 'G'), "\n");
|
||||
print("F6\t", *fmt(F6, 'G'), "\tF7\t", *fmt(F7, 'G'), "\n");
|
||||
print("F8\t", *fmt(F8, 'G'), "\tF9\t", *fmt(F9, 'G'), "\n");
|
||||
print("F10\t", *fmt(F10, 'G'), "\tF11\t", *fmt(F11, 'G'), "\n");
|
||||
print("F12\t", *fmt(F12, 'G'), "\tF13\t", *fmt(F13, 'G'), "\n");
|
||||
print("F14\t", *fmt(F14, 'G'), "\tF15\t", *fmt(F15, 'G'), "\n");
|
||||
print("F16\t", *fmt(F16, 'G'), "\tF17\t", *fmt(F17, 'G'), "\n");
|
||||
print("F18\t", *fmt(F18, 'G'), "\tF19\t", *fmt(F19, 'G'), "\n");
|
||||
print("F20\t", *fmt(F20, 'G'), "\tF21\t", *fmt(F21, 'G'), "\n");
|
||||
print("F22\t", *fmt(F22, 'G'), "\tF23\t", *fmt(F23, 'G'), "\n");
|
||||
print("F24\t", *fmt(F24, 'G'), "\tF25\t", *fmt(F25, 'G'), "\n");
|
||||
print("F26\t", *fmt(F26, 'G'), "\tF27\t", *fmt(F27, 'G'), "\n");
|
||||
print("F28\t", *fmt(F28, 'G'), "\tF29\t", *fmt(F29, 'G'), "\n");
|
||||
print("F30\t", *fmt(F30, 'G'), "\tF31\t", *fmt(F31, 'G'), "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc, link, cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
|
||||
link = *R31;
|
||||
print("SP\t", *SP, "\tLINK\t", link, " ", fmt(link, 'a'), " ");
|
||||
pfl(link);
|
||||
|
||||
cause = *CAUSE;
|
||||
print("SRR1\t", *SRR1, "\tCAUSE\t", cause, " ", reason(cause), "\n");
|
||||
print("LR\t", *LR, "\tCR\t", *CR, "\n");
|
||||
|
||||
print("XER\t", *XER, "\tCTR\t", *CTR, "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l, pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*CAUSE), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
return *LR;
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/power");
|
218
sys/lib/acid/sparc
Executable file
218
sys/lib/acid/sparc
Executable file
|
@ -0,0 +1,218 @@
|
|||
// Sparc support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/sparc/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *R1, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *R1, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("R1\t", *R1, "R2\t", *R2, "R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, "R5\t", *R5, "R6\t", *R6, "\n");
|
||||
print("R7\t", *R7, "R8\t", *R8, "R9\t", *R9, "\n");
|
||||
print("R10\t", *R10, "R11\t", *R11, "R12\t", *R12, "\n");
|
||||
print("R13\t", *R13, "R14\t", *R14, "R15\t", *R15, "\n");
|
||||
print("R16\t", *R16, "R17\t", *R17, "R18\t", *R18, "\n");
|
||||
print("R19\t", *R19, "R20\t", *R20, "R21\t", *R21, "\n");
|
||||
print("R22\t", *R22, "R23\t", *R23, "R24\t", *R24, "\n");
|
||||
print("R25\t", *R25, "R26\t", *R26, "R27\t", *R27, "\n");
|
||||
print("R28\t", *R28, "R29\t", *R29, "R30\t", *R30, "\n");
|
||||
print("R31\t", *R31, "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc;
|
||||
local link;
|
||||
local cause;
|
||||
|
||||
pc = *PC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
print("PSR\t", *PSR, "\n");
|
||||
|
||||
link = *R15;
|
||||
print("SP\t", *R1, "\tLINK\t\t", link, " ", fmt(link, 'a'));
|
||||
pfl(link);
|
||||
|
||||
cause = *TBR;
|
||||
print("Y\t", *Y, "\tCAUSE\t", *Y, cause, " ", reason(cause), "\n");
|
||||
}
|
||||
|
||||
defn Fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'G'), "\tF2\t", *fmt(F2, 'G'), "\n");
|
||||
print("F4\t", *fmt(F4, 'G'), "\tF6\t", *fmt(F6, 'G'), "\n");
|
||||
print("F8\t", *fmt(F8, 'G'), "\tF10\t", *fmt(F10, 'G'), "\n");
|
||||
print("F12\t", *fmt(F12, 'G'), "\tF14\t", *fmt(F14, 'G'), "\n");
|
||||
print("F16\t", *fmt(F16, 'G'), "\tF18\t", *fmt(F18, 'G'), "\n");
|
||||
print("F20\t", *fmt(F20, 'G'), "\tF22\t", *fmt(F22, 'G'), "\n");
|
||||
print("F24\t", *fmt(F24, 'G'), "\tF26\t", *fmt(F26, 'G'), "\n");
|
||||
print("F28\t", *fmt(F28, 'G'), "\tF30\t", *fmt(F30, 'G'), "\n");
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'g'), "\tF1\t", *fmt(F1, 'g'), "\n");
|
||||
print("F2\t", *fmt(F2, 'g'), "\tF3\t", *fmt(F3, 'g'), "\n");
|
||||
print("F4\t", *fmt(F4, 'g'), "\tF5\t", *fmt(F5, 'g'), "\n");
|
||||
print("F6\t", *fmt(F6, 'g'), "\tF7\t", *fmt(F7, 'g'), "\n");
|
||||
print("F8\t", *fmt(F8, 'g'), "\tF9\t", *fmt(F9, 'g'), "\n");
|
||||
print("F10\t", *fmt(F10, 'g'), "\tF11\t", *fmt(F11, 'g'), "\n");
|
||||
print("F12\t", *fmt(F12, 'g'), "\tF13\t", *fmt(F13, 'g'), "\n");
|
||||
print("F14\t", *fmt(F14, 'g'), "\tF15\t", *fmt(F15, 'g'), "\n");
|
||||
print("F16\t", *fmt(F16, 'g'), "\tF17\t", *fmt(F17, 'g'), "\n");
|
||||
print("F18\t", *fmt(F18, 'g'), "\tF19\t", *fmt(F19, 'g'), "\n");
|
||||
print("F20\t", *fmt(F20, 'g'), "\tF21\t", *fmt(F21, 'g'), "\n");
|
||||
print("F22\t", *fmt(F22, 'g'), "\tF23\t", *fmt(F23, 'g'), "\n");
|
||||
print("F24\t", *fmt(F24, 'g'), "\tF25\t", *fmt(F25, 'g'), "\n");
|
||||
print("F26\t", *fmt(F26, 'g'), "\tF27\t", *fmt(F27, 'g'), "\n");
|
||||
print("F28\t", *fmt(F28, 'g'), "\tF29\t", *fmt(F29, 'g'), "\n");
|
||||
print("F30\t", *fmt(F30, 'g'), "\tF31\t", *fmt(F31, 'g'), "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l;
|
||||
local pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*TBR), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggr Ureg
|
||||
{
|
||||
'U' 0 r0;
|
||||
{
|
||||
'U' 4 sp;
|
||||
'U' 4 usp;
|
||||
'U' 4 r1;
|
||||
};
|
||||
'U' 8 r2;
|
||||
'U' 12 r3;
|
||||
'U' 16 r4;
|
||||
'U' 20 r5;
|
||||
'U' 24 r6;
|
||||
'U' 28 r7;
|
||||
'U' 32 r8;
|
||||
'U' 36 r9;
|
||||
'U' 40 r10;
|
||||
'U' 44 r11;
|
||||
'U' 48 r12;
|
||||
'U' 52 r13;
|
||||
'U' 56 r14;
|
||||
'U' 60 r15;
|
||||
'U' 64 r16;
|
||||
'U' 68 r17;
|
||||
'U' 72 r18;
|
||||
'U' 76 r19;
|
||||
'U' 80 r20;
|
||||
'U' 84 r21;
|
||||
'U' 88 r22;
|
||||
'U' 92 r23;
|
||||
'U' 96 r24;
|
||||
'U' 100 r25;
|
||||
'U' 104 r26;
|
||||
'U' 108 r27;
|
||||
'U' 112 r28;
|
||||
'U' 116 r29;
|
||||
'U' 120 r30;
|
||||
'U' 124 r31;
|
||||
'U' 128 y;
|
||||
'U' 132 tbr;
|
||||
'U' 136 psr;
|
||||
'U' 140 npc;
|
||||
'U' 144 pc;
|
||||
'U' 148 pad;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" r0 ", addr.r0, "\n");
|
||||
print(" sp ", addr.sp, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" r8 ", addr.r8, "\n");
|
||||
print(" r9 ", addr.r9, "\n");
|
||||
print(" r10 ", addr.r10, "\n");
|
||||
print(" r11 ", addr.r11, "\n");
|
||||
print(" r12 ", addr.r12, "\n");
|
||||
print(" r13 ", addr.r13, "\n");
|
||||
print(" r14 ", addr.r14, "\n");
|
||||
print(" r15 ", addr.r15, "\n");
|
||||
print(" r16 ", addr.r16, "\n");
|
||||
print(" r17 ", addr.r17, "\n");
|
||||
print(" r18 ", addr.r18, "\n");
|
||||
print(" r19 ", addr.r19, "\n");
|
||||
print(" r20 ", addr.r20, "\n");
|
||||
print(" r21 ", addr.r21, "\n");
|
||||
print(" r22 ", addr.r22, "\n");
|
||||
print(" r23 ", addr.r23, "\n");
|
||||
print(" r24 ", addr.r24, "\n");
|
||||
print(" r25 ", addr.r25, "\n");
|
||||
print(" r26 ", addr.r26, "\n");
|
||||
print(" r27 ", addr.r27, "\n");
|
||||
print(" r28 ", addr.r28, "\n");
|
||||
print(" r29 ", addr.r29, "\n");
|
||||
print(" r30 ", addr.r30, "\n");
|
||||
print(" r31 ", addr.r31, "\n");
|
||||
print(" y ", addr.y, "\n");
|
||||
print(" tbr ", addr.tbr, "\n");
|
||||
print(" psr ", addr.psr, "\n");
|
||||
print(" npc ", addr.npc, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" pad ", addr.pad, "\n");
|
||||
};
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
complex Ureg addr;
|
||||
return addr.r15\X;
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/sparc");
|
222
sys/lib/acid/sparc64
Executable file
222
sys/lib/acid/sparc64
Executable file
|
@ -0,0 +1,222 @@
|
|||
// Sparc64 support
|
||||
|
||||
defn acidinit() // Called after all the init modules are loaded
|
||||
{
|
||||
bplist = {};
|
||||
bpfmt = 'X';
|
||||
|
||||
srcpath = {
|
||||
"./",
|
||||
"/sys/src/libc/port/",
|
||||
"/sys/src/libc/9sys/",
|
||||
"/sys/src/libc/sparc64/"
|
||||
};
|
||||
|
||||
srcfiles = {}; // list of loaded files
|
||||
srctext = {}; // the text of the files
|
||||
}
|
||||
|
||||
defn linkreg(addr)
|
||||
{
|
||||
complex Ureg addr;
|
||||
return addr.r15\X;
|
||||
}
|
||||
|
||||
defn stk() // trace
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 0);
|
||||
}
|
||||
|
||||
defn lstk() // trace with locals
|
||||
{
|
||||
_stk(*PC, *SP, linkreg(0), 1);
|
||||
}
|
||||
|
||||
defn gpr() // print general purpose registers
|
||||
{
|
||||
print("SP\t", *SP, "R2\t", *R2, "R3\t", *R3, "\n");
|
||||
print("R4\t", *R4, "R5\t", *R5, "R6\t", *R6, "\n");
|
||||
print("R7\t", *R7, "R8\t", *R8, "R9\t", *R9, "\n");
|
||||
print("R10\t", *R10, "R11\t", *R11, "R12\t", *R12, "\n");
|
||||
print("R13\t", *R13, "R14\t", *R14, "R15\t", *R15, "\n");
|
||||
print("R16\t", *R16, "R17\t", *R17, "R18\t", *R18, "\n");
|
||||
print("R19\t", *R19, "R20\t", *R20, "R21\t", *R21, "\n");
|
||||
print("R22\t", *R22, "R23\t", *R23, "R24\t", *R24, "\n");
|
||||
print("R25\t", *R25, "R26\t", *R26, "R27\t", *R27, "\n");
|
||||
print("R28\t", *R28, "R29\t", *R29, "R30\t", *R30, "\n");
|
||||
print("R31\t", *R31, "\n");
|
||||
}
|
||||
|
||||
defn spr() // print special processor registers
|
||||
{
|
||||
local pc;
|
||||
local link;
|
||||
local cause;
|
||||
|
||||
pc = *PC;
|
||||
npc = *NPC;
|
||||
print("PC\t", pc, " ", fmt(pc, 'a'), " ");
|
||||
pfl(pc);
|
||||
print("NPC\t", npc, " ", fmt(npc, 'a'), " ");
|
||||
pfl(npc);
|
||||
print("PSTATE\t", *PSTATE, "\n");
|
||||
|
||||
link = *R15;
|
||||
print("SP\t", *SP, "\tLINK\t\t", link, " ", fmt(link, 'a'));
|
||||
pfl(link);
|
||||
|
||||
cause = *TT;
|
||||
print("Y\t", *Y, "\tCAUSE\t", cause, " ", reason(cause), "\n");
|
||||
}
|
||||
|
||||
defn Fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'G'), "\tF2\t", *fmt(F2, 'G'), "\n");
|
||||
print("F4\t", *fmt(F4, 'G'), "\tF6\t", *fmt(F6, 'G'), "\n");
|
||||
print("F8\t", *fmt(F8, 'G'), "\tF10\t", *fmt(F10, 'G'), "\n");
|
||||
print("F12\t", *fmt(F12, 'G'), "\tF14\t", *fmt(F14, 'G'), "\n");
|
||||
print("F16\t", *fmt(F16, 'G'), "\tF18\t", *fmt(F18, 'G'), "\n");
|
||||
print("F20\t", *fmt(F20, 'G'), "\tF22\t", *fmt(F22, 'G'), "\n");
|
||||
print("F24\t", *fmt(F24, 'G'), "\tF26\t", *fmt(F26, 'G'), "\n");
|
||||
print("F28\t", *fmt(F28, 'G'), "\tF30\t", *fmt(F30, 'G'), "\n");
|
||||
}
|
||||
|
||||
defn fpr()
|
||||
{
|
||||
print("F0\t", *fmt(F0, 'g'), "\tF1\t", *fmt(F1, 'g'), "\n");
|
||||
print("F2\t", *fmt(F2, 'g'), "\tF3\t", *fmt(F3, 'g'), "\n");
|
||||
print("F4\t", *fmt(F4, 'g'), "\tF5\t", *fmt(F5, 'g'), "\n");
|
||||
print("F6\t", *fmt(F6, 'g'), "\tF7\t", *fmt(F7, 'g'), "\n");
|
||||
print("F8\t", *fmt(F8, 'g'), "\tF9\t", *fmt(F9, 'g'), "\n");
|
||||
print("F10\t", *fmt(F10, 'g'), "\tF11\t", *fmt(F11, 'g'), "\n");
|
||||
print("F12\t", *fmt(F12, 'g'), "\tF13\t", *fmt(F13, 'g'), "\n");
|
||||
print("F14\t", *fmt(F14, 'g'), "\tF15\t", *fmt(F15, 'g'), "\n");
|
||||
print("F16\t", *fmt(F16, 'g'), "\tF17\t", *fmt(F17, 'g'), "\n");
|
||||
print("F18\t", *fmt(F18, 'g'), "\tF19\t", *fmt(F19, 'g'), "\n");
|
||||
print("F20\t", *fmt(F20, 'g'), "\tF21\t", *fmt(F21, 'g'), "\n");
|
||||
print("F22\t", *fmt(F22, 'g'), "\tF23\t", *fmt(F23, 'g'), "\n");
|
||||
print("F24\t", *fmt(F24, 'g'), "\tF25\t", *fmt(F25, 'g'), "\n");
|
||||
print("F26\t", *fmt(F26, 'g'), "\tF27\t", *fmt(F27, 'g'), "\n");
|
||||
print("F28\t", *fmt(F28, 'g'), "\tF29\t", *fmt(F29, 'g'), "\n");
|
||||
print("F30\t", *fmt(F30, 'g'), "\tF31\t", *fmt(F31, 'g'), "\n");
|
||||
}
|
||||
|
||||
defn regs() // print all registers
|
||||
{
|
||||
spr();
|
||||
gpr();
|
||||
}
|
||||
|
||||
defn pstop(pid)
|
||||
{
|
||||
local l;
|
||||
local pc;
|
||||
|
||||
pc = *PC;
|
||||
|
||||
print(pid,": ", reason(*TT), "\t");
|
||||
print(fmt(pc, 'a'), "\t", fmt(pc, 'i'), "\n");
|
||||
|
||||
if notes then {
|
||||
if notes[0] != "sys: breakpoint" then {
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do {
|
||||
print("\t", head l, "\n");
|
||||
l = tail l;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
aggr Ureg
|
||||
{
|
||||
'U' 0 r0;
|
||||
{
|
||||
'U' 4 sp;
|
||||
'U' 4 usp;
|
||||
'U' 4 r1;
|
||||
};
|
||||
'U' 8 r2;
|
||||
'U' 12 r3;
|
||||
'U' 16 r4;
|
||||
'U' 20 r5;
|
||||
'U' 24 r6;
|
||||
'U' 28 r7;
|
||||
'U' 32 r8;
|
||||
'U' 36 r9;
|
||||
'U' 40 r10;
|
||||
'U' 44 r11;
|
||||
'U' 48 r12;
|
||||
'U' 52 r13;
|
||||
'U' 56 r14;
|
||||
'U' 60 r15;
|
||||
'U' 64 r16;
|
||||
'U' 68 r17;
|
||||
'U' 72 r18;
|
||||
'U' 76 r19;
|
||||
'U' 80 r20;
|
||||
'U' 84 r21;
|
||||
'U' 88 r22;
|
||||
'U' 92 r23;
|
||||
'U' 96 r24;
|
||||
'U' 100 r25;
|
||||
'U' 104 r26;
|
||||
'U' 108 r27;
|
||||
'U' 112 r28;
|
||||
'U' 116 r29;
|
||||
'U' 120 r30;
|
||||
'U' 124 r31;
|
||||
'U' 128 y;
|
||||
'U' 132 tt;
|
||||
'U' 136 pstate;
|
||||
'U' 140 npc;
|
||||
'U' 144 pc;
|
||||
'U' 148 pad;
|
||||
};
|
||||
|
||||
defn
|
||||
Ureg(addr) {
|
||||
complex Ureg addr;
|
||||
print(" r0 ", addr.r0, "\n");
|
||||
print(" sp ", addr.sp, "\n");
|
||||
print(" r2 ", addr.r2, "\n");
|
||||
print(" r3 ", addr.r3, "\n");
|
||||
print(" r4 ", addr.r4, "\n");
|
||||
print(" r5 ", addr.r5, "\n");
|
||||
print(" r6 ", addr.r6, "\n");
|
||||
print(" r7 ", addr.r7, "\n");
|
||||
print(" r8 ", addr.r8, "\n");
|
||||
print(" r9 ", addr.r9, "\n");
|
||||
print(" r10 ", addr.r10, "\n");
|
||||
print(" r11 ", addr.r11, "\n");
|
||||
print(" r12 ", addr.r12, "\n");
|
||||
print(" r13 ", addr.r13, "\n");
|
||||
print(" r14 ", addr.r14, "\n");
|
||||
print(" r15 ", addr.r15, "\n");
|
||||
print(" r16 ", addr.r16, "\n");
|
||||
print(" r17 ", addr.r17, "\n");
|
||||
print(" r18 ", addr.r18, "\n");
|
||||
print(" r19 ", addr.r19, "\n");
|
||||
print(" r20 ", addr.r20, "\n");
|
||||
print(" r21 ", addr.r21, "\n");
|
||||
print(" r22 ", addr.r22, "\n");
|
||||
print(" r23 ", addr.r23, "\n");
|
||||
print(" r24 ", addr.r24, "\n");
|
||||
print(" r25 ", addr.r25, "\n");
|
||||
print(" r26 ", addr.r26, "\n");
|
||||
print(" r27 ", addr.r27, "\n");
|
||||
print(" r28 ", addr.r28, "\n");
|
||||
print(" r29 ", addr.r29, "\n");
|
||||
print(" r30 ", addr.r30, "\n");
|
||||
print(" r31 ", addr.r31, "\n");
|
||||
print(" y ", addr.y, "\n");
|
||||
print(" tt ", addr.tt, "\n");
|
||||
print(" pstate ", addr.pstate, "\n");
|
||||
print(" npc ", addr.npc, "\n");
|
||||
print(" pc ", addr.pc, "\n");
|
||||
print(" pad ", addr.pad, "\n");
|
||||
};
|
||||
sizeofUreg = 152;
|
||||
|
||||
print("/sys/lib/acid/sparc64");
|
196
sys/lib/acid/syscall
Executable file
196
sys/lib/acid/syscall
Executable file
|
@ -0,0 +1,196 @@
|
|||
// print system calls
|
||||
defn printstring(s)
|
||||
{
|
||||
print("\"", s, "\"");
|
||||
}
|
||||
|
||||
defn printtextordata(addr, n)
|
||||
{
|
||||
local a, i;
|
||||
|
||||
a = addr\c;
|
||||
i = 0;
|
||||
loop 1, n do {
|
||||
if (a[i]>=127) then {
|
||||
print(fmt(addr, 'X'), ", ", n\D);
|
||||
return {};
|
||||
}
|
||||
i = i+1;
|
||||
}
|
||||
|
||||
print("\"");
|
||||
printstringn(addr, n);
|
||||
print("\"");
|
||||
}
|
||||
|
||||
defn printstringn(s, n)
|
||||
{
|
||||
local m;
|
||||
|
||||
m = n;
|
||||
if (m > 100) then m = 100;
|
||||
loop 1,m do {
|
||||
print(*(s\c)); s=s+1;
|
||||
}
|
||||
if(m != n) then print("...");
|
||||
}
|
||||
|
||||
defn printsyscall(name, fmt, arg) {
|
||||
local f, i, a, argp, sl;
|
||||
|
||||
print(name, "(");
|
||||
i = 0;
|
||||
a = eval arg;
|
||||
while fmt[i] != 0 do {
|
||||
if fmt[i] == 's' then {
|
||||
if *a == 0 then
|
||||
print("nil");
|
||||
else
|
||||
printstring(*(*a\s));
|
||||
} else if fmt[i] == 'S' then {
|
||||
argp = *a;
|
||||
argl = {};
|
||||
while *argp != 0 do {
|
||||
argl = append argl, *(*argp\s);
|
||||
argp++;
|
||||
}
|
||||
print(argl);
|
||||
} else if (fmt[i] == 'Z') && (~*a == 0) then {
|
||||
print("-1");
|
||||
a++; // advance extra word for quadword
|
||||
} else if (fmt[i] == 'Y') || (fmt[i] == 'V') then {
|
||||
print(fmt(*a, fmt[i]));
|
||||
a++; // advance extra word for quadword
|
||||
} else if (fmt[i] == 'T') then {
|
||||
if *a == 0 then
|
||||
print("nil");
|
||||
else
|
||||
printtextordata(*a, a[1]);
|
||||
} else
|
||||
print(fmt(*a, fmt[i]));
|
||||
if fmt[i+1] != 0 then
|
||||
print(", ");
|
||||
i = i+1;
|
||||
a++;
|
||||
}
|
||||
print(")\n");
|
||||
}
|
||||
|
||||
defn code(*e) { return e; }
|
||||
|
||||
syscalls = {
|
||||
{ 0, {"sysr1", "s", code(0)}},
|
||||
{ 1, {"_errstr", "s", code(*sys_errstr:arg)}},
|
||||
{ 2, {"bind", "ssX", code(*sysbind:arg)}},
|
||||
{ 3, {"chdir", "s", code(*sysbind:arg)}},
|
||||
{ 4, {"close", "D", code(*sysclose:arg)}},
|
||||
{ 5, {"dup", "DD", code(*sysdup:arg)}},
|
||||
{ 6, {"alarm", "D", code(*sysalarm:arg)}},
|
||||
{ 7, {"exec", "sS", code(*sysexec:arg)}},
|
||||
{ 8, {"exits", "s", code(*sysexits:arg)}},
|
||||
{ 9, {"_fsession", "DX", code(*sys_fsession:arg)}},
|
||||
{10, {"fauth", "DX", code(*sysfauth:arg)}},
|
||||
{11, {"_fstat", "DX", code(*sys_fstat:arg)}},
|
||||
{12, {"segbrk", "XX", code(*syssegbrk:arg)}},
|
||||
{13, {"_mount", "DsXs", code(*sys_mount:arg)}},
|
||||
{14, {"open", "sD", code(*sysopen:arg)}},
|
||||
{15, {"_read", "DXD", code(*sys_read:arg)}},
|
||||
{16, {"oseek", "DDD", code(*sysoseek:arg)}},
|
||||
{17, {"sleep", "D", code(*syssleep:arg)}},
|
||||
{18, {"_stat", "sX", code(*sys_stat:arg)}},
|
||||
{19, {"rfork", "X", code(*sysstat:arg)}},
|
||||
{20, {"_write", "DXD", code(*sys_write:arg)}},
|
||||
{21, {"pipe", "X", code(*syspipe:arg)}},
|
||||
{22, {"create", "sDO", code(*syscreate:arg)}},
|
||||
{23, {"fd2path", "DXD", code(*sysfd2path:arg)}},
|
||||
{24, {"brk_", "X", code(*sysbrk_:arg)}},
|
||||
{25, {"remove", "s", code(*sysremove:arg)}},
|
||||
{26, {"_wstat", "sX", code(*sys_wstat:arg)}},
|
||||
{27, {"_fwstat", "DX", code(*sys_fwstat:arg)}},
|
||||
{28, {"notify", "X", code(*sysnotify:arg)}},
|
||||
{29, {"noted", "D", code(*sysnoted:arg)}},
|
||||
{30, {"segattach", "DsXD", code(*syssegattach:arg)}},
|
||||
{31, {"segdetach", "X", code(*syssegdetach:arg)}},
|
||||
{32, {"segfree", "XD", code(*syssegfree:arg)}},
|
||||
{33, {"segflush", "XD", code(*syssegflush:arg)}},
|
||||
{34, {"rendezvous", "XX", code(*sysrendezvous:arg)}},
|
||||
{35, {"unmount", "ss", code(*sysunmount:arg)}},
|
||||
{36, {"_wait", "X", code(*sys_wait:arg)}},
|
||||
{39, {"seek", "XDVD", code(*sysseek:arg)}},
|
||||
{40, {"fversion", "DDsD", code(*sysfversion:arg)}},
|
||||
{41, {"errstr", "TD", code(*syserrstr:arg)}},
|
||||
{42, {"stat", "sXD", code(*sysstat:arg)}},
|
||||
{43, {"fstat", "DXD", code(*sysfstat:arg)}},
|
||||
{44, {"wstat", "sXD", code(*syswstat:arg)}},
|
||||
{45, {"fwstat", "DXD", code(*sysfwstat:arg)}},
|
||||
{46, {"mount", "DDsXs", code(*sysmount:arg)}},
|
||||
{47, {"await", "TD", code(*sysawait:arg)}},
|
||||
{50, {"pread", "DXDZ", code(*syspread:arg)}},
|
||||
{51, {"pwrite", "DTDZ", code(*syspwrite:arg)}},
|
||||
};
|
||||
|
||||
defn syscall() {
|
||||
local n, sl, h, p;
|
||||
|
||||
map({"*data", 0, 0xffffffff, 0});
|
||||
n = *syscall:scallnr;
|
||||
sl = syscalls;
|
||||
while sl != {} do {
|
||||
h = head sl;
|
||||
sl = tail sl;
|
||||
|
||||
if n == h[0] then {
|
||||
p = h[1];
|
||||
printsyscall(p[0], p[1], p[2]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn UPCSPRET() {
|
||||
// return sys call number, address of first argument, location of syscall return value
|
||||
if objtype == "386" then
|
||||
return { code(*(*PC-4)), code(*SP+4), code(*AX) };
|
||||
if (objtype == "mips") || (objtype == "mips2") then
|
||||
return { code(*(*PC-4) & 0xffff), code(*SP+4), code(*R1) };
|
||||
if objtype == "arm" then
|
||||
return { code(*(*PC-4) & 0xffff), code(*SP+4), code(*R0) }; // untested
|
||||
if objtype == "alpha" then
|
||||
return { code(*(*PC-4) & 0xffff), code(*SP+4), code(*R0) }; // untested
|
||||
}
|
||||
|
||||
defn trapoffset() {
|
||||
// return offset from entry point to trap instr
|
||||
if objtype == "386" then return 5;
|
||||
if objtype == "mips" then return 8;
|
||||
if objtype == "mips2" then return 8;
|
||||
if objtype == "arm" then return 8; // untested
|
||||
if objtype == "alpha" then return 8; // untested
|
||||
}
|
||||
|
||||
defn trapreason() {
|
||||
// return reason for trap
|
||||
if objtype == "386" then return reason(*TRAP);
|
||||
if objtype == "mips" then return reason(*CAUSE);
|
||||
if objtype == "mips2" then return reason(*CAUSE);
|
||||
if objtype == "arm" then return "unknown trap"; // untested
|
||||
if objtype == "alpha" then return reason(cause); // untested
|
||||
}
|
||||
|
||||
|
||||
defn usyscall() { // gives args for system call in user level; not useful with -k
|
||||
local n, sl, h, p;
|
||||
|
||||
// stopped at TRAP instruction in system call library
|
||||
pcsp = UPCSPRET();
|
||||
n = eval pcsp[0];
|
||||
sl = syscalls;
|
||||
while sl != {} do {
|
||||
h = head sl;
|
||||
sl = tail sl;
|
||||
|
||||
if n == h[0] then {
|
||||
p = h[1];
|
||||
printsyscall(p[0], p[1], pcsp[1]);
|
||||
}
|
||||
}
|
||||
}
|
374
sys/lib/acid/thread
Executable file
374
sys/lib/acid/thread
Executable file
|
@ -0,0 +1,374 @@
|
|||
include("/sys/src/libthread/sched.acid");
|
||||
|
||||
defn labpc(l)
|
||||
{
|
||||
if objtype == "386" then
|
||||
return longjmp;
|
||||
return *(l+4);
|
||||
}
|
||||
|
||||
defn labsp(l)
|
||||
{
|
||||
return *l;
|
||||
}
|
||||
|
||||
defn labstk(l)
|
||||
{
|
||||
_stk(labpc(l), labsp(l), 0, 0);
|
||||
}
|
||||
|
||||
defn lablstk(l)
|
||||
{
|
||||
_stk(labpc(l), labsp(l), 0, 1);
|
||||
}
|
||||
|
||||
defn altfmt(A){
|
||||
local i, s, yes;
|
||||
complex Alt A;
|
||||
|
||||
s = "alt(";
|
||||
s = s + "tag(*" + itoa(A.tag, "%x") + "=" + itoa(*A.tag, "%x") + ") ";
|
||||
i = 0;
|
||||
yes = 0;
|
||||
while A.op != CHANEND && A.op != CHANNOBLK do{
|
||||
if A.op != CHANNOP then{
|
||||
if yes then s = s + " ";
|
||||
s = s + itoa(i, "%d");
|
||||
s = s + ":";
|
||||
if A.op == CHANSND then s = s + "send";
|
||||
if A.op == CHANRCV then s = s + "recv";
|
||||
s = s + "(channel(";
|
||||
s = s + itoa(A.c, "%x");
|
||||
s = s + "))";
|
||||
yes = 1;
|
||||
}
|
||||
i = i + 1;
|
||||
A = (Alt)(A + sizeofAlt);
|
||||
}
|
||||
if A.op==CHANNOBLK then{
|
||||
if yes then s = s + " ";
|
||||
s = s + "noblock";
|
||||
}
|
||||
s = s + ")";
|
||||
return s;
|
||||
}
|
||||
|
||||
defn alt(A){
|
||||
print(altfmt(A), "\n");
|
||||
}
|
||||
|
||||
threadignsrc = {
|
||||
"^/sys/src/libc",
|
||||
"^/sys/src/libthread",
|
||||
};
|
||||
|
||||
defn fnname(a){
|
||||
local sym, s;
|
||||
|
||||
s = symbols;
|
||||
while s do {
|
||||
sym = head s;
|
||||
if sym[2] == a then
|
||||
return sym[0];
|
||||
s = tail s;
|
||||
}
|
||||
if a == {} then
|
||||
return "{}";
|
||||
return itoa(a\X, "%x");
|
||||
}
|
||||
|
||||
stkignorelist = {};
|
||||
|
||||
defn stkignore(s){
|
||||
append stkignorelist, s;
|
||||
}
|
||||
|
||||
defn threadstkline(T){
|
||||
local ostk, stk, frame, pc, pc0, file, lastpc0, s, sym, i, stop;
|
||||
|
||||
if T.state == Running then{
|
||||
pc = *PC;
|
||||
stk = strace(*PC, *SP, linkreg(0));
|
||||
}else{
|
||||
pc = labpc(T.sched);
|
||||
stk = strace(labpc(T.sched), labsp(T.sched), 0);
|
||||
}
|
||||
firstpc = pc;
|
||||
lastpc0 = 0;
|
||||
pc0 = 0;
|
||||
stop = 0;
|
||||
ostk = stk;
|
||||
while stk && !stop do {
|
||||
file = pcfile(pc);
|
||||
if !regexp("^/sys/src/libc/", file)
|
||||
&& !regexp("^/sys/src/libthread/", file)
|
||||
&& match(file, stkignore)==-1 then
|
||||
stop = 1;
|
||||
else if stk[0][1] == 0xfefefefe then {
|
||||
pc = ostk[0][1];
|
||||
pc0 = ostk[1][0];
|
||||
stop = 1;
|
||||
}else{
|
||||
lastpc0 = pc0;
|
||||
frame = head stk;
|
||||
stk = tail stk;
|
||||
nextframe = head stk;
|
||||
pc = frame[1];
|
||||
pc0 = nextframe[0];
|
||||
}
|
||||
}
|
||||
file = pcfile(pc);
|
||||
s = file+":"+itoa(pcline(pc), "%d");
|
||||
if pc0 != 0 then
|
||||
s = s + " "+fnname(pc0);
|
||||
return s;
|
||||
}
|
||||
|
||||
defn threadfmt(T){
|
||||
complex Thread T;
|
||||
local A, yes, i, P, s;
|
||||
|
||||
P = (Proc)T.proc;
|
||||
s = "t=(Thread)"+itoa(T, "%-10x")+" ";
|
||||
|
||||
if T.state == Running then
|
||||
s = s + "Running ";
|
||||
else if T.state == Ready then
|
||||
s = s + "Ready ";
|
||||
else if T.state == Rendezvous then
|
||||
s = s + "Rendez ";
|
||||
else
|
||||
s = s + "Bad state "+itoa(T.state, "%x")+" ";
|
||||
|
||||
A = (Alt)T.alt;
|
||||
if 1 then
|
||||
s = s + threadstkline(T);
|
||||
else if T.chan == Chanalt then
|
||||
s = s + altfmt(T.alt);
|
||||
else if T.chan == Chansend then
|
||||
s = s + "send(Channel("+itoa(A.c, "%x")+"))";
|
||||
else if T.chan == Chanrecv then
|
||||
s = s + "recv(Channel("+itoa(A.c, "%x")+"))";
|
||||
else
|
||||
s = s + threadstkline(T);
|
||||
|
||||
if T.moribund == 1 then
|
||||
s = s + " Moribund";
|
||||
if T.cmdname != 0 then
|
||||
s = s + " ["+*(T.cmdname\s)+"]";
|
||||
return s;
|
||||
}
|
||||
|
||||
defn thread(T){
|
||||
print(threadfmt(T), "\n");
|
||||
}
|
||||
|
||||
defn pthreads(P){
|
||||
complex Proc P;
|
||||
local T, Tq, mainpid;
|
||||
|
||||
mainpid = pid;
|
||||
setproc(P.pid);
|
||||
Tq = (Tqueue)P.threads;
|
||||
T = (Thread)Tq.$head;
|
||||
while T != 0 do{
|
||||
print("\t");
|
||||
thread(T);
|
||||
T = T.nextt;
|
||||
}
|
||||
setproc(mainpid);
|
||||
}
|
||||
|
||||
defn threads(){
|
||||
local P;
|
||||
|
||||
P = (Proc)_threadpq.$head;
|
||||
while P != 0 do{
|
||||
if P != (Proc)_threadpq.$head then print("\n");
|
||||
lproc(P);
|
||||
P = P.next;
|
||||
}
|
||||
}
|
||||
|
||||
defn stacks(){
|
||||
local P, mainpid;
|
||||
|
||||
mainpid = pid;
|
||||
P = (Proc)_threadpq.$head;
|
||||
while P != 0 do{
|
||||
proc(P);
|
||||
// setproc(P.pid);
|
||||
// if P.thread==0 then{
|
||||
// print("=== thread scheduler stack\n");
|
||||
// stk();
|
||||
// }
|
||||
// print("threadstks(", P\X, ")\n");
|
||||
threadstks(P);
|
||||
P = P.next;
|
||||
print("\n");
|
||||
}
|
||||
setproc(mainpid);
|
||||
}
|
||||
|
||||
defn stacksizes(){
|
||||
local P, T, Tq, top, sp, mainpid;
|
||||
|
||||
mainpid = pid;
|
||||
P = (Proc)_threadpq.$head;
|
||||
while P != 0 do{
|
||||
P = (Proc)P;
|
||||
Tq = (Tqueue)P.threads;
|
||||
T = (Thread)Tq.$head;
|
||||
while T != 0 do{
|
||||
top = T.stk+T.stksize;
|
||||
if T.state==Running then {
|
||||
sp = *SP;
|
||||
}else{
|
||||
sp = *(T.sched);
|
||||
}
|
||||
sp = *(T.sched);
|
||||
print(top-sp\D, " / ", T.stksize\D, "\n");
|
||||
T = T.nextt;
|
||||
}
|
||||
P = P.next;
|
||||
}
|
||||
setproc(mainpid);
|
||||
}
|
||||
|
||||
defn lproc(P){
|
||||
proc(P);
|
||||
pthreads(P);
|
||||
}
|
||||
|
||||
defn threadstks(P){
|
||||
complex Proc P;
|
||||
local T, Tq, mainpid, pref, ign;
|
||||
|
||||
mainpid = pid;
|
||||
pref = stkprefix;
|
||||
stkprefix = pref+"\t\t";
|
||||
ign = stkignore;
|
||||
stkignore = {
|
||||
"^/sys/src/libthread/",
|
||||
"^/sys/src/libc/(386|arm|alpha|sparc|power|mips)/"
|
||||
};
|
||||
setproc(P.pid);
|
||||
Tq = (Tqueue)P.threads;
|
||||
T = (Thread)Tq.$head;
|
||||
while T != 0 do{
|
||||
// print("=============================\n");
|
||||
// print(" thread(", T\X, ")\n");
|
||||
print("\t");
|
||||
thread(T);
|
||||
threadstk(T);
|
||||
T = T.nextt;
|
||||
print("\n");
|
||||
}
|
||||
setproc(mainpid);
|
||||
stkprefix = pref;
|
||||
stkignore = ign;
|
||||
}
|
||||
|
||||
defn proc(P){
|
||||
complex Proc P;
|
||||
|
||||
print("p=(Proc)", itoa(P, "%-10x"), " pid ", P.pid\D, " ");
|
||||
if P.thread==0 then
|
||||
print(" Sched");
|
||||
else
|
||||
print(" Running");
|
||||
print("\n");
|
||||
}
|
||||
|
||||
defn procs(){
|
||||
local P;
|
||||
|
||||
P = (Proc)_threadpq.$head;
|
||||
while P != 0 do{
|
||||
proc(P);
|
||||
P = P.next;
|
||||
}
|
||||
}
|
||||
|
||||
defn threadlstk(T){
|
||||
complex Thread T;
|
||||
local P, mainpid;
|
||||
|
||||
P = (Proc)T.proc;
|
||||
mainpid = pid;
|
||||
setproc(P.pid);
|
||||
|
||||
if T.state == Running then{
|
||||
lstk();
|
||||
} else {
|
||||
lablstk(T.sched);
|
||||
}
|
||||
setproc(mainpid);
|
||||
}
|
||||
|
||||
defn threadstk(T){
|
||||
complex Thread T;
|
||||
local P, mainpid;
|
||||
|
||||
P = (Proc)T.proc;
|
||||
mainpid = pid;
|
||||
setproc(P.pid);
|
||||
|
||||
if T.state == Running then{
|
||||
stk();
|
||||
} else {
|
||||
labstk(T.sched);
|
||||
}
|
||||
setproc(mainpid);
|
||||
}
|
||||
|
||||
defn tqueue(Q) {
|
||||
complex Tqueue Q;
|
||||
|
||||
while Q != 0 do {
|
||||
print(Q.$head\X, " ");
|
||||
Q = *(Q.$tail);
|
||||
|
||||
}
|
||||
print("#\n");
|
||||
}
|
||||
|
||||
defn channel(C) {
|
||||
complex Channel C;
|
||||
local i, p;
|
||||
|
||||
print("channel ", C\X);
|
||||
if C.freed then {
|
||||
print(" (moribund)");
|
||||
}
|
||||
print("\n");
|
||||
print("\telementsize=", C.e\D, " buffersize=", C.s, "\n");
|
||||
if C.s then {
|
||||
print("\t", C.n\D, " values in channel:\n");
|
||||
print("\t");
|
||||
p = C.v+C.e*(C.f%C.s);
|
||||
loop 1,C.n do {
|
||||
if C.e==4 then {
|
||||
print((*p)\X, " ");
|
||||
}else {
|
||||
print("data(", (*p)\X, ") ");
|
||||
}
|
||||
p = p+C.e;
|
||||
if p == C.v+C.s*C.e then {
|
||||
p = C.v;
|
||||
}
|
||||
}
|
||||
}
|
||||
print("\n");
|
||||
print(C.nentry\D, " queue slots:\n");
|
||||
i=0;
|
||||
loop 1,C.nentry do {
|
||||
if C.qentry[i] then
|
||||
print("\t", altfmt(C.qentry[i]), "\n");
|
||||
else
|
||||
print("\t<empty>\n");
|
||||
i=i+1;
|
||||
}
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/thread");
|
33
sys/lib/acid/transcript
Executable file
33
sys/lib/acid/transcript
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/rc
|
||||
switch($#*){
|
||||
case 0 1 2
|
||||
echo usage: window '''minx miny maxx maxy''' '''minx miny maxx maxy''' cmd args ...
|
||||
exit usage
|
||||
}
|
||||
|
||||
rfork ns
|
||||
|
||||
if(mount $wsys /mnt/acid N`{{echo $pid $1 }| sed 's/^ //g;s/ +/,/g'}){
|
||||
winid=`{cat /dev/winid}
|
||||
echo transcript > /mnt/acid/label
|
||||
echo transcript > /mnt/acid/cons
|
||||
shift
|
||||
}
|
||||
if not exit 0
|
||||
|
||||
if(mount $wsys /mnt/wsys N`{{echo $pid $1 }| sed 's/^ //g;s/ +/,/g'}){
|
||||
shift
|
||||
bind -b /mnt/wsys /dev
|
||||
}
|
||||
if not exit 0
|
||||
|
||||
echo -n `{basename $1} > /dev/label >[2] /dev/null
|
||||
@{
|
||||
echo hang > /proc/^`{cat /dev/ppid}^/ctl
|
||||
$* < /dev/$winid/cons > /dev/$winid/cons >[2] /dev/$winid/cons &
|
||||
exit $apid
|
||||
}
|
||||
ostatus = `{echo $status | sed 's/.*://'}
|
||||
echo waitstop > /proc/$ostatus/ctl
|
||||
echo nohang > /proc/$ostatus/ctl
|
||||
exit $ostatus
|
171
sys/lib/acid/trump
Executable file
171
sys/lib/acid/trump
Executable file
|
@ -0,0 +1,171 @@
|
|||
// trace user malloc pool - trace malloc, realloc, and free calls
|
||||
// if trumpsbrk is set, we trace sbrkalloc and sbrkmerge too.
|
||||
|
||||
_stoprunning = 0;
|
||||
trumphexaddrs = 0;
|
||||
trumpsbrk = 0;
|
||||
|
||||
defn stopped(pid) {
|
||||
local l;
|
||||
local pc;
|
||||
pc = *PC;
|
||||
if notes then {
|
||||
if (notes[0]!="sys: breakpoint") then
|
||||
{
|
||||
print(pid,": ",reason(*TRAP),"\t");
|
||||
print(fmt(pc,97),"\t",fmt(pc,105),"\n");
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do
|
||||
{
|
||||
print("\t",head l,"\n");
|
||||
l = tail l;
|
||||
}
|
||||
_stoprunning = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn printstack() {
|
||||
local frame, stk, pcs, lst, x;
|
||||
|
||||
pcs = {*PC};
|
||||
stk = strace(*PC,*SP,0);
|
||||
while stk do {
|
||||
pcs = append pcs, stk[0][1];
|
||||
stk = tail stk;
|
||||
}
|
||||
|
||||
print(" #");
|
||||
lst = pcs;
|
||||
while lst do {
|
||||
if trumphexaddrs != 0 then
|
||||
x = lst[0]\X;
|
||||
else
|
||||
x = lst[0]\a;
|
||||
print(" src(", x, ");");
|
||||
lst = tail lst;
|
||||
}
|
||||
print("\n");
|
||||
}
|
||||
|
||||
defn setuptrump() {
|
||||
mallocPC = malloc;
|
||||
malloczPC = mallocz;
|
||||
freePC = free;
|
||||
reallocPC = realloc;
|
||||
sbrkallocPC = sbrkalloc;
|
||||
sbrkmergePC = sbrkmerge;
|
||||
|
||||
// linker might fill delay slot with first instruction
|
||||
if objtype == "mips" then {
|
||||
mallocPC = mallocPC+4;
|
||||
malloczPC = malloczPC+4;
|
||||
freePC = freePC+4;
|
||||
reallocPC = reallocPC+4;
|
||||
sbrkallocPC = sbrkallocPC+4;
|
||||
sbrkmergePC = sbrkmergePC+4;
|
||||
}
|
||||
|
||||
bpset(mallocPC);
|
||||
bpset(malloczPC);
|
||||
bpset(freePC);
|
||||
bpset(reallocPC);
|
||||
if trumpsbrk then {
|
||||
bpset(sbrkallocPC);
|
||||
bpset(sbrkmergePC);
|
||||
}
|
||||
}
|
||||
|
||||
defn cleantrump() {
|
||||
stop(pid);
|
||||
|
||||
bpdel(mallocPC);
|
||||
bpdel(malloczPC);
|
||||
bpdel(freePC);
|
||||
bpdel(reallocPC);
|
||||
bpdel(sbrkallocPC);
|
||||
bpdel(sbrkmergePC);
|
||||
}
|
||||
|
||||
defn trumpflush() {
|
||||
stop(pid); // already stopped, but flushes output
|
||||
}
|
||||
|
||||
defn new() {
|
||||
bplist = {};
|
||||
newproc(progargs);
|
||||
bpset(follow(main)[0]);
|
||||
cont();
|
||||
bpdel(*PC);
|
||||
// clear the hang bit, which is left set by newproc, so programs we fork/exec don't hang
|
||||
printto("/proc/"+itoa(pid)+"/ctl", "nohang");
|
||||
}
|
||||
|
||||
defn trumpfninfo() {
|
||||
local arg0, arg1, stk, retpc, params;
|
||||
|
||||
stk = strace(*PC, *SP, 0);
|
||||
retpc = stk[0][1];
|
||||
params = stk[0][2];
|
||||
arg0 = params[0][1];
|
||||
arg1 = 0;
|
||||
if tail params != {} then
|
||||
arg1 = params[1][1];
|
||||
return {arg0, arg1, retpc};
|
||||
}
|
||||
|
||||
defn trumpretval() {
|
||||
if objtype=="386" then
|
||||
return *AX;
|
||||
if objtype=="mips" then
|
||||
return *R1;
|
||||
if objtype=="power" || objtype=="alpha" then
|
||||
return *R0;
|
||||
}
|
||||
|
||||
defn trump() {
|
||||
local arg0, arg1, pc, ret, x;
|
||||
|
||||
stop(pid);
|
||||
_stoprunning = 0;
|
||||
setuptrump();
|
||||
while !_stoprunning do {
|
||||
cont();
|
||||
if notes[0]!="sys: breakpoint" then {
|
||||
cleantrump();
|
||||
return {};
|
||||
}
|
||||
|
||||
pc = *PC;
|
||||
x = trumpfninfo();
|
||||
arg0 = x[0];
|
||||
if pc == reallocPC || pc == sbrkmergePC then
|
||||
arg1 = x[1];
|
||||
bpset(x[2]);
|
||||
cont();
|
||||
bpdel(x[2]);
|
||||
ret = trumpretval();
|
||||
if pc == mallocPC then
|
||||
print(ret\X, " malloc ", arg0\D);
|
||||
if pc == malloczPC then
|
||||
print(ret\X, " mallocz ", arg0\D);
|
||||
if pc == freePC then
|
||||
print(arg0\X, " free");
|
||||
if pc == reallocPC then
|
||||
print(ret\X, " realloc ", arg0\X, " ", arg1\D);
|
||||
if pc == sbrkallocPC then
|
||||
print(ret\X, " sbrkalloc ", arg0\D);
|
||||
if pc == sbrkmergePC then
|
||||
print("sbrkmerge ", arg0\X, " ", arg1\X, " = ", ret\D);
|
||||
printstack();
|
||||
trumpflush();
|
||||
}
|
||||
}
|
||||
|
||||
defn untrump() {
|
||||
cleantrump();
|
||||
start(pid);
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/trump");
|
283
sys/lib/acid/truss
Executable file
283
sys/lib/acid/truss
Executable file
|
@ -0,0 +1,283 @@
|
|||
// poor emulation of SVR5 truss command - traces system calls
|
||||
|
||||
include("/sys/lib/acid/syscall");
|
||||
|
||||
_stoprunning = 0;
|
||||
|
||||
defn stopped(pid) {
|
||||
local l;
|
||||
local pc;
|
||||
pc = *PC;
|
||||
if notes then {
|
||||
if (notes[0]!="sys: breakpoint") then
|
||||
{
|
||||
print(pid,": ",trapreason(),"\t");
|
||||
print(fmt(pc,97),"\t",fmt(pc,105),"\n");
|
||||
print("Notes pending:\n");
|
||||
l = notes;
|
||||
while l do
|
||||
{
|
||||
print("\t",head l,"\n");
|
||||
l = tail l;
|
||||
}
|
||||
_stoprunning = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn _addressof(pattern) {
|
||||
local s, l;
|
||||
l = symbols;
|
||||
pattern = "^\\$*"+pattern+"$";
|
||||
while l do
|
||||
{
|
||||
s = head l;
|
||||
if regexp(pattern, s[0]) && ((s[1] == 'T') || (s[1] == 'L')) then
|
||||
return s[2];
|
||||
l = tail l;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
||||
stopPC = {};
|
||||
readPC = {};
|
||||
fd2pathPC = {};
|
||||
errstrPC = {};
|
||||
awaitPC = {};
|
||||
_waitPC = {};
|
||||
_errstrPC = {};
|
||||
trusscalls = {
|
||||
"sysr1",
|
||||
"_errstr",
|
||||
"bind",
|
||||
"chdir",
|
||||
"close",
|
||||
"dup",
|
||||
"alarm",
|
||||
"exec",
|
||||
"_exits",
|
||||
"_fsession",
|
||||
"fauth",
|
||||
"_fstat",
|
||||
"segbrk",
|
||||
"_mount",
|
||||
"open",
|
||||
"_read",
|
||||
"oseek",
|
||||
"sleep",
|
||||
"_stat",
|
||||
"rfork",
|
||||
"_write",
|
||||
"pipe",
|
||||
"create",
|
||||
"fd2path",
|
||||
"brk_",
|
||||
"remove",
|
||||
"_wstat",
|
||||
"_fwstat",
|
||||
"notify",
|
||||
"noted",
|
||||
"segattach",
|
||||
"segdetach",
|
||||
"segfree",
|
||||
"segflush",
|
||||
"rendezvous",
|
||||
"unmount",
|
||||
"_wait",
|
||||
"seek",
|
||||
"fversion",
|
||||
"errstr",
|
||||
"stat",
|
||||
"fstat",
|
||||
"wstat",
|
||||
"fwstat",
|
||||
"mount",
|
||||
"await",
|
||||
"pread",
|
||||
"pwrite",
|
||||
};
|
||||
|
||||
trussapecalls = {
|
||||
"_SYSR1",
|
||||
"__ERRSTR",
|
||||
"_BIND",
|
||||
"_CHDIR",
|
||||
"_CLOSE",
|
||||
"_DUP",
|
||||
"_ALARM",
|
||||
"_EXEC",
|
||||
"_EXITS",
|
||||
"__FSESSION",
|
||||
"_FAUTH",
|
||||
"__FSTAT",
|
||||
"_SEGBRK",
|
||||
"__MOUNT",
|
||||
"_OPEN",
|
||||
"__READ",
|
||||
"_OSEEK",
|
||||
"_SLEEP",
|
||||
"__STAT",
|
||||
"_RFORK",
|
||||
"__WRITE",
|
||||
"_PIPE",
|
||||
"_CREATE",
|
||||
"_FD2PATH",
|
||||
"_BRK_",
|
||||
"_REMOVE",
|
||||
"__WSTAT",
|
||||
"__FWSTAT",
|
||||
"_NOTIFY",
|
||||
"_NOTED",
|
||||
"_SEGATTACH",
|
||||
"_SEGDETACH",
|
||||
"_SEGFREE",
|
||||
"_SEGFLUSH",
|
||||
"_RENDEZVOUS",
|
||||
"_UNMOUNT",
|
||||
"__WAIT",
|
||||
"_SEEK",
|
||||
"__NFVERSION",
|
||||
"__NERRSTR",
|
||||
"_STAT",
|
||||
"__NFSTAT",
|
||||
"__NWSTAT",
|
||||
"__NFWSTAT",
|
||||
"__NMOUNT",
|
||||
"__NAWAIT",
|
||||
"_PREAD",
|
||||
"_PWRITE",
|
||||
};
|
||||
|
||||
defn addressof(pattern) {
|
||||
// translate to ape system calls if we have an ape binary
|
||||
if _addressof("_EXITS") == 0 then
|
||||
return _addressof(pattern);
|
||||
return _addressof(trussapecalls[match(pattern, trusscalls)]);
|
||||
}
|
||||
|
||||
defn setuptruss() {
|
||||
local lst, offset, name, addr;
|
||||
|
||||
trussbpt = {};
|
||||
offset = trapoffset();
|
||||
lst = trusscalls;
|
||||
while lst do
|
||||
{
|
||||
name = head lst;
|
||||
lst = tail lst;
|
||||
addr = addressof(name);
|
||||
if addr then
|
||||
{
|
||||
bpset(addr+offset);
|
||||
trussbpt = append trussbpt, (addr+offset);
|
||||
// sometimes _exits is renamed $_exits
|
||||
if(regexp("exits|exec", name)) then stopPC = append stopPC, (addr+offset);
|
||||
if(regexp("read", name)) then readPC = append readPC, (addr+offset);
|
||||
if(regexp("fd2path", name)) then fd2pathPC = append fd2pathPC, (addr+offset);
|
||||
if(regexp("^\\$*await", name)) then awaitPC = append awaitPC, (addr+offset);
|
||||
if(regexp("^\\$*errstr", name)) then errstrPC = append errstrPC, (addr+offset);
|
||||
// compatibility hacks for old kernel
|
||||
if(regexp("_wait", name)) then _waitPC = append _waitPC, (addr+offset);
|
||||
if(regexp("_errstr", name)) then _errstrPC = append _errstrPC, (addr+offset);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
defn trussflush() {
|
||||
stop(pid); // already stopped, but flushes output
|
||||
}
|
||||
|
||||
defn new() {
|
||||
bplist = {};
|
||||
newproc(progargs);
|
||||
bpset(follow(main)[0]);
|
||||
cont();
|
||||
bpdel(*PC);
|
||||
// clear the hang bit, which is left set by newproc, so programs we fork/exec don't hang
|
||||
printto("/proc/"+itoa(pid)+"/ctl", "nohang");
|
||||
}
|
||||
|
||||
defn truss() {
|
||||
local pc, lst, offset, prevpc, pcspret, ret;
|
||||
|
||||
offset = trapoffset();
|
||||
|
||||
stop(pid);
|
||||
_stoprunning = 0;
|
||||
setuptruss();
|
||||
pcspret = UPCSPRET();
|
||||
|
||||
while !_stoprunning do {
|
||||
cont();
|
||||
if notes[0]!="sys: breakpoint" then {
|
||||
cleantruss();
|
||||
return {};
|
||||
}
|
||||
pc = *PC;
|
||||
if match(*PC, stopPC)>=0 then {
|
||||
print(pid,": ",trapreason(),"\t");
|
||||
print(fmt(pc,'a'),"\t",fmt(pc,'i'),"\n");
|
||||
cleantruss();
|
||||
return {};
|
||||
}
|
||||
if match(*PC, trussbpt)>=0 then {
|
||||
usyscall();
|
||||
trussflush();
|
||||
prevpc = *PC;
|
||||
step();
|
||||
ret = eval pcspret[2];
|
||||
print("\treturn value: ", ret\D, "\n");
|
||||
if (ret>=0) && (match(prevpc, readPC)>=0) then {
|
||||
print("\tdata: ");
|
||||
printtextordata(*((eval pcspret[1])+4), ret);
|
||||
print("\n");
|
||||
}
|
||||
if (ret>=0) && (match(prevpc, fd2pathPC)>=0) then {
|
||||
print("\tdata: \"", *(*((eval pcspret[1])+4)\s), "\"\n");
|
||||
}
|
||||
if (ret>=0) && (match(prevpc, errstrPC)>=0) then {
|
||||
print("\tdata: \"", *(*(eval pcspret[1])\s), "\"\n");
|
||||
}
|
||||
if (ret>=0) && (match(prevpc, awaitPC)>=0) then {
|
||||
print("\tdata: ");
|
||||
printtextordata(*(eval pcspret[1]), ret);
|
||||
print("\n");
|
||||
}
|
||||
// compatibility hacks for old kernel:
|
||||
if (ret>=0) && (match(prevpc, _waitPC)>=0) then {
|
||||
print("\tdata: ");
|
||||
printtextordata(*(eval pcspret[1]), 12+3*12+64);
|
||||
print("\n");
|
||||
}
|
||||
if (ret>=0) && (match(prevpc, _errstrPC)>=0) then {
|
||||
print("\tdata: ");
|
||||
printtextordata(*(eval pcspret[1]), 64);
|
||||
print("\n");
|
||||
}
|
||||
}
|
||||
trussflush();
|
||||
}
|
||||
}
|
||||
|
||||
defn cleantruss() {
|
||||
local lst, offset, addr;
|
||||
|
||||
stop(pid);
|
||||
offset = trapoffset();
|
||||
lst = trussbpt;
|
||||
while lst do
|
||||
{
|
||||
addr = head lst;
|
||||
lst = tail lst;
|
||||
bpdel(addr);
|
||||
}
|
||||
trussbpt = {};
|
||||
**PC = @*PC; // repair current instruction
|
||||
}
|
||||
|
||||
defn untruss() {
|
||||
cleantruss();
|
||||
start(pid);
|
||||
}
|
||||
|
||||
print("/sys/lib/acid/truss");
|
23
sys/lib/acid/window
Executable file
23
sys/lib/acid/window
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/rc
|
||||
switch($#*){
|
||||
case 0 1
|
||||
echo usage: window '''minx miny maxx maxy''' cmd args ...
|
||||
exit usage
|
||||
}
|
||||
|
||||
rfork ns
|
||||
if(mount $wsys /mnt/wsys N`{{echo $pid $1 }| sed 's/^ //g;s/ +/,/g'}){
|
||||
shift
|
||||
bind -b /mnt/wsys /dev
|
||||
echo -n `{basename $1} > /dev/label >[2] /dev/null
|
||||
@{
|
||||
echo hang > /proc/^`{cat /dev/ppid}^/ctl
|
||||
$* < /dev/cons > /dev/cons >[2] /dev/cons &
|
||||
exit $apid
|
||||
}
|
||||
ostatus = `{echo $status | sed 's/.*://'}
|
||||
echo waitstop > /proc/$ostatus/ctl
|
||||
echo nohang > /proc/$ostatus/ctl
|
||||
exit $ostatus
|
||||
}
|
||||
exit 0
|
36
sys/lib/agent.config
Executable file
36
sys/lib/agent.config
Executable file
|
@ -0,0 +1,36 @@
|
|||
# an ssh key, as in the .secret file produced by aux/ssh_genkey
|
||||
sshkey="1024 2D 5FD276869B5257F506CD32A5EF9CC8D5F691B1B15B17E59ED01691160828D1E0DF192AB82451684DBC74668874C557C81C89396C5EFCA155FE88E1AD6A3C27BFD34B6F6D0A30958B79872CA73A10401B3B85F8E430646B7FD3F36C2BFA47B0581FF101C207E654F1FF23E37BFEAA36D8381FC17315BC77292A6D4E46B68CEE64 A5D892105B985D28159E3A1F3267F9238D373D64315A97441962227EBF5A578F0BFA53C88DA096FCB27AB176052E2B9F4514E362F32B660124D937D386A3311C6DB5497DEF131A1BE5BFA7C88C204D25DB6F6C8181D4826239E52788745B0801F7CB86725A5137E358FEE99852CD50B1B470BA413C35333C26F5D8A3B9D57DF2 A322062C0B47115FBE09721ABBB027719F09C87ED29664AB5A1777D97CBCB099D00A305C8E895C1065DC397D0777DEFB4E216C602A5F4098E6E71701804050B0 10441EEC665DA685E72E9CADB27054098CB879C9F2068ED8104A860C55049A63217DB493247F448CDA5DABA13750775402C8E7F1009C0FD0362EF1C9DFDA141E2 1D005C1E95EA803E882F30BACC088F8BAA7EE510DB7B729B9E3D0F9E218DA23D7A5174AFBE514EF1D93837BB3487169313942A05B7E36C31F029152816CCDB24 2E449C3A06BABD389CF65CF3C2AB99B4C378D1E366790DC74AC899BCAD8FF008E7CBF641D3E72963232C92DBA30703C7245D996EF0AAD7A5946EC6827CBBF4F4 9E0E0FE3DAA204E387DD556667CC3B431B01084DDA9AF5461EBE8700BC213F7D2DEF799915B17B596172CB6859E9775AC902D0A285E0D9491ED2642DF6D818DF"
|
||||
|
||||
# plan 9 password
|
||||
plan9password = "secret"
|
||||
|
||||
# inferno/pop password
|
||||
apoppassword = "terces"
|
||||
|
||||
# plaintext non-secure password
|
||||
plaintext = "guessme"
|
||||
|
||||
# serve your ssh key
|
||||
file /ssh/you
|
||||
protocol ssh-rsa
|
||||
data $sshkey
|
||||
|
||||
# make "rdwr /mnt/auth/netkey/your.host/you" a workalike for netkey.
|
||||
file /netkey/your.host/you
|
||||
protocol netkey
|
||||
data $plan9password
|
||||
|
||||
# md5 apop challenge-response
|
||||
file /apop/your.host/you
|
||||
protocol apop
|
||||
data $apoppassword
|
||||
|
||||
# raw access to password for pop or imap
|
||||
file /pop/your.host/you
|
||||
protocol raw
|
||||
data $plaintext
|
||||
|
||||
file /imap/your.host/you
|
||||
protocol raw
|
||||
data $plaintext
|
||||
|
BIN
sys/lib/amspell
Executable file
BIN
sys/lib/amspell
Executable file
Binary file not shown.
303
sys/lib/antiword/8859-1.txt
Executable file
303
sys/lib/antiword/8859-1.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-1:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-1:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-1 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-1 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic)
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
303
sys/lib/antiword/8859-10.txt
Executable file
303
sys/lib/antiword/8859-10.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-10:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table format: Format A
|
||||
# Date: 1999 October 11
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-10:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-10 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-10 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version new.
|
||||
# 1.1 corrected mistake in mapping of 0xA4
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xA3 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xA4 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
|
||||
0xA6 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xA9 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xAA 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAB 0x0166 # LATIN CAPITAL LETTER T WITH STROKE
|
||||
0xAC 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xAF 0x014A # LATIN CAPITAL LETTER ENG
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xB3 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xB4 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE
|
||||
0xB6 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xB9 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xBA 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBB 0x0167 # LATIN SMALL LETTER T WITH STROKE
|
||||
0xBC 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBD 0x2015 # HORIZONTAL BAR
|
||||
0xBE 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xBF 0x014B # LATIN SMALL LETTER ENG
|
||||
0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic)
|
||||
0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x0169 # LATIN SMALL LETTER U WITH TILDE
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x0138 # LATIN SMALL LETTER KRA
|
299
sys/lib/antiword/8859-13.txt
Executable file
299
sys/lib/antiword/8859-13.txt
Executable file
|
@ -0,0 +1,299 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-13:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-13:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-13 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-13 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x201C # LEFT DOUBLE QUOTATION MARK
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x0157 # LATIN SMALL LETTER R WITH CEDILLA
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xC0 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xC1 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC2 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC3 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xC7 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xCB 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCC 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xCD 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xCE 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xCF 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xD0 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xD9 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xDA 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xDB 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xDE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xE1 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE2 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE3 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xE7 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xEB 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xEC 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xED 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xEE 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xEF 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xF0 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xF9 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xFA 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xFB 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xFE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xFF 0x2019 # RIGHT SINGLE QUOTATION MARK
|
301
sys/lib/antiword/8859-14.txt
Executable file
301
sys/lib/antiword/8859-14.txt
Executable file
|
@ -0,0 +1,301 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-14:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-14:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-14 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-14 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
|
||||
0xA2 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
|
||||
0xA5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
|
||||
0xA6 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
|
||||
0xAB 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
|
||||
0xAC 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xB0 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
|
||||
0xB1 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
|
||||
0xB2 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
|
||||
0xB3 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
0xB4 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
|
||||
0xB5 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
|
||||
0xB8 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
|
||||
0xB9 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
|
||||
0xBA 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
|
||||
0xBB 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
|
||||
0xBC 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
|
||||
0xBD 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
|
||||
0xBE 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
|
||||
0xBF 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
303
sys/lib/antiword/8859-15.txt
Executable file
303
sys/lib/antiword/8859-15.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-15:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-15:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-15 order.
|
||||
#
|
||||
# Version history
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xBD 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
299
sys/lib/antiword/8859-16.txt
Executable file
299
sys/lib/antiword/8859-16.txt
Executable file
|
@ -0,0 +1,299 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-16:2001 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 2001 July 26
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
#
|
||||
# Copyright (c) 1999-2001 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-16:2001 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-16 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-16 order.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xB5 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xB9 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xBA 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xBD 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xD8 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xF8 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xFE 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
303
sys/lib/antiword/8859-2.txt
Executable file
303
sys/lib/antiword/8859-2.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO 8859-2:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-2:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-2 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-2 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x02D8 # BREVE
|
||||
0xA3 0x0141 # LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x013D # LATIN CAPITAL LETTER L WITH CARON
|
||||
0xA6 0x015A # LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x0164 # LATIN CAPITAL LETTER T WITH CARON
|
||||
0xAC 0x0179 # LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x02DB # OGONEK
|
||||
0xB3 0x0142 # LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x013E # LATIN SMALL LETTER L WITH CARON
|
||||
0xB6 0x015B # LATIN SMALL LETTER S WITH ACUTE
|
||||
0xB7 0x02C7 # CARON
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x0165 # LATIN SMALL LETTER T WITH CARON
|
||||
0xBC 0x017A # LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xBD 0x02DD # DOUBLE ACUTE ACCENT
|
||||
0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x0154 # LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0139 # LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0xC6 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x011A # LATIN CAPITAL LETTER E WITH CARON
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x010E # LATIN CAPITAL LETTER D WITH CARON
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 # LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0147 # LATIN CAPITAL LETTER N WITH CARON
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 # LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x0158 # LATIN CAPITAL LETTER R WITH CARON
|
||||
0xD9 0x016E # LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x0170 # LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0162 # LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0155 # LATIN SMALL LETTER R WITH ACUTE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 # LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x013A # LATIN SMALL LETTER L WITH ACUTE
|
||||
0xE6 0x0107 # LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x011B # LATIN SMALL LETTER E WITH CARON
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x010F # LATIN SMALL LETTER D WITH CARON
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 # LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0148 # LATIN SMALL LETTER N WITH CARON
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 # LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x0159 # LATIN SMALL LETTER R WITH CARON
|
||||
0xF9 0x016F # LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x0171 # LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 # LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 # DOT ABOVE
|
296
sys/lib/antiword/8859-3.txt
Executable file
296
sys/lib/antiword/8859-3.txt
Executable file
|
@ -0,0 +1,296 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-3:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-3:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-3 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-3 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0126 # LATIN CAPITAL LETTER H WITH STROKE
|
||||
0xA2 0x02D8 # BREVE
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA6 0x0124 # LATIN CAPITAL LETTER H WITH CIRCUMFLEX
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
|
||||
0xAA 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x011E # LATIN CAPITAL LETTER G WITH BREVE
|
||||
0xAC 0x0134 # LATIN CAPITAL LETTER J WITH CIRCUMFLEX
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAF 0x017B # LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0127 # LATIN SMALL LETTER H WITH STROKE
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x0125 # LATIN SMALL LETTER H WITH CIRCUMFLEX
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xBA 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x011F # LATIN SMALL LETTER G WITH BREVE
|
||||
0xBC 0x0135 # LATIN SMALL LETTER J WITH CIRCUMFLEX
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBF 0x017C # LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
|
||||
0xC6 0x0108 # LATIN CAPITAL LETTER C WITH CIRCUMFLEX
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x011C # LATIN CAPITAL LETTER G WITH CIRCUMFLEX
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x016C # LATIN CAPITAL LETTER U WITH BREVE
|
||||
0xDE 0x015C # LATIN CAPITAL LETTER S WITH CIRCUMFLEX
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
|
||||
0xE6 0x0109 # LATIN SMALL LETTER C WITH CIRCUMFLEX
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x011D # LATIN SMALL LETTER G WITH CIRCUMFLEX
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x016D # LATIN SMALL LETTER U WITH BREVE
|
||||
0xFE 0x015D # LATIN SMALL LETTER S WITH CIRCUMFLEX
|
||||
0xFF 0x02D9 # DOT ABOVE
|
303
sys/lib/antiword/8859-4.txt
Executable file
303
sys/lib/antiword/8859-4.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-4:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-4:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-4 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-4 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0104 # LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA2 0x0138 # LATIN SMALL LETTER KRA
|
||||
0xA3 0x0156 # LATIN CAPITAL LETTER R WITH CEDILLA
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
|
||||
0xA6 0x013B # LATIN CAPITAL LETTER L WITH CEDILLA
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xAA 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
|
||||
0xAB 0x0122 # LATIN CAPITAL LETTER G WITH CEDILLA
|
||||
0xAC 0x0166 # LATIN CAPITAL LETTER T WITH STROKE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x0105 # LATIN SMALL LETTER A WITH OGONEK
|
||||
0xB2 0x02DB # OGONEK
|
||||
0xB3 0x0157 # LATIN SMALL LETTER R WITH CEDILLA
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x0129 # LATIN SMALL LETTER I WITH TILDE
|
||||
0xB6 0x013C # LATIN SMALL LETTER L WITH CEDILLA
|
||||
0xB7 0x02C7 # CARON
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xBA 0x0113 # LATIN SMALL LETTER E WITH MACRON
|
||||
0xBB 0x0123 # LATIN SMALL LETTER G WITH CEDILLA
|
||||
0xBC 0x0167 # LATIN SMALL LETTER T WITH STROKE
|
||||
0xBD 0x014A # LATIN CAPITAL LETTER ENG
|
||||
0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xBF 0x014B # LATIN SMALL LETTER ENG
|
||||
0xC0 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x012E # LATIN CAPITAL LETTER I WITH OGONEK
|
||||
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 # LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x0116 # LATIN CAPITAL LETTER E WITH DOT ABOVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x012A # LATIN CAPITAL LETTER I WITH MACRON
|
||||
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0145 # LATIN CAPITAL LETTER N WITH CEDILLA
|
||||
0xD2 0x014C # LATIN CAPITAL LETTER O WITH MACRON
|
||||
0xD3 0x0136 # LATIN CAPITAL LETTER K WITH CEDILLA
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x0172 # LATIN CAPITAL LETTER U WITH OGONEK
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
|
||||
0xDE 0x016A # LATIN CAPITAL LETTER U WITH MACRON
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0101 # LATIN SMALL LETTER A WITH MACRON
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x012F # LATIN SMALL LETTER I WITH OGONEK
|
||||
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 # LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x0117 # LATIN SMALL LETTER E WITH DOT ABOVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x012B # LATIN SMALL LETTER I WITH MACRON
|
||||
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0146 # LATIN SMALL LETTER N WITH CEDILLA
|
||||
0xF2 0x014D # LATIN SMALL LETTER O WITH MACRON
|
||||
0xF3 0x0137 # LATIN SMALL LETTER K WITH CEDILLA
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x0173 # LATIN SMALL LETTER U WITH OGONEK
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0169 # LATIN SMALL LETTER U WITH TILDE
|
||||
0xFE 0x016B # LATIN SMALL LETTER U WITH MACRON
|
||||
0xFF 0x02D9 # DOT ABOVE
|
303
sys/lib/antiword/8859-5.txt
Executable file
303
sys/lib/antiword/8859-5.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: ISO 8859-5:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-5:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-5 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-5 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x0401 # CYRILLIC CAPITAL LETTER IO
|
||||
0xA2 0x0402 # CYRILLIC CAPITAL LETTER DJE
|
||||
0xA3 0x0403 # CYRILLIC CAPITAL LETTER GJE
|
||||
0xA4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xA5 0x0405 # CYRILLIC CAPITAL LETTER DZE
|
||||
0xA6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xA7 0x0407 # CYRILLIC CAPITAL LETTER YI
|
||||
0xA8 0x0408 # CYRILLIC CAPITAL LETTER JE
|
||||
0xA9 0x0409 # CYRILLIC CAPITAL LETTER LJE
|
||||
0xAA 0x040A # CYRILLIC CAPITAL LETTER NJE
|
||||
0xAB 0x040B # CYRILLIC CAPITAL LETTER TSHE
|
||||
0xAC 0x040C # CYRILLIC CAPITAL LETTER KJE
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x040E # CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xAF 0x040F # CYRILLIC CAPITAL LETTER DZHE
|
||||
0xB0 0x0410 # CYRILLIC CAPITAL LETTER A
|
||||
0xB1 0x0411 # CYRILLIC CAPITAL LETTER BE
|
||||
0xB2 0x0412 # CYRILLIC CAPITAL LETTER VE
|
||||
0xB3 0x0413 # CYRILLIC CAPITAL LETTER GHE
|
||||
0xB4 0x0414 # CYRILLIC CAPITAL LETTER DE
|
||||
0xB5 0x0415 # CYRILLIC CAPITAL LETTER IE
|
||||
0xB6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
|
||||
0xB7 0x0417 # CYRILLIC CAPITAL LETTER ZE
|
||||
0xB8 0x0418 # CYRILLIC CAPITAL LETTER I
|
||||
0xB9 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xBA 0x041A # CYRILLIC CAPITAL LETTER KA
|
||||
0xBB 0x041B # CYRILLIC CAPITAL LETTER EL
|
||||
0xBC 0x041C # CYRILLIC CAPITAL LETTER EM
|
||||
0xBD 0x041D # CYRILLIC CAPITAL LETTER EN
|
||||
0xBE 0x041E # CYRILLIC CAPITAL LETTER O
|
||||
0xBF 0x041F # CYRILLIC CAPITAL LETTER PE
|
||||
0xC0 0x0420 # CYRILLIC CAPITAL LETTER ER
|
||||
0xC1 0x0421 # CYRILLIC CAPITAL LETTER ES
|
||||
0xC2 0x0422 # CYRILLIC CAPITAL LETTER TE
|
||||
0xC3 0x0423 # CYRILLIC CAPITAL LETTER U
|
||||
0xC4 0x0424 # CYRILLIC CAPITAL LETTER EF
|
||||
0xC5 0x0425 # CYRILLIC CAPITAL LETTER HA
|
||||
0xC6 0x0426 # CYRILLIC CAPITAL LETTER TSE
|
||||
0xC7 0x0427 # CYRILLIC CAPITAL LETTER CHE
|
||||
0xC8 0x0428 # CYRILLIC CAPITAL LETTER SHA
|
||||
0xC9 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xCA 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xCB 0x042B # CYRILLIC CAPITAL LETTER YERU
|
||||
0xCC 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xCD 0x042D # CYRILLIC CAPITAL LETTER E
|
||||
0xCE 0x042E # CYRILLIC CAPITAL LETTER YU
|
||||
0xCF 0x042F # CYRILLIC CAPITAL LETTER YA
|
||||
0xD0 0x0430 # CYRILLIC SMALL LETTER A
|
||||
0xD1 0x0431 # CYRILLIC SMALL LETTER BE
|
||||
0xD2 0x0432 # CYRILLIC SMALL LETTER VE
|
||||
0xD3 0x0433 # CYRILLIC SMALL LETTER GHE
|
||||
0xD4 0x0434 # CYRILLIC SMALL LETTER DE
|
||||
0xD5 0x0435 # CYRILLIC SMALL LETTER IE
|
||||
0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE
|
||||
0xD7 0x0437 # CYRILLIC SMALL LETTER ZE
|
||||
0xD8 0x0438 # CYRILLIC SMALL LETTER I
|
||||
0xD9 0x0439 # CYRILLIC SMALL LETTER SHORT I
|
||||
0xDA 0x043A # CYRILLIC SMALL LETTER KA
|
||||
0xDB 0x043B # CYRILLIC SMALL LETTER EL
|
||||
0xDC 0x043C # CYRILLIC SMALL LETTER EM
|
||||
0xDD 0x043D # CYRILLIC SMALL LETTER EN
|
||||
0xDE 0x043E # CYRILLIC SMALL LETTER O
|
||||
0xDF 0x043F # CYRILLIC SMALL LETTER PE
|
||||
0xE0 0x0440 # CYRILLIC SMALL LETTER ER
|
||||
0xE1 0x0441 # CYRILLIC SMALL LETTER ES
|
||||
0xE2 0x0442 # CYRILLIC SMALL LETTER TE
|
||||
0xE3 0x0443 # CYRILLIC SMALL LETTER U
|
||||
0xE4 0x0444 # CYRILLIC SMALL LETTER EF
|
||||
0xE5 0x0445 # CYRILLIC SMALL LETTER HA
|
||||
0xE6 0x0446 # CYRILLIC SMALL LETTER TSE
|
||||
0xE7 0x0447 # CYRILLIC SMALL LETTER CHE
|
||||
0xE8 0x0448 # CYRILLIC SMALL LETTER SHA
|
||||
0xE9 0x0449 # CYRILLIC SMALL LETTER SHCHA
|
||||
0xEA 0x044A # CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xEB 0x044B # CYRILLIC SMALL LETTER YERU
|
||||
0xEC 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xED 0x044D # CYRILLIC SMALL LETTER E
|
||||
0xEE 0x044E # CYRILLIC SMALL LETTER YU
|
||||
0xEF 0x044F # CYRILLIC SMALL LETTER YA
|
||||
0xF0 0x2116 # NUMERO SIGN
|
||||
0xF1 0x0451 # CYRILLIC SMALL LETTER IO
|
||||
0xF2 0x0452 # CYRILLIC SMALL LETTER DJE
|
||||
0xF3 0x0453 # CYRILLIC SMALL LETTER GJE
|
||||
0xF4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xF5 0x0455 # CYRILLIC SMALL LETTER DZE
|
||||
0xF6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xF7 0x0457 # CYRILLIC SMALL LETTER YI
|
||||
0xF8 0x0458 # CYRILLIC SMALL LETTER JE
|
||||
0xF9 0x0459 # CYRILLIC SMALL LETTER LJE
|
||||
0xFA 0x045A # CYRILLIC SMALL LETTER NJE
|
||||
0xFB 0x045B # CYRILLIC SMALL LETTER TSHE
|
||||
0xFC 0x045C # CYRILLIC SMALL LETTER KJE
|
||||
0xFD 0x00A7 # SECTION SIGN
|
||||
0xFE 0x045E # CYRILLIC SMALL LETTER SHORT U
|
||||
0xFF 0x045F # CYRILLIC SMALL LETTER DZHE
|
260
sys/lib/antiword/8859-6.txt
Executable file
260
sys/lib/antiword/8859-6.txt
Executable file
|
@ -0,0 +1,260 @@
|
|||
#
|
||||
# Name: ISO 8859-6:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-6:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-6 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-6 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 0x30..0x39 remapped to the ASCII digits (U+0030..U+0039) instead
|
||||
# of the Arabic digits (U+0660..U+0669).
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xAC 0x060C # ARABIC COMMA
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xBB 0x061B # ARABIC SEMICOLON
|
||||
0xBF 0x061F # ARABIC QUESTION MARK
|
||||
0xC1 0x0621 # ARABIC LETTER HAMZA
|
||||
0xC2 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
|
||||
0xC3 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
|
||||
0xC4 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
|
||||
0xC5 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
|
||||
0xC6 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
|
||||
0xC7 0x0627 # ARABIC LETTER ALEF
|
||||
0xC8 0x0628 # ARABIC LETTER BEH
|
||||
0xC9 0x0629 # ARABIC LETTER TEH MARBUTA
|
||||
0xCA 0x062A # ARABIC LETTER TEH
|
||||
0xCB 0x062B # ARABIC LETTER THEH
|
||||
0xCC 0x062C # ARABIC LETTER JEEM
|
||||
0xCD 0x062D # ARABIC LETTER HAH
|
||||
0xCE 0x062E # ARABIC LETTER KHAH
|
||||
0xCF 0x062F # ARABIC LETTER DAL
|
||||
0xD0 0x0630 # ARABIC LETTER THAL
|
||||
0xD1 0x0631 # ARABIC LETTER REH
|
||||
0xD2 0x0632 # ARABIC LETTER ZAIN
|
||||
0xD3 0x0633 # ARABIC LETTER SEEN
|
||||
0xD4 0x0634 # ARABIC LETTER SHEEN
|
||||
0xD5 0x0635 # ARABIC LETTER SAD
|
||||
0xD6 0x0636 # ARABIC LETTER DAD
|
||||
0xD7 0x0637 # ARABIC LETTER TAH
|
||||
0xD8 0x0638 # ARABIC LETTER ZAH
|
||||
0xD9 0x0639 # ARABIC LETTER AIN
|
||||
0xDA 0x063A # ARABIC LETTER GHAIN
|
||||
0xE0 0x0640 # ARABIC TATWEEL
|
||||
0xE1 0x0641 # ARABIC LETTER FEH
|
||||
0xE2 0x0642 # ARABIC LETTER QAF
|
||||
0xE3 0x0643 # ARABIC LETTER KAF
|
||||
0xE4 0x0644 # ARABIC LETTER LAM
|
||||
0xE5 0x0645 # ARABIC LETTER MEEM
|
||||
0xE6 0x0646 # ARABIC LETTER NOON
|
||||
0xE7 0x0647 # ARABIC LETTER HEH
|
||||
0xE8 0x0648 # ARABIC LETTER WAW
|
||||
0xE9 0x0649 # ARABIC LETTER ALEF MAKSURA
|
||||
0xEA 0x064A # ARABIC LETTER YEH
|
||||
0xEB 0x064B # ARABIC FATHATAN
|
||||
0xEC 0x064C # ARABIC DAMMATAN
|
||||
0xED 0x064D # ARABIC KASRATAN
|
||||
0xEE 0x064E # ARABIC FATHA
|
||||
0xEF 0x064F # ARABIC DAMMA
|
||||
0xF0 0x0650 # ARABIC KASRA
|
||||
0xF1 0x0651 # ARABIC SHADDA
|
||||
0xF2 0x0652 # ARABIC SUKUN
|
302
sys/lib/antiword/8859-7.txt
Executable file
302
sys/lib/antiword/8859-7.txt
Executable file
|
@ -0,0 +1,302 @@
|
|||
#
|
||||
# Name: ISO 8859-7:1987 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO 8859-7:1987 characters map into Unicode.
|
||||
#
|
||||
# ISO 8859-7:1987 is equivalent to ISO-IR-126, ELOT 928,
|
||||
# and ECMA 118.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO 8859-7 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO 8859-7 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# Remap 0xA1 to U+2018 (instead of 0x02BD) to match text of 8859-7
|
||||
# Remap 0xA2 to U+2019 (instead of 0x02BC) to match text of 8859-7
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0xA2 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAF 0x2015 # HORIZONTAL BAR
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x0384 # GREEK TONOS
|
||||
0xB5 0x0385 # GREEK DIALYTIKA TONOS
|
||||
0xB6 0x0386 # GREEK CAPITAL LETTER ALPHA WITH TONOS
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x0388 # GREEK CAPITAL LETTER EPSILON WITH TONOS
|
||||
0xB9 0x0389 # GREEK CAPITAL LETTER ETA WITH TONOS
|
||||
0xBA 0x038A # GREEK CAPITAL LETTER IOTA WITH TONOS
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x038C # GREEK CAPITAL LETTER OMICRON WITH TONOS
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x038E # GREEK CAPITAL LETTER UPSILON WITH TONOS
|
||||
0xBF 0x038F # GREEK CAPITAL LETTER OMEGA WITH TONOS
|
||||
0xC0 0x0390 # GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS
|
||||
0xC1 0x0391 # GREEK CAPITAL LETTER ALPHA
|
||||
0xC2 0x0392 # GREEK CAPITAL LETTER BETA
|
||||
0xC3 0x0393 # GREEK CAPITAL LETTER GAMMA
|
||||
0xC4 0x0394 # GREEK CAPITAL LETTER DELTA
|
||||
0xC5 0x0395 # GREEK CAPITAL LETTER EPSILON
|
||||
0xC6 0x0396 # GREEK CAPITAL LETTER ZETA
|
||||
0xC7 0x0397 # GREEK CAPITAL LETTER ETA
|
||||
0xC8 0x0398 # GREEK CAPITAL LETTER THETA
|
||||
0xC9 0x0399 # GREEK CAPITAL LETTER IOTA
|
||||
0xCA 0x039A # GREEK CAPITAL LETTER KAPPA
|
||||
0xCB 0x039B # GREEK CAPITAL LETTER LAMDA
|
||||
0xCC 0x039C # GREEK CAPITAL LETTER MU
|
||||
0xCD 0x039D # GREEK CAPITAL LETTER NU
|
||||
0xCE 0x039E # GREEK CAPITAL LETTER XI
|
||||
0xCF 0x039F # GREEK CAPITAL LETTER OMICRON
|
||||
0xD0 0x03A0 # GREEK CAPITAL LETTER PI
|
||||
0xD1 0x03A1 # GREEK CAPITAL LETTER RHO
|
||||
0xD3 0x03A3 # GREEK CAPITAL LETTER SIGMA
|
||||
0xD4 0x03A4 # GREEK CAPITAL LETTER TAU
|
||||
0xD5 0x03A5 # GREEK CAPITAL LETTER UPSILON
|
||||
0xD6 0x03A6 # GREEK CAPITAL LETTER PHI
|
||||
0xD7 0x03A7 # GREEK CAPITAL LETTER CHI
|
||||
0xD8 0x03A8 # GREEK CAPITAL LETTER PSI
|
||||
0xD9 0x03A9 # GREEK CAPITAL LETTER OMEGA
|
||||
0xDA 0x03AA # GREEK CAPITAL LETTER IOTA WITH DIALYTIKA
|
||||
0xDB 0x03AB # GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA
|
||||
0xDC 0x03AC # GREEK SMALL LETTER ALPHA WITH TONOS
|
||||
0xDD 0x03AD # GREEK SMALL LETTER EPSILON WITH TONOS
|
||||
0xDE 0x03AE # GREEK SMALL LETTER ETA WITH TONOS
|
||||
0xDF 0x03AF # GREEK SMALL LETTER IOTA WITH TONOS
|
||||
0xE0 0x03B0 # GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS
|
||||
0xE1 0x03B1 # GREEK SMALL LETTER ALPHA
|
||||
0xE2 0x03B2 # GREEK SMALL LETTER BETA
|
||||
0xE3 0x03B3 # GREEK SMALL LETTER GAMMA
|
||||
0xE4 0x03B4 # GREEK SMALL LETTER DELTA
|
||||
0xE5 0x03B5 # GREEK SMALL LETTER EPSILON
|
||||
0xE6 0x03B6 # GREEK SMALL LETTER ZETA
|
||||
0xE7 0x03B7 # GREEK SMALL LETTER ETA
|
||||
0xE8 0x03B8 # GREEK SMALL LETTER THETA
|
||||
0xE9 0x03B9 # GREEK SMALL LETTER IOTA
|
||||
0xEA 0x03BA # GREEK SMALL LETTER KAPPA
|
||||
0xEB 0x03BB # GREEK SMALL LETTER LAMDA
|
||||
0xEC 0x03BC # GREEK SMALL LETTER MU
|
||||
0xED 0x03BD # GREEK SMALL LETTER NU
|
||||
0xEE 0x03BE # GREEK SMALL LETTER XI
|
||||
0xEF 0x03BF # GREEK SMALL LETTER OMICRON
|
||||
0xF0 0x03C0 # GREEK SMALL LETTER PI
|
||||
0xF1 0x03C1 # GREEK SMALL LETTER RHO
|
||||
0xF2 0x03C2 # GREEK SMALL LETTER FINAL SIGMA
|
||||
0xF3 0x03C3 # GREEK SMALL LETTER SIGMA
|
||||
0xF4 0x03C4 # GREEK SMALL LETTER TAU
|
||||
0xF5 0x03C5 # GREEK SMALL LETTER UPSILON
|
||||
0xF6 0x03C6 # GREEK SMALL LETTER PHI
|
||||
0xF7 0x03C7 # GREEK SMALL LETTER CHI
|
||||
0xF8 0x03C8 # GREEK SMALL LETTER PSI
|
||||
0xF9 0x03C9 # GREEK SMALL LETTER OMEGA
|
||||
0xFA 0x03CA # GREEK SMALL LETTER IOTA WITH DIALYTIKA
|
||||
0xFB 0x03CB # GREEK SMALL LETTER UPSILON WITH DIALYTIKA
|
||||
0xFC 0x03CC # GREEK SMALL LETTER OMICRON WITH TONOS
|
||||
0xFD 0x03CD # GREEK SMALL LETTER UPSILON WITH TONOS
|
||||
0xFE 0x03CE # GREEK SMALL LETTER OMEGA WITH TONOS
|
270
sys/lib/antiword/8859-8.txt
Executable file
270
sys/lib/antiword/8859-8.txt
Executable file
|
@ -0,0 +1,270 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-8:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.1
|
||||
# Table format: Format A
|
||||
# Date: 2000-Jan-03
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-8:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-8 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-8 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
# 1.1 version updates to the published 8859-8:1999, correcting
|
||||
# the mapping of 0xAF and adding mappings for LRM and RLM.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00D7 # MULTIPLICATION SIGN
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00F7 # DIVISION SIGN
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xDF 0x2017 # DOUBLE LOW LINE
|
||||
0xE0 0x05D0 # HEBREW LETTER ALEF
|
||||
0xE1 0x05D1 # HEBREW LETTER BET
|
||||
0xE2 0x05D2 # HEBREW LETTER GIMEL
|
||||
0xE3 0x05D3 # HEBREW LETTER DALET
|
||||
0xE4 0x05D4 # HEBREW LETTER HE
|
||||
0xE5 0x05D5 # HEBREW LETTER VAV
|
||||
0xE6 0x05D6 # HEBREW LETTER ZAYIN
|
||||
0xE7 0x05D7 # HEBREW LETTER HET
|
||||
0xE8 0x05D8 # HEBREW LETTER TET
|
||||
0xE9 0x05D9 # HEBREW LETTER YOD
|
||||
0xEA 0x05DA # HEBREW LETTER FINAL KAF
|
||||
0xEB 0x05DB # HEBREW LETTER KAF
|
||||
0xEC 0x05DC # HEBREW LETTER LAMED
|
||||
0xED 0x05DD # HEBREW LETTER FINAL MEM
|
||||
0xEE 0x05DE # HEBREW LETTER MEM
|
||||
0xEF 0x05DF # HEBREW LETTER FINAL NUN
|
||||
0xF0 0x05E0 # HEBREW LETTER NUN
|
||||
0xF1 0x05E1 # HEBREW LETTER SAMEKH
|
||||
0xF2 0x05E2 # HEBREW LETTER AYIN
|
||||
0xF3 0x05E3 # HEBREW LETTER FINAL PE
|
||||
0xF4 0x05E4 # HEBREW LETTER PE
|
||||
0xF5 0x05E5 # HEBREW LETTER FINAL TSADI
|
||||
0xF6 0x05E6 # HEBREW LETTER TSADI
|
||||
0xF7 0x05E7 # HEBREW LETTER QOF
|
||||
0xF8 0x05E8 # HEBREW LETTER RESH
|
||||
0xF9 0x05E9 # HEBREW LETTER SHIN
|
||||
0xFA 0x05EA # HEBREW LETTER TAV
|
||||
0xFD 0x200E # LEFT-TO-RIGHT MARK
|
||||
0xFE 0x200F # RIGHT-TO-LEFT MARK
|
||||
|
307
sys/lib/antiword/8859-9.txt
Executable file
307
sys/lib/antiword/8859-9.txt
Executable file
|
@ -0,0 +1,307 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-9:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on magnetic media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-9:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-9 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-9 order.
|
||||
#
|
||||
# ISO/IEC 8859-9 is also equivalent to ISO-IR-148.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0081 # <control>
|
||||
0x82 0x0082 # <control>
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0085 # <control>
|
||||
0x86 0x0086 # <control>
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x008C # <control>
|
||||
0x8D 0x008D # <control>
|
||||
0x8E 0x008E # <control>
|
||||
0x8F 0x008F # <control>
|
||||
0x90 0x0090 # <control>
|
||||
0x91 0x0091 # <control>
|
||||
0x92 0x0092 # <control>
|
||||
0x93 0x0093 # <control>
|
||||
0x94 0x0094 # <control>
|
||||
0x95 0x0095 # <control>
|
||||
0x96 0x0096 # <control>
|
||||
0x97 0x0097 # <control>
|
||||
0x98 0x0098 # <control>
|
||||
0x99 0x0099 # <control>
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x009C # <control>
|
||||
0x9D 0x009D # <control>
|
||||
0x9E 0x009E # <control>
|
||||
0x9F 0x009F # <control>
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x011E # LATIN CAPITAL LETTER G WITH BREVE
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
|
||||
0xDE 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x011F # LATIN SMALL LETTER G WITH BREVE
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xFE 0x015F # LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
|
||||
|
81
sys/lib/antiword/Default
Executable file
81
sys/lib/antiword/Default
Executable file
|
@ -0,0 +1,81 @@
|
|||
# Default fontnames translation table
|
||||
# uses only fonts present in the RISC OS 3 ROMs
|
||||
#
|
||||
# MS-Word fontname, Italic, Bold, Acorn fontname, Special
|
||||
Arial, 0, 0, Homerton.Medium, 0
|
||||
Arial, 0, 1, Homerton.Bold, 0
|
||||
Arial, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Arial Black, 0, 0, Homerton.Medium, 0
|
||||
Arial Black, 0, 1, Homerton.Bold, 0
|
||||
Arial Black, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial Black, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Arial CE, 0, 0, Homerton.Medium, 0
|
||||
Arial CE, 0, 1, Homerton.Bold, 0
|
||||
Arial CE, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial CE, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Arial Narrow, 0, 0, Homerton.Medium, 0
|
||||
Arial Narrow, 0, 1, Homerton.Bold, 0
|
||||
Arial Narrow, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial Narrow, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Comic Sans MS, 0, 0, Homerton.Medium, 0
|
||||
Comic Sans MS, 0, 1, Homerton.Bold, 0
|
||||
Comic Sans MS, 1, 0, Homerton.Medium.Oblique,0
|
||||
Comic Sans MS, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Courier, 0, 0, Corpus.Medium, 0
|
||||
Courier, 0, 1, Corpus.Bold, 0
|
||||
Courier, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Courier, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Courier New, 0, 0, Corpus.Medium, 0
|
||||
Courier New, 0, 1, Corpus.Bold, 0
|
||||
Courier New, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Courier New, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Fixedsys, 0, 0, Corpus.Medium, 0
|
||||
Fixedsys, 0, 1, Corpus.Bold, 0
|
||||
Fixedsys, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Fixedsys, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Helvetica, 0, 0, Homerton.Medium, 0
|
||||
Helvetica, 0, 1, Homerton.Bold, 0
|
||||
Helvetica, 1, 0, Homerton.Medium.Oblique,0
|
||||
Helvetica, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Helvetica-Narrow, 0, 0, Homerton.Medium, 0
|
||||
Helvetica-Narrow, 0, 1, Homerton.Bold, 0
|
||||
Helvetica-Narrow, 1, 0, Homerton.Medium.Oblique,0
|
||||
Helvetica-Narrow, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Lucida Console, 0, 0, Corpus.Medium, 0
|
||||
Lucida Console, 0, 1, Corpus.Bold, 0
|
||||
Lucida Console, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Lucida Console, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Monotype.com, 0, 0, Corpus.Medium, 0
|
||||
Monotype.com, 0, 1, Corpus.Bold, 0
|
||||
Monotype.com, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Monotype.com, 1, 1, Corpus.Bold.Oblique, 0
|
||||
MS Sans Serif, 0, 0, Homerton.Medium, 0
|
||||
MS Sans Serif, 0, 1, Homerton.Bold, 0
|
||||
MS Sans Serif, 1, 0, Homerton.Medium.Oblique,0
|
||||
MS Sans Serif, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Swiss, 0, 0, Homerton.Medium, 0
|
||||
Swiss, 0, 1, Homerton.Bold, 0
|
||||
Swiss, 1, 0, Homerton.Medium.Oblique,0
|
||||
Swiss, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Tahoma, 0, 0, Homerton.Medium, 0
|
||||
Tahoma, 0, 1, Homerton.Bold, 0
|
||||
Tahoma, 1, 0, Homerton.Medium.Oblique,0
|
||||
Tahoma, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Trebuchet MS, 0, 0, Homerton.Medium, 0
|
||||
Trebuchet MS, 0, 1, Homerton.Bold, 0
|
||||
Trebuchet MS, 1, 0, Homerton.Medium.Oblique,0
|
||||
Trebuchet MS, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Verdana, 0, 0, Homerton.Medium, 0
|
||||
Verdana, 0, 1, Homerton.Bold, 0
|
||||
Verdana, 1, 0, Homerton.Medium.Oblique,0
|
||||
Verdana, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Univers, 0, 0, Homerton.Medium, 0
|
||||
Univers, 0, 1, Homerton.Bold, 0
|
||||
Univers, 1, 0, Homerton.Medium.Oblique,0
|
||||
Univers, 1, 1, Homerton.Bold.Oblique, 0
|
||||
# All the other fonts
|
||||
*, 0, 0, Trinity.Medium, 0
|
||||
*, 0, 1, Trinity.Bold, 0
|
||||
*, 1, 0, Trinity.Medium.Italic, 0
|
||||
*, 1, 1, Trinity.Bold.Italic, 0
|
80
sys/lib/antiword/Example
Executable file
80
sys/lib/antiword/Example
Executable file
|
@ -0,0 +1,80 @@
|
|||
# An example of a fontnames translation table
|
||||
#
|
||||
# MS-Word fontname, Italic, Bold, Acorn fontname, Special
|
||||
Arial, 0, 0, Homerton.Medium, 0
|
||||
Arial, 0, 1, Homerton.Bold, 0
|
||||
Arial, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Arial Black, 0, 0, Homerton.Medium, 0
|
||||
Arial Black, 0, 1, Homerton.Bold, 0
|
||||
Arial Black, 1, 0, Homerton.Medium.Oblique,0
|
||||
Arial Black, 1, 1, Homerton.Bold.Oblique, 0
|
||||
AvantGarde, 0, 0, Clare.Medium, 0
|
||||
AvantGarde, 0, 1, Clare.Demi, 0
|
||||
AvantGarde, 1, 0, Clare.Medium.Oblique, 0
|
||||
AvantGarde, 1, 1, Clare.Demi.Oblique, 0
|
||||
Bookman, 0, 0, Robinson.Light, 0
|
||||
Bookman, 0, 1, Robinson.Demi, 0
|
||||
Bookman, 1, 0, Robinson.Light.Italic, 0
|
||||
Bookman, 1, 1, Robinson.Demi.Italic, 0
|
||||
Bookman Old Style, 0, 0, Robinson.Light, 0
|
||||
Bookman Old Style, 0, 1, Robinson.Demi, 0
|
||||
Bookman Old Style, 1, 0, Robinson.Light.Italic, 0
|
||||
Bookman Old Style, 1, 1, Robinson.Demi.Italic, 0
|
||||
Courier, 0, 0, Corpus.Medium, 0
|
||||
Courier, 0, 1, Corpus.Bold, 0
|
||||
Courier, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Courier, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Courier New, 0, 0, Corpus.Medium, 0
|
||||
Courier New, 0, 1, Corpus.Bold, 0
|
||||
Courier New, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Courier New, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Fixedsys, 0, 0, Corpus.Medium, 0
|
||||
Fixedsys, 0, 1, Corpus.Bold, 0
|
||||
Fixedsys, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Fixedsys, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Helvetica, 0, 0, Homerton.Medium, 0
|
||||
Helvetica, 0, 1, Homerton.Bold, 0
|
||||
Helvetica, 1, 0, Homerton.Medium.Oblique,0
|
||||
Helvetica, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Lucida Console, 0, 0, Corpus.Medium, 0
|
||||
Lucida Console, 0, 1, Corpus.Bold, 0
|
||||
Lucida Console, 1, 0, Corpus.Medium.Oblique, 0
|
||||
Lucida Console, 1, 1, Corpus.Bold.Oblique, 0
|
||||
Palatino, 0, 0, Pembroke.Medium, 0
|
||||
Palatino, 0, 1, Pembroke.Bold, 0
|
||||
Palatino, 1, 0, Pembroke.Medium.Italic, 0
|
||||
Palatino, 1, 1, Pembroke.Bold.Italic, 0
|
||||
Swiss, 0, 0, Homerton.Medium, 0
|
||||
Swiss, 0, 1, Homerton.Bold, 0
|
||||
Swiss, 1, 0, Homerton.Medium.Oblique,0
|
||||
Swiss, 1, 1, Homerton.Bold.Oblique, 0
|
||||
Symbol, 0, 0, Sidney, 1
|
||||
Symbol, 0, 1, Sidney, 1
|
||||
Symbol, 1, 0, Sidney, 1
|
||||
Symbol, 1, 1, Sidney, 1
|
||||
Times, 0, 0, Trinity.Medium, 0
|
||||
Times, 0, 1, Trinity.Bold, 0
|
||||
Times, 1, 0, Trinity.Medium.Italic, 0
|
||||
Times, 1, 1, Trinity.Bold.Italic, 0
|
||||
Times New Roman, 0, 0, Trinity.Medium, 0
|
||||
Times New Roman, 0, 1, Trinity.Bold, 0
|
||||
Times New Roman, 1, 0, Trinity.Medium.Italic, 0
|
||||
Times New Roman, 1, 1, Trinity.Bold.Italic, 0
|
||||
Times Roman, 0, 0, Trinity.Medium, 0
|
||||
Times Roman, 0, 1, Trinity.Bold, 0
|
||||
Times Roman, 1, 0, Trinity.Medium.Italic, 0
|
||||
Times Roman, 1, 1, Trinity.Bold.Italic, 0
|
||||
Univers, 0, 0, Homerton.Medium, 0
|
||||
Univers, 0, 1, Homerton.Bold, 0
|
||||
Univers, 1, 0, Homerton.Medium.Oblique,0
|
||||
Univers, 1, 1, Homerton.Bold.Oblique, 0
|
||||
ZapfDingbats, 0, 0, Selwyn, 2
|
||||
ZapfDingbats, 0, 1, Selwyn, 2
|
||||
ZapfDingbats, 1, 0, Selwyn, 2
|
||||
ZapfDingbats, 1, 1, Selwyn, 2
|
||||
# All the other fonts
|
||||
*, 0, 0, Trinity.Medium, 0
|
||||
*, 0, 1, Trinity.Bold, 0
|
||||
*, 1, 0, Trinity.Medium.Italic, 0
|
||||
*, 1, 1, Trinity.Bold.Italic, 0
|
364
sys/lib/antiword/MacRoman.txt
Executable file
364
sys/lib/antiword/MacRoman.txt
Executable file
|
@ -0,0 +1,364 @@
|
|||
#=======================================================================
|
||||
# FTP file name: ROMAN.TXT
|
||||
#
|
||||
# Contents: Map (external version) from Mac OS Roman
|
||||
# character set to Unicode 2.1
|
||||
#
|
||||
# Copyright: (c) 1994-1999 by Apple Computer, Inc., all rights
|
||||
# reserved.
|
||||
#
|
||||
# Contact: charsets@apple.com
|
||||
#
|
||||
# Changes:
|
||||
#
|
||||
# b03 1999-Sep-22 Update contact e-mail address. Matches
|
||||
# internal utom<b4>, ufrm<b3>, and Text
|
||||
# Encoding Converter version 1.5.
|
||||
# b02 1998-Aug-18 Encoding changed for Mac OS 8.5; change
|
||||
# mapping of 0xDB from CURRENCY SIGN to
|
||||
# EURO SIGN. Matches internal utom<b3>,
|
||||
# ufrm<b3>.
|
||||
# n08 1998-Feb-05 Minor update to header comments
|
||||
# n06 1997-Dec-14 Add warning about future changes to 0xDB
|
||||
# from CURRENCY SIGN to EURO SIGN. Clarify
|
||||
# some header information
|
||||
# n04 1997-Dec-01 Update to match internal utom<n3>, ufrm<n22>:
|
||||
# Change standard mapping for 0xBD from U+2126
|
||||
# to its canonical decomposition, U+03A9.
|
||||
# n03 1995-Apr-15 First version (after fixing some typos).
|
||||
# Matches internal ufrm<n9>.
|
||||
#
|
||||
# Standard header:
|
||||
# ----------------
|
||||
#
|
||||
# Apple, the Apple logo, and Macintosh are trademarks of Apple
|
||||
# Computer, Inc., registered in the United States and other countries.
|
||||
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
|
||||
# throughout this document, "Macintosh" can be used to refer to
|
||||
# Macintosh computers and "Unicode" can be used to refer to the
|
||||
# Unicode standard.
|
||||
#
|
||||
# Apple makes no warranty or representation, either express or
|
||||
# implied, with respect to these tables, their quality, accuracy, or
|
||||
# fitness for a particular purpose. In no event will Apple be liable
|
||||
# for direct, indirect, special, incidental, or consequential damages
|
||||
# resulting from any defect or inaccuracy in this document or the
|
||||
# accompanying tables.
|
||||
#
|
||||
# These mapping tables and character lists are subject to change.
|
||||
# The latest tables should be available from the following:
|
||||
#
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
|
||||
# <ftp://dev.apple.com/devworld/Technical_Documentation/Misc._Standards/>
|
||||
#
|
||||
# For general information about Mac OS encodings and these mapping
|
||||
# tables, see the file "README.TXT".
|
||||
#
|
||||
# Format:
|
||||
# -------
|
||||
#
|
||||
# Three tab-separated columns;
|
||||
# '#' begins a comment which continues to the end of the line.
|
||||
# Column #1 is the Mac OS Roman code (in hex as 0xNN)
|
||||
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
|
||||
# Column #3 is a comment containing the Unicode name
|
||||
#
|
||||
# The entries are in Mac OS Roman code order.
|
||||
#
|
||||
# One of these mappings requires the use of a corporate character.
|
||||
# See the file "CORPCHAR.TXT" and notes below.
|
||||
#
|
||||
# Control character mappings are not shown in this table, following
|
||||
# the conventions of the standard UTC mapping tables. However, the
|
||||
# Mac OS Roman character set uses the standard control characters at
|
||||
# 0x00-0x1F and 0x7F.
|
||||
#
|
||||
# Notes on Mac OS Roman:
|
||||
# ----------------------
|
||||
#
|
||||
# This character set is used for at least the following Mac OS
|
||||
# localizations: U.S., British, Canadian French, French, Swiss
|
||||
# French, German, Swiss German, Italian, Swiss Italian, Dutch,
|
||||
# Swedish, Norwegian, Danish, Finnish, Spanish, Catalan,
|
||||
# Portuguese, Brazilian, and the default International system.
|
||||
#
|
||||
# Variants of Mac OS Roman are used for Croatian, Icelandic,
|
||||
# Turkish, Romanian, and other encodings. Separate mapping tables
|
||||
# are available for these encodings.
|
||||
#
|
||||
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
|
||||
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
|
||||
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
|
||||
# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
|
||||
# a "currency sign" variant of the Mac OS Roman encoding that still
|
||||
# maps 0xDB to U+00A4; this can be used for older fonts.
|
||||
# Note: U+20AC is new with Unicode 2.1; for earlier Unicode
|
||||
# versions, Mac OS Roman 0xDB may be mapped to private-use character
|
||||
# U+F8A0.
|
||||
#
|
||||
# Before Mac OS 8.5, the ROM bitmap versions of the fonts Chicago,
|
||||
# New York, Geneva, and Monaco did not implement the full Mac OS
|
||||
# Roman character set; they only supported character codes up to
|
||||
# 0xD8. The TrueType versions of these fonts have always implemented
|
||||
# the full character set, as with the bitmap and TrueType versions
|
||||
# of the other standard Roman fonts.
|
||||
#
|
||||
# In all Mac OS encodings, fonts such as Chicago which are used
|
||||
# as "system" fonts (for menus, dialogs, etc.) have four glyphs
|
||||
# at code points 0x11-0x14 for transient use by the Menu Manager.
|
||||
# These glyphs are not intended as characters for use in normal
|
||||
# text, and the associated code points are not generally
|
||||
# interpreted as associated with these glyphs; they are usually
|
||||
# interpreted (if at all) as the control codes DC1-DC4.
|
||||
#
|
||||
# Unicode mapping issues and notes:
|
||||
# ---------------------------------
|
||||
#
|
||||
# The following corporate zone Unicode character is used in this
|
||||
# mapping:
|
||||
#
|
||||
# 0xF8FF Apple logo
|
||||
#
|
||||
# NOTE: The graphic image associated with the Apple logo character
|
||||
# is not authorized for use without permission of Apple, and
|
||||
# unauthorized use might constitute trademark infringement.
|
||||
#
|
||||
# Details of mapping changes in each version:
|
||||
# -------------------------------------------
|
||||
#
|
||||
# Changes from version n08 to version b02:
|
||||
#
|
||||
# - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
|
||||
# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
|
||||
#
|
||||
# Changes from version n03 to version n04:
|
||||
#
|
||||
# - Change mapping of 0xBD from U+2126 to its canonical
|
||||
# decomposition, U+03A9.
|
||||
#
|
||||
##################
|
||||
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
#
|
||||
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xA0 0x2020 # DAGGER
|
||||
0xA1 0x00B0 # DEGREE SIGN
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A7 # SECTION SIGN
|
||||
0xA5 0x2022 # BULLET
|
||||
0xA6 0x00B6 # PILCROW SIGN
|
||||
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xA8 0x00AE # REGISTERED SIGN
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x2122 # TRADE MARK SIGN
|
||||
0xAB 0x00B4 # ACUTE ACCENT
|
||||
0xAC 0x00A8 # DIAERESIS
|
||||
0xAD 0x2260 # NOT EQUAL TO
|
||||
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xB0 0x221E # INFINITY
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x2264 # LESS-THAN OR EQUAL TO
|
||||
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
|
||||
0xB4 0x00A5 # YEN SIGN
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x2202 # PARTIAL DIFFERENTIAL
|
||||
0xB7 0x2211 # N-ARY SUMMATION
|
||||
0xB8 0x220F # N-ARY PRODUCT
|
||||
0xB9 0x03C0 # GREEK SMALL LETTER PI
|
||||
0xBA 0x222B # INTEGRAL
|
||||
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
|
||||
0xBE 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xC0 0x00BF # INVERTED QUESTION MARK
|
||||
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xC2 0x00AC # NOT SIGN
|
||||
0xC3 0x221A # SQUARE ROOT
|
||||
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
|
||||
0xC5 0x2248 # ALMOST EQUAL TO
|
||||
0xC6 0x2206 # INCREMENT
|
||||
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xC9 0x2026 # HORIZONTAL ELLIPSIS
|
||||
0xCA 0x00A0 # NO-BREAK SPACE
|
||||
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xCF 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xD0 0x2013 # EN DASH
|
||||
0xD1 0x2014 # EM DASH
|
||||
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
|
||||
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
|
||||
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
|
||||
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
|
||||
0xD6 0x00F7 # DIVISION SIGN
|
||||
0xD7 0x25CA # LOZENGE
|
||||
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xDA 0x2044 # FRACTION SLASH
|
||||
0xDB 0x20AC # EURO SIGN
|
||||
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0xDE 0xFB01 # LATIN SMALL LIGATURE FI
|
||||
0xDF 0xFB02 # LATIN SMALL LIGATURE FL
|
||||
0xE0 0x2021 # DOUBLE DAGGER
|
||||
0xE1 0x00B7 # MIDDLE DOT
|
||||
0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
|
||||
0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
|
||||
0xE4 0x2030 # PER MILLE SIGN
|
||||
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xF0 0xF8FF # Apple logo
|
||||
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
|
||||
0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
0xF7 0x02DC # SMALL TILDE
|
||||
0xF8 0x00AF # MACRON
|
||||
0xF9 0x02D8 # BREVE
|
||||
0xFA 0x02D9 # DOT ABOVE
|
||||
0xFB 0x02DA # RING ABOVE
|
||||
0xFC 0x00B8 # CEDILLA
|
||||
0xFD 0x02DD # DOUBLE ACUTE ACCENT
|
||||
0xFE 0x02DB # OGONEK
|
||||
0xFF 0x02C7 # CARON
|
3
sys/lib/antiword/UTF-8.txt
Executable file
3
sys/lib/antiword/UTF-8.txt
Executable file
|
@ -0,0 +1,3 @@
|
|||
# UTF-8 to Unicode
|
||||
# This file is a dummy.
|
||||
# The conversion is done algorithmicly, not by a table look-up.
|
306
sys/lib/antiword/Unicode01
Executable file
306
sys/lib/antiword/Unicode01
Executable file
|
@ -0,0 +1,306 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-1:1998 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-1:1998 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-1 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-1 order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version updates 0.1 version by adding mappings for all
|
||||
# control characters.
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
#RISC OS
|
||||
# This file was changed to match RISC OS specific characters (0x80 - 0x9f)
|
||||
#RISC OS
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0174 # CAPITAL W CIRCUMFLEX ACCENT
|
||||
0x82 0x0175 # SMALL W CIRCUMFLEX ACCENT
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0176 # CAPITAL Y CIRCUMFLEX ACCENT
|
||||
0x86 0x0177 # SMALL Y CIRCUMFLEX ACCENT
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x2026 # ELLIPSIS
|
||||
0x8D 0x2122 # TRADEMARK
|
||||
0x8E 0x2030 # PER MILLE SIGN
|
||||
0x8F 0x2022 # BULLET
|
||||
0x90 0x2018 # LEFT SINGLE QUOTE
|
||||
0x91 0x2019 # RIGHT SINGLE QUOTE
|
||||
0x92 0x2039 # LEFT SINGLE QUOTATION MARK
|
||||
0x93 0x203A # RIGHT SINGLE QUOTATION MARK
|
||||
0x94 0x201C # OPENING DOUBLE QUOTE
|
||||
0x95 0x201D # CLOSING DOUBLE QUOTE
|
||||
0x96 0x201E # LOW DOUBLE QUOTE
|
||||
0x97 0x2013 # EN DASH
|
||||
0x98 0x2014 # EM_DASH
|
||||
0x99 0x2011 # NON BREAKING HYPHEN
|
||||
0x9A 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0x9B 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0x9C 0x2020 # DAGGER
|
||||
0x9D 0x2021 # DOUBLE DAGGER
|
||||
0x9E 0xFB01 # Fi
|
||||
0x9F 0xFB02 # Fl
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x00A4 # CURRENCY SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x00A6 # BROKEN BAR
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x00A8 # DIAERESIS
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 # ACUTE ACCENT
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x00B8 # CEDILLA
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC # VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD # VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE # VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH (Icelandic)
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN (Icelandic)
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S (German)
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH (Icelandic)
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN (Icelandic)
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
305
sys/lib/antiword/Unicode15
Executable file
305
sys/lib/antiword/Unicode15
Executable file
|
@ -0,0 +1,305 @@
|
|||
#
|
||||
# Name: ISO/IEC 8859-15:1999 to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 1999 July 27
|
||||
# Authors: Markus Kuhn <mkuhn@acm.org>
|
||||
# Ken Whistler <kenw@sybase.com>
|
||||
#
|
||||
# Copyright (c) 1998 - 1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# ISO/IEC 8859-15:1999 characters map into Unicode.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the ISO/IEC 8859-15 code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in ISO/IEC 8859-15 order.
|
||||
#
|
||||
# Version history
|
||||
#
|
||||
# Updated versions of this file may be found in:
|
||||
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
#RISC OS
|
||||
# This file was changed to match RISC OS specific characters (0x80 - 0x9f)
|
||||
#RISC OS
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x0080 # <control>
|
||||
0x81 0x0174 # CAPITAL W CIRCUMFLEX ACCENT
|
||||
0x82 0x0175 # SMALL W CIRCUMFLEX ACCENT
|
||||
0x83 0x0083 # <control>
|
||||
0x84 0x0084 # <control>
|
||||
0x85 0x0176 # CAPITAL Y CIRCUMFLEX ACCENT
|
||||
0x86 0x0177 # SMALL Y CIRCUMFLEX ACCENT
|
||||
0x87 0x0087 # <control>
|
||||
0x88 0x0088 # <control>
|
||||
0x89 0x0089 # <control>
|
||||
0x8A 0x008A # <control>
|
||||
0x8B 0x008B # <control>
|
||||
0x8C 0x2026 # ELLIPSIS
|
||||
0x8D 0x2122 # TRADEMARK
|
||||
0x8E 0x2030 # PER MILLE SIGN
|
||||
0x8F 0x2022 # BULLET
|
||||
0x90 0x2018 # LEFT SINGLE QUOTE
|
||||
0x91 0x2019 # RIGHT SINGLE QUOTE
|
||||
0x92 0x2039 # LEFT SINGLE QUOTATION MARK
|
||||
0x93 0x203A # RIGHT SINGLE QUOTATION MARK
|
||||
0x94 0x201C # OPENING DOUBLE QUOTE
|
||||
0x95 0x201D # CLOSING DOUBLE QUOTE
|
||||
0x96 0x201E # LOW DOUBLE QUOTE
|
||||
0x97 0x2013 # EN DASH
|
||||
0x98 0x2014 # EM_DASH
|
||||
0x99 0x2011 # NON BREAKING HYPHEN
|
||||
0x9A 0x009A # <control>
|
||||
0x9B 0x009B # <control>
|
||||
0x9C 0x2020 # DAGGER
|
||||
0x9D 0x2021 # DOUBLE DAGGER
|
||||
0x9E 0xFB01 # Fi
|
||||
0x9F 0xFB02 # Fl
|
||||
0xA0 0x00A0 # NO-BREAK SPACE
|
||||
0xA1 0x00A1 # INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 # CENT SIGN
|
||||
0xA3 0x00A3 # POUND SIGN
|
||||
0xA4 0x20AC # EURO SIGN
|
||||
0xA5 0x00A5 # YEN SIGN
|
||||
0xA6 0x0160 # LATIN CAPITAL LETTER S WITH CARON
|
||||
0xA7 0x00A7 # SECTION SIGN
|
||||
0xA8 0x0161 # LATIN SMALL LETTER S WITH CARON
|
||||
0xA9 0x00A9 # COPYRIGHT SIGN
|
||||
0xAA 0x00AA # FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC # NOT SIGN
|
||||
0xAD 0x00AD # SOFT HYPHEN
|
||||
0xAE 0x00AE # REGISTERED SIGN
|
||||
0xAF 0x00AF # MACRON
|
||||
0xB0 0x00B0 # DEGREE SIGN
|
||||
0xB1 0x00B1 # PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 # SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 # SUPERSCRIPT THREE
|
||||
0xB4 0x017D # LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xB5 0x00B5 # MICRO SIGN
|
||||
0xB6 0x00B6 # PILCROW SIGN
|
||||
0xB7 0x00B7 # MIDDLE DOT
|
||||
0xB8 0x017E # LATIN SMALL LETTER Z WITH CARON
|
||||
0xB9 0x00B9 # SUPERSCRIPT ONE
|
||||
0xBA 0x00BA # MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0152 # LATIN CAPITAL LIGATURE OE
|
||||
0xBD 0x0153 # LATIN SMALL LIGATURE OE
|
||||
0xBE 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xBF 0x00BF # INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 # LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 # LATIN CAPITAL LETTER ETH
|
||||
0xD1 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 # MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE # LATIN CAPITAL LETTER THORN
|
||||
0xDF 0x00DF # LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 # LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 # LATIN SMALL LETTER ETH
|
||||
0xF1 0x00F1 # LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 # DIVISION SIGN
|
||||
0xF8 0x00F8 # LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE # LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
|
274
sys/lib/antiword/cp1250.txt
Executable file
274
sys/lib/antiword/cp1250.txt
Executable file
|
@ -0,0 +1,274 @@
|
|||
#
|
||||
# Name: cp1250 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1250 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1250 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 #UNDEFINED
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 #UNDEFINED
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 #UNDEFINED
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x015A #LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0x8D 0x0164 #LATIN CAPITAL LETTER T WITH CARON
|
||||
0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0x8F 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0x90 #UNDEFINED
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 #UNDEFINED
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x015B #LATIN SMALL LETTER S WITH ACUTE
|
||||
0x9D 0x0165 #LATIN SMALL LETTER T WITH CARON
|
||||
0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON
|
||||
0x9F 0x017A #LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x02C7 #CARON
|
||||
0xA2 0x02D8 #BREVE
|
||||
0xA3 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x00A8 #DIAERESIS
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x015E #LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x02DB #OGONEK
|
||||
0xB3 0x0142 #LATIN SMALL LETTER L WITH STROKE
|
||||
0xB4 0x00B4 #ACUTE ACCENT
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x00B8 #CEDILLA
|
||||
0xB9 0x0105 #LATIN SMALL LETTER A WITH OGONEK
|
||||
0xBA 0x015F #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x013D #LATIN CAPITAL LETTER L WITH CARON
|
||||
0xBD 0x02DD #DOUBLE ACUTE ACCENT
|
||||
0xBE 0x013E #LATIN SMALL LETTER L WITH CARON
|
||||
0xBF 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xC0 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x0102 #LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0xC6 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x010C #LATIN CAPITAL LETTER C WITH CARON
|
||||
0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x011A #LATIN CAPITAL LETTER E WITH CARON
|
||||
0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x010E #LATIN CAPITAL LETTER D WITH CARON
|
||||
0xD0 0x0110 #LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xD1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xD2 0x0147 #LATIN CAPITAL LETTER N WITH CARON
|
||||
0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 #MULTIPLICATION SIGN
|
||||
0xD8 0x0158 #LATIN CAPITAL LETTER R WITH CARON
|
||||
0xD9 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xDF 0x00DF #LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x0155 #LATIN SMALL LETTER R WITH ACUTE
|
||||
0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x0103 #LATIN SMALL LETTER A WITH BREVE
|
||||
0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x013A #LATIN SMALL LETTER L WITH ACUTE
|
||||
0xE6 0x0107 #LATIN SMALL LETTER C WITH ACUTE
|
||||
0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x010D #LATIN SMALL LETTER C WITH CARON
|
||||
0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x0119 #LATIN SMALL LETTER E WITH OGONEK
|
||||
0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x011B #LATIN SMALL LETTER E WITH CARON
|
||||
0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x010F #LATIN SMALL LETTER D WITH CARON
|
||||
0xF0 0x0111 #LATIN SMALL LETTER D WITH STROKE
|
||||
0xF1 0x0144 #LATIN SMALL LETTER N WITH ACUTE
|
||||
0xF2 0x0148 #LATIN SMALL LETTER N WITH CARON
|
||||
0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 #DIVISION SIGN
|
||||
0xF8 0x0159 #LATIN SMALL LETTER R WITH CARON
|
||||
0xF9 0x016F #LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x0163 #LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xFF 0x02D9 #DOT ABOVE
|
274
sys/lib/antiword/cp1251.txt
Executable file
274
sys/lib/antiword/cp1251.txt
Executable file
|
@ -0,0 +1,274 @@
|
|||
#
|
||||
# Name: cp1251 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1251 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1251 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x0402 #CYRILLIC CAPITAL LETTER DJE
|
||||
0x81 0x0403 #CYRILLIC CAPITAL LETTER GJE
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 0x0453 #CYRILLIC SMALL LETTER GJE
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 0x20AC #EURO SIGN
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0409 #CYRILLIC CAPITAL LETTER LJE
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x040A #CYRILLIC CAPITAL LETTER NJE
|
||||
0x8D 0x040C #CYRILLIC CAPITAL LETTER KJE
|
||||
0x8E 0x040B #CYRILLIC CAPITAL LETTER TSHE
|
||||
0x8F 0x040F #CYRILLIC CAPITAL LETTER DZHE
|
||||
0x90 0x0452 #CYRILLIC SMALL LETTER DJE
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 #UNDEFINED
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0459 #CYRILLIC SMALL LETTER LJE
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x045A #CYRILLIC SMALL LETTER NJE
|
||||
0x9D 0x045C #CYRILLIC SMALL LETTER KJE
|
||||
0x9E 0x045B #CYRILLIC SMALL LETTER TSHE
|
||||
0x9F 0x045F #CYRILLIC SMALL LETTER DZHE
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x040E #CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xA2 0x045E #CYRILLIC SMALL LETTER SHORT U
|
||||
0xA3 0x0408 #CYRILLIC CAPITAL LETTER JE
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x0490 #CYRILLIC CAPITAL LETTER GHE WITH UPTURN
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x0401 #CYRILLIC CAPITAL LETTER IO
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x0407 #CYRILLIC CAPITAL LETTER YI
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x0406 #CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xB3 0x0456 #CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
|
||||
0xB4 0x0491 #CYRILLIC SMALL LETTER GHE WITH UPTURN
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x0451 #CYRILLIC SMALL LETTER IO
|
||||
0xB9 0x2116 #NUMERO SIGN
|
||||
0xBA 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x0458 #CYRILLIC SMALL LETTER JE
|
||||
0xBD 0x0405 #CYRILLIC CAPITAL LETTER DZE
|
||||
0xBE 0x0455 #CYRILLIC SMALL LETTER DZE
|
||||
0xBF 0x0457 #CYRILLIC SMALL LETTER YI
|
||||
0xC0 0x0410 #CYRILLIC CAPITAL LETTER A
|
||||
0xC1 0x0411 #CYRILLIC CAPITAL LETTER BE
|
||||
0xC2 0x0412 #CYRILLIC CAPITAL LETTER VE
|
||||
0xC3 0x0413 #CYRILLIC CAPITAL LETTER GHE
|
||||
0xC4 0x0414 #CYRILLIC CAPITAL LETTER DE
|
||||
0xC5 0x0415 #CYRILLIC CAPITAL LETTER IE
|
||||
0xC6 0x0416 #CYRILLIC CAPITAL LETTER ZHE
|
||||
0xC7 0x0417 #CYRILLIC CAPITAL LETTER ZE
|
||||
0xC8 0x0418 #CYRILLIC CAPITAL LETTER I
|
||||
0xC9 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xCA 0x041A #CYRILLIC CAPITAL LETTER KA
|
||||
0xCB 0x041B #CYRILLIC CAPITAL LETTER EL
|
||||
0xCC 0x041C #CYRILLIC CAPITAL LETTER EM
|
||||
0xCD 0x041D #CYRILLIC CAPITAL LETTER EN
|
||||
0xCE 0x041E #CYRILLIC CAPITAL LETTER O
|
||||
0xCF 0x041F #CYRILLIC CAPITAL LETTER PE
|
||||
0xD0 0x0420 #CYRILLIC CAPITAL LETTER ER
|
||||
0xD1 0x0421 #CYRILLIC CAPITAL LETTER ES
|
||||
0xD2 0x0422 #CYRILLIC CAPITAL LETTER TE
|
||||
0xD3 0x0423 #CYRILLIC CAPITAL LETTER U
|
||||
0xD4 0x0424 #CYRILLIC CAPITAL LETTER EF
|
||||
0xD5 0x0425 #CYRILLIC CAPITAL LETTER HA
|
||||
0xD6 0x0426 #CYRILLIC CAPITAL LETTER TSE
|
||||
0xD7 0x0427 #CYRILLIC CAPITAL LETTER CHE
|
||||
0xD8 0x0428 #CYRILLIC CAPITAL LETTER SHA
|
||||
0xD9 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xDA 0x042A #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0xDB 0x042B #CYRILLIC CAPITAL LETTER YERU
|
||||
0xDC 0x042C #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xDD 0x042D #CYRILLIC CAPITAL LETTER E
|
||||
0xDE 0x042E #CYRILLIC CAPITAL LETTER YU
|
||||
0xDF 0x042F #CYRILLIC CAPITAL LETTER YA
|
||||
0xE0 0x0430 #CYRILLIC SMALL LETTER A
|
||||
0xE1 0x0431 #CYRILLIC SMALL LETTER BE
|
||||
0xE2 0x0432 #CYRILLIC SMALL LETTER VE
|
||||
0xE3 0x0433 #CYRILLIC SMALL LETTER GHE
|
||||
0xE4 0x0434 #CYRILLIC SMALL LETTER DE
|
||||
0xE5 0x0435 #CYRILLIC SMALL LETTER IE
|
||||
0xE6 0x0436 #CYRILLIC SMALL LETTER ZHE
|
||||
0xE7 0x0437 #CYRILLIC SMALL LETTER ZE
|
||||
0xE8 0x0438 #CYRILLIC SMALL LETTER I
|
||||
0xE9 0x0439 #CYRILLIC SMALL LETTER SHORT I
|
||||
0xEA 0x043A #CYRILLIC SMALL LETTER KA
|
||||
0xEB 0x043B #CYRILLIC SMALL LETTER EL
|
||||
0xEC 0x043C #CYRILLIC SMALL LETTER EM
|
||||
0xED 0x043D #CYRILLIC SMALL LETTER EN
|
||||
0xEE 0x043E #CYRILLIC SMALL LETTER O
|
||||
0xEF 0x043F #CYRILLIC SMALL LETTER PE
|
||||
0xF0 0x0440 #CYRILLIC SMALL LETTER ER
|
||||
0xF1 0x0441 #CYRILLIC SMALL LETTER ES
|
||||
0xF2 0x0442 #CYRILLIC SMALL LETTER TE
|
||||
0xF3 0x0443 #CYRILLIC SMALL LETTER U
|
||||
0xF4 0x0444 #CYRILLIC SMALL LETTER EF
|
||||
0xF5 0x0445 #CYRILLIC SMALL LETTER HA
|
||||
0xF6 0x0446 #CYRILLIC SMALL LETTER TSE
|
||||
0xF7 0x0447 #CYRILLIC SMALL LETTER CHE
|
||||
0xF8 0x0448 #CYRILLIC SMALL LETTER SHA
|
||||
0xF9 0x0449 #CYRILLIC SMALL LETTER SHCHA
|
||||
0xFA 0x044A #CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xFB 0x044B #CYRILLIC SMALL LETTER YERU
|
||||
0xFC 0x044C #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xFD 0x044D #CYRILLIC SMALL LETTER E
|
||||
0xFE 0x044E #CYRILLIC SMALL LETTER YU
|
||||
0xFF 0x044F #CYRILLIC SMALL LETTER YA
|
274
sys/lib/antiword/cp1252.txt
Executable file
274
sys/lib/antiword/cp1252.txt
Executable file
|
@ -0,0 +1,274 @@
|
|||
#
|
||||
# Name: cp1252 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.01
|
||||
# Table format: Format A
|
||||
# Date: 04/15/98
|
||||
#
|
||||
# Contact: cpxlate@microsoft.com
|
||||
#
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp1252 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp1252 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0A 0x000A #LINE FEED
|
||||
0x0B 0x000B #VERTICAL TABULATION
|
||||
0x0C 0x000C #FORM FEED
|
||||
0x0D 0x000D #CARRIAGE RETURN
|
||||
0x0E 0x000E #SHIFT OUT
|
||||
0x0F 0x000F #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1A 0x001A #SUBSTITUTE
|
||||
0x1B 0x001B #ESCAPE
|
||||
0x1C 0x001C #FILE SEPARATOR
|
||||
0x1D 0x001D #GROUP SEPARATOR
|
||||
0x1E 0x001E #RECORD SEPARATOR
|
||||
0x1F 0x001F #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2A 0x002A #ASTERISK
|
||||
0x2B 0x002B #PLUS SIGN
|
||||
0x2C 0x002C #COMMA
|
||||
0x2D 0x002D #HYPHEN-MINUS
|
||||
0x2E 0x002E #FULL STOP
|
||||
0x2F 0x002F #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3A 0x003A #COLON
|
||||
0x3B 0x003B #SEMICOLON
|
||||
0x3C 0x003C #LESS-THAN SIGN
|
||||
0x3D 0x003D #EQUALS SIGN
|
||||
0x3E 0x003E #GREATER-THAN SIGN
|
||||
0x3F 0x003F #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A #LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B #LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C #LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D #LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E #LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A #LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B #LEFT SQUARE BRACKET
|
||||
0x5C 0x005C #REVERSE SOLIDUS
|
||||
0x5D 0x005D #RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E #CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6A 0x006A #LATIN SMALL LETTER J
|
||||
0x6B 0x006B #LATIN SMALL LETTER K
|
||||
0x6C 0x006C #LATIN SMALL LETTER L
|
||||
0x6D 0x006D #LATIN SMALL LETTER M
|
||||
0x6E 0x006E #LATIN SMALL LETTER N
|
||||
0x6F 0x006F #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7A 0x007A #LATIN SMALL LETTER Z
|
||||
0x7B 0x007B #LEFT CURLY BRACKET
|
||||
0x7C 0x007C #VERTICAL LINE
|
||||
0x7D 0x007D #RIGHT CURLY BRACKET
|
||||
0x7E 0x007E #TILDE
|
||||
0x7F 0x007F #DELETE
|
||||
0x80 0x20AC #EURO SIGN
|
||||
0x81 #UNDEFINED
|
||||
0x82 0x201A #SINGLE LOW-9 QUOTATION MARK
|
||||
0x83 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0x84 0x201E #DOUBLE LOW-9 QUOTATION MARK
|
||||
0x85 0x2026 #HORIZONTAL ELLIPSIS
|
||||
0x86 0x2020 #DAGGER
|
||||
0x87 0x2021 #DOUBLE DAGGER
|
||||
0x88 0x02C6 #MODIFIER LETTER CIRCUMFLEX ACCENT
|
||||
0x89 0x2030 #PER MILLE SIGN
|
||||
0x8A 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0x8B 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
|
||||
0x8C 0x0152 #LATIN CAPITAL LIGATURE OE
|
||||
0x8D #UNDEFINED
|
||||
0x8E 0x017D #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0x8F #UNDEFINED
|
||||
0x90 #UNDEFINED
|
||||
0x91 0x2018 #LEFT SINGLE QUOTATION MARK
|
||||
0x92 0x2019 #RIGHT SINGLE QUOTATION MARK
|
||||
0x93 0x201C #LEFT DOUBLE QUOTATION MARK
|
||||
0x94 0x201D #RIGHT DOUBLE QUOTATION MARK
|
||||
0x95 0x2022 #BULLET
|
||||
0x96 0x2013 #EN DASH
|
||||
0x97 0x2014 #EM DASH
|
||||
0x98 0x02DC #SMALL TILDE
|
||||
0x99 0x2122 #TRADE MARK SIGN
|
||||
0x9A 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0x9B 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
|
||||
0x9C 0x0153 #LATIN SMALL LIGATURE OE
|
||||
0x9D #UNDEFINED
|
||||
0x9E 0x017E #LATIN SMALL LETTER Z WITH CARON
|
||||
0x9F 0x0178 #LATIN CAPITAL LETTER Y WITH DIAERESIS
|
||||
0xA0 0x00A0 #NO-BREAK SPACE
|
||||
0xA1 0x00A1 #INVERTED EXCLAMATION MARK
|
||||
0xA2 0x00A2 #CENT SIGN
|
||||
0xA3 0x00A3 #POUND SIGN
|
||||
0xA4 0x00A4 #CURRENCY SIGN
|
||||
0xA5 0x00A5 #YEN SIGN
|
||||
0xA6 0x00A6 #BROKEN BAR
|
||||
0xA7 0x00A7 #SECTION SIGN
|
||||
0xA8 0x00A8 #DIAERESIS
|
||||
0xA9 0x00A9 #COPYRIGHT SIGN
|
||||
0xAA 0x00AA #FEMININE ORDINAL INDICATOR
|
||||
0xAB 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xAC 0x00AC #NOT SIGN
|
||||
0xAD 0x00AD #SOFT HYPHEN
|
||||
0xAE 0x00AE #REGISTERED SIGN
|
||||
0xAF 0x00AF #MACRON
|
||||
0xB0 0x00B0 #DEGREE SIGN
|
||||
0xB1 0x00B1 #PLUS-MINUS SIGN
|
||||
0xB2 0x00B2 #SUPERSCRIPT TWO
|
||||
0xB3 0x00B3 #SUPERSCRIPT THREE
|
||||
0xB4 0x00B4 #ACUTE ACCENT
|
||||
0xB5 0x00B5 #MICRO SIGN
|
||||
0xB6 0x00B6 #PILCROW SIGN
|
||||
0xB7 0x00B7 #MIDDLE DOT
|
||||
0xB8 0x00B8 #CEDILLA
|
||||
0xB9 0x00B9 #SUPERSCRIPT ONE
|
||||
0xBA 0x00BA #MASCULINE ORDINAL INDICATOR
|
||||
0xBB 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xBC 0x00BC #VULGAR FRACTION ONE QUARTER
|
||||
0xBD 0x00BD #VULGAR FRACTION ONE HALF
|
||||
0xBE 0x00BE #VULGAR FRACTION THREE QUARTERS
|
||||
0xBF 0x00BF #INVERTED QUESTION MARK
|
||||
0xC0 0x00C0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xC1 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xC2 0x00C2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xC3 0x00C3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xC4 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0xC5 0x00C5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0xC6 0x00C6 #LATIN CAPITAL LETTER AE
|
||||
0xC7 0x00C7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0xC8 0x00C8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xC9 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0xCA 0x00CA #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xCB 0x00CB #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xCC 0x00CC #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xCD 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xCE 0x00CE #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xCF 0x00CF #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xD0 0x00D0 #LATIN CAPITAL LETTER ETH
|
||||
0xD1 0x00D1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xD2 0x00D2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xD3 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xD4 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xD5 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xD6 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0xD7 0x00D7 #MULTIPLICATION SIGN
|
||||
0xD8 0x00D8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0xD9 0x00D9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xDA 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xDB 0x00DB #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xDC 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0xDD 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xDE 0x00DE #LATIN CAPITAL LETTER THORN
|
||||
0xDF 0x00DF #LATIN SMALL LETTER SHARP S
|
||||
0xE0 0x00E0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0xE1 0x00E1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xE2 0x00E2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0xE3 0x00E3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0xE4 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0xE5 0x00E5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0xE6 0x00E6 #LATIN SMALL LETTER AE
|
||||
0xE7 0x00E7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0xE8 0x00E8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0xE9 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0xEA 0x00EA #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0xEB 0x00EB #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0xEC 0x00EC #LATIN SMALL LETTER I WITH GRAVE
|
||||
0xED 0x00ED #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xEE 0x00EE #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0xEF 0x00EF #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0xF0 0x00F0 #LATIN SMALL LETTER ETH
|
||||
0xF1 0x00F1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xF2 0x00F2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0xF3 0x00F3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xF4 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0xF5 0x00F5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xF6 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0xF7 0x00F7 #DIVISION SIGN
|
||||
0xF8 0x00F8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0xF9 0x00F9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0xFA 0x00FA #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xFB 0x00FB #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0xFC 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0xFD 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xFE 0x00FE #LATIN SMALL LETTER THORN
|
||||
0xFF 0x00FF #LATIN SMALL LETTER Y WITH DIAERESIS
|
273
sys/lib/antiword/cp437.txt
Executable file
273
sys/lib/antiword/cp437.txt
Executable file
|
@ -0,0 +1,273 @@
|
|||
#
|
||||
# Name: cp437_DOSLatinUS to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.00
|
||||
# Table format: Format A
|
||||
# Date: 04/24/96
|
||||
# Authors: Lori Brownell <loribr@microsoft.com>
|
||||
# K.D. Chang <a-kchang@microsoft.com>
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp437_DOSLatinUS code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp437_DOSLatinUS order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00a5 #YEN SIGN
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
273
sys/lib/antiword/cp850.txt
Executable file
273
sys/lib/antiword/cp850.txt
Executable file
|
@ -0,0 +1,273 @@
|
|||
#
|
||||
# Name: cp850_DOSLatin1 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.00
|
||||
# Table format: Format A
|
||||
# Date: 04/24/96
|
||||
# Authors: Lori Brownell <loribr@microsoft.com>
|
||||
# K.D. Chang <a-kchang@microsoft.com>
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp850_DOSLatin1 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp850_DOSLatin1 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x00e0 #LATIN SMALL LETTER A WITH GRAVE
|
||||
0x86 0x00e5 #LATIN SMALL LETTER A WITH RING ABOVE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x00ea #LATIN SMALL LETTER E WITH CIRCUMFLEX
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x00e8 #LATIN SMALL LETTER E WITH GRAVE
|
||||
0x8b 0x00ef #LATIN SMALL LETTER I WITH DIAERESIS
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x00ec #LATIN SMALL LETTER I WITH GRAVE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x00c5 #LATIN CAPITAL LETTER A WITH RING ABOVE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x00e6 #LATIN SMALL LIGATURE AE
|
||||
0x92 0x00c6 #LATIN CAPITAL LIGATURE AE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x00f2 #LATIN SMALL LETTER O WITH GRAVE
|
||||
0x96 0x00fb #LATIN SMALL LETTER U WITH CIRCUMFLEX
|
||||
0x97 0x00f9 #LATIN SMALL LETTER U WITH GRAVE
|
||||
0x98 0x00ff #LATIN SMALL LETTER Y WITH DIAERESIS
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x00f8 #LATIN SMALL LETTER O WITH STROKE
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00d8 #LATIN CAPITAL LETTER O WITH STROKE
|
||||
0x9e 0x00d7 #MULTIPLICATION SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x00ae #REGISTERED SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xb7 0x00c0 #LATIN CAPITAL LETTER A WITH GRAVE
|
||||
0xb8 0x00a9 #COPYRIGHT SIGN
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x00a2 #CENT SIGN
|
||||
0xbe 0x00a5 #YEN SIGN
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x00e3 #LATIN SMALL LETTER A WITH TILDE
|
||||
0xc7 0x00c3 #LATIN CAPITAL LETTER A WITH TILDE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x00f0 #LATIN SMALL LETTER ETH
|
||||
0xd1 0x00d0 #LATIN CAPITAL LETTER ETH
|
||||
0xd2 0x00ca #LATIN CAPITAL LETTER E WITH CIRCUMFLEX
|
||||
0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xd4 0x00c8 #LATIN CAPITAL LETTER E WITH GRAVE
|
||||
0xd5 0x0131 #LATIN SMALL LETTER DOTLESS I
|
||||
0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xd8 0x00cf #LATIN CAPITAL LETTER I WITH DIAERESIS
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x00a6 #BROKEN BAR
|
||||
0xde 0x00cc #LATIN CAPITAL LETTER I WITH GRAVE
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xe3 0x00d2 #LATIN CAPITAL LETTER O WITH GRAVE
|
||||
0xe4 0x00f5 #LATIN SMALL LETTER O WITH TILDE
|
||||
0xe5 0x00d5 #LATIN CAPITAL LETTER O WITH TILDE
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x00fe #LATIN SMALL LETTER THORN
|
||||
0xe8 0x00de #LATIN CAPITAL LETTER THORN
|
||||
0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xea 0x00db #LATIN CAPITAL LETTER U WITH CIRCUMFLEX
|
||||
0xeb 0x00d9 #LATIN CAPITAL LETTER U WITH GRAVE
|
||||
0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xee 0x00af #MACRON
|
||||
0xef 0x00b4 #ACUTE ACCENT
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2017 #DOUBLE LOW LINE
|
||||
0xf3 0x00be #VULGAR FRACTION THREE QUARTERS
|
||||
0xf4 0x00b6 #PILCROW SIGN
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x00b8 #CEDILLA
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x00b9 #SUPERSCRIPT ONE
|
||||
0xfc 0x00b3 #SUPERSCRIPT THREE
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
273
sys/lib/antiword/cp852.txt
Executable file
273
sys/lib/antiword/cp852.txt
Executable file
|
@ -0,0 +1,273 @@
|
|||
#
|
||||
# Name: cp852_DOSLatin2 to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.00
|
||||
# Table format: Format A
|
||||
# Date: 04/24/96
|
||||
# Authors: Lori Brownell <loribr@microsoft.com>
|
||||
# K.D. Chang <a-kchang@microsoft.com>
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp852_DOSLatin2 code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp852_DOSLatin2 order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x00c7 #LATIN CAPITAL LETTER C WITH CEDILLA
|
||||
0x81 0x00fc #LATIN SMALL LETTER U WITH DIAERESIS
|
||||
0x82 0x00e9 #LATIN SMALL LETTER E WITH ACUTE
|
||||
0x83 0x00e2 #LATIN SMALL LETTER A WITH CIRCUMFLEX
|
||||
0x84 0x00e4 #LATIN SMALL LETTER A WITH DIAERESIS
|
||||
0x85 0x016f #LATIN SMALL LETTER U WITH RING ABOVE
|
||||
0x86 0x0107 #LATIN SMALL LETTER C WITH ACUTE
|
||||
0x87 0x00e7 #LATIN SMALL LETTER C WITH CEDILLA
|
||||
0x88 0x0142 #LATIN SMALL LETTER L WITH STROKE
|
||||
0x89 0x00eb #LATIN SMALL LETTER E WITH DIAERESIS
|
||||
0x8a 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
|
||||
0x8b 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE
|
||||
0x8c 0x00ee #LATIN SMALL LETTER I WITH CIRCUMFLEX
|
||||
0x8d 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
|
||||
0x8e 0x00c4 #LATIN CAPITAL LETTER A WITH DIAERESIS
|
||||
0x8f 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
|
||||
0x90 0x00c9 #LATIN CAPITAL LETTER E WITH ACUTE
|
||||
0x91 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE
|
||||
0x92 0x013a #LATIN SMALL LETTER L WITH ACUTE
|
||||
0x93 0x00f4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
|
||||
0x94 0x00f6 #LATIN SMALL LETTER O WITH DIAERESIS
|
||||
0x95 0x013d #LATIN CAPITAL LETTER L WITH CARON
|
||||
0x96 0x013e #LATIN SMALL LETTER L WITH CARON
|
||||
0x97 0x015a #LATIN CAPITAL LETTER S WITH ACUTE
|
||||
0x98 0x015b #LATIN SMALL LETTER S WITH ACUTE
|
||||
0x99 0x00d6 #LATIN CAPITAL LETTER O WITH DIAERESIS
|
||||
0x9a 0x00dc #LATIN CAPITAL LETTER U WITH DIAERESIS
|
||||
0x9b 0x0164 #LATIN CAPITAL LETTER T WITH CARON
|
||||
0x9c 0x0165 #LATIN SMALL LETTER T WITH CARON
|
||||
0x9d 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
|
||||
0x9e 0x00d7 #MULTIPLICATION SIGN
|
||||
0x9f 0x010d #LATIN SMALL LETTER C WITH CARON
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
|
||||
0xa5 0x0105 #LATIN SMALL LETTER A WITH OGONEK
|
||||
0xa6 0x017d #LATIN CAPITAL LETTER Z WITH CARON
|
||||
0xa7 0x017e #LATIN SMALL LETTER Z WITH CARON
|
||||
0xa8 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
|
||||
0xa9 0x0119 #LATIN SMALL LETTER E WITH OGONEK
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x017a #LATIN SMALL LETTER Z WITH ACUTE
|
||||
0xac 0x010c #LATIN CAPITAL LETTER C WITH CARON
|
||||
0xad 0x015f #LATIN SMALL LETTER S WITH CEDILLA
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x00c1 #LATIN CAPITAL LETTER A WITH ACUTE
|
||||
0xb6 0x00c2 #LATIN CAPITAL LETTER A WITH CIRCUMFLEX
|
||||
0xb7 0x011a #LATIN CAPITAL LETTER E WITH CARON
|
||||
0xb8 0x015e #LATIN CAPITAL LETTER S WITH CEDILLA
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x017b #LATIN CAPITAL LETTER Z WITH DOT ABOVE
|
||||
0xbe 0x017c #LATIN SMALL LETTER Z WITH DOT ABOVE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x0102 #LATIN CAPITAL LETTER A WITH BREVE
|
||||
0xc7 0x0103 #LATIN SMALL LETTER A WITH BREVE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x00a4 #CURRENCY SIGN
|
||||
0xd0 0x0111 #LATIN SMALL LETTER D WITH STROKE
|
||||
0xd1 0x0110 #LATIN CAPITAL LETTER D WITH STROKE
|
||||
0xd2 0x010e #LATIN CAPITAL LETTER D WITH CARON
|
||||
0xd3 0x00cb #LATIN CAPITAL LETTER E WITH DIAERESIS
|
||||
0xd4 0x010f #LATIN SMALL LETTER D WITH CARON
|
||||
0xd5 0x0147 #LATIN CAPITAL LETTER N WITH CARON
|
||||
0xd6 0x00cd #LATIN CAPITAL LETTER I WITH ACUTE
|
||||
0xd7 0x00ce #LATIN CAPITAL LETTER I WITH CIRCUMFLEX
|
||||
0xd8 0x011b #LATIN SMALL LETTER E WITH CARON
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x0162 #LATIN CAPITAL LETTER T WITH CEDILLA
|
||||
0xde 0x016e #LATIN CAPITAL LETTER U WITH RING ABOVE
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x00d3 #LATIN CAPITAL LETTER O WITH ACUTE
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S
|
||||
0xe2 0x00d4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
|
||||
0xe3 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
|
||||
0xe4 0x0144 #LATIN SMALL LETTER N WITH ACUTE
|
||||
0xe5 0x0148 #LATIN SMALL LETTER N WITH CARON
|
||||
0xe6 0x0160 #LATIN CAPITAL LETTER S WITH CARON
|
||||
0xe7 0x0161 #LATIN SMALL LETTER S WITH CARON
|
||||
0xe8 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE
|
||||
0xe9 0x00da #LATIN CAPITAL LETTER U WITH ACUTE
|
||||
0xea 0x0155 #LATIN SMALL LETTER R WITH ACUTE
|
||||
0xeb 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
|
||||
0xec 0x00fd #LATIN SMALL LETTER Y WITH ACUTE
|
||||
0xed 0x00dd #LATIN CAPITAL LETTER Y WITH ACUTE
|
||||
0xee 0x0163 #LATIN SMALL LETTER T WITH CEDILLA
|
||||
0xef 0x00b4 #ACUTE ACCENT
|
||||
0xf0 0x00ad #SOFT HYPHEN
|
||||
0xf1 0x02dd #DOUBLE ACUTE ACCENT
|
||||
0xf2 0x02db #OGONEK
|
||||
0xf3 0x02c7 #CARON
|
||||
0xf4 0x02d8 #BREVE
|
||||
0xf5 0x00a7 #SECTION SIGN
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x00b8 #CEDILLA
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x00a8 #DIAERESIS
|
||||
0xfa 0x02d9 #DOT ABOVE
|
||||
0xfb 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE
|
||||
0xfc 0x0158 #LATIN CAPITAL LETTER R WITH CARON
|
||||
0xfd 0x0159 #LATIN SMALL LETTER R WITH CARON
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
273
sys/lib/antiword/cp862.txt
Executable file
273
sys/lib/antiword/cp862.txt
Executable file
|
@ -0,0 +1,273 @@
|
|||
#
|
||||
# Name: cp862_DOSHebrew to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.00
|
||||
# Table format: Format A
|
||||
# Date: 04/24/96
|
||||
# Authors: Lori Brownell <loribr@microsoft.com>
|
||||
# K.D. Chang <a-kchang@microsoft.com>
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp862_DOSHebrew code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp862_DOSHebrew order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x05d0 #HEBREW LETTER ALEF
|
||||
0x81 0x05d1 #HEBREW LETTER BET
|
||||
0x82 0x05d2 #HEBREW LETTER GIMEL
|
||||
0x83 0x05d3 #HEBREW LETTER DALET
|
||||
0x84 0x05d4 #HEBREW LETTER HE
|
||||
0x85 0x05d5 #HEBREW LETTER VAV
|
||||
0x86 0x05d6 #HEBREW LETTER ZAYIN
|
||||
0x87 0x05d7 #HEBREW LETTER HET
|
||||
0x88 0x05d8 #HEBREW LETTER TET
|
||||
0x89 0x05d9 #HEBREW LETTER YOD
|
||||
0x8a 0x05da #HEBREW LETTER FINAL KAF
|
||||
0x8b 0x05db #HEBREW LETTER KAF
|
||||
0x8c 0x05dc #HEBREW LETTER LAMED
|
||||
0x8d 0x05dd #HEBREW LETTER FINAL MEM
|
||||
0x8e 0x05de #HEBREW LETTER MEM
|
||||
0x8f 0x05df #HEBREW LETTER FINAL NUN
|
||||
0x90 0x05e0 #HEBREW LETTER NUN
|
||||
0x91 0x05e1 #HEBREW LETTER SAMEKH
|
||||
0x92 0x05e2 #HEBREW LETTER AYIN
|
||||
0x93 0x05e3 #HEBREW LETTER FINAL PE
|
||||
0x94 0x05e4 #HEBREW LETTER PE
|
||||
0x95 0x05e5 #HEBREW LETTER FINAL TSADI
|
||||
0x96 0x05e6 #HEBREW LETTER TSADI
|
||||
0x97 0x05e7 #HEBREW LETTER QOF
|
||||
0x98 0x05e8 #HEBREW LETTER RESH
|
||||
0x99 0x05e9 #HEBREW LETTER SHIN
|
||||
0x9a 0x05ea #HEBREW LETTER TAV
|
||||
0x9b 0x00a2 #CENT SIGN
|
||||
0x9c 0x00a3 #POUND SIGN
|
||||
0x9d 0x00a5 #YEN SIGN
|
||||
0x9e 0x20a7 #PESETA SIGN
|
||||
0x9f 0x0192 #LATIN SMALL LETTER F WITH HOOK
|
||||
0xa0 0x00e1 #LATIN SMALL LETTER A WITH ACUTE
|
||||
0xa1 0x00ed #LATIN SMALL LETTER I WITH ACUTE
|
||||
0xa2 0x00f3 #LATIN SMALL LETTER O WITH ACUTE
|
||||
0xa3 0x00fa #LATIN SMALL LETTER U WITH ACUTE
|
||||
0xa4 0x00f1 #LATIN SMALL LETTER N WITH TILDE
|
||||
0xa5 0x00d1 #LATIN CAPITAL LETTER N WITH TILDE
|
||||
0xa6 0x00aa #FEMININE ORDINAL INDICATOR
|
||||
0xa7 0x00ba #MASCULINE ORDINAL INDICATOR
|
||||
0xa8 0x00bf #INVERTED QUESTION MARK
|
||||
0xa9 0x2310 #REVERSED NOT SIGN
|
||||
0xaa 0x00ac #NOT SIGN
|
||||
0xab 0x00bd #VULGAR FRACTION ONE HALF
|
||||
0xac 0x00bc #VULGAR FRACTION ONE QUARTER
|
||||
0xad 0x00a1 #INVERTED EXCLAMATION MARK
|
||||
0xae 0x00ab #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xaf 0x00bb #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x03b1 #GREEK SMALL LETTER ALPHA
|
||||
0xe1 0x00df #LATIN SMALL LETTER SHARP S (GERMAN)
|
||||
0xe2 0x0393 #GREEK CAPITAL LETTER GAMMA
|
||||
0xe3 0x03c0 #GREEK SMALL LETTER PI
|
||||
0xe4 0x03a3 #GREEK CAPITAL LETTER SIGMA
|
||||
0xe5 0x03c3 #GREEK SMALL LETTER SIGMA
|
||||
0xe6 0x00b5 #MICRO SIGN
|
||||
0xe7 0x03c4 #GREEK SMALL LETTER TAU
|
||||
0xe8 0x03a6 #GREEK CAPITAL LETTER PHI
|
||||
0xe9 0x0398 #GREEK CAPITAL LETTER THETA
|
||||
0xea 0x03a9 #GREEK CAPITAL LETTER OMEGA
|
||||
0xeb 0x03b4 #GREEK SMALL LETTER DELTA
|
||||
0xec 0x221e #INFINITY
|
||||
0xed 0x03c6 #GREEK SMALL LETTER PHI
|
||||
0xee 0x03b5 #GREEK SMALL LETTER EPSILON
|
||||
0xef 0x2229 #INTERSECTION
|
||||
0xf0 0x2261 #IDENTICAL TO
|
||||
0xf1 0x00b1 #PLUS-MINUS SIGN
|
||||
0xf2 0x2265 #GREATER-THAN OR EQUAL TO
|
||||
0xf3 0x2264 #LESS-THAN OR EQUAL TO
|
||||
0xf4 0x2320 #TOP HALF INTEGRAL
|
||||
0xf5 0x2321 #BOTTOM HALF INTEGRAL
|
||||
0xf6 0x00f7 #DIVISION SIGN
|
||||
0xf7 0x2248 #ALMOST EQUAL TO
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x207f #SUPERSCRIPT LATIN SMALL LETTER N
|
||||
0xfd 0x00b2 #SUPERSCRIPT TWO
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
273
sys/lib/antiword/cp866.txt
Executable file
273
sys/lib/antiword/cp866.txt
Executable file
|
@ -0,0 +1,273 @@
|
|||
#
|
||||
# Name: cp866_DOSCyrillicRussian to Unicode table
|
||||
# Unicode version: 2.0
|
||||
# Table version: 2.00
|
||||
# Table format: Format A
|
||||
# Date: 04/24/96
|
||||
# Authors: Lori Brownell <loribr@microsoft.com>
|
||||
# K.D. Chang <a-kchang@microsoft.com>
|
||||
# General notes: none
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the cp866_DOSCyrillicRussian code (in hex)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 is the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in cp866_DOSCyrillicRussian order
|
||||
#
|
||||
0x00 0x0000 #NULL
|
||||
0x01 0x0001 #START OF HEADING
|
||||
0x02 0x0002 #START OF TEXT
|
||||
0x03 0x0003 #END OF TEXT
|
||||
0x04 0x0004 #END OF TRANSMISSION
|
||||
0x05 0x0005 #ENQUIRY
|
||||
0x06 0x0006 #ACKNOWLEDGE
|
||||
0x07 0x0007 #BELL
|
||||
0x08 0x0008 #BACKSPACE
|
||||
0x09 0x0009 #HORIZONTAL TABULATION
|
||||
0x0a 0x000a #LINE FEED
|
||||
0x0b 0x000b #VERTICAL TABULATION
|
||||
0x0c 0x000c #FORM FEED
|
||||
0x0d 0x000d #CARRIAGE RETURN
|
||||
0x0e 0x000e #SHIFT OUT
|
||||
0x0f 0x000f #SHIFT IN
|
||||
0x10 0x0010 #DATA LINK ESCAPE
|
||||
0x11 0x0011 #DEVICE CONTROL ONE
|
||||
0x12 0x0012 #DEVICE CONTROL TWO
|
||||
0x13 0x0013 #DEVICE CONTROL THREE
|
||||
0x14 0x0014 #DEVICE CONTROL FOUR
|
||||
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 #SYNCHRONOUS IDLE
|
||||
0x17 0x0017 #END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 #CANCEL
|
||||
0x19 0x0019 #END OF MEDIUM
|
||||
0x1a 0x001a #SUBSTITUTE
|
||||
0x1b 0x001b #ESCAPE
|
||||
0x1c 0x001c #FILE SEPARATOR
|
||||
0x1d 0x001d #GROUP SEPARATOR
|
||||
0x1e 0x001e #RECORD SEPARATOR
|
||||
0x1f 0x001f #UNIT SEPARATOR
|
||||
0x20 0x0020 #SPACE
|
||||
0x21 0x0021 #EXCLAMATION MARK
|
||||
0x22 0x0022 #QUOTATION MARK
|
||||
0x23 0x0023 #NUMBER SIGN
|
||||
0x24 0x0024 #DOLLAR SIGN
|
||||
0x25 0x0025 #PERCENT SIGN
|
||||
0x26 0x0026 #AMPERSAND
|
||||
0x27 0x0027 #APOSTROPHE
|
||||
0x28 0x0028 #LEFT PARENTHESIS
|
||||
0x29 0x0029 #RIGHT PARENTHESIS
|
||||
0x2a 0x002a #ASTERISK
|
||||
0x2b 0x002b #PLUS SIGN
|
||||
0x2c 0x002c #COMMA
|
||||
0x2d 0x002d #HYPHEN-MINUS
|
||||
0x2e 0x002e #FULL STOP
|
||||
0x2f 0x002f #SOLIDUS
|
||||
0x30 0x0030 #DIGIT ZERO
|
||||
0x31 0x0031 #DIGIT ONE
|
||||
0x32 0x0032 #DIGIT TWO
|
||||
0x33 0x0033 #DIGIT THREE
|
||||
0x34 0x0034 #DIGIT FOUR
|
||||
0x35 0x0035 #DIGIT FIVE
|
||||
0x36 0x0036 #DIGIT SIX
|
||||
0x37 0x0037 #DIGIT SEVEN
|
||||
0x38 0x0038 #DIGIT EIGHT
|
||||
0x39 0x0039 #DIGIT NINE
|
||||
0x3a 0x003a #COLON
|
||||
0x3b 0x003b #SEMICOLON
|
||||
0x3c 0x003c #LESS-THAN SIGN
|
||||
0x3d 0x003d #EQUALS SIGN
|
||||
0x3e 0x003e #GREATER-THAN SIGN
|
||||
0x3f 0x003f #QUESTION MARK
|
||||
0x40 0x0040 #COMMERCIAL AT
|
||||
0x41 0x0041 #LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 #LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 #LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 #LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 #LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 #LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 #LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 #LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 #LATIN CAPITAL LETTER I
|
||||
0x4a 0x004a #LATIN CAPITAL LETTER J
|
||||
0x4b 0x004b #LATIN CAPITAL LETTER K
|
||||
0x4c 0x004c #LATIN CAPITAL LETTER L
|
||||
0x4d 0x004d #LATIN CAPITAL LETTER M
|
||||
0x4e 0x004e #LATIN CAPITAL LETTER N
|
||||
0x4f 0x004f #LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 #LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 #LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 #LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 #LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 #LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 #LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 #LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 #LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 #LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 #LATIN CAPITAL LETTER Y
|
||||
0x5a 0x005a #LATIN CAPITAL LETTER Z
|
||||
0x5b 0x005b #LEFT SQUARE BRACKET
|
||||
0x5c 0x005c #REVERSE SOLIDUS
|
||||
0x5d 0x005d #RIGHT SQUARE BRACKET
|
||||
0x5e 0x005e #CIRCUMFLEX ACCENT
|
||||
0x5f 0x005f #LOW LINE
|
||||
0x60 0x0060 #GRAVE ACCENT
|
||||
0x61 0x0061 #LATIN SMALL LETTER A
|
||||
0x62 0x0062 #LATIN SMALL LETTER B
|
||||
0x63 0x0063 #LATIN SMALL LETTER C
|
||||
0x64 0x0064 #LATIN SMALL LETTER D
|
||||
0x65 0x0065 #LATIN SMALL LETTER E
|
||||
0x66 0x0066 #LATIN SMALL LETTER F
|
||||
0x67 0x0067 #LATIN SMALL LETTER G
|
||||
0x68 0x0068 #LATIN SMALL LETTER H
|
||||
0x69 0x0069 #LATIN SMALL LETTER I
|
||||
0x6a 0x006a #LATIN SMALL LETTER J
|
||||
0x6b 0x006b #LATIN SMALL LETTER K
|
||||
0x6c 0x006c #LATIN SMALL LETTER L
|
||||
0x6d 0x006d #LATIN SMALL LETTER M
|
||||
0x6e 0x006e #LATIN SMALL LETTER N
|
||||
0x6f 0x006f #LATIN SMALL LETTER O
|
||||
0x70 0x0070 #LATIN SMALL LETTER P
|
||||
0x71 0x0071 #LATIN SMALL LETTER Q
|
||||
0x72 0x0072 #LATIN SMALL LETTER R
|
||||
0x73 0x0073 #LATIN SMALL LETTER S
|
||||
0x74 0x0074 #LATIN SMALL LETTER T
|
||||
0x75 0x0075 #LATIN SMALL LETTER U
|
||||
0x76 0x0076 #LATIN SMALL LETTER V
|
||||
0x77 0x0077 #LATIN SMALL LETTER W
|
||||
0x78 0x0078 #LATIN SMALL LETTER X
|
||||
0x79 0x0079 #LATIN SMALL LETTER Y
|
||||
0x7a 0x007a #LATIN SMALL LETTER Z
|
||||
0x7b 0x007b #LEFT CURLY BRACKET
|
||||
0x7c 0x007c #VERTICAL LINE
|
||||
0x7d 0x007d #RIGHT CURLY BRACKET
|
||||
0x7e 0x007e #TILDE
|
||||
0x7f 0x007f #DELETE
|
||||
0x80 0x0410 #CYRILLIC CAPITAL LETTER A
|
||||
0x81 0x0411 #CYRILLIC CAPITAL LETTER BE
|
||||
0x82 0x0412 #CYRILLIC CAPITAL LETTER VE
|
||||
0x83 0x0413 #CYRILLIC CAPITAL LETTER GHE
|
||||
0x84 0x0414 #CYRILLIC CAPITAL LETTER DE
|
||||
0x85 0x0415 #CYRILLIC CAPITAL LETTER IE
|
||||
0x86 0x0416 #CYRILLIC CAPITAL LETTER ZHE
|
||||
0x87 0x0417 #CYRILLIC CAPITAL LETTER ZE
|
||||
0x88 0x0418 #CYRILLIC CAPITAL LETTER I
|
||||
0x89 0x0419 #CYRILLIC CAPITAL LETTER SHORT I
|
||||
0x8a 0x041a #CYRILLIC CAPITAL LETTER KA
|
||||
0x8b 0x041b #CYRILLIC CAPITAL LETTER EL
|
||||
0x8c 0x041c #CYRILLIC CAPITAL LETTER EM
|
||||
0x8d 0x041d #CYRILLIC CAPITAL LETTER EN
|
||||
0x8e 0x041e #CYRILLIC CAPITAL LETTER O
|
||||
0x8f 0x041f #CYRILLIC CAPITAL LETTER PE
|
||||
0x90 0x0420 #CYRILLIC CAPITAL LETTER ER
|
||||
0x91 0x0421 #CYRILLIC CAPITAL LETTER ES
|
||||
0x92 0x0422 #CYRILLIC CAPITAL LETTER TE
|
||||
0x93 0x0423 #CYRILLIC CAPITAL LETTER U
|
||||
0x94 0x0424 #CYRILLIC CAPITAL LETTER EF
|
||||
0x95 0x0425 #CYRILLIC CAPITAL LETTER HA
|
||||
0x96 0x0426 #CYRILLIC CAPITAL LETTER TSE
|
||||
0x97 0x0427 #CYRILLIC CAPITAL LETTER CHE
|
||||
0x98 0x0428 #CYRILLIC CAPITAL LETTER SHA
|
||||
0x99 0x0429 #CYRILLIC CAPITAL LETTER SHCHA
|
||||
0x9a 0x042a #CYRILLIC CAPITAL LETTER HARD SIGN
|
||||
0x9b 0x042b #CYRILLIC CAPITAL LETTER YERU
|
||||
0x9c 0x042c #CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0x9d 0x042d #CYRILLIC CAPITAL LETTER E
|
||||
0x9e 0x042e #CYRILLIC CAPITAL LETTER YU
|
||||
0x9f 0x042f #CYRILLIC CAPITAL LETTER YA
|
||||
0xa0 0x0430 #CYRILLIC SMALL LETTER A
|
||||
0xa1 0x0431 #CYRILLIC SMALL LETTER BE
|
||||
0xa2 0x0432 #CYRILLIC SMALL LETTER VE
|
||||
0xa3 0x0433 #CYRILLIC SMALL LETTER GHE
|
||||
0xa4 0x0434 #CYRILLIC SMALL LETTER DE
|
||||
0xa5 0x0435 #CYRILLIC SMALL LETTER IE
|
||||
0xa6 0x0436 #CYRILLIC SMALL LETTER ZHE
|
||||
0xa7 0x0437 #CYRILLIC SMALL LETTER ZE
|
||||
0xa8 0x0438 #CYRILLIC SMALL LETTER I
|
||||
0xa9 0x0439 #CYRILLIC SMALL LETTER SHORT I
|
||||
0xaa 0x043a #CYRILLIC SMALL LETTER KA
|
||||
0xab 0x043b #CYRILLIC SMALL LETTER EL
|
||||
0xac 0x043c #CYRILLIC SMALL LETTER EM
|
||||
0xad 0x043d #CYRILLIC SMALL LETTER EN
|
||||
0xae 0x043e #CYRILLIC SMALL LETTER O
|
||||
0xaf 0x043f #CYRILLIC SMALL LETTER PE
|
||||
0xb0 0x2591 #LIGHT SHADE
|
||||
0xb1 0x2592 #MEDIUM SHADE
|
||||
0xb2 0x2593 #DARK SHADE
|
||||
0xb3 0x2502 #BOX DRAWINGS LIGHT VERTICAL
|
||||
0xb4 0x2524 #BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0xb5 0x2561 #BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xb6 0x2562 #BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xb7 0x2556 #BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xb8 0x2555 #BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xb9 0x2563 #BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xba 0x2551 #BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xbb 0x2557 #BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xbc 0x255d #BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xbd 0x255c #BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xbe 0x255b #BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xbf 0x2510 #BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0xc0 0x2514 #BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0xc1 0x2534 #BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0xc2 0x252c #BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0xc3 0x251c #BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0xc4 0x2500 #BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0xc5 0x253c #BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0xc6 0x255e #BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xc7 0x255f #BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xc8 0x255a #BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xc9 0x2554 #BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xca 0x2569 #BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xcb 0x2566 #BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xcc 0x2560 #BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xcd 0x2550 #BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xce 0x256c #BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xcf 0x2567 #BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd0 0x2568 #BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd1 0x2564 #BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd2 0x2565 #BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd3 0x2559 #BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xd4 0x2558 #BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xd5 0x2552 #BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xd6 0x2553 #BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xd7 0x256b #BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xd8 0x256a #BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xd9 0x2518 #BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0xda 0x250c #BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0xdb 0x2588 #FULL BLOCK
|
||||
0xdc 0x2584 #LOWER HALF BLOCK
|
||||
0xdd 0x258c #LEFT HALF BLOCK
|
||||
0xde 0x2590 #RIGHT HALF BLOCK
|
||||
0xdf 0x2580 #UPPER HALF BLOCK
|
||||
0xe0 0x0440 #CYRILLIC SMALL LETTER ER
|
||||
0xe1 0x0441 #CYRILLIC SMALL LETTER ES
|
||||
0xe2 0x0442 #CYRILLIC SMALL LETTER TE
|
||||
0xe3 0x0443 #CYRILLIC SMALL LETTER U
|
||||
0xe4 0x0444 #CYRILLIC SMALL LETTER EF
|
||||
0xe5 0x0445 #CYRILLIC SMALL LETTER HA
|
||||
0xe6 0x0446 #CYRILLIC SMALL LETTER TSE
|
||||
0xe7 0x0447 #CYRILLIC SMALL LETTER CHE
|
||||
0xe8 0x0448 #CYRILLIC SMALL LETTER SHA
|
||||
0xe9 0x0449 #CYRILLIC SMALL LETTER SHCHA
|
||||
0xea 0x044a #CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xeb 0x044b #CYRILLIC SMALL LETTER YERU
|
||||
0xec 0x044c #CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xed 0x044d #CYRILLIC SMALL LETTER E
|
||||
0xee 0x044e #CYRILLIC SMALL LETTER YU
|
||||
0xef 0x044f #CYRILLIC SMALL LETTER YA
|
||||
0xf0 0x0401 #CYRILLIC CAPITAL LETTER IO
|
||||
0xf1 0x0451 #CYRILLIC SMALL LETTER IO
|
||||
0xf2 0x0404 #CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xf3 0x0454 #CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xf4 0x0407 #CYRILLIC CAPITAL LETTER YI
|
||||
0xf5 0x0457 #CYRILLIC SMALL LETTER YI
|
||||
0xf6 0x040e #CYRILLIC CAPITAL LETTER SHORT U
|
||||
0xf7 0x045e #CYRILLIC SMALL LETTER SHORT U
|
||||
0xf8 0x00b0 #DEGREE SIGN
|
||||
0xf9 0x2219 #BULLET OPERATOR
|
||||
0xfa 0x00b7 #MIDDLE DOT
|
||||
0xfb 0x221a #SQUARE ROOT
|
||||
0xfc 0x2116 #NUMERO SIGN
|
||||
0xfd 0x00a4 #CURRENCY SIGN
|
||||
0xfe 0x25a0 #BLACK SQUARE
|
||||
0xff 0x00a0 #NO-BREAK SPACE
|
117
sys/lib/antiword/fontnames
Executable file
117
sys/lib/antiword/fontnames
Executable file
|
@ -0,0 +1,117 @@
|
|||
# Default fontnames translation table
|
||||
# uses only Standard PostScript (TM) fonts
|
||||
#
|
||||
# MS-Word fontname, Italic, Bold, PostScript fontname, Special
|
||||
Arial, 0, 0, Helvetica, 0
|
||||
Arial, 0, 1, Helvetica-Bold, 0
|
||||
Arial, 1, 0, Helvetica-Oblique, 0
|
||||
Arial, 1, 1, Helvetica-BoldOblique, 0
|
||||
Arial Black, 0, 0, Helvetica, 0
|
||||
Arial Black, 0, 1, Helvetica-Bold, 0
|
||||
Arial Black, 1, 0, Helvetica-Oblique, 0
|
||||
Arial Black, 1, 1, Helvetica-BoldOblique, 0
|
||||
Arial CE, 0, 0, Helvetica, 0
|
||||
Arial CE, 0, 1, Helvetica-Bold, 0
|
||||
Arial CE, 1, 0, Helvetica-Oblique, 0
|
||||
Arial CE, 1, 1, Helvetica-BoldOblique, 0
|
||||
Arial Narrow, 0, 0, Helvetica-Narrow, 0
|
||||
Arial Narrow, 0, 1, Helvetica-Narrow-Bold, 0
|
||||
Arial Narrow, 1, 0, Helvetica-Narrow-Oblique, 0
|
||||
Arial Narrow, 1, 1, Helvetica-Narrow-BoldOblique, 0
|
||||
AvantGarde, 0, 0, AvantGarde-Book, 0
|
||||
AvantGarde, 0, 1, AvantGarde-Demi, 0
|
||||
AvantGarde, 1, 0, AvantGarde-BookOblique, 0
|
||||
AvantGarde, 1, 1, AvantGarde-DemiOblique, 0
|
||||
Bookman Old Style, 0, 0, Bookman-Light, 0
|
||||
Bookman Old Style, 0, 1, Bookman-Demi, 0
|
||||
Bookman Old Style, 1, 0, Bookman-LightItalic, 0
|
||||
Bookman Old Style, 1, 1, Bookman-DemiItalic, 0
|
||||
Century Schoolbook, 0, 0, NewCenturySchlbk-Roman, 0
|
||||
Century Schoolbook, 0, 1, NewCenturySchlbk-Bold, 0
|
||||
Century Schoolbook, 1, 0, NewCenturySchlbk-Italic, 0
|
||||
Century Schoolbook, 1, 1, NewCenturySchlbk-BoldItalic, 0
|
||||
CG Omega, 0, 0, Helvetica, 0
|
||||
CG Omega, 0, 1, Helvetica-Bold, 0
|
||||
CG Omega, 1, 0, Helvetica-Oblique, 0
|
||||
CG Omega, 1, 1, Helvetica-BoldOblique, 0
|
||||
Comic Sans MS, 0, 0, Helvetica, 0
|
||||
Comic Sans MS, 0, 1, Helvetica-Bold, 0
|
||||
Comic Sans MS, 1, 0, Helvetica-Oblique, 0
|
||||
Comic Sans MS, 1, 1, Helvetica-BoldOblique, 0
|
||||
Courier, 0, 0, Courier, 0
|
||||
Courier, 0, 1, Courier-Bold, 0
|
||||
Courier, 1, 0, Courier-Oblique, 0
|
||||
Courier, 1, 1, Courier-BoldOblique, 0
|
||||
Courier New, 0, 0, Courier, 0
|
||||
Courier New, 0, 1, Courier-Bold, 0
|
||||
Courier New, 1, 0, Courier-Oblique, 0
|
||||
Courier New, 1, 1, Courier-BoldOblique, 0
|
||||
Fixedsys, 0, 0, Courier, 0
|
||||
Fixedsys, 0, 1, Courier-Bold, 0
|
||||
Fixedsys, 1, 0, Courier-Oblique, 0
|
||||
Fixedsys, 1, 1, Courier-BoldOblique, 0
|
||||
Helvetica, 0, 0, Helvetica, 0
|
||||
Helvetica, 0, 1, Helvetica-Bold, 0
|
||||
Helvetica, 1, 0, Helvetica-Oblique, 0
|
||||
Helvetica, 1, 1, Helvetica-BoldOblique, 0
|
||||
Helvetica-Narrow, 0, 0, Helvetica-Narrow, 0
|
||||
Helvetica-Narrow, 0, 1, Helvetica-Narrow-Bold, 0
|
||||
Helvetica-Narrow, 1, 0, Helvetica-Narrow-Oblique, 0
|
||||
Helvetica-Narrow, 1, 1, Helvetica-Narrow-BoldOblique, 0
|
||||
ITC Bookman, 0, 0, Bookman-Light, 0
|
||||
ITC Bookman, 0, 1, Bookman-Demi, 0
|
||||
ITC Bookman, 1, 0, Bookman-LightItalic, 0
|
||||
ITC Bookman, 1, 1, Bookman-DemiItalic, 0
|
||||
Lucida Console, 0, 0, Courier, 0
|
||||
Lucida Console, 0, 1, Courier-Bold, 0
|
||||
Lucida Console, 1, 0, Courier-Oblique, 0
|
||||
Lucida Console, 1, 1, Courier-BoldOblique, 0
|
||||
Lucida Sans Typewriter, 0, 0, Courier, 0
|
||||
Lucida Sans Typewriter, 0, 1, Courier-Bold, 0
|
||||
Lucida Sans Typewriter, 1, 0, Courier-Oblique, 0
|
||||
Lucida Sans Typewriter, 1, 1, Courier-BoldOblique, 0
|
||||
Monotype.com, 0, 0, Courier, 0
|
||||
Monotype.com, 0, 1, Courier-Bold, 0
|
||||
Monotype.com, 1, 0, Courier-Oblique, 0
|
||||
Monotype.com, 1, 1, Courier-BoldOblique, 0
|
||||
MS Sans Serif, 0, 0, Helvetica, 0
|
||||
MS Sans Serif, 0, 1, Helvetica-Bold, 0
|
||||
MS Sans Serif, 1, 0, Helvetica-Oblique, 0
|
||||
MS Sans Serif, 1, 1, Helvetica-BoldOblique, 0
|
||||
New Century Schlbk, 0, 0, NewCenturySchlbk-Roman, 0
|
||||
New Century Schlbk, 0, 1, NewCenturySchlbk-Bold, 0
|
||||
New Century Schlbk, 1, 0, NewCenturySchlbk-Italic, 0
|
||||
New Century Schlbk, 1, 1, NewCenturySchlbk-BoldItalic, 0
|
||||
NewCenturySchlbk, 0, 0, NewCenturySchlbk-Roman, 0
|
||||
NewCenturySchlbk, 0, 1, NewCenturySchlbk-Bold, 0
|
||||
NewCenturySchlbk, 1, 0, NewCenturySchlbk-Italic, 0
|
||||
NewCenturySchlbk, 1, 1, NewCenturySchlbk-BoldItalic, 0
|
||||
Palatino, 0, 0, Palatino-Roman, 0
|
||||
Palatino, 0, 1, Palatino-Bold, 0
|
||||
Palatino, 1, 0, Palatino-Italic, 0
|
||||
Palatino, 1, 1, Palatino-BoldItalic, 0
|
||||
Swiss, 0, 0, Helvetica, 0
|
||||
Swiss, 0, 1, Helvetica-Bold, 0
|
||||
Swiss, 1, 0, Helvetica-Oblique, 0
|
||||
Swiss, 1, 1, Helvetica-BoldOblique, 0
|
||||
Tahoma, 0, 0, Helvetica, 0
|
||||
Tahoma, 0, 1, Helvetica-Bold, 0
|
||||
Tahoma, 1, 0, Helvetica-Oblique, 0
|
||||
Tahoma, 1, 1, Helvetica-BoldOblique, 0
|
||||
Trebuchet MS, 0, 0, Helvetica, 0
|
||||
Trebuchet MS, 0, 1, Helvetica-Bold, 0
|
||||
Trebuchet MS, 1, 0, Helvetica-Oblique, 0
|
||||
Trebuchet MS, 1, 1, Helvetica-BoldOblique, 0
|
||||
Univers, 0, 0, Helvetica, 0
|
||||
Univers, 0, 1, Helvetica-Bold, 0
|
||||
Univers, 1, 0, Helvetica-Oblique, 0
|
||||
Univers, 1, 1, Helvetica-BoldOblique, 0
|
||||
Verdana, 0, 0, Helvetica, 0
|
||||
Verdana, 0, 1, Helvetica-Bold, 0
|
||||
Verdana, 1, 0, Helvetica-Oblique, 0
|
||||
Verdana, 1, 1, Helvetica-BoldOblique, 0
|
||||
# All the other fonts
|
||||
*, 0, 0, Times-Roman, 0
|
||||
*, 0, 1, Times-Bold, 0
|
||||
*, 1, 0, Times-Italic, 0
|
||||
*, 1, 1, Times-BoldItalic, 0
|
43
sys/lib/antiword/fontnames.russian
Executable file
43
sys/lib/antiword/fontnames.russian
Executable file
|
@ -0,0 +1,43 @@
|
|||
# Default fontnames translation table
|
||||
# for Cyrillic
|
||||
#
|
||||
# by: Dmitry Chernyak <cdl@inkasbank.ru>
|
||||
#
|
||||
# MS-Word fontname, Italic, Bold, PostScript fontname, Special
|
||||
Arial, 0, 0, ArialCyrMT, 0
|
||||
Arial, 0, 1, ArialCyrMT-Bold, 0
|
||||
Arial, 1, 0, ArialCyrMT-Italic, 0
|
||||
Arial, 1, 1, ArialCyrMT-BoldItalic, 0
|
||||
Courier, 0, 0, CourierCyrPS, 0
|
||||
Courier, 0, 1, CourierCyrPS-Bold, 0
|
||||
Courier, 1, 0, CourierCyrPS-Inclined, 0
|
||||
Courier, 1, 1, CourierCyrPS-BoldInclined, 0
|
||||
Courier New, 0, 0, CourierCyrPS, 0
|
||||
Courier New, 0, 1, CourierCyrPS-Bold, 0
|
||||
Courier New, 1, 0, CourierCyrPS-Inclined, 0
|
||||
Courier New, 1, 1, CourierCyrPS-BoldInclined, 0
|
||||
Fixedsys, 0, 0, CourierCyrPS, 0
|
||||
Fixedsys, 0, 1, CourierCyrPS-Bold, 0
|
||||
Fixedsys, 1, 0, CourierCyrPS-Inclined, 0
|
||||
Fixedsys, 1, 1, CourierCyrPS-BoldInclined, 0
|
||||
Helvetica, 0, 0, ArialCyrMT, 0
|
||||
Helvetica, 0, 1, ArialCyrMT-Bold, 0
|
||||
Helvetica, 1, 0, ArialCyrMT-Italic, 0
|
||||
Helvetica, 1, 1, ArialCyrMT-BoldItalic, 0
|
||||
Lucida Console, 0, 0, CourierCyrPS, 0
|
||||
Lucida Console, 0, 1, CourierCyrPS-Bold, 0
|
||||
Lucida Console, 1, 0, CourierCyrPS-Inclined, 0
|
||||
Lucida Console, 1, 1, CourierCyrPS-BoldInclined, 0
|
||||
Swiss, 0, 0, Helvetica, 0
|
||||
Swiss, 0, 1, Helvetica-Bold, 0
|
||||
Swiss, 1, 0, Helvetica-Oblique, 0
|
||||
Swiss, 1, 1, Helvetica-BoldOblique, 0
|
||||
Univers, 0, 0, Helvetica, 0
|
||||
Univers, 0, 1, Helvetica-Bold, 0
|
||||
Univers, 1, 0, Helvetica-Oblique, 0
|
||||
Univers, 1, 1, Helvetica-BoldOblique, 0
|
||||
# All the other fonts
|
||||
*, 0, 0, TimesNRCyrMT, 0
|
||||
*, 0, 1, TimesNRCyrMT-Bold, 0
|
||||
*, 1, 0, TimesNRCyrMT-Inclined, 0
|
||||
*, 1, 1, TimesNRCyrMT-BoldInclined, 0
|
302
sys/lib/antiword/koi8-r.txt
Executable file
302
sys/lib/antiword/koi8-r.txt
Executable file
|
@ -0,0 +1,302 @@
|
|||
#
|
||||
# Name: KOI8-R (RFC1489) to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 18 August 1999
|
||||
# Authors: Helmut Richter <richter@lrz.de>
|
||||
#
|
||||
# Copyright (c) 1991-1999 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# KOI8-R characters map into Unicode. The underlying document is the
|
||||
# mapping described in RFC 1489. No statements are made as to whether
|
||||
# this mapping is the same as the mapping defined as "Code Page 878"
|
||||
# with some vendors.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the KOI8-R code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in KOI8-R order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created.
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0x81 0x2502 # BOX DRAWINGS LIGHT VERTICAL
|
||||
0x82 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0x83 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0x84 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0x85 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0x86 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0x87 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0x88 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0x89 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0x8A 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0x8B 0x2580 # UPPER HALF BLOCK
|
||||
0x8C 0x2584 # LOWER HALF BLOCK
|
||||
0x8D 0x2588 # FULL BLOCK
|
||||
0x8E 0x258C # LEFT HALF BLOCK
|
||||
0x8F 0x2590 # RIGHT HALF BLOCK
|
||||
0x90 0x2591 # LIGHT SHADE
|
||||
0x91 0x2592 # MEDIUM SHADE
|
||||
0x92 0x2593 # DARK SHADE
|
||||
0x93 0x2320 # TOP HALF INTEGRAL
|
||||
0x94 0x25A0 # BLACK SQUARE
|
||||
0x95 0x2219 # BULLET OPERATOR
|
||||
0x96 0x221A # SQUARE ROOT
|
||||
0x97 0x2248 # ALMOST EQUAL TO
|
||||
0x98 0x2264 # LESS-THAN OR EQUAL TO
|
||||
0x99 0x2265 # GREATER-THAN OR EQUAL TO
|
||||
0x9A 0x00A0 # NO-BREAK SPACE
|
||||
0x9B 0x2321 # BOTTOM HALF INTEGRAL
|
||||
0x9C 0x00B0 # DEGREE SIGN
|
||||
0x9D 0x00B2 # SUPERSCRIPT TWO
|
||||
0x9E 0x00B7 # MIDDLE DOT
|
||||
0x9F 0x00F7 # DIVISION SIGN
|
||||
0xA0 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xA1 0x2551 # BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xA2 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xA3 0x0451 # CYRILLIC SMALL LETTER IO
|
||||
0xA4 0x2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
|
||||
0xA5 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xA6 0x2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
|
||||
0xA7 0x2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
|
||||
0xA8 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xA9 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xAA 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xAB 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xAC 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xAD 0x255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
|
||||
0xAE 0x255D # BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xAF 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xB0 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xB1 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xB2 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xB3 0x0401 # CYRILLIC CAPITAL LETTER IO
|
||||
0xB4 0x2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
|
||||
0xB5 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xB6 0x2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
|
||||
0xB7 0x2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
|
||||
0xB8 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xB9 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xBA 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xBB 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xBC 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xBD 0x256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xBE 0x256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xBF 0x00A9 # COPYRIGHT SIGN
|
||||
0xC0 0x044E # CYRILLIC SMALL LETTER YU
|
||||
0xC1 0x0430 # CYRILLIC SMALL LETTER A
|
||||
0xC2 0x0431 # CYRILLIC SMALL LETTER BE
|
||||
0xC3 0x0446 # CYRILLIC SMALL LETTER TSE
|
||||
0xC4 0x0434 # CYRILLIC SMALL LETTER DE
|
||||
0xC5 0x0435 # CYRILLIC SMALL LETTER IE
|
||||
0xC6 0x0444 # CYRILLIC SMALL LETTER EF
|
||||
0xC7 0x0433 # CYRILLIC SMALL LETTER GHE
|
||||
0xC8 0x0445 # CYRILLIC SMALL LETTER HA
|
||||
0xC9 0x0438 # CYRILLIC SMALL LETTER I
|
||||
0xCA 0x0439 # CYRILLIC SMALL LETTER SHORT I
|
||||
0xCB 0x043A # CYRILLIC SMALL LETTER KA
|
||||
0xCC 0x043B # CYRILLIC SMALL LETTER EL
|
||||
0xCD 0x043C # CYRILLIC SMALL LETTER EM
|
||||
0xCE 0x043D # CYRILLIC SMALL LETTER EN
|
||||
0xCF 0x043E # CYRILLIC SMALL LETTER O
|
||||
0xD0 0x043F # CYRILLIC SMALL LETTER PE
|
||||
0xD1 0x044F # CYRILLIC SMALL LETTER YA
|
||||
0xD2 0x0440 # CYRILLIC SMALL LETTER ER
|
||||
0xD3 0x0441 # CYRILLIC SMALL LETTER ES
|
||||
0xD4 0x0442 # CYRILLIC SMALL LETTER TE
|
||||
0xD5 0x0443 # CYRILLIC SMALL LETTER U
|
||||
0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE
|
||||
0xD7 0x0432 # CYRILLIC SMALL LETTER VE
|
||||
0xD8 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xD9 0x044B # CYRILLIC SMALL LETTER YERU
|
||||
0xDA 0x0437 # CYRILLIC SMALL LETTER ZE
|
||||
0xDB 0x0448 # CYRILLIC SMALL LETTER SHA
|
||||
0xDC 0x044D # CYRILLIC SMALL LETTER E
|
||||
0xDD 0x0449 # CYRILLIC SMALL LETTER SHCHA
|
||||
0xDE 0x0447 # CYRILLIC SMALL LETTER CHE
|
||||
0xDF 0x044A # CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xE0 0x042E # CYRILLIC CAPITAL LETTER YU
|
||||
0xE1 0x0410 # CYRILLIC CAPITAL LETTER A
|
||||
0xE2 0x0411 # CYRILLIC CAPITAL LETTER BE
|
||||
0xE3 0x0426 # CYRILLIC CAPITAL LETTER TSE
|
||||
0xE4 0x0414 # CYRILLIC CAPITAL LETTER DE
|
||||
0xE5 0x0415 # CYRILLIC CAPITAL LETTER IE
|
||||
0xE6 0x0424 # CYRILLIC CAPITAL LETTER EF
|
||||
0xE7 0x0413 # CYRILLIC CAPITAL LETTER GHE
|
||||
0xE8 0x0425 # CYRILLIC CAPITAL LETTER HA
|
||||
0xE9 0x0418 # CYRILLIC CAPITAL LETTER I
|
||||
0xEA 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xEB 0x041A # CYRILLIC CAPITAL LETTER KA
|
||||
0xEC 0x041B # CYRILLIC CAPITAL LETTER EL
|
||||
0xED 0x041C # CYRILLIC CAPITAL LETTER EM
|
||||
0xEE 0x041D # CYRILLIC CAPITAL LETTER EN
|
||||
0xEF 0x041E # CYRILLIC CAPITAL LETTER O
|
||||
0xF0 0x041F # CYRILLIC CAPITAL LETTER PE
|
||||
0xF1 0x042F # CYRILLIC CAPITAL LETTER YA
|
||||
0xF2 0x0420 # CYRILLIC CAPITAL LETTER ER
|
||||
0xF3 0x0421 # CYRILLIC CAPITAL LETTER ES
|
||||
0xF4 0x0422 # CYRILLIC CAPITAL LETTER TE
|
||||
0xF5 0x0423 # CYRILLIC CAPITAL LETTER U
|
||||
0xF6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
|
||||
0xF7 0x0412 # CYRILLIC CAPITAL LETTER VE
|
||||
0xF8 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xF9 0x042B # CYRILLIC CAPITAL LETTER YERU
|
||||
0xFA 0x0417 # CYRILLIC CAPITAL LETTER ZE
|
||||
0xFB 0x0428 # CYRILLIC CAPITAL LETTER SHA
|
||||
0xFC 0x042D # CYRILLIC CAPITAL LETTER E
|
||||
0xFD 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xFE 0x0427 # CYRILLIC CAPITAL LETTER CHE
|
||||
0xFF 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
|
303
sys/lib/antiword/koi8-u.txt
Executable file
303
sys/lib/antiword/koi8-u.txt
Executable file
|
@ -0,0 +1,303 @@
|
|||
#
|
||||
# Name: KOI8-U (RFC2319) to Unicode
|
||||
# Unicode version: 3.0
|
||||
# Table version: 1.0
|
||||
# Table format: Format A
|
||||
# Date: 08 September 2001
|
||||
# Authors: Andriy Rysin <arysin@yahoo.com>
|
||||
#
|
||||
# Copyright (c) 1991-2001 Unicode, Inc. All Rights reserved.
|
||||
#
|
||||
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
|
||||
# No claims are made as to fitness for any particular purpose. No
|
||||
# warranties of any kind are expressed or implied. The recipient
|
||||
# agrees to determine applicability of information provided. If this
|
||||
# file has been provided on optical media by Unicode, Inc., the sole
|
||||
# remedy for any claim will be exchange of defective media within 90
|
||||
# days of receipt.
|
||||
#
|
||||
# Unicode, Inc. hereby grants the right to freely use the information
|
||||
# supplied in this file in the creation of products supporting the
|
||||
# Unicode Standard, and to make copies of this file in any form for
|
||||
# internal or external distribution as long as this notice remains
|
||||
# attached.
|
||||
#
|
||||
# General notes:
|
||||
#
|
||||
# This table contains the data the Unicode Consortium has on how
|
||||
# KOI8-U characters map into Unicode. The underlying document is the
|
||||
# mapping described in RFC 2319. No statements are made as to whether
|
||||
# this mapping is the same as the mapping defined as "Code Page 878"
|
||||
# with some vendors.
|
||||
#
|
||||
# Format: Three tab-separated columns
|
||||
# Column #1 is the KOI8-U code (in hex as 0xXX)
|
||||
# Column #2 is the Unicode (in hex as 0xXXXX)
|
||||
# Column #3 the Unicode name (follows a comment sign, '#')
|
||||
#
|
||||
# The entries are in KOI8-U order.
|
||||
#
|
||||
# Version history
|
||||
# 1.0 version: created.
|
||||
#
|
||||
# Any comments or problems, contact <errata@unicode.org>
|
||||
# Please note that <errata@unicode.org> is an archival address;
|
||||
# notices will be checked, but do not expect an immediate response.
|
||||
#
|
||||
0x00 0x0000 # NULL
|
||||
0x01 0x0001 # START OF HEADING
|
||||
0x02 0x0002 # START OF TEXT
|
||||
0x03 0x0003 # END OF TEXT
|
||||
0x04 0x0004 # END OF TRANSMISSION
|
||||
0x05 0x0005 # ENQUIRY
|
||||
0x06 0x0006 # ACKNOWLEDGE
|
||||
0x07 0x0007 # BELL
|
||||
0x08 0x0008 # BACKSPACE
|
||||
0x09 0x0009 # HORIZONTAL TABULATION
|
||||
0x0A 0x000A # LINE FEED
|
||||
0x0B 0x000B # VERTICAL TABULATION
|
||||
0x0C 0x000C # FORM FEED
|
||||
0x0D 0x000D # CARRIAGE RETURN
|
||||
0x0E 0x000E # SHIFT OUT
|
||||
0x0F 0x000F # SHIFT IN
|
||||
0x10 0x0010 # DATA LINK ESCAPE
|
||||
0x11 0x0011 # DEVICE CONTROL ONE
|
||||
0x12 0x0012 # DEVICE CONTROL TWO
|
||||
0x13 0x0013 # DEVICE CONTROL THREE
|
||||
0x14 0x0014 # DEVICE CONTROL FOUR
|
||||
0x15 0x0015 # NEGATIVE ACKNOWLEDGE
|
||||
0x16 0x0016 # SYNCHRONOUS IDLE
|
||||
0x17 0x0017 # END OF TRANSMISSION BLOCK
|
||||
0x18 0x0018 # CANCEL
|
||||
0x19 0x0019 # END OF MEDIUM
|
||||
0x1A 0x001A # SUBSTITUTE
|
||||
0x1B 0x001B # ESCAPE
|
||||
0x1C 0x001C # FILE SEPARATOR
|
||||
0x1D 0x001D # GROUP SEPARATOR
|
||||
0x1E 0x001E # RECORD SEPARATOR
|
||||
0x1F 0x001F # UNIT SEPARATOR
|
||||
0x20 0x0020 # SPACE
|
||||
0x21 0x0021 # EXCLAMATION MARK
|
||||
0x22 0x0022 # QUOTATION MARK
|
||||
0x23 0x0023 # NUMBER SIGN
|
||||
0x24 0x0024 # DOLLAR SIGN
|
||||
0x25 0x0025 # PERCENT SIGN
|
||||
0x26 0x0026 # AMPERSAND
|
||||
0x27 0x0027 # APOSTROPHE
|
||||
0x28 0x0028 # LEFT PARENTHESIS
|
||||
0x29 0x0029 # RIGHT PARENTHESIS
|
||||
0x2A 0x002A # ASTERISK
|
||||
0x2B 0x002B # PLUS SIGN
|
||||
0x2C 0x002C # COMMA
|
||||
0x2D 0x002D # HYPHEN-MINUS
|
||||
0x2E 0x002E # FULL STOP
|
||||
0x2F 0x002F # SOLIDUS
|
||||
0x30 0x0030 # DIGIT ZERO
|
||||
0x31 0x0031 # DIGIT ONE
|
||||
0x32 0x0032 # DIGIT TWO
|
||||
0x33 0x0033 # DIGIT THREE
|
||||
0x34 0x0034 # DIGIT FOUR
|
||||
0x35 0x0035 # DIGIT FIVE
|
||||
0x36 0x0036 # DIGIT SIX
|
||||
0x37 0x0037 # DIGIT SEVEN
|
||||
0x38 0x0038 # DIGIT EIGHT
|
||||
0x39 0x0039 # DIGIT NINE
|
||||
0x3A 0x003A # COLON
|
||||
0x3B 0x003B # SEMICOLON
|
||||
0x3C 0x003C # LESS-THAN SIGN
|
||||
0x3D 0x003D # EQUALS SIGN
|
||||
0x3E 0x003E # GREATER-THAN SIGN
|
||||
0x3F 0x003F # QUESTION MARK
|
||||
0x40 0x0040 # COMMERCIAL AT
|
||||
0x41 0x0041 # LATIN CAPITAL LETTER A
|
||||
0x42 0x0042 # LATIN CAPITAL LETTER B
|
||||
0x43 0x0043 # LATIN CAPITAL LETTER C
|
||||
0x44 0x0044 # LATIN CAPITAL LETTER D
|
||||
0x45 0x0045 # LATIN CAPITAL LETTER E
|
||||
0x46 0x0046 # LATIN CAPITAL LETTER F
|
||||
0x47 0x0047 # LATIN CAPITAL LETTER G
|
||||
0x48 0x0048 # LATIN CAPITAL LETTER H
|
||||
0x49 0x0049 # LATIN CAPITAL LETTER I
|
||||
0x4A 0x004A # LATIN CAPITAL LETTER J
|
||||
0x4B 0x004B # LATIN CAPITAL LETTER K
|
||||
0x4C 0x004C # LATIN CAPITAL LETTER L
|
||||
0x4D 0x004D # LATIN CAPITAL LETTER M
|
||||
0x4E 0x004E # LATIN CAPITAL LETTER N
|
||||
0x4F 0x004F # LATIN CAPITAL LETTER O
|
||||
0x50 0x0050 # LATIN CAPITAL LETTER P
|
||||
0x51 0x0051 # LATIN CAPITAL LETTER Q
|
||||
0x52 0x0052 # LATIN CAPITAL LETTER R
|
||||
0x53 0x0053 # LATIN CAPITAL LETTER S
|
||||
0x54 0x0054 # LATIN CAPITAL LETTER T
|
||||
0x55 0x0055 # LATIN CAPITAL LETTER U
|
||||
0x56 0x0056 # LATIN CAPITAL LETTER V
|
||||
0x57 0x0057 # LATIN CAPITAL LETTER W
|
||||
0x58 0x0058 # LATIN CAPITAL LETTER X
|
||||
0x59 0x0059 # LATIN CAPITAL LETTER Y
|
||||
0x5A 0x005A # LATIN CAPITAL LETTER Z
|
||||
0x5B 0x005B # LEFT SQUARE BRACKET
|
||||
0x5C 0x005C # REVERSE SOLIDUS
|
||||
0x5D 0x005D # RIGHT SQUARE BRACKET
|
||||
0x5E 0x005E # CIRCUMFLEX ACCENT
|
||||
0x5F 0x005F # LOW LINE
|
||||
0x60 0x0060 # GRAVE ACCENT
|
||||
0x61 0x0061 # LATIN SMALL LETTER A
|
||||
0x62 0x0062 # LATIN SMALL LETTER B
|
||||
0x63 0x0063 # LATIN SMALL LETTER C
|
||||
0x64 0x0064 # LATIN SMALL LETTER D
|
||||
0x65 0x0065 # LATIN SMALL LETTER E
|
||||
0x66 0x0066 # LATIN SMALL LETTER F
|
||||
0x67 0x0067 # LATIN SMALL LETTER G
|
||||
0x68 0x0068 # LATIN SMALL LETTER H
|
||||
0x69 0x0069 # LATIN SMALL LETTER I
|
||||
0x6A 0x006A # LATIN SMALL LETTER J
|
||||
0x6B 0x006B # LATIN SMALL LETTER K
|
||||
0x6C 0x006C # LATIN SMALL LETTER L
|
||||
0x6D 0x006D # LATIN SMALL LETTER M
|
||||
0x6E 0x006E # LATIN SMALL LETTER N
|
||||
0x6F 0x006F # LATIN SMALL LETTER O
|
||||
0x70 0x0070 # LATIN SMALL LETTER P
|
||||
0x71 0x0071 # LATIN SMALL LETTER Q
|
||||
0x72 0x0072 # LATIN SMALL LETTER R
|
||||
0x73 0x0073 # LATIN SMALL LETTER S
|
||||
0x74 0x0074 # LATIN SMALL LETTER T
|
||||
0x75 0x0075 # LATIN SMALL LETTER U
|
||||
0x76 0x0076 # LATIN SMALL LETTER V
|
||||
0x77 0x0077 # LATIN SMALL LETTER W
|
||||
0x78 0x0078 # LATIN SMALL LETTER X
|
||||
0x79 0x0079 # LATIN SMALL LETTER Y
|
||||
0x7A 0x007A # LATIN SMALL LETTER Z
|
||||
0x7B 0x007B # LEFT CURLY BRACKET
|
||||
0x7C 0x007C # VERTICAL LINE
|
||||
0x7D 0x007D # RIGHT CURLY BRACKET
|
||||
0x7E 0x007E # TILDE
|
||||
0x7F 0x007F # DELETE
|
||||
0x80 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
|
||||
0x81 0x2502 # BOX DRAWINGS LIGHT VERTICAL
|
||||
0x82 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
|
||||
0x83 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
|
||||
0x84 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
|
||||
0x85 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
|
||||
0x86 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
|
||||
0x87 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
|
||||
0x88 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
|
||||
0x89 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
|
||||
0x8A 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
|
||||
0x8B 0x2580 # UPPER HALF BLOCK
|
||||
0x8C 0x2584 # LOWER HALF BLOCK
|
||||
0x8D 0x2588 # FULL BLOCK
|
||||
0x8E 0x258C # LEFT HALF BLOCK
|
||||
0x8F 0x2590 # RIGHT HALF BLOCK
|
||||
0x90 0x2591 # LIGHT SHADE
|
||||
0x91 0x2592 # MEDIUM SHADE
|
||||
0x92 0x2593 # DARK SHADE
|
||||
0x93 0x2320 # TOP HALF INTEGRAL
|
||||
0x94 0x25A0 # BLACK SQUARE
|
||||
0x95 0x2219 # BULLET OPERATOR
|
||||
0x96 0x221A # SQUARE ROOT
|
||||
0x97 0x2248 # ALMOST EQUAL TO
|
||||
0x98 0x2264 # LESS-THAN OR EQUAL TO
|
||||
0x99 0x2265 # GREATER-THAN OR EQUAL TO
|
||||
0x9A 0x00A0 # NO-BREAK SPACE
|
||||
0x9B 0x2321 # BOTTOM HALF INTEGRAL
|
||||
0x9C 0x00B0 # DEGREE SIGN
|
||||
0x9D 0x00B2 # SUPERSCRIPT TWO
|
||||
0x9E 0x00B7 # MIDDLE DOT
|
||||
0x9F 0x00F7 # DIVISION SIGN
|
||||
0xA0 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
|
||||
0xA1 0x2551 # BOX DRAWINGS DOUBLE VERTICAL
|
||||
0xA2 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
|
||||
0xA3 0x0451 # CYRILLIC SMALL LETTER IO
|
||||
0xA4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE
|
||||
0xA5 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
|
||||
0xA6 0x0456 # CYRILLIC SMALL LETTER BELORUSSIAN-UKRAINIAN I
|
||||
0xA7 0x0457 # CYRILLIC SMALL LETTER YI (UKRAINIAN)
|
||||
0xA8 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
|
||||
0xA9 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
|
||||
0xAA 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
|
||||
0xAB 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT
|
||||
0xAC 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
|
||||
0xAD 0x0491 # CYRILLIC SMALL LETTER UKRAINIAN GHE WITH UPTURN
|
||||
0xAE 0x255D # BOX DRAWINGS DOUBLE UP AND LEFT
|
||||
0xAF 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
|
||||
0xB0 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
|
||||
0xB1 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
|
||||
0xB2 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
|
||||
0xB3 0x0401 # CYRILLIC CAPITAL LETTER IO
|
||||
0xB4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
|
||||
0xB5 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
|
||||
0xB6 0x0406 # CYRILLIC CAPITAL LETTER BELORUSSIAN-UKRAINIAN I
|
||||
0xB7 0x0407 # CYRILLIC CAPITAL LETTER YI (UKRAINIAN)
|
||||
0xB8 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
|
||||
0xB9 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
|
||||
0xBA 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
|
||||
0xBB 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
|
||||
0xBC 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
|
||||
0xBD 0x0490 # CYRILLIC CAPITAL LETTER UKRAINIAN GHE WITH UPTURN
|
||||
0xBD 0x256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
|
||||
0xBE 0x256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
|
||||
0xBF 0x00A9 # COPYRIGHT SIGN
|
||||
0xC0 0x044E # CYRILLIC SMALL LETTER YU
|
||||
0xC1 0x0430 # CYRILLIC SMALL LETTER A
|
||||
0xC2 0x0431 # CYRILLIC SMALL LETTER BE
|
||||
0xC3 0x0446 # CYRILLIC SMALL LETTER TSE
|
||||
0xC4 0x0434 # CYRILLIC SMALL LETTER DE
|
||||
0xC5 0x0435 # CYRILLIC SMALL LETTER IE
|
||||
0xC6 0x0444 # CYRILLIC SMALL LETTER EF
|
||||
0xC7 0x0433 # CYRILLIC SMALL LETTER GHE
|
||||
0xC8 0x0445 # CYRILLIC SMALL LETTER HA
|
||||
0xC9 0x0438 # CYRILLIC SMALL LETTER I
|
||||
0xCA 0x0439 # CYRILLIC SMALL LETTER SHORT I
|
||||
0xCB 0x043A # CYRILLIC SMALL LETTER KA
|
||||
0xCC 0x043B # CYRILLIC SMALL LETTER EL
|
||||
0xCD 0x043C # CYRILLIC SMALL LETTER EM
|
||||
0xCE 0x043D # CYRILLIC SMALL LETTER EN
|
||||
0xCF 0x043E # CYRILLIC SMALL LETTER O
|
||||
0xD0 0x043F # CYRILLIC SMALL LETTER PE
|
||||
0xD1 0x044F # CYRILLIC SMALL LETTER YA
|
||||
0xD2 0x0440 # CYRILLIC SMALL LETTER ER
|
||||
0xD3 0x0441 # CYRILLIC SMALL LETTER ES
|
||||
0xD4 0x0442 # CYRILLIC SMALL LETTER TE
|
||||
0xD5 0x0443 # CYRILLIC SMALL LETTER U
|
||||
0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE
|
||||
0xD7 0x0432 # CYRILLIC SMALL LETTER VE
|
||||
0xD8 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
|
||||
0xD9 0x044B # CYRILLIC SMALL LETTER YERU
|
||||
0xDA 0x0437 # CYRILLIC SMALL LETTER ZE
|
||||
0xDB 0x0448 # CYRILLIC SMALL LETTER SHA
|
||||
0xDC 0x044D # CYRILLIC SMALL LETTER E
|
||||
0xDD 0x0449 # CYRILLIC SMALL LETTER SHCHA
|
||||
0xDE 0x0447 # CYRILLIC SMALL LETTER CHE
|
||||
0xDF 0x044A # CYRILLIC SMALL LETTER HARD SIGN
|
||||
0xE0 0x042E # CYRILLIC CAPITAL LETTER YU
|
||||
0xE1 0x0410 # CYRILLIC CAPITAL LETTER A
|
||||
0xE2 0x0411 # CYRILLIC CAPITAL LETTER BE
|
||||
0xE3 0x0426 # CYRILLIC CAPITAL LETTER TSE
|
||||
0xE4 0x0414 # CYRILLIC CAPITAL LETTER DE
|
||||
0xE5 0x0415 # CYRILLIC CAPITAL LETTER IE
|
||||
0xE6 0x0424 # CYRILLIC CAPITAL LETTER EF
|
||||
0xE7 0x0413 # CYRILLIC CAPITAL LETTER GHE
|
||||
0xE8 0x0425 # CYRILLIC CAPITAL LETTER HA
|
||||
0xE9 0x0418 # CYRILLIC CAPITAL LETTER I
|
||||
0xEA 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
|
||||
0xEB 0x041A # CYRILLIC CAPITAL LETTER KA
|
||||
0xEC 0x041B # CYRILLIC CAPITAL LETTER EL
|
||||
0xED 0x041C # CYRILLIC CAPITAL LETTER EM
|
||||
0xEE 0x041D # CYRILLIC CAPITAL LETTER EN
|
||||
0xEF 0x041E # CYRILLIC CAPITAL LETTER O
|
||||
0xF0 0x041F # CYRILLIC CAPITAL LETTER PE
|
||||
0xF1 0x042F # CYRILLIC CAPITAL LETTER YA
|
||||
0xF2 0x0420 # CYRILLIC CAPITAL LETTER ER
|
||||
0xF3 0x0421 # CYRILLIC CAPITAL LETTER ES
|
||||
0xF4 0x0422 # CYRILLIC CAPITAL LETTER TE
|
||||
0xF5 0x0423 # CYRILLIC CAPITAL LETTER U
|
||||
0xF6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
|
||||
0xF7 0x0412 # CYRILLIC CAPITAL LETTER VE
|
||||
0xF8 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
|
||||
0xF9 0x042B # CYRILLIC CAPITAL LETTER YERU
|
||||
0xFA 0x0417 # CYRILLIC CAPITAL LETTER ZE
|
||||
0xFB 0x0428 # CYRILLIC CAPITAL LETTER SHA
|
||||
0xFC 0x042D # CYRILLIC CAPITAL LETTER E
|
||||
0xFD 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
|
||||
0xFE 0x0427 # CYRILLIC CAPITAL LETTER CHE
|
||||
0xFF 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
|
1
sys/lib/antiword/roman.txt
Executable file
1
sys/lib/antiword/roman.txt
Executable file
File diff suppressed because one or more lines are too long
406
sys/lib/astar/a100i.cp
Executable file
406
sys/lib/astar/a100i.cp
Executable file
|
@ -0,0 +1,406 @@
|
|||
:020000020040BC
|
||||
:20000000CF5250BA22FFB80080EF585ACF0000FFFFFAB8FD00BA28FFEF2EFF2E0D009C5813
|
||||
:20002000250002FAC3558BEC9C580B4604509D5DC300C8020000C7060007401FC706EA0600
|
||||
:200040000040C706EC060000C70606070080803E0000007418C7060400000AC7060600004F
|
||||
:2000600008C70608000009C7060007204EA106072BC9890E0C07A30E07890E0807A30A07FA
|
||||
:20008000894EFE6B5EFE4881C390018B078B0E0607894F02FF46FE837EFE107CE6C41E08F7
|
||||
:2000A0000726C747020400C41E080726C7070000E85D1AC41E080726C7470A4401C41E085D
|
||||
:2000C0000726C7470E2000C41E080726C747104000C70604070000E88C08C41E080726C710
|
||||
:2000E00047080C002BC08B160600EEE88824C9C3C8180000568B5E048B47048B5706894655
|
||||
:20010000FA8956FC8B473A8B573C8946E88956EA8B078946F0C746F20000EB03FF46F28368
|
||||
:200120007EF21A7D17C45EFA268B078B5EF28BCBD1E303D9D1E339870A0075E0837EF21A2C
|
||||
:200140007506B801005EC9C3C45EFA268A470224038846F826F647030274070C048846F8C6
|
||||
:20016000EB0B268A47022404D0E00846F8268B47028BC8A80874312530003D3000741D7706
|
||||
:200180002B0AC074112C1074072C107415EB1D90804EF840EB16804EF8C0EB10804EF82063
|
||||
:2001A000EB0A804EF8A0EB04804EF810C45EFA26F6470301750A268A47388B5E04884738FA
|
||||
:2001C000C45EFA268A470224C03C807507C646F410EB1590268A470224C03CC07506C646EE
|
||||
:2001E000F408EB04C646F40026F64704087404804EF4028B5EF0C687A600FFC41E08072687
|
||||
:20020000F64715017406C646FEF0EB04C646FED0C45EFA26F64704107404804EFE098B5E85
|
||||
:20022000F0C687C600FF8B5E04C747360000E8EDFD8946F68B5E048A4746C45EE8268887B1
|
||||
:20024000D000B80100BA60FFEFB800C0BA66FFEFC746EC0000C45EE826807F0A00740DBA1A
|
||||
:2002600060FFED0BC075EEC746EC010026C6470A80837EEC00740FFF76F6E8A8FD83C4029C
|
||||
:20028000B80B005EC9C38A46F8C45EE826884710268A471224E10A46F4268847128A46FEB3
|
||||
:2002A0002688472AC436080726F6441501740BC45EE826C6472CF0EB0990C45EE826C64707
|
||||
:2002C0002CD0B80100BA60FFEFB800C0BA66FFEFC746EC0000C45EE826807F0A00740DBA6E
|
||||
:2002E00060FFED0BC075EEC746EC010026C6470A46837EEC007403E97DFF8B5EF28BC3D144
|
||||
:20030000E303D8D1E38A870C00C476E8268884F8008A870C00268884EC008A870D002688FB
|
||||
:2003200084F0008A870D00268884E4008A870E0026884442FF76F6E8EBFC83C4028B5E0452
|
||||
:200340008A470B24033C03747AE8D2FC8946F68B5E048A4746C476E8268884D0008B470AEE
|
||||
:200360008BC82500023D01001AC0240281E1000183F9011AC980E1080AC880C910884EEEAA
|
||||
:20038000B80100BA60FFEFB800C0BA66FFEFC746EC0000C45EE826807F0A00740DBA60FF4A
|
||||
:2003A000ED0BC075EEC746EC01008A46EE2688470AFF76F6E86EFC83C402837EEC00740301
|
||||
:2003C000E9BDFEC45EFA268B078B760489440C268B470289440E2BC05EC9C390C832000093
|
||||
:2003E000568B5E048B47048B57068946F68956F88B473A8B573C8946CE8956D08B07894689
|
||||
:20040000E02BC08946FE8946E68946DE8946D88946F489470AC476F6268944282689442A36
|
||||
:2004200026894430268B0439470C744CC746E80000EB0490FF46E8837EE81A7D17C45EF648
|
||||
:20044000268B078B5EE88BCBD1E303D9D1E339870A0075E0837EE81A7506B801005EC9C339
|
||||
:200460008B46E88946FCC45EF6268B078B5E0489470CB801008946FEC45EF6268B47028B3C
|
||||
:200480005E048BC833470EA93F02746C8BC180E103884EEEF6C402740980C904884EEEEBAC
|
||||
:2004A0000F908B5EF6268A47022404D0E00846EE8B5EF6268B47028BC8A8087431253000DB
|
||||
:2004C0003D3000741D772B0AC074112C1074072C107415EB1D90804EEE40EB16804EEEC0A0
|
||||
:2004E000EB10804EEE20EB0A804EEEA0EB04804EEE10B801008946E68B5EF626F647030165
|
||||
:20050000750A268A47388B5E04884738C45EF6268A47398B7604884439268B470289440E12
|
||||
:20052000268B470489441056E83D0F83C4020BC07406B80B005EC9C38B5E048A4710C0E0AF
|
||||
:20054000068846EAC45EF6268A4F0280E1C080F98075070C108846EAEB0E268A470224C084
|
||||
:200560003CC07504804EEA0826F64704087404804EEA028A46EA8B5EE03887A600740A88B7
|
||||
:2005800087A600B801008946DEC41E080726F64715017406C646FAF0EB04C646FAD0C45E07
|
||||
:2005A000F626F64704107404804EFA098A46FA8B5EE03887C600740A8887C600B8010089D8
|
||||
:2005C00046F4C45EF6268B472C268B4F048BD1F6C1807507F6C25074020C0250FF7604E855
|
||||
:2005E000721383C404C45EF6268B470A8B760489441E894420F6441044742C268B47108975
|
||||
:20060000442C268B471289442E837C2C0075180BC07514268B47062D200089442C268B471D
|
||||
:20062000062D400089442EC45EF6268B470C8B7604894430268B470E8B5EE0D1E33987D615
|
||||
:200640000074370BC0750DC744241100C744261300EB1790C45EF6268A470F2AE48B76045B
|
||||
:20066000894424268A470E894426C45EF6268B470E8B5EE0D1E38987D600C45EF6268B4700
|
||||
:20068000348B5EE0D1E33987F600743D0BC075108B5E04C747281100C7472A1300EB1790E1
|
||||
:2006A0008B5EF6268A47352AE48B7604894428268A473489442AC45EF6268B47348B5EE0F8
|
||||
:2006C000D1E38987F600B801008A46EA24403C01F51AC024308846E28B5EE03A87B60074C5
|
||||
:2006E0000A8887B600B801008946D88B5E04C747360000E828F98946EC8B5E048A4746C40E
|
||||
:200700005ECE268887D000268A87D8008846E4B80100BA60FFEFB800C0BA66FFEFC746D6BD
|
||||
:200720000000C45ECE26807F0A00740DBA60FFED0BC075EEC746D6010026C6470A80837E43
|
||||
:20074000D600740CFF76ECE8DBF883C402E9E2FD837EE601750A8A46EEC45ECE26884710FC
|
||||
:20076000837EDE017510C45ECE268A471224210A46EA26884712837ED8017512C45ECE261E
|
||||
:200780008A471424C80A46E20C0826884714837EF401750A8A46FAC45ECE2688472AC41E09
|
||||
:2007A000080726F6471501740BC45ECE26C6472CF0EB0990C45ECE26C6472CD0837EE60168
|
||||
:2007C000740C837EDE017406837ED8017555C746E84000837EE6017505C746E84200837ECC
|
||||
:2007E000DE017504804EE804837ED8017504804EE808B80100BA60FFEFB800C0BA66FFEF8F
|
||||
:20080000C746D60000C45ECE26807F0A00740DBA60FFED0BC075EEC746D601008A46E8265F
|
||||
:2008200088470A837ED6007403E918FF837EFE01753A8B5EFC8BC3D1E303D8D1E38A870C4F
|
||||
:2008400000C476CE268884F8008A870C00268884EC008A870D00268884F0008A870D0026A7
|
||||
:200860008884E4008A870E0026884442C45ECE26804F0C108B76048A4424268847348A4446
|
||||
:2008800026268847368A4428268847388A442A2688473AFF76ECE88CF783C4028A440B24AB
|
||||
:2008A000033C037477E876F78946EC8A4446C45ECE268887D0008B440A8BC82500013D0162
|
||||
:2008C000001AC0240881E1000283F9011AC980E1020AC880C910884EDCB80100BA60FFEF4D
|
||||
:2008E000B800C0BA66FFEFC746D60000C45ECE26807F0A00740DBA60FFED0BC075EEC746AE
|
||||
:20090000D601008A46DC2688470AFF76ECE815F783C402837ED6007403E916FC8A46E4C0FA
|
||||
:20092000E8062AE48946D2C41E080726F647150174148A4EE480E12080F901F51BC983E134
|
||||
:20094000040BC18946D28A46E424103C01F51BC02508000946D28B46D2C45EF62689472E04
|
||||
:200960002BC05EC9C390C80E00005756FAE82A09E8F307833E0207017506E8011EE8B61D90
|
||||
:20098000A10007BA62FFEFB80100BA60FFEFB800C0BA66FFEFBA60FFED0BC075F82BFFE90D
|
||||
:2009A00094008BDFC1E302C49FF006895EF48C46F626C687D00000B80100BA60FFEFB800DB
|
||||
:2009C000C0BA66FFEFC45EF426807F0A007408BA60FFED0BC075EE26C68780000026C6472E
|
||||
:2009E0000A81B80100BA60FFEFB800C0BA66FFEFBA60FFED0BC075F8B80100EFB800C0BA0D
|
||||
:200A000066FFEFC45EF42680BF8000007508BA60FFED0BC075ED2680BF80004373080653DB
|
||||
:200A2000E8830183C404C45EF426C68796000026C687FC000A47A1EE069933C22BC2C1F857
|
||||
:200A40000233C22BC23BC77E03E956FFBB03008EC32BDB26C7070C2026C747024000BB0487
|
||||
:200A60000026C707BE1C26C747024000BB080026C707AE1B26C7470240002BFFBE8C01EBDC
|
||||
:200A80004490BA60FFED0BC07508C746F20100EB0B90C45EF426807F0A0075E626C6470AD1
|
||||
:200AA0001A837EF200740DC45EFC26C747160B0080640B7FC45EF426C6470C9326804F12D8
|
||||
:200AC000204783C648393EEE067F03E9C2008B44048B54068946FC8956FE8B4C3A8B5C3CF2
|
||||
:200AE000894EF4895EF68EC28BD826C7078025C45EFC26C74702030026C74704000026C786
|
||||
:200B00004738FF00A1E00626894706A1E606268947088A4446C45EF4268887D0008BC7C008
|
||||
:200B2000E0032688473026C6471408B80100BA60FFEFB800C0BA66FFEFC746F20000C45EF6
|
||||
:200B4000F426807F0A00740DBA60FFED0BC075EEC746F2010026C6470A48C45EF426C687AF
|
||||
:200B6000D8000126C687DA0002C45EFC26C747140D0056E86E0283C402B80100BA60FFEF22
|
||||
:200B8000B800C0BA66FFEFC746F20000E903FF90B88C07BA28FFEFFBC41E080726C7470218
|
||||
:200BA00000005E5FC9C3C81E00008B46048B560605DA008946F08956F28B460405DC00899C
|
||||
:200BC00046EC8956EE8B460405DE008946FC8956FE8B460405CC008946E68956E88B4604BF
|
||||
:200BE00005D8008946F48956F68B460405E8008946E28956E48B460405D0008946F88956FA
|
||||
:200C0000FAC45E0426C687800000C45EE626C60701C45EF826C60703C45EE226C60700C4FA
|
||||
:200C20005EF826C60702C45EE226C60700C45EF826C60701C45EE226C60700C45EF826C667
|
||||
:200C40000700C45EE226C60700C45EF826C60704C45EF026C607A8C45EEC26C60700C45EB5
|
||||
:200C6000FC26C60700C45EF426C60701C45EE626C60703C45EE626C60703C45EE626C60784
|
||||
:200C800003C45EF826C60704C45EF026C607A8C45EEC26C60720C45EFC26C60700C45EE659
|
||||
:200CA00026C60703C45EE626C60703C45EE626C60703C45EF426C60700C746EA00008E466E
|
||||
:200CC000E88B5EE626C60703FF46EA837EEA0F7CF0C45EF826C60704C45EF026C60700C4F8
|
||||
:200CE0005EEC26C60720C45EFC26C60703C45EF426C60701C45EE626C60703C45EE626C687
|
||||
:200D00000703C45EE626C60703C45EE626C60703C45EF426C60700C45EE626C60700C45EA7
|
||||
:200D2000F826C60700B80100BA60FFEFB800C0BA66FFEFEB08BA60FFED0BC0740BC45E0418
|
||||
:200D40002680BF80000074EDC9C3C41E080726833F0074F6E84F00EBF190C41E080726C7FD
|
||||
:200D600047020000C390C806000056E8B0F28946FA8B5E048A4746C4773A268884D000C421
|
||||
:200D8000773A26C6443C00C4773A26C6443E00C45F3A26C6473E04FF76FAE888F283C40267
|
||||
:200DA0002BC05EC9C390C41E0807268B070BC0740B4874144874172DFE037518C41E08078C
|
||||
:200DC00026C747020000EB12E88FFFEB0D90E840F2EB079026C747020300C41E080726C72F
|
||||
:200DE000070000C3C8060000568B5E048B47048B57068946FA8956FC80670B7FC476FA26EB
|
||||
:200E0000F6441401741C53E8E6F283C4020BC07411C45EFA2689471626C7471400005EC9B0
|
||||
:200E2000C390C45EFA26F64714037438FF7604E8AA0083C4020BC075D88B5E048B4714C41A
|
||||
:200E400076FA262B44062B47123DFFFF750F8B471A262B44082B47183DFFFF7407E806038A
|
||||
:200E60000BC075ADC45EFA26F6471504740DFF7604E868F583C4020BC07596C45EFA26F657
|
||||
:200E80004714017410FF7604E8DBFE83C4020BC07403E97CFFC45EFA26F64714FC7410FF37
|
||||
:200EA0007604E8350783C4020BC07403E962FFC45EFA26F6471502740B8B5E04FF37E87B24
|
||||
:200EC0001983C4028B5E04804F0B802BC0C45EFA26894716268947145EC9C390C81A0000F0
|
||||
:200EE000568B5E048B47048B57068946FC8956FE8B473A8B573C8946E88956EAC7470A0087
|
||||
:200F0000008B078946F42BC0C476FC268944282689442A26894430268B4404894710268A77
|
||||
:200F2000443988473953E83F0583C4020BC07406B80B005EC9C3C45EFC268B472C268B4F30
|
||||
:200F4000048BD1F6C1807507F6C25074020C0250FF7604E8FE0983C404C45EFC268B470ACF
|
||||
:200F60008B760489441E89442026837F0E00750CC744241100C744261300EB16C45EFC2614
|
||||
:200F80008A470F2AE48B7604894424268A470E8944268B5EF4D1E3C787D600FFFFC45EFCA4
|
||||
:200FA00026837F3400750F8B5E04C747281100C7472A1300EB13268A47352AE48B7604890C
|
||||
:200FC0004428268A473489442A8B5EF4D1E3C787F600FFFF8B5E048A4710C0E0068846F678
|
||||
:200FE00024403C01F51AC02430B1FF8B76F4888CA600888CB600C7473600008946E6E81D06
|
||||
:20100000F08946F88B5E048A4746C476E8268884D000268A84D8008846F026804C0C108A8F
|
||||
:201020004724268844348A4726268844368A4728268844388A472A2688443A268A4412248C
|
||||
:201040003F0A46F626884412268A441424C80A46E60C0826884414B80100BA60FFEFB8004A
|
||||
:20106000C0BA66FFEFC746EE0000C45EE826807F0A00740DBA60FFED0BC075EEC746EE01BD
|
||||
:201080000026C6470A4CFF76F8E899EF83C402837EEE007403E998FE8A46F0C0E8062AE440
|
||||
:2010A0008946ECC41E080726F647150174148A4EF080E12080F901F51BC983E1040BC1892A
|
||||
:2010C00046EC8A46F024103C01F51BC02508000946EC8B46ECC45EFC2689472E8B7604F67B
|
||||
:2010E000441044742C268B471089442C268B471289442E837C2C0075180BC07514268B47AE
|
||||
:20110000062D200089442C268B47062D400089442EC45EFC268B470C8B5E048947302BC023
|
||||
:201120005EC9C390C80200008B46042BD20306D80613D23B16EC067F297C063B06EA0677B8
|
||||
:2011400021A1D8068946FEA1EA068B4E04010ED8062B06D806C41E0807268947068B46FEFC
|
||||
:20116000C9C32BC0C9C3C80C000057562BFFBE8C012BC08946FA8946F8EB2490C45C0489AF
|
||||
:201180005EF48C46F6268B47062BD20146F81156FA268B47080146F81156FA4783C64839E9
|
||||
:2011A0003EEE067FD7833EEE06087506B8E001EB0490B8E003054000A3D8068B0EEA068BE2
|
||||
:2011C00016EC062BC883DA003B56FA7F0F7C053B4EF87308B804005E5FC9C3902BFFBE8C18
|
||||
:2011E00001EB31900346FC4889441A8B441889441C8B4418C45EF42689471C8B441A268957
|
||||
:20120000471E8B441C268947248B441C268947264783C648393EEE067E7AC45C04895EF423
|
||||
:201220008C46F6268B47068946FE268B4F08894EFC50E8EFFE83C4028944120BC07495031C
|
||||
:2012400046FE488944148B44128944168B441E89442080640A7BC45EF426806730CF8B4429
|
||||
:2012600012268947188B44142689471A8B4416268947208B441626894722FF76FCE8A4FE68
|
||||
:2012800083C4028944180BC07403E957FFB805005E5FC9C32BC05E5FC9C3C80E00005756E2
|
||||
:2012A000B8ED07BA28FFEFBA26FFED8946F8B8DD07BA28FFEFBA26FFED8946F4B8BD07BAEE
|
||||
:2012C00028FFEFBA26FFED8946F2C746F60000EB0490FF46F6837EF6077D278B46F88B5E5A
|
||||
:2012E000F68BCBD1E303D9C1E30239870C0675E28B46F439870E0675D98B46F239871006C3
|
||||
:2013000075D08B5EF68BC3D1E303D8C1E3028B871206A3EE06C43608072689440C8B871635
|
||||
:2013200006C4360807268944148B871406A3E2068B8F16068BD183E10483F9011BC94189BB
|
||||
:201340000E020781E2800083FA011BC941894EFA48750BB801008B16040083C206EF833EFE
|
||||
:20136000EE06087505B87C06EB03B86C068946FE833E020701740583F9017505C746FE840E
|
||||
:2013800006C746F60000EB378B5EFE8B76F68A202AC0BA00906BFE488985C6018995C801F9
|
||||
:2013A0008A2005C6008985CA018995CC018A202AC005C4008985CE018995D001FF46F6A1EF
|
||||
:2013C000EE063946F67CC13D08007506B8AC06EB0490B88C068946FC833E020701740683E1
|
||||
:2013E0007EFA017505C746FCBC06C746F60000EB16908B5EF6D1E38B76FC8B006B5EF64879
|
||||
:201400008987D201FF46F6A1EE063946F67CE3C746F600008A66F62AC0BA00908B5EF6C188
|
||||
:20142000E3028987F0068997F206FF46F6837EF6047CE1833EEE0608750CA1EA062D2002F8
|
||||
:20144000C1E804EB0A90A1EA062D2004C1E8058946F824F0A3E606A3E006833E0207017597
|
||||
:2014600003E8C8135E5FC9C3C8140000C746FA0000833EE206017540833E0207007539C7DC
|
||||
:2014800046F20000C746F88C01EB1B908B5EF8F6471120740A8BC8B80100D3E00946FAFF18
|
||||
:2014A00046F28346F8488B46F23906EE067FDD8B46FA3906CC0675042BC0C9C3A3CC068BCD
|
||||
:2014C0005E048B47048B57068946FC8956FE8B473A8B573C8946EC8956EEE841EB8946F6B9
|
||||
:2014E0008B5E048A4746C45EEC268887D000B80100BA60FFEFB800C0BA66FFEFC746F00091
|
||||
:2015000000C45EEC26807F0A00740DBA60FFED0BC075EEC746F0010026C6470A11C45EFC6F
|
||||
:2015200026804F30018B5E048A670B2500028946F4804F0B02FF76F6E8EAEA83C402837E65
|
||||
:20154000F0007406B80B00C9C3908A46FA2AE48B16040083C208EE833EEE0610750B8A4675
|
||||
:20156000FB8B16040083C20AEEF646F5027403E946FFE8A9EA8946F68B5E048A4746C45E50
|
||||
:20158000EC268887D000B80100BA60FFEFB800C0BA66FFEFC746F00000C45EEC26807F0AD9
|
||||
:2015A00000740DBA60FFED0BC075EEC746F0010026C6470A12C45EFC26806730FE8B5E04E3
|
||||
:2015C00080670BFDFF76F6E85BEA83C402837EF0007503E9E2FEE96BFF90C80C0000568B71
|
||||
:2015E0005E048B47048B57068946FC8956FE8B4F3A8B773C894EF48976F68EC28BF026F62A
|
||||
:201600004414047503E99700E813EA8946FA8B5E048B47128947168B471E8947208B471649
|
||||
:20162000C476FC268944208B4716268944228A4746C45EF4268887D000B80100BA60FFEF71
|
||||
:20164000B800C0BA66FFEFC746F80000C45EF426807F0A00740DBA60FFED0BC075EEC746F8
|
||||
:20166000F8010026C6470A118B5E04F6470B027525B80100BA60FFEFB800C0BA66FFEFC744
|
||||
:2016800046F80000C45EF426807F0A007403E9DB0026C6470A12FF76FAE889E983C402C467
|
||||
:2016A0005EFC26F64714087503E9EA00E86FE98946FA8B5E048B471889471CC476FC268B53
|
||||
:2016C00044262639442474318B4702C43608072609441A8B4702C43608072609441A8B478E
|
||||
:2016E00002C4360807260944048B4702C41E080726094704800E0407028B5E048B471CC4EF
|
||||
:2017000076FC268944248B471C268944268A4746C45EF4268887D000B80100BA60FFEFB88E
|
||||
:2017200000C0BA66FFEFC746F80000C45EF426807F0A00740DBA60FFED0BC075EEC746F8D7
|
||||
:20174000010026C6470A82FF76FAE8D8E883C4028B5E04F64710207430833EE2060175202C
|
||||
:20176000C45EF426C687DA0000EB1E90BA60FFED0BC07403E90DFFC746F80100E912FF90A0
|
||||
:20178000C45EF426C687D80000837EF8007407B80B005EC9C390C45EFC26F64714107461BD
|
||||
:2017A000E87BE88946FA8B5E048A4746C45EF4268887D000B80100BA60FFEFB800C0BA669D
|
||||
:2017C000FFEFC746F80000C45EF426807F0A00740DBA60FFED0BC075EEC746F8010026C62A
|
||||
:2017E000470A12C45EFC26806730FE8B5E0480670BFDFF76FAE82DE883C402837EF800752E
|
||||
:201800008EC45EFC26F64714207464E810E88946FA8B5E048A4746C45EF4268887D000B82D
|
||||
:201820000100BA60FFEFB800C0BA66FFEFC746F80000C45EF426807F0A00740DBA60FFED48
|
||||
:201840000BC075EEC746F8010026C6470A11C45EFC26804F30018B5E04804F0B02FF76FA8A
|
||||
:20186000E8C2E783C402837EF8007403E920FFC45EFC26F64714407464E8A2E78946FA8BA4
|
||||
:201880005E048A4746C45EF4268887D000B80100BA60FFEFB800C0BA66FFEFC746F8000068
|
||||
:2018A000C45EF426807F0A00740DBA60FFED0BC075EEC746F8010026C6470A18C45EFC268F
|
||||
:2018C000806730FD8B5E0480670BFEFF76FAE854E783C402837EF8007403E9B2FEC45EFC15
|
||||
:2018E00026F64714807468E834E78946FA8B5E048A4746C45EF4268887D000B80100BA6057
|
||||
:20190000FFEFB800C0BA66FFEFC746F80000C45EF426807F0A00740DBA60FFED0BC075EE54
|
||||
:20192000C746F8010026C6470A14C45EFC26804F30028B5E04804F0B0180670AFEFF76FAE5
|
||||
:20194000E8E2E683C402837EF8007403E940FE2BC05EC9C3C80A0000568B76048B443A8B61
|
||||
:20196000543C8946F68956F8E8B3E68946FA8A4446C45EF6268887D000833EE20601751A87
|
||||
:201980008A46062501003D01001AC0FEC0268887D8008A4606250200EB1B8A460625020068
|
||||
:2019A0003D01001AC0FEC0C45EF6268887D8008A46062501003D0100F51AC02402268887C8
|
||||
:2019C000DA00F6460610741A837C34007514C744320100C45EF626F6470C06750526804F57
|
||||
:2019E0000C02FF76FAE83DE683C4028B46068944225EC9C3C80E0000568B76048B44048BD7
|
||||
:201A000054068946FC8956FE8B4C3A8B5C3C894EF2895EF48EC28BD88B4C16262B4F222664
|
||||
:201A20003B4F06760426034F068BC139442E7303E9D900F6440A047503E98C00E8DFE58985
|
||||
:201A400046F8F6441020741B833EE20601750BC45EF226C687DA0002EB09C45EF226C68747
|
||||
:201A6000D800018A4446C45EF2268887D000B80100BA60FFEFB800C0BA66FFEFC746F60016
|
||||
:201A800000C45EF226807F0A00740DBA60FFED0BC075EEC746F6010026C6470A2380640AFC
|
||||
:201AA000FBC45EFC26806730EFFF76F8E876E583C402837EF6007410C45EFC26C747160BFA
|
||||
:201AC0000080640B7F5EC9C3F6440A80743EE84DE58946F88A4446C45EF2268887D00083A7
|
||||
:201AE0003EE20601750826C687DA0002EB09C45EF226C687D8000180640A7FC45EFC26806E
|
||||
:201B00006730DFFF76F8E81CE583C4025EC9C3906AFFFF360607E84B0083C4046AFFFF366F
|
||||
:201B20000607E85F0083C4040BC0740DC41E080726C747020200E811F26A00FF360607E812
|
||||
:201B4000220083C4046A00FF360607E8360083C4040BC0740DC41E080726C747020200E8A6
|
||||
:201B6000E8F1C390558BEC56BE04008B46068BDE8B4E048EC126890746463936EA0675EBE8
|
||||
:201B80005EC9C390558BEC56BE04008B46068BDE8B4E048EC12639077406B801005EC9C3F8
|
||||
:201BA00046463936EA0675E32BC05EC9C390601E068BEC83EC10B8C6028ED8FC8B1604007C
|
||||
:201BC00083C204EC2AE48946F43DFF007503E9E0008A5EF483E3788BC3C1E30303D881C3B4
|
||||
:201BE0008C01895EFE8B473A8B573C8946F08956F28B4F048B7706894EFA8976FC8EC28B2C
|
||||
:201C0000F8268A85D8002AE48946F825C000C1F8068946F6F64710087418A801740C8EC623
|
||||
:201C20008BD926806730F7EB0990C45EFA26804F30088B5EFEF6471080746DC41E08072693
|
||||
:201C4000F647150174128A46F82520003D0100F51BC02504000946F68A46F82510003D01E7
|
||||
:201C600000F51BC02508000946F68B46F6C45EFA2689472E8B5EFE8B4702C4360807260928
|
||||
:201C8000441C8B4702C43608072609441C8B4702C4360807260944048B4702C41E08072639
|
||||
:201CA000094704800E040702C45EF026C687C00000B80080BA22FFEF8BE5071F61CF601EAA
|
||||
:201CC000068BEC83EC24B8C6028ED8FC8B1604004242EC2AE48946E23DFF007503E91F037F
|
||||
:201CE0008A5EE283E3788BC3C1E30303D881C38C01895EFA8B473A8B573C8946DC8956DE28
|
||||
:201D00008B4F3E8B7740894EE68976E88B4F048B7706894EF48976F6837F320074788EC2AF
|
||||
:201D20008BF026804C1220C747340100C747320000F6471020741C833EE20601750CC45E37
|
||||
:201D4000DC26C687DA0002EB0A90C45EDC26C687D80001C45EE626C6070026C6078126C62E
|
||||
:201D6000070026C6078226C607FA26C6078226C607FA26C6078226C607FA26C6078226C6D5
|
||||
:201D800007FA26C6078226C607AC26C6070026C60783E9610290837F34007447C45EDC26D4
|
||||
:201DA000F6470C04740526806712DF8B5EFAF6471020741B833EE20601750BC45EDC26C66C
|
||||
:201DC00087DA0000EB09C45EDC26C687D80000C45EF42680672CEF8B5EFA806722EFC7473E
|
||||
:201DE000340000C45EF4268B47248946F2268B4F26894EEE268B57088956E48BD82BC18926
|
||||
:201E000046F83BD9730503D08956F8837EF8007503E94601C45EDC26F6470C02741C268008
|
||||
:201E20006712DFC476F426804C3601C45EDC268A470C24FD0C042688470C8B5EFAF6471090
|
||||
:201E400020741C833EE20601750CC45EDC26C687DA0002EB0A90C45EDC26C687D800018B00
|
||||
:201E60005EFA8B471A2B46EE408946EC8B4EF883E90C1BD223CA83C10C894EE02BC11BD2C1
|
||||
:201E800023C203C18946F02BC8894EEAA10C078B160E070346EE8946FC8956FE1E8B46F0FE
|
||||
:201EA000C47EE6C576FCFCA44874034FEBF91F837EEA0074288B5EFA8B471803060C078B17
|
||||
:201EC000160E078946FC8956FE1E8B46EAC47EE6C576FCFCA44874044FEBF9901F8B5EFAD2
|
||||
:201EE0008B471A8B4EE0014EEE3946EE76098B46EE2B46E48946EE8B46EE89471CC45EF482
|
||||
:201F0000268947262639472474188B46F82639470C7203E9E0002B46E0263B470C7603E92F
|
||||
:201F2000D4008B5EFA8B4702C43608072609441A8B4702C43608072609441A8B4702C43648
|
||||
:201F40000807260944048B4702C41E080726094704800E040702E99D0090C45EDC26F647AA
|
||||
:201F60000C047410268A470C24FB0C022688470CE9830090C45EF426F647360174698B5E2A
|
||||
:201F8000FAF6471020741C833EE20601750CC45EDC26C687DA0000EB0A90C45EDC26C687DE
|
||||
:201FA000D80000C45EDC26804F1220C45EF426806736FE8B5EFA8B4702C43608072609449A
|
||||
:201FC0001A8B4702C43608072609441A8B4702C4360807260944048B4702C41E0807260935
|
||||
:201FE0004704800E040702C45EE626C6070026C6078226C60710C45EDC26C687C00000B89F
|
||||
:202000000080BA22FFEF8BE5071F61CF601E068BEC83EC30B8C6028ED8FC8B160400EC2A79
|
||||
:20202000E48946D63DFF007503E93C058A5ED683E3788BC3C1E30303D881C38C01895EF81D
|
||||
:202040008B473A8B573C8946D28956D48B47428B57448946E48956E68B47048B57068946C3
|
||||
:20206000EE8956F08EC28BF0268B4C22894EF68B7F16897EFA268B5C06895EEC8BC103CBCB
|
||||
:202080002BCF49894ED83BC776052BCB894ED88BDE26F64703047403D16ED8F646D6047441
|
||||
:2020A00003E90C03C45ED2268A471C2AE42B46D81BC923C10346D88946F20BC07503E9DF12
|
||||
:2020C000028B5EF8C7473600008B47142B46FA408946E8C45EEE26F64703047405D1E8895C
|
||||
:2020E00046E82B46F21BC923C10346F28946EA2B46F2F7D88946E0A10C078B160E070346FF
|
||||
:20210000FA8946FC8956FE8B5EF8F6470F047470EB1CC45EE4268A078846F4C45EFCFF461F
|
||||
:20212000FC268807C45EFCFF46FC26C607008B46EAFF4EEA0BC075DA3946E07503E9FF00D1
|
||||
:202140008B5EF88B471203060C078B160E078946FC8956FEEB1CC45EE4268A078846F4C4F6
|
||||
:202160005EFCFF46FC268807C45EFCFF46FC26C607008B46E0FF4EE00BC075DAE9C000908C
|
||||
:20218000F64711107478EB219090C45EE4268A078846F48B5EF8384739740BC45EFCFF46CF
|
||||
:2021A000FC268807EB03FF4EF28B46EAFF4EEA0BC075D73946E07503E984008B5EF88B4741
|
||||
:2021C0001203060C078B160E078946FC8956FEEB2090C45EE4268A078846F48B5EF83847F9
|
||||
:2021E00039740BC45EFCFF46FC268807EB03FF4EF28B46E0FF4EE00BC075D7EB42901E8B8B
|
||||
:2022000046EAC47EFCC576E4FCA44874034EEBF91F837EE00074288B5EF88B471203060C2A
|
||||
:20222000078B160E078946FC8956FE1E8B46E0C47EFCC576E4FCA44874044EEBF9901F8B41
|
||||
:2022400046F22946D80146FA8B5EF8F6470F0474030146FA8B46FA39471473068B46EC2917
|
||||
:2022600046FA8B46FA894716C476EE2689442026C74432FFFFF6470F0474078B46ECD1E890
|
||||
:20228000EB038B46EC2B46D88946EA8B5EF88B47108BC8A8447503E9D1008B46EA39472CF6
|
||||
:2022A0007203E9C600F6C1407430F6470A80752A833EE20601750BC45ED226C687DA00008E
|
||||
:2022C000EB09C45ED226C687D800008B5EF8804F0A80C45EEE26804F30208B5EF8F647100E
|
||||
:2022E000047503E985008B470A8BC8A804757CF7C10101752FB80100BA60FFEFB800C0BAD7
|
||||
:2023000066FFEFC746DA0000C45ED226807F0A00740DBA60FFED0BC075EEC746DA0100269C
|
||||
:20232000C6470A18B80100BA60FFEFB800C0BA66FFEFC746DA0000C45ED226807F0A0075A8
|
||||
:202340004F26C6470A24837EDA007410C45EEE26C747160B008B5EF880670B7F8B5EF88056
|
||||
:202360004F0A04C45EEE26804F30108B46F28B5EF8294720837F20007E09837ED80074038E
|
||||
:20238000E9DC018B5EF88B471E894720E9810190BA60FFED0BC0759FC746DA0100EBA290D1
|
||||
:2023A000268A471C2AE48B76F8804C0B08E9AA01C45EE4268A072AE48946DC24703C607575
|
||||
:2023C0000B8B76F8C744360000268A07837ED8007503E96F01F646DC0F7503E96601C45E46
|
||||
:2023E000EE26837F2A00750A8B76F88B44162689472A8A46DC2502003D0100F51BC0250416
|
||||
:20240000008A4EDC83E10483F901F51BC983E1020BC18A4EDC83E1090BC18946E2A8087456
|
||||
:20242000158B5EF8837F3600740CC45EE4268A072AE4E92A0190F646E20874088B5EF8C735
|
||||
:20244000473601008B5EF8F6470F04743FC476E4268A048B5F16C4360C072688008B5EF8AC
|
||||
:20246000FF47168B471639471473068B47128947168A46E28B5EF88D4F168BD98B1FC436B4
|
||||
:202480000C072688008BD9FF07EB2290F6470F017408C476E4268A04EB038A47388B5F16E2
|
||||
:2024A000C4360C072688008B5EF8FF47168B5EF88B471639471473068B47128947168B5E9B
|
||||
:2024C000F88B4716C476EE2689442026C74432FFFF8B471E8947208B46E2260944288B5E69
|
||||
:2024E000F88B4702C4360807260944168B4702C4360807260944168B4702C436080726090C
|
||||
:2025000044048B4702C41E0807260947048B5EF88B4702C4360807260944188B4702C4361D
|
||||
:202520000807260944188B4702C4360807260944048B4702C41E080726094704800E0407D5
|
||||
:2025400002EB1C90F646DC8075C3837ED800750F8B5EF8804F0B08C45ED22680670CEFC432
|
||||
:202560005ED226C687C00000B80080BA22FFEF8BE5071F61CF90C818000056C746F4000069
|
||||
:20258000BE8C01E928018B44048B54068946F88956FA8B4C3A8B5C3C894EE8895EEAF64488
|
||||
:2025A0000B807503E9BF00F644108074158EC28BD8268B472C3B442274085056E895F38390
|
||||
:2025C000C404F6440B0874488B4416C45EF8268B4F22262B4706F7D88BD103C8894EEC3B77
|
||||
:2025E00054167607262B4F06894EECF6440F047403D17EEC837EEC0C7C16FA80640BF78A97
|
||||
:202600004446C45EE8268887D00026804F0C10FBF6440A84740756E8DAF383C402FA8A44B6
|
||||
:2026200046C45EE8268887D000268A47162AE4268A8FD8002AEDFB83E00483F801F51BC04E
|
||||
:2026400083E0048946EEF6C140750BF644100874050C088946EEC45EF8268B473024F30BDF
|
||||
:2026600046EE26894730C45EF826837F1400743856E870E783C4028B4402C41E080726092F
|
||||
:20268000471E8B4402C41E08072609471E8B4402C41E0807260947048B4402C41E0807265B
|
||||
:2026A000094704800E040702FF46F483C648A1EE063946F47D03E9CDFEC41E080726833F4C
|
||||
:2026C000007403E8E0E6C41E080726F6471201740B800E04070126C747120000F606040708
|
||||
:2026E000027407F6060407017512C41E080726837F04007417F60604070174102BC08B160E
|
||||
:202700000800EEB80300EE80260407FD833E0207017403E965FEE8A500E95FFE601E068BFC
|
||||
:20272000ECB8C6028ED8FCFF06E806B80080BA22FFEF071F61CFBB04008EC3BB080026C7C0
|
||||
:20274000071C2726C747024000B8409CBA5AFFEFB801E0BA5EFFEFC3FE06E4068026E40643
|
||||
:2027600007A0E4062AE48B16040083C20E8BD8EE8A87D0068B16040083C20CEEC390C60687
|
||||
:20278000E406002BC08B16040083C20EEEA0D0062AE48B16040083C20CEEC3908036CF0638
|
||||
:2027A000808A1EE4062AFF8A87D0062AE48A0ECF062AED03C18B16040083C20CEEC3C80230
|
||||
:2027C00000008B16040083C20AEC2501008946FEA0CE062AE40BC0740948741A48743DC9C4
|
||||
:2027E000C390837EFE007541C706E8060000C606CE0601C9C390837EFE007518833EE8061E
|
||||
:20280000057626C606CE0602C706E8060000E847FFC9C390C606CE0600C9C390837EFE00B5
|
||||
:2028200075F2833EE8061977DFC9C3902BC08B16040083C208EEB8FF00EEC390558BECB8B0
|
||||
:1828400001008A4E04D3E0F7D08B16040083C208EEB8FF00EEC9C39088
|
||||
:0200000202C634
|
||||
:20000000FF000000000600048004320004C3FF004500048EFF004B000482FF006E000459EA
|
||||
:20002000FF0086000449FF0096000441FF00C8000431FF002C010382FF0058020341BC000E
|
||||
:200040001A0402956B00B00402825E00080702573E00D007024E3800600902412F00C01238
|
||||
:2000600001821700201C01570F00802501410B00403800AE0700004B00820500B77A0050D1
|
||||
:200080000300009600410300C0DA002D020000E1002B020000FA0027020000FF0021030066
|
||||
:2000A00001FF00160300FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF41
|
||||
:2000C000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF40
|
||||
:2000E000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF20
|
||||
:20010000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF4176616E73746172204352
|
||||
:200120006F6E74726F6C2050726F6772616D202056657220312E343400436F7079726967F8
|
||||
:2001400068742028632920313939332D3139393520204469676920496E7465726E61746969
|
||||
:200160006F6E616C2020200041313030435056455253494F4E3D312E3434004178787849F4
|
||||
:200180002E4350001601390168017B01000001002000000000000000000000000000000047
|
||||
:2001A00000000000000000000000000000000000000000000000000000000000000000003F
|
||||
:2001C00000000000FF000000000000000000000000000000010002006000000000000000BD
|
||||
:2001E0000000000000000000000000000000000000000000000000000000000000000000FF
|
||||
:20020000000000000000000000000000FF00000000000000000000000000000002000400D9
|
||||
:20022000A0000000000000000000000000000000000000000000000000000000000000001E
|
||||
:200240000000000000000000000000000000000000000000FF00000000000000000000009F
|
||||
:200260000000000003000800E0000000000000000000000000000000000000000000000093
|
||||
:2002800000000000000000000000000000000000000000000000000000000000FF0000005F
|
||||
:2002A000000000000000000000000000040010002001000000000000000000000000000009
|
||||
:2002C00000000000000000000000000000000000000000000000000000000000000000001E
|
||||
:2002E00000000000FF00000000000000000000000000000005002000600100000000000079
|
||||
:200300000000000000000000000000000000000000000000000000000000000000000000DD
|
||||
:20032000000000000000000000000000FF0000000000000000000000000000000600400078
|
||||
:20034000A001000000000000000000000000000000000000000000000000000000000000FC
|
||||
:200360000000000000000000000000000000000000000000FF00000000000000000000007E
|
||||
:200380000000000007008000E00100000000000000000000000000000000000000000000F5
|
||||
:2003A00000000000000000000000000000000000000000000000000000000000FF0000003E
|
||||
:2003C0000000000000000000000000000800000120020000000000000000000000000000F2
|
||||
:2003E0000000000000000000000000000000000000000000000000000000000000000000FD
|
||||
:2004000000000000FF00000000000000000000000000000009000002600200000000000070
|
||||
:200420000000000000000000000000000000000000000000000000000000000000000000BC
|
||||
:20044000000000000000000000000000FF0000000000000000000000000000000A0000048F
|
||||
:20046000A002000000000000000000000000000000000000000000000000000000000000DA
|
||||
:200480000000000000000000000000000000000000000000FF00000000000000000000005D
|
||||
:2004A000000000000B000008E0020000000000000000000000000000000000000000000047
|
||||
:2004C00000000000000000000000000000000000000000000000000000000000FF0000001D
|
||||
:2004E0000000000000000000000000000C00001020030000000000000000000000000000BD
|
||||
:200500000000000000000000000000000000000000000000000000000000000000000000DB
|
||||
:2005200000000000FF0000000000000000000000000000000D00002060030000000000002C
|
||||
:2005400000000000000000000000000000000000000000000000000000000000000000009B
|
||||
:20056000000000000000000000000000FF0000000000000000000000000000000E0000402E
|
||||
:20058000A003000000000000000000000000000000000000000000000000000000000000B8
|
||||
:2005A0000000000000000000000000000000000000000000FF00000000000000000000003C
|
||||
:2005C000000000000F000080E00300000000000000000000000000000000000000000000A9
|
||||
:2005E00000000000000000000000000000000000000000000000000000000000FF000000FC
|
||||
:2006000000000000000000000000000000000000000010000000013E0C80000000001000EF
|
||||
:200620000100013F00000D80000008000100013F0C800D80000010000100033F0000000037
|
||||
:200640000E800800010081320C8000000E8008000100053F00000D800E8008000100033F83
|
||||
:2006600000000000000010000000013E000001010202030300000101020203030000010111
|
||||
:2006800000000101000000000101010100000100000001000000010000000100020003004B
|
||||
:2006A00002000300020003000200030000000100000001000200030002000300000001001E
|
||||
:1806C00002000300000001000200030055550000F9A4B0999282F880FB
|
||||
:020000020333C6
|
||||
:020000020333C6
|
||||
:020000020FD01D
|
||||
:2000000088FF0100810080FF0100150032FF0A000F000F000F001A001B0019000F000F006E
|
||||
:200020000F000F00C0FF0600000000000000000001000402D0FF0600000000000000000001
|
||||
:200040000100040250FF0400000000000000004058FF0400000000000000004060FF040008
|
||||
:200060000000000000000040A0FF050038F0F80FF800F881B8A0FAFCB8D00F8ED82E8B16E2
|
||||
:2000800068002E8B0E6A00BE6C006F83C202E2FAB8C6028ED8BAA4FFB80000EFED83E04091
|
||||
:2000A0007428B80000BA70FFEFBA76FFEFBA72FFEFBA78FFEFBAA4FFB8F800EFBAA2FFB86D
|
||||
:2000C000B80FEFC606000001EB0CBAA4FFB87C00EFC606000000BA0000B800008EC0BB00DF
|
||||
:2000E00004B9FEFB268A0703D043E2F8B8C6028ED88916010033C08ED88BF8BB4000B9008D
|
||||
:2001000001B800008905895D0283C704E2F6C70620000100891E2200C70648000100891E16
|
||||
:200120004A00C7064C000100891E4E00C70628000100891E2A00C7062C000100891E2E00D0
|
||||
:20014000C70630000100891E3200C70630000100891E3200C70634000100891E3600C70645
|
||||
:2001600038000100891E3A00C7063C000100891E3E00C70640000100891E4200C70644006E
|
||||
:200180000100891E4600C70650000100891E5200B8D00F8ED82E8B160C002E8B0E0E00BEEF
|
||||
:2001A00010006F83C202E2FA2E8B1644002E8B0E4600BE48006F83C202E2FA2E8B165000C6
|
||||
:2001C0002E8B0E5200BE54006F83C202E2FA2E8B165C002E8B0E5E00BE60006F83C202E25C
|
||||
:2001E000FA2E8B1624002E8B0E2600BE28006F83C202E2FA2E8B1634002E8B0E3600BE38B7
|
||||
:20020000006F83C202E2FA2E8B1600002E8B0E0200BE04006F83C202E2FA2E8B1606002E5D
|
||||
:200220008B0E0800BE0A006F83C202E2FAB8C6028ED88EC08ED0BC101733C0509A320040FF
|
||||
:0402400000FAEBFED7
|
||||
:020000020FFFEE
|
||||
:10000000BAA2FFB8F80FEFEA7600D00F0C0000009C
|
||||
:040000030FFF0000EB
|
||||
:00000001FF
|
BIN
sys/lib/astar/a100p.cp
Executable file
BIN
sys/lib/astar/a100p.cp
Executable file
Binary file not shown.
96
sys/lib/backup/backup
Executable file
96
sys/lib/backup/backup
Executable file
|
@ -0,0 +1,96 @@
|
|||
#!/bin/rc
|
||||
# backup [-n] [-d dev] [-s set] - backup venti arenas to disc set using dev
|
||||
# and record that. also print recent fossil dump scores.
|
||||
rfork ne
|
||||
cd /sys/lib/backup
|
||||
. funcs
|
||||
bind -a . /bin
|
||||
|
||||
done=0
|
||||
while (~ $done 0 && ! ~ $#* 0 && ~ $1 -*) {
|
||||
switch ($1) {
|
||||
case -d; rdev=$2; shift
|
||||
case -n; debug=yes # don't dump; use with -s test
|
||||
case -s; set=$2 ; shift
|
||||
case --; done = 1 # no break in rc, alas
|
||||
case -*
|
||||
echo usage: $0 '[-n] [-d dev] [-s set]' >[1=2]
|
||||
exit usage
|
||||
}
|
||||
shift
|
||||
}
|
||||
|
||||
fn sigint sighup sigterm {
|
||||
exit note
|
||||
}
|
||||
|
||||
fn dobackuparenas {
|
||||
if (~ $debug yes) {
|
||||
echo pretending to backuparenas $*
|
||||
shift
|
||||
for (name)
|
||||
dumpdone arena0 $name
|
||||
}
|
||||
if not
|
||||
backuparenas $*
|
||||
}
|
||||
|
||||
fn backupdisc {
|
||||
echo please insert disc $disc of set $set into $rdev and press return to backup
|
||||
echo -n $"*^': '
|
||||
if (! ~ $debug yes)
|
||||
junk=`{read}
|
||||
if not
|
||||
echo
|
||||
dobackuparenas $rdev $*
|
||||
}
|
||||
|
||||
fn backup1 {
|
||||
progress=no
|
||||
disc1trks=`{hoc -e $ntracks-$tracks}
|
||||
disc1arenas=()
|
||||
if (! ~ $disc1trks 0)
|
||||
disc1arenas=`{sed $disc1trks^q arenas}
|
||||
if (! ~ $#disc1arenas 0 && ! ~ $disc1trks 0 && backupdisc $disc1arenas){
|
||||
tracks = `{hoc -e $tracks+$#disc1arenas}
|
||||
if (test $tracks -ge $ntracks) {
|
||||
disc=`{hoc -e $disc+1}
|
||||
tracks=0
|
||||
}
|
||||
updprog
|
||||
|
||||
sed 1,$disc1trks^d arenas >morearenas
|
||||
mv morearenas arenas
|
||||
arenas=`{cat arenas}
|
||||
}
|
||||
}
|
||||
|
||||
cd $set
|
||||
tobackup $set >arenas
|
||||
quitonfailure $status
|
||||
|
||||
arenas=`{cat arenas}
|
||||
if (~ $#arenas 0) {
|
||||
echo no sealed arenas not yet on disc exist on $fs
|
||||
exit ''
|
||||
}
|
||||
|
||||
if (test -s disc)
|
||||
. disc
|
||||
if not
|
||||
updprog
|
||||
|
||||
if (! ~ $debug yes && ~ $set set1) {
|
||||
9fs log
|
||||
# don't hang in lp
|
||||
tail -50 /n/$fs/sys/log/fs.archive |
|
||||
pr -h 'recent fossil dump scores' | lp &
|
||||
echo fossil dump scores just printed.
|
||||
}
|
||||
|
||||
progress=yes
|
||||
while (test $#arenas -gt 0 && ~ $progress yes) {
|
||||
backup1
|
||||
quitonfailure $status
|
||||
}
|
||||
exit ''
|
33
sys/lib/backup/backuparenas
Executable file
33
sys/lib/backup/backuparenas
Executable file
|
@ -0,0 +1,33 @@
|
|||
#!/bin/rc
|
||||
# backuparenas dev name ... - dump arena `name' from $fs to blu-ray disc.
|
||||
# assumes $set is set.
|
||||
rfork ne
|
||||
# tunable variables
|
||||
fs=pie
|
||||
|
||||
if (test -e /sys/lib/backup/funcs)
|
||||
. /sys/lib/backup/funcs
|
||||
|
||||
exits=''
|
||||
fsroot=/n/$fs
|
||||
if (! test -e $fsroot/!THIS_IS_^`{echo $fs | tr a-z A-Z}^_MAIN) {
|
||||
import $fs / $fsroot || exit
|
||||
}
|
||||
unmount /mnt/cd >[2]/dev/null
|
||||
cdfs -d $1 || exit
|
||||
shift
|
||||
|
||||
cd $fsroot/dev/fs
|
||||
for (name) {
|
||||
grep next /mnt/cd/ctl
|
||||
if (! {venti/rdarena arena0 $name |
|
||||
pump -i 65536 -o 1048576 -k 51200 -d 10 >/mnt/cd/wd/$name})
|
||||
exit
|
||||
# ls -l /mnt/cd
|
||||
if (test -e '/env/fn#dumpdone' -a -e '/env/set')
|
||||
dumpdone arena0 $name
|
||||
}
|
||||
echo 'remember to *not* remove /mnt/cd/wd' >[1=2]
|
||||
# don't remove /mnt/cd/wd, since that would finalize the disc
|
||||
# and bugger the permanent toc, at least on bd-r.
|
||||
exit ''
|
23
sys/lib/backup/dupdisc
Executable file
23
sys/lib/backup/dupdisc
Executable file
|
@ -0,0 +1,23 @@
|
|||
#!/bin/rc
|
||||
# dupdisc indev outdev - duplicate all blu-ray disc data tracks
|
||||
rfork ne
|
||||
if (! ~ $#* 2 || ~ $1 $2 || ~ $1 /dev/* || ~ $2 /dev/*) {
|
||||
echo usage: $0 indev outdev >[1=2]
|
||||
exit usage
|
||||
}
|
||||
echo copying /dev/$1 tracks to /dev/$2
|
||||
sleep 2
|
||||
|
||||
umount /mnt/cd >[2]/dev/null
|
||||
cdfs -d /dev/$1 || exit
|
||||
cdfs -d /dev/$2 -m /n/copy || exit
|
||||
|
||||
for (t in `{ls -p /mnt/cd | grep '^d'}) {
|
||||
echo $t:
|
||||
grep next /n/copy/ctl
|
||||
pump -b 1048576 -k 51200 -d 10 </mnt/cd/$t >/n/copy/wd/$t
|
||||
ls -l /n/copy
|
||||
}
|
||||
echo 'remember to *not* rm /mnt/cd/wd' >[1=2]
|
||||
# don't remove /mnt/cd/wd, since that would finalize the disc
|
||||
# and bugger the permanent toc, at least on bd-r.
|
57
sys/lib/backup/funcs
Executable file
57
sys/lib/backup/funcs
Executable file
|
@ -0,0 +1,57 @@
|
|||
#!/bin/rc
|
||||
# funcs - rc functions and definitions common to dump scripts
|
||||
fn backupinit {
|
||||
if (! ~ $backupinitdone yes) {
|
||||
disc=1
|
||||
tracks=0
|
||||
|
||||
# tunable parameters
|
||||
set=set1
|
||||
fs=pie
|
||||
arenas=/dev/sde0/arena0 # on $fs
|
||||
rdev=/dev/sdE1 # on terminal with bd burner
|
||||
|
||||
blocksize=8192
|
||||
arenasize=1073741824 # twice the venti default, on yoshimi & pie
|
||||
# trackbytes=$arenasize
|
||||
# discbytes=`{ls -l $rdev/data | awk '{print $6}'}
|
||||
# ntracks=`{ hoc -e 'int('$discbytes/$trackbytes')' }
|
||||
ntracks=45 # for BD dual-layer
|
||||
|
||||
backupinitdone=yes
|
||||
backups=/sys/lib/backup
|
||||
path=(/bin $backups .)
|
||||
}
|
||||
}
|
||||
|
||||
# assume we're in $backups/$set
|
||||
fn updprog {
|
||||
echo 'disc='$disc 'tracks='$tracks >ndisc && mv ndisc disc
|
||||
}
|
||||
|
||||
# assumes $set is set
|
||||
fn dumpdone { # arena-part arena-name
|
||||
@ {
|
||||
cd $backups/$set
|
||||
progress=yes
|
||||
tracks = `{hoc -e $tracks+1}
|
||||
updprog
|
||||
if (~ $debug yes)
|
||||
echo $2 >>fake # pretend these are sealed
|
||||
echo $2 >>ondisc
|
||||
}
|
||||
}
|
||||
|
||||
fn quitonfailure { # exit-status
|
||||
if (! ~ $1 '' 0 '|')
|
||||
exit $1
|
||||
}
|
||||
|
||||
# caller sets arenabase first
|
||||
fn arenastart { # arena#
|
||||
bytes = `{ echo $arenabase' + ('$1' * '$arenasize')' | bc }
|
||||
blocks = `{ echo $bytes' / '$blocksize | bc }
|
||||
echo $blocks
|
||||
}
|
||||
|
||||
backupinit
|
6
sys/lib/backup/mkfile
Executable file
6
sys/lib/backup/mkfile
Executable file
|
@ -0,0 +1,6 @@
|
|||
clean:V:
|
||||
rm -f index
|
||||
setup:V:
|
||||
mkdir set1
|
||||
backup:V:
|
||||
./backup
|
90
sys/lib/backup/restore
Executable file
90
sys/lib/backup/restore
Executable file
|
@ -0,0 +1,90 @@
|
|||
#!/bin/rc
|
||||
# restore arena# [dev] - load venti with arenas on dev, stored one per track
|
||||
# starting with arena#. must have run fmtarenas before restoring
|
||||
# the first arena in the partition.
|
||||
# this must be run on the venti server, without venti running on the
|
||||
# affected arena partition(s).
|
||||
rfork ne
|
||||
if (test -e /sys/lib/backup/funcs)
|
||||
. /sys/lib/backup/funcs
|
||||
switch ($#*) {
|
||||
case 1
|
||||
case 2
|
||||
rdev=$2
|
||||
case *
|
||||
echo usage: $0 arena-num '[dev]' >[1=2]
|
||||
exit usage
|
||||
}
|
||||
starena=$1
|
||||
if (! ~ $starena [0-9] [0-9][0-9] [0-9][0-9][0-9]) {
|
||||
echo $0: bad starting arena: $starena >[1=2]
|
||||
exit bad-arena-num
|
||||
}
|
||||
|
||||
# clear any dregs from a previous run
|
||||
unmount /mnt/cd >[2]/dev/null
|
||||
sleep 1
|
||||
kill cdfs | rc
|
||||
sleep 1
|
||||
cdfs -d $rdev || exit
|
||||
cd /mnt/cd
|
||||
|
||||
#for (track in d[0-9]*)
|
||||
# venti/wrarena $track # slow; takes about 12½ mins. per GB
|
||||
|
||||
arena = $starena
|
||||
# set arenabase for arenastart
|
||||
arenabase = `{ venti/printarenapart $arenas | sed -e 's/.*arenabase=//' -e 1q }
|
||||
kill printarenapart | rc # printarenapart leaves a process behind
|
||||
# echo arenabase $arenabase
|
||||
|
||||
skipping=yes
|
||||
for (track in d[0-9]*) {
|
||||
if (~ track 'd[0-9]*') {
|
||||
echo $0: no tracks in /mnt/cd >[1=2]
|
||||
exit no-tracks
|
||||
}
|
||||
if (~ $skipping yes) {
|
||||
# verify that first track is the expected one
|
||||
type=`{file $track}
|
||||
switch ($"type) {
|
||||
case *': venti arena'
|
||||
name=`{ venti/printarena $track >[2=1] |
|
||||
sed -e 's/.*name=([^ =]+).*/\1/' -e 1q }
|
||||
case *
|
||||
name=NOT-A-VENTI-ARENA
|
||||
}
|
||||
kill printarena | rc # printarena leaves a process behind
|
||||
|
||||
echo -n first track is $"name'; is that right? '
|
||||
switch (`{read}) {
|
||||
case [yY]*
|
||||
skipping=no
|
||||
case skip
|
||||
skipping=yes
|
||||
case *
|
||||
echo aborting, arena is unchanged. >[1=2]
|
||||
exit 'wrong track'
|
||||
}
|
||||
}
|
||||
|
||||
if (! ~ $skipping yes) {
|
||||
# copy each track into its slot in the arena partition
|
||||
venti/printarena $track >[2=1] | sed 1q | tr -d '\12'
|
||||
kill printarena | rc # printarena leaves a process behind
|
||||
|
||||
off = `{arenastart $arena}
|
||||
# echo -n writing $track to $arenas at 8K-block offset $off:
|
||||
sleep 3
|
||||
echo
|
||||
# argh! something (cdfs?) appends 60K of *stuff* to each
|
||||
# arena on optical disc. restrain dd.
|
||||
count=`{ echo $arenasize/$blocksize | bc }
|
||||
pump -i 1048576 -o 65536 -d 10 <$track |
|
||||
dd -quiet 1 -count $count -bs $blocksize -of $arenas \
|
||||
-oseek $off
|
||||
arena = `{hoc -e $arena+1}
|
||||
}
|
||||
}
|
||||
# when all done, must run venti/checkarenas, fmtisect, fmtbloom, fmtindex,
|
||||
# and (the big one) venti/buildindex -b /cfg/pie/venti.conf
|
47
sys/lib/backup/tobackup
Executable file
47
sys/lib/backup/tobackup
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/rc
|
||||
# tobackup [set] - print names of venti arenas needing to be dumped to disc set
|
||||
rfork e
|
||||
|
||||
cd /sys/lib/backup
|
||||
. funcs
|
||||
|
||||
switch ($#*) {
|
||||
case 0
|
||||
case 1
|
||||
set=$1
|
||||
case *
|
||||
echo usage: $0 '[set]' >[1=2]
|
||||
exit usage
|
||||
}
|
||||
|
||||
if (! test -d $set) {
|
||||
echo $0: no backup set named $set in $backup >[1=2]
|
||||
exit 'no backup set'
|
||||
}
|
||||
if (! hget -o index http://$fs/index) {
|
||||
echo $0: 'can''t fetch venti index from' $fs >[1=2]
|
||||
exit 'no venti index'
|
||||
}
|
||||
if (! test -s index) {
|
||||
echo $0: 'empty venti index from' $fs >[1=2]
|
||||
exit 'empty index'
|
||||
}
|
||||
|
||||
cd $set
|
||||
awk '/^arena=/ { name=$1 }
|
||||
/ disk=sealed/ { print name; name = "" }
|
||||
' ../index | sed 's/^arena=//' >nsealed
|
||||
>>sealed
|
||||
if (! cmp -s sealed nsealed)
|
||||
cp nsealed sealed
|
||||
rm -f nsealed
|
||||
if (! test -s sealed)
|
||||
exit ''
|
||||
|
||||
>>fake
|
||||
if (test -s ondisc)
|
||||
comm -23 <{sort -u sealed fake} <{sort -u ondisc}
|
||||
if not { # first sealed arenas, dump all
|
||||
cat sealed
|
||||
chmod +a ondisc >>ondisc
|
||||
}
|
246
sys/lib/bclib
Executable file
246
sys/lib/bclib
Executable file
|
@ -0,0 +1,246 @@
|
|||
scale = 50
|
||||
define e(x) {
|
||||
auto a, b, c, d, e, g, w, y, t, r
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
|
||||
t = scale
|
||||
scale = t + .434*x + 1
|
||||
|
||||
w = 0
|
||||
if(x<0) {
|
||||
x = -x
|
||||
w = 1
|
||||
}
|
||||
y = 0
|
||||
while(x>2) {
|
||||
x /= 2
|
||||
y++
|
||||
}
|
||||
|
||||
a = 1
|
||||
b = 1
|
||||
c = b
|
||||
d = 1
|
||||
e = 1
|
||||
for(a=1; 1; a++) {
|
||||
b *= x
|
||||
c = c*a+b
|
||||
d *= a
|
||||
g = c/d
|
||||
if(g == e) {
|
||||
g = g/1
|
||||
while(y--) {
|
||||
g *= g
|
||||
}
|
||||
scale = t
|
||||
if(w==1) {
|
||||
ibase = r
|
||||
return 1/g
|
||||
}
|
||||
ibase = r
|
||||
return g/1
|
||||
}
|
||||
e = g
|
||||
}
|
||||
}
|
||||
|
||||
define l(x) {
|
||||
auto a, b, c, d, e, f, g, u, s, t, r, z
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
if(x <= 0) {
|
||||
z = 1-10^scale
|
||||
ibase = r
|
||||
return z
|
||||
}
|
||||
t = scale
|
||||
|
||||
f = 1
|
||||
scale += scale(x) - length(x) + 1
|
||||
s = scale
|
||||
while(x > 2) {
|
||||
s += (length(x)-scale(x))/2 + 1
|
||||
if(s>0) {
|
||||
scale = s
|
||||
}
|
||||
x = sqrt(x)
|
||||
f *= 2
|
||||
}
|
||||
while(x < .5) {
|
||||
s += (length(x)-scale(x))/2 + 1
|
||||
if(s>0) {
|
||||
scale = s
|
||||
}
|
||||
x = sqrt(x)
|
||||
f *= 2
|
||||
}
|
||||
|
||||
scale = t + length(f) - scale(f) + 1
|
||||
u = (x-1)/(x+1)
|
||||
|
||||
scale += 1.1*length(t) - 1.1*scale(t)
|
||||
s = u*u
|
||||
b = 2*f
|
||||
c = b
|
||||
d = 1
|
||||
e = 1
|
||||
for(a=3; 1; a=a+2){
|
||||
b *= s
|
||||
c = c*a + d*b
|
||||
d *= a
|
||||
g = c/d
|
||||
if(g==e) {
|
||||
scale = t
|
||||
ibase = r
|
||||
return u*c/d
|
||||
}
|
||||
e = g
|
||||
}
|
||||
}
|
||||
|
||||
define s(x) {
|
||||
auto a, b, c, s, t, y, p, n, i, r
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
t = scale
|
||||
y = x/.7853
|
||||
s = t + length(y) - scale(y)
|
||||
if(s<t) {
|
||||
s = t
|
||||
}
|
||||
scale = s
|
||||
p = a(1)
|
||||
|
||||
scale = 0
|
||||
if(x>=0) {
|
||||
n = (x/(2*p)+1)/2
|
||||
}
|
||||
if(x<0) {
|
||||
n = (x/(2*p)-1)/2
|
||||
}
|
||||
x -= 4*n*p
|
||||
if(n%2 != 0) {
|
||||
x = -x
|
||||
}
|
||||
|
||||
scale = t + length(1.2*t) - scale(1.2*t)
|
||||
y = -x*x
|
||||
a = x
|
||||
b = 1
|
||||
s = x
|
||||
for(i=3; 1; i+=2) {
|
||||
a *= y
|
||||
b *= i*(i-1)
|
||||
c = a/b
|
||||
if(c==0){
|
||||
scale = t
|
||||
ibase = r
|
||||
return s/1
|
||||
}
|
||||
s += c
|
||||
}
|
||||
}
|
||||
|
||||
define c(x) {
|
||||
auto t, r
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
t = scale
|
||||
scale = scale+1
|
||||
x = s(x + 2*a(1))
|
||||
scale = t
|
||||
ibase = r
|
||||
return x/1
|
||||
}
|
||||
|
||||
define a(x) {
|
||||
auto a, b, c, d, e, f, g, s, t, r, z
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
if(x==0) {
|
||||
return 0
|
||||
}
|
||||
if(x==1) {
|
||||
z = .7853981633974483096156608458198757210492923498437764/1
|
||||
ibase = r
|
||||
if(scale<52) {
|
||||
return z
|
||||
}
|
||||
}
|
||||
t = scale
|
||||
f = 1
|
||||
while(x > .5) {
|
||||
scale++
|
||||
x = -(1 - sqrt(1.+x*x))/x
|
||||
f *= 2
|
||||
}
|
||||
while(x < -.5) {
|
||||
scale++
|
||||
x = -(1 - sqrt(1.+x*x))/x
|
||||
f *= 2
|
||||
}
|
||||
s = -x*x
|
||||
b = f
|
||||
c = f
|
||||
d = 1
|
||||
e = 1
|
||||
for(a=3; 1; a+=2) {
|
||||
b *= s
|
||||
c = c*a + d*b
|
||||
d *= a
|
||||
g = c/d
|
||||
if(g==e) {
|
||||
scale = t
|
||||
ibase = r
|
||||
return x*c/d
|
||||
}
|
||||
e = g
|
||||
}
|
||||
}
|
||||
|
||||
define j(n,x) {
|
||||
auto a,b,c,d,e,g,i,s,k,t,r
|
||||
|
||||
r = ibase
|
||||
ibase = A
|
||||
|
||||
t = scale
|
||||
k = 1.36*x + 1.16*t - n
|
||||
k = length(k) - scale(k)
|
||||
if(k>0) {
|
||||
scale += k
|
||||
}
|
||||
|
||||
s = -x*x/4
|
||||
if(n<0) {
|
||||
n = -n
|
||||
x = -x
|
||||
}
|
||||
a = 1
|
||||
c = 1
|
||||
for(i=1; i<=n; i++) {
|
||||
a *= x
|
||||
c *= 2*i
|
||||
}
|
||||
b = a
|
||||
d = 1
|
||||
e = 1
|
||||
for(i=1; 1; i++) {
|
||||
a *= s
|
||||
b = b*i*(n+i) + a
|
||||
c *= i*(n+i)
|
||||
g = b/c
|
||||
if(g==e) {
|
||||
scale = t
|
||||
ibase = r
|
||||
return g/1
|
||||
}
|
||||
e = g
|
||||
}
|
||||
}
|
BIN
sys/lib/brspell
Executable file
BIN
sys/lib/brspell
Executable file
Binary file not shown.
0
sys/lib/dist/cdstub/bootdisk.img
vendored
Executable file
0
sys/lib/dist/cdstub/bootdisk.img
vendored
Executable file
346
sys/lib/dist/cmd/bargraph.c
vendored
Executable file
346
sys/lib/dist/cmd/bargraph.c
vendored
Executable file
|
@ -0,0 +1,346 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <draw.h>
|
||||
#include <bio.h>
|
||||
#include <event.h>
|
||||
|
||||
enum {PNCTL=3};
|
||||
|
||||
static char* rdenv(char*);
|
||||
int newwin(char*);
|
||||
Rectangle screenrect(void);
|
||||
|
||||
int nokill;
|
||||
int textmode;
|
||||
char *title;
|
||||
|
||||
Image *light;
|
||||
Image *dark;
|
||||
Image *text;
|
||||
|
||||
void
|
||||
initcolor(void)
|
||||
{
|
||||
text = display->black;
|
||||
light = allocimagemix(display, DPalegreen, DWhite);
|
||||
dark = allocimage(display, Rect(0,0,1,1), CMAP8, 1, DDarkgreen);
|
||||
}
|
||||
|
||||
Rectangle rbar;
|
||||
Point ptext;
|
||||
vlong n, d;
|
||||
int last;
|
||||
int lastp = -1;
|
||||
int first = 1;
|
||||
|
||||
char backup[80];
|
||||
|
||||
void
|
||||
drawbar(void)
|
||||
{
|
||||
int i, j;
|
||||
int p;
|
||||
char buf[200], bar[100], *s;
|
||||
static char lastbar[100];
|
||||
|
||||
if(n > d || n < 0 || d <= 0)
|
||||
return;
|
||||
|
||||
i = (Dx(rbar)*n)/d;
|
||||
p = (n*100LL)/d;
|
||||
|
||||
if(textmode){
|
||||
bar[0] = '|';
|
||||
for(j=0; j<i; j++)
|
||||
bar[j+1] = '#';
|
||||
for(; j<60; j++)
|
||||
bar[j+1] = '-';
|
||||
bar[61] = '|';
|
||||
bar[62] = ' ';
|
||||
sprint(bar+63, "%3d%% ", p);
|
||||
for(i=0; bar[i]==lastbar[i] && bar[i]; i++)
|
||||
;
|
||||
memset(buf, '\b', strlen(lastbar)-i);
|
||||
strcpy(buf+strlen(lastbar)-i, bar+i);
|
||||
if(buf[0])
|
||||
write(1, buf, strlen(buf));
|
||||
strcpy(lastbar, bar);
|
||||
return;
|
||||
}
|
||||
|
||||
if(lastp == p && last == i)
|
||||
return;
|
||||
|
||||
if(lastp != p){
|
||||
sprint(buf, "%d%%", p);
|
||||
|
||||
stringbg(screen, addpt(screen->r.min, Pt(Dx(rbar)-30, 4)), text, ZP, display->defaultfont, buf, light, ZP);
|
||||
lastp = p;
|
||||
}
|
||||
|
||||
if(last != i){
|
||||
draw(screen, Rect(rbar.min.x+last, rbar.min.y, rbar.min.x+i, rbar.max.y),
|
||||
dark, nil, ZP);
|
||||
last = i;
|
||||
}
|
||||
flushimage(display, 1);
|
||||
}
|
||||
|
||||
void
|
||||
eresized(int new)
|
||||
{
|
||||
Point p, q;
|
||||
Rectangle r;
|
||||
|
||||
if(new && getwindow(display, Refnone) < 0)
|
||||
fprint(2,"can't reattach to window");
|
||||
|
||||
r = screen->r;
|
||||
draw(screen, r, light, nil, ZP);
|
||||
p = string(screen, addpt(r.min, Pt(4,4)), text, ZP,
|
||||
display->defaultfont, title);
|
||||
|
||||
p.x = r.min.x+4;
|
||||
p.y += display->defaultfont->height+4;
|
||||
|
||||
q = subpt(r.max, Pt(4,4));
|
||||
rbar = Rpt(p, q);
|
||||
|
||||
ptext = Pt(r.max.x-4-stringwidth(display->defaultfont, "100%"), r.min.x+4);
|
||||
border(screen, rbar, -2, dark, ZP);
|
||||
last = 0;
|
||||
lastp = -1;
|
||||
|
||||
drawbar();
|
||||
}
|
||||
|
||||
void
|
||||
bar(Biobuf *b)
|
||||
{
|
||||
char *p, *f[2];
|
||||
Event e;
|
||||
int k, die, parent, child;
|
||||
|
||||
parent = getpid();
|
||||
|
||||
die = 0;
|
||||
if(textmode)
|
||||
child = -1;
|
||||
else
|
||||
switch(child = rfork(RFMEM|RFPROC)) {
|
||||
case 0:
|
||||
sleep(1000);
|
||||
while(!die && (k = eread(Ekeyboard|Emouse, &e))) {
|
||||
if(nokill==0 && k == Ekeyboard && (e.kbdc == 0x7F || e.kbdc == 0x03)) { /* del, ctl-c */
|
||||
die = 1;
|
||||
postnote(PNPROC, parent, "interrupt");
|
||||
_exits("interrupt");
|
||||
}
|
||||
}
|
||||
_exits(0);
|
||||
}
|
||||
|
||||
while(!die && (p = Brdline(b, '\n'))) {
|
||||
p[Blinelen(b)-1] = '\0';
|
||||
if(tokenize(p, f, 2) != 2)
|
||||
continue;
|
||||
n = strtoll(f[0], 0, 0);
|
||||
d = strtoll(f[1], 0, 0);
|
||||
drawbar();
|
||||
}
|
||||
postnote(PNCTL, child, "kill");
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: bargraph [-kt] [-w minx,miny,maxx,maxy] 'title'\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
Biobuf b;
|
||||
char *p, *q;
|
||||
int lfd;
|
||||
|
||||
p = "0,0,200,60";
|
||||
|
||||
ARGBEGIN{
|
||||
case 'w':
|
||||
p = ARGF();
|
||||
break;
|
||||
case 't':
|
||||
textmode = 1;
|
||||
break;
|
||||
case 'k':
|
||||
nokill = 1;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}ARGEND;
|
||||
|
||||
if(argc != 1)
|
||||
usage();
|
||||
|
||||
title = argv[0];
|
||||
|
||||
lfd = dup(0, -1);
|
||||
|
||||
while(q = strchr(p, ','))
|
||||
*q = ' ';
|
||||
Binit(&b, lfd, OREAD);
|
||||
if(textmode || newwin(p) < 0){
|
||||
textmode = 1;
|
||||
rbar = Rect(0, 0, 60, 1);
|
||||
}else{
|
||||
initdraw(0, 0, "bar");
|
||||
initcolor();
|
||||
einit(Emouse|Ekeyboard);
|
||||
eresized(0);
|
||||
}
|
||||
bar(&b);
|
||||
}
|
||||
|
||||
|
||||
/* all code below this line should be in the library, but is stolen from colors instead */
|
||||
static char*
|
||||
rdenv(char *name)
|
||||
{
|
||||
char *v;
|
||||
int fd, size;
|
||||
|
||||
fd = open(name, OREAD);
|
||||
if(fd < 0)
|
||||
return 0;
|
||||
size = seek(fd, 0, 2);
|
||||
v = malloc(size+1);
|
||||
if(v == 0){
|
||||
fprint(2, "%s: can't malloc: %r\n", argv0);
|
||||
exits("no mem");
|
||||
}
|
||||
seek(fd, 0, 0);
|
||||
read(fd, v, size);
|
||||
v[size] = 0;
|
||||
close(fd);
|
||||
return v;
|
||||
}
|
||||
|
||||
int
|
||||
newwin(char *win)
|
||||
{
|
||||
char *srv, *mntsrv;
|
||||
char spec[100];
|
||||
int srvfd, cons, pid;
|
||||
|
||||
switch(rfork(RFFDG|RFPROC|RFNAMEG|RFENVG|RFNOTEG|RFNOWAIT)){
|
||||
case -1:
|
||||
fprint(2, "bargraph: can't fork: %r\n");
|
||||
return -1;
|
||||
case 0:
|
||||
break;
|
||||
default:
|
||||
exits(0);
|
||||
}
|
||||
|
||||
srv = rdenv("/env/wsys");
|
||||
if(srv == 0){
|
||||
mntsrv = rdenv("/mnt/term/env/wsys");
|
||||
if(mntsrv == 0){
|
||||
fprint(2, "bargraph: can't find $wsys\n");
|
||||
return -1;
|
||||
}
|
||||
srv = malloc(strlen(mntsrv)+10);
|
||||
sprint(srv, "/mnt/term%s", mntsrv);
|
||||
free(mntsrv);
|
||||
pid = 0; /* can't send notes to remote processes! */
|
||||
}else
|
||||
pid = getpid();
|
||||
USED(pid);
|
||||
srvfd = open(srv, ORDWR);
|
||||
free(srv);
|
||||
if(srvfd == -1){
|
||||
fprint(2, "bargraph: can't open %s: %r\n", srv);
|
||||
return -1;
|
||||
}
|
||||
sprint(spec, "new -r %s", win);
|
||||
if(mount(srvfd, -1, "/mnt/wsys", 0, spec) == -1){
|
||||
fprint(2, "bargraph: can't mount /mnt/wsys: %r (spec=%s)\n", spec);
|
||||
return -1;
|
||||
}
|
||||
close(srvfd);
|
||||
unmount("/mnt/acme", "/dev");
|
||||
bind("/mnt/wsys", "/dev", MBEFORE);
|
||||
cons = open("/dev/cons", OREAD);
|
||||
if(cons==-1){
|
||||
NoCons:
|
||||
fprint(2, "bargraph: can't open /dev/cons: %r");
|
||||
return -1;
|
||||
}
|
||||
dup(cons, 0);
|
||||
close(cons);
|
||||
cons = open("/dev/cons", OWRITE);
|
||||
if(cons==-1)
|
||||
goto NoCons;
|
||||
dup(cons, 1);
|
||||
dup(cons, 2);
|
||||
close(cons);
|
||||
// wctlfd = open("/dev/wctl", OWRITE);
|
||||
return 0;
|
||||
}
|
||||
|
||||
Rectangle
|
||||
screenrect(void)
|
||||
{
|
||||
int fd;
|
||||
char buf[12*5];
|
||||
|
||||
fd = open("/dev/screen", OREAD);
|
||||
if(fd == -1)
|
||||
fd=open("/mnt/term/dev/screen", OREAD);
|
||||
if(fd == -1){
|
||||
fprint(2, "%s: can't open /dev/screen: %r\n", argv0);
|
||||
exits("window read");
|
||||
}
|
||||
if(read(fd, buf, sizeof buf) != sizeof buf){
|
||||
fprint(2, "%s: can't read /dev/screen: %r\n", argv0);
|
||||
exits("screen read");
|
||||
}
|
||||
close(fd);
|
||||
return Rect(atoi(buf+12), atoi(buf+24), atoi(buf+36), atoi(buf+48));
|
||||
}
|
||||
|
||||
int
|
||||
postnote(int group, int pid, char *note)
|
||||
{
|
||||
char file[128];
|
||||
int f, r;
|
||||
|
||||
switch(group) {
|
||||
case PNPROC:
|
||||
sprint(file, "/proc/%d/note", pid);
|
||||
break;
|
||||
case PNGROUP:
|
||||
sprint(file, "/proc/%d/notepg", pid);
|
||||
break;
|
||||
case PNCTL:
|
||||
sprint(file, "/proc/%d/ctl", pid);
|
||||
break;
|
||||
default:
|
||||
return -1;
|
||||
}
|
||||
|
||||
f = open(file, OWRITE);
|
||||
if(f < 0)
|
||||
return -1;
|
||||
|
||||
r = strlen(note);
|
||||
if(write(f, note, r) != r) {
|
||||
close(f);
|
||||
return -1;
|
||||
}
|
||||
close(f);
|
||||
return 0;
|
||||
}
|
374
sys/lib/dist/cmd/bflz.c
vendored
Executable file
374
sys/lib/dist/cmd/bflz.c
vendored
Executable file
|
@ -0,0 +1,374 @@
|
|||
/*
|
||||
* Extraordinarily brute force Lempel & Ziv-like
|
||||
* compressor. The input file must fit in memory
|
||||
* during compression, and the output file will
|
||||
* be reconstructed in memory during decompression.
|
||||
* We search for large common sequences and use a
|
||||
* greedy algorithm to choose which sequence gets
|
||||
* compressed first.
|
||||
*
|
||||
* Files begin with "BLZ\n" and a 32-bit uncompressed file length.
|
||||
*
|
||||
* Output format is a series of blocks followed by
|
||||
* a raw data section. Each block begins with a 32-bit big-endian
|
||||
* number. The top bit is type and the next 31 bits
|
||||
* are uncompressed size. Type is one of
|
||||
* 0 - use raw data for this length
|
||||
* 1 - a 32-bit offset follows
|
||||
* After the blocks come the raw data. (The end of the blocks can be
|
||||
* noted by summing block lengths until you reach the file length.)
|
||||
*/
|
||||
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
|
||||
#define malloc sbrk
|
||||
|
||||
int minrun = 16;
|
||||
int win = 16;
|
||||
ulong outn;
|
||||
int verbose;
|
||||
int mindist;
|
||||
|
||||
enum { Prime = 16777213 }; /* smallest prime < 2^24 (so p*256+256 < 2^32) */
|
||||
enum { NOFF = 3 };
|
||||
|
||||
Biobuf bout;
|
||||
ulong length;
|
||||
uchar *data;
|
||||
ulong sum32(ulong, void*, long);
|
||||
uchar *odat;
|
||||
int nodat;
|
||||
int nraw;
|
||||
int rawstart;
|
||||
int acct;
|
||||
int zlength;
|
||||
int maxchain;
|
||||
int maxrle[256];
|
||||
int nnew;
|
||||
|
||||
typedef struct Node Node;
|
||||
struct Node {
|
||||
Node *link;
|
||||
ulong key;
|
||||
ulong offset[NOFF];
|
||||
};
|
||||
|
||||
Node *nodepool;
|
||||
int nnodepool;
|
||||
|
||||
Node **hash;
|
||||
uint nhash;
|
||||
|
||||
uint maxlen;
|
||||
uint maxsame;
|
||||
uint replacesame = 8*1024*1024;
|
||||
|
||||
Node *freelist, **freeend;
|
||||
uint nalloc;
|
||||
|
||||
Node*
|
||||
allocnode(void)
|
||||
{
|
||||
int i;
|
||||
Node *n;
|
||||
|
||||
if(nnodepool == 0){
|
||||
nnodepool = 256*1024;
|
||||
nodepool = malloc(sizeof(Node)*nnodepool);
|
||||
}
|
||||
if(freelist){
|
||||
n = freelist;
|
||||
freelist = n->link;
|
||||
return n;
|
||||
}
|
||||
assert(nnodepool > 0);
|
||||
nalloc++;
|
||||
n = &nodepool[--nnodepool];
|
||||
for(i=0; i<NOFF; i++)
|
||||
n->offset[i] = -1;
|
||||
|
||||
return n;
|
||||
}
|
||||
|
||||
void
|
||||
freenode(Node *n)
|
||||
{
|
||||
if(freelist == nil)
|
||||
freelist = n;
|
||||
else
|
||||
*freeend = n;
|
||||
freeend = &n->link;
|
||||
n->link = nil;
|
||||
}
|
||||
|
||||
Node**
|
||||
llookup(ulong key)
|
||||
{
|
||||
uint c;
|
||||
Node **l, **top, *n;
|
||||
|
||||
if(nhash == 0){
|
||||
uint x;
|
||||
|
||||
x = length/8;
|
||||
for(nhash=1; nhash<x; nhash<<=1)
|
||||
;
|
||||
hash = sbrk(sizeof(Node*)*nhash);
|
||||
}
|
||||
|
||||
top = &hash[key&(nhash-1)];
|
||||
c = 0;
|
||||
for(l=top; *l; l=&(*l)->link){
|
||||
c++;
|
||||
if((*l)->key == key){
|
||||
/* move to front */
|
||||
n = *l;
|
||||
*l = n->link;
|
||||
n->link = *top;
|
||||
*top = n;
|
||||
return top;
|
||||
}
|
||||
}
|
||||
if(c > maxlen)
|
||||
maxlen = c;
|
||||
return l;
|
||||
}
|
||||
|
||||
Node*
|
||||
lookup(ulong key)
|
||||
{
|
||||
return *llookup(key);
|
||||
}
|
||||
|
||||
void
|
||||
insertnode(ulong key, ulong offset)
|
||||
{
|
||||
int i;
|
||||
Node *n, **l;
|
||||
|
||||
l = llookup(key);
|
||||
if(*l == nil){
|
||||
if(l==&hash[key&(nhash-1)])
|
||||
nnew++;
|
||||
*l = allocnode();
|
||||
(*l)->key = key;
|
||||
}
|
||||
n = *l;
|
||||
|
||||
/* add or replace last */
|
||||
for(i=0; i<NOFF-1 && n->offset[i]!=-1; i++)
|
||||
;
|
||||
n->offset[i] = offset;
|
||||
}
|
||||
|
||||
void
|
||||
Bputint(Biobufhdr *b, int n)
|
||||
{
|
||||
uchar p[4];
|
||||
|
||||
p[0] = n>>24;
|
||||
p[1] = n>>16;
|
||||
p[2] = n>>8;
|
||||
p[3] = n;
|
||||
Bwrite(b, p, 4);
|
||||
}
|
||||
|
||||
void
|
||||
flushraw(void)
|
||||
{
|
||||
if(nraw){
|
||||
if(verbose)
|
||||
fprint(2, "Raw %d+%d\n", rawstart, nraw);
|
||||
zlength += 4+nraw;
|
||||
Bputint(&bout, (1<<31)|nraw);
|
||||
memmove(odat+nodat, data+rawstart, nraw);
|
||||
nodat += nraw;
|
||||
nraw = 0;
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
rawbyte(int i)
|
||||
{
|
||||
assert(acct == i);
|
||||
if(nraw == 0)
|
||||
rawstart = i;
|
||||
acct++;
|
||||
nraw++;
|
||||
return 1;
|
||||
}
|
||||
|
||||
int
|
||||
refblock(int i, int len, int off)
|
||||
{
|
||||
assert(acct == i);
|
||||
acct += len;
|
||||
if(nraw)
|
||||
flushraw();
|
||||
if(verbose)
|
||||
fprint(2, "Copy %d+%d from %d\n", i, len, off);
|
||||
Bputint(&bout, len);
|
||||
Bputint(&bout, off);
|
||||
zlength += 4+4;
|
||||
return len;
|
||||
}
|
||||
|
||||
int
|
||||
cmprun(uchar *a, uchar *b, int len)
|
||||
{
|
||||
int i;
|
||||
|
||||
if(a==b)
|
||||
return 0;
|
||||
for(i=0; i<len && a[i]==b[i]; i++)
|
||||
;
|
||||
return i;
|
||||
}
|
||||
|
||||
int
|
||||
countrle(uchar *a)
|
||||
{
|
||||
int i;
|
||||
|
||||
for(i=0; a[i]==a[0]; i++)
|
||||
;
|
||||
return i;
|
||||
}
|
||||
|
||||
void
|
||||
compress(void)
|
||||
{
|
||||
int best, i, j, o, rle, run, maxrun, maxoff;
|
||||
ulong sum;
|
||||
Node *n;
|
||||
|
||||
sum = 0;
|
||||
for(i=0; i<win && i<length; i++)
|
||||
sum = (sum*256+data[i])%Prime;
|
||||
for(i=0; i<length-win; ){
|
||||
maxrun = 0;
|
||||
maxoff = 0;
|
||||
if(verbose)
|
||||
fprint(2, "look %.6lux\n", sum);
|
||||
n = lookup(sum);
|
||||
if(n){
|
||||
best = -1;
|
||||
for(o=0; o<NOFF; o++){
|
||||
if(n->offset[o] == -1)
|
||||
break;
|
||||
run = cmprun(data+i, data+n->offset[o], length-i);
|
||||
if(run > maxrun && n->offset[o]+mindist < i){
|
||||
maxrun = run;
|
||||
maxoff = n->offset[o];
|
||||
best = o;
|
||||
}
|
||||
}
|
||||
if(best > 0){
|
||||
o = n->offset[best];
|
||||
for(j=best; j>0; j--)
|
||||
n->offset[j] = n->offset[j-1];
|
||||
n->offset[0] = o;
|
||||
}
|
||||
}
|
||||
|
||||
if(maxrun >= minrun)
|
||||
j = i+refblock(i, maxrun, maxoff);
|
||||
else
|
||||
j = i+rawbyte(i);
|
||||
for(; i<j; i++){
|
||||
/* avoid huge chains from large runs of same byte */
|
||||
rle = countrle(data+i);
|
||||
if(rle<4)
|
||||
insertnode(sum, i);
|
||||
else if(rle>maxrle[data[i]]){
|
||||
maxrle[data[i]] = rle;
|
||||
insertnode(sum, i);
|
||||
}
|
||||
sum = (sum*256+data[i+win]) % Prime;
|
||||
sum = (sum + data[i]*outn) % Prime;
|
||||
}
|
||||
}
|
||||
/* could do better here */
|
||||
for(; i<length; i++)
|
||||
rawbyte(i);
|
||||
flushraw();
|
||||
}
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: bflz [-n winsize] [file]\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int fd, i, n;
|
||||
char buf[10485760];
|
||||
|
||||
ARGBEGIN{
|
||||
case 'd':
|
||||
verbose = 1;
|
||||
break;
|
||||
case 's':
|
||||
replacesame = atoi(EARGF(usage()));
|
||||
break;
|
||||
case 'm':
|
||||
mindist = atoi(EARGF(usage()));
|
||||
break;
|
||||
case 'n':
|
||||
win = atoi(EARGF(usage()));
|
||||
minrun = win;
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}ARGEND
|
||||
|
||||
switch(argc){
|
||||
default:
|
||||
usage();
|
||||
case 0:
|
||||
fd = 0;
|
||||
break;
|
||||
case 1:
|
||||
if((fd = open(argv[0], OREAD)) < 0)
|
||||
sysfatal("open %s: %r", argv[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
while((n = readn(fd, buf, sizeof buf)) > 0){
|
||||
data = realloc(data, length+n);
|
||||
if(data == nil)
|
||||
sysfatal("realloc: %r");
|
||||
memmove(data+length, buf, n);
|
||||
length += n;
|
||||
if(n < sizeof buf)
|
||||
break;
|
||||
}
|
||||
odat = malloc(length);
|
||||
if(odat == nil)
|
||||
sysfatal("malloc: %r");
|
||||
|
||||
Binit(&bout, 1, OWRITE);
|
||||
Bprint(&bout, "BLZ\n");
|
||||
Bputint(&bout, length);
|
||||
outn = 1;
|
||||
for(i=0; i<win; i++)
|
||||
outn = (outn * 256) % Prime;
|
||||
|
||||
if(verbose)
|
||||
fprint(2, "256^%d = %.6lux\n", win, outn);
|
||||
outn = Prime - outn;
|
||||
if(verbose)
|
||||
fprint(2, "outn = %.6lux\n", outn);
|
||||
|
||||
compress();
|
||||
Bwrite(&bout, odat, nodat);
|
||||
Bterm(&bout);
|
||||
fprint(2, "brk %p\n", sbrk(1));
|
||||
fprint(2, "%d nodes used; %d of %d hash slots used\n", nalloc, nnew, nhash);
|
||||
exits(nil);
|
||||
}
|
11
sys/lib/dist/cmd/bzfs/bzfs.h
vendored
Executable file
11
sys/lib/dist/cmd/bzfs/bzfs.h
vendored
Executable file
|
@ -0,0 +1,11 @@
|
|||
int unbzip(int);
|
||||
void _unbzip(int, int);
|
||||
int unbflz(int);
|
||||
int xexpand(int);
|
||||
void *emalloc(ulong);
|
||||
void *erealloc(void*, ulong);
|
||||
char *estrdup(char*);
|
||||
|
||||
void ramfsmain(int, char**);
|
||||
extern int chatty;
|
||||
void error(char*, ...);
|
288
sys/lib/dist/cmd/bzfs/mkext.c
vendored
Executable file
288
sys/lib/dist/cmd/bzfs/mkext.c
vendored
Executable file
|
@ -0,0 +1,288 @@
|
|||
/*
|
||||
* bzip2-based file system.
|
||||
* the file system itself is just a bzipped2 xzipped mkfs archive
|
||||
* prefixed with "bzfilesystem\n" and suffixed with
|
||||
* a kilobyte of zeros.
|
||||
*
|
||||
* changes to the file system are only kept in
|
||||
* memory, not written back to the disk.
|
||||
*
|
||||
* this is intended for use on a floppy boot disk.
|
||||
* we assume the file is in the dos file system and
|
||||
* contiguous on the disk: finding it amounts to
|
||||
* looking at the beginning of each sector for
|
||||
* "bzfilesystem\n". then we pipe it through
|
||||
* bunzip2 and store the files in a file tree in memory.
|
||||
* things are slightly complicated by the fact that
|
||||
* devfloppy requires reads to be on a 512-byte
|
||||
* boundary and be a multiple of 512 bytes; we
|
||||
* fork a process to relieve bunzip2 of this restriction.
|
||||
*/
|
||||
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include <auth.h>
|
||||
#include <fcall.h>
|
||||
#include "bzfs.h"
|
||||
|
||||
enum{
|
||||
LEN = 8*1024,
|
||||
NFLDS = 6, /* filename, modes, uid, gid, mtime, bytes */
|
||||
};
|
||||
|
||||
void mkdirs(char*, char*);
|
||||
void mkdir(char*, ulong, ulong, char*, char*);
|
||||
void extract(char*, ulong, ulong, char*, char*, ulong);
|
||||
void seekpast(ulong);
|
||||
void error(char*, ...);
|
||||
void warn(char*, ...);
|
||||
void usage(void);
|
||||
char *mtpt;
|
||||
Biobufhdr bin;
|
||||
uchar binbuf[2*LEN];
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: bzfs [-m mtpt] [-s] [-f file] [-h]\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
/*
|
||||
* floppy disks can only be read on 512-byte
|
||||
* boundaries and in 512 byte multiples.
|
||||
* feed one over a pipe to allow arbitrary reading.
|
||||
*/
|
||||
char zero[512];
|
||||
int
|
||||
blockread(int in, char *first, int nfirst)
|
||||
{
|
||||
int p[2], out, n, rv;
|
||||
char blk[512];
|
||||
|
||||
if(pipe(p) < 0)
|
||||
sysfatal("pipe: %r");
|
||||
rv = p[0];
|
||||
out = p[1];
|
||||
switch(rfork(RFPROC|RFNOTEG|RFFDG)){
|
||||
case -1:
|
||||
sysfatal("fork: %r");
|
||||
case 0:
|
||||
close(rv);
|
||||
break;
|
||||
default:
|
||||
close(in);
|
||||
close(out);
|
||||
return rv;
|
||||
}
|
||||
|
||||
write(out, first, nfirst);
|
||||
|
||||
while((n=read(in, blk, sizeof blk)) > 0){
|
||||
if(write(out, blk, n) != n)
|
||||
break;
|
||||
if(n == sizeof(blk) && memcmp(zero, blk, n) == n)
|
||||
break;
|
||||
}
|
||||
_exits(0);
|
||||
return -1;
|
||||
}
|
||||
|
||||
enum { NAMELEN = 28 };
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *rargv[10];
|
||||
int rargc;
|
||||
char *fields[NFLDS], name[2*LEN], *p, *namep;
|
||||
char uid[NAMELEN], gid[NAMELEN];
|
||||
ulong mode, bytes, mtime;
|
||||
char *file;
|
||||
int i, n, stdin, fd, chatty;
|
||||
char blk[512];
|
||||
|
||||
if(argc>1 && strcmp(argv[1], "RAMFS") == 0){
|
||||
argv[1] = argv[0];
|
||||
ramfsmain(argc-1, argv+1);
|
||||
exits(nil);
|
||||
}
|
||||
if(argc>1 && strcmp(argv[1], "BUNZIP") == 0){
|
||||
_unbzip(0, 1);
|
||||
exits(nil);
|
||||
}
|
||||
|
||||
rfork(RFNOTEG);
|
||||
stdin = 0;
|
||||
file = nil;
|
||||
namep = name;
|
||||
mtpt = "/root";
|
||||
chatty = 0;
|
||||
ARGBEGIN{
|
||||
case 'd':
|
||||
chatty = !chatty;
|
||||
break;
|
||||
case 'f':
|
||||
file = ARGF();
|
||||
break;
|
||||
case 's':
|
||||
stdin++;
|
||||
break;
|
||||
case 'm':
|
||||
mtpt = ARGF();
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}ARGEND
|
||||
|
||||
if(argc != 0)
|
||||
usage();
|
||||
|
||||
if(file == nil) {
|
||||
fprint(2, "must specify -f file\n");
|
||||
usage();
|
||||
}
|
||||
|
||||
if((fd = open(file, OREAD)) < 0) {
|
||||
fprint(2, "cannot open \"%s\": %r\n", file);
|
||||
exits("open");
|
||||
}
|
||||
|
||||
rargv[0] = "ramfs";
|
||||
rargc = 1;
|
||||
if(stdin)
|
||||
rargv[rargc++] = "-i";
|
||||
rargv[rargc++] = "-m";
|
||||
rargv[rargc++] = mtpt;
|
||||
rargv[rargc] = nil;
|
||||
ramfsmain(rargc, rargv);
|
||||
|
||||
if(1 || strstr(file, "disk")) { /* search for archive on block boundary */
|
||||
if(chatty) fprint(2, "searching for bz\n");
|
||||
for(i=0;; i++){
|
||||
if((n = readn(fd, blk, sizeof blk)) != sizeof blk)
|
||||
sysfatal("read %d gets %d: %r\n", i, n);
|
||||
if(strncmp(blk, "bzfilesystem\n", 13) == 0)
|
||||
break;
|
||||
}
|
||||
if(chatty) fprint(2, "found at %d\n", i);
|
||||
}
|
||||
|
||||
if(chdir(mtpt) < 0)
|
||||
error("chdir %s: %r", mtpt);
|
||||
|
||||
fd = unbflz(unbzip(blockread(fd, blk+13, sizeof(blk)-13)));
|
||||
|
||||
Binits(&bin, fd, OREAD, binbuf, sizeof binbuf);
|
||||
while(p = Brdline(&bin, '\n')){
|
||||
p[Blinelen(&bin)-1] = '\0';
|
||||
if(chatty) fprint(2, "%s\n", p);
|
||||
if(strcmp(p, "end of archive") == 0){
|
||||
_exits(0);
|
||||
}
|
||||
if(getfields(p, fields, NFLDS, 0, " \t") != NFLDS){
|
||||
warn("too few fields in file header");
|
||||
continue;
|
||||
}
|
||||
strcpy(namep, fields[0]);
|
||||
mode = strtoul(fields[1], 0, 8);
|
||||
mtime = strtoul(fields[4], 0, 10);
|
||||
bytes = strtoul(fields[5], 0, 10);
|
||||
strncpy(uid, fields[2], NAMELEN);
|
||||
strncpy(gid, fields[3], NAMELEN);
|
||||
if(mode & DMDIR)
|
||||
mkdir(name, mode, mtime, uid, gid);
|
||||
else
|
||||
extract(name, mode, mtime, uid, gid, bytes);
|
||||
}
|
||||
fprint(2, "premature end of archive\n");
|
||||
exits("premature end of archive");
|
||||
}
|
||||
|
||||
char buf[8192];
|
||||
|
||||
int
|
||||
ffcreate(char *name, ulong mode, char *uid, char *gid, ulong mtime, int length)
|
||||
{
|
||||
int fd, om;
|
||||
Dir nd;
|
||||
|
||||
sprint(buf, "%s/%s", mtpt, name);
|
||||
om = ORDWR;
|
||||
if(mode&DMDIR)
|
||||
om = OREAD;
|
||||
if((fd = create(buf, om, (mode&DMDIR)|0666)) < 0)
|
||||
error("create %s: %r", buf);
|
||||
|
||||
nulldir(&nd);
|
||||
nd.mode = mode;
|
||||
nd.uid = uid;
|
||||
nd.gid = gid;
|
||||
nd.mtime = mtime;
|
||||
if(length)
|
||||
nd.length = length;
|
||||
if(dirfwstat(fd, &nd) < 0)
|
||||
error("fwstat %s: %r", buf);
|
||||
|
||||
return fd;
|
||||
}
|
||||
|
||||
void
|
||||
mkdir(char *name, ulong mode, ulong mtime, char *uid, char *gid)
|
||||
{
|
||||
close(ffcreate(name, mode, uid, gid, mtime, 0));
|
||||
}
|
||||
|
||||
void
|
||||
extract(char *name, ulong mode, ulong mtime, char *uid, char *gid, ulong bytes)
|
||||
{
|
||||
int fd, tot, n;
|
||||
|
||||
fd = ffcreate(name, mode, uid, gid, mtime, bytes);
|
||||
|
||||
for(tot = 0; tot < bytes; tot += n){
|
||||
n = sizeof buf;
|
||||
if(tot + n > bytes)
|
||||
n = bytes - tot;
|
||||
n = Bread(&bin, buf, n);
|
||||
if(n <= 0)
|
||||
error("premature eof reading %s", name);
|
||||
if(write(fd, buf, n) != n)
|
||||
error("short write writing %s", name);
|
||||
}
|
||||
close(fd);
|
||||
}
|
||||
|
||||
void
|
||||
error(char *fmt, ...)
|
||||
{
|
||||
char buf[1024];
|
||||
va_list arg;
|
||||
|
||||
sprint(buf, "%s: ", argv0);
|
||||
va_start(arg, fmt);
|
||||
vseprint(buf+strlen(buf), buf+sizeof(buf), fmt, arg);
|
||||
va_end(arg);
|
||||
fprint(2, "%s\n", buf);
|
||||
exits(0);
|
||||
}
|
||||
|
||||
void
|
||||
warn(char *fmt, ...)
|
||||
{
|
||||
char buf[1024];
|
||||
va_list arg;
|
||||
|
||||
sprint(buf, "%s: ", argv0);
|
||||
va_start(arg, fmt);
|
||||
vseprint(buf+strlen(buf), buf+sizeof(buf), fmt, arg);
|
||||
va_end(arg);
|
||||
fprint(2, "%s\n", buf);
|
||||
}
|
||||
|
||||
int
|
||||
_efgfmt(Fmt*)
|
||||
{
|
||||
return -1;
|
||||
}
|
20
sys/lib/dist/cmd/bzfs/mkfile
vendored
Executable file
20
sys/lib/dist/cmd/bzfs/mkfile
vendored
Executable file
|
@ -0,0 +1,20 @@
|
|||
</$objtype/mkfile
|
||||
|
||||
TARG=bzfs
|
||||
|
||||
OFILES=\
|
||||
mkext.$O\
|
||||
oramfs.$O\
|
||||
unbflz.$O\
|
||||
unbzip.$O\
|
||||
|
||||
HFILES=bzfs.h
|
||||
|
||||
BIN=/sys/lib/dist/bin/$objtype
|
||||
LIB=/sys/src/cmd/bzip2/lib/libbzip2.a$O
|
||||
</sys/src/cmd/mkone
|
||||
|
||||
CFLAGS=$CFLAGS -p -I/sys/src/cmd/bzip2/lib
|
||||
|
||||
/sys/src/cmd/bzip2/lib/libbzip2.a$O:
|
||||
@{cd /sys/src/cmd/bzip2/lib && mk}
|
927
sys/lib/dist/cmd/bzfs/oramfs.c
vendored
Executable file
927
sys/lib/dist/cmd/bzfs/oramfs.c
vendored
Executable file
|
@ -0,0 +1,927 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <auth.h>
|
||||
#include <fcall.h>
|
||||
#include "bzfs.h"
|
||||
|
||||
/*
|
||||
* Rather than reading /adm/users, which is a lot of work for
|
||||
* a toy program, we assume all groups have the form
|
||||
* NNN:user:user:
|
||||
* meaning that each user is the leader of his own group.
|
||||
*/
|
||||
|
||||
enum
|
||||
{
|
||||
OPERM = 0x3, /* mask of all permission types in open mode */
|
||||
Nram = 512,
|
||||
Maxsize = 512*1024*1024,
|
||||
Maxfdata = 8192,
|
||||
};
|
||||
|
||||
typedef struct Fid Fid;
|
||||
typedef struct Ram Ram;
|
||||
|
||||
struct Fid
|
||||
{
|
||||
short busy;
|
||||
short open;
|
||||
short rclose;
|
||||
int fid;
|
||||
Fid *next;
|
||||
char *user;
|
||||
Ram *ram;
|
||||
};
|
||||
|
||||
struct Ram
|
||||
{
|
||||
short busy;
|
||||
short open;
|
||||
long parent; /* index in Ram array */
|
||||
Qid qid;
|
||||
long perm;
|
||||
char *name;
|
||||
ulong atime;
|
||||
ulong mtime;
|
||||
char *user;
|
||||
char *group;
|
||||
char *muid;
|
||||
char *data;
|
||||
long ndata;
|
||||
};
|
||||
|
||||
enum
|
||||
{
|
||||
Pexec = 1,
|
||||
Pwrite = 2,
|
||||
Pread = 4,
|
||||
Pother = 1,
|
||||
Pgroup = 8,
|
||||
Powner = 64,
|
||||
};
|
||||
|
||||
ulong path; /* incremented for each new file */
|
||||
Fid *fids;
|
||||
Ram ram[Nram];
|
||||
int nram;
|
||||
int mfd[2];
|
||||
char *user;
|
||||
uchar mdata[IOHDRSZ+Maxfdata];
|
||||
uchar rdata[Maxfdata]; /* buffer for data in reply */
|
||||
uchar statbuf[STATMAX];
|
||||
Fcall thdr;
|
||||
Fcall rhdr;
|
||||
int messagesize = sizeof mdata;
|
||||
|
||||
Fid * newfid(int);
|
||||
uint ramstat(Ram*, uchar*, uint);
|
||||
void io(void);
|
||||
void *erealloc(void*, ulong);
|
||||
void *emalloc(ulong);
|
||||
char *estrdup(char*);
|
||||
void ramfsusage(void);
|
||||
int perm(Fid*, Ram*, int);
|
||||
char *atom(char*);
|
||||
|
||||
char *rflush(Fid*), *rversion(Fid*), *rauth(Fid*),
|
||||
*rattach(Fid*), *rwalk(Fid*),
|
||||
*ropen(Fid*), *rcreate(Fid*),
|
||||
*rread(Fid*), *rwrite(Fid*), *rclunk(Fid*),
|
||||
*rremove(Fid*), *rstat(Fid*), *rwstat(Fid*);
|
||||
|
||||
char *(*fcalls[])(Fid*) = {
|
||||
[Tversion] rversion,
|
||||
[Tflush] rflush,
|
||||
[Tauth] rauth,
|
||||
[Tattach] rattach,
|
||||
[Twalk] rwalk,
|
||||
[Topen] ropen,
|
||||
[Tcreate] rcreate,
|
||||
[Tread] rread,
|
||||
[Twrite] rwrite,
|
||||
[Tclunk] rclunk,
|
||||
[Tremove] rremove,
|
||||
[Tstat] rstat,
|
||||
[Twstat] rwstat,
|
||||
};
|
||||
|
||||
char Eperm[] = "permission denied";
|
||||
char Enotdir[] = "not a directory";
|
||||
char Enoauth[] = "no authentication in ramfs";
|
||||
char Enotexist[] = "file does not exist";
|
||||
char Einuse[] = "file in use";
|
||||
char Eexist[] = "file exists";
|
||||
char Eisdir[] = "file is a directory";
|
||||
char Enotowner[] = "not owner";
|
||||
char Eisopen[] = "file already open for I/O";
|
||||
char Excl[] = "exclusive use file already open";
|
||||
char Ename[] = "illegal name";
|
||||
char Eversion[] = "unknown 9P version";
|
||||
|
||||
int debug;
|
||||
|
||||
void
|
||||
notifyf(void *a, char *s)
|
||||
{
|
||||
USED(a);
|
||||
if(strncmp(s, "interrupt", 9) == 0)
|
||||
noted(NCONT);
|
||||
noted(NDFLT);
|
||||
}
|
||||
|
||||
void
|
||||
ramfsmain(int argc, char *argv[])
|
||||
{
|
||||
Ram *r;
|
||||
char *defmnt;
|
||||
int p[2];
|
||||
char buf[32];
|
||||
int fd, srvfd;
|
||||
int stdio = 0;
|
||||
|
||||
srvfd = -1;
|
||||
defmnt = "/tmp";
|
||||
ARGBEGIN{
|
||||
case 'D':
|
||||
debug = 1;
|
||||
break;
|
||||
case 'i': /* this is DIFFERENT from normal ramfs; use 1 for both for kernel */
|
||||
defmnt = 0;
|
||||
stdio = 1;
|
||||
srvfd = 0;
|
||||
mfd[0] = 1;
|
||||
mfd[1] = 1;
|
||||
break;
|
||||
case 's':
|
||||
defmnt = 0;
|
||||
break;
|
||||
case 'm':
|
||||
defmnt = ARGF();
|
||||
break;
|
||||
default:
|
||||
ramfsusage();
|
||||
}ARGEND
|
||||
|
||||
if(!stdio){
|
||||
if(pipe(p) < 0)
|
||||
error("pipe failed");
|
||||
srvfd = p[1];
|
||||
mfd[0] = p[0];
|
||||
mfd[1] = p[0];
|
||||
if(defmnt == 0){
|
||||
fd = create("#s/ramfs", OWRITE, 0666);
|
||||
if(fd < 0)
|
||||
error("create of /srv/ramfs failed");
|
||||
sprint(buf, "%d", p[1]);
|
||||
if(write(fd, buf, strlen(buf)) < 0)
|
||||
error("writing /srv/ramfs");
|
||||
}
|
||||
}
|
||||
|
||||
user = atom(getuser());
|
||||
notify(notifyf);
|
||||
nram = 1;
|
||||
r = &ram[0];
|
||||
r->busy = 1;
|
||||
r->data = 0;
|
||||
r->ndata = 0;
|
||||
r->perm = DMDIR | 0775;
|
||||
r->qid.type = QTDIR;
|
||||
r->qid.path = 0LL;
|
||||
r->qid.vers = 0;
|
||||
r->parent = 0;
|
||||
r->user = user;
|
||||
r->group = user;
|
||||
r->muid = user;
|
||||
r->atime = time(0);
|
||||
r->mtime = r->atime;
|
||||
r->name = estrdup(".");
|
||||
|
||||
if(debug)
|
||||
fmtinstall('F', fcallfmt);
|
||||
switch(rfork(RFFDG|RFPROC|RFNAMEG|RFNOTEG)){
|
||||
case -1:
|
||||
error("fork");
|
||||
case 0:
|
||||
close(srvfd);
|
||||
io();
|
||||
break;
|
||||
default:
|
||||
close(mfd[0]); /* don't deadlock if child fails */
|
||||
if(defmnt && mount(srvfd, -1, defmnt, MREPL|MCREATE, "") < 0)
|
||||
error("mount failed: %r");
|
||||
}
|
||||
}
|
||||
|
||||
char*
|
||||
rversion(Fid*)
|
||||
{
|
||||
Fid *f;
|
||||
|
||||
for(f = fids; f; f = f->next)
|
||||
if(f->busy)
|
||||
rclunk(f);
|
||||
if(thdr.msize > sizeof mdata)
|
||||
rhdr.msize = sizeof mdata;
|
||||
else
|
||||
rhdr.msize = thdr.msize;
|
||||
messagesize = rhdr.msize;
|
||||
if(strncmp(thdr.version, "9P2000", 6) != 0)
|
||||
return Eversion;
|
||||
rhdr.version = "9P2000";
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
rauth(Fid*)
|
||||
{
|
||||
return "ramfs: no authentication required";
|
||||
}
|
||||
|
||||
char*
|
||||
rflush(Fid *f)
|
||||
{
|
||||
USED(f);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
rattach(Fid *f)
|
||||
{
|
||||
/* no authentication! */
|
||||
f->busy = 1;
|
||||
f->rclose = 0;
|
||||
f->ram = &ram[0];
|
||||
rhdr.qid = f->ram->qid;
|
||||
if(thdr.uname[0])
|
||||
f->user = atom(thdr.uname);
|
||||
else
|
||||
f->user = atom("none");
|
||||
if(strcmp(user, "none") == 0)
|
||||
user = f->user;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
clone(Fid *f, Fid **nf)
|
||||
{
|
||||
if(f->open)
|
||||
return Eisopen;
|
||||
if(f->ram->busy == 0)
|
||||
return Enotexist;
|
||||
*nf = newfid(thdr.newfid);
|
||||
(*nf)->busy = 1;
|
||||
(*nf)->open = 0;
|
||||
(*nf)->rclose = 0;
|
||||
(*nf)->ram = f->ram;
|
||||
(*nf)->user = f->user; /* no ref count; the leakage is minor */
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
rwalk(Fid *f)
|
||||
{
|
||||
Ram *r, *fram;
|
||||
char *name;
|
||||
Ram *parent;
|
||||
Fid *nf;
|
||||
char *err;
|
||||
ulong t;
|
||||
int i;
|
||||
|
||||
err = nil;
|
||||
nf = nil;
|
||||
rhdr.nwqid = 0;
|
||||
if(rhdr.newfid != rhdr.fid){
|
||||
err = clone(f, &nf);
|
||||
if(err)
|
||||
return err;
|
||||
f = nf; /* walk the new fid */
|
||||
}
|
||||
fram = f->ram;
|
||||
if(thdr.nwname > 0){
|
||||
t = time(0);
|
||||
for(i=0; i<thdr.nwname && i<MAXWELEM; i++){
|
||||
if((fram->qid.type & QTDIR) == 0){
|
||||
err = Enotdir;
|
||||
break;
|
||||
}
|
||||
if(fram->busy == 0){
|
||||
err = Enotexist;
|
||||
break;
|
||||
}
|
||||
fram->atime = t;
|
||||
name = thdr.wname[i];
|
||||
if(strcmp(name, ".") == 0){
|
||||
Found:
|
||||
rhdr.nwqid++;
|
||||
rhdr.wqid[i] = fram->qid;
|
||||
continue;
|
||||
}
|
||||
parent = &ram[fram->parent];
|
||||
#ifdef CHECKS
|
||||
if(!perm(f, parent, Pexec)){
|
||||
err = Eperm;
|
||||
break;
|
||||
}
|
||||
#endif
|
||||
if(strcmp(name, "..") == 0){
|
||||
fram = parent;
|
||||
goto Found;
|
||||
}
|
||||
for(r=ram; r < &ram[nram]; r++)
|
||||
if(r->busy && r->parent==fram-ram && strcmp(name, r->name)==0){
|
||||
fram = r;
|
||||
goto Found;
|
||||
}
|
||||
break;
|
||||
}
|
||||
if(i==0 && err == nil)
|
||||
err = Enotexist;
|
||||
}
|
||||
if(nf != nil && (err!=nil || rhdr.nwqid<thdr.nwname)){
|
||||
/* clunk the new fid, which is the one we walked */
|
||||
f->busy = 0;
|
||||
f->ram = nil;
|
||||
}
|
||||
if(rhdr.nwqid == thdr.nwname) /* update the fid after a successful walk */
|
||||
f->ram = fram;
|
||||
return err;
|
||||
}
|
||||
|
||||
char *
|
||||
ropen(Fid *f)
|
||||
{
|
||||
Ram *r;
|
||||
int mode, trunc;
|
||||
|
||||
if(f->open)
|
||||
return Eisopen;
|
||||
r = f->ram;
|
||||
if(r->busy == 0)
|
||||
return Enotexist;
|
||||
if(r->perm & DMEXCL)
|
||||
if(r->open)
|
||||
return Excl;
|
||||
mode = thdr.mode;
|
||||
if(r->qid.type & QTDIR){
|
||||
if(mode != OREAD)
|
||||
return Eperm;
|
||||
rhdr.qid = r->qid;
|
||||
return 0;
|
||||
}
|
||||
if(mode & ORCLOSE){
|
||||
/* can't remove root; must be able to write parent */
|
||||
if(r->qid.path==0 || !perm(f, &ram[r->parent], Pwrite))
|
||||
return Eperm;
|
||||
f->rclose = 1;
|
||||
}
|
||||
trunc = mode & OTRUNC;
|
||||
mode &= OPERM;
|
||||
if(mode==OWRITE || mode==ORDWR || trunc)
|
||||
if(!perm(f, r, Pwrite))
|
||||
return Eperm;
|
||||
if(mode==OREAD || mode==ORDWR)
|
||||
if(!perm(f, r, Pread))
|
||||
return Eperm;
|
||||
if(mode==OEXEC)
|
||||
if(!perm(f, r, Pexec))
|
||||
return Eperm;
|
||||
if(trunc && (r->perm&DMAPPEND)==0){
|
||||
r->ndata = 0;
|
||||
if(r->data)
|
||||
free(r->data);
|
||||
r->data = 0;
|
||||
r->qid.vers++;
|
||||
}
|
||||
rhdr.qid = r->qid;
|
||||
rhdr.iounit = messagesize-IOHDRSZ;
|
||||
f->open = 1;
|
||||
r->open++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
rcreate(Fid *f)
|
||||
{
|
||||
Ram *r;
|
||||
char *name;
|
||||
long parent, prm;
|
||||
|
||||
if(f->open)
|
||||
return Eisopen;
|
||||
if(f->ram->busy == 0)
|
||||
return Enotexist;
|
||||
parent = f->ram - ram;
|
||||
if((f->ram->qid.type&QTDIR) == 0)
|
||||
return Enotdir;
|
||||
/* must be able to write parent */
|
||||
#ifdef CHECKS
|
||||
if(!perm(f, f->ram, Pwrite))
|
||||
return Eperm;
|
||||
#endif
|
||||
prm = thdr.perm;
|
||||
name = thdr.name;
|
||||
if(strcmp(name, ".")==0 || strcmp(name, "..")==0)
|
||||
return Ename;
|
||||
for(r=ram; r<&ram[nram]; r++)
|
||||
if(r->busy && parent==r->parent)
|
||||
if(strcmp((char*)name, r->name)==0)
|
||||
return Einuse;
|
||||
for(r=ram; r->busy; r++)
|
||||
if(r == &ram[Nram-1])
|
||||
return "no free ram resources";
|
||||
r->busy = 1;
|
||||
r->qid.path = ++path;
|
||||
r->qid.vers = 0;
|
||||
if(prm & DMDIR)
|
||||
r->qid.type |= QTDIR;
|
||||
r->parent = parent;
|
||||
free(r->name);
|
||||
r->name = estrdup(name);
|
||||
r->user = f->user;
|
||||
r->group = f->ram->group;
|
||||
r->muid = f->ram->muid;
|
||||
if(prm & DMDIR)
|
||||
prm = (prm&~0777) | (f->ram->perm&prm&0777);
|
||||
else
|
||||
prm = (prm&(~0777|0111)) | (f->ram->perm&prm&0666);
|
||||
r->perm = prm;
|
||||
r->ndata = 0;
|
||||
if(r-ram >= nram)
|
||||
nram = r - ram + 1;
|
||||
r->atime = time(0);
|
||||
r->mtime = r->atime;
|
||||
f->ram->mtime = r->atime;
|
||||
f->ram = r;
|
||||
rhdr.qid = r->qid;
|
||||
rhdr.iounit = messagesize-IOHDRSZ;
|
||||
f->open = 1;
|
||||
if(thdr.mode & ORCLOSE)
|
||||
f->rclose = 1;
|
||||
r->open++;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
rread(Fid *f)
|
||||
{
|
||||
Ram *r;
|
||||
uchar *buf;
|
||||
long off;
|
||||
int n, m, cnt;
|
||||
|
||||
if(f->ram->busy == 0)
|
||||
return Enotexist;
|
||||
n = 0;
|
||||
rhdr.count = 0;
|
||||
off = thdr.offset;
|
||||
buf = rdata;
|
||||
cnt = thdr.count;
|
||||
if(cnt > messagesize) /* shouldn't happen, anyway */
|
||||
cnt = messagesize;
|
||||
if(f->ram->qid.type & QTDIR){
|
||||
for(r=ram+1; off > 0; r++){
|
||||
if(r->busy && r->parent==f->ram-ram)
|
||||
off -= ramstat(r, statbuf, sizeof statbuf);
|
||||
if(r == &ram[nram-1])
|
||||
return 0;
|
||||
}
|
||||
for(; r<&ram[nram] && n < cnt; r++){
|
||||
if(!r->busy || r->parent!=f->ram-ram)
|
||||
continue;
|
||||
m = ramstat(r, buf+n, cnt-n);
|
||||
if(m == 0)
|
||||
break;
|
||||
n += m;
|
||||
}
|
||||
rhdr.data = (char*)rdata;
|
||||
rhdr.count = n;
|
||||
return 0;
|
||||
}
|
||||
r = f->ram;
|
||||
if(off >= r->ndata)
|
||||
return 0;
|
||||
r->atime = time(0);
|
||||
n = cnt;
|
||||
if(off+n > r->ndata)
|
||||
n = r->ndata - off;
|
||||
rhdr.data = r->data+off;
|
||||
rhdr.count = n;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char*
|
||||
rwrite(Fid *f)
|
||||
{
|
||||
Ram *r;
|
||||
ulong off;
|
||||
int cnt;
|
||||
|
||||
r = f->ram;
|
||||
if(r->busy == 0)
|
||||
return Enotexist;
|
||||
off = thdr.offset;
|
||||
if(r->perm & DMAPPEND)
|
||||
off = r->ndata;
|
||||
cnt = thdr.count;
|
||||
if(r->qid.type & QTDIR)
|
||||
return Eisdir;
|
||||
if(off+cnt >= Maxsize) /* sanity check */
|
||||
return "write too big";
|
||||
if(off+cnt > r->ndata)
|
||||
r->data = erealloc(r->data, off+cnt);
|
||||
if(off > r->ndata)
|
||||
memset(r->data+r->ndata, 0, off-r->ndata);
|
||||
if(off+cnt > r->ndata)
|
||||
r->ndata = off+cnt;
|
||||
memmove(r->data+off, thdr.data, cnt);
|
||||
r->qid.vers++;
|
||||
r->mtime = time(0);
|
||||
rhdr.count = cnt;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void
|
||||
realremove(Ram *r)
|
||||
{
|
||||
r->ndata = 0;
|
||||
if(r->data)
|
||||
free(r->data);
|
||||
r->data = 0;
|
||||
r->parent = 0;
|
||||
memset(&r->qid, 0, sizeof r->qid);
|
||||
free(r->name);
|
||||
r->name = nil;
|
||||
r->busy = 0;
|
||||
}
|
||||
|
||||
char *
|
||||
rclunk(Fid *f)
|
||||
{
|
||||
if(f->open)
|
||||
f->ram->open--;
|
||||
if(f->rclose)
|
||||
realremove(f->ram);
|
||||
f->busy = 0;
|
||||
f->open = 0;
|
||||
f->ram = 0;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
rremove(Fid *f)
|
||||
{
|
||||
Ram *r;
|
||||
|
||||
if(f->open)
|
||||
f->ram->open--;
|
||||
f->busy = 0;
|
||||
f->open = 0;
|
||||
r = f->ram;
|
||||
f->ram = 0;
|
||||
#ifdef CHECKS
|
||||
if(r->qid.path == 0 || !perm(f, &ram[r->parent], Pwrite))
|
||||
return Eperm;
|
||||
#endif
|
||||
ram[r->parent].mtime = time(0);
|
||||
realremove(r);
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
rstat(Fid *f)
|
||||
{
|
||||
if(f->ram->busy == 0)
|
||||
return Enotexist;
|
||||
rhdr.nstat = ramstat(f->ram, statbuf, sizeof statbuf);
|
||||
rhdr.stat = statbuf;
|
||||
return 0;
|
||||
}
|
||||
|
||||
char *
|
||||
rwstat(Fid *f)
|
||||
{
|
||||
Ram *r, *s;
|
||||
Dir dir;
|
||||
|
||||
if(f->ram->busy == 0)
|
||||
return Enotexist;
|
||||
convM2D(thdr.stat, thdr.nstat, &dir, (char*)statbuf);
|
||||
r = f->ram;
|
||||
|
||||
/*
|
||||
* To change length, must have write permission on file.
|
||||
*/
|
||||
#ifdef CHECKS
|
||||
if(dir.length!=~0 && dir.length!=r->ndata){
|
||||
if(!perm(f, r, Pwrite))
|
||||
return Eperm;
|
||||
}
|
||||
#endif
|
||||
|
||||
/*
|
||||
* To change name, must have write permission in parent
|
||||
* and name must be unique.
|
||||
*/
|
||||
if(dir.name[0]!='\0' && strcmp(dir.name, r->name)!=0){
|
||||
#ifdef CHECKS
|
||||
if(!perm(f, &ram[r->parent], Pwrite))
|
||||
return Eperm;
|
||||
#endif
|
||||
for(s=ram; s<&ram[nram]; s++)
|
||||
if(s->busy && s->parent==r->parent)
|
||||
if(strcmp(dir.name, s->name)==0)
|
||||
return Eexist;
|
||||
}
|
||||
|
||||
#ifdef OWNERS
|
||||
/*
|
||||
* To change mode, must be owner or group leader.
|
||||
* Because of lack of users file, leader=>group itself.
|
||||
*/
|
||||
if(dir.mode!=~0 && r->perm!=dir.mode){
|
||||
if(strcmp(f->user, r->user) != 0)
|
||||
if(strcmp(f->user, r->group) != 0)
|
||||
return Enotowner;
|
||||
}
|
||||
|
||||
/*
|
||||
* To change group, must be owner and member of new group,
|
||||
* or leader of current group and leader of new group.
|
||||
* Second case cannot happen, but we check anyway.
|
||||
*/
|
||||
if(dir.gid[0]!='\0' && strcmp(r->group, dir.gid)!=0){
|
||||
if(strcmp(f->user, r->user) == 0)
|
||||
if(strcmp(f->user, dir.gid) == 0)
|
||||
goto ok;
|
||||
if(strcmp(f->user, r->group) == 0)
|
||||
if(strcmp(f->user, dir.gid) == 0)
|
||||
goto ok;
|
||||
return Enotowner;
|
||||
ok:;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* all ok; do it */
|
||||
if(dir.mode != ~0){
|
||||
dir.mode &= ~DMDIR; /* cannot change dir bit */
|
||||
dir.mode |= r->perm&DMDIR;
|
||||
r->perm = dir.mode;
|
||||
}
|
||||
if(dir.name[0] != '\0'){
|
||||
free(r->name);
|
||||
r->name = estrdup(dir.name);
|
||||
}
|
||||
if(dir.gid[0] != '\0')
|
||||
r->group = atom(dir.gid);
|
||||
|
||||
if(dir.uid[0] != '\0')
|
||||
r->user = atom(dir.uid);
|
||||
|
||||
if(dir.length!=~0 && dir.length!=r->ndata){
|
||||
r->data = erealloc(r->data, dir.length);
|
||||
if(r->ndata < dir.length)
|
||||
memset(r->data+r->ndata, 0, dir.length-r->ndata);
|
||||
r->ndata = dir.length;
|
||||
}
|
||||
|
||||
if(dir.mtime != ~0)
|
||||
r->mtime = dir.mtime;
|
||||
|
||||
ram[r->parent].mtime = time(0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
uint
|
||||
ramstat(Ram *r, uchar *buf, uint nbuf)
|
||||
{
|
||||
Dir dir;
|
||||
|
||||
dir.name = r->name;
|
||||
dir.qid = r->qid;
|
||||
dir.mode = r->perm;
|
||||
dir.length = r->ndata;
|
||||
dir.uid = r->user;
|
||||
dir.gid = r->group;
|
||||
dir.muid = r->muid;
|
||||
dir.atime = r->atime;
|
||||
dir.mtime = r->mtime;
|
||||
return convD2M(&dir, buf, nbuf);
|
||||
}
|
||||
|
||||
Fid *
|
||||
newfid(int fid)
|
||||
{
|
||||
Fid *f, *ff;
|
||||
|
||||
ff = 0;
|
||||
for(f = fids; f; f = f->next)
|
||||
if(f->fid == fid)
|
||||
return f;
|
||||
else if(!ff && !f->busy)
|
||||
ff = f;
|
||||
if(ff){
|
||||
ff->fid = fid;
|
||||
return ff;
|
||||
}
|
||||
f = emalloc(sizeof *f);
|
||||
f->ram = nil;
|
||||
f->fid = fid;
|
||||
f->next = fids;
|
||||
fids = f;
|
||||
return f;
|
||||
}
|
||||
|
||||
void
|
||||
io(void)
|
||||
{
|
||||
char *err;
|
||||
int n, pid;
|
||||
|
||||
pid = getpid();
|
||||
|
||||
for(;;){
|
||||
/*
|
||||
* reading from a pipe or a network device
|
||||
* will give an error after a few eof reads.
|
||||
* however, we cannot tell the difference
|
||||
* between a zero-length read and an interrupt
|
||||
* on the processes writing to us,
|
||||
* so we wait for the error.
|
||||
*/
|
||||
n = read9pmsg(mfd[0], mdata, messagesize);
|
||||
if(n < 0)
|
||||
error("mount read: %r");
|
||||
if(n == 0)
|
||||
continue;
|
||||
if(convM2S(mdata, n, &thdr) == 0)
|
||||
continue;
|
||||
|
||||
if(debug)
|
||||
fprint(2, "ramfs %d:<-%F\n", pid, &thdr);
|
||||
|
||||
if(!fcalls[thdr.type])
|
||||
err = "bad fcall type";
|
||||
else
|
||||
err = (*fcalls[thdr.type])(newfid(thdr.fid));
|
||||
if(err){
|
||||
rhdr.type = Rerror;
|
||||
rhdr.ename = err;
|
||||
}else{
|
||||
rhdr.type = thdr.type + 1;
|
||||
rhdr.fid = thdr.fid;
|
||||
}
|
||||
rhdr.tag = thdr.tag;
|
||||
if(debug)
|
||||
fprint(2, "ramfs %d:->%F\n", pid, &rhdr);/**/
|
||||
n = convS2M(&rhdr, mdata, messagesize);
|
||||
if(n == 0)
|
||||
error("convS2M error on write");
|
||||
if(write(mfd[1], mdata, n) != n)
|
||||
error("mount write");
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
perm(Fid *f, Ram *r, int p)
|
||||
{
|
||||
if((p*Pother) & r->perm)
|
||||
return 1;
|
||||
if(strcmp(f->user, r->group)==0 && ((p*Pgroup) & r->perm))
|
||||
return 1;
|
||||
if(strcmp(f->user, r->user)==0 && ((p*Powner) & r->perm))
|
||||
return 1;
|
||||
return 0;
|
||||
}
|
||||
|
||||
void *
|
||||
emalloc(ulong n)
|
||||
{
|
||||
void *p;
|
||||
|
||||
p = malloc(n);
|
||||
if(!p)
|
||||
error("out of memory");
|
||||
memset(p, 0, n);
|
||||
return p;
|
||||
}
|
||||
|
||||
void *
|
||||
erealloc(void *p, ulong n)
|
||||
{
|
||||
p = realloc(p, n);
|
||||
if(!p)
|
||||
error("out of memory");
|
||||
return p;
|
||||
}
|
||||
|
||||
char *
|
||||
estrdup(char *q)
|
||||
{
|
||||
char *p;
|
||||
int n;
|
||||
|
||||
n = strlen(q)+1;
|
||||
p = malloc(n);
|
||||
if(!p)
|
||||
error("out of memory");
|
||||
memmove(p, q, n);
|
||||
return p;
|
||||
}
|
||||
|
||||
void
|
||||
ramfsusage(void)
|
||||
{
|
||||
fprint(2, "usage: %s [-is] [-m mountpoint]\n", argv0);
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
/*
|
||||
* Custom allocators to avoid malloc overheads on small objects.
|
||||
* We never free these. (See below.)
|
||||
*/
|
||||
typedef struct Stringtab Stringtab;
|
||||
struct Stringtab {
|
||||
Stringtab *link;
|
||||
char *str;
|
||||
};
|
||||
static Stringtab*
|
||||
taballoc(void)
|
||||
{
|
||||
static Stringtab *t;
|
||||
static uint nt;
|
||||
|
||||
if(nt == 0){
|
||||
t = malloc(64*sizeof(Stringtab));
|
||||
if(t == 0)
|
||||
sysfatal("out of memory");
|
||||
nt = 64;
|
||||
}
|
||||
nt--;
|
||||
return t++;
|
||||
}
|
||||
|
||||
static char*
|
||||
xstrdup(char *s)
|
||||
{
|
||||
char *r;
|
||||
int len;
|
||||
static char *t;
|
||||
static int nt;
|
||||
|
||||
len = strlen(s)+1;
|
||||
if(len >= 8192)
|
||||
sysfatal("strdup big string");
|
||||
|
||||
if(nt < len){
|
||||
t = malloc(8192);
|
||||
if(t == 0)
|
||||
sysfatal("out of memory");
|
||||
nt = 8192;
|
||||
}
|
||||
r = t;
|
||||
t += len;
|
||||
nt -= len;
|
||||
strcpy(r, s);
|
||||
return r;
|
||||
}
|
||||
|
||||
/*
|
||||
* Return a uniquely allocated copy of a string.
|
||||
* Don't free these -- they stay in the table for the
|
||||
* next caller who wants that particular string.
|
||||
* String comparison can be done with pointer comparison
|
||||
* if you know both strings are atoms.
|
||||
*/
|
||||
static Stringtab *stab[1024];
|
||||
|
||||
static uint
|
||||
hash(char *s)
|
||||
{
|
||||
uint h;
|
||||
uchar *p;
|
||||
|
||||
h = 0;
|
||||
for(p=(uchar*)s; *p; p++)
|
||||
h = h*37 + *p;
|
||||
return h;
|
||||
}
|
||||
|
||||
char*
|
||||
atom(char *str)
|
||||
{
|
||||
uint h;
|
||||
Stringtab *tab;
|
||||
|
||||
h = hash(str) % nelem(stab);
|
||||
for(tab=stab[h]; tab; tab=tab->link)
|
||||
if(strcmp(str, tab->str) == 0)
|
||||
return tab->str;
|
||||
|
||||
tab = taballoc();
|
||||
tab->str = xstrdup(str);
|
||||
tab->link = stab[h];
|
||||
stab[h] = tab;
|
||||
return tab->str;
|
||||
}
|
108
sys/lib/dist/cmd/bzfs/unbflz.c
vendored
Executable file
108
sys/lib/dist/cmd/bzfs/unbflz.c
vendored
Executable file
|
@ -0,0 +1,108 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include "bzfs.h"
|
||||
|
||||
int
|
||||
Bgetint(Biobuf *b)
|
||||
{
|
||||
uchar p[4];
|
||||
|
||||
if(Bread(b, p, 4) != 4)
|
||||
sysfatal("short read");
|
||||
return (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3];
|
||||
}
|
||||
|
||||
/*
|
||||
* memmove but make sure overlap works properly.
|
||||
*/
|
||||
void
|
||||
copy(uchar *dst, uchar *src, int n)
|
||||
{
|
||||
while(n-- > 0)
|
||||
*dst++ = *src++;
|
||||
}
|
||||
|
||||
int
|
||||
unbflz(int in)
|
||||
{
|
||||
int rv, out, p[2];
|
||||
Biobuf *b, bin;
|
||||
char buf[5];
|
||||
uchar *data;
|
||||
int i, j, length, n, m, o, sum;
|
||||
ulong *blk;
|
||||
int nblk, mblk;
|
||||
|
||||
if(pipe(p) < 0)
|
||||
sysfatal("pipe: %r");
|
||||
|
||||
rv = p[0];
|
||||
out = p[1];
|
||||
switch(rfork(RFPROC|RFFDG|RFNOTEG|RFMEM)){
|
||||
case -1:
|
||||
sysfatal("fork: %r");
|
||||
case 0:
|
||||
close(rv);
|
||||
break;
|
||||
default:
|
||||
close(in);
|
||||
close(out);
|
||||
return rv;
|
||||
}
|
||||
|
||||
Binit(&bin, in, OREAD);
|
||||
b = &bin;
|
||||
|
||||
if(Bread(b, buf, 4) != 4)
|
||||
sysfatal("short read");
|
||||
|
||||
if(memcmp(buf, "BLZ\n", 4) != 0)
|
||||
sysfatal("bad header");
|
||||
|
||||
length = Bgetint(b);
|
||||
data = malloc(length);
|
||||
if(data == nil)
|
||||
sysfatal("out of memory");
|
||||
sum = 0;
|
||||
nblk = 0;
|
||||
mblk = 0;
|
||||
blk = nil;
|
||||
while(sum < length){
|
||||
if(nblk>=mblk){
|
||||
mblk += 16384;
|
||||
blk = realloc(blk, (mblk+1)*sizeof(blk[0]));
|
||||
if(blk == nil)
|
||||
sysfatal("out of memory");
|
||||
}
|
||||
n = Bgetint(b);
|
||||
blk[nblk++] = n;
|
||||
if(n&(1<<31))
|
||||
n &= ~(1<<31);
|
||||
else
|
||||
blk[nblk++] = Bgetint(b);
|
||||
sum += n;
|
||||
}
|
||||
if(sum != length)
|
||||
sysfatal("bad compressed data %d %d", sum, length);
|
||||
i = 0;
|
||||
j = 0;
|
||||
while(i < length){
|
||||
assert(j < nblk);
|
||||
n = blk[j++];
|
||||
if(n&(1<<31)){
|
||||
n &= ~(1<<31);
|
||||
if((m=Bread(b, data+i, n)) != n)
|
||||
sysfatal("short read %d %d", n, m);
|
||||
}else{
|
||||
o = blk[j++];
|
||||
copy(data+i, data+o, n);
|
||||
}
|
||||
i += n;
|
||||
}
|
||||
write(out, data, length);
|
||||
close(in);
|
||||
close(out);
|
||||
_exits(0);
|
||||
return -1;
|
||||
}
|
861
sys/lib/dist/cmd/bzfs/unbzip.c
vendored
Executable file
861
sys/lib/dist/cmd/bzfs/unbzip.c
vendored
Executable file
|
@ -0,0 +1,861 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
#include "bzfs.h"
|
||||
|
||||
/*
|
||||
* THIS FILE IS NOT IDENTICAL TO THE ORIGINAL
|
||||
* FROM THE BZIP2 DISTRIBUTION.
|
||||
*
|
||||
* It has been modified, mainly to break the library
|
||||
* into smaller pieces.
|
||||
*
|
||||
* Russ Cox
|
||||
* rsc@plan9.bell-labs.com
|
||||
* July 2000
|
||||
*/
|
||||
|
||||
/*---------------------------------------------*/
|
||||
/*--
|
||||
Place a 1 beside your platform, and 0 elsewhere.
|
||||
Attempts to autosniff this even if you don't.
|
||||
--*/
|
||||
|
||||
|
||||
/*--
|
||||
Plan 9 from Bell Labs
|
||||
--*/
|
||||
#define BZ_PLAN9 1
|
||||
#define BZ_UNIX 0
|
||||
|
||||
#define exit(x) exits((x) ? "whoops" : nil)
|
||||
#define size_t ulong
|
||||
|
||||
#ifdef __GNUC__
|
||||
# define NORETURN __attribute__ ((noreturn))
|
||||
#else
|
||||
# define NORETURN /**/
|
||||
#endif
|
||||
|
||||
/*--
|
||||
Some more stuff for all platforms :-)
|
||||
This might have to get moved into the platform-specific
|
||||
header files if we encounter a machine with different sizes.
|
||||
--*/
|
||||
|
||||
typedef char Char;
|
||||
typedef unsigned char Bool;
|
||||
typedef unsigned char UChar;
|
||||
typedef int Int32;
|
||||
typedef unsigned int UInt32;
|
||||
typedef short Int16;
|
||||
typedef unsigned short UInt16;
|
||||
|
||||
#define True ((Bool)1)
|
||||
#define False ((Bool)0)
|
||||
|
||||
/*--
|
||||
IntNative is your platform's `native' int size.
|
||||
Only here to avoid probs with 64-bit platforms.
|
||||
--*/
|
||||
typedef int IntNative;
|
||||
|
||||
#include "bzfs.h"
|
||||
#include "bzlib.h"
|
||||
#include "bzlib_private.h"
|
||||
|
||||
static int
|
||||
bunzip(int ofd, char *ofile, Biobuf *bin)
|
||||
{
|
||||
int e, n, done, onemore;
|
||||
char buf[8192];
|
||||
char obuf[8192];
|
||||
Biobuf bout;
|
||||
bz_stream strm;
|
||||
|
||||
USED(ofile);
|
||||
|
||||
memset(&strm, 0, sizeof strm);
|
||||
BZ2_bzDecompressInit(&strm, 0, 0);
|
||||
|
||||
strm.next_in = buf;
|
||||
strm.avail_in = 0;
|
||||
strm.next_out = obuf;
|
||||
strm.avail_out = sizeof obuf;
|
||||
|
||||
done = 0;
|
||||
Binit(&bout, ofd, OWRITE);
|
||||
|
||||
/*
|
||||
* onemore is a crummy hack to go 'round the loop
|
||||
* once after we finish, to flush the output buffer.
|
||||
*/
|
||||
onemore = 1;
|
||||
SET(e);
|
||||
do {
|
||||
if(!done && strm.avail_in < sizeof buf) {
|
||||
if(strm.avail_in)
|
||||
memmove(buf, strm.next_in, strm.avail_in);
|
||||
|
||||
n = Bread(bin, buf+strm.avail_in, sizeof(buf)-strm.avail_in);
|
||||
if(n <= 0)
|
||||
done = 1;
|
||||
else
|
||||
strm.avail_in += n;
|
||||
strm.next_in = buf;
|
||||
}
|
||||
if(strm.avail_out < sizeof obuf) {
|
||||
Bwrite(&bout, obuf, sizeof(obuf)-strm.avail_out);
|
||||
strm.next_out = obuf;
|
||||
strm.avail_out = sizeof obuf;
|
||||
}
|
||||
|
||||
if(onemore == 0)
|
||||
break;
|
||||
} while((e=BZ2_bzDecompress(&strm)) == BZ_OK || onemore--);
|
||||
|
||||
if(e != BZ_STREAM_END) {
|
||||
fprint(2, "bunzip2: decompress failed\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if(BZ2_bzDecompressEnd(&strm) != BZ_OK) {
|
||||
fprint(2, "bunzip2: decompress end failed (can't happen)\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Bterm(&bout);
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
void
|
||||
_unbzip(int in, int out)
|
||||
{
|
||||
Biobuf bin;
|
||||
|
||||
Binit(&bin, in, OREAD);
|
||||
if(bunzip(out, nil, &bin) != 1) {
|
||||
fprint(2, "bunzip2 failed\n");
|
||||
_exits("bunzip2");
|
||||
}
|
||||
}
|
||||
|
||||
int
|
||||
unbzip(int in)
|
||||
{
|
||||
int rv, out, p[2];
|
||||
|
||||
if(pipe(p) < 0)
|
||||
sysfatal("pipe: %r");
|
||||
|
||||
rv = p[0];
|
||||
out = p[1];
|
||||
switch(rfork(RFPROC|RFFDG|RFNOTEG|RFMEM)){
|
||||
case -1:
|
||||
sysfatal("fork: %r");
|
||||
case 0:
|
||||
close(rv);
|
||||
break;
|
||||
default:
|
||||
close(in);
|
||||
close(out);
|
||||
return rv;
|
||||
}
|
||||
|
||||
_unbzip(in, out);
|
||||
_exits(0);
|
||||
return -1; /* not reached */
|
||||
}
|
||||
|
||||
int bz_config_ok ( void )
|
||||
{
|
||||
if (sizeof(int) != 4) return 0;
|
||||
if (sizeof(short) != 2) return 0;
|
||||
if (sizeof(char) != 1) return 0;
|
||||
return 1;
|
||||
}
|
||||
|
||||
void* default_bzalloc(void *o, int items, int size)
|
||||
{
|
||||
USED(o);
|
||||
return sbrk(items*size);
|
||||
}
|
||||
|
||||
void default_bzfree(void*, void*)
|
||||
{
|
||||
}
|
||||
|
||||
void
|
||||
bz_internal_error(int)
|
||||
{
|
||||
abort();
|
||||
}
|
||||
|
||||
/*-------------------------------------------------------------*/
|
||||
/*--- Decompression machinery ---*/
|
||||
/*--- decompress.c ---*/
|
||||
/*-------------------------------------------------------------*/
|
||||
|
||||
/*--
|
||||
This file is a part of bzip2 and/or libbzip2, a program and
|
||||
library for lossless, block-sorting data compression.
|
||||
|
||||
Copyright (C) 1996-2000 Julian R Seward. All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
|
||||
2. The origin of this software must not be misrepresented; you must
|
||||
not claim that you wrote the original software. If you use this
|
||||
software in a product, an acknowledgment in the product
|
||||
documentation would be appreciated but is not required.
|
||||
|
||||
3. Altered source versions must be plainly marked as such, and must
|
||||
not be misrepresented as being the original software.
|
||||
|
||||
4. The name of the author may not be used to endorse or promote
|
||||
products derived from this software without specific prior written
|
||||
permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS
|
||||
OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
|
||||
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY
|
||||
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE
|
||||
GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
||||
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
||||
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
||||
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Julian Seward, Cambridge, UK.
|
||||
jseward@acm.org
|
||||
bzip2/libbzip2 version 1.0 of 21 March 2000
|
||||
|
||||
This program is based on (at least) the work of:
|
||||
Mike Burrows
|
||||
David Wheeler
|
||||
Peter Fenwick
|
||||
Alistair Moffat
|
||||
Radford Neal
|
||||
Ian H. Witten
|
||||
Robert Sedgewick
|
||||
Jon L. Bentley
|
||||
|
||||
For more information on these sources, see the manual.
|
||||
--*/
|
||||
|
||||
|
||||
|
||||
/*---------------------------------------------------*/
|
||||
static
|
||||
void makeMaps_d ( DState* s )
|
||||
{
|
||||
Int32 i;
|
||||
s->nInUse = 0;
|
||||
for (i = 0; i < 256; i++)
|
||||
if (s->inUse[i]) {
|
||||
s->seqToUnseq[s->nInUse] = i;
|
||||
s->nInUse++;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------*/
|
||||
#define RETURN(rrr) \
|
||||
{ retVal = rrr; goto save_state_and_return; };
|
||||
|
||||
#define GET_BITS(lll,vvv,nnn) \
|
||||
case lll: \
|
||||
{ int x; if((retVal = getbits(s, lll, &x, nnn)) != 99) \
|
||||
goto save_state_and_return; vvv=x; }\
|
||||
|
||||
int
|
||||
getbits(DState *s, int lll, int *vvv, int nnn)
|
||||
{
|
||||
s->state = lll;
|
||||
|
||||
for(;;) {
|
||||
if (s->bsLive >= nnn) {
|
||||
UInt32 v;
|
||||
v = (s->bsBuff >>
|
||||
(s->bsLive-nnn)) & ((1 << nnn)-1);
|
||||
s->bsLive -= nnn;
|
||||
*vvv = v;
|
||||
return 99;
|
||||
}
|
||||
if (s->strm->avail_in == 0) return BZ_OK;
|
||||
s->bsBuff
|
||||
= (s->bsBuff << 8) |
|
||||
((UInt32)
|
||||
(*((UChar*)(s->strm->next_in))));
|
||||
s->bsLive += 8;
|
||||
s->strm->next_in++;
|
||||
s->strm->avail_in--;
|
||||
s->strm->total_in_lo32++;
|
||||
if (s->strm->total_in_lo32 == 0)
|
||||
s->strm->total_in_hi32++;
|
||||
}
|
||||
return -1; /* KEN */
|
||||
}
|
||||
|
||||
#define GET_UCHAR(lll,uuu) \
|
||||
GET_BITS(lll,uuu,8)
|
||||
|
||||
#define GET_BIT(lll,uuu) \
|
||||
GET_BITS(lll,uuu,1)
|
||||
|
||||
/*---------------------------------------------------*/
|
||||
#define GET_MTF_VAL(label1,label2,lval) \
|
||||
{ \
|
||||
if (groupPos == 0) { \
|
||||
groupNo++; \
|
||||
if (groupNo >= nSelectors) \
|
||||
RETURN(BZ_DATA_ERROR); \
|
||||
groupPos = BZ_G_SIZE; \
|
||||
gSel = s->selector[groupNo]; \
|
||||
gMinlen = s->minLens[gSel]; \
|
||||
gLimit = &(s->limit[gSel][0]); \
|
||||
gPerm = &(s->perm[gSel][0]); \
|
||||
gBase = &(s->base[gSel][0]); \
|
||||
} \
|
||||
groupPos--; \
|
||||
zn = gMinlen; \
|
||||
GET_BITS(label1, zvec, zn); \
|
||||
while (1) { \
|
||||
if (zn > 20 /* the longest code */) \
|
||||
RETURN(BZ_DATA_ERROR); \
|
||||
if (zvec <= gLimit[zn]) break; \
|
||||
zn++; \
|
||||
GET_BIT(label2, zj); \
|
||||
zvec = (zvec << 1) | zj; \
|
||||
}; \
|
||||
if (zvec - gBase[zn] < 0 \
|
||||
|| zvec - gBase[zn] >= BZ_MAX_ALPHA_SIZE) \
|
||||
RETURN(BZ_DATA_ERROR); \
|
||||
lval = gPerm[zvec - gBase[zn]]; \
|
||||
}
|
||||
|
||||
|
||||
/*---------------------------------------------------*/
|
||||
Int32 BZ2_decompress ( DState* s )
|
||||
{
|
||||
UChar uc;
|
||||
Int32 retVal;
|
||||
Int32 minLen, maxLen;
|
||||
bz_stream* strm = s->strm;
|
||||
|
||||
/* stuff that needs to be saved/restored */
|
||||
Int32 i;
|
||||
Int32 j;
|
||||
Int32 t;
|
||||
Int32 alphaSize;
|
||||
Int32 nGroups;
|
||||
Int32 nSelectors;
|
||||
Int32 EOB;
|
||||
Int32 groupNo;
|
||||
Int32 groupPos;
|
||||
Int32 nextSym;
|
||||
Int32 nblockMAX;
|
||||
Int32 nblock;
|
||||
Int32 es;
|
||||
Int32 N;
|
||||
Int32 curr;
|
||||
Int32 zt;
|
||||
Int32 zn;
|
||||
Int32 zvec;
|
||||
Int32 zj;
|
||||
Int32 gSel;
|
||||
Int32 gMinlen;
|
||||
Int32* gLimit;
|
||||
Int32* gBase;
|
||||
Int32* gPerm;
|
||||
|
||||
if (s->state == BZ_X_MAGIC_1) {
|
||||
/*initialise the save area*/
|
||||
s->save_i = 0;
|
||||
s->save_j = 0;
|
||||
s->save_t = 0;
|
||||
s->save_alphaSize = 0;
|
||||
s->save_nGroups = 0;
|
||||
s->save_nSelectors = 0;
|
||||
s->save_EOB = 0;
|
||||
s->save_groupNo = 0;
|
||||
s->save_groupPos = 0;
|
||||
s->save_nextSym = 0;
|
||||
s->save_nblockMAX = 0;
|
||||
s->save_nblock = 0;
|
||||
s->save_es = 0;
|
||||
s->save_N = 0;
|
||||
s->save_curr = 0;
|
||||
s->save_zt = 0;
|
||||
s->save_zn = 0;
|
||||
s->save_zvec = 0;
|
||||
s->save_zj = 0;
|
||||
s->save_gSel = 0;
|
||||
s->save_gMinlen = 0;
|
||||
s->save_gLimit = NULL;
|
||||
s->save_gBase = NULL;
|
||||
s->save_gPerm = NULL;
|
||||
}
|
||||
|
||||
/*restore from the save area*/
|
||||
i = s->save_i;
|
||||
j = s->save_j;
|
||||
t = s->save_t;
|
||||
alphaSize = s->save_alphaSize;
|
||||
nGroups = s->save_nGroups;
|
||||
nSelectors = s->save_nSelectors;
|
||||
EOB = s->save_EOB;
|
||||
groupNo = s->save_groupNo;
|
||||
groupPos = s->save_groupPos;
|
||||
nextSym = s->save_nextSym;
|
||||
nblockMAX = s->save_nblockMAX;
|
||||
nblock = s->save_nblock;
|
||||
es = s->save_es;
|
||||
N = s->save_N;
|
||||
curr = s->save_curr;
|
||||
zt = s->save_zt;
|
||||
zn = s->save_zn;
|
||||
zvec = s->save_zvec;
|
||||
zj = s->save_zj;
|
||||
gSel = s->save_gSel;
|
||||
gMinlen = s->save_gMinlen;
|
||||
gLimit = s->save_gLimit;
|
||||
gBase = s->save_gBase;
|
||||
gPerm = s->save_gPerm;
|
||||
|
||||
retVal = BZ_OK;
|
||||
|
||||
switch (s->state) {
|
||||
|
||||
GET_UCHAR(BZ_X_MAGIC_1, uc);
|
||||
if (uc != 'B') RETURN(BZ_DATA_ERROR_MAGIC);
|
||||
|
||||
GET_UCHAR(BZ_X_MAGIC_2, uc);
|
||||
if (uc != 'Z') RETURN(BZ_DATA_ERROR_MAGIC);
|
||||
|
||||
GET_UCHAR(BZ_X_MAGIC_3, uc)
|
||||
if (uc != 'h') RETURN(BZ_DATA_ERROR_MAGIC);
|
||||
|
||||
GET_BITS(BZ_X_MAGIC_4, s->blockSize100k, 8)
|
||||
if (s->blockSize100k < '1' ||
|
||||
s->blockSize100k > '9') RETURN(BZ_DATA_ERROR_MAGIC);
|
||||
s->blockSize100k -= '0';
|
||||
|
||||
if (0 && s->smallDecompress) {
|
||||
s->ll16 = BZALLOC( s->blockSize100k * 100000 * sizeof(UInt16) );
|
||||
s->ll4 = BZALLOC(
|
||||
((1 + s->blockSize100k * 100000) >> 1) * sizeof(UChar)
|
||||
);
|
||||
if (s->ll16 == NULL || s->ll4 == NULL) RETURN(BZ_MEM_ERROR);
|
||||
} else {
|
||||
s->tt = BZALLOC( s->blockSize100k * 100000 * sizeof(Int32) );
|
||||
if (s->tt == NULL) RETURN(BZ_MEM_ERROR);
|
||||
}
|
||||
|
||||
GET_UCHAR(BZ_X_BLKHDR_1, uc);
|
||||
|
||||
if (uc == 0x17) goto endhdr_2;
|
||||
if (uc != 0x31) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_BLKHDR_2, uc);
|
||||
if (uc != 0x41) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_BLKHDR_3, uc);
|
||||
if (uc != 0x59) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_BLKHDR_4, uc);
|
||||
if (uc != 0x26) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_BLKHDR_5, uc);
|
||||
if (uc != 0x53) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_BLKHDR_6, uc);
|
||||
if (uc != 0x59) RETURN(BZ_DATA_ERROR);
|
||||
|
||||
s->currBlockNo++;
|
||||
// if (s->verbosity >= 2)
|
||||
// VPrintf1 ( "\n [%d: huff+mtf ", s->currBlockNo );
|
||||
|
||||
s->storedBlockCRC = 0;
|
||||
GET_UCHAR(BZ_X_BCRC_1, uc);
|
||||
s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_BCRC_2, uc);
|
||||
s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_BCRC_3, uc);
|
||||
s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_BCRC_4, uc);
|
||||
s->storedBlockCRC = (s->storedBlockCRC << 8) | ((UInt32)uc);
|
||||
|
||||
GET_BITS(BZ_X_RANDBIT, s->blockRandomised, 1);
|
||||
|
||||
s->origPtr = 0;
|
||||
GET_UCHAR(BZ_X_ORIGPTR_1, uc);
|
||||
s->origPtr = (s->origPtr << 8) | ((Int32)uc);
|
||||
GET_UCHAR(BZ_X_ORIGPTR_2, uc);
|
||||
s->origPtr = (s->origPtr << 8) | ((Int32)uc);
|
||||
GET_UCHAR(BZ_X_ORIGPTR_3, uc);
|
||||
s->origPtr = (s->origPtr << 8) | ((Int32)uc);
|
||||
|
||||
if (s->origPtr < 0)
|
||||
RETURN(BZ_DATA_ERROR);
|
||||
if (s->origPtr > 10 + 100000*s->blockSize100k)
|
||||
RETURN(BZ_DATA_ERROR);
|
||||
|
||||
/*--- Receive the mapping table ---*/
|
||||
for (i = 0; i < 16; i++) {
|
||||
GET_BIT(BZ_X_MAPPING_1, uc);
|
||||
if (uc == 1)
|
||||
s->inUse16[i] = True; else
|
||||
s->inUse16[i] = False;
|
||||
}
|
||||
|
||||
for (i = 0; i < 256; i++) s->inUse[i] = False;
|
||||
|
||||
for (i = 0; i < 16; i++)
|
||||
if (s->inUse16[i])
|
||||
for (j = 0; j < 16; j++) {
|
||||
GET_BIT(BZ_X_MAPPING_2, uc);
|
||||
if (uc == 1) s->inUse[i * 16 + j] = True;
|
||||
}
|
||||
makeMaps_d ( s );
|
||||
if (s->nInUse == 0) RETURN(BZ_DATA_ERROR);
|
||||
alphaSize = s->nInUse+2;
|
||||
|
||||
/*--- Now the selectors ---*/
|
||||
GET_BITS(BZ_X_SELECTOR_1, nGroups, 3);
|
||||
if (nGroups < 2 || nGroups > 6) RETURN(BZ_DATA_ERROR);
|
||||
GET_BITS(BZ_X_SELECTOR_2, nSelectors, 15);
|
||||
if (nSelectors < 1) RETURN(BZ_DATA_ERROR);
|
||||
for (i = 0; i < nSelectors; i++) {
|
||||
j = 0;
|
||||
while (True) {
|
||||
GET_BIT(BZ_X_SELECTOR_3, uc);
|
||||
if (uc == 0) break;
|
||||
j++;
|
||||
if (j >= nGroups) RETURN(BZ_DATA_ERROR);
|
||||
}
|
||||
s->selectorMtf[i] = j;
|
||||
}
|
||||
|
||||
/*--- Undo the MTF values for the selectors. ---*/
|
||||
{
|
||||
UChar pos[BZ_N_GROUPS], tmp, v;
|
||||
for (v = 0; v < nGroups; v++) pos[v] = v;
|
||||
|
||||
for (i = 0; i < nSelectors; i++) {
|
||||
v = s->selectorMtf[i];
|
||||
tmp = pos[v];
|
||||
while (v > 0) { pos[v] = pos[v-1]; v--; }
|
||||
pos[0] = tmp;
|
||||
s->selector[i] = tmp;
|
||||
}
|
||||
}
|
||||
|
||||
/*--- Now the coding tables ---*/
|
||||
for (t = 0; t < nGroups; t++) {
|
||||
GET_BITS(BZ_X_CODING_1, curr, 5);
|
||||
for (i = 0; i < alphaSize; i++) {
|
||||
while (True) {
|
||||
if (curr < 1 || curr > 20) RETURN(BZ_DATA_ERROR);
|
||||
GET_BIT(BZ_X_CODING_2, uc);
|
||||
if (uc == 0) break;
|
||||
GET_BIT(BZ_X_CODING_3, uc);
|
||||
if (uc == 0) curr++; else curr--;
|
||||
}
|
||||
s->len[t][i] = curr;
|
||||
}
|
||||
}
|
||||
|
||||
/*--- Create the Huffman decoding tables ---*/
|
||||
for (t = 0; t < nGroups; t++) {
|
||||
minLen = 32;
|
||||
maxLen = 0;
|
||||
for (i = 0; i < alphaSize; i++) {
|
||||
if (s->len[t][i] > maxLen) maxLen = s->len[t][i];
|
||||
if (s->len[t][i] < minLen) minLen = s->len[t][i];
|
||||
}
|
||||
BZ2_hbCreateDecodeTables (
|
||||
&(s->limit[t][0]),
|
||||
&(s->base[t][0]),
|
||||
&(s->perm[t][0]),
|
||||
&(s->len[t][0]),
|
||||
minLen, maxLen, alphaSize
|
||||
);
|
||||
s->minLens[t] = minLen;
|
||||
}
|
||||
|
||||
/*--- Now the MTF values ---*/
|
||||
|
||||
EOB = s->nInUse+1;
|
||||
nblockMAX = 100000 * s->blockSize100k;
|
||||
groupNo = -1;
|
||||
groupPos = 0;
|
||||
|
||||
for (i = 0; i <= 255; i++) s->unzftab[i] = 0;
|
||||
|
||||
/*-- MTF init --*/
|
||||
{
|
||||
Int32 ii, jj, kk;
|
||||
kk = MTFA_SIZE-1;
|
||||
for (ii = 256 / MTFL_SIZE - 1; ii >= 0; ii--) {
|
||||
for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
|
||||
s->mtfa[kk] = (UChar)(ii * MTFL_SIZE + jj);
|
||||
kk--;
|
||||
}
|
||||
s->mtfbase[ii] = kk + 1;
|
||||
}
|
||||
}
|
||||
/*-- end MTF init --*/
|
||||
|
||||
nblock = 0;
|
||||
GET_MTF_VAL(BZ_X_MTF_1, BZ_X_MTF_2, nextSym);
|
||||
|
||||
while (True) {
|
||||
|
||||
if (nextSym == EOB) break;
|
||||
|
||||
if (nextSym == BZ_RUNA || nextSym == BZ_RUNB) {
|
||||
|
||||
es = -1;
|
||||
N = 1;
|
||||
do {
|
||||
if (nextSym == BZ_RUNA) es = es + (0+1) * N; else
|
||||
if (nextSym == BZ_RUNB) es = es + (1+1) * N;
|
||||
N = N * 2;
|
||||
GET_MTF_VAL(BZ_X_MTF_3, BZ_X_MTF_4, nextSym);
|
||||
}
|
||||
while (nextSym == BZ_RUNA || nextSym == BZ_RUNB);
|
||||
|
||||
es++;
|
||||
uc = s->seqToUnseq[ s->mtfa[s->mtfbase[0]] ];
|
||||
s->unzftab[uc] += es;
|
||||
|
||||
if (0 && s->smallDecompress)
|
||||
while (es > 0) {
|
||||
if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
|
||||
s->ll16[nblock] = (UInt16)uc;
|
||||
nblock++;
|
||||
es--;
|
||||
}
|
||||
else
|
||||
while (es > 0) {
|
||||
if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
|
||||
s->tt[nblock] = (UInt32)uc;
|
||||
nblock++;
|
||||
es--;
|
||||
};
|
||||
|
||||
continue;
|
||||
|
||||
} else {
|
||||
|
||||
if (nblock >= nblockMAX) RETURN(BZ_DATA_ERROR);
|
||||
|
||||
/*-- uc = MTF ( nextSym-1 ) --*/
|
||||
{
|
||||
Int32 ii, jj, kk, pp, lno, off;
|
||||
UInt32 nn;
|
||||
nn = (UInt32)(nextSym - 1);
|
||||
|
||||
if (nn < MTFL_SIZE) {
|
||||
/* avoid general-case expense */
|
||||
pp = s->mtfbase[0];
|
||||
uc = s->mtfa[pp+nn];
|
||||
while (nn > 3) {
|
||||
Int32 z = pp+nn;
|
||||
s->mtfa[(z) ] = s->mtfa[(z)-1];
|
||||
s->mtfa[(z)-1] = s->mtfa[(z)-2];
|
||||
s->mtfa[(z)-2] = s->mtfa[(z)-3];
|
||||
s->mtfa[(z)-3] = s->mtfa[(z)-4];
|
||||
nn -= 4;
|
||||
}
|
||||
while (nn > 0) {
|
||||
s->mtfa[(pp+nn)] = s->mtfa[(pp+nn)-1]; nn--;
|
||||
};
|
||||
s->mtfa[pp] = uc;
|
||||
} else {
|
||||
/* general case */
|
||||
lno = nn / MTFL_SIZE;
|
||||
off = nn % MTFL_SIZE;
|
||||
pp = s->mtfbase[lno] + off;
|
||||
uc = s->mtfa[pp];
|
||||
while (pp > s->mtfbase[lno]) {
|
||||
s->mtfa[pp] = s->mtfa[pp-1]; pp--;
|
||||
};
|
||||
s->mtfbase[lno]++;
|
||||
while (lno > 0) {
|
||||
s->mtfbase[lno]--;
|
||||
s->mtfa[s->mtfbase[lno]]
|
||||
= s->mtfa[s->mtfbase[lno-1] + MTFL_SIZE - 1];
|
||||
lno--;
|
||||
}
|
||||
s->mtfbase[0]--;
|
||||
s->mtfa[s->mtfbase[0]] = uc;
|
||||
if (s->mtfbase[0] == 0) {
|
||||
kk = MTFA_SIZE-1;
|
||||
for (ii = 256 / MTFL_SIZE-1; ii >= 0; ii--) {
|
||||
for (jj = MTFL_SIZE-1; jj >= 0; jj--) {
|
||||
s->mtfa[kk] = s->mtfa[s->mtfbase[ii] + jj];
|
||||
kk--;
|
||||
}
|
||||
s->mtfbase[ii] = kk + 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
/*-- end uc = MTF ( nextSym-1 ) --*/
|
||||
|
||||
s->unzftab[s->seqToUnseq[uc]]++;
|
||||
if (0 && s->smallDecompress)
|
||||
s->ll16[nblock] = (UInt16)(s->seqToUnseq[uc]); else
|
||||
s->tt[nblock] = (UInt32)(s->seqToUnseq[uc]);
|
||||
nblock++;
|
||||
|
||||
GET_MTF_VAL(BZ_X_MTF_5, BZ_X_MTF_6, nextSym);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
/* Now we know what nblock is, we can do a better sanity
|
||||
check on s->origPtr.
|
||||
*/
|
||||
if (s->origPtr < 0 || s->origPtr >= nblock)
|
||||
RETURN(BZ_DATA_ERROR);
|
||||
|
||||
s->state_out_len = 0;
|
||||
s->state_out_ch = 0;
|
||||
BZ_INITIALISE_CRC ( s->calculatedBlockCRC );
|
||||
s->state = BZ_X_OUTPUT;
|
||||
// if (s->verbosity >= 2) VPrintf0 ( "rt+rld" );
|
||||
|
||||
/*-- Set up cftab to facilitate generation of T^(-1) --*/
|
||||
s->cftab[0] = 0;
|
||||
for (i = 1; i <= 256; i++) s->cftab[i] = s->unzftab[i-1];
|
||||
for (i = 1; i <= 256; i++) s->cftab[i] += s->cftab[i-1];
|
||||
|
||||
if (0 && s->smallDecompress) {
|
||||
|
||||
/*-- Make a copy of cftab, used in generation of T --*/
|
||||
for (i = 0; i <= 256; i++) s->cftabCopy[i] = s->cftab[i];
|
||||
|
||||
/*-- compute the T vector --*/
|
||||
for (i = 0; i < nblock; i++) {
|
||||
uc = (UChar)(s->ll16[i]);
|
||||
SET_LL(i, s->cftabCopy[uc]);
|
||||
s->cftabCopy[uc]++;
|
||||
}
|
||||
|
||||
/*-- Compute T^(-1) by pointer reversal on T --*/
|
||||
i = s->origPtr;
|
||||
j = GET_LL(i);
|
||||
do {
|
||||
Int32 tmp = GET_LL(j);
|
||||
SET_LL(j, i);
|
||||
i = j;
|
||||
j = tmp;
|
||||
}
|
||||
while (i != s->origPtr);
|
||||
|
||||
s->tPos = s->origPtr;
|
||||
s->nblock_used = 0;
|
||||
if (s->blockRandomised) {
|
||||
BZ_RAND_INIT_MASK;
|
||||
BZ_GET_SMALL(s->k0); s->nblock_used++;
|
||||
BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
|
||||
} else {
|
||||
BZ_GET_SMALL(s->k0); s->nblock_used++;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
/*-- compute the T^(-1) vector --*/
|
||||
for (i = 0; i < nblock; i++) {
|
||||
uc = (UChar)(s->tt[i] & 0xff);
|
||||
s->tt[s->cftab[uc]] |= (i << 8);
|
||||
s->cftab[uc]++;
|
||||
}
|
||||
|
||||
s->tPos = s->tt[s->origPtr] >> 8;
|
||||
s->nblock_used = 0;
|
||||
if (s->blockRandomised) {
|
||||
BZ_RAND_INIT_MASK;
|
||||
BZ_GET_FAST(s->k0); s->nblock_used++;
|
||||
BZ_RAND_UPD_MASK; s->k0 ^= BZ_RAND_MASK;
|
||||
} else {
|
||||
BZ_GET_FAST(s->k0); s->nblock_used++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
RETURN(BZ_OK);
|
||||
|
||||
|
||||
|
||||
endhdr_2:
|
||||
|
||||
GET_UCHAR(BZ_X_ENDHDR_2, uc);
|
||||
if (uc != 0x72) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_ENDHDR_3, uc);
|
||||
if (uc != 0x45) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_ENDHDR_4, uc);
|
||||
if (uc != 0x38) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_ENDHDR_5, uc);
|
||||
if (uc != 0x50) RETURN(BZ_DATA_ERROR);
|
||||
GET_UCHAR(BZ_X_ENDHDR_6, uc);
|
||||
if (uc != 0x90) RETURN(BZ_DATA_ERROR);
|
||||
|
||||
s->storedCombinedCRC = 0;
|
||||
GET_UCHAR(BZ_X_CCRC_1, uc);
|
||||
s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_CCRC_2, uc);
|
||||
s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_CCRC_3, uc);
|
||||
s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
|
||||
GET_UCHAR(BZ_X_CCRC_4, uc);
|
||||
s->storedCombinedCRC = (s->storedCombinedCRC << 8) | ((UInt32)uc);
|
||||
|
||||
s->state = BZ_X_IDLE;
|
||||
RETURN(BZ_STREAM_END);
|
||||
|
||||
default: AssertH ( False, 4001 );
|
||||
}
|
||||
|
||||
AssertH ( False, 4002 );
|
||||
|
||||
save_state_and_return:
|
||||
|
||||
s->save_i = i;
|
||||
s->save_j = j;
|
||||
s->save_t = t;
|
||||
s->save_alphaSize = alphaSize;
|
||||
s->save_nGroups = nGroups;
|
||||
s->save_nSelectors = nSelectors;
|
||||
s->save_EOB = EOB;
|
||||
s->save_groupNo = groupNo;
|
||||
s->save_groupPos = groupPos;
|
||||
s->save_nextSym = nextSym;
|
||||
s->save_nblockMAX = nblockMAX;
|
||||
s->save_nblock = nblock;
|
||||
s->save_es = es;
|
||||
s->save_N = N;
|
||||
s->save_curr = curr;
|
||||
s->save_zt = zt;
|
||||
s->save_zn = zn;
|
||||
s->save_zvec = zvec;
|
||||
s->save_zj = zj;
|
||||
s->save_gSel = gSel;
|
||||
s->save_gMinlen = gMinlen;
|
||||
s->save_gLimit = gLimit;
|
||||
s->save_gBase = gBase;
|
||||
s->save_gPerm = gPerm;
|
||||
|
||||
return retVal;
|
||||
}
|
||||
|
||||
|
||||
/*-------------------------------------------------------------*/
|
||||
/*--- end decompress.c ---*/
|
||||
/*-------------------------------------------------------------*/
|
133
sys/lib/dist/cmd/cdsh.c
vendored
Executable file
133
sys/lib/dist/cmd/cdsh.c
vendored
Executable file
|
@ -0,0 +1,133 @@
|
|||
/*
|
||||
* The `cd' shell.
|
||||
* Just has cd and lc.
|
||||
*/
|
||||
|
||||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
|
||||
char *pwd;
|
||||
char *root = "/";
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: cdsh [-r root]\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
int
|
||||
system(char *cmd)
|
||||
{
|
||||
int pid;
|
||||
if((pid = fork()) < 0)
|
||||
return -1;
|
||||
|
||||
if(pid == 0) {
|
||||
dup(2, 1);
|
||||
execl("/bin/rc", "rc", "-c", cmd, nil);
|
||||
exits("exec");
|
||||
}
|
||||
waitpid();
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
cd(char *s)
|
||||
{
|
||||
char *newpwd;
|
||||
int l;
|
||||
|
||||
if(s[0] == '/') {
|
||||
cleanname(s);
|
||||
newpwd = strdup(s);
|
||||
} else {
|
||||
l = strlen(pwd)+1+strlen(s)+1+50; /* 50 = crud for unicode mistakes */
|
||||
newpwd = malloc(l);
|
||||
snprint(newpwd, l, "%s/%s", pwd, s);
|
||||
cleanname(newpwd);
|
||||
assert(newpwd[0] == '/');
|
||||
}
|
||||
|
||||
if(chdir(root) < 0 || (newpwd[1] != '\0' && chdir(newpwd+1) < 0)) {
|
||||
chdir(root);
|
||||
chdir(pwd+1);
|
||||
free(newpwd);
|
||||
return -1;
|
||||
} else {
|
||||
free(pwd);
|
||||
pwd = newpwd;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *p;
|
||||
Biobuf bin;
|
||||
char *f[2];
|
||||
int nf;
|
||||
|
||||
ARGBEGIN{
|
||||
case 'r':
|
||||
root = ARGF();
|
||||
if(root == nil)
|
||||
usage();
|
||||
if(root[0] != '/') {
|
||||
fprint(2, "root must be rooted\n");
|
||||
exits("root");
|
||||
}
|
||||
break;
|
||||
default:
|
||||
usage();
|
||||
}ARGEND;
|
||||
|
||||
if(argc != 0)
|
||||
usage();
|
||||
|
||||
cleanname(root);
|
||||
if(cd("/") < 0) {
|
||||
fprint(2, "cannot cd %s: %r\n", root);
|
||||
exits("root");
|
||||
}
|
||||
|
||||
Binit(&bin, 0, OREAD);
|
||||
while(fprint(2, "%s%% ", pwd), (p = Brdline(&bin, '\n'))) {
|
||||
p[Blinelen(&bin)-1] = '\0';
|
||||
nf = tokenize(p, f, nelem(f));
|
||||
if(nf < 1)
|
||||
continue;
|
||||
if(strcmp(f[0], "exit") == 0)
|
||||
break;
|
||||
if(strcmp(f[0], "lc") == 0) {
|
||||
if(nf == 1) {
|
||||
if(system("/bin/lc") < 0)
|
||||
fprint(2, "lc: %r\n");
|
||||
} else if(nf == 2) {
|
||||
if(strpbrk(p, "'`{}^@$#&()|\\;><"))
|
||||
fprint(2, "no shell characters allowed\n");
|
||||
else {
|
||||
p = f[1];
|
||||
*--p = ' ';
|
||||
*--p = 'c';
|
||||
*--p = 'l';
|
||||
if(system(p) < 0)
|
||||
fprint(2, "lc: %r\n");
|
||||
}
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if(strcmp(f[0], "cd") == 0) {
|
||||
if(nf < 2)
|
||||
fprint(2, "usage: cd dir\n");
|
||||
else if(cd(f[1]) < 0)
|
||||
fprint(2, "cd: %r\n");
|
||||
continue;
|
||||
}
|
||||
fprint(2, "commands are cd, lc, and exit\n");
|
||||
}
|
||||
|
||||
print("%s\n", pwd);
|
||||
}
|
59
sys/lib/dist/cmd/clog.c
vendored
Executable file
59
sys/lib/dist/cmd/clog.c
vendored
Executable file
|
@ -0,0 +1,59 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
|
||||
char *argv0;
|
||||
|
||||
int
|
||||
openlog(char *name)
|
||||
{
|
||||
int fd;
|
||||
|
||||
fd = open(name, OWRITE);
|
||||
if(fd < 0){
|
||||
fprint(2, "%s: can't open %s: %r\n", argv0, name);
|
||||
return -1;
|
||||
}
|
||||
seek(fd, 0, 2);
|
||||
return fd;
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
Biobuf in;
|
||||
int fd;
|
||||
char *p, *t;
|
||||
char buf[8192];
|
||||
|
||||
argv0 = argv[0];
|
||||
if(argc != 4){
|
||||
fprint(2, "usage: %s console logfile prefix\n", argv0);
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
fd = open(argv[1], OREAD);
|
||||
if(fd < 0){
|
||||
fprint(2, "%s: can't open %s: %r\n", argv0, argv[1]);
|
||||
exits("open");
|
||||
}
|
||||
Binit(&in, fd, OREAD);
|
||||
|
||||
fd = openlog(argv[2]);
|
||||
|
||||
for(;;){
|
||||
if(p = Brdline(&in, '\n')){
|
||||
p[Blinelen(&in)-1] = 0;
|
||||
if(fprint(fd, "%s: %s\n", argv[3], p) < 0){
|
||||
close(fd);
|
||||
fd = openlog(argv[2]);
|
||||
fprint(fd, "%s: %s\n", t, p);
|
||||
}
|
||||
} else if(Blinelen(&in) == 0) // true eof
|
||||
break;
|
||||
else {
|
||||
Bread(&in, buf, sizeof buf);
|
||||
}
|
||||
}
|
||||
exits(0);
|
||||
}
|
24
sys/lib/dist/cmd/mkfile
vendored
Executable file
24
sys/lib/dist/cmd/mkfile
vendored
Executable file
|
@ -0,0 +1,24 @@
|
|||
</$objtype/mkfile
|
||||
CPUS=386
|
||||
|
||||
TARG=\
|
||||
bargraph\
|
||||
bflz\
|
||||
cdsh\
|
||||
tailfsrv\
|
||||
touchfs\
|
||||
unbflz\
|
||||
|
||||
OFILES=
|
||||
HFILES=
|
||||
|
||||
BIN=/sys/lib/dist/bin/$objtype
|
||||
</sys/src/cmd/mkmany
|
||||
|
||||
all:V: bzfs!all
|
||||
install:V: bzfs!install
|
||||
clean:V: bzfs!clean
|
||||
|
||||
bzfs!%:V:
|
||||
cd bzfs; mk $stem; cd ..
|
||||
|
76
sys/lib/dist/cmd/multi/mkfile
vendored
Executable file
76
sys/lib/dist/cmd/multi/mkfile
vendored
Executable file
|
@ -0,0 +1,76 @@
|
|||
objtype=386
|
||||
</$objtype/mkfile
|
||||
|
||||
TARG=multi
|
||||
|
||||
PIECES=\
|
||||
aux/mouse\
|
||||
aux/pcmcia\
|
||||
aux/vga\
|
||||
aux/zerotrunc\
|
||||
disk/fdisk\
|
||||
disk/format\
|
||||
disk/mbr\
|
||||
disk/prep\
|
||||
# fossil/fossil\
|
||||
# fossil/flfmt\
|
||||
ip/ipconfig\
|
||||
ip/ppp\
|
||||
ndb/cs\
|
||||
ndb/dns\
|
||||
# replica/applylog\
|
||||
9660srv\
|
||||
# awk\
|
||||
basename\
|
||||
cat\
|
||||
chgrp\
|
||||
chmod\
|
||||
cleanname\
|
||||
cmp\
|
||||
cp\
|
||||
date\
|
||||
dd\
|
||||
dossrv\
|
||||
echo\
|
||||
ed\
|
||||
ext2srv\
|
||||
# fcp\
|
||||
grep\
|
||||
hget\
|
||||
hoc\
|
||||
ls\
|
||||
mc\
|
||||
mount\
|
||||
mv\
|
||||
ps\
|
||||
read\
|
||||
# rio\
|
||||
rm\
|
||||
sed\
|
||||
sort\
|
||||
srv\
|
||||
# stats\
|
||||
syscall\
|
||||
tail\
|
||||
tee\
|
||||
test\
|
||||
wc\
|
||||
xd\
|
||||
|
||||
8.multi:V: mkmulti mkfile
|
||||
mkmulti $PIECES
|
||||
ls -l 8.multi
|
||||
ls -l /386/bin/$PIECES | awk '{s += $6} END{print s}'
|
||||
|
||||
scripts:V:
|
||||
rm -rf ../../pc/multi
|
||||
mkdir ../../pc/multi
|
||||
for(i in $PIECES){
|
||||
b=`{basename $i}
|
||||
echo '#!/bin/multi' >>../../pc/multi/$b
|
||||
chmod +x ../../pc/multi/$b
|
||||
}
|
||||
|
||||
BIN=/sys/lib/dist/bin/$objtype
|
||||
</sys/src/cmd/mkmany
|
||||
|
70
sys/lib/dist/cmd/multi/mkmulti
vendored
Executable file
70
sys/lib/dist/cmd/multi/mkmulti
vendored
Executable file
|
@ -0,0 +1,70 @@
|
|||
#!/bin/rc
|
||||
|
||||
targ=multi
|
||||
|
||||
n=0
|
||||
dir=`{pwd}
|
||||
|
||||
fn grab {
|
||||
echo using $*
|
||||
for(i){
|
||||
n=`{echo 1+$n|hoc}
|
||||
mv $i $dir/a.$n.8
|
||||
}
|
||||
}
|
||||
|
||||
fn getfiles {
|
||||
sed -n 's/^(pcc|8\^l|8l) +(-o [^ ]* +)?([^\-].*)/ \3/p' | sed 's/ -[^ ]*//g' |
|
||||
sed 's/ [^ ]*\.a//g'
|
||||
}
|
||||
|
||||
rm a.*.8
|
||||
>multi.h
|
||||
>multiproto.h
|
||||
|
||||
for(i){
|
||||
echo $i...
|
||||
b=`{basename $i}
|
||||
p=$b
|
||||
if(~ $b [0-9]*)
|
||||
p=_$b
|
||||
echo void $p^_main'(int, char**);' >>$dir/multiproto.h
|
||||
echo "$b", $p^_main, >>$dir/multi.h
|
||||
d=`{basename -d $i}
|
||||
if(~ $i disk/prep disk/fdisk){
|
||||
cd /sys/src/cmd/disk/prep
|
||||
rm 8.$b
|
||||
files=`{mk 8.$b | getfiles}
|
||||
}
|
||||
if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.out}){
|
||||
cd /sys/src/cmd/$i
|
||||
rm 8.out
|
||||
files=`{mk 8.out | getfiles}
|
||||
}
|
||||
if not if(test -d /sys/src/cmd/$i && @{cd /sys/src/cmd/$i && mk 8.$b}){
|
||||
cd /sys/src/cmd/$i
|
||||
rm 8.out
|
||||
files=`{mk 8.$b | getfiles}
|
||||
}
|
||||
if not if(test -d /sys/src/cmd/$d && @{cd /sys/src/cmd/$d && mk 8.$b}){
|
||||
cd /sys/src/cmd/$d
|
||||
rm 8.$b
|
||||
files=`{mk 8.$b | getfiles}
|
||||
}
|
||||
if not{
|
||||
echo do not know how to make $i
|
||||
exit oops
|
||||
}
|
||||
aux/8prefix $p^_ $files
|
||||
grab $files
|
||||
switch(`{pwd}){
|
||||
case /sys/src/cmd /sys/src/cmd/aux /sys/src/cmd/ip
|
||||
rm 8.$b
|
||||
case *
|
||||
mk clean
|
||||
}
|
||||
}
|
||||
cd $dir
|
||||
8c -FVw multi.c
|
||||
8l -o 8.$targ multi.8 a.*.8
|
||||
# rm a.*.8
|
38
sys/lib/dist/cmd/multi/multi.c
vendored
Executable file
38
sys/lib/dist/cmd/multi/multi.c
vendored
Executable file
|
@ -0,0 +1,38 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
|
||||
#include "multiproto.h"
|
||||
struct {
|
||||
char *name;
|
||||
void (*fn)(int, char**);
|
||||
} mains[] =
|
||||
{
|
||||
#include "multi.h"
|
||||
};
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
int i;
|
||||
char *cmd, *p;
|
||||
|
||||
if(argc == 1){
|
||||
fprint(2, "usage: multi cmd args...\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
cmd = argv[1];
|
||||
if(p = strrchr(cmd, '/'))
|
||||
cmd = p+1;
|
||||
argv++;
|
||||
argc--;
|
||||
|
||||
for(i=0; i<nelem(mains); i++){
|
||||
if(strcmp(cmd, mains[i].name) == 0){
|
||||
mains[i].fn(argc, argv);
|
||||
return;
|
||||
}
|
||||
}
|
||||
fprint(2, "multi: no such cmd %s\n", cmd);
|
||||
exits("no cmd");
|
||||
}
|
17
sys/lib/dist/cmd/tailfsrv.c
vendored
Executable file
17
sys/lib/dist/cmd/tailfsrv.c
vendored
Executable file
|
@ -0,0 +1,17 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
|
||||
void
|
||||
main(void)
|
||||
{
|
||||
int fd, p[2];
|
||||
char buf[8192], n;
|
||||
|
||||
pipe(p);
|
||||
fd = create("/srv/log", OWRITE, 0666);
|
||||
fprint(fd, "%d", p[0]);
|
||||
close(fd);
|
||||
close(p[0]);
|
||||
while((n = read(p[1], buf, sizeof buf)) >= 0)
|
||||
write(1, buf, n);
|
||||
}
|
66
sys/lib/dist/cmd/touchfs.c
vendored
Executable file
66
sys/lib/dist/cmd/touchfs.c
vendored
Executable file
|
@ -0,0 +1,66 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
|
||||
void
|
||||
Bpass(Biobuf *bin, Biobuf *bout, int n)
|
||||
{
|
||||
char buf[8192];
|
||||
int m;
|
||||
|
||||
while(n > 0) {
|
||||
m = sizeof buf;
|
||||
if(m > n)
|
||||
m = n;
|
||||
m = Bread(bin, buf, m);
|
||||
if(m <= 0) {
|
||||
fprint(2, "corrupt archive\n");
|
||||
exits("notdone");
|
||||
}
|
||||
Bwrite(bout, buf, m);
|
||||
n -= m;
|
||||
}
|
||||
assert(n == 0);
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
char *p, *f[10];
|
||||
Biobuf bin, bout;
|
||||
int nf;
|
||||
ulong d, size;
|
||||
|
||||
if(argc != 2) {
|
||||
fprint(2, "usage: cat mkfs-archive | touchfs date (in seconds)\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
d = strtoul(argv[1], 0, 0);
|
||||
|
||||
quotefmtinstall();
|
||||
Binit(&bin, 0, OREAD);
|
||||
Binit(&bout, 1, OWRITE);
|
||||
|
||||
while(p = Brdline(&bin, '\n')) {
|
||||
p[Blinelen(&bin)-1] = '\0';
|
||||
if(strcmp(p, "end of archive") == 0) {
|
||||
Bprint(&bout, "end of archive\n");
|
||||
exits(0);
|
||||
}
|
||||
|
||||
nf = tokenize(p, f, nelem(f));
|
||||
if(nf != 6) {
|
||||
fprint(2, "corrupt archive\n");
|
||||
exits("notdone");
|
||||
}
|
||||
|
||||
Bprint(&bout, "%q %q %q %q %lud %q\n",
|
||||
f[0], f[1], f[2], f[3], d, f[5]);
|
||||
|
||||
size = strtoul(f[5], 0, 0);
|
||||
Bpass(&bin, &bout, size);
|
||||
}
|
||||
fprint(2, "premature end of archive\n");
|
||||
exits("notdone");
|
||||
}
|
109
sys/lib/dist/cmd/unbflz.c
vendored
Executable file
109
sys/lib/dist/cmd/unbflz.c
vendored
Executable file
|
@ -0,0 +1,109 @@
|
|||
#include <u.h>
|
||||
#include <libc.h>
|
||||
#include <bio.h>
|
||||
|
||||
void
|
||||
usage(void)
|
||||
{
|
||||
fprint(2, "usage: unbflz [file]\n");
|
||||
exits("usage");
|
||||
}
|
||||
|
||||
int
|
||||
Bgetint(Biobuf *b)
|
||||
{
|
||||
uchar p[4];
|
||||
|
||||
if(Bread(b, p, 4) != 4)
|
||||
sysfatal("short read");
|
||||
return (p[0]<<24)|(p[1]<<16)|(p[2]<<8)|p[3];
|
||||
}
|
||||
|
||||
/*
|
||||
* memmove but make sure overlap works properly.
|
||||
*/
|
||||
void
|
||||
copy(uchar *dst, uchar *src, int n)
|
||||
{
|
||||
while(n-- > 0)
|
||||
*dst++ = *src++;
|
||||
}
|
||||
|
||||
void
|
||||
main(int argc, char **argv)
|
||||
{
|
||||
Biobuf *b, bin;
|
||||
char buf[5];
|
||||
uchar *data;
|
||||
ulong *blk, l;
|
||||
int nblk, mblk;
|
||||
int sum;
|
||||
int i, j, length, m, n, o;
|
||||
|
||||
ARGBEGIN{
|
||||
default:
|
||||
usage();
|
||||
}ARGEND
|
||||
|
||||
switch(argc){
|
||||
default:
|
||||
usage();
|
||||
case 0:
|
||||
Binit(&bin, 0, OREAD);
|
||||
b = &bin;
|
||||
break;
|
||||
case 1:
|
||||
if((b = Bopen(argv[0], OREAD)) == nil)
|
||||
sysfatal("open %s: %r", argv[0]);
|
||||
break;
|
||||
}
|
||||
|
||||
if(Bread(b, buf, 4) != 4)
|
||||
sysfatal("short read");
|
||||
|
||||
if(memcmp(buf, "BLZ\n", 4) != 0)
|
||||
sysfatal("bad header");
|
||||
|
||||
length = Bgetint(b);
|
||||
data = malloc(length);
|
||||
if(data == nil)
|
||||
sysfatal("out of memory");
|
||||
sum = 0;
|
||||
nblk = 0;
|
||||
mblk = 0;
|
||||
blk = nil;
|
||||
while(sum < length){
|
||||
if(nblk>=mblk){
|
||||
mblk += 16384;
|
||||
blk = realloc(blk, (mblk+1)*sizeof(blk[0]));
|
||||
if(blk == nil)
|
||||
sysfatal("out of memory");
|
||||
}
|
||||
l = Bgetint(b);
|
||||
blk[nblk++] = l;
|
||||
if(l&(1<<31))
|
||||
l &= ~(1<<31);
|
||||
else
|
||||
blk[nblk++] = Bgetint(b);
|
||||
sum += l;
|
||||
}
|
||||
if(sum != length)
|
||||
sysfatal("bad compressed data %d %d", sum, length);
|
||||
i = 0;
|
||||
j = 0;
|
||||
while(i < length){
|
||||
assert(j < nblk);
|
||||
n = blk[j++];
|
||||
if(n&(1<<31)){
|
||||
n &= ~(1<<31);
|
||||
if((m=Bread(b, data+i, n)) != n)
|
||||
sysfatal("short read %d %d", n, m);
|
||||
}else{
|
||||
o = blk[j++];
|
||||
copy(data+i, data+o, n);
|
||||
}
|
||||
i += n;
|
||||
}
|
||||
write(1, data, length);
|
||||
exits(nil);
|
||||
}
|
15
sys/lib/dist/logcompress.awk
vendored
Executable file
15
sys/lib/dist/logcompress.awk
vendored
Executable file
|
@ -0,0 +1,15 @@
|
|||
{
|
||||
verb[$4] = $3
|
||||
data[$4] = sprintf("%s %s %s %s %s %s", $5, $6, $7, $8, $9, $10)
|
||||
}
|
||||
|
||||
END{
|
||||
for(i in verb)
|
||||
if(verb[i] != "d")
|
||||
printf("a %s %s\n", i, data[i]) |"sort +1"
|
||||
close("sort +1")
|
||||
for(i in verb)
|
||||
if(verb[i] == "d")
|
||||
printf("d %s %s\n", i, data[i]) |"sort -r +1"
|
||||
close("sort -r +1")
|
||||
}
|
3
sys/lib/dist/logtime.awk
vendored
Executable file
3
sys/lib/dist/logtime.awk
vendored
Executable file
|
@ -0,0 +1,3 @@
|
|||
{
|
||||
printf("%s %d %s\n", t, NR, $0);
|
||||
}
|
221
sys/lib/dist/mkfile
vendored
Executable file
221
sys/lib/dist/mkfile
vendored
Executable file
|
@ -0,0 +1,221 @@
|
|||
# /sys/lib/dist/mkfile
|
||||
src9=/n/sources/plan9 # what to export
|
||||
dist=/sys/lib/dist # where this machinery lives
|
||||
scr=/n/other/dist # scratch space before copying to web.protect
|
||||
# import /sys/lib/dist/web.protect from the outside
|
||||
x=`{setup}
|
||||
|
||||
cd:V: $scr/plan9.iso
|
||||
|
||||
ncd:V: $scr/plan9-new.iso.bz2
|
||||
|
||||
ncd-dist:V: $scr/plan9-new.iso.bz2
|
||||
mk $dist/web.protect/plan9-new.iso.bz2
|
||||
|
||||
cd-dist:V: $scr/plan9.iso.bz2
|
||||
mk $dist/web.protect/plan9.iso.bz2
|
||||
|
||||
contrib-cd:V: $scr/contrib.iso.bz2
|
||||
mk $dist/web.protect/contrib.iso.bz2
|
||||
|
||||
$scr/%.iso:D: $src9/dist/replica/plan9.log
|
||||
@ { cd pc; mk cddisk }
|
||||
rm -f $target
|
||||
bind pc/cddisk cdstub/bootdisk.img
|
||||
if(! test -f $src9/bootdisk.img)
|
||||
bind -a cdstub $src9
|
||||
title=`{date | sed 's/(...) (...) (..) (..:..):.. (...) (....)/Plan 9 - \2 \3 \6 \4/'}
|
||||
title=$"title
|
||||
echo 'CD:' $title
|
||||
disk/mk9660 -9cj -v $title -s $src9 -b bootdisk.img $target
|
||||
|
||||
# copy compressed file from scratch space to the distribution, carefully
|
||||
$dist/web.protect/%.iso.bz2: $scr/%.iso.bz2
|
||||
>>$target.new
|
||||
chmod +t $target.new # waste write buf, not venti store
|
||||
cp $prereq $target.new
|
||||
# replace previous version with a flash cut
|
||||
if (test -e $target)
|
||||
mv $target $target.old # try to not clobber downloads in progress
|
||||
mv $target.new $target
|
||||
|
||||
cd-cleanup:V:
|
||||
rm -f $dist/web.protect/*.iso.bz2.old # remove old versions after a delay
|
||||
|
||||
# generate replica log & db for $src9 only
|
||||
scan:V:
|
||||
test -d $scr # make sure other was mounted above
|
||||
test -d $src9
|
||||
test -d $dist/web.protect
|
||||
lock scan.lock replica/scan $dist/sources.replica
|
||||
chmod +t $src9/dist/replica/*.^(db log)
|
||||
|
||||
# generate replica log & db for all of /n/sources
|
||||
scanall:V:
|
||||
@ {
|
||||
rfork ne
|
||||
d=/n/sources
|
||||
test -d $src9
|
||||
lock scanall.lock replica/scan $dist/sourcesall.replica
|
||||
chmod +t $src9/dist/replica/*.^(db log)
|
||||
}
|
||||
|
||||
compresslog:V:
|
||||
{
|
||||
awk -f logcompress.awk $src9/dist/replica/plan9.log |
|
||||
awk -f logtime.awk -v 't='^`{date -n} >/tmp/plan9.log
|
||||
rm -f $src9/dist/replica/plan9.new.log
|
||||
cp /tmp/plan9.log $src9/dist/replica/plan9.new.log &&
|
||||
mv $src9/dist/replica/plan9.new.log $src9/dist/replica/plan9.log
|
||||
} <scan.lock
|
||||
|
||||
#restart:V:
|
||||
# rm -f $src9/dist/replica/plan9.db
|
||||
# rm -f $src9/dist/replica/plan9.log
|
||||
# chmod 664 $src9/dist/replica/plan9.db >$src9/dist/replica/plan9.db
|
||||
# chmod 664 $src9/dist/replica/plan9.log >$src9/dist/replica/plan9.log
|
||||
# chmod +a $src9/dist/replica/plan9.log
|
||||
# mk scan
|
||||
|
||||
odump:V:
|
||||
disk/dump9660 -9cj -v 'Plan 9 4e Dumps' -s $src9 \
|
||||
-p /sys/lib/sysconfig/proto/allproto $scr/distdump.iso
|
||||
|
||||
cd.install:V:
|
||||
# if(~ $sysname achille){
|
||||
# echo; echo; echo '*** run this on a real machine, like chips.'
|
||||
# exit bad
|
||||
# }
|
||||
bzip2 -9 <$scr/plan9.iso >web.protect/nplan9.iso.bz2
|
||||
|
||||
D.install:V:
|
||||
D=/n/roro/usr/rob/testplan9
|
||||
9fs roro
|
||||
test -d $D
|
||||
cp $D$dist/pc/ndisk $dist/web.protect/ndisk
|
||||
cp $D$dist/pc/9loaddebug $dist/web.protect/n9loaddebug
|
||||
|
||||
reallyinstall:V:
|
||||
if(! ~ $sysname achille){
|
||||
echo; echo; echo '*** this needs to run on achille.'
|
||||
exit bad
|
||||
}
|
||||
cd web.protect
|
||||
for (i in plan9.iso.bz2 disk 9loaddebug vmware.zip)
|
||||
if(test -f n$i){
|
||||
mv $i _$i && { mv n$i $i || mv _$i $i }
|
||||
}
|
||||
rm /srv/ramfs.9down4e
|
||||
$dist/startcache
|
||||
|
||||
dump:V:
|
||||
rm -f /srv/9660.xxx
|
||||
9660srv 9660.xxx
|
||||
mount /srv/9660.xxx /n/kremvax $scr/plan9.iso
|
||||
now=`{mtime $dist/web.protect/plan9.iso.bz2 | awk '{print $1}'}
|
||||
ls -l /rls/plan9/4e.iso
|
||||
disk/dump9660 -9cj -s /n/kremvax -n $now /rls/plan9/4e.iso
|
||||
ls -l /rls/plan9/4e.iso
|
||||
rm /srv/9660.xxx
|
||||
|
||||
reencode:V:
|
||||
rm -f $scr/nplan9.iso
|
||||
rm -f /srv/9660.xxx
|
||||
9660srv 9660.xxx
|
||||
mount /srv/9660.xxx /n/kremvax $scr/plan9.iso
|
||||
disk/mk9660 -9cj -v 'Plan 9 4th Edition' -s /n/kremvax \
|
||||
-b bootdisk.img $scr/nplan9.iso
|
||||
rm /srv/9660.xxx
|
||||
|
||||
# compress a cd image in scratch space
|
||||
$scr/%.iso.bz2:D: $scr/%.iso
|
||||
@ {
|
||||
cd $scr
|
||||
bzip2 -9 <$stem.iso >n$stem.iso.bz2 &&
|
||||
{
|
||||
if (test -e $stem.iso.bz2)
|
||||
mv $stem.iso.bz2 _$stem.iso.bz2
|
||||
mv n$stem.iso.bz2 $stem.iso.bz2
|
||||
}
|
||||
echo `{date} md5 `{md5sum <$stem.iso.bz2} \
|
||||
sha1 `{sha1sum <$stem.iso.bz2} \
|
||||
$stem.iso.bz2 >>/usr/web/plan9checksums.txt
|
||||
}
|
||||
|
||||
$scr/contrib.iso:DV:
|
||||
rm -f $target
|
||||
disk/mk9660 -9cj -v 'Plan 9 Extras' -s /n/sources \
|
||||
-p ./contrib.proto $target
|
||||
|
||||
rebuild:V:
|
||||
chmod +l build.lock >>build.lock
|
||||
rebuild <build.lock
|
||||
|
||||
rebuild-mail:V:
|
||||
chmod +l build.lock >>build.lock
|
||||
rebuild <build.lock
|
||||
datemail 'nightly build errors' 9trouble <buildit.out
|
||||
datemail 'nightly build differences' 9trouble <checkbuild.out
|
||||
status=''
|
||||
|
||||
scansources-mail:V:
|
||||
scansources | datemail 'nightly fs vs. sources scan' 9trouble
|
||||
|
||||
worldwritable-mail:V:
|
||||
test -e $src9
|
||||
@ {cd /n/sources; /usr/rsc/bin/$cputype/lsr -t -d} |
|
||||
awk '$2 ~ /[2367]$/' | grep -vf ok-writable |
|
||||
datemail 'WRITABLE FILES ON SOURCES' 9trouble || status=''
|
||||
status=''
|
||||
@ {
|
||||
cd $src9
|
||||
/usr/rsc/bin/$cputype/lsr -t -d $src9
|
||||
} |
|
||||
awk '$2 ~ /[2367][^2367].$/' |
|
||||
datemail 'non-group-writable files on sources' 9trouble
|
||||
status=''
|
||||
# use /n/boot to avoid walking the archives mounted under
|
||||
# /lib/vac, or other mounts or binds.
|
||||
rfork n
|
||||
9fs boot
|
||||
test -e /n/boot/sys
|
||||
/usr/rsc/bin/$cputype/lsr -t -d /n/boot/sys /n/boot/lib |
|
||||
grep -v '/lib/audio/|/sys/src/cmd/vac/test/' | # give us a break
|
||||
awk '$2 ~ /[2367][^2367].$/' |
|
||||
datemail 'non-group-writable files on fs' 9trouble
|
||||
status=''
|
||||
|
||||
9.tar.gz:V:
|
||||
@{
|
||||
rfork n
|
||||
9fs sources
|
||||
test -e $src9
|
||||
bind -a $src9 $src9/sys/src
|
||||
cd $src9/sys/src
|
||||
tar c LICENSE NOTICE 9
|
||||
} | gzip >$target
|
||||
|
||||
9-export:V: 9.tar.gz
|
||||
9fs sources
|
||||
cp 9.tar.gz /n/sources/extra/9.tgz
|
||||
chmod +t /n/sources/extra/9.tgz
|
||||
|
||||
plan9.tar.bz2:V:
|
||||
@{
|
||||
rfork n
|
||||
9fs sources
|
||||
cd /n/sources
|
||||
test -e $src9
|
||||
bind /n/empty $src9/lib/font
|
||||
bind /n/empty $src9/sys/lib/postscript/font
|
||||
bind /n/empty $src9/sys/lib/ghostscript
|
||||
bind /n/empty $src9/sys/src/cmd/gs
|
||||
tar c plan9/LICENSE* plan9/NOTICE plan9/*/mkfile plan9/*/include \
|
||||
plan9/acme/*/src plan9/acme/bin/source \
|
||||
plan9/^(adm cron lib lp mail rc sys tmp usr)
|
||||
} | bzip2 >$target
|
||||
|
||||
plan9-export:V: plan9.tar.bz2
|
||||
9fs sources
|
||||
chmod +t plan9.tar.bz2
|
||||
mv plan9.tar.bz2 /n/sources/extra/plan9.tar.bz2
|
1
sys/lib/dist/pc/cd0.proto
vendored
Executable file
1
sys/lib/dist/pc/cd0.proto
vendored
Executable file
|
@ -0,0 +1 @@
|
|||
cddisk
|
0
sys/lib/dist/pc/emptyfile
vendored
Executable file
0
sys/lib/dist/pc/emptyfile
vendored
Executable file
4
sys/lib/dist/pc/glenda/bin/rc/riostart
vendored
Executable file
4
sys/lib/dist/pc/glenda/bin/rc/riostart
vendored
Executable file
|
@ -0,0 +1,4 @@
|
|||
#!/bin/rc
|
||||
|
||||
window '0 0 100 100' games/clock
|
||||
window '80 80 610 360' /usr/glenda/lib/first.window
|
11
sys/lib/dist/pc/glenda/lib/first.window
vendored
Executable file
11
sys/lib/dist/pc/glenda/lib/first.window
vendored
Executable file
|
@ -0,0 +1,11 @@
|
|||
#!/bin/rc
|
||||
echo -n readme > /dev/label
|
||||
echo 'You have completed the Installation Process.'
|
||||
|
||||
cat<<'!'
|
||||
|
||||
Welcome to Plan 9.
|
||||
This is rc.
|
||||
!
|
||||
|
||||
exec rc
|
16
sys/lib/dist/pc/glenda/lib/profile
vendored
Executable file
16
sys/lib/dist/pc/glenda/lib/profile
vendored
Executable file
|
@ -0,0 +1,16 @@
|
|||
if(test -f '#m/mousectl') {
|
||||
echo -n accelerated > '#m/mousectl'
|
||||
echo -n 'res 3' > '#m/mousectl'
|
||||
}
|
||||
user=`{cat /dev/user}
|
||||
home=/usr/$user
|
||||
bind -a $home/bin/rc /bin
|
||||
bind -a $home/bin/$cputype /bin
|
||||
bind -c $home/tmp /tmp
|
||||
rio -si inst/gui
|
||||
echo
|
||||
echo
|
||||
echo 'failed to start rio. you can start a text-based installation by running'
|
||||
echo
|
||||
echo ' inst/textonly'
|
||||
echo
|
47
sys/lib/dist/pc/inst/bootfloppy
vendored
Executable file
47
sys/lib/dist/pc/inst/bootfloppy
vendored
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/rc
|
||||
|
||||
rfork e
|
||||
|
||||
echo
|
||||
echo 'Insert a disk other than your installation boot disk'
|
||||
echo 'into your floppy drive; it will be erased to create'
|
||||
echo 'the boot floppy.'
|
||||
echo
|
||||
echo -n 'Press enter when ready.'
|
||||
read >/dev/null >[2]/dev/null
|
||||
|
||||
if(~ $#adisk 1)
|
||||
; # do nothing
|
||||
if not if(~ $#bootfile 0)
|
||||
adisk=/dev/fd0disk
|
||||
if not {
|
||||
switch($bootfile) {
|
||||
case sd*
|
||||
adisk=`{echo $bootfile | sed 's#(sd..).*#/dev/\1/data#'}
|
||||
case fd*
|
||||
adisk=`{echo $bootfile | sed 's#(fd.).*#/dev/\1disk#'}
|
||||
case *
|
||||
echo 'unknown bootfile '^$bootfile^'; mail 9trouble@plan9.bell-labs.com'
|
||||
exit oops
|
||||
}
|
||||
}
|
||||
|
||||
if(! ~ `{ls -l $adisk | awk '{print $6}'} 1474560){
|
||||
echo 'Will not format non-floppy disk '^$"adisk. >[1=2]
|
||||
exit 'bad adisk'
|
||||
}
|
||||
|
||||
log Formatting boot floppy
|
||||
if (test -e /n/newfs/386/9loadnousb)
|
||||
bind /n/newfs/386/9loadnousb /n/newfs/386/9load # cater to old bioses
|
||||
disk/format -b /386/pbs \
|
||||
-fd $adisk /n/newfs/386/9load /n/newfs/386/9pcdisk.gz \
|
||||
/tmp/plan9ini.bak
|
||||
x=$status
|
||||
|
||||
if(~ $x ''){
|
||||
echo
|
||||
echo 'Done!'
|
||||
echo
|
||||
}
|
||||
exit $x
|
55
sys/lib/dist/pc/inst/bootplan9
vendored
Executable file
55
sys/lib/dist/pc/inst/bootplan9
vendored
Executable file
|
@ -0,0 +1,55 @@
|
|||
#!/bin/rc
|
||||
|
||||
first=`{ls -p '#S' | sed 1q}
|
||||
if(! ~ $first $disk) {
|
||||
echo 'warning: The plan 9 partition is not on the boot disk,'
|
||||
echo 'so making it the active partition will have no effect.'
|
||||
}
|
||||
|
||||
p9offset=`{grep '^part 9fat ' /dev/$disk/ctl |awk '{print $3}'}
|
||||
if(! ~ $#p9offset 1) {
|
||||
echo 'could not find plan 9 partition.'
|
||||
echo 'cannot happen'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(test $p9offset -gt 4128695) { # 65536 * 63 - 10
|
||||
echo
|
||||
echo 'Your Plan 9 partition is more than 2GB into your disk,'
|
||||
echo 'and the master boot records used by Windows 9x/ME'
|
||||
echo 'cannot access it (and thus cannot boot it).'
|
||||
echo
|
||||
echo 'You can install the Plan 9 master boot record, which can load'
|
||||
echo 'partitions far into the disk.'
|
||||
echo
|
||||
}
|
||||
|
||||
echo 'If you use the Windows NT/2000/XP master boot record'
|
||||
echo 'or a master boot record from a Unix clone (e.g., LILO or'
|
||||
echo 'FreeBSD bootmgr), it is probably safe to continue using'
|
||||
echo 'that boot record rather than install the Plan 9 boot record.'
|
||||
echo
|
||||
prompt 'Install the Plan 9 master boot record' y n
|
||||
switch($rd) {
|
||||
case n
|
||||
;
|
||||
case y
|
||||
disk/mbr -m /386/mbr /dev/$disk/data
|
||||
}
|
||||
|
||||
log Setting Plan 9 partition active.
|
||||
p9part=`{disk/fdisk /dev/$disk/data >[2]/dev/null </dev/null |
|
||||
grep PLAN9 | sed 1q | sed 's/ *(p.) .*/\1/'}
|
||||
if(~ $#p9part 0){
|
||||
echo 'You have no Plan 9 partitions (How could this happen?)' >[1=2]
|
||||
exit 'no plan 9 partition found'
|
||||
}
|
||||
p9part=$p9part(1)
|
||||
{ echo 'A '^$p9part; echo w } | disk/fdisk /dev/$disk/data >[2]/dev/null >/dev/null
|
||||
x=$status
|
||||
if(~ $x '' '|'){
|
||||
echo
|
||||
echo 'The Plan 9 partition is now marked as active.'
|
||||
exit ''
|
||||
}
|
||||
exit $x
|
125
sys/lib/dist/pc/inst/bootsetup
vendored
Executable file
125
sys/lib/dist/pc/inst/bootsetup
vendored
Executable file
|
@ -0,0 +1,125 @@
|
|||
#!/bin/rc
|
||||
|
||||
# desc: create a boot floppy or configure hard disk to boot plan 9
|
||||
# prereq: copydist
|
||||
|
||||
switch($1) {
|
||||
case go
|
||||
echo
|
||||
echo 'Initializing Plan 9 FAT configuration partition (9fat)'
|
||||
echo
|
||||
|
||||
fat=(/dev/sd*/9fat)
|
||||
fat=$fat(1)
|
||||
disk=`{echo $fat | sed 's:/dev/::;s:/9fat::'}
|
||||
bootfs=`{echo $fs | sed 's:/dev/(sd..)/(.*):\1!\2:'}
|
||||
bootfat=`{echo $fs | sed 's:/dev/(sd..)/(.*):\1!9fat:'}
|
||||
if(! test -f /dev/$disk/9fat) {
|
||||
echo 'You have no 9fat partition. Can''t setup booting.'
|
||||
exit
|
||||
}
|
||||
|
||||
if(! test -f /tmp/plan9.ini) {
|
||||
{
|
||||
sfs=`{echo $fs | sed 's;/dev;#S;'}
|
||||
if(~ $fstype fossil fossil+venti){
|
||||
echo bootfile'='$bootfat!9pcf
|
||||
echo 'bootargs=local!'^$sfs
|
||||
echo 'bootdisk=local!'^$sfs
|
||||
}
|
||||
if not {
|
||||
echo bootfile'='$bootfs!/386/9pcdisk
|
||||
echo 'bootdisk=local!'^$sfs
|
||||
}
|
||||
if(~ $fstype fossil+venti){
|
||||
venti=`{echo $ventiarena | sed 's;/dev;#S;'}
|
||||
echo venti'='^$venti
|
||||
}
|
||||
# sort -u avoids dups which could otherwise trigger
|
||||
# pointless boot menus.
|
||||
grep -v '(^\[)|menuitem|adisk|bootfile|bootdisk|bootargs|nobootprompt|mouseport|vgasize|monitor|cdboot' /tmp/plan9.orig |
|
||||
sort -u
|
||||
echo 'mouseport='^$mouseport
|
||||
echo 'monitor='^$monitor
|
||||
echo 'vgasize='^$vgasize
|
||||
} >/tmp/plan9.ini
|
||||
}
|
||||
if(! test -f /tmp/plan9ini.bak)
|
||||
cp /tmp/plan9.ini /tmp/plan9ini.bak
|
||||
|
||||
need9fatformat=no
|
||||
if(! isfat /dev/$disk/9fat)
|
||||
need9fatformat=yes
|
||||
if not if(! mount -c /srv/dos /n/9fat /dev/$disk/9fat >[2]/dev/null)
|
||||
need9fatformat=yes
|
||||
if not if(! test -f /n/9fat/plan9.ini)
|
||||
need9fatformat=yes
|
||||
|
||||
if (test -e /n/newfs/386/9loadnousb)
|
||||
bind /n/newfs/386/9loadnousb /n/newfs/386/9load # cater to old bioses
|
||||
if(~ $need9fatformat yes){
|
||||
log Initializing Plan 9 FAT partition.
|
||||
disk/format -r 2 -d -b /386/pbs \
|
||||
/dev/$disk/9fat /n/newfs/386/9load
|
||||
# silently install pbslba if the partition is way into the disk.
|
||||
# it''s our only hope. only need this for >8.5GB into the disk.
|
||||
# but...
|
||||
# there are so few non-LBA bioses out
|
||||
# there anymore that we'll do this even if we're only 2GB into
|
||||
# the disk. it's just not worth the headaches of dealing with
|
||||
# crappy bioses that don't address the whole 8.5GB properly
|
||||
|
||||
9fatoffset=`{grep '^part 9fat ' /dev/$disk/ctl | awk '{print $4}'}
|
||||
if(! ~ $#9fatoffset 1) {
|
||||
echo 'could not find plan 9 partition.'
|
||||
echo 'cannot happen'
|
||||
exit bad
|
||||
}
|
||||
if(test $9fatoffset -gt 2097152) # 2GB
|
||||
disk/format -b /386/pbslba /dev/$disk/9fat
|
||||
|
||||
mount -c /srv/dos /n/9fat /dev/$disk/9fat
|
||||
}
|
||||
|
||||
if(! test -f /n/9fat/4e){
|
||||
logprog cp /n/newfs/386/9load /n/9fat/9load
|
||||
logprog cp /n/newfs/386/9pcf /n/9fat/9pcf
|
||||
if(test -f /n/9fat/plan9.ini && ! test -f /n/9fat/plan9-3e.ini)
|
||||
logprog mv /n/9fat/plan9.ini /n/9fat/plan9-3e.ini
|
||||
if(test -f /n/9fat/9pcdisk && ! test -f /n/9fat/9pc3e)
|
||||
logprog mv /n/9fat/9pcdisk /n/9fat/9pc3e
|
||||
|
||||
awk -f /bin/inst/mkini.awk >/n/9fat/plan9.ini
|
||||
>/n/9fat/4e
|
||||
}
|
||||
|
||||
echo
|
||||
echo 'There are myriad ways to boot a Plan 9 system.'
|
||||
echo 'You can use any of the following.'
|
||||
echo
|
||||
echo ' floppy - create a boot floppy'
|
||||
echo ' plan9 - make the plan 9 disk partition the default for booting'
|
||||
echo ' win9x - add a plan 9 option to windows 9x boot menu'
|
||||
echo ' winnt - add a plan 9 option to windows nt/2000/xp boot manager'
|
||||
echo
|
||||
echo 'If you are upgrading an extant third edition installation and booting'
|
||||
echo 'from something other than a floppy, you needn''t run anything here.'
|
||||
echo 'Just type ctl-d.'
|
||||
|
||||
oldbootsetup=$didbootsetup
|
||||
didbootsetup=1
|
||||
export didbootsetup
|
||||
prompt 'Enable boot method' floppy plan9 win9x winnt
|
||||
|
||||
if(! boot$rd){
|
||||
didbootsetup=$oldbootsetup
|
||||
export didbootsetup
|
||||
}
|
||||
|
||||
case checkdone
|
||||
xxxfat=(/dev/sd*/9fat)
|
||||
if(! isfat $xxxfat(1) || ! ~ $didbootsetup 1){
|
||||
bootsetup=ready
|
||||
export bootsetup
|
||||
}
|
||||
}
|
117
sys/lib/dist/pc/inst/bootwin9x
vendored
Executable file
117
sys/lib/dist/pc/inst/bootwin9x
vendored
Executable file
|
@ -0,0 +1,117 @@
|
|||
#!/bin/rc
|
||||
|
||||
dosdisk=`{ls /dev/sd??/dos >[2]/dev/null | sed 1q | sed 's!.*/(.*)/dos!\1!'}
|
||||
if(~ $#dosdisk 0 || ! c: || ! test -f /n/c:/autoexec.bat || ! test -f /n/c:/config.sys) {
|
||||
echo 'Could not find autoexec.bat or config.sys on the first FAT disk.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
for (i in autoexec config msdos)
|
||||
if(test -f /n/c:/$i.p9) {
|
||||
echo 'A Plan 9 backup already exists; will not edit system files again.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
for (i in autoexec.bat config.sys msdos.sys)
|
||||
if(! cp /n/c:/$i /n/c:/^`{echo $i | sed 's/\.(bat|sys)$/.p9/'}) {
|
||||
echo 'Could not back up '^$i^'; will not continue.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(! test -d /n/c:/plan9 && ! mkdir /n/c:/plan9) {
|
||||
echo 'Could not create directory /n/c:/plan9.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(! cp /n/newfs/386/^(9load ld.com 9pcdisk) /tmp/plan9ini.bak /n/c:/plan9) {
|
||||
echo 'Could not copy Plan 9 boot files into /n/c:/plan9.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
chmod +w /n/c:/autoexec.bat /n/c:/config.sys /n/c:/msdos.sys
|
||||
|
||||
if(grep -si 'Plan ?9' /n/c:/config.sys || grep -si 'Plan ?9' /n/c:/autoexec.bat) {
|
||||
echo 'Plan 9 entries already in config.sys or autoexec.bat.'
|
||||
echo 'Not changing them; refer to Plan 9 install documentation'
|
||||
echo 'to configure manually.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(! grep -si '\[menu\]' /n/c:/config.sys) {
|
||||
{
|
||||
echo 1
|
||||
echo i
|
||||
echo '[menu]
'
|
||||
echo 'menuitem=windows, Windows
'
|
||||
echo 'menudefault=windows
'
|
||||
echo '
'
|
||||
echo '[common]
'
|
||||
echo '
'
|
||||
echo '[windows]
'
|
||||
echo .
|
||||
echo w
|
||||
echo q
|
||||
} | ed /n/c:/config.sys >/dev/null >[2]/dev/null
|
||||
}
|
||||
|
||||
{
|
||||
echo 1
|
||||
echo '/\[[Mm][Ee][Nn][Uu]\]'
|
||||
echo '?^[Mm][Ee][Nn][Uu][Ii][Tt][Ee][Mm]='
|
||||
echo a
|
||||
echo 'menuitem=plan9, Plan 9 from Bell Labs
'
|
||||
echo .
|
||||
echo '$'
|
||||
echo a
|
||||
echo '
'
|
||||
echo '[plan9]
'
|
||||
echo '
'
|
||||
echo .
|
||||
echo w
|
||||
echo q
|
||||
} | ed /n/c:/config.sys >/dev/null>[2]/dev/null
|
||||
|
||||
{
|
||||
echo 1
|
||||
echo i
|
||||
echo '@echo off
'
|
||||
echo 'if %config%==plan9 goto plan9
'
|
||||
echo 'goto notplan9
'
|
||||
echo ':plan9
'
|
||||
echo 'plan9\ld '^$dosdisk^'!dos!plan9/9load
'
|
||||
echo ':notplan9
'
|
||||
echo .
|
||||
echo w
|
||||
echo q
|
||||
} | ed /n/c:/autoexec.bat >/dev/null>[2]/dev/null
|
||||
|
||||
fn zeroopt {
|
||||
if(grep -s '^'^$1^'=1' /n/c:/msdos.sys) {
|
||||
{
|
||||
echo '/^'^$1^'=1/s/=1/=0/'
|
||||
echo w
|
||||
echo q
|
||||
} | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
|
||||
}
|
||||
if not if (grep -s '^'^$1^'=0' /n/c:/msdos.sys)
|
||||
;
|
||||
if not {
|
||||
{
|
||||
echo 1
|
||||
echo i
|
||||
echo '[Options]
'
|
||||
echo 'Logo=0
'
|
||||
echo .
|
||||
echo w
|
||||
echo q
|
||||
} | ed /n/c:/msdos.sys>/dev/null>[2]/dev/null
|
||||
}
|
||||
}
|
||||
|
||||
if(grep -si '^\[paths\]' /n/c:/msdos.sys){ # Windows 9x rather than DOS
|
||||
zeroopt Logo
|
||||
# zeroopt BootGUI
|
||||
}
|
||||
|
||||
echo 'Plan 9 added to Windows 9X boot menu.'
|
||||
exit ''
|
47
sys/lib/dist/pc/inst/bootwinnt
vendored
Executable file
47
sys/lib/dist/pc/inst/bootwinnt
vendored
Executable file
|
@ -0,0 +1,47 @@
|
|||
#!/bin/rc
|
||||
|
||||
if(! c: || ! test -f /n/c:/boot.ini) {
|
||||
echo 'Could not find NT''s boot.ini on the first FAT disk.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(test -f /n/c:/boot.p9) {
|
||||
echo 'A Plan 9 backup already exists; will not edit boot.ini again.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(! cp /n/c:/boot.ini /n/c:/boot.p9) {
|
||||
echo 'Could not back up boot.ini; will not continue.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
chmod +w /n/c:/boot.ini
|
||||
|
||||
if(! grep -si '\[operating systems\]' /n/c:/boot.ini) {
|
||||
echo 'Could not parse boot.ini.'
|
||||
exit bad
|
||||
}
|
||||
|
||||
if(grep -si 'Plan 9' /n/c:/boot.ini) {
|
||||
p9file=`{grep 'Plan 9' /n/c:/boot.ini | sed 1q | sed 's/=.*//'}
|
||||
if(! ~ $p9file [Cc]:'\'*) {
|
||||
echo 'Unexpected Plan 9 entry in boot.ini already; not continuing.'
|
||||
exit bad
|
||||
}
|
||||
}
|
||||
|
||||
if not {
|
||||
p9file='c:\bootsect.p9'
|
||||
echo 'c:\bootsect.p9 = "Plan 9 from Bell Labs"
' >>/n/c:/boot.ini
|
||||
}
|
||||
|
||||
p9file=/n/^`{echo $p9file | sed 's!\\!/!g'}
|
||||
|
||||
|
||||
if(dd -if /dev/$disk/plan9 -bs 512 -count 1 -of $p9file >/dev/null >[2]/dev/null) {
|
||||
echo 'Plan 9 added to Windows NT boot menu.'
|
||||
exit ''
|
||||
}
|
||||
|
||||
echo 'Error copying Plan 9 boot sector to file.'
|
||||
exit bad
|
40
sys/lib/dist/pc/inst/configarch
vendored
Executable file
40
sys/lib/dist/pc/inst/configarch
vendored
Executable file
|
@ -0,0 +1,40 @@
|
|||
#!/bin/rc
|
||||
|
||||
# desc: set source of distribution archives
|
||||
# prereq: mountfs
|
||||
|
||||
switch($1) {
|
||||
case go
|
||||
echo
|
||||
echo 'Will you be using a distribution archive on local media or the internet?'
|
||||
echo
|
||||
|
||||
prompt 'Distribution is from' local internet
|
||||
archmedium=$rd
|
||||
export archmedium
|
||||
|
||||
switch($archmedium) {
|
||||
case local
|
||||
exec configlocal go
|
||||
case internet
|
||||
exec configip go
|
||||
}
|
||||
|
||||
case checkdone
|
||||
switch($#archmedium) {
|
||||
case 1
|
||||
switch($archmedium) {
|
||||
case local
|
||||
exec configlocal checkdone
|
||||
case internet
|
||||
exec configip checkdone
|
||||
case *
|
||||
configarch=notdone
|
||||
export configarch
|
||||
}
|
||||
case *
|
||||
configarch=notdone
|
||||
export configarch
|
||||
}
|
||||
}
|
||||
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue