vfmg (DEVEL): vfmg - checking options dependencies - resolve ${HOM...

sparky sparky at pld-linux.org
Tue Nov 1 01:16:26 CET 2005


Author: sparky                       Date: Tue Nov  1 00:16:26 2005 GMT
Module: vfmg                          Tag: DEVEL
---- Log message:
- checking options dependencies
- resolve ${HOME} in .vfmgrc
- killed >80 long lines

---- Files affected:
vfmg:
   vfmg (1.73.2.16 -> 1.73.2.17) 

---- Diffs:

================================================================
Index: vfmg/vfmg
diff -u vfmg/vfmg:1.73.2.16 vfmg/vfmg:1.73.2.17
--- vfmg/vfmg:1.73.2.16	Mon Oct 31 23:51:43 2005
+++ vfmg/vfmg	Tue Nov  1 01:16:21 2005
@@ -17,7 +17,7 @@
 	icons		=> 1,
 	icons_full	=> 0,
 	icons_scale	=> 0,
-#	icons_dir	=> "", should be used only if defined
+	icons_dir	=> "",
 	
 	utf			=> 0,
 	encoding	=> "",
@@ -61,7 +61,7 @@
 my @wms = qw(aewm afterstep blackbox enlightenment fbpanel fluxbox fvwm fvwm2
 	icewm metisse openbox olvwm qvwm wmaker wmaker-old xfce4 xpde);
 
-if($o_help) {
+if($o_help) { # {{{
 	local $" = ", ";
 	print<<EOF;
 Usage:	$0 [options] {@wms}
@@ -90,7 +90,8 @@
     -c, --clear    - remove empty menus
     -p, --promote  - promote submenus with single entry
     -s, --strip    - strip 1st level menu
-    -m, --nomenu   - don't add additional menu info (valid for blackbox, fluxbox, openbox, xfce4)
+    -m, --nomenu   - don't add additional menu info
+                     (valid for blackbox, fluxbox, openbox, xfce4)
 
     -r, --xterm=   - set x terminal application
                      default: "$defopt{xterm}"
@@ -102,7 +103,7 @@
 
 EOF
 	exit;
-}
+} # }}}
 
 unless (exists $ARGV[0]) {
 	local $" = ", ";
@@ -139,6 +140,31 @@
 foreach my $opt (keys %opt) {
 	$opt{$opt} = $rcopt{$opt} unless defined $opt{$opt};
 	$opt{$opt} = $defopt{$opt} unless defined $opt{$opt};
+	$opt{$opt} =~ s/\${HOME}/$ENV{'HOME'}/go;
+	print "$opt => $opt{$opt}\n";
+}
+
+# check dependencies
+$opt{exec}=1 if $opt{exec_full};
+if ($opt{icons_scale}) {
+	if ( length $opt{icons_dir} ) {
+		my $conv = (split /\s/, $opt{convert})[0];
+		if ( length `which $conv` ) {
+			$opt{icons} = 1;
+			$opt{icons_full} = 1;
+		} else {
+			$opt{icons_scale} = 0;
+			warn "$conv is not executable, not scaling icons.\n";
+		}
+	} else {
+		$opt{icons_scale} = 0;
+		warn "Icons destination directory is not specified, not scaling.\n";
+	}
+}
+$opt{encoding}="utf8" if $opt{utf};
+
+print "After checking:\n";
+foreach my $opt (keys %opt) {
 	print "$opt => $opt{$opt}\n";
 }
 exit;
@@ -354,7 +380,7 @@
 	  foreach grep length, split /;+/, $tags{Categories};
 
 	$file =~ s/\.desktop$//;
-	$desktop{$File::Find::name} = [ $file, $utfname, $tags{Icon}, $tags{Exec} ];
+	$desktop{$File::Find::name} = [$file, $utfname, $tags{Icon}, $tags{Exec}];
 } # }}}
 
 # read XDG menu specification
@@ -557,7 +583,7 @@
 		$mno=$menustack[$#menustack];
 		$#menustack--;
 		$level--;
-		$parent =~ s/(.*):.*?$/$1/ if length $name;
+		$parent =~ s/(.*):.*?$/$1/;
 		next;
 	}
 	if($tag eq 'include') {
@@ -669,8 +695,9 @@
 		}
 		next;
 	}
-	if(($tag=~/^\/(name|directory|and|or|not|category|mergefile)$/)&& $include) {
-		warn "warning: XDG file corrupted!\n" if $o_verbose;
+	if( $o_verbose && $include &&
+		( $tag=~/^\/(name|directory|and|or|not|category|mergefile)$/ )) {
+		warn "warning: XDG file corrupted!\n";
 	}
 	warn "Omitted tag: $tag\n" if $o_tags;
 }
@@ -748,10 +775,13 @@
 
 # WM functions {{{
 $level="";
+sub cmpdname {
+	return $desktop{$a}[1] cmp $desktop{$b}[1];
+}
 sub icewm { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		$name = $$d[1];
 		$name =~ s/\"/\\\"/g;
@@ -773,7 +803,7 @@
 sub blackbox { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		if($menu[$no]{$entry} < 0) {
 			$apps .= "$level"."[exec] ($$d[1]) {$$d[3]}\n";
@@ -791,7 +821,7 @@
 sub wmakerold { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		my $name = $$d[1];
 		$name =~ s/\"/\\\"/g;
@@ -811,7 +841,7 @@
 sub wmaker { # {{{
 	my ($no, $coma)=@_;
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		$name = $$d[1];
 		$name =~ s/\"/\\\"/g;
@@ -843,7 +873,7 @@
 sub xfce4 {
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		$name = ($$d[1] =~ /["&<>]/) ? xmlname($$d[1]) : $$d[1];
 		if($menu[$no]{$entry} < 0) {
@@ -889,7 +919,7 @@
 	my $apps = "";
 	my $this_menu = "";
 	$this_menu .= qq(Popup "$file"\n\tTitle "$basename"\n);
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		if($menu[$no]{$entry} < 0) {
 			$name = $$d[1];
@@ -908,7 +938,7 @@
 sub fvwm2 { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		( my $name = $$d[1] ) =~ s/\"/\\\"/g;
 		if($menu[$no]{$entry}<0) {
@@ -935,7 +965,7 @@
 	my $apps = "";
 	my $this_menu = "";
 	$this_menu .= qq(DestroyMenu $file\nAddToMenu $file "$basename" Title\n);
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		my $icon = "";
 		$icon = $$d[2] if $opt{icons};
@@ -957,7 +987,7 @@
 sub olvwm { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		( my $name = $$d[1] ) =~ s/\"/\\\"/g;
 		if($menu[$no]{$entry}<0) {
@@ -976,7 +1006,7 @@
 sub qvwm { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		( my $name = $$d[1] ) =~ s/\"/\\\"/g;
 		if($menu[$no]{$entry} < 0) {
@@ -998,7 +1028,7 @@
 	my $no=$_[0];
 	my $name;
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		( my $name = $$d[1] ) =~ s/\"/\\\"/g;
 		if($menu[$no]{$entry}<0) {
@@ -1021,7 +1051,7 @@
 	open $F_OUT, ">> $dir/$mfile.menu" or warn "$dir/$mfile.menu: $!\n";
 	print $F_OUT qq("$title"\n);
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		$name=encode($opt{enc},$$d[1]);
 		$name=~s/\"/\'/g;
@@ -1063,7 +1093,7 @@
 sub fbpanel { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		if($menu[$no]{$entry}<0) {
 			$apps .=
@@ -1088,7 +1118,7 @@
 sub openbox { # {{{
 	my $no=$_[0];
 	my $apps="";
-	foreach my $entry (sort {$desktop{$a}[1] cmp $desktop{$b}[1]} keys %{$menu[$no]}) {
+	foreach my $entry (sort cmpdname keys %{$menu[$no]}) {
 		my $d = $desktop{$entry};
 		if($menu[$no]{$entry}<0) {
 			$apps .=
@@ -1145,7 +1175,7 @@
 }
 if($o_output eq "xfce4") {
 	print "<xfdesktop-menu>\n";
-	print "<title name=\"Desktop Menu\" visible=\"yes\"/>\n" unless $opt{nomenu};
+	print qq(<title name="Desktop Menu" visible="yes"/>\n) unless $opt{nomenu};
 	$level.="	";
 	xfce4($opt{strip});
 	print "</xfdesktop-menu>\n";
@@ -1241,7 +1271,7 @@
 }
 if($o_output eq "openbox") { # {{{
 	print "<openbox_menu>\n" unless $opt{nomenu};
-	print "<menu id=\"root-menu\" label=\"PLD Linux\">\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};
================================================================

---- CVS-web:
    http://cvs.pld-linux.org/vfmg/vfmg?r1=1.73.2.16&r2=1.73.2.17&f=u




More information about the pld-cvs-commit mailing list