From 4c8dfb375b4b30dbb6079f9d68024980d81ffa20 Mon Sep 17 00:00:00 2001 From: xolatile Date: Thu, 7 Aug 2025 00:32:29 +0200 Subject: More cleanups... --- src/shared/stream.cpp | 75 ++------------------------------------------------- 1 file changed, 2 insertions(+), 73 deletions(-) (limited to 'src/shared/stream.cpp') diff --git a/src/shared/stream.cpp b/src/shared/stream.cpp index 1878801..3a5c6e2 100644 --- a/src/shared/stream.cpp +++ b/src/shared/stream.cpp @@ -232,7 +232,6 @@ done: #include #include -string homedir = ""; struct packagedir { char *dir, *filter; size_t dirlen, filterlen; @@ -260,7 +259,6 @@ char *makerelpath(const char *dir, const char *file, const char *prefix, const c return tmp; } - char *path(char *s) { for(char *curpart = s;;) { char *endpart = strchr(curpart, '&'); @@ -330,75 +328,8 @@ bool createdir(const char *path) { return mkdir(path, 0777)==0; } -size_t fixpackagedir(char *dir) { - path(dir); - size_t len = strlen(dir); - if(len > 0 && dir[len-1] != PATHDIV) { - dir[len] = PATHDIV; - dir[len+1] = '\0'; - } - return len; -} - -bool subhomedir(char *dst, int len, const char *src) { - const char *sub = strstr(src, "$HOME"); - if(!sub) sub = strchr(src, '~'); - if(sub && sub-src < len) { - const char *home = getenv("HOME"); - if(!home || !home[0]) return false; - dst[sub-src] = '\0'; - concatstring(dst, home, len); - concatstring(dst, sub+(*sub == '~' ? 1 : strlen("$HOME")), len); - } - return true; -} - -const char *sethomedir(const char *dir) { - string pdir; - copystring(pdir, dir); - if(!subhomedir(pdir, sizeof(pdir), dir) || !fixpackagedir(pdir)) return NULL; - copystring(homedir, pdir); - return homedir; -} - -const char *addpackagedir(const char *dir) { - string pdir; - copystring(pdir, dir); - if(!subhomedir(pdir, sizeof(pdir), dir) || !fixpackagedir(pdir)) return NULL; - char *filter = pdir; - for(;;) { - static int len = strlen("packages"); - filter = strstr(filter, "packages"); - if(!filter) break; - if(filter > pdir && filter[-1] == PATHDIV && filter[len] == PATHDIV) break; - filter += len; - } - packagedir &pf = packagedirs.add(); - pf.dir = filter ? newstring(pdir, filter-pdir) : newstring(pdir); - pf.dirlen = filter ? filter-pdir : strlen(pdir); - pf.filter = filter ? newstring(filter) : NULL; - pf.filterlen = filter ? strlen(filter) : 0; - return pf.dir; -} - const char *findfile(const char *filename, const char *mode) { static string s; - if(homedir[0]) { - formatstring(s, "%s%s", homedir, filename); - if(fileexists(s, mode)) return s; - if(mode[0]=='w' || mode[0]=='a') { - string dirs; - copystring(dirs, s); - char *dir = strchr(dirs[0]==PATHDIV ? dirs+1 : dirs, PATHDIV); - while(dir) { - *dir = '\0'; - if(!fileexists(dirs, "d") && !createdir(dirs)) return s; - *dir = PATHDIV; - dir = strchr(dir+1, PATHDIV); - } - return s; - } - } if(mode[0]=='w' || mode[0]=='a') return filename; loopv(packagedirs) { packagedir &pf = packagedirs[i]; @@ -442,10 +373,8 @@ int listfiles(const char *dir, const char *ext, vector &files) { int dirs = 0; if(listdir(dirname, true, ext, files)) dirs++; string s; - if(homedir[0]) { - formatstring(s, "%s%s", homedir, dirname); - if(listdir(s, false, ext, files)) dirs++; - } + formatstring(s, "%s%s", ".", dirname); + if(listdir(s, false, ext, files)) dirs++; loopv(packagedirs) { packagedir &pf = packagedirs[i]; if(pf.filter && strncmp(dirname, pf.filter, dirlen == pf.filterlen-1 ? dirlen : pf.filterlen)) -- cgit v1.2.3