No description
Find a file
Torbjörn Lönnemark d6728bca95 Fix incorrect format string causing invalid export files
Zig requires alignment to be specified when specifying a fill character,
as otherwise digits specified after ':' are interpreted as part of the
field width.

The missing alignment specifier caused character codes < 0x10 to be
serialized incorrectly, producing an export file ncdu could not import.

For example, a character with code 1 would be serialized as '\u00 1'
instead of '\u0001'.

A directory of test files can be generated using:

    mkdir test_files; i=1; while [ $i -le 255 ]; do c="$(printf "$(printf "\\\\x%02xZ" "$i")")"; c="${c%Z}"; touch "test_files/$c"; i=$((i+1)); done
2022-10-15 21:00:17 +02:00
LICENSES Add REUSE-compliant copyright headers 2021-07-18 11:50:50 +02:00
src Fix incorrect format string causing invalid export files 2022-10-15 21:00:17 +02:00
.gitignore Add REUSE-compliant copyright headers 2021-07-18 11:50:50 +02:00
build.zig Version 2.0.1 + copyright year bump 2022-01-01 16:01:47 +01:00
ChangeLog Version 2.1.2 2022-04-28 11:19:43 +02:00
Makefile Version 2.0.1 + copyright year bump 2022-01-01 16:01:47 +01:00
ncdu.pod Revert default --graph-style to "hash" 2022-03-16 09:53:02 +01:00
README.md Version 2.1.1 2022-03-25 12:38:47 +01:00

ncdu-zig

Description

Ncdu is a disk usage analyzer with an ncurses interface. It is designed to find space hogs on a remote server where you don't have an entire graphical setup available, but it is a useful tool even on regular desktop systems. Ncdu aims to be fast, simple and easy to use, and should be able to run in any minimal POSIX-like environment with ncurses installed.

See the ncdu 2 release announcement for information about the differences between this Zig implementation (2.x) and the C version (1.x).

Requirements

  • Zig 0.9.0 or 0.9.1
  • Some sort of POSIX-like OS
  • ncurses libraries and header files

Install

You can use the Zig build system if you're familiar with that.

There's also a handy Makefile that supports the typical targets, e.g.:

make
sudo make install PREFIX=/usr