1,4 → 1,4 |
{cp866} |
{utf8} |
unit System; |
|
{$i _defines.inc} |
56,16 → 56,16 |
begin |
while Args^ <> #0 do |
begin |
{யãáâ¨âì «¨¤¨àãî騥 ¯à®¡¥«ë} |
{Пропустить лидирующие пробелы} |
while Args^ in [#1..#32] do Inc(Args); |
if Args^ = #0 then Break; |
|
{ ¯®¬¨âì 㪠§ â¥«ì ¯ à ¬¥âà} |
{Запомнить указатель на параметр} |
SetLength(Ptrs, Argc); |
Ptrs[Argc - 1] := Args; |
Inc(Argc); |
|
{யãáâ¨âì ⥪ã騩 ¯ à ¬¥âà} |
{Пропустить текущий параметр} |
InQuotes := False; |
while (Args^ <> #0) and (not (Args^ in [#1..#32]) or InQuotes) do |
begin |
73,7 → 73,7 |
Inc(Args); |
end; |
|
{áâ ®¢¨âì ®ª®ç ¨¥ ¯ à ¬¥âà } |
{Установить окончание параметра} |
if Args^ in [#1..#32] then |
begin |
Args^ := #0; |
81,12 → 81,12 |
end; |
end; |
end; |
Argv := GetMem(Argc * SizeOf(PChar)); {XXX: ¯ ¬ïâì ¥ ®á¢®¡®¦¤ ¥âáï} |
Argv := GetMem(Argc * SizeOf(PChar)); {XXX: память не освобождается} |
Argv[0] := PKosHeader(0)^.path; |
for I := 1 to Argc - 1 do |
begin |
Argv[I] := Ptrs[I - 1]; |
{᪫îç¨âì ª ¢ë窨 ¨§ áâப¨} |
{Исключить кавычки из строки} |
Args := Argv[I]; |
L := 0; |
while Args^ <> #0 do begin Inc(Args); Inc(L); end; |
118,7 → 118,7 |
|
procedure Randomize; |
begin |
randseed := 0; {GetTickCount()} |
randseed := kos_timecounter(); |
end; |
|
const |
136,7 → 136,6 |
end; |
|
{$i kos_stdio.inc} |
{-$i kos_term.inc} |
|
procedure SysInitStdIO; |
begin |
158,15 → 157,15 |
begin |
if ExitCode <> 0 then |
begin |
{XXX: ®¡ï§ ⥫쮥 ãá«®¢¨¥ ®¤®¯®â®çë© Konsole} |
{XXX: обязательное условие на однопоточный Konsole} |
Write(StdErr, '[Error #', ExitCode,', press any key]'); |
{®¦¨¤ âì ¦ â¨ï ª« ¢¨è¨} |
{ожидать нажатия клавиши} |
Konsole.KeyPressed; |
while Konsole.KeyPressed = 0 do kos_delay(2); |
{TODO: ¨á¯à ¢¨âì ª®áïª ¯à¨ ¯¥à¥à¨á®¢ª¥ Konsole} |
{íâ® ¥¢®§¬®¦®, â ª ª ª ªãç ®á¢®¡®¦¤ ¥âáï ¥é¥ ¤® ¢ë§®¢ í⮩ ¯à®æ¥¤ãàë} |
{¬®¦® ¯¨á âì ᢮© ¤¨á¯¥âç¥à ¯ ¬ïâ¨, ® íâ® á«®¦®} |
{ ¥á«¨ ¢ Konsole ¨á¯®«ì§®¢ âì ¢ë¤¥«¥¨¥ ¯ ¬ï⨠¯àï¬ãî ç¥à¥§ KosAPI?!} |
{TODO: исправить косяк при перерисовке Konsole} |
{это невозможно, так как куча освобождается еще до вызова этой процедуры} |
{можно написать свой диспетчер памяти, но это сложно} |
{а если в Konsole использовать выделение памяти напрямую через KosAPI?!} |
end; |
Close(StdErr); |
Close(StdOut); |