dbertoni    02/03/06 21:35:48

  Modified:    c/src/XPath FunctionSubstring.cpp
  Log:
  Fixed 64-bit HP problem.
  
  Revision  Changes    Path
  1.16      +10 -3     xml-xalan/c/src/XPath/FunctionSubstring.cpp
  
  Index: FunctionSubstring.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xalan/c/src/XPath/FunctionSubstring.cpp,v
  retrieving revision 1.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- FunctionSubstring.cpp     26 Sep 2001 20:58:46 -0000      1.15
  +++ FunctionSubstring.cpp     7 Mar 2002 05:35:48 -0000       1.16
  @@ -86,15 +86,22 @@
    * Get the value for the start index (C-style, not XPath).
    */
   inline XalanDOMString::size_type
  -getStartIndex(double theSecondArgValue)
  +getStartIndex(
  +                     double                                          
theSecondArgValue,
  +                     XalanDOMString::size_type       theStringLength)
   {
        // We always subtract 1 for C-style index, since XPath indexes from 1.
        
        // Anything less than, or equal to 1 is 0.
  -     if (theSecondArgValue <= 1)
  +     if (theSecondArgValue <= 1 ||
  +             DoubleSupport::isNaN(theSecondArgValue) == true)
        {
                return 0;
        }
  +     else if (DoubleSupport::isPositiveInfinity(theSecondArgValue) == true)
  +     {
  +             return theStringLength;
  +     }
        else
        {
                return 
XalanDOMString::size_type(DoubleSupport::round(theSecondArgValue)) - 1;
  @@ -214,7 +221,7 @@
                        DoubleSupport::round(arg2->num());
   
                // XPath indexes from 1, so this is the first XPath index....
  -             const XalanDOMString::size_type         theStartIndex = 
getStartIndex(theSecondArgValue);
  +             const XalanDOMString::size_type         theStartIndex = 
getStartIndex(theSecondArgValue, theSourceStringLength);
   
                if (theStartIndex >= theSourceStringLength)
                {
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to