> String indexing *must* not fixed. As I said there is a number of plugins that 
> need *exactly* bytes: any plugin implementing hash function. char2nr(s[i]) is 
> guaranteed to return a value between 0x00 and 0xFF (inclusive) (0x00 is 
> returned only if s[i] is an empty string).

There are basically two variants how I see this situation mitigated: new data 
type like unicode() in python-2* with old strings being same as str() in 
python-2* with a function to convert from str() to unicode() and a set of mb*() 
functions.

First variant have an advantage that by using the same unicode() as python-3* 
str() you may have O(1) indexing operations (if you keep utf-8 strings it will 
be O(N)).

Second variant has an advantage of being far easier to implement: you just add 
a few function definitions without requiring to add big bunch of 
unicode()->str() conversions in a number of places, supporting unicode() 
objects in regex engine (python-3* str() objects use ASCII, latin1, UTF-16 or 
UTF-32 depending on what is the highest byte, but vim only accepts 
ASCII-compatible encodings) and so on. To make first variant perform better you 
need to modify *each* function that uses strings to work with unicode() or 
waste lots of time on unicode()->str()[->unicode()] conversions.

-- 
-- 
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 vim_dev+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to