mozilla
Your Search Results

    NS_CStringSetDataRange

    « XPCOM API Reference

    Summary

    The NS_CStringSetDataRange function copies data into a section of the string's internal buffer. This is a low-level API.

    #include "nsStringAPI.h"
     
    nsresult NS_CStringSetDataRange(
      nsACString& aString,
      PRUint32 aCutStart,
      PRUint32 aCutLength,
      const char* aData,
      PRUint32 aDataLength = PR_UINT32_MAX
    );
    

    Parameters

    aString
    [in] A nsACString instance to modify.
    aCutStart
    [in] The starting index of the section to replace, measured in storage units.
    aCutLength
    [in] The length of the section to replace, measured in storage units.
    aData
    [in] A raw character array to copy into this string.
    aDataLength
    [in] The length of aData, measured in storage units. If equal to PR_UINT32_MAX, then aData is assumed to be null-terminated. Otherwise, aData need not be null terminated.

    Return Values

    The NS_CStringSetDataRange function returns NS_OK if successful. Otherwise, it returns an error code.

    Example

    // Replace all occurances of |matchVal| with |newVal|
    
    void ReplaceSubstring(nsACString& str,
                          const nsACString& matchVal,
                          const nsACString& newVal)
    {
      const char* sp, *mp, *np;
      PRUint32 sl, ml, nl;
     
      sl = NS_CStringGetData(str, &sp);
      ml = NS_CStringGetData(matchVal, &mp);
      nl = NS_CStringGetData(newVal, &np);
    
      for (const char* iter = sp; iter <= sp + sl - ml; ++iter)
      {
        if (memcmp(iter, mp, ml) == 0)
        {
          PRUint32 offset = iter - sp;
     
          NS_CStringSetDataRange(str, offset, ml, np, nl);
     
          sl = NS_CStringGetData(str, &sp);
     
          iter = sp + offset + nl - 1;
        }
      }
    }
    

    History

    This function was frozen for Mozilla 1.7. See bug 239123 for details.

    See Also

    nsACString

    Document Tags and Contributors

    Contributors to this page: Nickolay, Dria, Sheppy, DarinFisher
    Last updated by: Sheppy,