]> pd.if.org Git - pd_readline/blobdiff - history.c
More work
[pd_readline] / history.c
index f8a0d256d81c6b29b3a0ac7d4eb99c7508734088..498cbe8e86af1a9267a7b4c9b89374fe1fa4df50 100644 (file)
--- a/history.c
+++ b/history.c
@@ -6,6 +6,11 @@
 /*  "Share and enjoy...."  ;)                          */  
 /*  See the UNLICENSE file for details.                */ 
 
+#include <string.h>   
+#include <stdio.h> 
+#include <stdlib.h> 
+#include <malloc.h>
+#include "pd_readline.h"  
 
 
 /*  Helper function, to let us see if a file */ 
@@ -30,15 +35,14 @@ char *chop(char *s)
 }
 
 
-/* An array to store the command-history file in. */ 
-/* Only 20 lines are read. */ 
-char hist[20][80];  
 
-
-
-/* Read the file into the array of strings.  */ 
-void readhistory(char *fname) 
+/* Read the file into the array of strings.   */ 
+hist readhistory(char *fname) 
 { 
+       
+   /*  Create a history buffer.  */ 
+   hist h;     
+       
    int retval = fexists(fname); 
         
    int i; 
@@ -48,18 +52,33 @@ void readhistory(char *fname)
          /* append new commands to it. */ 
          FILE *fptr;  
          fptr = fopen(fname, "rw"); 
-                          
+               
+      char line[80] ; 
+                                          
          for(i=0; i<20; i++)  
-         {  
-               chop(fgets(hist[i], 80, fptr) );  
+         { 
+               fgets(line, 80, fptr);                   
+               chop(line) ;  
+               
+               /* TO DO: fix the "too few arguments" bug here.... */  
+               memcpy(&h.array[i], line, 80) ;   
+               puts(h.array[i]); 
          }
          
    }  /* retval == 0  */          
        
        else puts("Error! File does not exist. \n");  
+               
+       /*  Set the curindex to 19.  */     
+           h.curindex = 19;       
+               
+       return h;
        
 }      
 
+                                           
+