Skip to content
Snippets Groups Projects
  1. Jun 07, 2021
    • Yorhel's avatar
      Add workaround for Zig bug on FreeBSD · d910ed8b
      Yorhel authored
      The good news is: apart from this little thing, everything seems to just
      work(tm) on FreeBSD. Think I had more trouble with C because of minor
      header file differences.
      d910ed8b
  2. May 29, 2021
    • Yorhel's avatar
      Improved error reporting + minor cleanup · 59ef5fd2
      Yorhel authored
      59ef5fd2
    • Yorhel's avatar
      Handle allocation failures · 23903088
      Yorhel authored
      In a similar way to the C version of ncdu: by wrapping malloc(). It's
      simpler to handle allocation failures at the source to allow for easy
      retries, pushing the retries up the stack will complicate code somewhat
      more. Likewise, this is a best-effort approach to handling OOM,
      allocation failures in ncurses aren't handled and display glitches may
      occur when we get an OOM inside a drawing function.
      
      This is a somewhat un-Zig-like way of handling errors and adds
      scary-looking 'catch unreachable's all over the code, but that's okay.
      23903088
    • Yorhel's avatar
      Implement JSON file import · c077c5be
      Yorhel authored
      Performance is looking great, but the code is rather ugly and
      potentially buggy. Also doesn't handle hard links without an "nlink"
      field yet.
      
      Error handling of the import code is different from what I've been doing
      until now. That's intentional, I'll change error handling of other
      pieces to call ui.die() directly rather than propagating error enums.
      The approach is less testable but conceptually simpler, it's perfectly
      fine for a tiny application like ncdu.
      c077c5be
  3. May 24, 2021
  4. May 23, 2021
    • Yorhel's avatar
      Implement all existing browsing display options + some fixes · 7b3ebf92
      Yorhel authored
      I plan to add more display options, but ran out of keys to bind.
      Probably going for a quick-select menu thingy so that we can keep the
      old key bindings for people accustomed to it.
      
      The graph width algorithm is slightly different, but I think this one's
      a minor improvement.
      7b3ebf92
  5. May 12, 2021
    • Yorhel's avatar
      Implement export to file · 231ab103
      Yorhel authored
      The exported file format is fully compatible with ncdu 1.x, but has a
      few minor differences. I've backported these changes in
      ca51d4ed
      231ab103
  6. May 09, 2021
  7. May 07, 2021
  8. May 06, 2021
    • Yorhel's avatar
      More UI stuff + shave off 16 bytes from model.Dir · 27cb599e
      Yorhel authored
      I initially wanted to keep a directory's block count and size as a
      separate field so that exporting an in-memory tree to a JSON dump would
      be easier to do, but that doesn't seem like a common operation to
      optimize for. We'll probably need the algorithms to subtract sub-items
      from directory counts anyway, so such an export can still be
      implemented, albeit slower.
      27cb599e
  9. May 05, 2021
  10. May 03, 2021
    • Yorhel's avatar
      Implement --exclude-kernfs and --exclude-pattern · a28a0788
      Yorhel authored
      Eaiser to implement now that we're linking against libc.
      
      But exclude pattern matching is extremely slow, so that should really be
      rewritten with a custom fnmatch implementation. It's exactly as slow as
      in ncdu 1.x as well, I'm surprised nobody's complained about it yet.
      And while I'm at it, supporting .gitignore-style patterns would be
      pretty neat, too.
      a28a0788
    • Yorhel's avatar
      Link to ncurses + some rudimentary TUI frameworky stuff · 826c2fc0
      Yorhel authored
      I tried playing with zbox (pure Zig termbox-like lib) for a bit, but I
      don't think I want to have to deal with the terminal support issues that
      will inevitably come with it. I already stumbled upon one myself: it
      doesn't properly put the terminal in a sensible state after cleanup in
      tmux. As much as I dislike ncurses, it /is/ ubiquitous and tends to kind
      of work.
      826c2fc0
Loading