* in lexbase and yaccbase units,

use DirectorySeparator instead of '\' in functions
    path, root and addext.
  * in plex and pyacc programs, for unix,
    try to find installed yyparse.cod using
    path of paramstr(0).

git-svn-id: trunk@40619 -
This commit is contained in:
pierre 2018-12-23 16:17:49 +00:00
parent e156128065
commit 1d7f5fa812
5 changed files with 23 additions and 11 deletions

View File

@ -969,7 +969,7 @@ function path(filename : String) : String;
var i : Integer; var i : Integer;
begin begin
i := length(filename); i := length(filename);
while (i>0) and (filename[i]<>'\') and (filename[i]<>':') do while (i>0) and (filename[i]<>DirectorySeparator) and (filename[i]<>':') do
dec(i); dec(i);
path := copy(filename, 1, i); path := copy(filename, 1, i);
end(*path*); end(*path*);
@ -985,10 +985,10 @@ function root(filename : String) : String;
root := copy(filename, 1, i-1); root := copy(filename, 1, i-1);
exit exit
end; end;
'\': exit; DirectorySeparator : exit;
else else
end; end;
end(*addExt*); end(*root*);
function addExt(filename, ext : String) : String; function addExt(filename, ext : String) : String;
(* implemented with goto for maximum efficiency *) (* implemented with goto for maximum efficiency *)
label x; label x;
@ -999,7 +999,7 @@ function addExt(filename, ext : String) : String;
for i := length(filename) downto 1 do for i := length(filename) downto 1 do
case filename[i] of case filename[i] of
'.' : exit; '.' : exit;
'\': goto x; DirectorySeparator: goto x;
else else
end; end;
x : addExt := filename+'.'+ext x : addExt := filename+'.'+ext

View File

@ -597,6 +597,10 @@ var i : Integer;
begin begin
{$ifdef Unix} {$ifdef Unix}
codfilepath1:=path(paramstr(0));
if (codfilepath1<>'') then
codfilepath1:=codfilepath1+'../lib/fpc/lexyacc/'
else
codfilepath1:='/usr/local/lib/fpc/lexyacc/'; codfilepath1:='/usr/local/lib/fpc/lexyacc/';
codfilepath2:='/usr/lib/fpc/lexyacc/'; codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else} {$else}

View File

@ -2375,6 +2375,10 @@ var i : Integer;
begin begin
{$ifdef Unix} {$ifdef Unix}
codfilepath1:=path(paramstr(0));
if (codfilepath1<>'') then
codfilepath1:=codfilepath1+'../lib/fpc/lexyacc/'
else
codfilepath1:='/usr/local/lib/fpc/lexyacc/'; codfilepath1:='/usr/local/lib/fpc/lexyacc/';
codfilepath2:='/usr/lib/fpc/lexyacc/'; codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else} {$else}

View File

@ -711,6 +711,10 @@ var i : Integer;
begin begin
{$ifdef Unix} {$ifdef Unix}
codfilepath1:=path(paramstr(0));
if (codfilepath1<>'') then
codfilepath1:=codfilepath1+'../lib/fpc/lexyacc/'
else
codfilepath1:='/usr/local/lib/fpc/lexyacc/'; codfilepath1:='/usr/local/lib/fpc/lexyacc/';
codfilepath2:='/usr/lib/fpc/lexyacc/'; codfilepath2:='/usr/lib/fpc/lexyacc/';
{$else} {$else}

View File

@ -640,7 +640,7 @@ function path(filename : String) : String;
var i : Integer; var i : Integer;
begin begin
i := length(filename); i := length(filename);
while (i>0) and (filename[i]<>'\') and (filename[i]<>':') do while (i>0) and (filename[i]<>DirectorySeparator) and (filename[i]<>':') do
dec(i); dec(i);
path := copy(filename, 1, i); path := copy(filename, 1, i);
end(*path*); end(*path*);
@ -656,10 +656,10 @@ function root(filename : String) : String;
root := copy(filename, 1, i-1); root := copy(filename, 1, i-1);
exit exit
end; end;
'\': exit; DirectorySeparator: exit;
else else
end; end;
end(*addExt*); end(*root*);
function addExt(filename, ext : String) : String; function addExt(filename, ext : String) : String;
(* implemented with goto for maximum efficiency *) (* implemented with goto for maximum efficiency *)
label x; label x;
@ -670,7 +670,7 @@ function addExt(filename, ext : String) : String;
for i := length(filename) downto 1 do for i := length(filename) downto 1 do
case filename[i] of case filename[i] of
'.' : exit; '.' : exit;
'\': goto x; DirectorySeparator : goto x;
else else
end; end;
x : addExt := filename+'.'+ext x : addExt := filename+'.'+ext