vfmg, patche

Przemysław Iskra sparky w servek.sparky.homelinux.org
Pią, 15 Paź 2004, 01:19:04 CEST


On Fri, Oct 15, 2004 at 01:16:13AM +0200, Przemysław Iskra wrote:
> Chyba wreszcie (trochę) załapałem perl'a i mam nadzieję że się nadają.
*patche się nadają
> 
> Zmiany są jedynie dla enlightenment'a bo nie wiem jak mają być
> przekonwertowane ikony dla AfterStepa czy xpde, ale myślę że nie będzie
> ciężko rozszeżyć.
> 
> ok, proszę o uwagi i ewentualne wrzucenie do cvs
cholera, jak zwykle niema czego :P
już podsyłam


-- 
 ____ Przemysław Iskra  -  Sparky{PI] _   ___   _   _  "Teraz bóg   -Ka
/____)  ___   ___   _ _  ||          |   | _ \ | |   | kocha Niemców  z
\____\ | -_) '___|  ||^' ||// \\//  <    |  _/ | |   | - mają więcej  i
(____/ ||    (_-_|_ ||   ||\\  ||    |_  |_|   |_|  _|   pieniędzy."  k
-------------- następna część ---------
--- SPECS/vfmg.spec.orig	2004-09-17 20:15:27.000000000 +0200
+++ SPECS/vfmg.spec	2004-10-15 01:02:36.188490824 +0200
@@ -4,7 +4,7 @@
 Summary(pl):	Generator Menu opartego na VFolders
 Name:		vfmg
 Version:	0.9.18
-Release:	3
+Release:	4
 License:	GPL
 Group:		X11/Window Managers/Tools
 Vendor:		GoTaR <gotar w pld-linux.org>
@@ -14,6 +14,8 @@
 Patch0:		%{name}-fvwm2.patch
 Patch1:		%{name}-fvwm.patch
 Patch2:		%{name}-use_tempfile.patch
+Patch3:		%{name}-codeset.patch
+Patch4:		%{name}-scale_icon.patch
 URL:		http://vfmg.sourceforge.net/
 BuildRequires:	rpm-perlprov
 Requires:	applnk >= 1.9.0
@@ -54,6 +56,8 @@
 %patch0 -p1
 %patch1 -p1
 %patch2 -p1
+%patch3 -p1
+%patch4 -p1
 
 %install
 rm -rf $RPM_BUILD_ROOT
-------------- następna część ---------
--- vfmg-0.9.18/vfmg.orig	2004-10-14 22:44:54.821663680 +0200
+++ vfmg-0.9.18/vfmg	2004-10-14 23:02:52.508978912 +0200
@@ -867,7 +867,7 @@
 	open $F_OUT, ">> $dir/$_[1].menu" or warn "$dir/$_[1].menu: $!\n";
 	print $F_OUT "\"$_[2]\"\n";
 	foreach my $entry(sort keys %{$menu[$no]}) {
-		$name=$entry;
+		$name=encode($o_enc,$entry);
 		if($menu[$no]{$entry}[0]<0) {
 			$name=~s/\"/\\\"/g;
 			print $F_OUT "\"$name\" \"$menu[$no]{$entry}[1]\" exec \"$menu[$no]{$entry}[2]\"\n";
@@ -955,6 +955,10 @@
 eval "use open OUT => ':locale'" unless $o_enc;
 binmode(STDOUT, ":encoding($o_enc)") if $o_enc;
 
+require I18N::Langinfo;
+I18N::Langinfo->import(qw(langinfo CODESET));
+$o_enc=langinfo(CODESET()) unless $o_enc;
+
 if($o_output eq "icewm") {
 	icewm($o_strip);
 	exit;
-------------- następna część ---------
--- vfmg-0.9.18/vfmg.orig	2004-10-14 23:08:00.961232096 +0200
+++ vfmg-0.9.18/vfmg	2004-10-15 00:56:47.422386144 +0200
@@ -66,6 +66,8 @@
 die "Unrecognized argument: $o_output\n"
 	unless $o_output=~/^(aewm|afterstep|blackbox|enlightenment|fbpanel|fluxbox|fvwm|fvwm2|icewm|openbox|olvwm|qvwm|wmaker|wmaker-old|xfce4|xpde)$/;
 
+$o_full=1 if $o_icons and $o_output=~/^(enlightenment)$/;
+	
 my $tmp="$ENV{'HOME'}/.local/share";
 $tmp="$ENV{'XDG_DATA_HOME'}" if $ENV{'XDG_DATA_HOME'};
 my @tmp=("/usr/local/share","/usr/share");
@@ -281,6 +283,7 @@
 my $tag;
 my $name;
 my $dir;
+my $icon_dir;
 my @directory;	# $directory[level]=[name,icon]
 my $include;
 my @tmpapps;
@@ -609,6 +612,25 @@
 	}
 }
 
+my $DoConvert = `which convert`;
+sub scale_icon {
+	my $icon_in = $_[0];
+
+	return $icon_in unless $DoConvert;
+
+	my $icon_out = $icon_in;
+	my $icon_ext = $_[1];
+	my $convert_options = $_[2];
+
+	$icon_out =~ s/^.*\///;
+	$icon_out =~ s/\..*$//;
+	$icon_out = "$icon_dir/$icon_out.$icon_ext";
+	if( ! -f "$icon_out") {
+		system("convert $convert_options $icon_in $icon_out");
+	}
+	return $icon_out;
+}
+
 $level="";
 sub icewm {
 	my $no=$_[0];
@@ -868,15 +890,18 @@
 	print $F_OUT "\"$_[2]\"\n";
 	foreach my $entry(sort keys %{$menu[$no]}) {
 		$name=encode($o_enc,$entry);
+		my $icon="";
+		$icon=$menu[$no]{$entry}[1] if $o_icons;
+		$icon=scale_icon($icon,"png","-geometry 18x18") if $icon;
 		if($menu[$no]{$entry}[0]<0) {
 			$name=~s/\"/\\\"/g;
-			print $F_OUT "\"$name\" \"$menu[$no]{$entry}[1]\" exec \"$menu[$no]{$entry}[2]\"\n";
+			print $F_OUT "\"$name\" \"$icon\" exec \"$menu[$no]{$entry}[2]\"\n";
 		} else {
 			$name=substr($name,1);
 			$name=~s|/||g;
 			my $name2=$name;
 			$name2=~s/\"/\\\"/g;
-			print $F_OUT "\"$name2\" \"$menu[$no]{$entry}[1]\" menu \"$dir/$name2.menu\"\n";
+			print $F_OUT "\"$name2\" \"$icon\" menu \"$dir/$name2.menu\"\n";
 			enlightenment($menu[$no]{$entry}[0],"$name","$name");
 		}
 	}
@@ -1041,6 +1066,13 @@
 		rename("$dir","$dir.old");
 	}
 	mkpath("$dir",0,0700);	# or die
+	$icon_dir="$ENV{'HOME'}/.enlightenment/icons";
+	if(! -d "$icon_dir") {
+		if(-f "$icon_dir") {
+			rename("$icon_dir","$icon_dir.old");
+		}
+		mkpath("$icon_dir",0,0700);
+	}
 	enlightenment($o_strip,"index","Enlightenment");
 	exit;
 }


Więcej informacji o liście dyskusyjnej pld-devel-pl