![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка: already in skipping mode.
SAGE © (2003-12-19 15:52:00)При попытке конвертнуть KOL 1.87 в FPC с помощью FPC2KOL:
Error in line 41: -} - already in skipping mode.
Gandalf (2003-12-19 17:20:00) [1]И не только в Win32... Есть там такое дело - надо в указаной строке поменять минус {-} на плюс {+} - если не ошибаюсь. И еще там баг - Кладов случайно вырезал Win32 ParamStr. Потому надо довать (заменить) строки с ParamStr и ParamCount на:
{#IF not[DELPHI]}{-}
function ParamStr( Idx: Integer ): String;
var
P, P1: PChar;
Buffer: array[ 0..260 ] of Char;
begin
if Idx = 0 then
SetString( Result, Buffer, GetModuleFileName( 0, Buffer, Sizeof( Buffer ) ) )
else
begin
P := GetCommandLine;
repeat
P := SkipSpaces( P );
P1 := P;
P := SkipParam(P);
if Idx = 0 then Break;
Dec(Idx);
until (Idx < 0) or (P = P1);
Result := Copy( P1, 1, P - P1 );
if Length( Result ) >= 2 then
if (Result[ 1 ] = '"') and (Result[ Length( Result ) ] = '"') then
Result := Copy( Result, 2, Length( Result ) - 2 );
end;
end;
{+}{#END}
{#IF [KYLIX]}{++}(*
function ParamStr( Idx: Integer ): String;
type
PCharArray = array[0..0] of PChar;
begin
if Index < ArgCount then
Result := PCharArray(ArgValues^)[Index]
else
Result := '';
end;
*){--}{#END}
{#IF [LINUX]}{++}(*
function ParamStr( Idx: Integer ): String;
begin
Result:=System.ParamStr(Idx);
end;
*){--}{#END}
{#IF [WIN32]}{++}(*
function ParamStr( Idx: Integer ): String;
begin
Result:=System.ParamStr(Idx);
end;
*){--}{#END}
{#IF not[DELPHI]}{-}
function ParamCount: Integer;
var
S: string;
begin
Result := 0;
while True do
begin
S := ParamStr(Result + 1);
if S = '' then Break;
Inc(Result);
end;
end;
{+}{#END}
{#IF [KYLIX]}{++}(*
function ParamCount: Integer;
begin
if ArgCount > 1 then
Result := ArgCount - 1
else Result := 0;
end;
*){--}{#END}
{#IF [LINUX]}{++}(*
function ParamCount: Integer;
begin
Result:=System.ParamCount;
end;
*){--}{#END}
{#IF [WIN32]}{++}(*
function ParamCount: Integer;
begin
Result:=System.ParamCount;
end;
*){--}{#END}
ЗЫ: И там вообще уже много новых корректив появилось, надеюсь на днях поделиться.
Vladimir Kladov (2003-12-19 16:46:00) [2]Ну и ничего страшного. Пока можно ручками на всех 4 или 5 строках заменить на {+}. Обновление будет совсем скоро, заодно и порпавлю компилируемость в PAS_VERSION.