Browse code

fix redata_op_add() so that it can insert data when redata struct has no chunks yet (bug was: couldn't insert data on an empty file).

Dario Rodriguez authored on 08/10/2020 20:38:53
Showing 1 changed files
... ...
@@ -936,6 +936,10 @@ redata_op_add(redata_t *redata, long insertpos, char *buf, long buflen, undostac
936 936
           || insertpos>redata_getused(redata)
937 937
           || (fromhere!=NULL && (fromhere!=&(redata->undostack) && fromhere!=&(redata->redostack))))
938 938
                 return(-1); /* sanity check failed */
939
+        if(insertpos==0 && redata->sizechunks==0) {
940
+                /* add the first chunk */
941
+                redata_preallocate(redata,buflen);
942
+        }
939 943
         if(redata_getposptr(redata,insertpos,&chunkno,&offset)==-1)
940 944
                 return(-1); /* invalid pos */
941 945
         if(fromhere!=&(redata->undostack)) {