mirror of https://gitlab.com/basile.b/dexed.git
replaced custom extension stripping routine by sysutils version
This commit is contained in:
parent
460db35033
commit
3c62646055
|
@ -6,10 +6,9 @@ import std.getopt;
|
||||||
/*
|
/*
|
||||||
pass:
|
pass:
|
||||||
|
|
||||||
--a=<CAF> --b=<CAP> --c=<CFF> --d=<CFP> --e=<CI> --f=<CFP> --g=<CPP> --h=<CPR> --i=<CPN> --j=<CPFS>
|
"--a=<CAF>" "--b=<CAP>" "--c=<CFF>" "--d=<CFP>" "--e=<CI>" "--f=<CPF>" "--g=<CPP>" "--h=<CPR>" "--i=<CPN>" "--j=<CPO>" "--k=<CPFS>"
|
||||||
|
|
||||||
as parameters in "Run, Compile and Run file..."
|
as parameters in "Run, Compile and Run file..."
|
||||||
<CPFS>: only the first item is displayed but the symbol is expanded as expected.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
void main(string args[])
|
void main(string args[])
|
||||||
|
@ -27,7 +26,8 @@ void main(string args[])
|
||||||
'g' : "CurrentProjectPath.....: ",
|
'g' : "CurrentProjectPath.....: ",
|
||||||
'h' : "CurrentProjectRoot.....: ",
|
'h' : "CurrentProjectRoot.....: ",
|
||||||
'i' : "CurrentProjectName.....: ",
|
'i' : "CurrentProjectName.....: ",
|
||||||
'j' : "CurrentProjectFiles....: "
|
'j' : "CurrentProjectOutput...: ",
|
||||||
|
'k' : "CurrentProjectFiles....: "
|
||||||
];
|
];
|
||||||
|
|
||||||
string expanded;
|
string expanded;
|
||||||
|
|
|
@ -16,6 +16,7 @@ const
|
||||||
exeExt = {$IFDEF WINDOWS} '.exe' {$ELSE} '' {$ENDIF};
|
exeExt = {$IFDEF WINDOWS} '.exe' {$ELSE} '' {$ENDIF};
|
||||||
objExt = {$IFDEF WINDOWS} '.obj' {$ELSE} '.o' {$ENDIF};
|
objExt = {$IFDEF WINDOWS} '.obj' {$ELSE} '.o' {$ENDIF};
|
||||||
libExt = {$IFDEF WINDOWS} '.lib' {$ELSE} '.a' {$ENDIF};
|
libExt = {$IFDEF WINDOWS} '.lib' {$ELSE} '.a' {$ENDIF};
|
||||||
|
dynExt = {$IFDEF WINDOWS} '.dll' {$ENDIF} {$IFDEF LINUX}'.so'{$ENDIF} {$IFDEF DARWIN}'.dylib'{$ENDIF};
|
||||||
|
|
||||||
var
|
var
|
||||||
dExtList: TStringList;
|
dExtList: TStringList;
|
||||||
|
@ -127,6 +128,11 @@ type
|
||||||
*)
|
*)
|
||||||
function patchPlateformExt(const aFilename: string): string;
|
function patchPlateformExt(const aFilename: string): string;
|
||||||
|
|
||||||
|
(**
|
||||||
|
* Returns aFilename without its extension.
|
||||||
|
*)
|
||||||
|
function stripFileExt(const aFilename: string): string;
|
||||||
|
|
||||||
(**
|
(**
|
||||||
* Ok/Cancel modal dialog
|
* Ok/Cancel modal dialog
|
||||||
*)
|
*)
|
||||||
|
@ -451,11 +457,9 @@ begin
|
||||||
result := aPath;
|
result := aPath;
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
result := patchProc(result, '/');
|
result := patchProc(result, '/');
|
||||||
result := patchProc(result, ':');
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF LINUX}
|
{$IFDEF UNIX}
|
||||||
result := patchProc(result, '\');
|
result := patchProc(result, '\');
|
||||||
result := patchProc(result, ':');
|
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
@ -471,15 +475,20 @@ begin
|
||||||
end;
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function stripFileExt(const aFilename: string): string;
|
||||||
|
begin
|
||||||
|
if Pos('.', aFilename) > 1 then
|
||||||
|
exit(ChangeFileExt(aFilename, ''))
|
||||||
|
else
|
||||||
|
exit(aFilename);
|
||||||
|
end;
|
||||||
|
|
||||||
function patchPlateformExt(const aFilename: string): string;
|
function patchPlateformExt(const aFilename: string): string;
|
||||||
var
|
var
|
||||||
ext, newext: string;
|
ext, newext: string;
|
||||||
begin
|
begin
|
||||||
if aFilename = '' then exit(aFilename);
|
|
||||||
//
|
|
||||||
ext := extractFileExt(aFilename);
|
ext := extractFileExt(aFilename);
|
||||||
newext := '';
|
newext := '';
|
||||||
result := aFilename[1..length(aFilename)-length(ext)];
|
|
||||||
{$IFDEF MSWINDOWS}
|
{$IFDEF MSWINDOWS}
|
||||||
case ext of
|
case ext of
|
||||||
'.so': newext := '.dll';
|
'.so': newext := '.dll';
|
||||||
|
@ -499,7 +508,7 @@ begin
|
||||||
else newext := ext;
|
else newext := ext;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
{$IFDEF MACOS}
|
{$IFDEF DARWIN}
|
||||||
case ext of
|
case ext of
|
||||||
'.dll': newext := '.dylib';
|
'.dll': newext := '.dylib';
|
||||||
'.so': newext := '.dylib';
|
'.so': newext := '.dylib';
|
||||||
|
@ -509,7 +518,7 @@ begin
|
||||||
else newext := ext;
|
else newext := ext;
|
||||||
end;
|
end;
|
||||||
{$ENDIF}
|
{$ENDIF}
|
||||||
result += newext;
|
result := ChangeFileExt(aFilename, newext);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function dlgOkCancel(const aMsg: string): TModalResult;
|
function dlgOkCancel(const aMsg: string): TModalResult;
|
||||||
|
|
|
@ -1325,7 +1325,7 @@ begin
|
||||||
|
|
||||||
if fileExists(editor.fileName) then editor.save
|
if fileExists(editor.fileName) then editor.save
|
||||||
else editor.saveToFile(editor.tempFilename);
|
else editor.saveToFile(editor.tempFilename);
|
||||||
fname := editor.fileName[1..length(editor.fileName) - length(extractFileExt(editor.fileName))];
|
fname := stripFileExt(editor.fileName);
|
||||||
|
|
||||||
if fRunnableSw = '' then
|
if fRunnableSw = '' then
|
||||||
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
|
fRunnableSw := '-vcolumns'#13'-w'#13'-wi';
|
||||||
|
@ -1535,7 +1535,7 @@ begin
|
||||||
begin
|
begin
|
||||||
itm := TMenuItem.Create(self);
|
itm := TMenuItem.Create(self);
|
||||||
itm.Caption := extractFileName(lst.Strings[i]);
|
itm.Caption := extractFileName(lst.Strings[i]);
|
||||||
itm.Caption := itm.Caption[1..length(itm.Caption) - length(extractFileExt(itm.Caption))];
|
itm.Caption := stripFileExt(itm.Caption);
|
||||||
itm.OnClick := @layoutMnuItemClick;
|
itm.OnClick := @layoutMnuItemClick;
|
||||||
itm.ImageIndex := 32;
|
itm.ImageIndex := 32;
|
||||||
mnuLayout.Add(itm);
|
mnuLayout.Add(itm);
|
||||||
|
|
|
@ -448,14 +448,27 @@ end;
|
||||||
procedure TCEProject.updateOutFilename;
|
procedure TCEProject.updateOutFilename;
|
||||||
begin
|
begin
|
||||||
fOutputFilename := currentConfiguration.pathsOptions.outputFilename;
|
fOutputFilename := currentConfiguration.pathsOptions.outputFilename;
|
||||||
|
// field is specified
|
||||||
|
if fOutputFilename <> '' then begin
|
||||||
fOutputFilename := symbolExpander.get(fOutputFilename);
|
fOutputFilename := symbolExpander.get(fOutputFilename);
|
||||||
fOutputFilename := getAbsoluteFilename(fOutputFilename);
|
fOutputFilename := getAbsoluteFilename(fOutputFilename);
|
||||||
if not fileExists(fOutputFilename) then if Sources.Count > 0 then
|
end
|
||||||
|
// try to guess
|
||||||
|
else if Sources.Count > 0 then
|
||||||
begin
|
begin
|
||||||
fOutputFilename := getAbsoluteFilename(fOutputFilename);
|
|
||||||
fOutputFilename := extractFilename(Sources.Strings[0]);
|
fOutputFilename := extractFilename(Sources.Strings[0]);
|
||||||
fOutputFilename := fOutputFilename[1..length(fOutputFilename) - length(extractFileExt(fOutputFilename))];
|
fOutputFilename := stripFileExt(fOutputFilename);
|
||||||
fOutputFilename := extractFilePath(fileName) + DirectorySeparator + fOutputFilename + exeExt;
|
if FileExists(fileName) then
|
||||||
|
fOutputFilename := extractFilePath(fileName) + fOutputFilename
|
||||||
|
else
|
||||||
|
fOutputFilename := GetTempDir(false) + fOutputFilename;
|
||||||
|
end;
|
||||||
|
// force extension
|
||||||
|
case currentConfiguration.outputOptions.binaryKind of
|
||||||
|
executable: fOutputFilename := ChangeFileExt(fOutputFilename, exeExt);
|
||||||
|
staticlib: fOutputFilename := ChangeFileExt(fOutputFilename, libExt);
|
||||||
|
sharedlib: fOutputFilename := ChangeFileExt(fOutputFilename, dynExt);
|
||||||
|
obj: fOutputFilename := ChangeFileExt(fOutputFilename, objExt);
|
||||||
end;
|
end;
|
||||||
//
|
//
|
||||||
fCanBeRun := false;
|
fCanBeRun := false;
|
||||||
|
|
|
@ -113,7 +113,6 @@ procedure TCESymbolExpander.updateSymbols;
|
||||||
var
|
var
|
||||||
hasProj: boolean;
|
hasProj: boolean;
|
||||||
hasDoc: boolean;
|
hasDoc: boolean;
|
||||||
extLen: Integer;
|
|
||||||
i: Integer;
|
i: Integer;
|
||||||
const
|
const
|
||||||
na = '``';
|
na = '``';
|
||||||
|
@ -148,11 +147,10 @@ begin
|
||||||
if fileExists(fProj.fileName) then begin
|
if fileExists(fProj.fileName) then begin
|
||||||
fSymbols[CPF] := fProj.fileName;
|
fSymbols[CPF] := fProj.fileName;
|
||||||
fSymbols[CPP] := ExtractFilePath(fProj.fileName);
|
fSymbols[CPP] := ExtractFilePath(fProj.fileName);
|
||||||
fSymbols[CPR] := fProj.RootFolder;
|
fSymbols[CPR] := fProj.getAbsoluteFilename(fProj.RootFolder);
|
||||||
fSymbols[CPN] := extractFileName(fProj.fileName);
|
fSymbols[CPN] := stripFileExt(extractFileName(fProj.fileName));
|
||||||
fSymbols[CPO] := fProj.outputFilename;
|
fSymbols[CPO] := fProj.outputFilename;
|
||||||
extLen := length(ExtractFileExt(fSymbols[CPN]));
|
if fSymbols[CPR] = '' then fSymbols[CPR] := fSymbols[CPP];
|
||||||
fSymbols[CPN] := fSymbols[CPN][1..length(fSymbols[CPN])-extLen];
|
|
||||||
end else begin
|
end else begin
|
||||||
fSymbols[CPF] := na;
|
fSymbols[CPF] := na;
|
||||||
fSymbols[CPP] := na;
|
fSymbols[CPP] := na;
|
||||||
|
@ -174,7 +172,6 @@ begin
|
||||||
fSymbols[CPP] := na;
|
fSymbols[CPP] := na;
|
||||||
fSymbols[CPR] := na;
|
fSymbols[CPR] := na;
|
||||||
fSymbols[CPN] := na;
|
fSymbols[CPN] := na;
|
||||||
fSymbols[CPN] := na;
|
|
||||||
fSymbols[CPO] := na;
|
fSymbols[CPO] := na;
|
||||||
fSymbols[CPFS]:= na;
|
fSymbols[CPFS]:= na;
|
||||||
end;
|
end;
|
||||||
|
|
Loading…
Reference in New Issue