Код:
assign(f,fname);
{I-}
reset(f);
{I+}
if IOResult <> 0 then begin
rewrite(f);
Вообще-то ТУТ дело явно в программе, у тебя не отключение/включение контроля ошибок ввода-вывода, а простые комментарии, и при включенном режиме Options ->Compiler -> Generated code -> IO Checking программа должна вылетать. А при удалении конфигов ты просто сбрасываешь этот ключ компилятора в дефолтное состояние (а дефолтное у него - "Отключено"), и просто замалчиваешь ошибку. Не надо искать проблем там, где их нет. Исправь программу ({$I-} и {$I+}) и все будет нормально.
Кстати: в папке, куда установлен FPC (т.е., в \fpc\bin\{target}) есть копия fp.cfg, всегда можно забрать ее оттуда.
Не знаю, как это получилось, но еще зависало когда печатал syst, хотя если напечатать sys, а через пробел utils, то после удаления пробела все нормально. Вообщем решилась проблема удалением файла fp.dsk.
А зачем вообще $I обратно на + ставить?
Затем, что это - дефолтное значение. Как говорится, "не будем нарушать отчетности" (С), было включено - выключили, сделали при выключенном состоянии то, что нужно, включили назад. Да и сам FPC так написан (и компилятор, и IDE, и все дополнительные утилиты).
А если программа изначально компилируется при {$I-}? То получается, что нарушаем как раз.
> то программист - ССЗБ
Ну и зря.
Я этот ключ отрубил раз и навсегда и при открытии файлов никаких плясок с директивами не делаю вообще.