Цель данного проекта русификация линуксовой консольной fp-ide, исправление её багов, улучшения и т.д. Обсуждение растянулось на много страниц, поэтому, по мере необходимости, в первом сообщении буду выкладывать ссылки на сборники патчей для fp-ide, собранные бинарники, репозитории с пакетами и т.д.
_____________________________
Минирепозиторий на яндексдиске с rpm пакетами и архивами для сборки fpc иде с gdb-7.5.1 и прочими паскалевскими файлами https://yadi.sk/d/nZWxv0fhcarML Иде можно вытаскивать из соответствующего собранного пакета и переименовав копировать в /usr/local/bin
_____________________________
fpc-3.0.4 +gdb-7.9 - http://freepascal.ru/forum/viewtopic.ph ... 54#p127754
_____________________________
Репозиторий: ftp://ftp.mageialinux.ru/mageia2/SRPMS/ (пакет называется fp-ide)
Дистрибутив (live): http://forum.mageialinux.ru/viewtopic.p ... 7293#p7293
Более подробно тут: http://freepascal.ru/forum/viewtopic.php?p=71019#p71019
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Компилятор 2.0.2 последний, редактор которого нормально отображал русские буквы. Уже вышла версия 2.4.0 и надеяться на то что разработчики что-то исправят не приходится. Судя по исходникам, предполагается, пользователи fp кодят в cp437 - какое дело французам до кодировок cp866 и cp1251. Нужно самим сделать необходимые исправления и отправить разработчикам готовый вариант на утвержение. Кое что я уже исправил, но опасаюсь, буржуйские разработчики не оценят моих познаний в иностранных языках
Для разработки понадобятся исходники компилятора http://freepascal.org/down/source/sources.var Компиляция: командой make all из каталога fpc-2.4.0, перед повторной компиляцией удалить файл build-stamp.i386-linux Собака зарыта в файле fpc-2.4.0/rtl/unix/video.pp Мой вариант исправленного файла и уже скомпиленного редактора fp http://kran100.narod.ru/1/fpc-240-1386-linux.zip
Запускать fp нужно в косоли с кодировкой utf8, сразу после запуска кнопкой меню переключиться на cp866.
- Код: Выделить всё
function transform_cp850_to_iso01(const st:string):string;//----------трансформация текста и псевдографики
var i:byte;
c:char;
converted:word;
begin
transform_cp850_to_iso01:='';
for i:=1 to length(st) do
begin
c:=st[i];
case c of
#0..#31:
converted:=convert_lowascii_to_iso01[c];
#128..#175,#224..#241: converted:=byte(c); //--CP866-------изменено---для использования запустить редактор с UTF8 кодироакой консоли, после переключиться в CP866
#176..#223,#242..#245: //---------------изменено
converted:=convert_cp850_to_iso01[c];
else
converted:=byte(c);
end;
if converted and $ff00=$f800 then
begin
if not in_ACS then
begin
transform_cp850_to_iso01:=transform_cp850_to_iso01+ACSIn;
in_ACS:=true;
end;
end
else
if in_ACS then
begin
transform_cp850_to_iso01:=transform_cp850_to_iso01+ACSOut+
Attr2Ansi(LastAttr,0);
in_ACS:=false;
end;
c:=char(converted and $ff);
transform_cp850_to_iso01:=transform_cp850_to_iso01+c;
end;
end;
Если запускать редактор не с utf8 кодировкой, русские буквы необходимо дополнительно преобразовывать. Проблема в том что программно невозможно узнать кодировку включенную в консоли кнопкой - переменная LANG при этом не меняется.string;//----------трансформация текста и псевдографики