[Geany-Devel] Setting Windows working directory

Enrico Tröger enrico.troeger at xxxxx
Tue Mar 19 13:02:39 UTC 2013


On 16/03/13 18:23, Colomban Wendling wrote:
> Le 15/03/2013 16:18, Nick Treleaven a écrit :
>> On 13/03/2013 06:19, Lex Trotman wrote:
>>> Shouldn't plugins use geany->app->configdir as the base directory as
>>> perhttp://www.geany.org/manual/reference/structGeanyApp.html
>>>
>>> and if its Geany it can use GeanyApp.datadir as the system data
>>> directory.
>>>
>>>
>>>   For this to work, the working
>>>>> directory must be set correctly. The reason for the mentioned change
>>>> was
>>>>> this in some plugin, so I've moved the code to change the working
>>>>> directory to perform it earlier in the init process, before loading
>>>> plugins.
>>>>> For a quick'n'dirty fix we could either move the working directory
>>>>> change code move after command line parsing code but before plugin
>>>>> loading or we remember the working directory at early stage to use this
>>>>> when llater handling command line arguments.
>>>>> Both are not nice and the real solution is to get rid of relative paths
>>>>> for resources in the installation directory.
>>>>> I'm going to work on this.
>>> Yes it would be better to keep the working dir, ... well ... the
>>> working dir:)

Ok. Just to get it clear, do we want to not change the current working
directory at all? Before my change we *did* change it very late in the
init process. If we decide to not change it at all, we might lock again
the directory where Geany was started as in bug #2626124.
As Dimitar noted in this thread, this is not as bad and uncommon as I
assumed. So if we all agree on this behaviour, I'd be ok with.


>> +1, it's best for plugins to use fixed paths and avoid temporarily
>> changing the working dir.
> 
> Agreed.  Though, IIUC on Windows it's meant to be dynamic, so it'd

Correct.


> require an API the plugins could use to get the sysdir -- or make all
> plugins use g_win32_get_package_installation_directory_of_module() but
> it's tedious.

Yes. We already have Geany's datadir in app->datadir which can also
accessed by plugins though it's of no use for plugins. But it'd be easy
to export something like win32_get_installation_dir() or maybe even a
utility function which contructs the path for a plugin to be more
convenient.


> BTW if we want not to change directory anymore, I think we'd need the
> attached (untested) patch which fixes the only location I found where
> Geany uses relative paths.  Or even apply it now (if it is tested
> working) so we don't have relative path ourselves anymore.

Tested and works fine. I'd vote to commit it now.

Regards,
Enrico

-- 
Get my GPG key from http://www.uvena.de/pub.asc

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 198 bytes
Desc: OpenPGP digital signature
URL: <http://lists.geany.org/pipermail/devel/attachments/20130319/bf81ef31/attachment.pgp>


More information about the Devel mailing list