Applied some fixes to midnight commander so that it no longer displays weird characters
svn path=/nixpkgs/trunk/; revision=17207
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
args: with args;
|
||||
{stdenv, fetchurl, lib, pkgconfig, glib, ncurses, libX11, shebangfix, perl, zip, unzip, gettext, slang}:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
name = "mc-4.6.1";
|
||||
@@ -6,8 +6,46 @@ stdenv.mkDerivation rec {
|
||||
url = "http://www.ibiblio.org/pub/Linux/utils/file/managers/mc/${name}.tar.gz";
|
||||
sha256 = "0zly25mwdn84s0wqx9mzyqi177mm828716nv1n6a4a5cm8yv0sh8";
|
||||
};
|
||||
buildInputs = [pkgconfig glib ncurses libX11 shebangfix perl zip];
|
||||
configureFlags = "--with-screen=ncurses";
|
||||
buildInputs = [pkgconfig glib ncurses libX11 shebangfix perl zip unzip slang gettext];
|
||||
configureFlags = "--enable-charset";
|
||||
|
||||
# Stole some patches from LFS which fix some nasty bugs
|
||||
patches = [ ./mc-4.6.1-bash32-1.patch ./mc-4.6.1-debian_fixes-1.patch ];
|
||||
|
||||
# Required to enable the Debian UTF8 fixes
|
||||
CPPFLAGS = "-DUTF8";
|
||||
|
||||
# The Debian UTF8 patch expects that the documentation is in UTF8 format,
|
||||
# therefore we have to convert them (I stole this also from LFS)
|
||||
|
||||
postBuildPhase = ''
|
||||
for file in lib/mc.hint{,.es,.it,.nl} doc/{es,it}/mc.hlp.*
|
||||
do
|
||||
iconv -f ISO-8859-1 -t UTF-8 $file > $file.utf8 &&
|
||||
mv $file.utf8 $file
|
||||
done &&
|
||||
for file in lib/mc.hint{.cs,.hu,.pl} doc/{hu,pl}/mc.hlp.*
|
||||
do
|
||||
iconv -f ISO-8859-2 -t UTF-8 $file > $file.utf8 &&
|
||||
mv $file.utf8 $file
|
||||
done &&
|
||||
for file in lib/mc.hint.sr doc/sr/mc.hlp.sr
|
||||
do
|
||||
iconv -f ISO-8859-5 -t UTF-8 $file > $file.utf8 &&
|
||||
mv $file.utf8 $file
|
||||
done &&
|
||||
for file in doc/ru/mc.hlp.ru lib/mc.hint.ru
|
||||
do
|
||||
iconv -f KOI8-R -t UTF-8 $file > $file.utf8 &&
|
||||
mv $file.utf8 $file
|
||||
done &&
|
||||
|
||||
iconv -f KOI8-U -t UTF-8 lib/mc.hint.uk > lib/mc.hint.uk.utf8 &&
|
||||
mv lib/mc.hint.uk.utf8 lib/mc.hint.uk &&
|
||||
iconv -f BIG5 -t UTF-8 lib/mc.hint.zh > lib/mc.hint.zh.utf8 &&
|
||||
mv lib/mc.hint.zh.utf8 lib/mc.hint.zh
|
||||
'';
|
||||
|
||||
makeFlags = "UNZIP=unzip";
|
||||
postInstall = ''
|
||||
find $out -iname "*.pl" | xargs shebangfix;
|
||||
@@ -15,6 +53,6 @@ stdenv.mkDerivation rec {
|
||||
meta = {
|
||||
description = "File Manager and User Shell for the GNU Project";
|
||||
homepage = http://www.ibiblio.org/mc;
|
||||
maintainers = [ lib.maintainers.sander ];
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
41
pkgs/tools/misc/mc/mc-4.6.1-bash32-1.patch
Normal file
41
pkgs/tools/misc/mc/mc-4.6.1-bash32-1.patch
Normal file
@@ -0,0 +1,41 @@
|
||||
Submitted By: Alexander E. Patrakov
|
||||
Date: 2007-01-19
|
||||
Initial Package Version: 4.6.1
|
||||
Origin: http://bugs.gentoo.org/show_bug.cgi?id=153925
|
||||
Upstream Status: aware of the problem
|
||||
Description: with bash-3.2, unpatched mc-4.6.1 refuses to go into directories
|
||||
containing underscores or other strange characters.
|
||||
|
||||
--- mc-4.6.1/src/subshell.c.000 2006-05-08 23:11:48.000000000 +0200
|
||||
+++ mc-4.6.1/src/subshell.c 2006-10-28 15:40:46.000000000 +0200
|
||||
@@ -745,29 +745,13 @@ subshell_name_quote (const char *s)
|
||||
memcpy (d, cmd_start, len);
|
||||
d += len;
|
||||
|
||||
- /*
|
||||
- * Print every character in octal format with the leading backslash.
|
||||
- * tcsh and zsh may require 4-digit octals, bash < 2.05b doesn't like them.
|
||||
- */
|
||||
- if (subshell_type == BASH) {
|
||||
for (; *s; s++) {
|
||||
- /* Must quote numbers, so that they are not glued to octals */
|
||||
if (isalpha ((unsigned char) *s)) {
|
||||
*d++ = (unsigned char) *s;
|
||||
} else {
|
||||
- sprintf (d, "\\%03o", (unsigned char) *s);
|
||||
- d += 4;
|
||||
- }
|
||||
- }
|
||||
- } else {
|
||||
- for (; *s; s++) {
|
||||
- if (isalnum ((unsigned char) *s)) {
|
||||
- *d++ = (unsigned char) *s;
|
||||
- } else {
|
||||
sprintf (d, "\\0%03o", (unsigned char) *s);
|
||||
d += 5;
|
||||
}
|
||||
- }
|
||||
}
|
||||
|
||||
memcpy (d, common_end, sizeof (common_end));
|
||||
|
||||
12671
pkgs/tools/misc/mc/mc-4.6.1-debian_fixes-1.patch
Normal file
12671
pkgs/tools/misc/mc/mc-4.6.1-debian_fixes-1.patch
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user