Commit 8a7debc1 authored by Dmitry Antipov's avatar Dmitry Antipov
Browse files

* xdisp.c (init_iterator): Simplify because both character and byte

positions are either specified or -1.  Add eassert.  Adjust comment.
parent dba720f1
2013-03-13 Dmitry Antipov <dmantipov@yandex.ru>
* xdisp.c (init_iterator): Simplify because both character and byte
positions are either specified or -1. Add eassert. Adjust comment.
2013-03-13 Paul Eggert <eggert@cs.ucla.edu> 2013-03-13 Paul Eggert <eggert@cs.ucla.edu>
   
Static checking by Sun C 5.12. Static checking by Sun C 5.12.
......
...@@ -2550,7 +2550,7 @@ markpos_of_region (void) ...@@ -2550,7 +2550,7 @@ markpos_of_region (void)
at character position CHARPOS. CHARPOS < 0 means that no buffer at character position CHARPOS. CHARPOS < 0 means that no buffer
position is specified which is useful when the iterator is assigned position is specified which is useful when the iterator is assigned
a position later. BYTEPOS is the byte position corresponding to a position later. BYTEPOS is the byte position corresponding to
CHARPOS. BYTEPOS < 0 means compute it from CHARPOS. CHARPOS.
   
If ROW is not null, calls to produce_glyphs with IT as parameter If ROW is not null, calls to produce_glyphs with IT as parameter
will produce glyphs in that row. will produce glyphs in that row.
...@@ -2828,18 +2828,14 @@ init_iterator (struct it *it, struct window *w, ...@@ -2828,18 +2828,14 @@ init_iterator (struct it *it, struct window *w,
if (charpos >= BUF_BEG (current_buffer)) if (charpos >= BUF_BEG (current_buffer))
{ {
it->end_charpos = ZV; it->end_charpos = ZV;
eassert (charpos == BYTE_TO_CHAR (bytepos));
IT_CHARPOS (*it) = charpos; IT_CHARPOS (*it) = charpos;
IT_BYTEPOS (*it) = bytepos;
   
/* We will rely on `reseat' to set this up properly, via /* We will rely on `reseat' to set this up properly, via
handle_face_prop. */ handle_face_prop. */
it->face_id = it->base_face_id; it->face_id = it->base_face_id;
   
/* Compute byte position if not specified. */
if (bytepos < charpos)
IT_BYTEPOS (*it) = CHAR_TO_BYTE (charpos);
else
IT_BYTEPOS (*it) = bytepos;
it->start = it->current; it->start = it->current;
/* Do we need to reorder bidirectional text? Not if this is a /* Do we need to reorder bidirectional text? Not if this is a
unibyte buffer: by definition, none of the single-byte unibyte buffer: by definition, none of the single-byte
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment