GitPedia
xyproto

xyproto/tinyxxd

Drop-in cross-platform replacement and standalone version of the hex dump utility that comes with ViM. Licensed only under MIT and/or GPL2 (dual license).

19 Releases
Latest: 1mo ago
tinyxxd 1.3.16v1.3.16Latest
xyprotoxyproto·1mo ago·May 15, 2026
GitHub

📋 Changes

  • Improve the Makefile so that fuzzing also works on Fedora.
  • Use `%08lu` as a format string instead of `%08ld` in connection with the `-d` flag (thanks @mattn).
tinyxxd 1.3.15v1.3.15
xyprotoxyproto·2mo ago·April 1, 2026
GitHub

📋 Changes

  • Fix an issue with `\r` handling.
  • Fix a padding bug in `hex_littleendian`.
  • Performance improvements.
  • Improve color handling, inspired by https://github.com/vim/vim/commit/1578ea9d97aefcdd6e89774d274ad0f440c34383, thanks @h-east.
  • Respect the `NO_COLOR` environment variable.
  • Use `strtoll` for `xxd->length`.
  • Update CI configuration.
  • Some refactoring / removing unused code / renaming variables.
  • + 1 more
tinyxxd 1.3.14v1.3.14
xyprotoxyproto·2mo ago·March 24, 2026
GitHub

📋 Changes

  • Fix the `stderr`/`stdout` redirection for `-h`/`--help` ref #34, thanks @noahgitsham
tinyxxd 1.3.12v1.3.12
xyprotoxyproto·2mo ago·March 23, 2026
GitHub

📋 Changes

  • Add Windows suppoort, thanks @kungfubeaner, ref #30
  • Add a `-t` flag, thanks @Kycilak, ref [vim@4d262b4](https://github.com/vim/vim/commit/4d262b4952754f9e14ccf699e26a27dd37435e1a)
  • Add a `-h`/`--help` flag use a different exit code, thanks @noahgitsham, ref #33
  • Add a tiny performance improvement (`setvbuf`).
  • Some refactoring.
  • Make the EBCDIC lookup table `static const`.
  • Update benchmarks.
  • Update CI configuration.
  • + 1 more
tinyxxd 1.3.11v1.3.11
xyprotoxyproto·4mo ago·February 13, 2026
GitHub

📋 Changes

  • Fix issue #29, thanks @salvogiangri
tinyxxd 1.3.10v1.3.10
xyprotoxyproto·4mo ago·February 2, 2026
GitHub

**Full Changelog**: https://github.com/xyproto/tinyxxd/compare/v1.3.9...v1.3.10

tinyxxd 1.3.9v1.3.9
xyprotoxyproto·4mo ago·February 2, 2026
GitHub

📋 What's Changed

  • Do not use `-fno-plt` on Darwin by @reckenrode in https://github.com/xyproto/tinyxxd/pull/27

New Contributors

  • @reckenrode made their first contribution in https://github.com/xyproto/tinyxxd/pull/27
  • Full Changelog: https://github.com/xyproto/tinyxxd/compare/v1.3.8...v1.3.9
tinyxxd 1.3.8v1.3.8
xyprotoxyproto·4mo ago·January 28, 2026
GitHub

**Full Changelog**: https://github.com/xyproto/tinyxxd/compare/v1.3.7...v1.3.8

tinyxxd 1.3.7v1.3.7
xyprotoxyproto·1y ago·October 23, 2024
GitHub

📋 Changes

  • Fix a whitespace-related issue when reversing postscript, ref #15 (thanks @Villemoes)
tinyxxd 1.3.6v1.3.6
xyprotoxyproto·1y ago·October 21, 2024
GitHub

📋 Changes

  • Make it so that `-i` and `-b` be used together, ref #13 (thanks @a2chang)
  • Adjust the column placement when the little endian flag is used, ref #14 (thanks @chrisbra)
tinyxxd 1.3.5v1.3.5
xyprotoxyproto·1y ago·August 24, 2024
GitHub

📋 Changes

  • Dual license `tinyxxd` under both `GPL-2.0-only` and `MIT` (closes #7, thanks @philiptaron, @emilazy, @Ordoviz and @oliverkwebb)
tinyxxd 1.3.4v1.3.4
xyprotoxyproto·1y ago·August 23, 2024
GitHub

📋 Changes

  • Update benchmark scripts.
  • Update CI configuration.
  • Update documentation.
  • Add an initial man page (ref #6, thanks @philiptaron).
  • Add `AUTHORS.md` (ref #7, thanks @philiptaron and @emilazy).
  • Updated `README.md` (ref #8, thanks @philiptaron).
tinyxxd 1.3.3v1.3.3
xyprotoxyproto·2y ago·May 19, 2024
GitHub

📋 Changes

  • Use the address sanitizer for unit tests + add tests b49cca53833b3f336a5744b88b89ae1d1bbec13c (thanks @Ordoviz)
  • Add tests to the Makefile 3c48309e7de6e44e5262353c9316c322466946c0 (thanks @Ordoviz)
  • Add asterisks to output in autoskip mode (`-a`), 2204d75eede6ff3b9628202780dbde6f04054a33 (thanks @Ordoviz)
  • Fix bss buffer overflows 8c5cb0f431173ade03b89e779195e146e3eeef86 (thanks @Ordoviz)
  • Fix `-a -E -R always` behaving incorrectly 27df9896ae95cc8200e80a70cfb5cbacb3d2a577 (thanks @Ordoviz)
  • Use `EXIT_FAILURE` instead of `1`.
  • Update documentation.
tinyxxd 1.3.2v1.3.2
xyprotoxyproto·2y ago·May 1, 2024
GitHub

📋 Changes

  • Some refactoring.
  • Re-order some if/elseif/else blocks based on the most used execution paths.
  • Declare and initialize buffers in the main function + remove a `#define`.
  • Add 1 to `LLEN` only once.
  • Remove the last remaining `#define` by replacing it with an `enum`.
  • Add a `COLS` enum instead of passing it in as an argument to several functions.
  • Add `(void)` to a function signature so that the program also compiles on macOS.
  • Various changes to benchmarks and tests.
  • + 1 more
tinyxxd 1.3.1v1.3.1
xyprotoxyproto·2y ago·February 11, 2024
GitHub

📋 Changes

  • Mark three functions as `static inline`.
  • Make adjustments to the default `CFLAGS` in the `Makefile`.
  • Update the CI configuration and the CI badge in `README.md`.
tinyxxd 1.3.0v1.3.0
xyprotoxyproto·2y ago·February 11, 2024
GitHub

Performance

  • Let colors enabled and ASCII (as opposed to EBCDIC) be the "happy path" that the code is optimized for.
  • Do not check `hextype` in multiple locations. Check it once in `main` and then call the right function.
  • Refactor several if-expressions and switches.
  • Mark several functions as `inline`.
  • Use `const` for several of the function arguments and variables.
  • Identify performance bottlenecks using Valgrind and `kcachegrind`.

📦 Code quality

  • Use implicit checks for `NULL` and `0`. (thanks @oliverkwebb).
  • Add missing `(void)` arguments (thanks @oliverkwebb).
  • Output usage information without using `snprintf` (thanks @oliverkwebb).
  • Introduce a `fflush_or_die` and a `fflush_fseek_and_putc` function.
  • Use an `enum` for the terminal colors.
  • Use `setColor` and `clearColor` instead of `colorPrologue` and `colorEpilogue`.
  • Let the `ignore` variable be a `bool` instead of an `int`.
  • Remove unused variables and function arguments.
  • + 2 more

📦 Tooling

  • Add a `profile` target to the `Makefile`.
  • Add a benchmark script for Python 3 named `bench.py` that confirms that the performance is mostly IO-bound, and also outputs a couple of graphs by using `gnuplot`.
  • Add GitHub action configuration for benchmarking, generating Markdown and graphs and committing the results to the `main` branch.
  • Move the functionality of the `release.sh` script into the `Makefile`, and remove the script.
  • Add support for fuzzing by running `make fuzz`, by using `afl-gcc` and `afl-fuzz`.
tinyxxd 1.2.0v1.2.0
xyprotoxyproto·2y ago·February 1, 2024
GitHub

📦 `main.c`

  • Remove an unused function call (ref #1, thanks @Harazi).
  • Use a `switch` instead of `if`/`else` in `get_ascii_char` and `get_ebcdic_char` .
  • Rename `pname` to `program_name`, `fpi` to `input_file` and `fpo` to `output_file` .
  • Let `output_file` be global, and use char literals instead of numbers (ref #2, thanks @oliverkwebb).
  • Let the `input_file` be global.
  • Let the variables `COL` and `LLEN` be defines instead of `constexpr`, to support versions of C before C23.
  • Use `boolean`s instead of `int`s, whenever possible.
  • Remove the `perror_exit` function, but let the `error_exit` have the same functionality if no message is passed in.
  • + 4 more

📦 `Makefile`

  • Add tests.
  • Add a `fmt` target to the Makefile that calls `clang-format` and formats the source code.
  • Add `-finline-functions` to the default flags, and remove the `inline` keyword from all function declarations.
  • Let `make clean` also remove `*.o`.
  • Support macOS.

📦 Various

  • Specifically support C11.
  • Format the source code with `clang-format` and the `WebKit` style.
  • Add CI configuration for both Arch Linux and macOS.
  • Update documentation.
tinyxxd 1.1.0v1.1.0
xyprotoxyproto·2y ago·January 12, 2024
GitHub

📋 Changes

  • Minor changes and performance improvements.
  • New logo.
tinyxxd 1.0.0v1.0.0
xyprotoxyproto·2y ago·January 10, 2024
GitHub

Create a standalone, GPL2-licensed, better performing, C18 version of the `xxd` utility that comes with ViM.