With this commit, we save to a temporary file first and then cat the end run a copy to overwrite the source file. If the save somehow fails or the program crashes mid-save, this will prevent the user's project file from getting corrupted.
With this commit, we save to a temporary file first and then cat the end run a copy to overwrite the source file. If the save somehow fails or the program crashes mid-save, this will prevent the user's project file from getting corrupted.