Drag into the 21st century.
[sw-tools] / src / pres_curses.c
index 38876e8..a4f3b3f 100644 (file)
@@ -1,6 +1,6 @@
 /* -*-c-*-
  *
- * $Id: pres_curses.c,v 1.7 2004/04/08 01:52:19 mdw Exp $
+ * $Id$
  *
  * Curses-based output presentation
  *
@@ -259,8 +259,25 @@ fail_0:
 void curses_output(archent *e, const char *p, size_t sz)
 {
   cwin *c = e->pres;
+  int y, x;
   while (sz) {
-    waddch(c->w, *p);
+    switch (*p) {
+      case '\r':
+       getyx(c->w, y, x);
+       wmove(c->w, y, 0);
+       break;
+      case '\n':
+       getyx(c->w, y, x);
+       if (y < c->height - 1)
+         y++;
+       else
+         scroll(c->w);
+       wmove(c->w, y, 0);
+       break;
+      default:
+       waddch(c->w, *p);
+       break;
+    }
     p++;
     sz--;
   }