[2874] in BarnOwl Developers

home help back first fref pref prev next nref lref last post

[PATCH 1/2] Refactor some common code in colorpair_mgr

daemon@ATHENA.MIT.EDU (David Benjamin)
Tue Jan 25 17:51:06 2011

From: David Benjamin <davidben@MIT.EDU>
To: barnowl-dev@mit.edu
Date: Tue, 25 Jan 2011 17:50:16 -0500

---
 fmtext.c  |   35 +++++++++++------------------------
 mainwin.c |    2 +-
 2 files changed, 12 insertions(+), 25 deletions(-)

diff --git a/fmtext.c b/fmtext.c
index bb36d94..b31fc34 100644
--- a/fmtext.c
+++ b/fmtext.c
@@ -910,41 +910,28 @@ void owl_fmtext_cleanup(owl_fmtext *f)
 void owl_fmtext_init_colorpair_mgr(owl_colorpair_mgr *cpmgr)
 {
   /* This could be a bitarray if we wanted to save memory. */
-  short i, j;
-  cpmgr->next = 8;
-  
+  short i;
   /* The test is <= because we allocate COLORS+1 entries. */
   cpmgr->pairs = owl_malloc((COLORS+1) * sizeof(short*));
   for(i = 0; i <= COLORS; i++) {
     cpmgr->pairs[i] = owl_malloc((COLORS+1) * sizeof(short));
-    for(j = 0; j <= COLORS; j++) {
-      cpmgr->pairs[i][j] = -1;
-    }
-  }
-  if (owl_global_get_hascolors(&g)) {
-    for(i = 0; i < 8; i++) {
-      short fg, bg;
-      if (i >= COLORS) continue;
-      pair_content(i, &fg, &bg);
-      cpmgr->pairs[fg+1][bg+1] = i;
-    }
   }
+  owl_fmtext_reset_colorpairs(cpmgr);
 }
 
 /* Reset used list */
-void owl_fmtext_reset_colorpairs(void)
+void owl_fmtext_reset_colorpairs(owl_colorpair_mgr *cpmgr)
 {
-  if (owl_global_get_hascolors(&g)) {
-    short i, j;
-    owl_colorpair_mgr *cpmgr = owl_global_get_colorpair_mgr(&g);
-    cpmgr->next = 8;
-    
+  short i, j;
+
+  cpmgr->next = 8;
     /* The test is <= because we allocated COLORS+1 entries. */
-    for(i = 0; i <= COLORS; i++) {
-      for(j = 0; j <= COLORS; j++) {
-	cpmgr->pairs[i][j] = -1;
-      }
+  for(i = 0; i <= COLORS; i++) {
+    for(j = 0; j <= COLORS; j++) {
+      cpmgr->pairs[i][j] = -1;
     }
+  }
+  if (owl_global_get_hascolors(&g)) {
     for(i = 0; i < 8; i++) {
       short fg, bg;
       if (i >= COLORS) continue;
diff --git a/mainwin.c b/mainwin.c
index e5cc837..5d78135 100644
--- a/mainwin.c
+++ b/mainwin.c
@@ -52,7 +52,7 @@ static void owl_mainwin_redraw(owl_window *w, WINDOW *recwin, void *user_data)
   curmsg = owl_global_get_curmsg(&g);
   markedmsgid = owl_global_get_markedmsgid(&g);
   v = owl_global_get_current_view(&g);
-  owl_fmtext_reset_colorpairs();
+  owl_fmtext_reset_colorpairs(owl_global_get_colorpair_mgr(&g));
 
   if (v==NULL) {
     owl_function_debugmsg("Hit a null window in owl_mainwin_redisplay.");
-- 
1.7.3.3.399.g06ddf


home help back first fref pref prev next nref lref last post