From 33c6d11947cc6299d7b6164b2e65563e38435c74 Mon Sep 17 00:00:00 2001 From: John Tsiombikas Date: Tue, 2 Aug 2016 07:47:19 +0300 Subject: [PATCH] fixed a couple of bugs --- src/fs.cc | 9 ++++++--- src/fspath.cc | 12 +++++++++--- 2 files changed, 15 insertions(+), 6 deletions(-) diff --git a/src/fs.cc b/src/fs.cc index a3e5b81..d6b5eeb 100644 --- a/src/fs.cc +++ b/src/fs.cc @@ -37,7 +37,9 @@ bool init_fs(const char *path) return false; } - cur_node = get_fsnode(path); + if(!(cur_node = get_fsnode(path))) { + return false; + } cur_node->expand(); return true; } @@ -50,6 +52,7 @@ void cleanup_fs() delete node; } node_cache.clear(); + dtx_close_font(fat_font); delete iconrend; } @@ -72,12 +75,12 @@ static float icon_angle(int col, int ncols, float max_angle = 0.0f) void draw_fs() { - static const float row_spacing = 2.0; + static const float row_spacing = 0.25; static const float radius = 0.6; static const float umax = 0.42; static const float max_icon_angle = M_PI * 2.0 * umax; - int max_ncols = std::max(1, umax * 16); + int max_ncols = std::max(1, umax * 12); Mat4 base_xform; base_xform.rotate(time_sec, 0, 0); diff --git a/src/fspath.cc b/src/fspath.cc index e6677bd..eb923d6 100644 --- a/src/fspath.cc +++ b/src/fspath.cc @@ -128,6 +128,8 @@ FSPath &FSPath::operator =(FSPath &&p) void FSPath::sanitize() { + printf("sanitize: \"%s\"\n", abs_path); + // first pass, convert and backslashes to slashes char *s = abs_path; while(*s) { @@ -163,8 +165,8 @@ void FSPath::sanitize() } assert(len == (int)strlen(abs_path)); - // remove trailing slash - if(abs_path[len - 1] == '/') { + // remove trailing slash if abs_path is not just a slash (root) + if(len > 1 && abs_path[len - 1] == '/') { abs_path[--len] = 0; } assert(len == (int)strlen(abs_path)); @@ -192,7 +194,11 @@ void FSPath::sanitize() parent = 0; // root dir has no parent } else { int plen = name - 1 - abs_path; - assert(plen > 0); + assert(plen >= 0); + + if(plen == 0) { + plen = 1; // our parent is root, so we need the slash + } parent = new char[plen + 1]; memcpy(parent, abs_path, plen); -- 1.7.10.4