2004-01-25 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/13650
* include/bits/basic_string.tcc (compare(size_type, size_type,
const _CharT*, size_type)): Implement correctly the resolution
of DR 5: basically, s is a char array, -not- a C string.
* include/bits/basic_string.tcc (_M_clone): Null-terminate.
From-SVN: r76555
+2004-01-25 Paolo Carlini <pcarlini@suse.de>
+
+ PR libstdc++/13650
+ * include/bits/basic_string.tcc (compare(size_type, size_type,
+ const _CharT*, size_type)): Implement correctly the resolution
+ of DR 5: basically, s is a char array, -not- a C string.
+
+ * include/bits/basic_string.tcc (_M_clone): Null-terminate.
+
2004-01-19 Paolo Carlini <pcarlini@suse.de>
PR libstdc++/12352
}
}
__r->_M_length = _M_length;
+ __r->_M_refdata()[_M_length] = _Rep::_S_terminal;
return __r->_M_refdata();
}
if (__pos > __size)
__throw_out_of_range("basic_string::compare");
- size_type __osize = std::min(traits_type::length(__s), __n2);
size_type __rsize = std::min(size_type(__size - __pos), __n1);
- size_type __len = std::min(__rsize, __osize);
+ size_type __len = std::min(__rsize, __n2);
int __r = traits_type::compare(_M_data() + __pos, __s, __len);
if (!__r)
- __r = __rsize - __osize;
+ __r = __rsize - __n2;
return __r;
}