Hi

I found that  :help byteidx()  is rather confusing
regarding how it treats combining characters.
It says...

 "Composing characters are counted as a separate character."

I initially interpreted that as combining characters
are not combined, so counted as separate characters.
But that is not what byteidx() does with combining chars.
It actually treats them as a single character.  So the
help is misleading or badly worded. I only understood
after experimenting with the attached script which
shows what byteidx() does with/without combining
char:

===
$ cat byteidx-with-combining-char.vim
" This script illustrates the behavior of byteidx()
" with/without combining chars.

" Example of string without using composing chars
" Code points:    U+002E    U+00E    U+002E
" utf8 sequences: (0x2e) (0xc3 0xa9) (0x2e)
let s:a = '.é.'

" Same string but with composing char for the e-acute.
" Code points:    U+002E  U+0065 + U+0301   U+002E
" utf8 sequences: (0x2e) (0x65 + 0xcc 0x81) (0x2e)
let s:b = '.é.'

echo 'Testing without combining char'
echo [byteidx(s:a, 0), byteidx(s:a, 1), byteidx(s:a, 2), byteidx(s:a,
3), byteidx(s:a, 4)]

echo 'Testing with combining char'
echo [byteidx(s:b, 0), byteidx(s:b, 1), byteidx(s:b, 2), byteidx(s:b,
3), byteidx(s:b, 4)]
===

: so byteidx-with-combining-char.vim
Testing without combining char
[0, 1, 3, 4, -1]
Testing with combining char
[0, 1, 4, 5, -1]

Help is also ambiguous about what is meant by
the "length of string" returned (it's actually a length
in bytes).

Attached patch makes it clearer I hope.

Regards
Dominique

-- 
-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

--- 
You received this message because you are subscribed to the Google Groups 
"vim_dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Attachment: clarify-help-byteidx.patch
Description: Binary data

Attachment: byteidx-with-combining-char.vim
Description: Binary data

Raspunde prin e-mail lui