From 7784c973e614ef6c5e101486e703b6c396fa05ce Mon Sep 17 00:00:00 2001 From: Rebecca Turner Date: Sun, 15 Sep 2024 16:31:39 -0700 Subject: lowdown: patch to fix macOS and UTF-8 bugs - Improve UTF-8 handling by not treating bytes >=0x80, which tend to be UTF-8 continuation bytes, as control characters. This leaves control characters U+0080 through U+009F in the output (incorrectly) but doesn't mangle other UTF-8 characters, so it's a net win. See: https://github.com/kristapsdz/lowdown/pull/140 - Don't output a newline between a `.SH` and a heading. This fixes `makewhatis` output on macOS and (as a result) `man` completions for `fish` on macOS. See: https://github.com/kristapsdz/lowdown/pull/138 --- pkgs/tools/typesetting/lowdown/default.nix | 35 ++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/pkgs/tools/typesetting/lowdown/default.nix b/pkgs/tools/typesetting/lowdown/default.nix index 189ba55838b6..bf9e06deca34 100644 --- a/pkgs/tools/typesetting/lowdown/default.nix +++ b/pkgs/tools/typesetting/lowdown/default.nix @@ -1,4 +1,5 @@ { lib, stdenv, fetchurl, fixDarwinDylibNames, which, dieHook +, fetchpatch , enableShared ? !stdenv.hostPlatform.isStatic , enableStatic ? stdenv.hostPlatform.isStatic # for passthru.tests @@ -16,6 +17,40 @@ stdenv.mkDerivation rec { hash = "sha512-EpAWTz7Zy+2qqJGgzLrt0tK7WEZ+hHbdyqzAmMiaqc6uNXscR88git6/UbTjvB9Yanvetvw9huSuyhcORCEIug=="; }; + patches = [ + # Improve UTF-8 handling on macOS by not treating bytes >=0x80, which tend to be + # UTF-8 continuation bytes, as control characters. + # + # This leaves control characters U+0080 through U+009F in the output + # (incorrectly) but doesn't mangle other UTF-8 characters, so it's a net + # win. + # + # See: https://github.com/kristapsdz/lowdown/pull/140 + (fetchpatch { + url = "https://github.com/kristapsdz/lowdown/commit/5a02866dd682363a8e4f6b344c223cfe8b597da9.diff"; + hash = "sha256-7tGhZJQQySeBv4h6A4r69BBbQkPRX/3JTw/80A8YXjQ="; + }) + (fetchpatch { + url = "https://github.com/kristapsdz/lowdown/commit/c033a6886e4d6efb948782fbc389fe5f673acf36.diff"; + hash = "sha256-7DvKFerAMoPifuTn7rOX4ru888HfBkpspH1opIbzj08="; + }) + + # Don't output a newline after .SH + # + # This fixes `makewhatis` output on macOS and (as a result) `man` + # completions for `fish` on macOS. + # + # See: https://github.com/kristapsdz/lowdown/pull/138 + (fetchpatch { + url = "https://github.com/kristapsdz/lowdown/commit/e05929a09a697de3d2eb14d0f0a087a6fae22e11.diff"; + hash = "sha256-P03W+hFeBKwfJB+DhGCPq0DtiOiLLc+0ZvWrWqXFvVU="; + }) + (fetchpatch { + url = "https://github.com/kristapsdz/lowdown/commit/9906f8ceac586c54eb39ae78105fd84653a89c33.diff"; + hash = "sha256-nBnAgTb8RDe/QpUhow3lyeR7UIVJX2o4lmP78e2fw/E="; + }) + ]; + nativeBuildInputs = [ which dieHook ] ++ lib.optionals stdenv.isDarwin [ fixDarwinDylibNames ]; -- cgit v1.2.3