diff --git a/pkgs/applications/graphics/gscan2pdf/default.nix b/pkgs/applications/graphics/gscan2pdf/default.nix index 296d63cd6785..0acc934a7fd9 100644 --- a/pkgs/applications/graphics/gscan2pdf/default.nix +++ b/pkgs/applications/graphics/gscan2pdf/default.nix @@ -24,6 +24,8 @@ perlPackages.buildPerlPackage rec { url = "https://sourceforge.net/p/gscan2pdf/bugs/_discuss/thread/602a7cedfd/1ea4/attachment/0001-Remove-given-and-when-keywords-and-operator.patch"; hash = "sha256-JtrHUkfEKnDhWfEVdIdYVlr5b/xChTzsrrPmruLaJ5M="; }) + # fixes an error with utf8 file names. See https://sourceforge.net/p/gscan2pdf/bugs/400 + ./image-utf8-fix.patch ]; nativeBuildInputs = [ wrapGAppsHook ]; diff --git a/pkgs/applications/graphics/gscan2pdf/image-utf8-fix.patch b/pkgs/applications/graphics/gscan2pdf/image-utf8-fix.patch new file mode 100644 index 000000000000..fa1d03e0309a --- /dev/null +++ b/pkgs/applications/graphics/gscan2pdf/image-utf8-fix.patch @@ -0,0 +1,32 @@ +diff --git a/bin/gscan2pdf b/bin/gscan2pdf +index e075b0f2..ff124522 100755 +--- a/bin/gscan2pdf ++++ b/bin/gscan2pdf +@@ -3434,9 +3434,11 @@ sub save_image { + if ( @{$list_of_pages} > 1 ) { + my $w = length scalar @{$list_of_pages}; + for ( 1 .. @{$list_of_pages} ) { ++ _utf8_on($filename); + my $current_filename = + sprintf "${filename}_%0${w}d.$SETTING{'image type'}", + $_; ++ _utf8_off($filename); + if ( -f $current_filename ) { + my $text = sprintf __('This operation would overwrite %s'), + $current_filename; +@@ -3450,11 +3452,15 @@ sub save_image { + return; + } + } ++ _utf8_on($filename); + $filename = "${filename}_%0${w}d.$SETTING{'image type'}"; ++ _utf8_off($filename); + } + else { + if ( $filename !~ /[.]$SETTING{'image type'}$/ixsm ) { ++ _utf8_on($filename); + $filename = "$filename.$SETTING{'image type'}"; ++ _utf8_off($filename); + return if ( file_exists( $file_chooser, $filename ) ); + } + return if ( file_writable( $file_chooser, $filename ) );