vfmg (DEVEL): vfmg - use fork for icons scaling (if requested)
sparky
sparky at pld-linux.org
Sat Nov 5 00:32:10 CET 2005
Author: sparky Date: Fri Nov 4 23:32:10 2005 GMT
Module: vfmg Tag: DEVEL
---- Log message:
- use fork for icons scaling (if requested)
---- Files affected:
vfmg:
vfmg (1.73.2.26 -> 1.73.2.27)
---- Diffs:
================================================================
Index: vfmg/vfmg
diff -u vfmg/vfmg:1.73.2.26 vfmg/vfmg:1.73.2.27
--- vfmg/vfmg:1.73.2.26 Wed Nov 2 01:40:14 2005
+++ vfmg/vfmg Sat Nov 5 00:32:05 2005
@@ -18,6 +18,7 @@
icons => 1,
icons_full => 0,
icons_scale => 0,
+ icons_fork => 0,
icons_dir => "",
icons_ext => "png",
@@ -69,6 +70,7 @@
=> \$opt{icons_full},
'icons-scale|scale-icons|S!'
=> \$opt{icons_scale},
+ 'icons-fork!' => \$opt{icons_fork},
'icons-dir|d=s' => \$opt{icons_dir},
'icons-ext|T=s' => \$opt{icons_ext},
@@ -104,6 +106,7 @@
-i, --icons - add icons to menu (default: yes)
-I, --icons-full - check for icons existence and extend to full path
-S, --icons-scale - scale (shrink) icons (implies -i -I)
+ --icons-fork - scale icons after fork
-d, --icons-dir= - output dir for icons
-T, --icons-ext= - output icons extension (default: png)
@@ -783,6 +786,7 @@
}
} # }}}
+my @scale;
sub scale_icon {
my $icon_in = $_[0];
return $icon_in unless $opt{icons_scale};
@@ -797,7 +801,11 @@
s/\%in/$icon_in/g;
s/\%out/$icon_out/g;
- system($_);
+ if ( $opt{icons_fork} ) {
+ push @scale, $_;
+ } else {
+ system($_);
+ }
}
return $icon_out;
}
@@ -1286,91 +1294,87 @@
unlink $DR{icon};
exit;
} # }}}
-if($o_output eq "aewm") {
+elsif($o_output eq "aewm") {
aewm($opt{strip},"");
- exit;
}
-if($o_output eq "afterstep") {
+elsif($o_output eq "afterstep") {
afterstep($opt{strip},$opt{destdir});
- exit;
}
-if($o_output eq "blackbox") {
+elsif($o_output eq "blackbox") {
print "[begin] (Blackbox)\n" unless $opt{nomenu};
blackbox($opt{strip},"");
print "[end]\n" unless $opt{nomenu};
- exit;
}
-if($o_output eq "enlightenment") {
+elsif($o_output eq "enlightenment") {
enlightenment($opt{strip},"index","Enlightenment");
- exit;
}
-if($o_output eq "fbpanel") {
+elsif($o_output eq "fbpanel") {
fbpanel($opt{strip},"");
- exit;
}
-if($o_output eq "fluxbox") { # This is the same as blackbox (I hope so)
+elsif($o_output eq "fluxbox") { # This is the same as blackbox (I hope so)
print "[begin] (Fluxbox)\n" unless $opt{nomenu};
blackbox($opt{strip});
print "[end]\n" unless $opt{nomenu};
- exit;
}
-if($o_output eq "fvwm") {
+elsif($o_output eq "fvwm") {
fvwm($opt{strip},"", "fvwm");
- exit;
}
-if($o_output eq "fvwm2") {
+elsif($o_output eq "fvwm2") {
fvwm2($opt{strip},"fvwm2");
- exit;
}
-if($o_output eq "icewm") {
+elsif($o_output eq "icewm") {
icewm($opt{strip},"");
- exit;
}
-if($o_output eq "metisse") {
+elsif($o_output eq "metisse") {
metisse($opt{strip},"", "metisse");
- exit;
}
-if($o_output eq "olvwm") {
+elsif($o_output eq "olvwm") {
olvwm($opt{strip},"");
- exit;
}
-if($o_output eq "openbox") {
+elsif($o_output eq "openbox") {
print "<openbox_menu>\n" unless $opt{nomenu};
print qq(<menu id="root-menu" label="PLD Linux">\n) unless $opt{nomenu};
openbox($opt{strip},"");
print "</menu>\n" unless $opt{nomenu};
print "</openbox_menu>\n" unless $opt{nomenu};
- exit;
}
-if($o_output eq "qvwm") {
+elsif($o_output eq "qvwm") {
print "[StartMenu]\n";
qvwm($opt{strip},"");
- exit;
}
-if($o_output eq "wmaker") {
+elsif($o_output eq "wmaker") {
if($opt{strip}) {
wmaker(1,",","");
} else {
wmaker(0,"","");
}
print "\n";
- exit;
}
-if($o_output eq "wmaker-old") {
+elsif($o_output eq "wmaker-old") {
wmakerold($opt{strip},"");
- exit;
}
-if($o_output eq "xfce4") {
+elsif($o_output eq "xfce4") {
print "<xfdesktop-menu>\n";
print qq(<title name="Desktop Menu" visible="yes"/>\n) unless $opt{nomenu};
xfce4($opt{strip},step);
print "</xfdesktop-menu>\n";
- exit;
}
-if($o_output eq "xpde") {
+elsif($o_output eq "xpde") {
xpde($opt{strip},$opt{destdir});
- exit;
}
# WM case }}}
+if ( @scale ) {
+ warn "Scaling $#scale icons\n";
+ my $fork = fork;
+ unless ( defined $fork ) {
+ warn "Fork failed, scaling in foreground\n";
+ $fork = 0;
+ }
+ if ( $fork == 0) {
+ foreach my $cmd (@scale) {
+ system($cmd);
+ }
+ }
+}
# vi: ts=4 sw=4 noet fdm=marker
================================================================
---- CVS-web:
http://cvs.pld-linux.org/vfmg/vfmg?r1=1.73.2.26&r2=1.73.2.27&f=u
More information about the pld-cvs-commit
mailing list