Skip to content
Snippets Groups Projects
  1. Jul 23, 2021
  2. Jul 22, 2021
  3. Jul 18, 2021
  4. Jul 16, 2021
  5. Jul 14, 2021
  6. Jul 13, 2021
    • Yorhel's avatar
      Implement directory refresh · 6c2ab500
      Yorhel authored
      This complicated the scan code more than I had anticipated and has a
      few inherent bugs with respect to calculating shared hardlink sizes.
      
      Still, the merge approach avoids creating a full copy of the subtree, so
      that's another memory usage related win compared to the C version.
      On the other hand, it does leak memory if nodes can't be reused.
      
      Not quite as well tested as I should have, so I'm sure there's bugs.
      6c2ab500
  7. Jul 06, 2021
    • Yorhel's avatar
      Add link path listing to information window · ff3e3bcc
      Yorhel authored
      Two differences compared to the C version:
      - You can now select individual paths in the listing, pressing enter
        will open the selected path in the browser window.
      - Creating this listing is much slower and requires, in the worst case,
        a full traversal through the in-memory tree. I've tested this without
        the same-dev and shared-parent optimizations (i.e. worst case) on an
        import with 30M files and performance was still quite acceptable - the
        listing completed in a second - so I didn't bother adding a loading
        indicator. On slower systems and even larger trees this may be a
        little annoying, though.
      
      (also, calling nonl() apparently breaks detection of the return key,
      neither \n nor KEY_ENTER are emitted for some reason)
      ff3e3bcc
  8. Jun 11, 2021
    • Yorhel's avatar
      Add item info window · 618972b8
      Yorhel authored
      Doesn't display the item's path anymore (seems rather redundant) but
      adds a few more other fields.
      618972b8
  9. May 30, 2021
  10. May 29, 2021
    • 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
  11. 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
  12. 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
  13. May 11, 2021
  14. May 09, 2021
  15. May 08, 2021
Loading