Fixed own platform bug with stat/fstat.
authorIan Thompson <quornian@googlemail.com>
Sat, 28 Jun 2008 00:07:22 +0000 (00:07 +0000)
committerIan Thompson <quornian@googlemail.com>
Sat, 28 Jun 2008 00:07:22 +0000 (00:07 +0000)
source/blender/blenkernel/intern/text.c
source/blender/src/drawtext.c

index f414498c1b9c91ef3f01ef71d2319571cda5bd3b..91ea8744dad579cad0dfa7daecdf7e2b169c8a5d 100644 (file)
@@ -217,7 +217,7 @@ int reopen_text(Text *text)
        TextLine *tmp;
        char sfile[FILE_MAXFILE];
        char str[FILE_MAXDIR+FILE_MAXFILE];
        TextLine *tmp;
        char sfile[FILE_MAXFILE];
        char str[FILE_MAXDIR+FILE_MAXFILE];
-       struct stat fst;
+       struct stat st;
 
        if (!text || !text->name) return 0;
        
 
        if (!text || !text->name) return 0;
        
@@ -253,9 +253,6 @@ int reopen_text(Text *text)
        fseek(fp, 0L, SEEK_SET);        
 
        text->undo_pos= -1;
        fseek(fp, 0L, SEEK_SET);        
 
        text->undo_pos= -1;
-
-       res= fstat(fp->_file, &fst);
-       text->mtime= fst.st_mtime;
        
        buffer= MEM_mallocN(len, "text_buffer");
        // under windows fread can return less then len bytes because
        
        buffer= MEM_mallocN(len, "text_buffer");
        // under windows fread can return less then len bytes because
@@ -263,6 +260,9 @@ int reopen_text(Text *text)
        len = fread(buffer, 1, len, fp);
 
        fclose(fp);
        len = fread(buffer, 1, len, fp);
 
        fclose(fp);
+
+       res= stat(str, &st);
+       text->mtime= st.st_mtime;
        
        text->nlines=0;
        i=0;
        
        text->nlines=0;
        i=0;
@@ -320,7 +320,7 @@ Text *add_text(char *file)
        Text *ta;
        char sfile[FILE_MAXFILE];
        char str[FILE_MAXDIR+FILE_MAXFILE];
        Text *ta;
        char sfile[FILE_MAXFILE];
        char str[FILE_MAXDIR+FILE_MAXFILE];
-       struct stat fst;
+       struct stat st;
 
        BLI_strncpy(str, file, FILE_MAXDIR+FILE_MAXFILE);
        if (G.scene) /* can be NULL (bg mode) */
 
        BLI_strncpy(str, file, FILE_MAXDIR+FILE_MAXFILE);
        if (G.scene) /* can be NULL (bg mode) */
@@ -346,9 +346,6 @@ Text *add_text(char *file)
        ta->name= MEM_mallocN(strlen(file)+1, "text_name");
        strcpy(ta->name, file);
 
        ta->name= MEM_mallocN(strlen(file)+1, "text_name");
        strcpy(ta->name, file);
 
-       res= fstat(fp->_file, &fst);
-       ta->mtime= fst.st_mtime;
-
        ta->undo_pos= -1;
        ta->undo_len= TXT_INIT_UNDO;
        ta->undo_buf= MEM_mallocN(ta->undo_len, "undo buf");
        ta->undo_pos= -1;
        ta->undo_len= TXT_INIT_UNDO;
        ta->undo_buf= MEM_mallocN(ta->undo_len, "undo buf");
@@ -359,6 +356,9 @@ Text *add_text(char *file)
        len = fread(buffer, 1, len, fp);
 
        fclose(fp);
        len = fread(buffer, 1, len, fp);
 
        fclose(fp);
+
+       res= stat(str, &st);
+       ta->mtime= st.st_mtime;
        
        ta->nlines=0;
        i=0;
        
        ta->nlines=0;
        i=0;
index fc1967a2c8660ed225167b0325c32d189022f5c6..c76ac47ffb71465257512eea7f4a85ff3067dfef 100644 (file)
@@ -1316,7 +1316,7 @@ void txt_write_file(Text *text)
        FILE *fp;
        TextLine *tmp;
        int res;
        FILE *fp;
        TextLine *tmp;
        int res;
-       struct stat fst;
+       struct stat st;
        
        /* Do we need to get a filename? */
        if (text->flags & TXT_ISMEM) {
        
        /* Do we need to get a filename? */
        if (text->flags & TXT_ISMEM) {
@@ -1352,8 +1352,8 @@ void txt_write_file(Text *text)
        
        fclose (fp);
 
        
        fclose (fp);
 
-       res= stat(text->name, &fst);
-       text->mtime= fst.st_mtime;
+       res= stat(text->name, &st);
+       text->mtime= st.st_mtime;
        
        if (text->flags & TXT_ISDIRTY) text->flags ^= TXT_ISDIRTY;
 }
        
        if (text->flags & TXT_ISDIRTY) text->flags ^= TXT_ISDIRTY;
 }