Logo Search packages:      
Sourcecode: yaskkserv version File versions  Download package

void SkkSimpleString::append ( const void *  p,
int  copy_size 
) [inline]

文字列を追加します。文字列 p は copy_size バイト分、または \0 を見付けるまで追加されます。.

Attention:
通常の append() と異なり、 p は \0 で終端されている必要がありません。

Definition at line 621 of file skk_simple_string.hpp.

References overwrite().

        {
                const int terminator_size = 1;
                int size = buffer_ + buffer_size_ - MARGIN_SIZE - current_ - terminator_size;

                DEBUG_ASSERT((size >= 1) &&
                             (size < buffer_size_ - MARGIN_SIZE * 2));
#ifdef YASKKSERV_DEBUG_PARANOIA
                const int append_terminator_legth = 1;
                int debug_size = copy_size;
                int tmp = buffer_ + buffer_size_ - MARGIN_SIZE - (current_ + debug_size + append_terminator_legth - 1) - terminator_size;
                DEBUG_ASSERT_RANGE(tmp,
                                   1,
                                   buffer_size_ - MARGIN_SIZE * 2 - 1);
                DEBUG_ASSERT_RANGE(debug_size,
                                   0,
                                   buffer_size_ - MARGIN_SIZE * 2 - 1);
#endif  // YASKKSERV_DEBUG_PARANOIA

                copy_size = (copy_size < size) ? copy_size : size;

                current_ = overwrite(p,
                                     current_,
                                     copy_size);
                *current_ = '\0';
                update_string();
        }


Generated by  Doxygen 1.6.0   Back to index