コード例 #1
0
ファイル: marker.c プロジェクト: stanis/emacs
static void
byte_char_debug_check (struct buffer *b, EMACS_INT charpos, EMACS_INT bytepos)
{
  EMACS_INT nchars = 0;

  if (bytepos > BUF_GPT_BYTE (b))
    {
      nchars = multibyte_chars_in_text (BUF_BEG_ADDR (b),
					BUF_GPT_BYTE (b) - BUF_BEG_BYTE (b));
      nchars += multibyte_chars_in_text (BUF_GAP_END_ADDR (b),
					 bytepos - BUF_GPT_BYTE (b));
    }
  else
    nchars = multibyte_chars_in_text (BUF_BEG_ADDR (b),
				      bytepos - BUF_BEG_BYTE (b));

  if (charpos - 1 != nchars)
    abort ();
}
コード例 #2
0
ファイル: marker.c プロジェクト: 0230/deepin-emacs
static void
byte_char_debug_check (struct buffer *b, ptrdiff_t charpos, ptrdiff_t bytepos)
{
    ptrdiff_t nchars;

    if (NILP (BVAR (b, enable_multibyte_characters)))
        return;

    if (bytepos > BUF_GPT_BYTE (b))
        nchars
            = multibyte_chars_in_text (BUF_BEG_ADDR (b),
                                       BUF_GPT_BYTE (b) - BUF_BEG_BYTE (b))
              + multibyte_chars_in_text (BUF_GAP_END_ADDR (b),
                                         bytepos - BUF_GPT_BYTE (b));
    else
        nchars = multibyte_chars_in_text (BUF_BEG_ADDR (b),
                                          bytepos - BUF_BEG_BYTE (b));

    if (charpos - 1 != nchars)
        emacs_abort ();
}