[Geany-Devel] [Geany-devel] Separating session file lists from config (again)

Thomas Martitz thomas.martitz at xxxxx
Tue Nov 19 09:56:10 UTC 2013


Am 19.11.2013 00:14, schrieb Lex Trotman:
> [...]
>
>
>     >> 1. Project and user session file formats should match to allow the
>     >> same code to store both.  The fact that the storing the current
>     >> project in the project session file is not needed doesn't matter.
>
>     It looks like a good idea, I agree, but we need to keep on allowing to
>     save user-wide settings when a project is open.  I mean, we shouldn't
>     save all settings changes to the project settings just because one is
>     open, the user might want to change a general setting.
>
>     I think this was discussed one day already, and I think it should be a
>     separate thread.
>
>
> I said **session** file format, not the config files, as you say ATM 
> the only change to config should be to remove the session info.  All 
> further changes are indeed another topic.
>
> [...]
>
>     >
>     > Old Geany couldn't read it since it's a directory, and I don't think
>     > you can possibly overwrite a directory with a file, even
>     > accidentally. You'd need to delete the directory first.
>
>     I agree, I don't think this should be an issue.  Older Geany would not
>     be able to load the project, but that should be all.  And if the
>     config
>     part starts with the same format as old $project.geany, a user could
>     workaround that by loading $project.geany/project.conf manually.
>
>
> I'm happy for it to be the same so long as someone can assure me that 
> geany saving a file can't overwrite a directory on the most common 
> file system arrangements which includes windows and includes windows 
> file systems on a NAS mounted via Samba (a sadly increasing situation 
> with cheep NAS boxes).
>
> Note that config saving will use g_file_set_contents() if the option 
> is set, which writes to a temp file, and renames it over the old file. 
>  I agree that on Linux it can't rename a file over a directory, but on 
> what it thinks is a windows file system it deletes the old file first 
> and then renames the temp to it.  Are we sure that won't allow it to 
> overwrite directories?
>
>


I would consider it a bug in g_file_set_contents() if doesn't check 
permissions and type of the original object (file) before doing the 
temp&rename approach. Because that would mean different semantics 
compared to direct save.

FWIW, let's not overcomplicate this. We can easily chose another naming 
scheme for the directory.

Best regards.


More information about the Devel mailing list