[ekg2-commit] r4076 - trunk/plugins/ncurses: trunk/plugins/ncurses/old.c trunk/plugins/ncurses/old.h

SVN commit svn w toxygen.net
Śro, 9 Lip 2008, 13:08:54 CEST


Author: darkjames
Date: 2008-07-09 13:08:53 +0200 (Wed, 09 Jul 2008)
New Revision: 4076

Modified:
   trunk/plugins/ncurses/old.c
   trunk/plugins/ncurses/old.h
Log:
- remove l->ts_len
- cleanup caching strftime() result



Modified: trunk/plugins/ncurses/old.c
===================================================================
--- trunk/plugins/ncurses/old.c	2008-07-09 10:45:33 UTC (rev 4075)
+++ trunk/plugins/ncurses/old.c	2008-07-09 11:08:53 UTC (rev 4076)
@@ -630,6 +630,7 @@
 		
 		for (;;) {
 			int word = 0, width;
+			int ts_len = 0;	/* xstrlen(l->ts) */
 
 			if (!i)
 				res++;
@@ -642,7 +643,6 @@
 			l->attr = attr;
 			l->len = xwcslen(str);
 			l->ts = NULL;
-			l->ts_len = 0;
 			l->ts_attr = NULL;
 			l->backlog = i;
 			l->margin_left = (!wrapping || margin_left == -1) ? margin_left : 0;
@@ -658,37 +658,31 @@
 
 			if (!w->floating && config_timestamp && config_timestamp_show) {
 				fstring_t *s = NULL;
-				if (ts && lastts == ts) {	/* use cached value */
-					s = fstring_new(lasttsbuf);
 
-					l->ts = s->str.b;
-					l->ts_len = xstrlen(l->ts);
-					l->ts_attr = s->attr;
-
-					xfree(s);
-				} else if (render_timstamp) {
+				if (!ts || lastts != ts) {	/* generate new */
 					struct tm *tm = localtime(&ts);
-					char *tmp = NULL, *format;
+					char *tmp, *format;
 
 					tmp = format_string(config_timestamp);
 					format = saprintf("%s ", tmp);
 					strftime(lasttsbuf, sizeof(lasttsbuf)-1, format, tm);
 
-					s = fstring_new(lasttsbuf);
-
-					l->ts = s->str.b;
-					l->ts_len = xstrlen(l->ts);
-					l->ts_attr = s->attr;
-
-					xfree(s);
 					xfree(tmp);
 					xfree(format);
 
 					lastts = ts;
 				}
+
+				s = fstring_new(lasttsbuf);
+
+				l->ts = s->str.b;
+				ts_len = xstrlen(l->ts);
+				l->ts_attr = s->attr;
+
+				xfree(s);
 			}
 
-			width = w->width - l->ts_len - l->prompt_len - n->margin_left - n->margin_right; 
+			width = w->width - ts_len - l->prompt_len - n->margin_left - n->margin_right; 
 
 			if ((w->frames & WF_LEFT))
 				width -= 1;
@@ -1140,10 +1134,7 @@
 		cur_x = (left);
 
 		if (l->ts) {
-			/* XXX,
-			 * 	po co sprawdzamy l->ts[x] i l->ts_len? nie wystarczy jedno?
-			 */
-			for (x = 0; l->ts[x] && x < l->ts_len; x++, cur_x++) { 
+			for (x = 0; l->ts[x]; x++, cur_x++) { 
 				int attr = fstring_attr2ncurses_attr(l->ts_attr[x]);
 				unsigned char ch = (unsigned char) ncurses_fixchar((CHAR_T) l->ts[x], &attr);
 
@@ -1152,8 +1143,6 @@
 			}
 		}
 
-		cur_x = (left + l->ts_len);	/* XXX */
-
 		if (l->prompt_str) {
 			for (x = 0; x < l->prompt_len; x++, cur_x++) {
 				int attr = fstring_attr2ncurses_attr(l->prompt_attr[x]);
@@ -1172,8 +1161,6 @@
 			}
 		}
 
-		cur_x = (left + l->ts_len + l->prompt_len);	/* XXX */
-
 		for (x = 0; x < l->len; x++, cur_x++) {
 			int attr = fstring_attr2ncurses_attr(l->attr[x]);
 			CHAR_T ch = ncurses_fixchar(l->str[x], &attr);

Modified: trunk/plugins/ncurses/old.h
===================================================================
--- trunk/plugins/ncurses/old.h	2008-07-09 10:45:33 UTC (rev 4075)
+++ trunk/plugins/ncurses/old.h	2008-07-09 11:08:53 UTC (rev 4076)
@@ -36,7 +36,6 @@
 	int prompt_len;		/* długość promptu */
 	
 	char *ts;		/* timestamp */
-	int ts_len;		/* długość timestampu */
 	short *ts_attr;		/* attributes of the timestamp */
 
 	int backlog;		/* z której linii backlogu pochodzi? */



Więcej informacji o liście dyskusyjnej ekg2-commit