# File lib/active_support/multibyte/chars.rb, line 514
        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