Normalize dot segments in paths
This commit is contained in:
parent
d132d15c21
commit
22bae27388
3 changed files with 411 additions and 462 deletions
File diff suppressed because it is too large
Load diff
|
@ -1549,6 +1549,8 @@
|
|||
* [Arcane Domains](https://www.pcgamingwiki.com/wiki/?curid=125837)
|
||||
* [Arcane Legacy](https://www.pcgamingwiki.com/wiki/?curid=113962)
|
||||
* [Arcane Maelstrom](https://www.pcgamingwiki.com/wiki/?curid=60924)
|
||||
* [Arcane PreRaise](https://www.pcgamingwiki.com/wiki/?curid=59383)
|
||||
* [Arcane ReRaise](https://www.pcgamingwiki.com/wiki/?curid=59409)
|
||||
* [Arcane Sorcery](https://www.pcgamingwiki.com/wiki/?curid=46456)
|
||||
* [Arcane Trials](https://www.pcgamingwiki.com/wiki/?curid=110648)
|
||||
* [Arcane Worlds](https://www.pcgamingwiki.com/wiki/?curid=14715)
|
||||
|
@ -2874,6 +2876,7 @@
|
|||
* [Biolab](https://www.pcgamingwiki.com/wiki/?curid=157780)
|
||||
* [Biolab Wars](https://www.pcgamingwiki.com/wiki/?curid=141663)
|
||||
* [Biology Battle](https://www.pcgamingwiki.com/wiki/?curid=48911)
|
||||
* [Biomagnet](https://www.pcgamingwiki.com/wiki/?curid=148818)
|
||||
* [Biomass](https://www.pcgamingwiki.com/wiki/?curid=145304)
|
||||
* [BioMech](https://www.pcgamingwiki.com/wiki/?curid=144727)
|
||||
* [Biomydra](https://www.pcgamingwiki.com/wiki/?curid=59061)
|
||||
|
@ -3503,6 +3506,8 @@
|
|||
* [Boyar](https://www.pcgamingwiki.com/wiki/?curid=54293)
|
||||
* [Braid Anniversary Edition](https://www.pcgamingwiki.com/wiki/?curid=162560)
|
||||
* [Brain 43°C](https://www.pcgamingwiki.com/wiki/?curid=96379)
|
||||
* [Brain Booster](https://www.pcgamingwiki.com/wiki/?curid=55548)
|
||||
* [Brain Crush](https://www.pcgamingwiki.com/wiki/?curid=67861)
|
||||
* [Brain in a Vat Lies](https://www.pcgamingwiki.com/wiki/?curid=149775)
|
||||
* [Brain In My Head](https://www.pcgamingwiki.com/wiki/?curid=54788)
|
||||
* [Brain Storm: Tower Bombarde](https://www.pcgamingwiki.com/wiki/?curid=65484)
|
||||
|
@ -7865,6 +7870,7 @@
|
|||
* [Eclipse: New Dawn for the Galaxy](https://www.pcgamingwiki.com/wiki/?curid=39049)
|
||||
* [Eclipsed](https://www.pcgamingwiki.com/wiki/?curid=44581)
|
||||
* [ECON](https://www.pcgamingwiki.com/wiki/?curid=123964)
|
||||
* [Economic Conquest](https://www.pcgamingwiki.com/wiki/?curid=55930)
|
||||
* [Ecopoiesis](https://www.pcgamingwiki.com/wiki/?curid=76596)
|
||||
* [EcoQuest: The Search for Cetus](https://www.pcgamingwiki.com/wiki/?curid=147102)
|
||||
* [ECrossminton](https://www.pcgamingwiki.com/wiki/?curid=130648)
|
||||
|
|
|
@ -14,6 +14,8 @@ pub fn normalize(path: &str) -> String {
|
|||
static UNNECESSARY_DOUBLE_STAR_1: Lazy<Regex> = Lazy::new(|| Regex::new(r"([^/*])\*{2,}").unwrap());
|
||||
static UNNECESSARY_DOUBLE_STAR_2: Lazy<Regex> = Lazy::new(|| Regex::new(r"\*{2,}([^/*])").unwrap());
|
||||
static ENDING_WILDCARD: Lazy<Regex> = Lazy::new(|| Regex::new(r"(/\*)+$").unwrap());
|
||||
static ENDING_DOT: Lazy<Regex> = Lazy::new(|| Regex::new(r"(/\.)$").unwrap());
|
||||
static INTERMEDIATE_DOT: Lazy<Regex> = Lazy::new(|| Regex::new(r"(/\./)").unwrap());
|
||||
static APP_DATA: Lazy<Regex> = Lazy::new(|| Regex::new(r"(?i)%appdata%").unwrap());
|
||||
static APP_DATA_ROAMING: Lazy<Regex> = Lazy::new(|| Regex::new(r"(?i)%userprofile%/AppData/Roaming").unwrap());
|
||||
static APP_DATA_LOCAL: Lazy<Regex> = Lazy::new(|| Regex::new(r"(?i)%localappdata%").unwrap());
|
||||
|
@ -26,6 +28,8 @@ pub fn normalize(path: &str) -> String {
|
|||
(&UNNECESSARY_DOUBLE_STAR_1, "${1}*"),
|
||||
(&UNNECESSARY_DOUBLE_STAR_2, "*${1}"),
|
||||
(&ENDING_WILDCARD, ""),
|
||||
(&ENDING_DOT, ""),
|
||||
(&INTERMEDIATE_DOT, "/"),
|
||||
(&APP_DATA, placeholder::WIN_APP_DATA),
|
||||
(&APP_DATA_ROAMING, placeholder::WIN_APP_DATA),
|
||||
(&APP_DATA_LOCAL, placeholder::WIN_LOCAL_APP_DATA),
|
||||
|
@ -87,6 +91,8 @@ pub fn too_broad(path: &str) -> bool {
|
|||
|
||||
// Several games/episodes are grouped together here.
|
||||
for item in [
|
||||
format!("{HOME}/*/"),
|
||||
format!("{HOME}/**/"),
|
||||
format!("{WIN_DOCUMENTS}/Telltale Games/*/"),
|
||||
format!("{XDG_CONFIG}/unity3d/*"),
|
||||
format!("{XDG_DATA}/unity3d/*"),
|
||||
|
|
Reference in a new issue