kwo pushed a commit to branch master.

http://git.enlightenment.org/e16/e16.git/commit/?id=8a62cc19f9aa73d059d5d51f14b1038efcb85234

commit 8a62cc19f9aa73d059d5d51f14b1038efcb85234
Author: Kim Woelders <[email protected]>
Date:   Thu Oct 3 17:50:51 2019 +0200

    e_gen_menu: menu generation speedups
    
    Patch by Thanatermesis
---
 scripts/e_gen_menu | 37 ++++++++++++++++++++++---------------
 1 file changed, 22 insertions(+), 15 deletions(-)

diff --git a/scripts/e_gen_menu b/scripts/e_gen_menu
index 6a9818ec..0cd3175a 100755
--- a/scripts/e_gen_menu
+++ b/scripts/e_gen_menu
@@ -199,14 +199,28 @@ sub ProcessFile {
                if (/^\[(\w+)\s+(\w+)/) {
                        # Note: This breaks if [Desktop Entry] is not the first
                        last if (($1 ne "Desktop") or ($2 ne "Entry"));
-               } elsif (/^Name=(.*)$/) {
-                       $Name = $1;
-               } elsif ($loc1 && /^Name\[$loc1\]=(.*)$/) {
-                       $Nam1 = $1;
-               } elsif ($loc2 && /^Name\[$loc2\]=(.*)$/) {     
-                       $Nam2 = $1;
-               } elsif ($loc3 && /^Name\[$loc3\]=(.*)$/) {     
-                       $Nam3 = $1;
+               }
+
+               # skip early for the unneeded ones (important optimization):
+               next if 
(/^(#|Comment|GenericName|Keywords|TryExec|Icon\[|StartupNotify|MimeType|NotShowIn|DBusActivatable|X-|Version|TargetEnvironment|MultipleArgs|Encoding|Actions)/);
+
+               if (/^Name/) {
+                       if (/^Name=(.*)$/) {
+                               $Name = $1;
+                       } elsif ($loc1 && /^Name\[$loc1\]=(.*)$/) {
+                               $Nam1 = $1;
+                       } elsif ($loc2 && /^Name\[$loc2\]=(.*)$/) {
+                               $Nam2 = $1;
+                       } elsif ($loc3 && /^Name\[$loc3\]=(.*)$/) {
+                               $Nam3 = $1;
+                       }
+                       if ($Nam1 || $Nam2 || $Nam3) {
+                               if    ($Nam1) { $Name = $Nam1; }
+                               elsif ($Nam2) { $Name = $Nam2; }
+                               else          { $Name = $Nam3; }
+                               $Name = `echo "$Name" | iconv -f UTF-8` if 
$DoIconv;
+                               chomp($Name);
+                       }
                } elsif (/^Exec=(.*)$/) {
                        $Exec = $1;
                } elsif (/^Icon=(.*)$/) {
@@ -233,13 +247,6 @@ sub ProcessFile {
                } elsif (/^NoDisplay=(.*)$/) {
                        $Ndis = $1;
                }
-               if ($Nam1 || $Nam2 || $Nam3) {
-                       if    ($Nam1) { $Name = $Nam1; }
-                       elsif ($Nam2) { $Name = $Nam2; }
-                       else          { $Name = $Nam3; }
-                       $Name = `echo "$Name" | iconv -f UTF-8` if $DoIconv;
-                       chomp($Name);
-               }
        }
        close FI;
 

-- 


Reply via email to