aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicholas Marriott <nicholas.marriott@gmail.com>2007-10-05 17:51:56 +0000
committerNicholas Marriott <nicholas.marriott@gmail.com>2007-10-05 17:51:56 +0000
commit1e252b9e9a1535298d44f976a5cd42bf136fe575 (patch)
treeafcf7c2294156c5778531a2e1b581103950dfdb8
parentd00851cee16d8805a788ad4179ee47a12655c097 (diff)
downloadrtmux-1e252b9e9a1535298d44f976a5cd42bf136fe575.tar.gz
rtmux-1e252b9e9a1535298d44f976a5cd42bf136fe575.tar.bz2
rtmux-1e252b9e9a1535298d44f976a5cd42bf136fe575.zip
Wrap lines properly.
-rw-r--r--input.c12
-rw-r--r--screen.c11
2 files changed, 13 insertions, 10 deletions
diff --git a/input.c b/input.c
index 305a1746..6f0ee7b9 100644
--- a/input.c
+++ b/input.c
@@ -1,4 +1,4 @@
-/* $Id: input.c,v 1.20 2007-10-04 19:03:51 nicm Exp $ */
+/* $Id: input.c,v 1.21 2007-10-05 17:51:56 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -430,8 +430,18 @@ input_handle_character(u_char ch, struct input_ctx *ictx)
if (ictx->s->cx > ictx->s->sx - 1 || ictx->s->cy > ictx->s->sy - 1)
return;
+
screen_write_character(ictx->s, ch);
input_store8(ictx->b, ch);
+
+ if (ictx->s->cx == ictx->s->sx - 1) {
+ ictx->s->cx = 0;
+ screen_cursor_down_scroll(ictx->s);
+
+ input_store8(ictx->b, '\r');
+ input_store8(ictx->b, '\n');
+ } else
+ ictx->s->cx++;
}
void
diff --git a/screen.c b/screen.c
index df91d488..dc4ccc2b 100644
--- a/screen.c
+++ b/screen.c
@@ -1,4 +1,4 @@
-/* $Id: screen.c,v 1.21 2007-10-04 19:22:26 nicm Exp $ */
+/* $Id: screen.c,v 1.22 2007-10-05 17:51:56 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -284,20 +284,13 @@ screen_fill_lines(
screen_fill_line(s, i, data, attr, colr);
}
-/* Write a single character to the screen at the cursor and move forward. */
+/* Write a single character to the screen at the cursor. */
void
screen_write_character(struct screen *s, u_char ch)
{
- if (s->cx > screen_last_x(s)) {
- s->cx = 0;
- screen_cursor_down_scroll(s);
- }
-
s->grid_data[s->cy][s->cx] = ch;
s->grid_attr[s->cy][s->cx] = s->attr;
s->grid_colr[s->cy][s->cx] = s->colr;
-
- s->cx++;
}
/* Move cursor up and scroll if necessary. */