summaryrefslogtreecommitdiffstats
path: root/source/xap/gnuchess/eboard.assert.diff
blob: 182359318f7d83f2f19496c78e40e4c03c5ae7b1 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
--- ./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 <gtk/gtkselection.h>
 #include "ntext.h"
 #include "global.h"
+#include <assert.h>
 
 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);