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

Reply via email to