--- ./ntext.cc.orig 2008-02-22 09:51:22.000000000 -0600 +++ ./ntext.cc 2010-02-19 21:53:58.000000000 -0600 @@ -33,6 +33,7 @@ #include #include "ntext.h" #include "global.h" +#include NLine::NLine() { Text = NULL; @@ -238,23 +239,27 @@ int i; NLine *nl; char *p; + char *s; if (len < 0) { discardExcess(); return; } - p = strchr(text, '\n'); + s = strdup(text); + assert(s != NULL); + p = strchr(s, '\n'); if (p!=NULL) { *p = 0; - i = strlen(text); - nl = new NLine(text, color); + i = strlen(s); + nl = new NLine(s, color); *p = '\n'; lines.push_back(nl); formatLine(lines.size()-1); append(&p[1], len-(i+1), color); return; } + free (s); // if search for \n failed, this is a single line nl = new NLine(text, color);