seems ok
Le 12 juin 08 à 09:24, Ralf Schlatterbeck a écrit :
> # HG changeset patch
> # User Ralf Schlatterbeck <[EMAIL PROTECTED]>
> # Date 1213254873 -7200
> # Node ID e05be11aba4051ab564e712cde597a7702e97329
> # Parent c97ed6cb9928c9df9a879e988ee9c8942684a946
> Fix String::replaceInRange bug: We don't want to subtract 1 but the
> lenght of the "before" string argument. The old implementation both
> sometimes fails to replace a string when it should and sometimes
> replaces when it shouldn't.
> Before the change I had the following results on replacement:
> str index size before after result
> "sip:+43650" 0 2 "sip:" "" "+43650" <- Wrong, shouldn't
> replace
> "sip:+43650" 0 4 "sip:" "" "+43650"
> "0043650" 0 2 "00" "+" "+43650"
> "10043650" 0 2 "00" "+" "10043650"
> "0650" 0 1 "0" "+43" "0650" <- Wrong, should
> replace
> "10650" 0 1 "0" "+43" "10650"
> "0650" 0 2 "0" "+43" "+43650"
> "10650" 0 2 "0" "+43" "10650" <- Wrong, should
> replace
>
> After the change this yields:
> str index size before after result
> "sip:+43650" 0 2 "sip:" "" "sip:+43650"
> "sip:+43650" 0 4 "sip:" "" "+43650"
> "0043650" 0 2 "00" "+" "+43650"
> "10043650" 0 2 "00" "+" "10043650"
> "0650" 0 1 "0" "+43" "+43650"
> "10650" 0 1 "0" "+43" "10650"
> "0650" 0 2 "0" "+43" "+43650"
> "10650" 0 2 "0" "+43" "1+43650"
>
> diff -r c97ed6cb9928 -r e05be11aba40 libs/owutil/util/src/String.cpp
> --- a/libs/owutil/util/src/String.cpp Wed Jun 11 16:16:20 2008 +0200
> +++ b/libs/owutil/util/src/String.cpp Thu Jun 12 09:14:33 2008 +0200
> @@ -130,12 +130,13 @@ void String::replaceInRange(unsigned ind
>
> //Searches on tmp + before2 rather than this + before
> string::size_type pos = index;
> + string::size_type l = before2.length();
> pos = tmp.find(before2, pos);
> if ((pos != string::npos)
> - && ((pos - index + 1) < size)) {
> + && ((pos - index + l) <= size)) {
> //Replaces on this + tmp
> - string::replace(pos, before2.length(), after);
> - tmp.replace(pos, before2.length(), after);
> + string::replace(pos, l, after);
> + tmp.replace(pos, l, after);
> }
> }
>
> --
> Dr. Ralf Schlatterbeck Tel: +43/2243/26465-16
> Open Source Consulting Fax: +43/2243/26465-23
> Reichergasse 131 www: http://www.runtux.com
> A-3411 Weidling email: [EMAIL PROTECTED]
> osAlliance member email: [EMAIL PROTECTED]
> _______________________________________________
> QuteCom-dev mailing list
> [email protected]
> http://lists.qutecom.org/mailman/listinfo/qutecom-dev
>
_______________________________________________
QuteCom-dev mailing list
[email protected]
http://lists.qutecom.org/mailman/listinfo/qutecom-dev