diff options
Diffstat (limited to 'source/blender/blenlib/intern/path_util.c')
-rw-r--r-- | source/blender/blenlib/intern/path_util.c | 462 |
1 files changed, 230 insertions, 232 deletions
diff --git a/source/blender/blenlib/intern/path_util.c b/source/blender/blenlib/intern/path_util.c index a18c297fdae..59147040fd8 100644 --- a/source/blender/blenlib/intern/path_util.c +++ b/source/blender/blenlib/intern/path_util.c @@ -48,7 +48,7 @@ #include "BLI_utildefines.h" #include "BKE_utildefines.h" -#include "BKE_blender.h" // BLENDER_VERSION +#include "BKE_blender.h" // BLENDER_VERSION #include "GHOST_Path-api.h" @@ -79,26 +79,26 @@ /* standard paths */ #ifdef WIN32 -# define BLENDER_USER_FORMAT "%s\\Blender Foundation\\Blender\\%s" -# define BLENDER_SYSTEM_FORMAT "%s\\Blender Foundation\\Blender\\%s" +# define BLENDER_USER_FORMAT "%s\\Blender Foundation\\Blender\\%s" +# define BLENDER_SYSTEM_FORMAT "%s\\Blender Foundation\\Blender\\%s" #elif defined(__APPLE__) -# define BLENDER_USER_FORMAT "%s/Blender/%s" -# define BLENDER_SYSTEM_FORMAT "%s/Blender/%s" +# define BLENDER_USER_FORMAT "%s/Blender/%s" +# define BLENDER_SYSTEM_FORMAT "%s/Blender/%s" #else /* UNIX */ # ifndef WITH_XDG_USER_DIRS /* oldschool unix ~/.blender/ */ -# define BLENDER_USER_FORMAT "%s/.blender/%s" +# define BLENDER_USER_FORMAT "%s/.blender/%s" # else /* new XDG ~/blender/.config/ */ -# define BLENDER_USER_FORMAT "%s/blender/%s" +# define BLENDER_USER_FORMAT "%s/blender/%s" # endif // WITH_XDG_USER_DIRS -# define BLENDER_SYSTEM_FORMAT "%s/blender/%s" +# define BLENDER_SYSTEM_FORMAT "%s/blender/%s" #endif /* local */ #define UNIQUE_NAME_MAX 128 -static char bprogname[FILE_MAX]; /* path to program executable */ -static char bprogdir[FILE_MAX]; /* path in which executable is located */ -static char btempdir[FILE_MAX]; /* temporary directory */ +static char bprogname[FILE_MAX]; /* path to program executable */ +static char bprogdir[FILE_MAX]; /* path in which executable is located */ +static char btempdir[FILE_MAX]; /* temporary directory */ static int add_win32_extension(char *name); static char *blender_version_decimal(const int ver); @@ -112,7 +112,7 @@ int BLI_stringdec(const char *string, char *head, char *tail, unsigned short *nu char *lslash = BLI_last_slash(string); len2 = len = strlen(string); if (lslash) - lenlslash= (int)(lslash - string); + lenlslash = (int)(lslash - string); while (len > lenlslash && string[--len] != '.') {}; if (len == lenlslash && string[len] != '.') len = len2; @@ -133,12 +133,12 @@ int BLI_stringdec(const char *string, char *head, char *tail, unsigned short *nu } } if (found) { - if (tail) strcpy(tail, &string[nume+1]); + if (tail) strcpy(tail, &string[nume + 1]); if (head) { strcpy(head, string); - head[nums]=0; + head[nums] = 0; } - if (numlen) *numlen = nume-nums+1; + if (numlen) *numlen = nume - nums + 1; return ((int)atoi(&(string[nums]))); } if (tail) strcpy(tail, string + len); @@ -146,15 +146,15 @@ int BLI_stringdec(const char *string, char *head, char *tail, unsigned short *nu strncpy(head, string, len); head[len] = '\0'; } - if (numlen) *numlen=0; + if (numlen) *numlen = 0; return 0; } void BLI_stringenc(char *string, const char *head, const char *tail, unsigned short numlen, int pic) { - char fmtstr[16]=""; - if (pic < 0) pic= 0; + char fmtstr[16] = ""; + if (pic < 0) pic = 0; sprintf(fmtstr, "%%s%%.%dd%%s", numlen); sprintf(string, fmtstr, head, pic, tail); } @@ -165,28 +165,28 @@ int BLI_split_name_num(char *left, int *nr, const char *name, const char delim) { int a; - *nr= 0; - a= strlen(name); + *nr = 0; + a = strlen(name); memcpy(left, name, (a + 1) * sizeof(char)); - if (a>1 && name[a-1]==delim) return a; + if (a > 1 && name[a - 1] == delim) return a; while (a--) { - if ( name[a]==delim ) { - left[a]= 0; - *nr= atol(name+a+1); + if (name[a] == delim) { + left[a] = 0; + *nr = atol(name + a + 1); /* casting down to an int, can overflow for large numbers */ if (*nr < 0) - *nr= 0; + *nr = 0; return a; } - if ( isdigit(name[a])==0 ) break; + if (isdigit(name[a]) == 0) break; - left[a]= 0; + left[a] = 0; } - for (a= 0; name[a]; a++) - left[a]= name[a]; + for (a = 0; name[a]; a++) + left[a] = name[a]; return a; } @@ -209,7 +209,7 @@ void BLI_newname(char *name, int add) pic += add; - if (digits==4 && pic<0) pic= 0; + if (digits == 4 && pic < 0) pic = 0; BLI_stringenc(name, head, tail, digits, pic); } @@ -222,13 +222,13 @@ int BLI_uniquename_cb(int (*unique_check)(void *, const char *), void *arg, cons } if (unique_check(arg, name)) { - char numstr[16]; - char tempname[UNIQUE_NAME_MAX]; - char left[UNIQUE_NAME_MAX]; - int number; - int len= BLI_split_name_num(left, &number, name, delim); + char numstr[16]; + char tempname[UNIQUE_NAME_MAX]; + char left[UNIQUE_NAME_MAX]; + int number; + int len = BLI_split_name_num(left, &number, name, delim); do { - int numlen= BLI_snprintf(numstr, sizeof(numstr), "%c%03d", delim, ++number); + int numlen = BLI_snprintf(numstr, sizeof(numstr), "%c%03d", delim, ++number); /* highly unlikely the string only has enough room for the number * but support anyway */ @@ -238,7 +238,7 @@ int BLI_uniquename_cb(int (*unique_check)(void *, const char *), void *arg, cons } else { char *tempname_buf; - tempname[0]= '\0'; + tempname[0] = '\0'; tempname_buf = BLI_strncat_utf8(tempname, left, name_len - numlen); memcpy(tempname_buf, numstr, numlen + 1); } @@ -254,7 +254,7 @@ int BLI_uniquename_cb(int (*unique_check)(void *, const char *), void *arg, cons /* little helper macro for BLI_uniquename */ #ifndef GIVE_STRADDR - #define GIVE_STRADDR(data, offset) ( ((char *)data) + offset ) + #define GIVE_STRADDR(data, offset) ( ((char *)data) + offset) #endif /* Generic function to set a unique name. It is only designed to be used in situations @@ -262,16 +262,16 @@ int BLI_uniquename_cb(int (*unique_check)(void *, const char *), void *arg, cons * * For places where this is used, see constraint.c for example... * - * name_offs: should be calculated using offsetof(structname, membername) macro from stddef.h - * len: maximum length of string (to prevent overflows, etc.) - * defname: the name that should be used by default if none is specified already - * delim: the character which acts as a delimiter between parts of the name + * name_offs: should be calculated using offsetof(structname, membername) macro from stddef.h + * len: maximum length of string (to prevent overflows, etc.) + * defname: the name that should be used by default if none is specified already + * delim: the character which acts as a delimiter between parts of the name */ static int uniquename_find_dupe(ListBase *list, void *vlink, const char *name, short name_offs) { Link *link; - for (link = list->first; link; link= link->next) { + for (link = list->first; link; link = link->next) { if (link != vlink) { if (!strcmp(GIVE_STRADDR(link, name_offs), name)) { return 1; @@ -284,16 +284,16 @@ static int uniquename_find_dupe(ListBase *list, void *vlink, const char *name, s static int uniquename_unique_check(void *arg, const char *name) { - struct {ListBase *lb; void *vlink; short name_offs;} *data= arg; + struct {ListBase *lb; void *vlink; short name_offs; } *data = arg; return uniquename_find_dupe(data->lb, data->vlink, name, data->name_offs); } void BLI_uniquename(ListBase *list, void *vlink, const char defname[], char delim, short name_offs, short name_len) { - struct {ListBase *lb; void *vlink; short name_offs;} data; - data.lb= list; - data.vlink= vlink; - data.name_offs= name_offs; + struct {ListBase *lb; void *vlink; short name_offs; } data; + data.lb = list; + data.vlink = vlink; + data.name_offs = name_offs; assert((name_len > 1) && (name_len <= UNIQUE_NAME_MAX)); @@ -324,11 +324,11 @@ void BLI_cleanup_path(const char *relabase, char *dir) BLI_path_abs(dir, relabase); } else { - if (dir[0]=='/' && dir[1]=='/') { - if (dir[2]== '\0') { + if (dir[0] == '/' && dir[1] == '/') { + if (dir[2] == '\0') { return; /* path is "//" - cant clean it */ } - dir = dir+2; /* skip the first // */ + dir = dir + 2; /* skip the first // */ } } @@ -344,19 +344,19 @@ void BLI_cleanup_path(const char *relabase, char *dir) /* Note, this should really be moved to the file selector, * since this function is used in many areas */ - if (strcmp(dir, ".")==0) { /* happens for example in FILE_MAIN */ + if (strcmp(dir, ".") == 0) { /* happens for example in FILE_MAIN */ get_default_root(dir); return; } while ( (start = strstr(dir, "\\..\\")) ) { eind = start + strlen("\\..\\") - 1; - a = start-dir-1; - while (a>0) { + a = start - dir - 1; + while (a > 0) { if (dir[a] == '\\') break; a--; } - if (a<0) { + if (a < 0) { break; } else { @@ -369,36 +369,36 @@ void BLI_cleanup_path(const char *relabase, char *dir) memmove(start, eind, strlen(eind) + 1); } - while ( (start = strstr(dir, "\\\\" )) ) { + while ( (start = strstr(dir, "\\\\")) ) { eind = start + strlen("\\\\") - 1; memmove(start, eind, strlen(eind) + 1); } #else - if (dir[0]=='.') { /* happens, for example in FILE_MAIN */ - dir[0]= '/'; - dir[1]= 0; + if (dir[0] == '.') { /* happens, for example in FILE_MAIN */ + dir[0] = '/'; + dir[1] = 0; return; } /* support for odd paths: eg /../home/me --> /home/me * this is a valid path in blender but we cant handle this the usual way below * simply strip this prefix then evaluate the path as usual. pythons os.path.normpath() does this */ - while ((strncmp(dir, "/../", 4)==0)) { + while ((strncmp(dir, "/../", 4) == 0)) { memmove(dir, dir + 4, strlen(dir + 4) + 1); } while ( (start = strstr(dir, "/../")) ) { eind = start + (4 - 1) /* strlen("/../") - 1 */; - a = start-dir-1; - while (a>0) { + a = start - dir - 1; + while (a > 0) { if (dir[a] == '/') break; a--; } - if (a<0) { + if (a < 0) { break; } else { - memmove(dir+a, eind, strlen(eind) + 1); + memmove(dir + a, eind, strlen(eind) + 1); } } @@ -407,7 +407,7 @@ void BLI_cleanup_path(const char *relabase, char *dir) memmove(start, eind, strlen(eind) + 1); } - while ( (start = strstr(dir, "//" )) ) { + while ( (start = strstr(dir, "//")) ) { eind = start + (2 - 1) /* strlen("//") - 1 */; memmove(start, eind, strlen(eind) + 1); } @@ -429,19 +429,19 @@ void BLI_cleanup_file(const char *relabase, char *dir) void BLI_path_rel(char *file, const char *relfile) { - char * lslash; + char *lslash; char temp[FILE_MAX]; char res[FILE_MAX]; /* if file is already relative, bail out */ - if (file[0]=='/' && file[1]=='/') return; + if (file[0] == '/' && file[1] == '/') return; /* also bail out if relative path is not set */ if (relfile[0] == 0) return; #ifdef WIN32 if (BLI_strnlen(relfile, 3) > 2 && relfile[1] != ':') { - char* ptemp; + char *ptemp; /* fix missing volume name in relative base, * can happen with old recent-files.txt files */ get_default_root(temp); @@ -449,14 +449,14 @@ void BLI_path_rel(char *file, const char *relfile) if (relfile[0] != '\\' && relfile[0] != '/') { ptemp++; } - BLI_strncpy(ptemp, relfile, FILE_MAX-3); + BLI_strncpy(ptemp, relfile, FILE_MAX - 3); } else { BLI_strncpy(temp, relfile, FILE_MAX); } if (BLI_strnlen(file, 3) > 2) { - if ( temp[1] == ':' && file[1] == ':' && temp[0] != file[0] ) + if (temp[1] == ':' && file[1] == ':' && temp[0] != file[0]) return; } #else @@ -476,8 +476,8 @@ void BLI_path_rel(char *file, const char *relfile) if (lslash) { /* find the prefix of the filename that is equal for both filenames. * This is replaced by the two slashes at the beginning */ - char *p= temp; - char *q= file; + char *p = temp; + char *q = file; #ifdef WIN32 while (tolower(*p) == tolower(*q)) @@ -490,7 +490,7 @@ void BLI_path_rel(char *file, const char *relfile) /* don't search beyond the end of the string * in the rare case they match */ - if ((*p=='\0') || (*q=='\0')) { + if ((*p == '\0') || (*q == '\0')) { break; } } @@ -505,23 +505,23 @@ void BLI_path_rel(char *file, const char *relfile) while ( (p >= temp) && (*p != '/') ) { --p; --q; } } - strcpy(res, "//"); + strcpy(res, "//"); /* p now points to the slash that is at the beginning of the part * where the path is different from the relative path. * We count the number of directories we need to go up in the * hierarchy to arrive at the common 'prefix' of the path */ - while (p && p < lslash) { + while (p && p < lslash) { if (*p == '/') - strcat(res, "../"); + strcat(res, "../"); p++; } - strcat(res, q+1); /* don't copy the slash at the beginning */ + strcat(res, q + 1); /* don't copy the slash at the beginning */ -#ifdef WIN32 - BLI_char_switch(res+2, '/', '\\'); +#ifdef WIN32 + BLI_char_switch(res + 2, '/', '\\'); #endif strcpy(file, res); } @@ -534,7 +534,7 @@ int BLI_has_parent(char *path) BLI_clean(path); len = BLI_add_slash(path) - 1; - while (len>=0) { + while (len >= 0) { if ((path[len] == '\\') || (path[len] == '/')) slashes++; len--; @@ -544,9 +544,9 @@ int BLI_has_parent(char *path) int BLI_parent_dir(char *path) { - static char parent_dir[]= {'.', '.', SEP, '\0'}; /* "../" or "..\\" */ - char tmp[FILE_MAX+4]; - BLI_strncpy(tmp, path, sizeof(tmp)-4); + static char parent_dir[] = {'.', '.', SEP, '\0'}; /* "../" or "..\\" */ + char tmp[FILE_MAX + 4]; + BLI_strncpy(tmp, path, sizeof(tmp) - 4); BLI_add_slash(tmp); strcat(tmp, parent_dir); BLI_cleanup_dir(NULL, tmp); @@ -571,42 +571,42 @@ static int stringframe_chars(char *path, int *char_start, int *char_end) } else if (path[i] == '#') { ch_sta = i; - ch_end = ch_sta+1; + ch_end = ch_sta + 1; while (path[ch_end] == '#') { ch_end++; } - i = ch_end-1; /* keep searching */ + i = ch_end - 1; /* keep searching */ /* don't break, there may be a slash after this that invalidates the previous #'s */ } } if (ch_end) { - *char_start= ch_sta; - *char_end= ch_end; + *char_start = ch_sta; + *char_end = ch_end; return 1; } else { - *char_start= -1; - *char_end= -1; + *char_start = -1; + *char_end = -1; return 0; } } static void ensure_digits(char *path, int digits) { - char *file= BLI_last_slash(path); + char *file = BLI_last_slash(path); - if (file==NULL) - file= path; + if (file == NULL) + file = path; if (strrchr(file, '#') == NULL) { - int len= strlen(file); + int len = strlen(file); while (digits--) { - file[len++]= '#'; + file[len++] = '#'; } - file[len]= '\0'; + file[len] = '\0'; } } @@ -619,7 +619,7 @@ int BLI_path_frame(char *path, int frame, int digits) if (stringframe_chars(path, &ch_sta, &ch_end)) { /* warning, ch_end is the last # +1 */ char tmp[FILE_MAX]; - sprintf(tmp, "%.*s%.*d%s", ch_sta, path, ch_end-ch_sta, frame, path+ch_end); + sprintf(tmp, "%.*s%.*d%s", ch_sta, path, ch_end - ch_sta, frame, path + ch_end); strcpy(path, tmp); return 1; } @@ -637,7 +637,7 @@ int BLI_path_frame_range(char *path, int sta, int end, int digits) char tmp[FILE_MAX]; BLI_snprintf(tmp, sizeof(tmp), "%.*s%.*d-%.*d%s", - ch_sta, path, ch_end-ch_sta, sta, ch_end-ch_sta, end, path+ch_end); + ch_sta, path, ch_end - ch_sta, sta, ch_end - ch_sta, end, path + ch_end); BLI_strncpy(path, tmp, FILE_MAX); return 1; } @@ -646,7 +646,7 @@ int BLI_path_frame_range(char *path, int sta, int end, int digits) int BLI_path_abs(char *path, const char *basepath) { - int wasrelative = (strncmp(path, "//", 2)==0); + int wasrelative = (strncmp(path, "//", 2) == 0); char tmp[FILE_MAX]; char base[FILE_MAX]; #ifdef WIN32 @@ -679,7 +679,7 @@ int BLI_path_abs(char *path, const char *basepath) * Add a / prefix and lowercase the driveletter, remove the : * C:\foo.JPG -> /c/foo.JPG */ - if (isalpha(tmp[0]) && tmp[1] == ':' && (tmp[2]=='\\' || tmp[2]=='/') ) { + if (isalpha(tmp[0]) && tmp[1] == ':' && (tmp[2] == '\\' || tmp[2] == '/') ) { tmp[1] = tolower(tmp[0]); /* replace ':' with driveletter */ tmp[0] = '/'; /* '\' the slash will be converted later */ @@ -704,18 +704,18 @@ int BLI_path_abs(char *path, const char *basepath) /* Paths starting with // will get the blend file as their base, * this isn't standard in any os but is used in blender all over the place */ if (wasrelative) { - char *lslash= BLI_last_slash(base); + char *lslash = BLI_last_slash(base); if (lslash) { - int baselen= (int) (lslash-base) + 1; + int baselen = (int) (lslash - base) + 1; /* use path for temp storage here, we copy back over it right away */ - BLI_strncpy(path, tmp+2, FILE_MAX); + BLI_strncpy(path, tmp + 2, FILE_MAX); memcpy(tmp, base, baselen); - BLI_strncpy(tmp+baselen, path, sizeof(tmp)-baselen); + BLI_strncpy(tmp + baselen, path, sizeof(tmp) - baselen); BLI_strncpy(path, tmp, FILE_MAX); } else { - BLI_strncpy(path, tmp+2, FILE_MAX); + BLI_strncpy(path, tmp + 2, FILE_MAX); } } else { @@ -731,7 +731,7 @@ int BLI_path_abs(char *path, const char *basepath) * // will be retained, rest will be nice and * shiny win32 backward slashes :) -jesterKing */ - BLI_char_switch(path+2, '/', '\\'); + BLI_char_switch(path + 2, '/', '\\'); #endif return wasrelative; @@ -755,8 +755,8 @@ int BLI_path_cwd(char *path) wasrelative = 0; #endif - if (wasrelative==1) { - char cwd[FILE_MAX]= ""; + if (wasrelative == 1) { + char cwd[FILE_MAX] = ""; BLI_current_working_dir(cwd, sizeof(cwd)); /* in case the full path to the blend isn't used */ if (cwd[0] == '\0') { @@ -784,19 +784,19 @@ int BLI_path_cwd(char *path) /* 'di's filename component is moved into 'fi', di is made a dir path */ void BLI_splitdirstring(char *di, char *fi) { - char *lslash= BLI_last_slash(di); + char *lslash = BLI_last_slash(di); if (lslash) { - BLI_strncpy(fi, lslash+1, FILE_MAXFILE); - *(lslash+1)=0; + BLI_strncpy(fi, lslash + 1, FILE_MAXFILE); + *(lslash + 1) = 0; } else { BLI_strncpy(fi, di, FILE_MAXFILE); - di[0]= 0; + di[0] = 0; } } -void BLI_getlastdir(const char* dir, char *last, const size_t maxlen) +void BLI_getlastdir(const char *dir, char *last, const size_t maxlen) { const char *s = dir; const char *lslash = NULL; @@ -809,7 +809,7 @@ void BLI_getlastdir(const char* dir, char *last, const size_t maxlen) s++; } if (prevslash) { - BLI_strncpy(last, prevslash+1, maxlen); + BLI_strncpy(last, prevslash + 1, maxlen); } else { BLI_strncpy(last, dir, maxlen); @@ -824,35 +824,35 @@ const char *BLI_getDefaultDocumentFolder(void) #ifndef WIN32 #ifdef WITH_XDG_USER_DIRS - const char *xdg_documents_dir= getenv("XDG_DOCUMENTS_DIR"); - if (xdg_documents_dir) { - return xdg_documents_dir; - } + const char *xdg_documents_dir = getenv("XDG_DOCUMENTS_DIR"); + if (xdg_documents_dir) { + return xdg_documents_dir; + } #endif - return getenv("HOME"); + return getenv("HOME"); #else /* Windows */ - static char documentfolder[MAXPATHLEN]; - HRESULT hResult; + static char documentfolder[MAXPATHLEN]; + HRESULT hResult; - /* Check for %HOME% env var */ - if (uput_getenv("HOME", documentfolder, MAXPATHLEN)) { - if (BLI_is_dir(documentfolder)) return documentfolder; - } + /* Check for %HOME% env var */ + if (uput_getenv("HOME", documentfolder, MAXPATHLEN)) { + if (BLI_is_dir(documentfolder)) return documentfolder; + } - /* add user profile support for WIN 2K / NT. - * This is %APPDATA%, which translates to either - * %USERPROFILE%\Application Data or since Vista - * to %USERPROFILE%\AppData\Roaming - */ - hResult = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, documentfolder); + /* add user profile support for WIN 2K / NT. + * This is %APPDATA%, which translates to either + * %USERPROFILE%\Application Data or since Vista + * to %USERPROFILE%\AppData\Roaming + */ + hResult = SHGetFolderPath(NULL, CSIDL_PERSONAL, NULL, SHGFP_TYPE_CURRENT, documentfolder); - if (hResult == S_OK) { - if (BLI_is_dir(documentfolder)) return documentfolder; - } + if (hResult == S_OK) { + if (BLI_is_dir(documentfolder)) return documentfolder; + } - return NULL; + return NULL; #endif /* WIN32 */ } @@ -865,7 +865,7 @@ const char *BLI_getDefaultDocumentFolder(void) static char *blender_version_decimal(const int ver) { static char version_str[5]; - sprintf(version_str, "%d.%02d", ver/100, ver%100); + sprintf(version_str, "%d.%02d", ver / 100, ver % 100); return version_str; } @@ -873,8 +873,8 @@ static int test_path(char *targetpath, const char *path_base, const char *path_s { char tmppath[FILE_MAX]; - if (path_sep) BLI_join_dirfile(tmppath, sizeof(tmppath), path_base, path_sep); - else BLI_strncpy(tmppath, path_base, sizeof(tmppath)); + if (path_sep) BLI_join_dirfile(tmppath, sizeof(tmppath), path_base, path_sep); + else BLI_strncpy(tmppath, path_base, sizeof(tmppath)); /* rare cases folder_name is omitted (when looking for ~/.blender/2.xx dir only) */ if (folder_name) @@ -899,7 +899,7 @@ static int test_path(char *targetpath, const char *path_base, const char *path_s static int test_env_path(char *path, const char *envvar) { - const char *env = envvar?getenv(envvar):NULL; + const char *env = envvar ? getenv(envvar) : NULL; if (!env) return 0; if (BLI_is_dir(env)) { @@ -929,7 +929,7 @@ static int get_path_local(char *targetpath, const char *folder_name, const char } } else { - relfolder[0]= '\0'; + relfolder[0] = '\0'; } /* try EXECUTABLE_DIR/2.5x/folder_name - new default directory for local blender installed files */ @@ -942,7 +942,7 @@ static int get_path_local(char *targetpath, const char *folder_name, const char static int is_portable_install(void) { /* detect portable install by the existance of config folder */ - const int ver= BLENDER_VERSION; + const int ver = BLENDER_VERSION; char path[FILE_MAX]; return get_path_local(path, "config", NULL, ver); @@ -1011,7 +1011,7 @@ static int get_path_system(char *targetpath, const char *folder_name, const char } } else { - relfolder[0]= '\0'; + relfolder[0] = '\0'; } /* try CWD/release/folder_name */ @@ -1066,27 +1066,27 @@ static int get_path_system(char *targetpath, const char *folder_name, const char /* returns the path if found, NULL string if not */ char *BLI_get_folder(int folder_id, const char *subfolder) { - const int ver= BLENDER_VERSION; + const int ver = BLENDER_VERSION; static char path[FILE_MAX] = ""; switch (folder_id) { - case BLENDER_DATAFILES: /* general case */ - if (get_path_user(path, "datafiles", subfolder, "BLENDER_USER_DATAFILES", ver)) break; + case BLENDER_DATAFILES: /* general case */ + if (get_path_user(path, "datafiles", subfolder, "BLENDER_USER_DATAFILES", ver)) break; if (get_path_local(path, "datafiles", subfolder, ver)) break; if (get_path_system(path, "datafiles", subfolder, "BLENDER_SYSTEM_DATAFILES", ver)) break; return NULL; case BLENDER_USER_DATAFILES: - if (get_path_user(path, "datafiles", subfolder, "BLENDER_USER_DATAFILES", ver)) break; + if (get_path_user(path, "datafiles", subfolder, "BLENDER_USER_DATAFILES", ver)) break; return NULL; case BLENDER_SYSTEM_DATAFILES: if (get_path_local(path, "datafiles", subfolder, ver)) break; - if (get_path_system(path, "datafiles", subfolder, "BLENDER_SYSTEM_DATAFILES", ver)) break; + if (get_path_system(path, "datafiles", subfolder, "BLENDER_SYSTEM_DATAFILES", ver)) break; return NULL; case BLENDER_USER_AUTOSAVE: - if (get_path_user(path, "autosave", subfolder, "BLENDER_USER_DATAFILES", ver)) break; + if (get_path_user(path, "autosave", subfolder, "BLENDER_USER_DATAFILES", ver)) break; return NULL; case BLENDER_USER_CONFIG: @@ -1113,7 +1113,7 @@ char *BLI_get_folder(int folder_id, const char *subfolder) char *BLI_get_user_folder_notest(int folder_id, const char *subfolder) { - const int ver= BLENDER_VERSION; + const int ver = BLENDER_VERSION; static char path[FILE_MAX] = ""; switch (folder_id) { @@ -1159,19 +1159,19 @@ char *BLI_get_folder_version(const int id, const int ver, const int do_check) static char path[FILE_MAX] = ""; int ok; switch (id) { - case BLENDER_RESOURCE_PATH_USER: - ok= get_path_user(path, NULL, NULL, NULL, ver); - break; - case BLENDER_RESOURCE_PATH_LOCAL: - ok= get_path_local(path, NULL, NULL, ver); - break; - case BLENDER_RESOURCE_PATH_SYSTEM: - ok= get_path_system(path, NULL, NULL, NULL, ver); - break; - default: - path[0]= '\0'; /* in case do_check is false */ - ok= FALSE; - BLI_assert(!"incorrect ID"); + case BLENDER_RESOURCE_PATH_USER: + ok = get_path_user(path, NULL, NULL, NULL, ver); + break; + case BLENDER_RESOURCE_PATH_LOCAL: + ok = get_path_local(path, NULL, NULL, ver); + break; + case BLENDER_RESOURCE_PATH_SYSTEM: + ok = get_path_system(path, NULL, NULL, NULL, ver); + break; + default: + path[0] = '\0'; /* in case do_check is false */ + ok = FALSE; + BLI_assert(!"incorrect ID"); } if ((ok == FALSE) && do_check) { @@ -1191,11 +1191,11 @@ char *BLI_get_folder_version(const int id, const int ver, const int do_check) #undef PATH_DEBUG #endif -void BLI_setenv(const char *env, const char*val) +void BLI_setenv(const char *env, const char *val) { /* free windows */ #if (defined(WIN32) || defined(WIN64)) && defined(FREE_WINDOWS) - char *envstr= MEM_mallocN(sizeof(char) * (strlen(env) + strlen(val) + 2), "envstr"); /* one for = another for \0 */ + char *envstr = MEM_mallocN(sizeof(char) * (strlen(env) + strlen(val) + 2), "envstr"); /* one for = another for \0 */ sprintf(envstr, "%s=%s", env, val); putenv(envstr); @@ -1217,7 +1217,7 @@ void BLI_setenv(const char *env, const char*val) * Only set an env var if already not there. * Like Unix setenv(env, val, 0); */ -void BLI_setenv_if_new(const char *env, const char* val) +void BLI_setenv_if_new(const char *env, const char *val) { if (getenv(env) == NULL) BLI_setenv(env, val); @@ -1226,11 +1226,11 @@ void BLI_setenv_if_new(const char *env, const char* val) void BLI_clean(char *path) { - if (path==NULL) return; + if (path == NULL) return; #ifdef WIN32 if (path && BLI_strnlen(path, 3) > 2) { - BLI_char_switch(path+2, '/', '\\'); + BLI_char_switch(path + 2, '/', '\\'); } #else BLI_char_switch(path, '\\', '/'); @@ -1239,7 +1239,7 @@ void BLI_clean(char *path) void BLI_char_switch(char *string, char from, char to) { - if (string==NULL) return; + if (string == NULL) return; while (*string != 0) { if (*string == from) *string = to; string++; @@ -1255,13 +1255,13 @@ void BLI_make_exist(char *dir) a = strlen(dir); while (BLI_is_dir(dir) == 0) { - a --; + a--; while (dir[a] != SEP) { a--; if (a <= 0) break; } if (a >= 0) { - dir[a+1] = '\0'; + dir[a + 1] = '\0'; } else { #ifdef WIN32 @@ -1294,7 +1294,7 @@ void BLI_make_file_string(const char *relabase, char *string, const char *dir, if (string) { /* ensure this is always set even if dir/file are NULL */ - string[0]= '\0'; + string[0] = '\0'; if (ELEM(NULL, dir, file)) { return; /* We don't want any NULLs */ @@ -1321,20 +1321,20 @@ void BLI_make_file_string(const char *relabase, char *string, const char *dir, /* Get the file name, chop everything past the last slash (ie. the filename) */ strcpy(string, relabase); - lslash= BLI_last_slash(string); - if (lslash) *(lslash+1)= 0; + lslash = BLI_last_slash(string); + if (lslash) *(lslash + 1) = 0; - dir+=2; /* Skip over the relative reference */ + dir += 2; /* Skip over the relative reference */ } #ifdef WIN32 else { - if (BLI_strnlen(dir, 3) >= 2 && dir[1] == ':' ) { + if (BLI_strnlen(dir, 3) >= 2 && dir[1] == ':') { BLI_strncpy(string, dir, 3); dir += 2; } else { /* no drive specified */ - /* first option: get the drive from the relabase if it has one */ - if (relabase && strlen(relabase) >= 2 && relabase[1] == ':' ) { + /* first option: get the drive from the relabase if it has one */ + if (relabase && strlen(relabase) >= 2 && relabase[1] == ':') { BLI_strncpy(string, relabase, 3); string[2] = '\\'; string[3] = '\0'; @@ -1354,8 +1354,8 @@ void BLI_make_file_string(const char *relabase, char *string, const char *dir, /* Make sure string ends in one (and only one) slash */ /* first trim all slashes from the end of the string */ sl = strlen(string); - while (sl>0 && ( string[sl-1] == '/' || string[sl-1] == '\\') ) { - string[sl-1] = '\0'; + while (sl > 0 && (string[sl - 1] == '/' || string[sl - 1] == '\\') ) { + string[sl - 1] = '\0'; sl--; } /* since we've now removed all slashes, put back one slash at the end. */ @@ -1364,7 +1364,7 @@ void BLI_make_file_string(const char *relabase, char *string, const char *dir, while (*file && (*file == '/' || *file == '\\')) /* Trim slashes from the front of file */ file++; - strcat (string, file); + strcat(string, file); /* Push all slashes to the system preferred direction */ BLI_clean(string); @@ -1375,10 +1375,10 @@ int BLI_testextensie(const char *str, const char *ext) short a, b; int retval; - a= strlen(str); - b= strlen(ext); + a = strlen(str); + b = strlen(ext); - if (a==0 || b==0 || b>=a) { + if (a == 0 || b == 0 || b >= a) { retval = 0; } else if (BLI_strcasecmp(ext, str + a - b)) { @@ -1393,7 +1393,7 @@ int BLI_testextensie(const char *str, const char *ext) int BLI_testextensie_array(const char *str, const char **ext_array) { - int i=0; + int i = 0; while (ext_array[i]) { if (BLI_testextensie(str, ext_array[i])) { return 1; @@ -1408,23 +1408,23 @@ int BLI_testextensie_array(const char *str, const char **ext_array) * '*.zip;*.py;*.exe' */ int BLI_testextensie_glob(const char *str, const char *ext_fnmatch) { - const char *ext_step= ext_fnmatch; + const char *ext_step = ext_fnmatch; char pattern[16]; while (ext_step[0]) { char *ext_next; int len_ext; - if ((ext_next=strchr(ext_step, ';'))) { - len_ext= (int)(ext_next - ext_step) + 1; + if ((ext_next = strchr(ext_step, ';'))) { + len_ext = (int)(ext_next - ext_step) + 1; } else { - len_ext= sizeof(pattern); + len_ext = sizeof(pattern); } BLI_strncpy(pattern, ext_step, len_ext); - if (fnmatch(pattern, str, FNM_CASEFOLD)==0) { + if (fnmatch(pattern, str, FNM_CASEFOLD) == 0) { return 1; } ext_step += len_ext; @@ -1436,32 +1436,32 @@ int BLI_testextensie_glob(const char *str, const char *ext_fnmatch) int BLI_replace_extension(char *path, size_t maxlen, const char *ext) { - size_t path_len= strlen(path); - size_t ext_len= strlen(ext); + size_t path_len = strlen(path); + size_t ext_len = strlen(ext); ssize_t a; - for (a= path_len - 1; a >= 0; a--) { + for (a = path_len - 1; a >= 0; a--) { if (ELEM3(path[a], '.', '/', '\\')) { break; } } if ((a < 0) || (path[a] != '.')) { - a= path_len; + a = path_len; } if (a + ext_len >= maxlen) return 0; - memcpy(path+a, ext, ext_len + 1); + memcpy(path + a, ext, ext_len + 1); return 1; } /* strip's trailing '.'s and adds the extension only when needed */ int BLI_ensure_extension(char *path, size_t maxlen, const char *ext) { - size_t path_len= strlen(path); - size_t ext_len= strlen(ext); + size_t path_len = strlen(path); + size_t ext_len = strlen(ext); ssize_t a; /* first check the extension is alread there */ @@ -1471,9 +1471,9 @@ int BLI_ensure_extension(char *path, size_t maxlen, const char *ext) return 1; } - for (a= path_len - 1; a >= 0; a--) { + for (a = path_len - 1; a >= 0; a--) { if (path[a] == '.') { - path[a]= '\0'; + path[a] = '\0'; } else { break; @@ -1484,7 +1484,7 @@ int BLI_ensure_extension(char *path, size_t maxlen, const char *ext) if (a + ext_len >= maxlen) return 0; - memcpy(path+a, ext, ext_len + 1); + memcpy(path + a, ext, ext_len + 1); return 1; } @@ -1497,7 +1497,7 @@ int BLI_ensure_extension(char *path, size_t maxlen, const char *ext) void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t dirlen, const size_t filelen) { char *lslash_str = BLI_last_slash(string); - size_t lslash= lslash_str ? (size_t)(lslash_str - string) + 1 : 0; + size_t lslash = lslash_str ? (size_t)(lslash_str - string) + 1 : 0; if (dir) { if (lslash) { @@ -1509,7 +1509,7 @@ void BLI_split_dirfile(const char *string, char *dir, char *file, const size_t d } if (file) { - BLI_strncpy(file, string+lslash, filelen); + BLI_strncpy(file, string + lslash, filelen); } } @@ -1526,12 +1526,12 @@ void BLI_split_file_part(const char *string, char *file, const size_t filelen) /* simple appending of filename to dir, does not check for valid path! */ void BLI_join_dirfile(char *dst, const size_t maxlen, const char *dir, const char *file) { - size_t dirlen= BLI_strnlen(dir, maxlen); + size_t dirlen = BLI_strnlen(dir, maxlen); if (dst != dir) { if (dirlen == maxlen) { memcpy(dst, dir, dirlen); - dst[dirlen - 1]= '\0'; + dst[dirlen - 1] = '\0'; return; /* dir fills the path */ } else { @@ -1546,7 +1546,7 @@ void BLI_join_dirfile(char *dst, const size_t maxlen, const char *dir, const cha /* inline BLI_add_slash */ if ((dirlen > 0) && (dst[dirlen - 1] != SEP)) { dst[dirlen++] = SEP; - dst[dirlen ] = '\0'; + dst[dirlen] = '\0'; } if (dirlen >= maxlen) { @@ -1563,7 +1563,7 @@ void BLI_join_dirfile(char *dst, const size_t maxlen, const char *dir, const cha /* like pythons os.path.basename( ) */ char *BLI_path_basename(char *path) { - char *filename= BLI_last_slash(path); + char *filename = BLI_last_slash(path); return filename ? filename + 1 : path; } @@ -1598,20 +1598,20 @@ int BKE_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const char path[FILE_MAX]; char dir[FILE_MAX]; char base[FILE_MAX]; - char blend_dir[FILE_MAX]; /* directory, where current .blend file resides */ + char blend_dir[FILE_MAX]; /* directory, where current .blend file resides */ char dest_path[FILE_MAX]; char rel_dir[FILE_MAX]; int len; if (abs) - abs[0]= 0; + abs[0] = 0; if (rel) - rel[0]= 0; + rel[0] = 0; BLI_split_dir_part(base_dir, blend_dir, sizeof(blend_dir)); - if (src_dir[0]=='\0') + if (src_dir[0] == '\0') return 0; BLI_strncpy(path, src_dir, sizeof(path)); @@ -1622,7 +1622,7 @@ int BKE_rebase_path(char *abs, size_t abs_len, char *rel, size_t rel_len, const /* get the directory part */ BLI_split_dirfile(path, dir, base, sizeof(dir), sizeof(base)); - len= strlen(blend_dir); + len = strlen(blend_dir); rel_dir[0] = 0; @@ -1669,8 +1669,8 @@ char *BLI_first_slash(char *string) { char *ffslash, *fbslash; - ffslash= strchr(string, '/'); - fbslash= strchr(string, '\\'); + ffslash = strchr(string, '/'); + fbslash = strchr(string, '\\'); if (!ffslash) return fbslash; else if (!fbslash) return ffslash; @@ -1683,8 +1683,8 @@ char *BLI_last_slash(const char *string) { char *lfslash, *lbslash; - lfslash= strrchr(string, '/'); - lbslash= strrchr(string, '\\'); + lfslash = strrchr(string, '/'); + lbslash = strrchr(string, '\\'); if (!lfslash) return lbslash; else if (!lbslash) return lfslash; @@ -1697,10 +1697,10 @@ char *BLI_last_slash(const char *string) int BLI_add_slash(char *string) { int len = strlen(string); - if (len==0 || string[len-1] != SEP) { + if (len == 0 || string[len - 1] != SEP) { string[len] = SEP; - string[len+1] = '\0'; - return len+1; + string[len + 1] = '\0'; + return len + 1; } return len; } @@ -1710,8 +1710,8 @@ void BLI_del_slash(char *string) { int len = strlen(string); while (len) { - if (string[len-1] == SEP) { - string[len-1] = '\0'; + if (string[len - 1] == SEP) { + string[len - 1] = '\0'; len--; } else { @@ -1747,7 +1747,7 @@ static int add_win32_extension(char *name) } type = BLI_exists(filename); - if (type && (! S_ISDIR(type))) { + if (type && (!S_ISDIR(type))) { retval = 1; strcpy(name, filename); break; @@ -1798,7 +1798,7 @@ static void bli_where_am_i(char *fullname, const size_t maxlen, const char *name #endif #ifdef _WIN32 - wchar_t * fullname_16 = MEM_mallocN(maxlen*sizeof(wchar_t), "ProgramPath"); + wchar_t *fullname_16 = MEM_mallocN(maxlen * sizeof(wchar_t), "ProgramPath"); if (GetModuleFileNameW(0, fullname_16, maxlen)) { conv_utf_16_to_8(fullname_16, fullname, maxlen); if (!BLI_exists(fullname)) { @@ -1817,12 +1817,12 @@ static void bli_where_am_i(char *fullname, const size_t maxlen, const char *name BLI_strncpy(fullname, name, maxlen); if (name[0] == '.') { - char wdir[FILE_MAX]= ""; - BLI_current_working_dir(wdir, sizeof(wdir)); /* backup cwd to restore after */ + char wdir[FILE_MAX] = ""; + BLI_current_working_dir(wdir, sizeof(wdir)); /* backup cwd to restore after */ // not needed but avoids annoying /./ in name - if (name[1]==SEP) - BLI_join_dirfile(fullname, maxlen, wdir, name+2); + if (name[1] == SEP) + BLI_join_dirfile(fullname, maxlen, wdir, name + 2); else BLI_join_dirfile(fullname, maxlen, wdir, name); @@ -1955,22 +1955,22 @@ void BLI_system_temporary_dir(char *dir) void BLI_string_to_utf8(char *original, char *utf_8, const char *code) { - size_t inbytesleft=strlen(original); - size_t outbytesleft=512; - size_t rv=0; + size_t inbytesleft = strlen(original); + size_t outbytesleft = 512; + size_t rv = 0; iconv_t cd; if (NULL == code) { code = locale_charset(); } - cd=iconv_open("UTF-8", code); + cd = iconv_open("UTF-8", code); if (cd == (iconv_t)(-1)) { printf("iconv_open Error"); - *utf_8='\0'; + *utf_8 = '\0'; return; } - rv=iconv(cd, &original, &inbytesleft, &utf_8, &outbytesleft); + rv = iconv(cd, &original, &inbytesleft, &utf_8, &outbytesleft); if (rv == (size_t) -1) { printf("iconv Error\n"); return; @@ -1979,5 +1979,3 @@ void BLI_string_to_utf8(char *original, char *utf_8, const char *code) iconv_close(cd); } #endif // WITH_ICONV - - |