Right now projects cannot be moved to other directories without losing the base directory setting of the project and the list of open files. This makes the project totally unportable to different machines because even if the directory structure under your home is identical, the user name can be different so the path is different too.
The paths should be relative to the project file, which is what every other IDE I know does. If you keep the project file in the same relative path to the project files, you can move it wherever you want.
This patch does this in a backwards-compatible way - when the path in the project settings file is absolute, it uses the absoulte path. However, when the project is saved, all paths are converted to relative. This means that all new applications will be able to read the old project definition files but the old applications won't read the new files (or more precisely, the paths in them).
For the global session file absolute paths are still used mainly because in Windows you cannot create a relative path to a different volume and the global settings file can be at a volume different from the project dir. (I don't expect anyone has the project definition file at different volume than the project files so this shouldn't be an issue for projects).
As Dimitar suggested, absolute paths could be used for files outside the base directory which makes sense because the paths outside the project would be preserved even if the project moves somewhere else. This feature can be included depending on the further discussion.
One more possibility is to add a settings option (either per project or global) that determines what kind of paths should be used.
Signed-off-by: Jiří Techet techet@gmail.com --- src/keyfile.c | 39 ++++++++++++++++++++++++++++++++++----- src/keyfile.h | 2 +- src/project.c | 26 +++++++++++++++++++++++--- 3 files changed, 58 insertions(+), 9 deletions(-)