chiark / gitweb /
Install serialmgr and run_sympathy in examples directory (uncompressed)
[sympathy.git] / src / history.c
index b8637aae63380be2143753a1b52eb5295a512ef3..9bfea8bd7a58fc496723026fd93790c050cca910 100644 (file)
@@ -1,15 +1,30 @@
-/*
+/* 
  * history.c:
  *
- * Copyright (c) 2008 James McKenzie <james@fishsoup.dhs.org>,
+ * Copyright (c) 2008 James McKenzie <sympathy@madingley.org>,
  * All rights reserved.
  *
  */
 
-static char rcsid[] = "$Id$";
+static char rcsid[] = "$Id: history.c,v 1.7 2008/03/07 13:16:02 james Exp $";
 
-/*
- * $Log$
+/* 
+ * $Log: history.c,v $
+ * Revision 1.7  2008/03/07 13:16:02  james
+ * *** empty log message ***
+ *
+ * Revision 1.6  2008/03/07 12:37:04  james
+ * *** empty log message ***
+ *
+ * Revision 1.5  2008/03/03 06:04:42  james
+ * *** empty log message ***
+ *
+ * Revision 1.4  2008/03/02 10:37:56  james
+ * *** empty log message ***
+ *
+ * Revision 1.3  2008/02/13 16:57:29  james
+ * *** empty log message ***
+ *
  * Revision 1.2  2008/02/12 22:36:46  james
  * *** empty log message ***
  *
@@ -25,8 +40,8 @@ history_new (int n)
 {
   History *ret;
 
-  ret = (History *) malloc (sizeof (History));
-  ret->lines = malloc (n * sizeof (History_ent));
+  ret = (History *) xmalloc (sizeof (History));
+  ret->lines = xmalloc (n * sizeof (History_ent));
   memset (ret->lines, 0, n * sizeof (History_ent));
 
   ret->wptr = 0;
@@ -49,13 +64,27 @@ history_free (History * h)
 void
 history_add (History * h, CRT_CA * c)
 {
+  History_ent *e;
   if (!h)
     return;
 
-  memcpy (h->lines[h->wptr].line, c, sizeof (CRT_CA) * CRT_COLS);
-  h->wptr++;
+  e = &h->lines[h->wptr];
+  HISTORY_INC (h, h->wptr);
+
+  memcpy (e->line, c, sizeof (CRT_CA) * CRT_COLS);
+  time (&e->t);
+  e->valid = 1;
+
+#if 0
+  {
+    int i = CRT_COLS;
+    while (i--) {
+      fputc (c->chr, stderr);
+      c++;
+    }
+    fputc ('\n', stderr);
+  }
+#endif
 
-  if (h->wptr == h->nlines)
-    h->wptr = 0;
 
 }