Changeset 2971

Show
Ignore:
Timestamp:
07/06/2008 06:46:21 PM (5 months ago)
Author:
Shadowhand
Message:

Fixing #672, thanks s_brightsky!

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • trunk/system/helpers/inflector.php

    r2923 r2971  
    8080                        $str = $irregular; 
    8181                } 
    82                 elseif (substr($str, -3) === 'ies') 
    83                 { 
    84                         $str = substr($str, 0, strlen($str) - 3).'y'; 
    85                 } 
    86                 elseif (substr($str, -4) === 'sses' OR substr($str, -3) === 'xes') 
    87                 { 
    88                         $str = substr($str, 0, strlen($str) - 2); 
     82                elseif (preg_match('/[sxz]es$/i', $str) OR preg_match('/[^aeioudgkprt]hes$/i', $str)) 
     83                { 
     84                        // Remove "es" 
     85                        $str = substr($str, 0, -2); 
     86                } 
     87                elseif (preg_match('/[^aeiou]ies$/i', $str)) 
     88                { 
     89                        // Remove "ies" 
     90                        $str = substr($str, 0, -3).'y'; 
    8991                } 
    9092                elseif (substr($str, -1) === 's') 
    9193                { 
     94                        // Remove "s" 
    9295                        $str = substr($str, 0, strlen($str) - 1); 
    9396                }