cvs: smarty / NEWS /libs/plugins modifier.capitalize.php

[email protected] ("boots") Wed, 14 Jun 2006 14:14:23 -0000
Newsgroups php.smarty.cvs
Message-ID <cvsboots1150294463@cvsserver>
boots		Wed Jun 14 14:14:23 2006 UTC

  Modified files:              
    /smarty	NEWS 
    /smarty/libs/plugins	modifier.capitalize.php 
  Log:
  Fix handling of apostrophes in the capitalize modifier.
  
  Thanks to asmecher from the forums for reporting this and providing a partial solution.
  
http://cvs.php.net/viewcvs.cgi/smarty/NEWS?r1=1.532&r2=1.533&diff_format=u
Index: smarty/NEWS
diff -u smarty/NEWS:1.532 smarty/NEWS:1.533
--- smarty/NEWS:1.532	Sun May 28 17:35:05 2006
+++ smarty/NEWS	Wed Jun 14 14:14:23 2006
@@ -1,3 +1,5 @@
+- fix handling of apostrophes in capitalize modifier (Alec Smecher, boots)
+
 Version 2.6.14 (May 28th, 2006)
 -------------------------------
 - fix compiler bug allowing php tags in secure templates
http://cvs.php.net/viewcvs.cgi/smarty/libs/plugins/modifier.capitalize.php?r1=1.8&r2=1.9&diff_format=u
Index: smarty/libs/plugins/modifier.capitalize.php
diff -u smarty/libs/plugins/modifier.capitalize.php:1.8 smarty/libs/plugins/modifier.capitalize.php:1.9
--- smarty/libs/plugins/modifier.capitalize.php:1.8	Tue Oct 11 16:22:56 2005
+++ smarty/libs/plugins/modifier.capitalize.php	Wed Jun 14 14:14:23 2006
@@ -21,7 +21,7 @@
 function smarty_modifier_capitalize($string, $uc_digits = false)
 {
     smarty_modifier_capitalize_ucfirst(null, $uc_digits);
-    return preg_replace_callback('!\b\w+\b!', 'smarty_modifier_capitalize_ucfirst', $string);
+    return preg_replace_callback('!\'?\b\w(\w|\')*\b!', 'smarty_modifier_capitalize_ucfirst', $string);
 }
 
 function smarty_modifier_capitalize_ucfirst($string, $uc_digits = null)
@@ -33,7 +33,7 @@
         return;
     }
     
-    if(!preg_match('!\d!',$string[0]) || $_uc_digits)
+    if(substr($string[0],0,1) != "'" && !preg_match("!\d!",$string[0]) || $_uc_digits)
         return ucfirst($string[0]);
     else
         return $string[0];