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:
@@ -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 */
|
||||
/**
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user