/programs/develop/cedit/CEDIT |
---|
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
/programs/develop/cedit/SRC/CEdit.ob07 |
---|
24,11 → 24,11 |
U := Utils, Lines, Menu, List, |
G := Graph, T := Text, E := Encodings, |
CB := Clipboard, Languages, |
ChangeLog, Scroll, CheckBox, KOSAPI, SYSTEM, |
ChangeLog, Scroll, CheckBox, |
RW, Ini, EB := EditBox, Tabs, Toolbar, SB := StatusBar; |
CONST |
HEADER = "CEdit (28-jan-2022)"; |
HEADER = "CEdit (09-feb-2022)"; |
ShellFilter = ""; |
EditFilter = "SH|INC|TXT|ASM|OB07|C|CPP|H|PAS|PP|LUA|INI|JSON"; |
124,7 → 124,7 |
menuUTF8BOM = 60; |
menuUTF8 = 61; |
menuCP866 = 62; |
menuWin1251 = 63; |
menuCP1251 = 63; |
menuEOL = 140; |
menuConv1251_866 = 64; |
menuConv866_1251 = 65; |
1045,7 → 1045,7 |
Menu.option(menu, menuUTF8BOM, T.getEnc(text) = E.UTF8BOM); |
Menu.option(menu, menuUTF8, T.getEnc(text) = E.UTF8); |
Menu.option(menu, menuCP866, T.getEnc(text) = E.CP866); |
Menu.option(menu, menuWin1251, T.getEnc(text) = E.W1251) |
Menu.option(menu, menuCP1251, T.getEnc(text) = E.CP1251) |
ELSIF menu = menuView THEN |
Menu.option(menu, menuFontSmall, font = G.fonts[0]); |
Menu.option(menu, menuFontMedium, font = G.fonts[1]); |
1271,8 → 1271,8 |
T.setEnc(text, E.UTF8) |
|menuCP866: |
T.setEnc(text, E.CP866) |
|menuWin1251: |
T.setEnc(text, E.W1251) |
|menuCP1251: |
T.setEnc(text, E.CP1251) |
|menuLF: |
T.setEol(text, E.EOL_LF) |
|menuCRLF: |
1280,9 → 1280,9 |
|menuCR: |
T.setEol(text, E.EOL_CR) |
|menuConv1251_866: |
T.convert(text, E.cp866, E.W1251) |
T.convert(text, (*E.cp866,*) E.CP1251) |
|menuConv866_1251: |
T.convert(text, E.cp1251, E.CP866) |
T.convert(text, (*E.cp1251,*) E.CP866) |
|menuPipet: |
K.Run("/sys/develop/pipet", "") |
|menuMagnify: |
1413,7 → 1413,7 |
Menu.AddMenuItem(menu, menuUTF8BOM, E.names[E.UTF8BOM]); |
Menu.AddMenuItem(menu, menuUTF8, E.names[E.UTF8]); |
Menu.AddMenuItem(menu, menuCP866, E.names[E.CP866]); |
Menu.AddMenuItem(menu, menuWin1251, E.names[E.W1251]); |
Menu.AddMenuItem(menu, menuCP1251, E.names[E.CP1251]); |
Menu.delimiter(menu); |
Menu.AddMenuItem(menu, menuEOL, "EOL"); |
Menu.child(menu, subEOL); |
2022,47 → 2022,6 |
END ScrollChange; |
PROCEDURE docpack (VAR param: RW.tFileName); |
VAR |
i, size, errno: INTEGER; |
ptr, ptr2: INTEGER; |
s: ARRAY 32 OF WCHAR; |
BEGIN |
U.reverse8(param); |
param[LENGTH(param) - 1] := 0X; |
U.reverse8(param); |
i := 0; |
WHILE param[i] # 0X DO |
s[i] := WCHR(ORD(param[i])); |
INC(i) |
END; |
IF U.str2int(s, size) THEN |
INC(size, 20); |
ptr := KOSAPI.malloc(size); |
IF ptr # 0 THEN |
SYSTEM.PUT32(ptr, 0); |
SYSTEM.PUT32(ptr + 4, 8); |
KOSAPI.sysfunc4(60, 1, ptr, size); |
K.SetEventsMask({6}); |
IF K.EventTimeout(200) = 7 THEN |
SYSTEM.PUT32(ptr, 1); |
SYSTEM.GET(ptr + 12, size); |
ptr2 := KOSAPI.malloc(size); |
IF ptr2 # 0 THEN |
SYSTEM.MOVE(ptr + 16, ptr2, size); |
text := T.open("", ptr2, size, errno); |
IF text # NIL THEN |
insert(0, text); |
T.SetPos(text, 0, 0) |
END |
END |
END; |
ptr := KOSAPI.free(ptr) |
END |
END |
END docpack; |
PROCEDURE main; |
VAR |
fileName, filePath: RW.tFileName; |
2070,6 → 2029,7 |
resized: BOOLEAN; |
firstClickX, firstClickY, time, blink, i: INTEGER; |
key, scr: INTEGER; |
text_ptr, text_size, errno: INTEGER; |
BEGIN |
header := ""; |
K.GetSystemColors; |
2170,8 → 2130,15 |
U.getPath(fileName, filePath) |
END |
ELSE |
docpack(fileName) |
K.docpack(fileName, text_ptr, text_size); |
IF text_ptr # 0 THEN |
text := T.open("", text_ptr, text_size, errno); |
IF text # NIL THEN |
insert(0, text); |
T.SetPos(text, 0, 0) |
END |
END |
END |
END; |
IF textsCount = 0 THEN |
K.Exit |
/programs/develop/cedit/SRC/Encodings.ob07 |
---|
20,7 → 20,7 |
MODULE Encodings; |
CONST |
CP866* = 0; W1251* = 1; UTF8* = 2; UTF8BOM* = 3; (*UTF16LE* = 4;*) |
CP866* = 0; CP1251* = 1; UTF8* = 2; UTF8BOM* = 3; (*UTF16LE* = 4;*) |
UNDEF* = -1; |
64,7 → 64,7 |
END Init8; |
PROCEDURE InitW1251 (VAR cp: CP); |
PROCEDURE InitCP1251 (VAR cp: CP); |
VAR |
n, i: INTEGER; |
BEGIN |
81,7 → 81,7 |
Init8(cp, n, 0401H, 00A9H, 0404H, 00ABH, 00ACH, 00ADH, 00AEH, 0407H); |
Init8(cp, n, 00B0H, 00B1H, 0406H, 0456H, 0491H, 00B5H, 00B6H, 00B7H); |
Init8(cp, n, 0451H, 2116H, 0454H, 00BBH, 0458H, 0405H, 0455H, 0457H); |
END InitW1251; |
END InitCP1251; |
PROCEDURE InitCP866 (VAR cp: CP); |
114,11 → 114,11 |
BEGIN |
FOR i := 0 TO 65535 DO |
UNI[i, CP866] := UNDEF; |
UNI[i, W1251] := UNDEF |
UNI[i, CP1251] := UNDEF |
END; |
FOR i := 0 TO 255 DO |
IF cp1251[i] # UNDEF THEN |
UNI[cp1251[i], W1251] := i |
UNI[cp1251[i], CP1251] := i |
END; |
IF cp866[i] # UNDEF THEN |
UNI[cp866[i], CP866] := i |
135,10 → 135,10 |
eolNames[EOL_LF] := "LF"; |
eolNames[EOL_CR] := "CR"; |
names[CP866] := "CP866"; |
names[W1251] := "Windows-1251"; |
names[CP1251] := "CP1251"; |
names[UTF8] := "UTF-8"; |
names[UTF8BOM] := "UTF-8-BOM"; |
InitW1251(cp1251); |
InitCP1251(cp1251); |
InitCP866(cp866); |
setUNI |
END Encodings. |
/programs/develop/cedit/SRC/KolibriOS.ob07 |
---|
20,7 → 20,7 |
MODULE KolibriOS; |
IMPORT |
KOSAPI, SYSTEM; |
KOSAPI, SYSTEM, U := Utils; |
CONST |
fontWidth* = 8; |
393,6 → 393,44 |
END PutPixel; |
PROCEDURE docpack* (VAR param: ARRAY OF CHAR; VAR text_ptr, text_size: INTEGER); |
VAR |
i, size, ptr, ptr2: INTEGER; |
s: ARRAY 32 OF WCHAR; |
BEGIN |
ptr2 := 0; |
U.reverse8(param); |
param[LENGTH(param) - 1] := 0X; |
U.reverse8(param); |
i := 0; |
WHILE param[i] # 0X DO |
s[i] := WCHR(ORD(param[i])); |
INC(i) |
END; |
IF U.str2int(s, size) THEN |
INC(size, 20); |
ptr := KOSAPI.malloc(size); |
IF ptr # 0 THEN |
SYSTEM.PUT32(ptr, 0); |
SYSTEM.PUT32(ptr + 4, 8); |
KOSAPI.sysfunc4(60, 1, ptr, size); |
SetEventsMask({6}); |
IF EventTimeout(200) = 7 THEN |
SYSTEM.PUT32(ptr, 1); |
SYSTEM.GET(ptr + 12, size); |
ptr2 := KOSAPI.malloc(size); |
IF ptr2 # 0 THEN |
SYSTEM.MOVE(ptr + 16, ptr2, size) |
END |
END; |
ptr := KOSAPI.free(ptr) |
END |
END; |
text_ptr := ptr2; |
text_size := size |
END docpack; |
BEGIN |
GetSystemColors |
END KolibriOS. |
/programs/develop/cedit/SRC/RW.ob07 |
---|
143,9 → 143,9 |
END getCharUTF8; |
PROCEDURE getCharW1251 (file: tInput): INTEGER; |
PROCEDURE getCharCP1251 (file: tInput): INTEGER; |
RETURN E.cp1251[getByte(file)] |
END getCharW1251; |
END getCharCP1251; |
PROCEDURE getCharCP866 (file: tInput): INTEGER; |
224,7 → 224,7 |
pos, cnt, res: INTEGER; |
continue, bom: BOOLEAN; |
b: BYTE; |
cp866, w1251: INTEGER; |
cp866, cp1251: INTEGER; |
BEGIN |
pos := text.pos; |
cnt := text.cnt; |
258,19 → 258,19 |
text.cnt := cnt; |
text.pos := pos; |
cp866 := 0; |
w1251 := 0; |
cp1251 := 0; |
WHILE text.cnt > 0 DO |
b := getByte(text); |
IF b > 127 THEN |
IF b >= 192 THEN |
INC(w1251) |
INC(cp1251) |
ELSE |
INC(cp866) |
END |
END |
END; |
IF w1251 > cp866 THEN |
res := E.W1251 |
IF cp1251 > cp866 THEN |
res := E.CP1251 |
ELSE |
res := E.CP866 |
END |
363,12 → 363,12 |
res.getChar := getCharUTF8 |
ELSIF enc = E.CP866 THEN |
res.getChar := getCharCP866 |
ELSIF enc = E.W1251 THEN |
ELSIF enc = E.CP1251 THEN |
IF cp866 THEN |
enc := E.CP866; |
res.getChar := getCharCP866 |
ELSE |
res.getChar := getCharW1251 |
res.getChar := getCharCP1251 |
END |
END; |
eol := detectEOL(res); |
488,10 → 488,10 |
END putCharCP; |
PROCEDURE putCharW1251 (file: tOutput; code: INTEGER); |
PROCEDURE putCharCP1251 (file: tOutput; code: INTEGER); |
BEGIN |
putCharCP(file, code, E.W1251) |
END putCharW1251; |
putCharCP(file, code, E.CP1251) |
END putCharCP1251; |
PROCEDURE putCharCP866 (file: tOutput; code: INTEGER); |
544,8 → 544,8 |
res.putChar := putCharUTF8 |
(*ELSIF enc = E.UTF16LE THEN |
res.putChar := putCharUTF16LE*) |
ELSIF enc = E.W1251 THEN |
res.putChar := putCharW1251 |
ELSIF enc = E.CP1251 THEN |
res.putChar := putCharCP1251 |
ELSIF enc = E.CP866 THEN |
res.putChar := putCharCP866 |
END; |
/programs/develop/cedit/SRC/Text.ob07 |
---|
2734,15 → 2734,17 |
ELSE |
code := ORD(c) |
END; |
res := WCHR(code) # c; |
c := WCHR(code) |
IF code # ORD(c) THEN |
c := WCHR(code); |
res := TRUE |
END |
END |
RETURN res |
END conv; |
PROCEDURE conv1251to866 (VAR c: WCHAR): BOOLEAN; |
RETURN conv(c, E.cp866, E.W1251) |
RETURN conv(c, E.cp866, E.CP1251) |
END conv1251to866; |
2751,7 → 2753,7 |
END conv866to1251; |
PROCEDURE convert* (text: tText; cp: E.CP; enc: INTEGER); |
PROCEDURE convert* (text: tText; (*cp: E.CP;*) enc: INTEGER); |
VAR |
line: tLine; |
func: Lines.fConvert; |
2761,7 → 2763,7 |
line := text.first(tLine); |
IF enc = E.CP866 THEN |
func := conv866to1251 |
ELSIF enc = E.W1251 THEN |
ELSIF enc = E.CP1251 THEN |
func := conv1251to866 |
ELSE |
line := NIL |