[sr-dev] git:master: xlog: use the function from core to get term color codes

Elena-Ramona Modroiu ramona at rosdev.ro
Wed Sep 26 10:21:14 CEST 2012


Module: sip-router
Branch: master
Commit: c79dffa959b325da2c579b2dce94511beac83f00
URL:    http://git.sip-router.org/cgi-bin/gitweb.cgi/sip-router/?a=commit;h=c79dffa959b325da2c579b2dce94511beac83f00

Author: Elena-Ramona Modroiu <ramona at asipto.com>
Committer: Elena-Ramona Modroiu <ramona at asipto.com>
Date:   Wed Sep 26 10:20:11 2012 +0200

xlog: use the function from core to get term color codes

---

 modules_k/xlog/xlog.c |  122 ++-----------------------------------------------
 1 files changed, 4 insertions(+), 118 deletions(-)

diff --git a/modules_k/xlog/xlog.c b/modules_k/xlog/xlog.c
index 2ebd4e9..8a9b8c2 100644
--- a/modules_k/xlog/xlog.c
+++ b/modules_k/xlog/xlog.c
@@ -587,134 +587,20 @@ error:
 	return -1;
 }
 
-#define COL_BUF 10
-
-#define append_sstring(p, end, s) \
-        do{\
-                if ((p)+(sizeof(s)-1)<=(end)){\
-                        memcpy((p), s, sizeof(s)-1); \
-                        (p)+=sizeof(s)-1; \
-                }else{ \
-                        /* overflow */ \
-                        LM_ERR("append_sstring overflow\n"); \
-                        goto error;\
-                } \
-        } while(0) 
-
-
 static int pv_get_color(struct sip_msg *msg, pv_param_t *param,
 		pv_value_t *res)
 {
-	static char color[COL_BUF];
-	char* p;
-	char* end;
-	str s;
+	str s = {"", 0};
 
 	if(log_stderr==0 && force_color==0)
 	{
-		s.s = "";
-		s.len = 0;
+		LM_DBG("ignoring colors\n");
 		return pv_get_strval(msg, param, res, &s);
 	}
 
-	p = color;
-	end = p + COL_BUF;
-        
-	/* excape sequenz */
-	append_sstring(p, end, "\033[");
-        
-	if(param->pvn.u.isname.name.s.s[0]!='_')
-	{
-		if (islower((int)param->pvn.u.isname.name.s.s[0]))
-		{
-			/* normal font */
-			append_sstring(p, end, "0;");
-		} else {
-			/* bold font */
-			append_sstring(p, end, "1;");
-			param->pvn.u.isname.name.s.s[0] += 32;
-		}
-	}
-         
-	/* foreground */
-	switch(param->pvn.u.isname.name.s.s[0])
-	{
-		case 'x':
-			append_sstring(p, end, "39;");
-		break;
-		case 's':
-			append_sstring(p, end, "30;");
-		break;
-		case 'r':
-			append_sstring(p, end, "31;");
-		break;
-		case 'g':
-			append_sstring(p, end, "32;");
-		break;
-		case 'y':
-			append_sstring(p, end, "33;");
-		break;
-		case 'b':
-			append_sstring(p, end, "34;");
-		break;
-		case 'p':
-			append_sstring(p, end, "35;");
-		break;
-		case 'c':
-			append_sstring(p, end, "36;");
-		break;
-		case 'w':
-			append_sstring(p, end, "37;");
-		break;
-		default:
-			LM_ERR("invalid foreground\n");
-			return pv_get_null(msg, param, res);
-	}
-         
-	/* background */
-	switch(param->pvn.u.isname.name.s.s[1])
-	{
-		case 'x':
-			append_sstring(p, end, "49");
-		break;
-		case 's':
-			append_sstring(p, end, "40");
-		break;
-		case 'r':
-			append_sstring(p, end, "41");
-		break;
-		case 'g':
-			append_sstring(p, end, "42");
-		break;
-		case 'y':
-			append_sstring(p, end, "43");
-		break;
-		case 'b':
-			append_sstring(p, end, "44");
-		break;
-		case 'p':
-			append_sstring(p, end, "45");
-		break;
-		case 'c':
-			append_sstring(p, end, "46");
-		break;
-		case 'w':
-			append_sstring(p, end, "47");
-		break;
-		default:
-			LM_ERR("invalid background\n");
-			return pv_get_null(msg, param, res);
-	}
-
-	/* end */
-	append_sstring(p, end, "m");
-
-	s.s = color;
-	s.len = p-color;
+	dprint_term_color(param->pvn.u.isname.name.s.s[0],
+			param->pvn.u.isname.name.s.s[1], &s);
 	return pv_get_strval(msg, param, res, &s);
-
-error:
-	return -1;
 }
 
 /**




More information about the sr-dev mailing list