fix an incorrect free
[calc.git] / program.c
index 70ce6c12f943cc5519ba1b2e74d73843d264c5f7..b93a90cb299538f1dc0b79b0ae2223baba7c6021 100644 (file)
--- a/program.c
+++ b/program.c
@@ -132,15 +132,16 @@ double call (int id, int nbargs, element_t **args)
 void list ()
 {
     int i;
-    fprintf (stdout, "programs:");
+    printf ("programs:");
     for (i = 0; i < nb_programs; i++) {
-        fprintf (stdout, " %d", programs[i]->id);
+        printf (" %d", programs[i]->id);
     }
-    fprintf (stdout, "\n");
+    printf ("\n");
 }
 
 void edit (int id)
 {
+    extern char *edit_line;
     int n = lookfor_program (id);
     if (n == -1) {
         VERBOSE (WARNING, fprintf (stdout, "error unknown program (%d)\n", id));
@@ -148,7 +149,11 @@ void edit (int id)
     }
 
     /* set string program */
-    fprintf (stdout, "edit: %s\n", programs[n]->string);
+    if (edit_line) {
+        free (edit_line);
+    }
+    edit_line = strdup (programs[n]->string);
+    //printf ("edit: %s\n", programs[n]->string);
 }
 
 void savestring (int id, char *string)