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; --
