Author: sparky Date: Sat Nov 5 16:47:51 2005 GMT Module: vfmg Tag: DEVEL ---- Log message: - no case insensitive tags checking (some speed gained), can be much faster if not using 'lc' in cmpdname - don't use while(1) in cand, cnor, cor
---- Files affected: vfmg: vfmg (1.73.2.30 -> 1.73.2.31) ---- Diffs: ================================================================ Index: vfmg/vfmg diff -u vfmg/vfmg:1.73.2.30 vfmg/vfmg:1.73.2.31 --- vfmg/vfmg:1.73.2.30 Sat Nov 5 17:11:50 2005 +++ vfmg/vfmg Sat Nov 5 17:47:46 2005 @@ -453,10 +453,8 @@ my @iapps; # internal applications list my $name; my $firstrun=1; - while (1) { - my $tag = lc(gettag()); - last if($tag eq '/and'); - if($tag eq 'category') { + while ( (my $tag = gettag()) ne '/And') { + if($tag eq 'Category') { my $dir=getname(); if($firstrun) { foreach $name(0..$#happs) { @@ -471,11 +469,11 @@ gettag(); # must be </category> else GIGO and we don't care next; } - if($tag=~/^(and|or|not)$/) { + if($tag=~/^(And|Or|Not)$/) { my $tmpapps; - if ($tag eq 'or') { + if ($tag eq 'Or') { $tmpapps=cor(); - } elsif ($tag eq 'and') { + } elsif ($tag eq 'And') { $tmpapps=cand(); } else { $tmpapps=cnot(); @@ -500,10 +498,8 @@ sub cor { # {{{ my @iapps; # internal applications list my $name; - while (1) { - my $tag=lc(gettag()); - last if($tag eq '/or'); - if($tag eq 'category') { + while ( (my $tag = gettag()) ne '/Or') { + if($tag eq 'Category') { my $dir=getname(); foreach $name(0..$#happs) { $iapps[$name]=1 if exists $apps[$name]{$dir}; @@ -511,11 +507,11 @@ gettag(); # must be </category> else GIGO and we don't care next; } - if($tag=~/^(and|or|not)$/) { + if($tag=~/^(And|Or|Not)$/) { my $tmpapps; - if ($tag eq 'or') { + if ($tag eq 'Or') { $tmpapps=cor(); - } elsif ($tag eq 'and') { + } elsif ($tag eq 'And') { $tmpapps=cand(); } else { $tmpapps=cnot(); @@ -534,10 +530,8 @@ my @iapps; # internal applications list my $name; @[EMAIL PROTECTED]; - while (1) { - my $tag=lc(gettag()); - last if($tag eq '/not'); - if($tag eq 'category') { + while ( (my $tag = gettag()) ne '/Not') { + if($tag eq 'Category') { my $dir=getname(); foreach $name(0..$#iapps) { delete($iapps[$name]) if exists $iapps[$name]{$dir}; @@ -545,12 +539,12 @@ gettag(); # must be </category> else GIGO and we don't care next; } - if($tag=~/^(and|or|not)$/) { # I think it doesn't make any sense + if($tag=~/^(And|Or|Not)$/) { # I think it doesn't make any sense warn "How did you get here!?\n" if $o_verbose; my $tmpapps; - if ($tag eq 'or') { + if ($tag eq 'Or') { $tmpapps=cor(); - } elsif ($tag eq 'and') { + } elsif ($tag eq 'And') { $tmpapps=cand(); } else { $tmpapps=cnot(); @@ -570,8 +564,8 @@ my @tmp=grep -d, map {"$_/desktop-directories/"} @xdg_data_dirs; sub include($) { # {{{ my ($mno) = @_; - while ( (my $tag = lc(gettag())) ne "/include" ) { - if($tag eq 'category') { + while ( (my $tag = gettag()) ne "/Include" ) { + if($tag eq 'Category') { my $dir=getname(); foreach my $name(0..$#happs) { $menu[$mno]{$happs[$name]}=-1 @@ -580,11 +574,11 @@ gettag(); # must be </category> else GIGO and we don't care next; } - if($tag=~/^(and|or|not)$/) { + if($tag=~/^(And|Or|Not)$/) { my $tmpapps; - if ($tag eq 'or') { + if ($tag eq 'Or') { $tmpapps=cor(); - } elsif ($tag eq 'and') { + } elsif ($tag eq 'And') { $tmpapps=cand(); } else { $tmpapps=cnot(); @@ -598,7 +592,7 @@ next; } if( $o_verbose && - ( $tag=~/^\/(name|directory|and|or|not|category|mergefile)$/ )) { + ( $tag=~/^\/(name|directory|and|or|not|category|mergefile)$/i )) { warn "warning: XDG file corrupted!\n"; } warn "Omitted tag: $tag\n" if $o_tags; @@ -615,16 +609,16 @@ my $mno = $#menu; my $dirfile; - while ( (my $tag = lc(gettag())) ne "/menu" ) { - if($tag eq 'include') { + while ( (my $tag = gettag()) ne "/Menu" ) { + if($tag eq 'Include') { include($mno); next; } - if($tag eq 'menu') { + if($tag eq 'Menu') { menu($this_name, $mno); next; } - if($tag eq 'name') { + if($tag eq 'Name') { $name = getname(); $this_name = $parent_name .":". $name; $menu[$parent_number]{$this_name} = $mno; @@ -637,7 +631,7 @@ gettag(); # must be </name> else GIGO and we don't care next; } - if($tag eq 'directory') { + if($tag eq 'Directory') { $dirfile=getname(); my $lang=0; my $dname=""; @@ -701,7 +695,7 @@ gettag(); # must be </directory> else GIGO and we don't care next; } - if($tag eq 'mergefile') { + if($tag eq 'MergeFile') { my $name = getname(); gettag(); # must be </mergefile> else GIGO and we don't care my $ok; @@ -722,7 +716,7 @@ next; } if( $o_verbose && - ( $tag=~/^\/(name|directory|and|or|not|category|mergefile)$/ )) { + ( $tag=~/^\/(name|directory|and|or|not|category|mergefile)$/i )) { warn "warning: XDG file corrupted!\n"; } warn "Omitted tag: $tag\n" if $o_tags; @@ -733,7 +727,7 @@ } # }}} $#menu++; -while( (my $tag = lc(gettag())) ne "menu" ) { +while( (my $tag = gettag()) ne "Menu" ) { warn "Omitted tag: $tag\n" if $o_tags; } menu("", 0); @@ -824,6 +818,7 @@ sub cmpdname { return lc($desktop{$a}[1]) cmp lc($desktop{$b}[1]); + #return $desktop{$a}[1] cmp $desktop{$b}[1]; } sub DR17 { # {{{ ================================================================ ---- CVS-web: http://cvs.pld-linux.org/vfmg/vfmg?r1=1.73.2.30&r2=1.73.2.31&f=u _______________________________________________ pld-cvs-commit mailing list pld-cvs-commit@lists.pld-linux.org http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit