diff --git a/README.md b/README.md
index 1eebbfce..0cf81db8 100644
--- a/README.md
+++ b/README.md
@@ -86,8 +86,6 @@ Tools must implement the following in addition to respecting the schema:
* When a path identifies a folder,
the backup includes all of its files and subdirectories recursively.
* When backing up registry keys, the backup includes all sub-keys recursively.
-* Relative paths must be resolved relative to the location of the manifest file.
- This is mainly relevant for secondary manifests.
* If a tool supports secondary manifests, they must be automatically detected
when they are named `.ludusavi.yaml` and located directly in ``.
For example, a Steam game's secondary manifest would be `/steamapps/common//.ludusavi.yaml`.
@@ -106,15 +104,17 @@ Tools may also:
and it may in fact occur on other operating systems as well.
* Reject/ignore recursive aliases or set a recursion limit.
The primary manifest will never contain a recursive alias.
+* Reject/ignore relative paths in the `files` mapping
+ (i.e., paths starting with `./` or `../`).
+ The primary manifest will never contain relative paths.
For authors of secondary manifests bundled with games:
* If present, the secondary manifest must be located directly in the game's install folder (not a subfolder),
and the file name must be `.ludusavi.yaml`.
-* For clarity and consistency with the primary manifest,
- you are encouraged to use `` instead of relative paths.
- For example, prefer `/save.dat` instead of `./save.dat`,
- and prefer `/../parent` instead of `../parent`.
+* You must use `` instead of relative paths.
+ For example, use `/save.dat` instead of `./save.dat`,
+ and use `/../parent` instead of `../parent`.
The latest version of the primary manifest can be downloaded from
https://raw.githubusercontent.com/mtkennerly/ludusavi-manifest/master/data/manifest.yaml .
diff --git a/data/manifest.yaml b/data/manifest.yaml
index 91cdcb0a..03acb907 100644
--- a/data/manifest.yaml
+++ b/data/manifest.yaml
@@ -94817,21 +94817,6 @@ Celestial Breach:
steam:
id: 547970
Celestial Command:
- files:
- "./Celestial Command/Saves":
- tags:
- - save
- when:
- - os: windows
- - os: mac
- - os: linux
- "./Celestial Command/Saves/GameSettings.settings":
- tags:
- - config
- when:
- - os: windows
- - os: mac
- - os: linux
installDir:
Celestial Command: {}
launch:
@@ -358724,11 +358709,6 @@ Mr. Shadow:
id: 543270
Mr. Shifty:
files:
- "./Library/Preferences/unity.Team Shifty.Mr Shifty.plist":
- tags:
- - save
- when:
- - os: mac
"/.config/unity3d/Team Shifty/Mr Shifty":
tags:
- save
@@ -387372,17 +387352,6 @@ Ongaku:
id: 360990
Oni:
files:
- "./persist.dat":
- tags:
- - save
- when:
- - os: windows
- - os: mac
- "./persist.dat, ./key_config.txt, ~/Library/Preferences/com.godgames.oni.plist":
- tags:
- - config
- when:
- - os: mac
"/AE/key_config.txt":
tags:
- config
@@ -515060,11 +515029,6 @@ Startopia:
id: 243040
Startup Company:
files:
- "./StartupCompany":
- tags:
- - save
- when:
- - os: linux
"/Library/Application Support/Startup Company/SaveData":
tags:
- save
diff --git a/data/missing.md b/data/missing.md
index b987441a..0d08c555 100644
--- a/data/missing.md
+++ b/data/missing.md
@@ -5380,6 +5380,7 @@
* [Ceggtcher VR](https://www.pcgamingwiki.com/wiki/?curid=41470)
* [Celestial](https://www.pcgamingwiki.com/wiki/?curid=144911)
* [Celestial Breach](https://www.pcgamingwiki.com/wiki/?curid=52422)
+* [Celestial Command](https://www.pcgamingwiki.com/wiki/?curid=49279)
* [Celestial Creator](https://www.pcgamingwiki.com/wiki/?curid=64554)
* [Celestial Crossing](https://www.pcgamingwiki.com/wiki/?curid=55738)
* [Celestial Hacker Girl Jessica](https://www.pcgamingwiki.com/wiki/?curid=98514)
diff --git a/src/wiki.rs b/src/wiki.rs
index bd57912e..1db070b6 100644
--- a/src/wiki.rs
+++ b/src/wiki.rs
@@ -706,7 +706,11 @@ impl WikiPath {
}
pub fn usable(&self) -> bool {
- !self.composite.is_empty() && !self.irregular() && !self.too_broad()
+ !self.composite.is_empty()
+ && !self.irregular()
+ && !self.too_broad()
+ && !self.composite.starts_with("./")
+ && !self.composite.starts_with("../")
}
}