reorder_characters (ActiveSupport::Multibyte::Chars)

    # File lib/active_support/multibyte/chars.rb, line 540
            def reorder_characters(codepoints)
              length = codepoints.length- 1
              pos = 0
              while pos < length do
                cp1, cp2 = UCD.codepoints[codepoints[pos]], UCD.codepoints[codepoints[pos+1]]
                if (cp1.combining_class > cp2.combining_class) && (cp2.combining_class > 0)
                  codepoints[pos..pos+1] = cp2.code, cp1.code
                  pos += (pos > 0 ? -1 : 1)
                else
                  pos += 1
                end
              end
              codepoints
            end