<?php if (!defined('PmWiki')) exit();
/*  Copyright 2005 Ben Wilson (ameen@dausha.net)
This file adds a page rename capability to pmwiki 2.
This file extends PmWiki; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published
by the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.  See pmwiki.php for full details.
*/

$AsSpacedFunction       = 'TitleCaseSpaceWikiWords';
$SpaceWikiWordsFunction = 'TitleCaseSpaceWikiWords';
#
# If you need different words (because of a different language),
# Just replace this array.
#
SDVA($TitleCaseLowerCase, array(
'A', 'An', 'And', 'But', 'By', 'For', 'From', 'In', 'Is',
'It', 'Of', 'On', 'Or', 'The', 'To', 'With',
));
#
# Because some "Wiki words" just should not be capitalized.
#
SDVA($TitleCaseUnspacedList, array( 'Mac ', 'Mc ', 'Pm Wiki', 'Side Bar'));

function TitleCaseSpaceWikiWords($text) {
	global $TitleCaseLowerCase,$TitleCaseUnspacedList;	
	$text = AsSpaced($text);	
	foreach((array)$TitleCaseLowerCase as $s) {
		$text = preg_replace_callback(
			"/(\\s$s\\s)/",
			function ($m) {
				return strtolower("$m[1]");
			},
			$text
		);
	}
	foreach((array)$TitleCaseUnspacedList as $u) {
		$text = str_replace($u,str_replace(' ','',$u),$text);
	}
	return $text;
}