should fix bug on win32 with user python menu's not loading because stat() didnt like the trailing slash and returned the dir as missing.

This commit is contained in:
2008-02-27 09:48:43 +00:00
parent 7d310f4e5c
commit b226eb925b
3 changed files with 30 additions and 2 deletions

View File

@@ -313,6 +313,7 @@ int BLI_move(char *file, char *to);
int BLI_touch(const char *file);
char *BLI_last_slash(const char *string);
void BLI_add_slash(char *string);
void BLI_del_slash(char *string);
/* BLI_rct.c */
/**

View File

@@ -108,6 +108,21 @@ void BLI_add_slash(char *string) {
#endif
}
/* removes a slash if there is one */
void BLI_del_slash(char *string) {
int len = strlen(string);
while (len) {
#ifdef WIN32
if (string[len-1]=='\\') {
#else
if (string[len-1]=='/') {
#endif
string[len-1] = '\0';
len--;
}
}
}
/* gzip the file in from and write it to "to".
return -1 if zlib fails, -2 if the originating file does not exist
note: will remove the "from" file

View File

@@ -933,13 +933,25 @@ static int bpymenu_ParseDir(char *dirname, char *parentdir, int is_userdir )
return 0;
}
static int bpymenu_GetStatMTime( char *name, int is_file, time_t * mtime )
static int bpymenu_GetStatMTime( const char *name, int is_file, time_t * mtime )
{
struct stat st;
int result;
#ifdef win32
if (is_file) {
result = stat( name, &st );
} else {
/* needed for win32 only, remove trailing slash */
char name_stat[FILE_MAX];
BLI_strncpy(name_stat, name, FILE_MAX);
BLI_del_slash(name_stat);
result = stat( name_stat, &st );
}
#else
result = stat( name, &st );
#endif
if( result == -1 )
return -1;