diff --git a/ide/environmentopts.pp b/ide/environmentopts.pp index 02fecf4fed..216e65fd20 100644 --- a/ide/environmentopts.pp +++ b/ide/environmentopts.pp @@ -365,6 +365,7 @@ var function DebuggerNameToType(const s: string): TDebuggerType; function PascalExtToType(const Ext: string): TPascalExtType; function FilenameIsPascalUnit(const Filename: string): boolean; +function FilenameIsPascalSource(const Filename: string): boolean; implementation @@ -372,6 +373,13 @@ implementation const MaxComboBoxCount: integer = 20; +function FilenameIsPascalSource(const Filename: string): boolean; +var Ext: string; +begin + Ext:=lowercase(ExtractFileExt(Filename)); + Result:=(Ext='.pp') or (Ext='.pas') or (Ext='.dpr') or (Ext='.dpk'); +end; + function FilenameIsPascalUnit(const Filename: string): boolean; var Ext: string; begin diff --git a/ide/main.pp b/ide/main.pp index a5dce50073..b00baaa3e3 100644 --- a/ide/main.pp +++ b/ide/main.pp @@ -3058,7 +3058,7 @@ begin end; // check pascal identifier - if FilenameIsPascalUnit(NewFilename) or (Ext='.dpr') then begin + if FilenameIsPascalSource(NewFilename) then begin if not IsValidIdent(NewProgramName) then begin Result:=MessageDlg('Invalid Pascal Identifier', 'The name "'+NewProgramName+'" is not a valid pascal identifier.' @@ -3069,15 +3069,16 @@ begin end; // apply naming conventions - NewProgramName:=ExtractFileNameOnly(NewProgramFilename); + NewProgramName:=ExtractFileNameOnly(NewFilename); if EnvironmentOptions.PascalFileLowerCase then NewFileName:=ExtractFilePath(NewFilename) +lowercase(ExtractFileName(NewFilename)); if Project1.MainUnit>=0 then begin // check mainunit filename - NewProgramFilename:=ChangeFileExt( - NewFilename,ProjectDefaultExt[Project1.ProjectType]); + Ext:=ExtractFileExt(Project1.MainUnitInfo.Filename); + if Ext='' then Ext:=ProjectDefaultExt[Project1.ProjectType]; + NewProgramFilename:=ChangeFileExt(NewFilename,Ext); if CompareFilenames(NewFilename,NewProgramFilename)=0 then begin ACaption:='Choose a different name'; AText:='The project info file "'+NewFilename+'"'#13 @@ -6193,6 +6194,9 @@ end. { ============================================================================= $Log$ + Revision 1.268 2002/04/02 17:18:24 lazarus + MG: fixed save project as, renaming source name + Revision 1.267 2002/03/31 23:20:35 lazarus MG: fixed initial size of TPage diff --git a/ide/project.pp b/ide/project.pp index 1bd0c1e314..8534805999 100644 --- a/ide/project.pp +++ b/ide/project.pp @@ -475,18 +475,16 @@ end; procedure TUnitInfo.SetUnitName(const NewUnitName:string); var Allowed:boolean; begin - if fUnitName<>NewUnitName then begin - if NewUnitName<>'' then begin - Allowed:=true; - if Assigned(fOnUnitNameChange) then - fOnUnitNameChange(Self,fUnitName,NewUnitName,false,Allowed); - // (ignore Allowed) - if fSource<>nil then begin - CodeToolBoss.RenameSource(fSource,NewUnitName); - end; - fUnitName:=NewUnitName; - fModified:=true; + if (fUnitName<>NewUnitName) and (NewUnitName<>'') then begin + Allowed:=true; + if Assigned(fOnUnitNameChange) then + fOnUnitNameChange(Self,fUnitName,NewUnitName,false,Allowed); + // (ignore Allowed) + if fSource<>nil then begin + CodeToolBoss.RenameSource(fSource,NewUnitName); end; + fUnitName:=NewUnitName; + fModified:=true; end; end; @@ -1355,6 +1353,9 @@ end. { $Log$ + Revision 1.58 2002/04/02 17:18:25 lazarus + MG: fixed save project as, renaming source name + Revision 1.57 2002/03/28 00:11:06 lazarus MG: removed unused