diff -r 81bf8fe10735 -r 7d3932bde11b eric6/Project/ProjectFile.py --- a/eric6/Project/ProjectFile.py Mon Feb 15 19:56:28 2021 +0100 +++ b/eric6/Project/ProjectFile.py Tue Feb 16 17:12:48 2021 +0100 @@ -17,6 +17,7 @@ from E5Gui.E5OverrideCursor import E5OverridenCursor import Preferences +import Utilities Project = typing.TypeVar("Project") @@ -63,9 +64,33 @@ projectDict["project"] = self.__project.pdata + # modify paths to contain universal separators + for key in ( + "SOURCES", "FORMS", "TRANSLATIONS", "TRANSLATIONEXCEPTIONS", + "RESOURCES", "INTERFACES", "PROTOCOLS", "OTHERS" + ): + try: + projectDict["project"][key] = [ + Utilities.fromNativeSeparators(f) + for f in projectDict["project"][key] + ] + except KeyError: + # ignore non-existent elements + pass + for key in ( + "SPELLWORDS", "SPELLEXCLUDES", "TRANSLATIONPATTERN", + "TRANSLATIONSBINPATH", "MAINSCRIPT" + ): + try: + projectDict["project"][key] = Utilities.fromNativeSeparators( + projectDict["project"][key]) + except KeyError: + # ignore non-existent elements + pass + try: jsonString = json.dumps(projectDict, indent=2) - with open(filename, "w") as f: + with open(filename, "w", newline="") as f: f.write(jsonString) except (TypeError, EnvironmentError) as err: with E5OverridenCursor(): @@ -105,6 +130,30 @@ ) return False + # modify paths to contain native separators + for key in ( + "SOURCES", "FORMS", "TRANSLATIONS", "TRANSLATIONEXCEPTIONS", + "RESOURCES", "INTERFACES", "PROTOCOLS", "OTHERS" + ): + try: + projectDict["project"][key] = [ + Utilities.toNativeSeparators(f) + for f in projectDict["project"][key] + ] + except KeyError: + # ignore non-existent elements + pass + for key in ( + "SPELLWORDS", "SPELLEXCLUDES", "TRANSLATIONPATTERN", + "TRANSLATIONSBINPATH", "MAINSCRIPT" + ): + try: + projectDict["project"][key] = Utilities.toNativeSeparators( + projectDict["project"][key]) + except KeyError: + # ignore non-existent elements + pass + self.__project.pdata = projectDict["project"] return True