[PATCH 1/4] msvcp90: Added basic_string<char>::append(size_t, char) implementation.

Vincas Miliūnas vincas.miliunas at gmail.com
Thu Apr 21 04:29:59 CDT 2011


Hi,

>It's probably not allowed to use %lc format.

Both %c and %lc produce the same trace output:
trace:msvcp90:MSVCP_basic_string_wchar_assign_cstr_len 0x32fc20 L"abc" 3
trace:msvcp90:MSVCP_basic_string_wchar_append_len_wchar 0x32fc20 0 z
trace:msvcp90:MSVCP_basic_string_wchar_c_str 0x32fc20
trace:msvcp90:MSVCP_basic_string_wchar_append_len_wchar 0x32fc20 2 z
trace:msvcp90:MSVCP_basic_string_wchar_c_str 0x32fc20

Should I send a patch with %c instead?

The "l" modifier most likely is ignored and will print correct result only for ASCII symbols.

Regards,
Vincas M.

On 04/20/2011 05:24 PM, Piotr Caban wrote:
> Hi,
>
> On 04/18/11 23:53, Vincas Miliūnas wrote:
>> My remark: (The method is implemented by reusing existing code) this->size+count<this->size is the same as count<  0 and throwing a "string too long" exception in that case is not semantic.
> count is an unsigned variable so it cannot be smaller then 0. My 
> intention was to make sure there's no overflow. This check is not needed 
> because MSVCP_basic_string_char_npos-this->size <= count already makes 
> sure this->size+count has small enough value.
>
> +basic_string_wchar* __thiscall MSVCP_basic_string_wchar_append_len_wchar(
> +        basic_string_wchar *this, size_t count, wchar_t c)
> +{
> +    TRACE("%p %lu %lc\n", this, (unsigned long)count, c);
> It's probably not allowed to use %lc format.
>
> Cheers,
> Piotr
>




More information about the wine-devel mailing list