Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
merged branch Seldaek/router_esc (PR #1471)
Commits ------- 418d6a0 [Routing] Fix syntax error when dumping routes with single quotes in the requirements or pattern 2b5e22d [Routing] Fix ApacheDumper when a space appears in a default value 6c7f484 [Routing] Fix dumper so it doesn't print trailing whitespace 761724a [Routing] Adjust urlescaping rules, fixes #752 Discussion ---------- [Router] Bunch o' Fixes The first commit changes the escaping rule to fix issues I had previously, and #752 as well, here's from the full commit message: Only + and % are now encoded in generated routes, since they are the only characters that, if not encoded, could cause problems/conflicts when decoded. Namely + turns into a space, and % followed by numbers could do funky things. The matcher decodes everything which works since nothing will have %NN without being escaped, and + are escaped as well. Second commit is just a test fix for the first Third and fourth are simply dumper escaping issues, nothing to argue about. Note that all changes have had test cases added, and I spent a few hours torturing/testing all this stuff with both Apache and PHP dumpers, in many browsers, and with URLs as wonky as `/%01%02%03%04%05%06%07%08%0E%0F%10%11%12%13%14%15%16%17%18%19%1A%1B%1C%1D%1E%1F%20!%22$%25&%27%28%29*+,-./0123456789:;%3C=%3E@ABCDEFGHIJKLMNOPQRSTUVWXYZ%5B%5D%5E_%60abcdefghijklmnopqrstuvwxyz%7B|%7D~/baz` which essentially represent the 1-255 char range minus ? and #. The only issues I really encountered after all the patches were applied is that Apache refuses to match `%22` (= `"`) and `*` in a url. I guess it's just because they're not allowed chars in windows paths, but | and < > works fine though. Anyway this works with the PHP dumper, and it didn't work either without my patches so it's not like I broke it, I'm just saying for the record.
- Loading branch information