50 lines
1.4 KiB
Diff
50 lines
1.4 KiB
Diff
commit 6a72fd032405515e468797be91b5a6ebcbbb5fd8
|
|
Author: Evils <evils.devils@protonmail.com>
|
|
Date: Wed Nov 23 19:49:13 2022 +0100
|
|
|
|
ensure new projects are writable
|
|
|
|
diff --git a/kicad/kicad_manager_frame.cpp b/kicad/kicad_manager_frame.cpp
|
|
index 7ee8090858..391514519c 100644
|
|
--- a/kicad/kicad_manager_frame.cpp
|
|
+++ b/kicad/kicad_manager_frame.cpp
|
|
@@ -638,6 +638,12 @@ void KICAD_MANAGER_FRAME::CreateNewProject( const wxFileName& aProjectFileName,
|
|
|
|
// wxFFile dtor will close the file
|
|
}
|
|
+
|
|
+ if( destFileName.IsOk() && !destFileName.IsFileWritable() )
|
|
+ {
|
|
+ destFileName.SetPermissions(0644);
|
|
+ }
|
|
+
|
|
}
|
|
}
|
|
|
|
diff --git a/kicad/project_template.cpp b/kicad/project_template.cpp
|
|
index bf951fcddb..2bef94326b 100644
|
|
--- a/kicad/project_template.cpp
|
|
+++ b/kicad/project_template.cpp
|
|
@@ -282,6 +282,21 @@ bool PROJECT_TEMPLATE::CreateProject( wxFileName& aNewProjectPath, wxString* aEr
|
|
|
|
result = false;
|
|
}
|
|
+ else if( !destFile.IsFileWritable() && !destFile.SetPermissions(0644) )
|
|
+ {
|
|
+ if( aErrorMsg )
|
|
+ {
|
|
+ if( !aErrorMsg->empty() )
|
|
+ *aErrorMsg += "\n";
|
|
+
|
|
+ wxString msg;
|
|
+
|
|
+ msg.Printf( _( "Cannot make file writable: '%s'." ), destFile.GetFullPath() );
|
|
+ *aErrorMsg += msg;
|
|
+ }
|
|
+
|
|
+ result = false;
|
|
+ }
|
|
}
|
|
|
|
return result;
|