Author: sparky                       Date: Tue Apr 18 16:08:58 2006 GMT
Module: vfmg                          Tag: HEAD
---- Log message:
- merged from DEVEL

---- Files affected:
vfmg:
   vfmg (1.83 -> 1.84) 

---- Diffs:

================================================================
Index: vfmg/vfmg
diff -u vfmg/vfmg:1.83 vfmg/vfmg:1.84
--- vfmg/vfmg:1.83      Tue Mar 15 20:01:25 2005
+++ vfmg/vfmg   Tue Apr 18 18:08:53 2006
@@ -2,269 +2,482 @@
 #$Id$
 
 use strict;
-use File::Find;
-use Getopt::Long;
-use Encode;
+use File::Find qw(find);
+use Getopt::Long qw(GetOptions :config bundling);
+use Encode qw(encode decode);
 
+# header {{{
+# default options {{{
 my $o_help=0;
 my $o_tags=0;
 my $o_end=0;
-my $o_icons=0;
-my $o_exec=0;
-my $o_clear=0;
-my $o_promote=0;
 my $o_verbose=0;
-my $o_full=0;
-my $o_strip=0;
-my $o_output="";
-my $o_utf=0;
-my $o_enc="";
-my $o_xterm="xterm -name xterm-%1 -e %2";
-my $o_nomenu=0;
-
-$o_xterm="$ENV{'VFMG_TERM'}" if $ENV{'VFMG_TERM'};
-
-GetOptions('help'=>\$o_help,
-       'tags'=>\$o_tags,
-       'end|e'=>\$o_end,
-       'icons'=>\$o_icons,
-       'exec|x'=>\$o_exec,
-       'clear'=>\$o_clear,
-       'promote'=>\$o_promote,
-       'verbose'=>\$o_verbose,
-       'full'=>\$o_full,
-       'strip'=>\$o_strip,
-       'utf8'=>\$o_utf,
-       'nomenu|m'=>\$o_nomenu,
-       'output=s'=>\$o_enc,
-       'xterm|r=s'=>\$o_xterm
-       );
+my %defopt = (
+       exec            => 0,
+       exec_full       => 0,
+       icons           => 1,
+       icons_ext       => 0,
+       icons_full      => 0,
+       icons_scale     => 0,
+       icons_fork      => 0,
+       icons_dir       => "",
+       icons_oext      => "png",
+       
+       utf                     => 0,
+       encoding        => "",
+       
+       clear           => 0,
+       promote         => 0,
+       strip           => 0,
+       nomenu          => 0,
+       only_in         => "",
+       xterm           => "xterm -name xterm-%1 -e %2",
+       convert         => "convert -geometry 16x16 \%in \%out",
+       full_regen      => 0,
+       destdir         => "",
+       
+);
+my %opt;
+my $o_output;
+$defopt{xterm}="$ENV{'VFMG_TERM'}" if $ENV{'VFMG_TERM'};
+
+my @wms = qw(ASCII DR17 aewm afterstep blackbox enlightenment fbpanel fluxbox
+       fvwm fvwm2 icewm metisse olvwm openbox qvwm wmaker wmaker-old wmii xfce4
+       xpde);
+
+# %destdir and %iconsdir should only contain directories propsed by WM
+my %destdir = (
+       DR17                    =>      
"$ENV{'HOME'}/.e/e/applications/favorite",
+       afterstep               =>      
"$ENV{'HOME'}/GNUstep/Library/AfterStep/start",
+       enlightenment   =>      "$ENV{'HOME'}/.enlightenment/menus",
+       xpde                    =>      "$ENV{'HOME'}/.xpde/Start 
Menu/Programs",
+);
+my %iconsdir = (
+       DR17                    =>      "$ENV{'HOME'}/.e/e/applications/all",
+       enlightenment   =>      "$ENV{'HOME'}/.enlightenment/icons",
+);
+# }}}
+
+GetOptions( # {{{
+       'help|h'                =>      \$o_help,
+       'tags|t'                =>      \$o_tags,
+       'end|e'                 =>      \$o_end,
+       'verbose|v'             =>      \$o_verbose,
+       
+       'exec|x!'               =>      \$opt{exec},
+       'exec-full|full-exec|X!'
+                                       =>      \$opt{exec_full},
+       'icons|i!'              =>      \$opt{icons},
+       'icons-ext|T!'  =>      \$opt{icons_ext},
+       'icons-full|full-icons|I!'      
+                                       =>      \$opt{icons_full},
+       'icons-scale|scale-icons|S!'
+                                       =>      \$opt{icons_scale},
+       'icons-fork!'   =>      \$opt{icons_fork},
+       'icons-dir|d=s' =>      \$opt{icons_dir},
+       'icons-oext|O=s'
+                                       =>      \$opt{icons_oext},
+       '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},
+       
+       'clear|c!'              =>      \$opt{clear},
+       'promote|p!'    =>      \$opt{promote},
+       'strip|s!'              =>      \$opt{strip},
+       'nomenu|m!'             =>      \$opt{nomenu},
+       'only-in|o=s'   =>      \$opt{only_in},
+       
+       'xterm|r=s'             =>      \$opt{xterm},
+       'convert|C=s'   =>      \$opt{convert},
+       'full-regen|f!' =>      \$opt{full_regen},
+       'destdir|D=s'   =>      \$opt{destdir},
+       ); # }}}
+
+if($o_help) { # {{{
+       local $" = ", ";
+       print<<EOF;
+Usage: $0 [options] [EMAIL PROTECTED]
+
+Options:
+    -h, --help   - print this help
+
+  Diagnostics:
+    -t, --tags    - echo omitted tags to stderr
+    -e, --end     - echo omitted XDG file ending to stderr
+    -v, --verbose - verbose stderr output
+
+  Executables and icons:
+    -x, --exec        - check for binaries existence
+    -X, --exec-full   - extend binaries to full path (implies -x)
+    -i, --icons       - add icons to menu (default: yes)
+    -T, --icons-ext   - check for icons existence and add extension if required
+    -I, --icons-full  - check for icons existence and extend to full path
+
+    -S, --icons-scale - scale (shrink) icons (implies -i -I)
+        --icons-fork  - scale icons after fork
+    -d, --icons-dir=  - output dir for icons
+    -O, --icons-oext= - output icons extension (default: png)
+
+  Output encoding:
+    -u, --utf8        - output in utf8 (default is locale setting)
+    -E, --encoding=   - output in given encoding (e.g. iso-8859-2)
+
+  Menu structure:
+    -c, --clear    - remove empty menus
+    -p, --promote  - promote submenus with single entry
+    -s, --strip    - strip 1st level menu
+    -m, --nomenu   - don't add additional menu info
+                     (valid for blackbox, fluxbox, openbox, xfce4)
+    -o, --only-in  - coma separated list of accepted OnlyShowIn= WMs
+
+    -r, --xterm=   - set x terminal application
+                     default: "$defopt{xterm}"
+                     example "gnome-terminal -t Terminal.%1 -x %2"
+    -C, --convert= - command to use to scale icons
+                     default: "$defopt{convert}"
+
+    -f, --full-regen - regenerate everything (delete scaled icons)
+    -D, --destdir=   - directory to save multifile menu
+EOF
+       print "                       (used in: ",
+               (join ", ", sort keys %destdir), ")\n";
+       print<<EOF;
+
+  All but diagnostics boolean options have oposite --no-<name> version too.
 
-if($o_help) {
-       print "Usage:   $0 [options] {aewm, afterstep, blackbox, enlightenment, 
fbpanel, fluxbox, fvwm, fvwm2, icewm, metisse, openbox, olvwm, qvwm, wmaker, 
wmaker-old, xfce4, xpde}
-       -h, --help      - print this help
-       -t, --tags      - echo omitted tags to stderr
-       -e, --end       - echo omitted XDG file ending to stderr
-       -v, --verbose   - verbose stderr output
-       -i, --icons     - check for icons existence
-       -x, --exec      - check for binaries existence
-       -f, --full      - extend icons and binaries to full path (needs -i or 
-x)
-       -c, --clear     - remove empty menus
-       -p, --promote   - promote submenus with single entry
-       -s, --strip     - strip 1st level menu
-       -u, --utf8      - output in utf8 (default is locale setting)
-       -m, --nomenu    - don't add additional menu info (valid for blackbox, 
fluxbox, openbox, xfce4)
-       -o, --output=   - output in given encoding (e.g. iso-8859-2)
-       -r, --xterm=    - set x terminal application (default \"xterm -name 
xterm-%1 -e %2\")
-                               example \"gnome-terminal -t Terminal.%1 -x 
%2\"\n";
+EOF
        exit;
-}
+} # }}}
 
-die "Missing argument {aewm, afterstep, blackbox, enlightenment, fbpanel, 
fluxbox, fvwm, fvwm2, icewm, metisse, openbox, olvwm, qvwm, wmaker, wmaker-old, 
xfce4, xpde}\n"
-       unless exists $ARGV[0];
+unless (exists $ARGV[0]) {
+       local $" = ", ";
+       die "Missing argument [EMAIL PROTECTED]";
+}
 $o_output=$ARGV[0];
 die "Unrecognized argument: $o_output\n"
-       unless 
$o_output=~/^(aewm|afterstep|blackbox|enlightenment|fbpanel|fluxbox|fvwm|fvwm2|icewm|metisse|openbox|olvwm|qvwm|wmaker|wmaker-old|xfce4|xpde)$/;
+       unless grep { $o_output eq $_ } @wms;
 
-$o_full=1 if $o_icons and $o_output=~/^(enlightenment|metisse)$/;
-       
-my $tmp="$ENV{'HOME'}/.local/share";
-$tmp="$ENV{'XDG_DATA_HOME'}" if $ENV{'XDG_DATA_HOME'};
-my @tmp=("/usr/local/share","/usr/share");
[EMAIL PROTECTED](/:+/,$ENV{'XDG_DATA_DIRS'}) if $ENV{'XDG_DATA_DIRS'};
-my @xdg_data_dirs=grep -d, $tmp,@tmp;
-
-$tmp="$ENV{'HOME'}/.config";
-$tmp="$ENV{'XDG_CONFIG_HOME'}" if $ENV{'XDG_CONFIG_HOME'};
[EMAIL PROTECTED]("/etc/xdg");
[EMAIL PROTECTED](/:+/,$ENV{'XDG_CONFIG_DIRS'}) if $ENV{'XDG_CONFIG_DIRS'};
-my @xdg_config_dirs=map{"$_/menus"} grep -d, $tmp,@tmp;
+# vfmgrc {{{
+my @rcFiles = (qw(/etc/vfmgrc), "$ENV{'HOME'}/.vfmgrc");
+push @rcFiles, "$ENV{'HOME_ETC'}/.vfmgrc" if exists $ENV{'HOME_ETC'};
[EMAIL PROTECTED] = grep -r, @rcFiles;
+
+my @rcBody;
+foreach my $rc (@rcFiles) {
+       open F_IN, $rc or next;
+       my $read = 1;
+       while (<F_IN>) {
+               next if ( /^\s*#/ );
+               $_ .= <F_IN> while s/\\\n$//;
+               $read = 0 if /^\[/;
+               if ( /^\[$o_output\]/ ) {
+                       $read = 1;
+                       next;
+               }
+               push @rcBody, $_ if $read;
+       }
+       close F_IN;
+}
 
[EMAIL PROTECTED] {"$_/icons/"} @xdg_data_dirs;
-my @icondirs=(grep (-d, 
("$ENV{'HOME'}/.icons/",@tmp,"/usr/share/pixmaps/","/usr/share/icons/default.kde/48x48/apps/","/usr/share/icons/hicolor/48x48/apps/")),
 "");
+my %rcopt = map { /^\s*(.*?)\s*=\s*(.*)\s*$/ } @rcBody;
+# }}}
+
+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;
+}
+
+# check dependencies
+$opt{exec}=1 if $opt{exec_full};
+if ( grep { $o_output eq $_ } keys %iconsdir ) {
+       $opt{icons_dir} = $iconsdir{$o_output} unless (length $opt{icons_dir});
+}
+if ($opt{icons_scale}) {
+       if ( length $opt{icons_dir} ) {
+               my $conv = (split /\s/, $opt{convert})[0];
+               if ( length `which $conv` ) {
+                       $opt{icons} = 1;
+                       $opt{icons_full} = 1;
+               } else {
+                       $opt{icons_scale} = 0;
+                       warn "$conv is not executable, not scaling icons.\n";
+               }
+       } else {
+               $opt{icons_scale} = 0;
+               warn "Icons destination directory is not specified, not 
scaling.\n";
+       }
+}
+$opt{icons_ext} = 1 if $opt{icons_full};
+$opt{encoding}="utf8" if $opt{utf};
+if ( grep { $o_output eq $_ } keys %destdir ) {
+       $opt{destdir} = $destdir{$o_output} unless (length $opt{destdir});
+} else {
+       delete $opt{destdir};
+}
+my @OSI_accept;
+if ( defined $opt{only_in} ) {
+       foreach my $cat ( split /[,\s]+/, $opt{only_in} ) {
+               push @OSI_accept, $cat;
+       }
+}
+# header }}}
+
+# search dirs {{{
+my @xdg_data_dirs = grep -d,
+  ( exists $ENV{'XDG_DATA_HOME'}
+       ? $ENV{'XDG_DATA_HOME'}
+       : "$ENV{'HOME'}/.local/share"
+  ),
+  ( exists $ENV{'XDG_DATA_DIRS'}
+       ? split /:+/, $ENV{'XDG_DATA_DIRS'}
+       : qw(/usr/local/share /usr/share)
+  );
+
+my @xdg_config_dirs = map { "$_/menus" } grep -d,
+  ( exists $ENV{'XDG_CONFIG_HOME'}
+       ? $ENV{'XDG_CONFIG_HOME'}
+       : "$ENV{'HOME'}/.config"
+  ),
+  ( exists $ENV{'XDG_CONFIG_DIRS'}
+       ? split /:+/, $ENV{'XDG_CONFIG_DIRS'}
+       : qw(/etc/xdg)
+  );
+
+my @icondirs = (
+       grep (-d,
+               "$ENV{'HOME'}/.icons/",
+               map({"$_/icons/"} @xdg_data_dirs),
+               qw(/usr/share/pixmaps/
+                 /usr/share/icons/default.kde/48x48/apps/
+                 /usr/share/icons/hicolor/48x48/apps/)
+       ),
+       '',
+);
 
 my @path;
-if($o_exec) {
+if ( $opt{exec} ) {
        @path=(grep (-d, split(/:+/,$ENV{'PATH'})), "");
-       if($o_xterm) {
+       if( length $opt{xterm} ) {
                my $exists=0;
-               my $bin=$o_xterm;
+               my $bin=$opt{xterm};
                $bin=~s/(\S+).*/$1/;  #v---------v
                foreach my $dir(@path) {         # would be "//dir/.../file" 
correct?
-                       if(-x "$dir/$bin") {#----^
+                       if (-x "$dir/$bin") {#----^
                                $exists=1;
-                               $o_xterm="$dir/$o_xterm" if $o_full;
+                               $opt{xterm}="$dir/$opt{xterm}" if 
$opt{exec_full};
                                last;
                        }
                }
-               $o_xterm="" unless $exists;
+               unless ($exists) {
+                       $opt{xterm}="";
+                       warn "Can't find $bin.",
+                               " Terminal applications will not be 
included.\n";
+               }
        }
 }
-
-# get locale (for Name[*])
-
-my $lang4="";
-$lang4=$ENV{'LANG'} if exists $ENV{'LANG'};
-$lang4=$ENV{'LC_MESSAGES'} if exists $ENV{'LC_MESSAGES'};
-$lang4=$ENV{'LC_ALL'} if exists $ENV{'LC_ALL'};
-my $lang3=$lang4;
-$lang3=~s/@.*//;
-my $lang2=$lang3;
-$lang2=~s/\..*//;
-my $lang1=$lang2;
-$lang1=~s/_.*//;
+# search dirs }}}
+
+# get locale (for Name[*]) {{{
+my @lang;
+sub addlang {
+       my $l = $_[0];
+       push @lang, $l unless grep {$_ eq $l} @lang;
+       $l =~ s/@.*//;
+       push @lang, $l unless grep {$_ eq $l} @lang;
+       $l =~ s/\..*//;
+       push @lang, $l unless grep {$_ eq $l} @lang;
+       $l =~ s/_.*//;
+       push @lang, $l unless grep {$_ eq $l} @lang;
+}
+addlang($ENV{'LC_ALL'})                        if exists $ENV{'LC_ALL'};
+addlang($ENV{'LC_MESSAGES'})   if exists $ENV{'LC_MESSAGES'};
+if (exists $ENV{'LANGUAGE'}) {
+       foreach my $lang (split /:/, $ENV{'LANGUAGE'}) {
+               addlang($lang);
+       }
+}
+addlang($ENV{'LANG'})  if exists $ENV{'LANG'};
+my $langs = join "|", @lang;
+sub findfirstlang {
+       foreach my $lang (@lang) {
+               foreach (@_) {
+                       return $_ if /\[$lang\]/;
+               }
+       }
+       return (grep !/\[.*\]/, @_)[0];
+} # }}}
 
 # what is $DESKTOP_FILE_PATH?
 
 my @apps;      # $apps{name}{category}=[icon,exec]
-my @happs;
+my @desktop;
 find(\&wanted, grep -d, map {"$_/applications"} @xdg_data_dirs);
 
-sub wanted {
-       return if (!-f || /^\./ || !/\.desktop$/);
-       my $file=$_;
-       my $name="";
-       my $exec="";
-       my $icon="";
-       my $cats="";
-       my $term=0;
-       my $lang=0;
-       my $app=0;
-       my $enc="iso-8859-1";
-       open F_IN, "$file" or warn "$File::Find::name: $!\n" and return;
-       while(<F_IN>) {
-               if (/^\s*Name\s*=\s*(.+?)\s*$/ && $lang<1) {
-                       $name=$1;
-               }
-               if (/^\s*Name\[$lang1\]\s*=\s*(.+?)\s*$/ && $lang<2) {
-                       $name=$1;
-                       $lang=1;
-               }
-               if (/^\s*Name\[$lang2\]\s*=\s*(.+?)\s*$/ && $lang<3) {
-                       $name=$1;
-                       $lang=2;
-               }
-               if (/^\s*Name\[$lang3\]\s*=\s*(.+?)\s*$/ && $lang<4) {
-                       $name=$1;
-                       $lang=3;
-               }
-               if (/^\s*Name\[$lang4\]\s*=\s*(.+?)\s*$/ && $lang<5) {
-                       $name=$1;
-                       $lang=4;
-               }
-               $icon=$1 if /^\s*Icon\s*=\s*(.+?)\s*$/;
-               $exec=$1 if /^\s*Exec\s*=\s*(.+?)\s*$/;
-               $cats=$1 if /^\s*Categories\s*=\s*(.+?)\s*$/;
-               $term=1 if /^\s*Terminal\s*=\s*(?i:1|true)/;
-               $app=1 if /^\s*Type\s*=\s*(?i:application)/;
-               $enc=$1 if /^\s*Encoding\s*=\s*(.+?)\s*$/;
-       }
+sub wanted { # {{{
+       return unless -f && /^[^.].*\.desktop$/;
+       my $file = $_;
+
+       open F_IN, $file or warn "$File::Find::name: $!\n" and return;
+       my %tags = (
+               file            => $file,
+               Icon            => '',
+               Categories      => '',
+               Type            => '',
+               NoDisplay       => 'false',
+               map {
+                       ## "foo = bar" or "Name[baz] = bar"
+                       /^\s*
+                       (Name(?:\[(?:$langs)\])?
+                        |GenericName(?:\[(?:$langs)\])?
+                        |Comment(?:\[(?:$langs)\])?
+                        |Icon|Exec|Categories|Terminal|Type|Encoding|NoDisplay
+                        |OnlyShowIn)
+                       \s* = \s* (.+?)
+                       \s*$/ox
+                 } <F_IN>,
+       );
        close F_IN;
-       return unless $app;
-       return if $term and not $o_xterm;
-       my $bin=$exec;
-               $bin=~s/(\S+).*/$1/;  #v---------v
-       if($o_exec) {
-               my $exists=0;
-               foreach my $dir(@path) {         # would be "//dir/.../file" 
correct?
-                       if(-x "$dir/$bin") {#----^
-                               $exists=1;
-                               $exec="$dir/$exec" if $o_full;
+
+       return unless lc $tags{Type} eq 'application';
+       return if lc $tags{NoDisplay} eq 'true';
+       if ( defined $tags{OnlyShowIn} ) {
+               my $found = 0;
+               foreach my $cat ( split /;+/, $tags{OnlyShowIn} ) {
+                       $found++ if grep {$cat eq $_} @OSI_accept;
+               }
+               return unless $found;
+       }
+         
+       $tags{term} =
+         ($tags{Terminal} && $tags{Terminal} =~ /^(?:1|true)$/i) ? 1 : 0;
+       return if $tags{term} and not $opt{xterm};
+
+       ($tags{bin}) = ($tags{Exec} =~ /(\S+)/);    #v---------v
+       if ( $opt{exec} ) {
+               my $exists;
+               foreach my $dir (@path) {    # would be "//dir/.../file" 
correct?
+                       if (-x "$dir/$tags{bin}") {    #----^
+                               $exists++;
+                               $tags{Exec} = "$dir/$tags{Exec}" if 
$opt{exec_full};
                                last;
                        }
                }
                return unless $exists;
        }
-       if($term) {
-               $bin=~s|.*/||;
-               $_=$o_xterm;
-               s/%1/$bin/;
-               s/%2/$exec/;
-               $exec=$_;
-       }
-       if($o_icons) {
-               my $exists=0;
-               foreach my $dir(@icondirs) {
-                       if(-f "$dir$icon") {
-                       } elsif(-f "$dir$icon.svg") {
-                               $icon.=".svg";
-                       } elsif(-f "$dir$icon.xpm") {
-                               $icon.=".xpm";
-                       } elsif(-f "$dir$icon.png") {
-                               $icon.=".png";
-                       } else {
-                               next;
+       if ( $tags{term} ) {
+               $tags{bin} =~ s|.*/||;
+               $_ = $opt{xterm};
+               s/%1/$tags{bin}/;
+               s/%2/$tags{Exec}/;
+               $tags{Exec} = $_;
+       }
+       if ( $opt{icons_ext} ) {
+               my $exists = 0;
+               ALLDIRS: foreach my $dir (@icondirs) {
+                       foreach my $ext ('', qw(.svg .xpm .png)) {
+                               if (-f $dir . $tags{Icon} . $ext) {
+                                       $tags{Icon} .= $ext;
+                                       $tags{Icon} = $dir . $tags{Icon} if 
$opt{icons_full};
+                                       $exists = 1;
+                                       last ALLDIRS;
+                               }
                        }
-                       $exists=1;
-                       $icon="$dir$icon" if $o_full;
-                       last;
-               }
-               $icon="" unless $exists;
-       }
-       my $utfname;
-       if($name ne "") {
-               if($enc eq "Legacy-Mixed") {
+               }
+               $tags{Icon} = '' unless $exists;
+       }
+       
+       $tags{Encoding} = exists $tags{Encoding} ? $tags{Encoding} : 
'iso-8859-1';
+       
+       my @to_decode = qw(Name);
+       push @to_decode, qw(GenericName Comment)
+               if $o_output eq "DR17" or $o_output eq "ASCII";
+       foreach my $tag_name (@to_decode) {
+               my @all = (grep /^$tag_name/, keys %tags);
+               next if ($#all < 0);
+               my $first = findfirstlang(@all);
+               my $enc = $tags{Encoding};
+       
+               if ($enc eq 'Legacy-Mixed') {
                        warn "$File::Find::name: Legacy-Mixed encoding is 
depreciated.\n";
-                       if(!$lang) {
-                               $enc="iso-8859-1";
-                       } elsif ($lang==1) {
-                               warn "$File::Find::name: cannot get encoding 
name for `$lang1'. Assuming iso-8859-1\n";
-                               $enc="iso-8859-1";
+
+                       # this code is untested
+                       #    --radek
+                       my ($lang) = ($first =~ /^$tag_name\[([^\]]+)/);
+                       if ($lang !~ /_/) {
+                               warn "$File::Find::name: cannot get encoding 
name for"
+                                 . " `$lang'. Assuming iso-8859-1\n";
+                               $enc = "iso-8859-1";
                        } else {
-                               use POSIX qw(locale_h);
-                               my $old_locale=setlocale(LC_ALL);
<<Diff was trimmed, longer than 597 lines>>

---- CVS-web:
    http://cvs.pld-linux.org/vfmg/vfmg?r1=1.83&r2=1.84&f=u

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to