The issue was on prefixes... "Test_" was showing things like "TestMan".
I noted a way to fix that on the bug's page. Append a single character to the title, and then strip it off once you have the key. Using '.' in this case.
substr( ...titleToKey($text.'.'), 0, -1 );
Because the . is appended to the title "test_" will be normalized to the db key "Test_." and then we strip off the . and end up with "Test_". It's basically a placeholder character saying "Hey, I'm sitting here representing the rest of the title... don't strip what's beside me!", then we get rid of it when done.
Unless you want to start making complex logic for TitlePrefixes that'll cause me to raise hell around here when I get back to the TitleRewrite project and start complaining that it has become nearly impossible to tweak the normalization process.
Hmmm... on that note, perhaps rather than my array list of functions, I should create a list based system for normalization... Then it can actually be outputted in the api in a format that other languages can make use of. (Though, there's nothing wrong with creating a api module to normalize a list of titles)
(text replace /[\s_]+/ with " ") (text rtrim) (dbkey setto text) (dbkey ltrim) (dbkey replace " " with "_")
^_^ Ok, ok... different syntax and overall idea... I just like to draft in lisp inspired syntaxes...
~Daniel Friesen(Dantman, Nadir-Seen-Fire) of: -The Nadir-Point Group (http://nadir-point.com) --It's Wiki-Tools subgroup (http://wiki-tools.com) --The ElectronicMe project (http://electronic-me.org) --Games-G.P.S. (http://ggps.org) -And Wikia ACG on Wikia.com (http://wikia.com/wiki/Wikia_ACG) --Animepedia (http://anime.wikia.com) --Narutopedia (http://naruto.wikia.com)
Chad wrote:
On Mon, Aug 25, 2008 at 2:50 AM, dantman@svn.wikimedia.org wrote:
Revision: 39938 Author: dantman Date: 2008-08-25 06:50:31 +0000 (Mon, 25 Aug 2008)
Log Message:
Revert 39936 and 39935; This 'fix' is merely a bad workaround and creates more issues rather than simply fixing. A) Part of the Title class is being /duplicated/ meaning more bugs are going to show up when someone improves stuff inside Title and doesn't know stuff is duplicated here. B) This change breaks cases as $wgCaptialLinks is now a per-namespace array, not a boolean.
No it isn't, that patch hasn't been committed. The correct function call (once it's committed) will be MWNamespace::isCapitalized( $index ). Fwiw: running a title through Title::newFromText() eventually runs it through $title->secureAndSplit(), which does all kinds of fun normalization (including forced first-letter capitalization). Personally, I'd rather see _more_ of the logic for first-letter-case-sensitivity go there, rather than have $wgCapitalLinks floating around everywhere.
As to the original bug: I say "invalid" myself. Trailing spaces and leading spaces are _always_ trimmed. Thoughts on this?
-Chad