--- man-1.6f-r1.ebuild 2008-02-26 21:57:41.000000000 +0300 +++ man-1.6f-r2.ebuild 2008-02-26 21:10:50.000000000 +0300 @@ -11,12 +11,14 @@ LICENSE="GPL-2" SLOT="0" KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~s390 ~sh ~sparc ~sparc-fbsd ~x86 ~x86-fbsd" -IUSE="nls" +IUSE="nls unicode" DEPEND="nls? ( sys-devel/gettext )" + RDEPEND=">=sys-apps/groff-1.19.2-r1 - !sys-apps/man-db - !app-arch/lzma" + !sys-apps/man-db + !app-arch/lzma + " PROVIDE="virtual/man" pkg_setup() { @@ -54,9 +56,46 @@ else mylang="${LINGUAS// /,}" fi + + # Convert everything to UTF-8 if utf8 flag switched on + + if use unicode; then + # Convert messages + # zh_TW needn't to be converted - it is already in UTF-8 + + cd "${S}"/msgs/ # To avoid problems with unexpected chars inpath + + for codeset_file in mess.*.codeset; do + local lang_file=${codeset_file%.*} # cut out .codeset + local cur_lang=${lang_file##*.} # cut out mess. + + local cur_encoding=$(sed -r 's/^\$\s+codeset\s*=\s*(.+)$/\1/' \ + $codeset_file) + + iconv -f ${cur_encoding} -t UTF-8 "${lang_file}" \ + > "${lang_file}.utf8" + + if [[ ! $? ]]; then + ewarn "Convering message file for language '${cur_lang}' failed" + + rm -f "${lang_file}.utf8" &> /dev/null + + continue; + fi + + mv -f "${lang_file}.utf8" "${lang_file}" + + echo '$ codeset=UTF-8' > ${codeset_file} + done; + + cd "${S}" + fi else + use unicode && ewarn "Selection of 'unicode' flag is useless without 'nls'"; + mylang="none" fi + ./configure \ -confdir=/etc \ +sgid +fhs \