When I have two ODS files in the same directory, and a cell formula in file A refers to a cell in file B, then currently we create absolute paths to denote file B. (When creating the formula by switching to the other Calc window and clicking to the cell using the mouse.) This means if the file is checked into e.g. git, the external references can't be updated on an other machine if the git checkout has a different path.
Making the path relative would fix this. I'm not sure what is the best algorithm to decide what to make relative paths, but perhaps a conservative one would be using relative paths when the relative path would contain no "../" parts? Just an idea.
The xls / xlsx filter builds relative links on save in XclExpHyperlink::BuildFileName() in sc/source/filter/excel/xecontent.cxx, would be great to do the same on save in ods / fods too :-)
That is what Tools -> Options -> Load/Save -> General, "Save URLs relative to file system" is for. The absolute path of the external link is saved with the <table:table table:name="..."> attribute, but the <table:table-source xlink:href="..."> attribute contains a relative reference.
I guess this is notabug (nor rfe)?
Created attachment 143464 [details]
Created attachment 143465 [details]
Perhaps I do something wrong. :-)
Steps to reproduce the problem I still see:
1) Create a new Calc document, type 1 2 3 in A1 A2 A3. (Attached here as source.fods). Save as FODS.
2) Create a second Calc document, type "=" in A1, then select the A1 of source.fods with the mouse. Save as FODS.
3) Close both documents.
4) Move them to an other directory.
5) Open dest.fods, click the "Enable content" button on the infobar.
Expected result: no error.
Actual result: the old path of source.fods is shown in an error dialog, saying it's not found.
Is this enough info to reproduce the problem? Thanks.