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

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to