utf8: use CharCount instead of size_t

This commit is contained in:
Maxime Coste 2012-10-27 13:26:40 +02:00
parent 61c8ef6ce4
commit ee882d9d02
2 changed files with 9 additions and 8 deletions

View File

@ -3,6 +3,7 @@
#include <cstddef>
#include "unicode.hh"
#include "units.hh"
#include "assert.hh"
namespace Kakoune
@ -43,8 +44,8 @@ Iterator previous(Iterator it)
// returns an iterator pointing to the first byte of the
// dth character after (or before if d < 0) the character
// pointed by it
template<typename Iterator, typename Distance>
Iterator advance(Iterator it, Iterator end, Distance d)
template<typename Iterator>
Iterator advance(Iterator it, Iterator end, CharCount d)
{
if (d < 0)
{
@ -61,9 +62,9 @@ Iterator advance(Iterator it, Iterator end, Distance d)
// returns the character count between begin and end
template<typename Iterator>
size_t distance(Iterator begin, Iterator end)
CharCount distance(Iterator begin, Iterator end)
{
size_t dist = 0;
CharCount dist = 0;
while (begin != end)
{
if ((*begin++ & 0xC0) != 0x80)

View File

@ -47,7 +47,7 @@ public:
return save;
}
utf8_iterator operator+(int count) const
utf8_iterator operator+(CharCount count) const
{
if (count < 0)
return operator-(-count);
@ -58,7 +58,7 @@ public:
return res;
}
utf8_iterator operator-(int count) const
utf8_iterator operator-(CharCount count) const
{
if (count < 0)
return operator+(-count);
@ -92,12 +92,12 @@ public:
return m_it >= other.m_it;
}
size_t operator-(utf8_iterator other) const
CharCount operator-(utf8_iterator other) const
{
//assert(other < *this);
check_invariant();
other.check_invariant();
size_t dist = 0;
CharCount dist = 0;
while (other.m_it != m_it)
{
++dist;