[tarantool-patches] Re: [PATCH v2 5/5] lua: introduce utf8 built-in globaly visible module

Vladislav Shpilevoy v.shpilevoy at tarantool.org
Sat May 5 03:45:46 MSK 2018



On 05/05/2018 03:38, Alexander Turenko wrote:
> On Sat, May 05, 2018 at 03:24:41AM +0300, Vladislav Shpilevoy wrote:
>>
>>
>>>
>>>>>> +
>>>>>> +/**
>>>>>> + * Calculate length of a UTF8 string. Length here is symbol count.
>>>>>> + * Works like utf8.len in Lua 5.3.
>>>>>> + * @param String to get length.
>>>>>> + * @param Start byte offset. Must point to the start of symbol. On
>>>>>> + *        invalid symbol an error is returned. Can be negative.
>>>>>
>>>>> Can be 1 <= |start| <= #str + 1, right? Is it worth to document? Such
>>>>> offset equilibristics is not very intuitive (at least for me).
>>>>
>>>> No, start can be any, as well as end.
>>
>> diff --git a/src/lua/utf8.c b/src/lua/utf8.c
>> index c31171b2c..c84e6ff72 100644
>> --- a/src/lua/utf8.c
>> +++ b/src/lua/utf8.c
>> @@ -144,6 +144,7 @@ utf8_convert_offset(int offset, size_t len)
>>    * Calculate length of a UTF8 string. Length here is symbol count.
>>    * Works like utf8.len in Lua 5.3. Can take negative offsets. A
>>    * negative offset is an offset from the end of string.
>> + * Positive position must be inside [1, #str + 1].
>>    * @param String to get length.
>>    * @param Start byte offset. Must point to the start of symbol. On
>>    *        invalid symbol an error is returned.
>> v:tarantool v.shpilevoy$ git diff
>> diff --git a/src/lua/utf8.c b/src/lua/utf8.c
>> index c31171b2c..8f0ca65e5 100644
>> --- a/src/lua/utf8.c
>> +++ b/src/lua/utf8.c
>> @@ -144,14 +144,17 @@ utf8_convert_offset(int offset, size_t len)
>>    * Calculate length of a UTF8 string. Length here is symbol count.
>>    * Works like utf8.len in Lua 5.3. Can take negative offsets. A
>>    * negative offset is an offset from the end of string.
>> + * Positive position must be inside [1, #str + 1].
>>    * @param String to get length.
>>    * @param Start byte offset. Must point to the start of symbol. On
>>    *        invalid symbol an error is returned.
>>    * @param End byte offset. Can point to the middle of symbol.
>>    *        Partial symbol is counted too.
>>    * @retval not nil Symbol count.
>> - * @retval nil, error Error. Byte position of the error is
>> + * @retval nil, number Error. Byte position of the error is
>>    *         returned in the second value.
>> + * @retval nil, string Error. Reason is returned in the second
>> + *         value.
>>    */
>>   static int
>>   utf8_len(struct lua_State *L)
>>
>>
> 
> [0, #str] for the end position.
> 
> Excuse me for nitpicking.


diff --git a/src/lua/utf8.c b/src/lua/utf8.c
index 8f0ca65e5..d124e5321 100644
--- a/src/lua/utf8.c
+++ b/src/lua/utf8.c
@@ -144,12 +144,12 @@ utf8_convert_offset(int offset, size_t len)
   * Calculate length of a UTF8 string. Length here is symbol count.
   * Works like utf8.len in Lua 5.3. Can take negative offsets. A
   * negative offset is an offset from the end of string.
- * Positive position must be inside [1, #str + 1].
+ * Positive position must be inside .
   * @param String to get length.
- * @param Start byte offset. Must point to the start of symbol. On
- *        invalid symbol an error is returned.
- * @param End byte offset. Can point to the middle of symbol.
- *        Partial symbol is counted too.
+ * @param Start byte offset in [1, #str + 1]. Must point to the
+ *        start of symbol. On invalid symbol an error is returned.
+ * @param End byte offset in [0, #str]. Can point to the middle of
+ *        symbol. Partial symbol is counted too.
   * @retval not nil Symbol count.
   * @retval nil, number Error. Byte position of the error is
   *         returned in the second value.


> 
> WBR, Alexander Turenko.
> 




More information about the Tarantool-patches mailing list