summaryrefslogtreecommitdiff
path: root/src/xdisp.c
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1998-11-30 06:35:33 +0000
committerRichard M. Stallman <rms@gnu.org>1998-11-30 06:35:33 +0000
commitffa286a2aa940bcf425773d84e5f83450142522e (patch)
treedc7a9b01d38cf63cd0c3ecb97a369f3dca5fb714 /src/xdisp.c
parentacafa9cfdc88d46268f2803c252deb20514907d1 (diff)
downloademacs-ffa286a2aa940bcf425773d84e5f83450142522e.tar.gz
(display_text_line): When handling HPOS < 0 after loop,
if compute_motion fails to advance at all, don't back it up.
Diffstat (limited to 'src/xdisp.c')
-rw-r--r--src/xdisp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index a5a86071f1a..977944e5918 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -3371,8 +3371,9 @@ display_text_line (w, start, start_byte, vpos, hpos, taboffset, ovstr_done)
compute_motion may have moved us past the screen position we
requested, if we hit a multi-column character, or the end of
the line. If so, back up. */
- if (left_edge->vpos > vpos
- || left_edge->hpos > 0)
+ if ((left_edge->vpos > vpos
+ || left_edge->hpos > 0)
+ && left_edge->bufpos > pos)
{
pos = left_edge->bufpos;
pos_byte = left_edge->bytepos;