chiark / gitweb /
*** empty log message ***
[sympathy.git] / src / history.c
index 026714c42cf01fe2fd29f991bb6b92ea6ed7d33a..24d3692de1815a309ec40cbbd51a61bbd7badd82 100644 (file)
@@ -10,6 +10,12 @@ static char rcsid[] = "$Id$";
 
 /*
  * $Log$
+ * 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 ***
+ *
  * Revision 1.1  2008/02/08 15:06:42  james
  * *** empty log message ***
  *
@@ -17,36 +23,57 @@ static char rcsid[] = "$Id$";
 
 #include "project.h"
 
-History *history_new(int n)
+History *
+history_new (int n)
 {
-History *ret;
+  History *ret;
 
-ret=(History *) malloc(sizeof(History));
-ret->lines=malloc(n*sizeof(History_ent));
-memset(ret->lines,0,n*sizeof(History_ent));
+  ret = (History *) malloc (sizeof (History));
+  ret->lines = malloc (n * sizeof (History_ent));
+  memset (ret->lines, 0, n * sizeof (History_ent));
 
-ret->wptr=0;
-ret->nlines=n;
+  ret->wptr = 0;
+  ret->nlines = n;
 
-return ret;
+  return ret;
 }
 
-void history_free(History *h)
+void
+history_free (History * h)
 {
-if (!h) return;
-if (h->lines) free(h->lines);
-free(h);
+  if (!h)
+    return;
+  if (h->lines)
+    free (h->lines);
+  free (h);
 }
 
 
-void history_add(History *h,CRT_CA *c)
+void
+history_add (History * h, CRT_CA * c)
 {
-if (!h) return;
+  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);
 
-if (h->wptr==h->nlines)
-       h->wptr=0;
+  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
+
+
+}