Development
: K-Meleon Forum
K-Meleon development related discussions.
Goto:
Forum List
•
Message List
•
Search
•
Log In
Your Name:
Subject:
Help information
BBcode help
Smileys help
[quote=JujuLand] @ www_ngtech_gr I have test it, but I prefer not to use external tool (when possible). Look at what I've done. @ mark307, I have implemented a new aspell version that works without needing an external tool to wait for the end of the operation. But I always have 2 problems with coding: Just one can be treated under K-Meleon: the output used OEM format, and I need a EncodeOEM2UTF8 function. I have found a source which can be simplificated and adapted to make this function. If you can see it. Here is the C source: ----------------------------------------- /* ========================================================================== */ /* */ /* oem2ansi.c */ /* (c) 2001 Author */ /* */ /* Description */ /* */ /* ========================================================================== */ #include <stdio.h> const wchar_t cp437uni[128]={ /* 0x80..0xFF */ 0x00C7,0x00FC,0x00E9,0x00E2,0x00E4,0x00E0,0x00E5,0x00E7, 0x00EA,0x00EB,0x00E8,0x00EF,0x00EE,0x00EC,0x00C4,0x00C5, 0x00C9,0x00E6,0x00C6,0x00F4,0x00F6,0x00F2,0x00FB,0x00F9, 0x00FF,0x00D6,0x00DC,0x00A2,0x00A3,0x00A5,0x20A7,0x0192, 0x00E1,0x00ED,0x00F3,0x00FA,0x00F1,0x00D1,0x00AA,0x00BA, 0x00BF,0x2310,0x00AC,0x00BD,0x00BC,0x00A1,0x00AB,0x00BB, 0x2591,0x2592,0x2593,0x2502,0x2524,0x2561,0x2562,0x2556, 0x2555,0x2563,0x2551,0x2557,0x255D,0x255C,0x255B,0x2510, 0x2514,0x2534,0x252C,0x251C,0x2500,0x253C,0x255E,0x255F, 0x255A,0x2554,0x2569,0x2566,0x2560,0x2550,0x256C,0x2567, 0x2568,0x2564,0x2565,0x2559,0x2558,0x2552,0x2553,0x256B, 0x256A,0x2518,0x250C,0x2588,0x2584,0x258C,0x2590,0x2580, 0x03B1,0x00DF,0x0393,0x03C0,0x03A3,0x03C3,0x03BC,0x03C4, 0x03A6,0x0398,0x03A9,0x03B4,0x221E,0x03C6,0x03B5,0x2229, 0x2261,0x00B1,0x2265,0x2264,0x2320,0x2321,0x00F7,0x2248, 0x00B0,0x2219,0x00B7,0x221A,0x207F,0x00B2,0x25A0,0x00A0}; const wchar_t cp1252uni[32]={ /* 0x80..0x9F */ 0x20AC,0x0020,0x201A,0x0192,0x201E,0x2026,0x2020,0x2021, 0x02C6,0x2030,0x0160,0x2039,0x0152,0x0020,0x017D,0x0020, 0x0020,0x2018,0x2019,0x201C,0x201D,0x2022,0x2013,0x2014, 0x02DC,0x2122,0x0161,0x203A,0x0153,0x0020,0x017E,0x0178}; void put_utf8(wchar_t c) { /* Code <0x10000 <0x800 <0x80 1. Byte 1110 xxxx 110x xxxx 0xxx xxxx 2. Byte 10xx xxxx 10xx xxxx 3. Byte 10xx xxxx */ if (c<0x80) { putchar(c); }else if (c<0x800) { putchar((c>>6)|0xC0); putchar(c&0x3F|0x80); }else{ putchar((c>>12)|0xE0); putchar((c>>6)&0x3F|0x80); putchar(c&0x3F|0x80); } } /* with no command-line argument, convert CP437 to UTF8, with one (dummy) command-line argument, put this program to a "guess mode", with two (dummy) command-line arguments, inverse guessing reaction, returns 1 if OEM2UTF converted, 2..4 if ANSI2UTF converted, 2..3 if plain ASCII, 0 if not converted but Windows UTF8 header stripped, -1 if conversion from UCS16 to UTF8 (Windows UCS16 header stripped too) */ int main(int argc) { int c; c=getchar(); if (c==0xEF) { /* Windows UTF8 header */ getchar(); /* skip 0xBB */ getchar(); /* skip 0xBF */ argc=0; /* don't convert */ }else if (c==0xFF) { /* Windows UCS16 header */ getchar(); /* skip 0xFE */ argc=-1; /* convert special */ }else goto inloop; while (1) { c=getchar(); inloop: if (c==EOF) break; if (argc<0) { /* UCS16 Intel */ c|=getchar()<<8; }else{ if (c>=0x80) { if (argc==2) { if (c>=0xA6 && c!=0xE1) argc=4; /* ANSI, force convert */ else argc=1; /* OEM, force convert */ }else if (argc==3) { if (c>=0xA6 && c!=0xE1) argc=1; else argc=4; } if (argc==1) c=cp437uni[c-0x80]; if (argc==4 && c<0xA0) c=cp1252uni[c-0x80]; } } if (argc) put_utf8(c); else putchar(c); } return argc; } -------------------------------------------------------------------------- A+[/quote]
[Please Enable JavaScript]
K-Meleon forum is powered by
Phorum
.
Home/News
Screenshots
Download
Documentation
Resources
Get Involved
Forum
Bugs
Development