mirror of
https://github.com/gryf/wmaker.git
synced 2025-12-19 20:38:08 +01:00
Removed carriage returns added by error to this file.
This commit is contained in:
714
util/wkdemenu.pl
714
util/wkdemenu.pl
@@ -1,357 +1,357 @@
|
|||||||
#!/usr/bin/perl
|
#!/usr/bin/perl
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# kde2wmaker.pl:
|
# kde2wmaker.pl:
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# This script, made for users of Window Maker (http://windowmaker.org) is to
|
# This script, made for users of Window Maker (http://windowmaker.org) is to
|
||||||
# be used along with KDE (http://www.kde.org).
|
# be used along with KDE (http://www.kde.org).
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# The default directory, /usr/share/applnk, will contain various
|
# The default directory, /usr/share/applnk, will contain various
|
||||||
# sub-directories such as Development, Editors, Internet, etc. If for some
|
# sub-directories such as Development, Editors, Internet, etc. If for some
|
||||||
# reason, you wish to use an alternate (parent) directory that contains the
|
# reason, you wish to use an alternate (parent) directory that contains the
|
||||||
# various applnk files, it can be specified on the command line.
|
# various applnk files, it can be specified on the command line.
|
||||||
#
|
#
|
||||||
# The directory, if an alternate is specified, MUST be a parent directory to
|
# The directory, if an alternate is specified, MUST be a parent directory to
|
||||||
# any/all sub-directories.
|
# any/all sub-directories.
|
||||||
#
|
#
|
||||||
# Usage: kde2wmaker.pl [ Options... ]
|
# Usage: kde2wmaker.pl [ Options... ]
|
||||||
#
|
#
|
||||||
# Options:
|
# Options:
|
||||||
#
|
#
|
||||||
# -d <KDE App.kdelnk dir>
|
# -d <KDE App.kdelnk dir>
|
||||||
# -f <output menufile>
|
# -f <output menufile>
|
||||||
# -t <X terminal application>
|
# -t <X terminal application>
|
||||||
#
|
#
|
||||||
# When the script is run, it will write out a proper Window Maker "External
|
# When the script is run, it will write out a proper Window Maker "External
|
||||||
# Menu" entry, that can be included in the menu. When the External Menu has
|
# Menu" entry, that can be included in the menu. When the External Menu has
|
||||||
# been correctly configured, the root menu will display a sub-menu containing
|
# been correctly configured, the root menu will display a sub-menu containing
|
||||||
# all of the KDE related items found. The script only needs to be run when/if
|
# all of the KDE related items found. The script only needs to be run when/if
|
||||||
# KDE is updated.
|
# KDE is updated.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Installation and Configuration:
|
# Installation and Configuration:
|
||||||
#
|
#
|
||||||
# 1) If /usr/bin/perl is not the location of the perl binary on your system,
|
# 1) If /usr/bin/perl is not the location of the perl binary on your system,
|
||||||
# the first line should be changed to reflect upon it's location.
|
# the first line should be changed to reflect upon it's location.
|
||||||
# 2) Run the script.
|
# 2) Run the script.
|
||||||
# 3) Configure Window Maker's menu by editing ~/GNUstep/Defaults/WMRootMenu
|
# 3) Configure Window Maker's menu by editing ~/GNUstep/Defaults/WMRootMenu
|
||||||
# This could be done with any text editor, or by using WPrefs. Insert
|
# This could be done with any text editor, or by using WPrefs. Insert
|
||||||
# the following line (if done with a text editor) into the WMRootMenu file.
|
# the following line (if done with a text editor) into the WMRootMenu file.
|
||||||
# ("External Menu", OPEN_MENU, "$HOME/.kde2wmaker.menu"),
|
# ("External Menu", OPEN_MENU, "$HOME/.kde2wmaker.menu"),
|
||||||
# If done using WPrefs, simply "Add External Menu" from the drop down menu,
|
# If done using WPrefs, simply "Add External Menu" from the drop down menu,
|
||||||
# then type: $HOME/.kde2wmaker.menu into the "Menu Path/Directory List"
|
# then type: $HOME/.kde2wmaker.menu into the "Menu Path/Directory List"
|
||||||
# textbox.
|
# textbox.
|
||||||
# 4) Some KDE entries, such as "Pine" will require a terminal to
|
# 4) Some KDE entries, such as "Pine" will require a terminal to
|
||||||
# execute it. There is a terminal variable below. You may use any
|
# execute it. There is a terminal variable below. You may use any
|
||||||
# terminal, XTerm is the default. Any command line options such as:
|
# terminal, XTerm is the default. Any command line options such as:
|
||||||
# -fg -bg, etc. can be specified in this variable as well.
|
# -fg -bg, etc. can be specified in this variable as well.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Michael Hokenson - logan@dct.com
|
# Michael Hokenson - logan@dct.com
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
#---------------------------------------------------------------------
|
#---------------------------------------------------------------------
|
||||||
#
|
#
|
||||||
# 21st January 2001.
|
# 21st January 2001.
|
||||||
#
|
#
|
||||||
# This script has been competely re-written to allow recursion of the
|
# This script has been competely re-written to allow recursion of the
|
||||||
# KDE menu directories to an arbitrary depth, fixing a major
|
# KDE menu directories to an arbitrary depth, fixing a major
|
||||||
# functional limitation in the original script. To do this, I have
|
# functional limitation in the original script. To do this, I have
|
||||||
# rewritten the code to traverse directories recursively, introducing
|
# rewritten the code to traverse directories recursively, introducing
|
||||||
# a subroutine, process_dir() to carry out the task.
|
# a subroutine, process_dir() to carry out the task.
|
||||||
#
|
#
|
||||||
# wkdemenu.pl provides an excellent extension to the user interface in
|
# wkdemenu.pl provides an excellent extension to the user interface in
|
||||||
# Window Maker, working well with the "Generated Submenu" feature.
|
# Window Maker, working well with the "Generated Submenu" feature.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Summary of New Features
|
# Summary of New Features
|
||||||
# -----------------------
|
# -----------------------
|
||||||
#
|
#
|
||||||
# Added support for menus of arbitrary depth.
|
# Added support for menus of arbitrary depth.
|
||||||
#
|
#
|
||||||
# Added basic internationalisation based on KDE's language
|
# Added basic internationalisation based on KDE's language
|
||||||
# setting. The language is taken from "~/.kde/share/config/kdeglobals"
|
# setting. The language is taken from "~/.kde/share/config/kdeglobals"
|
||||||
# or from "~/.kderc".
|
# or from "~/.kderc".
|
||||||
#
|
#
|
||||||
# Corrected the generation of menu names, incorporating
|
# Corrected the generation of menu names, incorporating
|
||||||
# internationalisation, where appropriate.
|
# internationalisation, where appropriate.
|
||||||
#
|
#
|
||||||
# Changed the double quotes to two single quotes in application names
|
# Changed the double quotes to two single quotes in application names
|
||||||
# so that they do not break the Menu parser in Window Maker.
|
# so that they do not break the Menu parser in Window Maker.
|
||||||
#
|
#
|
||||||
# Stripped off the arguments to commands on the Exec= line, except in
|
# Stripped off the arguments to commands on the Exec= line, except in
|
||||||
# a few KDE specific cases (e.g. kfmclient). The extra options are
|
# a few KDE specific cases (e.g. kfmclient). The extra options are
|
||||||
# only usable by KDE and were preventing many applications from
|
# only usable by KDE and were preventing many applications from
|
||||||
# launching, since they could parse the option %c or %s, for example.
|
# launching, since they could parse the option %c or %s, for example.
|
||||||
# This "feature" will probably need a more formal or interactive way
|
# This "feature" will probably need a more formal or interactive way
|
||||||
# of specifying exceptions in the future.
|
# of specifying exceptions in the future.
|
||||||
#
|
#
|
||||||
# Added a command line option for specifying the X terminal to
|
# Added a command line option for specifying the X terminal to
|
||||||
# use. This still defaults to xterm, but could be used to specify
|
# use. This still defaults to xterm, but could be used to specify
|
||||||
# aterm, etc.
|
# aterm, etc.
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# To Do
|
# To Do
|
||||||
# -----
|
# -----
|
||||||
#
|
#
|
||||||
# Programmatically determine the system location for the KDE menu
|
# Programmatically determine the system location for the KDE menu
|
||||||
# directory.
|
# directory.
|
||||||
#
|
#
|
||||||
# Organise the output alphabetically, with directories appearing
|
# Organise the output alphabetically, with directories appearing
|
||||||
# before files.
|
# before files.
|
||||||
#
|
#
|
||||||
# Find a better way to parse the Exec= lines. In the short term,
|
# Find a better way to parse the Exec= lines. In the short term,
|
||||||
# provide a user mechanism for generating exceptions to the curtailing
|
# provide a user mechanism for generating exceptions to the curtailing
|
||||||
# of command line options. In the longer term, emulate what KDE does
|
# of command line options. In the longer term, emulate what KDE does
|
||||||
# with these command line features.
|
# with these command line features.
|
||||||
#
|
#
|
||||||
# Optimise the code. This is my first proper PERL script, and I'm sure
|
# Optimise the code. This is my first proper PERL script, and I'm sure
|
||||||
# there's a better way. =)
|
# there's a better way. =)
|
||||||
#
|
#
|
||||||
#
|
#
|
||||||
# Malcolm Cowe, malk@271m.net.
|
# Malcolm Cowe, malk@271m.net.
|
||||||
|
|
||||||
###
|
###
|
||||||
### Variables
|
### Variables
|
||||||
###
|
###
|
||||||
|
|
||||||
### The External Menu file, this should NEVER point to the root menu file
|
### The External Menu file, this should NEVER point to the root menu file
|
||||||
$menufile = "$ENV{'HOME'}/.kde2wmaker.menu";
|
$menufile = "$ENV{'HOME'}/.kde2wmaker.menu";
|
||||||
|
|
||||||
### Base directory, location of all the KDE AppName.kdelnk files +
|
### Base directory, location of all the KDE AppName.kdelnk files +
|
||||||
### Malcolm Cowe, 21/01/2001.
|
### Malcolm Cowe, 21/01/2001.
|
||||||
### Change the base directory default to point at the system files,
|
### Change the base directory default to point at the system files,
|
||||||
### not the user files. Need to find a way of determining the prefix
|
### not the user files. Need to find a way of determining the prefix
|
||||||
### programmatically.
|
### programmatically.
|
||||||
$prefix="/usr";
|
$prefix="/usr";
|
||||||
$basedir = $prefix."/share/applnk";
|
$basedir = $prefix."/share/applnk";
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
|
|
||||||
### Terminal to use. May be specified on the command line with the -t
|
### Terminal to use. May be specified on the command line with the -t
|
||||||
### switch.
|
### switch.
|
||||||
$term = "xterm";
|
$term = "xterm";
|
||||||
|
|
||||||
### Print to STDOUT, default is YES, a filename is specified
|
### Print to STDOUT, default is YES, a filename is specified
|
||||||
$stdout = 1;
|
$stdout = 1;
|
||||||
|
|
||||||
### + Malcolm Cowe, 21/01/2001.
|
### + Malcolm Cowe, 21/01/2001.
|
||||||
### KDE Locale Support
|
### KDE Locale Support
|
||||||
|
|
||||||
### Support for KDE internationalisation so that menu entries appear
|
### Support for KDE internationalisation so that menu entries appear
|
||||||
### in the language chosen by the user. Also gets around some problems
|
### in the language chosen by the user. Also gets around some problems
|
||||||
### with the KDE applnk file format.
|
### with the KDE applnk file format.
|
||||||
|
|
||||||
### The Locale is stored in one of two places, depending on the
|
### The Locale is stored in one of two places, depending on the
|
||||||
### version of KDE that is running.
|
### version of KDE that is running.
|
||||||
$kde2cf="$ENV{'HOME'}/.kde/share/config/kdeglobals";
|
$kde2cf="$ENV{'HOME'}/.kde/share/config/kdeglobals";
|
||||||
$kde1cf="$ENV{'HOME'}/.kderc";
|
$kde1cf="$ENV{'HOME'}/.kderc";
|
||||||
$kdeLanguage = "";
|
$kdeLanguage = "";
|
||||||
|
|
||||||
### Open the file, if it exists, otherwise provide a default language.
|
### Open the file, if it exists, otherwise provide a default language.
|
||||||
unless(open KDERC, $kde2cf) {
|
unless(open KDERC, $kde2cf) {
|
||||||
unless(open KDERC, $kde1cf) {
|
unless(open KDERC, $kde1cf) {
|
||||||
$kdeLanguage = "C";
|
$kdeLanguage = "C";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if ( $kdeLanguage == ""){
|
if ( $kdeLanguage == ""){
|
||||||
$kdeLanguage = "C";
|
$kdeLanguage = "C";
|
||||||
### Search through the contents of the file
|
### Search through the contents of the file
|
||||||
while($line = <KDERC>) {
|
while($line = <KDERC>) {
|
||||||
chomp($line);
|
chomp($line);
|
||||||
### Grab the Language
|
### Grab the Language
|
||||||
if($line =~ /^Language=/) {
|
if($line =~ /^Language=/) {
|
||||||
$kdeLanguage = $line;
|
$kdeLanguage = $line;
|
||||||
$kdeLanguage =~ s/Language=//;
|
$kdeLanguage =~ s/Language=//;
|
||||||
($kdeLanguage) = split /:/,$kdeLanguage;
|
($kdeLanguage) = split /:/,$kdeLanguage;
|
||||||
last;
|
last;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
close(KDERC);
|
close(KDERC);
|
||||||
}
|
}
|
||||||
|
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
|
|
||||||
|
|
||||||
###
|
###
|
||||||
### Begin Main Iteration.
|
### Begin Main Iteration.
|
||||||
###
|
###
|
||||||
|
|
||||||
### Process command line arguments
|
### Process command line arguments
|
||||||
foreach $arg(@ARGV) {
|
foreach $arg(@ARGV) {
|
||||||
if($last) {
|
if($last) {
|
||||||
if($last eq "-d") {
|
if($last eq "-d") {
|
||||||
$basedir = $arg;
|
$basedir = $arg;
|
||||||
}
|
}
|
||||||
elsif($last eq "-f") {
|
elsif($last eq "-f") {
|
||||||
$menufile = $arg;
|
$menufile = $arg;
|
||||||
$stdout = 0;
|
$stdout = 0;
|
||||||
}
|
}
|
||||||
### + Malcolm Cowe, 21/01/2001.
|
### + Malcolm Cowe, 21/01/2001.
|
||||||
elsif($last eq "-t") {
|
elsif($last eq "-t") {
|
||||||
$term = $arg;
|
$term = $arg;
|
||||||
}
|
}
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
undef($last);
|
undef($last);
|
||||||
} elsif($arg =~ /^-/) {
|
} elsif($arg =~ /^-/) {
|
||||||
### + Malcolm Cowe, 21/01/2001.
|
### + Malcolm Cowe, 21/01/2001.
|
||||||
if($arg =~ /^-[dfst]$/) {
|
if($arg =~ /^-[dfst]$/) {
|
||||||
$last = $arg;
|
$last = $arg;
|
||||||
} else {
|
} else {
|
||||||
die("Unknown option: $arg\n\nUsage: kde2wmaker.pl [ Options... ]\n".
|
die("Unknown option: $arg\n\nUsage: kde2wmaker.pl [ Options... ]\n".
|
||||||
"\n\tOptions:\n\n".
|
"\n\tOptions:\n\n".
|
||||||
"\t\t-d <KDE App.kdelnk dir>\n".
|
"\t\t-d <KDE App.kdelnk dir>\n".
|
||||||
"\t\t-f <output menufile>\n".
|
"\t\t-f <output menufile>\n".
|
||||||
"\t\t-t <X terminal application>\n");
|
"\t\t-t <X terminal application>\n");
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
&Usage;
|
&Usage;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
### Make sure the KDE Menu's Top Level Directory exists.
|
### Make sure the KDE Menu's Top Level Directory exists.
|
||||||
if(-d $basedir) {
|
if(-d $basedir) {
|
||||||
|
|
||||||
### See if there is an old menu file. If there is, rename it
|
### See if there is an old menu file. If there is, rename it
|
||||||
unless($stdout) {
|
unless($stdout) {
|
||||||
if(-e $menufile) {
|
if(-e $menufile) {
|
||||||
print STDERR "\tFound $menufile, renaming\n\n";
|
print STDERR "\tFound $menufile, renaming\n\n";
|
||||||
rename $menufile, "$menufile.old";
|
rename $menufile, "$menufile.old";
|
||||||
}
|
}
|
||||||
open(MENUFILE,"> $menufile");
|
open(MENUFILE,"> $menufile");
|
||||||
}
|
}
|
||||||
|
|
||||||
### Start the main menu entry
|
### Start the main menu entry
|
||||||
if($stdout) {
|
if($stdout) {
|
||||||
### + Malcolm Cowe, 21/01/2001.
|
### + Malcolm Cowe, 21/01/2001.
|
||||||
print STDOUT "\"KDE Applications\" MENU\n";
|
print STDOUT "\"KDE Applications\" MENU\n";
|
||||||
process_dir (STDOUT, $basedir);
|
process_dir (STDOUT, $basedir);
|
||||||
print STDOUT "\"KDE Applications\" END\n";
|
print STDOUT "\"KDE Applications\" END\n";
|
||||||
} else {
|
} else {
|
||||||
print MENUFILE "\"KDE Applications\" MENU\n";
|
print MENUFILE "\"KDE Applications\" MENU\n";
|
||||||
process_dir (MENUFILE, $basedir);
|
process_dir (MENUFILE, $basedir);
|
||||||
print MENUFILE "\"KDE Applications\" END\n";
|
print MENUFILE "\"KDE Applications\" END\n";
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
### Error out :/
|
### Error out :/
|
||||||
print STDERR "ERROR:\n\t$basedir not found\n\tTry another directory.\n";
|
print STDERR "ERROR:\n\t$basedir not found\n\tTry another directory.\n";
|
||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
# End of Main Iteration.
|
# End of Main Iteration.
|
||||||
|
|
||||||
### + Malcolm Cowe, 21/01/2001.
|
### + Malcolm Cowe, 21/01/2001.
|
||||||
|
|
||||||
### process_dir() works it's way through each file and directory in
|
### process_dir() works it's way through each file and directory in
|
||||||
### the tree and generates the menu output to be used by Window Maker.
|
### the tree and generates the menu output to be used by Window Maker.
|
||||||
|
|
||||||
sub process_dir {
|
sub process_dir {
|
||||||
|
|
||||||
my $OUT = @_[0];
|
my $OUT = @_[0];
|
||||||
my $path = @_[1];
|
my $path = @_[1];
|
||||||
my $item;
|
my $item;
|
||||||
my @tld;
|
my @tld;
|
||||||
my ($gotLang, $gotDef, $gotExec);
|
my ($gotLang, $gotDef, $gotExec);
|
||||||
my $inDesktop;
|
my $inDesktop;
|
||||||
|
|
||||||
### tld == Top Level Directory.
|
### tld == Top Level Directory.
|
||||||
opendir(TLD, $path) || return;
|
opendir(TLD, $path) || return;
|
||||||
@tld = readdir(TLD);
|
@tld = readdir(TLD);
|
||||||
closedir(TLD);
|
closedir(TLD);
|
||||||
|
|
||||||
foreach $item(@tld) {
|
foreach $item(@tld) {
|
||||||
$gotLang = 0;
|
$gotLang = 0;
|
||||||
$gotDef = 0;
|
$gotDef = 0;
|
||||||
$gotExec = 0;
|
$gotExec = 0;
|
||||||
$inDesktop = 0;
|
$inDesktop = 0;
|
||||||
|
|
||||||
### Ignore hidden files and directories.
|
### Ignore hidden files and directories.
|
||||||
unless($item =~ /^\./) {
|
unless($item =~ /^\./) {
|
||||||
if (-d "$path/$item") {
|
if (-d "$path/$item") {
|
||||||
print $OUT "\"$item\" MENU\n";
|
print $OUT "\"$item\" MENU\n";
|
||||||
process_dir($OUT, "$path/$item");
|
process_dir($OUT, "$path/$item");
|
||||||
print $OUT "\"$item\" END\n";
|
print $OUT "\"$item\" END\n";
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
# Process the contents of the applnk file to generate a menu
|
# Process the contents of the applnk file to generate a menu
|
||||||
# entry for the application.
|
# entry for the application.
|
||||||
|
|
||||||
open(SUB,"$path/$item");
|
open(SUB,"$path/$item");
|
||||||
|
|
||||||
### Search through the contents of the file
|
### Search through the contents of the file
|
||||||
while($line = <SUB>) {
|
while($line = <SUB>) {
|
||||||
chomp($line);
|
chomp($line);
|
||||||
### Get the application's name. This is stored in the
|
### Get the application's name. This is stored in the
|
||||||
### [Desktop Entry] section of the applnk description.
|
### [Desktop Entry] section of the applnk description.
|
||||||
###
|
###
|
||||||
### The application's name can have one of these forms:
|
### The application's name can have one of these forms:
|
||||||
### Name=
|
### Name=
|
||||||
### Name[]=
|
### Name[]=
|
||||||
### Name[language]=
|
### Name[language]=
|
||||||
###
|
###
|
||||||
### Get the default name anyway (one of the first two, just
|
### Get the default name anyway (one of the first two, just
|
||||||
### in case there is no language specific entry).
|
### in case there is no language specific entry).
|
||||||
if ($inDesktop) {
|
if ($inDesktop) {
|
||||||
# Make sure we are in fact still in the [Desktop Entry]
|
# Make sure we are in fact still in the [Desktop Entry]
|
||||||
# section.
|
# section.
|
||||||
if ($line =~ /^\[/) {
|
if ($line =~ /^\[/) {
|
||||||
$inDesktop = 0;
|
$inDesktop = 0;
|
||||||
}
|
}
|
||||||
### Extract the Name of the Application
|
### Extract the Name of the Application
|
||||||
elsif ($line =~ /^Name=/ && (!$gotDef || !gotLang)) {
|
elsif ($line =~ /^Name=/ && (!$gotDef || !gotLang)) {
|
||||||
$pname = $line;
|
$pname = $line;
|
||||||
$pname =~ s/^Name=//s;
|
$pname =~ s/^Name=//s;
|
||||||
$pname =~ s/\"/\'\'/g;
|
$pname =~ s/\"/\'\'/g;
|
||||||
$gotDef = 1;
|
$gotDef = 1;
|
||||||
}
|
}
|
||||||
elsif ($line =~ /^Name\[\]=/ && (!$gotDef || !gotLang)) {
|
elsif ($line =~ /^Name\[\]=/ && (!$gotDef || !gotLang)) {
|
||||||
$pname = $line;
|
$pname = $line;
|
||||||
$pname =~ s/^Name\[\]=//s;
|
$pname =~ s/^Name\[\]=//s;
|
||||||
$pname =~ s/\"/\'\'/g;
|
$pname =~ s/\"/\'\'/g;
|
||||||
$gotDef = 1;
|
$gotDef = 1;
|
||||||
}
|
}
|
||||||
elsif ($line =~ /^Name\[$kdeLanguage\]=/ && !$gotLang) {
|
elsif ($line =~ /^Name\[$kdeLanguage\]=/ && !$gotLang) {
|
||||||
$pname = $line;
|
$pname = $line;
|
||||||
$pname =~ s/^Name\[$kdeLanguage\]=//s;
|
$pname =~ s/^Name\[$kdeLanguage\]=//s;
|
||||||
$pname =~ s/\"/\'\'/g;
|
$pname =~ s/\"/\'\'/g;
|
||||||
$gotLang = 1;
|
$gotLang = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
### Grab the command
|
### Grab the command
|
||||||
if($line =~ /^Exec=/ && !$gotExec) {
|
if($line =~ /^Exec=/ && !$gotExec) {
|
||||||
$pargs = $line;
|
$pargs = $line;
|
||||||
$pargs =~ s/^Exec=//s;
|
$pargs =~ s/^Exec=//s;
|
||||||
# Strip off all command line options unless the
|
# Strip off all command line options unless the
|
||||||
# application is "kfmclient".
|
# application is "kfmclient".
|
||||||
if ($pargs !~ /^kfmclient/
|
if ($pargs !~ /^kfmclient/
|
||||||
&& $pargs !~ /^kcmshell/
|
&& $pargs !~ /^kcmshell/
|
||||||
&& $pargs !~ /^kdesu/){
|
&& $pargs !~ /^kdesu/){
|
||||||
($pargs) = split(/\s/, $pargs);
|
($pargs) = split(/\s/, $pargs);
|
||||||
}
|
}
|
||||||
$gotExec = 1;
|
$gotExec = 1;
|
||||||
}
|
}
|
||||||
### If Terminal=1, then we need to execute a term
|
### If Terminal=1, then we need to execute a term
|
||||||
if($line =~ /^Terminal=1$/) {
|
if($line =~ /^Terminal=1$/) {
|
||||||
$pargs = "$term -T \"$pname\" -e $pargs";
|
$pargs = "$term -T \"$pname\" -e $pargs";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elsif ($line =~ /^\[Desktop\ Entry\]/ ||
|
elsif ($line =~ /^\[Desktop\ Entry\]/ ||
|
||||||
$line =~ /^\[KDE\ Desktop\ Entry\]/) {
|
$line =~ /^\[KDE\ Desktop\ Entry\]/) {
|
||||||
$inDesktop = 1;
|
$inDesktop = 1;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
close(SUB);
|
close(SUB);
|
||||||
### Begin printing menu items
|
### Begin printing menu items
|
||||||
print $OUT "\t\"$pname\" EXEC $pargs\n";
|
print $OUT "\t\"$pname\" EXEC $pargs\n";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
### - Malcolm Cowe, 21/01/2001.
|
### - Malcolm Cowe, 21/01/2001.
|
||||||
|
|||||||
Reference in New Issue
Block a user