vfmg (DEVEL): vfmg - killed DR17-advanced - support config files w...
sparky
sparky at pld-linux.org
Wed Dec 7 02:20:08 CET 2005
Author: sparky Date: Wed Dec 7 01:20:08 2005 GMT
Module: vfmg Tag: DEVEL
---- Log message:
- killed DR17-advanced
- support config files with multi-line options ('\' at final of the line,
like in sh)
- genericname only useful in DR17
- finally new DR17 options are configurable
---- Files affected:
vfmg:
vfmg (1.73.2.41 -> 1.73.2.42)
---- Diffs:
================================================================
Index: vfmg/vfmg
diff -u vfmg/vfmg:1.73.2.41 vfmg/vfmg:1.73.2.42
--- vfmg/vfmg:1.73.2.41 Sat Dec 3 00:37:36 2005
+++ vfmg/vfmg Wed Dec 7 02:20:03 2005
@@ -39,9 +39,8 @@
my $o_output;
$defopt{xterm}="$ENV{'VFMG_TERM'}" if $ENV{'VFMG_TERM'};
-my @wms = qw(ASCII DR17 DR17-advanced aewm afterstep blackbox enlightenment
- fbpanel fluxbox fvwm fvwm2 icewm metisse olvwm openbox qvwm wmaker
- wmaker-old xfce4 xpde);
+my @wms = qw(ASCII DR17 aewm afterstep blackbox enlightenment fbpanel fluxbox
+ fvwm fvwm2 icewm metisse olvwm openbox qvwm wmaker wmaker-old xfce4 xpde);
# %destdir and %iconsdir should only contain directories propsed by WM
my %destdir = (
@@ -74,6 +73,12 @@
'icons-fork!' => \$opt{icons_fork},
'icons-dir|d=s' => \$opt{icons_dir},
'icons-ext|T=s' => \$opt{icons_ext},
+ 'text-icon=s' => \$opt{text_icon},
+ 'wcnt-file=s' => \$opt{wcnt_file},
+ 'termapp-class=s'
+ => \$opt{termapp_class},
+ 'termapp-name=s'
+ => \$opt{termapp_name},
'utf8|u!' => \$opt{utf},
'encoding|E=s' => \$opt{encoding},
@@ -148,7 +153,6 @@
$o_output=$ARGV[0];
die "Unrecognized argument: $o_output\n"
unless grep { $o_output eq $_ } @wms;
-$o_output =~ s/-advanced//;
# vfmgrc {{{
my @rcFiles = (qw(/etc/vfmgrc), "$ENV{'HOME'}/.vfmgrc");
@@ -161,6 +165,7 @@
my $read = 1;
while (<F_IN>) {
next if ( /^\s*#/ );
+ $_ .= <F_IN> while s/\\\n$//;
$read = 0 if /^\[/;
if ( /^\[$o_output\]/ ) {
$read = 1;
@@ -177,6 +182,7 @@
foreach my $opt (keys %opt) {
$opt{$opt} = $rcopt{$opt} unless defined $opt{$opt};
$opt{$opt} = $defopt{$opt} unless defined $opt{$opt};
+ next unless defined $opt{$opt};
$opt{$opt} =~ s/\${HOME}/$ENV{'HOME'}/go;
}
@@ -410,7 +416,7 @@
warn "$File::Find::name: missing Name tag! using $utfname\n";
}
my $genname = "";
- if (length $tags{genericname}) {
+ if ($o_output eq "DR17" and length $tags{genericname}) {
if ($tags{enc} eq 'Legacy-Mixed') {
warn "$File::Find::name: Legacy-Mixed encoding is depreciated.\n";
@@ -912,7 +918,7 @@
unlink $$dr{icon};
my $icon = $$d[ICON];
- if ( exists $$dr{advanced} && not -r $icon ) {
+ if ( not -r $icon and defined $$dr{text_icon} ) {
( my $exe = $$dr{text_icon} ) =~ s/%1/"$name"/;
system($exe);
} else {
@@ -932,15 +938,25 @@
push @eapp, "-set-name",$name;
push @eapp, "-set-generic",$$d[GENNAME] if length $$d[GENNAME];
push @eapp, "-set-exe",$$d[EXEC];
- if ( exists $$dr{advanced} ) {
+ if ( defined $$dr{wcnt} ) {
if ( exists $$dr{wcnt}{$$d[FILENAME]} ) {
my $wcnt = $$dr{wcnt}{$$d[FILENAME]};
- push @eapp, "-set-win-class", $$wcnt[0] if defined $$wcnt[0];
+ push @eapp, "-set-win-class", $$wcnt[0]
+ if defined $$wcnt[0];
push @eapp, "-set-win-name", $$wcnt[1] if defined $$wcnt[1];
- push @eapp, "-set-win-title", $$wcnt[2] if defined $$wcnt[2];
+ push @eapp, "-set-win-title", $$wcnt[2]
+ if defined $$wcnt[2];
+ push @eapp, "-set-win-role", $$wcnt[3] if defined $$wcnt[3];
} else {
if ( $$d[TERM] == 1 ) {
- push @eapp, "-set-win-name", "Eterm-".$$d[BIN];
+ if ( defined $opt{termapp_class} ) {
+ (my $tapp = $opt{termapp_class}) =~ s/%1/$$d[BIN]/;
+ push @eapp, "-set-win-class", $tapp;
+ }
+ if ( defined $opt{termapp_name} ) {
+ (my $tapp = $opt{termapp_name}) =~ s/%1/$$d[BIN]/;
+ push @eapp, "-set-win-name", $tapp;
+ }
} else {
my $exe = (split /\s/, $$d[EXEC])[0];
$exe = ucfirst lc $exe;
@@ -1405,26 +1421,35 @@
}
EOF
close F_OUT; # }}}
- if ( $ARGV[0] eq "DR17-advanced" ) { # {{{
- warn "DR17-advanced !!!\n";
- open F_IN, "$ENV{HOME}/WIN_cnt" or die;
- $DR{wcnt} = {};
+
+ $opt{wcnt_file} = "" unless defined $opt{wcnt_file};
+ $DR{wcnt} = {};
+ foreach my $wcnt_file (split /\s*;\s*/, $opt{wcnt_file}) { # {{{
+ unless (open F_IN, $wcnt_file) {
+ warn "Can't open WCNT file: $!\n";
+ next;
+ }
while ( <F_IN> ) {
next if /^\s*#/;
next unless s/^\s*(\S+)//;
my $name = $1;
$DR{wcnt}{$name} = [undef, undef, undef];
- foreach my $num (0..2) {
- next unless s/^\s*"(([^"]|\")*?[^\\])"// or s/^\s*(\S+)//;
+ foreach my $num (0..3) {
+ last unless s/^\s*"(([^"]|\")*?[^\\])"// or s/^\s*(\S+)//;
$DR{wcnt}{$name}[$num] = $1 unless $1 eq "*";
}
+ warn "Omitted: $_\n" if length($_) and $o_verbose;
}
close F_IN;
- $DR{text_icon} = "convert -scale 64x64 -annotate 0,0,2,38 %1" .
- " -font /usr/share/fonts/TTF/VeraBd.ttf -pointsize 24" .
- " $DR{tmp}/blank.xpm $DR{icon}";
- $DR{advanced} = 1;
} # }}}
+ $DR{wcnt} = undef unless %{$DR{wcnt}};
+
+ $DR{text_icon} = $opt{text_icon};
+ if ( defined $DR{text_icon} ) {
+ $DR{text_icon} =~ s|\%in|$DR{tmp}/blank.xpm|g;
+ $DR{text_icon} =~ s|\%out|$DR{icon}|g;
+ }
+
DR17($opt{strip},$opt{destdir},"",\%DR);
unlink "blank.xpm";
unlink "icon.edc";
================================================================
---- CVS-web:
http://cvs.pld-linux.org/vfmg/vfmg?r1=1.73.2.41&r2=1.73.2.42&f=u
More information about the pld-cvs-commit
mailing list