aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThierry Vignaud <tv@mandriva.org>2007-02-20 11:21:18 +0000
committerThierry Vignaud <tv@mandriva.org>2007-02-20 11:21:18 +0000
commitce4e679eedac1e439937806e351fb1b8e5cb0d33 (patch)
treeabe7951f3f8193b0505f019a93d2e7e97c2d9f44
parent21001afa4b7de03b5d6b27c9266fedbeb5954b36 (diff)
downloadrpmdrake-ce4e679eedac1e439937806e351fb1b8e5cb0d33.tar
rpmdrake-ce4e679eedac1e439937806e351fb1b8e5cb0d33.tar.gz
rpmdrake-ce4e679eedac1e439937806e351fb1b8e5cb0d33.tar.bz2
rpmdrake-ce4e679eedac1e439937806e351fb1b8e5cb0d33.tar.xz
rpmdrake-ce4e679eedac1e439937806e351fb1b8e5cb0d33.zip
split out formating stuff in Rpmdrake::formatting
-rwxr-xr-xRpmdrake/formatting.pm103
-rwxr-xr-xrpmdrake52
2 files changed, 104 insertions, 51 deletions
diff --git a/Rpmdrake/formatting.pm b/Rpmdrake/formatting.pm
new file mode 100755
index 00000000..52583087
--- /dev/null
+++ b/Rpmdrake/formatting.pm
@@ -0,0 +1,103 @@
+package Rpmdrake::formatting;
+#*****************************************************************************
+#
+# Copyright (c) 2002 Guillaume Cottenceau
+# Copyright (c) 2002-2006 Thierry Vignaud <tvignaud@mandriva.com>
+# Copyright (c) 2003, 2004, 2005 MandrakeSoft SA
+# Copyright (c) 2005, 2006 Mandriva SA
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License version 2, as
+# published by the Free Software Foundation.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
+#
+#*****************************************************************************
+#
+# $Id$
+
+use strict;
+use utf8;
+use POSIX qw(strftime);
+use rpmdrake;
+use lib qw(/usr/lib/libDrakX);
+use common;
+use ugtk2 qw(escape_text_for_TextView_markup_format);
+
+use Exporter;
+our @ISA = qw(Exporter);
+our @EXPORT = qw(format_field format_header localtime2changelog my_fullname pkg2medium rpm_description rpm_summary split_fullname urpm_name);
+
+
+sub rpm_summary {
+ my ($summary) = @_;
+ utf8::decode($summary);
+ $summary;
+}
+
+sub rpm_description {
+ my ($description) = @_;
+ utf8::decode($description);
+ my ($t, $tmp);
+ foreach (split "\n", $description) {
+ s/^\s*//;
+ if (/^$/ || /^\s*(-|\*|\+|o)\s/) {
+ $t || $tmp and $t .= "$tmp\n";
+ $tmp = $_;
+ } else {
+ $tmp = ($tmp ? "$tmp " : ($t && "\n") . $tmp) . $_;
+ }
+ }
+ "$t$tmp\n";
+}
+
+
+sub split_fullname { $_[0] =~ /^(.*)-([^-]+-[^-]+)$/ }
+sub my_fullname {
+ return '?-?-?' unless ref $_[0];
+ my ($name, $version, $release) = $_[0]->fullname;
+ "$name-$version-$release";
+}
+
+
+sub urpm_name {
+ return '?-?-?.?' unless ref $_[0];
+ my ($name, $version, $release, $arch) = $_[0]->fullname;
+ "$name-$version-$release.$arch";
+}
+
+
+sub pkg2medium {
+ my ($p, $urpm) = @_;
+ foreach (@{$urpm->{media}}) {
+ !$_->{ignore} && $p->id <= $_->{end} and return $_;
+ }
+ undef;
+}
+
+#- strftime returns a string in the locale charset encoding;
+#- but gtk2 requires UTF-8, so we use to_utf8() to ensure the
+#- output of localtime2changelog() is always in UTF-8
+#- as to_utf8() uses LC_CTYPE for locale encoding and strftime() uses LC_TIME,
+#- it doesn't work if those two variables have values with different
+#- encodings; but if a user has a so broken setup we can't do much anyway
+sub localtime2changelog { to_utf8(strftime("%c", localtime($_[0]))) }
+
+sub format_header {
+ my ($str) = @_;
+ '<big>' . escape_text_for_TextView_markup_format($str) . '</big>';
+}
+
+sub format_field {
+ my ($str) = @_;
+ '<b>' . escape_text_for_TextView_markup_format($str) . '</b>';
+}
+
+1;
diff --git a/rpmdrake b/rpmdrake
index 734a4d8b..8b025977 100755
--- a/rpmdrake
+++ b/rpmdrake
@@ -67,6 +67,7 @@ use urpm::lock;
use urpm::install;
use Rpmdrake::gurpm;
use Rpmdrake::rpmnew;
+use Rpmdrake::formatting;
use urpm::signature;
use urpm::get_pkgs;
use urpm::select;
@@ -298,41 +299,6 @@ sub ctreefy {
join('|', map { translate($_) } split m|/|, $_[0]);
}
-sub rpm_summary {
- my ($summary) = @_;
- utf8::decode($summary);
- $summary;
-}
-
-sub rpm_description {
- my ($description) = @_;
- utf8::decode($description);
- my ($t, $tmp);
- foreach (split "\n", $description) {
- s/^\s*//;
- if (/^$/ || /^\s*(-|\*|\+|o)\s/) {
- $t || $tmp and $t .= "$tmp\n";
- $tmp = $_;
- } else {
- $tmp = ($tmp ? "$tmp " : ($t && "\n") . $tmp) . $_;
- }
- }
- "$t$tmp\n";
-}
-
-
-sub split_fullname { $_[0] =~ /^(.*)-([^-]+-[^-]+)$/ }
-sub my_fullname {
- return '?-?-?' unless ref $_[0];
- my ($name, $version, $release) = $_[0]->fullname;
- "$name-$version-$release";
-}
-sub urpm_name {
- return '?-?-?.?' unless ref $_[0];
- my ($name, $version, $release, $arch) = $_[0]->fullname;
- "$name-$version-$release.$arch";
-}
-
sub parse_compssUsers_flat() {
my (%compssUsers, $category);
my $compss = '/var/lib/urpmi/compssUsers.flat';
@@ -358,22 +324,6 @@ sub parse_compssUsers_flat() {
\%compssUsers;
}
-sub pkg2medium {
- my ($p, $urpm) = @_;
- foreach (@{$urpm->{media}}) {
- !$_->{ignore} && $p->id <= $_->{end} and return $_;
- }
- undef;
-}
-
-#- strftime returns a string in the locale charset encoding;
-#- but gtk2 requires UTF-8, so we use to_utf8() to ensure the
-#- output of localtime2changelog() is always in UTF-8
-#- as to_utf8() uses LC_CTYPE for locale encoding and strftime() uses LC_TIME,
-#- it doesn't work if those two variables have values with different
-#- encodings; but if a user has a so broken setup we can't do much anyway
-sub localtime2changelog { to_utf8(strftime("%c", localtime($_[0]))) }
-
sub run_rpm {
foreach (qw(LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT LC_IDENTIFICATION LC_ALL)) {
local $ENV{$_} = $ENV{$_} . '.UTF-8' if !/UTF-8/;