vfmg (DEVEL): vfmg - no case insensitive tags checking (some speed...

sparky sparky at pld-linux.org
Sat Nov 5 17:47:51 CET 2005


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;
 	@iapps=@apps;
-	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




More information about the pld-cvs-commit mailing list