Dateimanagement: erst nur letzte Version anzeigen / alle Versionen ausklappbar.
[kivitendo-erp.git] / SL / MoreCommon.pm
index dad9750..0aa84a7 100644 (file)
@@ -3,13 +3,12 @@ package SL::MoreCommon;
 require Exporter;
 our @ISA = qw(Exporter);
 
 require Exporter;
 our @ISA = qw(Exporter);
 
-our @EXPORT    = qw(save_form restore_form compare_numbers any cross);
+our @EXPORT    = qw(save_form restore_form compare_numbers cross);
 our @EXPORT_OK = qw(ary_union ary_intersect ary_diff listify ary_to_hash uri_encode uri_decode);
 
 our @EXPORT_OK = qw(ary_union ary_intersect ary_diff listify ary_to_hash uri_encode uri_decode);
 
+use Encode ();
 use List::MoreUtils qw(zip);
 use List::MoreUtils qw(zip);
-use YAML;
-
-use SL::AM;
+use SL::YAML;
 
 use strict;
 
 
 use strict;
 
@@ -24,7 +23,7 @@ sub save_form {
     delete $main::form->{$key};
   }
 
     delete $main::form->{$key};
   }
 
-  my $old_form = YAML::Dump($main::form);
+  my $old_form = SL::YAML::Dump($main::form);
   $old_form =~ s|!|!:|g;
   $old_form =~ s|\n|!n|g;
   $old_form =~ s|\r|!r|g;
   $old_form =~ s|!|!:|g;
   $old_form =~ s|\n|!n|g;
   $old_form =~ s|\r|!r|g;
@@ -50,7 +49,7 @@ sub restore_form {
   $old_form =~ s|!n|\n|g;
   $old_form =~ s|![!:]|!|g;
 
   $old_form =~ s|!n|\n|g;
   $old_form =~ s|![!:]|!|g;
 
-  my $new_form = YAML::Load($old_form);
+  my $new_form = SL::YAML::Load($old_form);
   map { $form->{$_} = $new_form->{$_} if (!$keep_vars_map{$_}) } keys %{ $new_form };
 
   $main::lxdebug->leave_sub();
   map { $form->{$_} = $new_form->{$_} if (!$keep_vars_map{$_}) } keys %{ $new_form };
 
   $main::lxdebug->leave_sub();
@@ -60,7 +59,7 @@ sub compare_numbers {
   $main::lxdebug->enter_sub();
 
   my ($a, $a_unit, $b, $b_unit) = @_;
   $main::lxdebug->enter_sub();
 
   my ($a, $a_unit, $b, $b_unit) = @_;
-
+  require SL::AM;
   my $units          = AM->retrieve_all_units;
 
   if (!$units->{$a_unit} || !$units->{$b_unit} || ($units->{$a_unit}->{base_unit} ne $units->{$b_unit}->{base_unit})) {
   my $units          = AM->retrieve_all_units;
 
   if (!$units->{$a_unit} || !$units->{$b_unit} || ($units->{$a_unit}->{base_unit} ne $units->{$b_unit}->{base_unit})) {
@@ -76,15 +75,6 @@ sub compare_numbers {
   return $a <=> $b;
 }
 
   return $a <=> $b;
 }
 
-sub any (&@) {
-  my $f = shift;
-  return if ! @_;
-  for (@_) {
-    return 1 if $f->();
-  }
-  return 0;
-}
-
 sub cross(&\@\@) {
   my $op = shift;
   use vars qw/@A @B/;
 sub cross(&\@\@) {
   my $op = shift;
   use vars qw/@A @B/;
@@ -164,20 +154,20 @@ sub ary_to_hash {
 sub uri_encode {
   my ($str) = @_;
 
 sub uri_encode {
   my ($str) = @_;
 
-  $str =  Encode::encode('utf-8-strict', $str) if $::locale->is_utf8;
+  $str =  Encode::encode('utf-8-strict', $str);
   $str =~ s/([^a-zA-Z0-9_.:-])/sprintf("%%%02x", ord($1))/ge;
 
   return $str;
 }
 
 sub uri_decode {
   $str =~ s/([^a-zA-Z0-9_.:-])/sprintf("%%%02x", ord($1))/ge;
 
   return $str;
 }
 
 sub uri_decode {
-  my ($str) = @_;
+  my $str = $_[0] // '';
 
   $str =~ tr/+/ /;
   $str =~ s/\\$//;
 
   $str =~ s/%([0-9a-fA-Z]{2})/pack("C",hex($1))/eg;
 
   $str =~ tr/+/ /;
   $str =~ s/\\$//;
 
   $str =~ s/%([0-9a-fA-Z]{2})/pack("C",hex($1))/eg;
-  $str =  Encode::decode('utf-8-strict', $str) if $::locale->is_utf8;
+  $str =  Encode::decode('utf-8-strict', $str);
 
   return $str;
 }
 
   return $str;
 }
@@ -192,7 +182,7 @@ SL::MoreCommon.pm - helper functions
 
 =head1 DESCRIPTION
 
 
 =head1 DESCRIPTION
 
-this is a collection of helper functions used in Lx-Office.
+this is a collection of helper functions used in kivitendo.
 Most of them are either obvious or too obscure to care about unless you really have to.
 The exceptions are documented here.
 
 Most of them are either obvious or too obscure to care about unless you really have to.
 The exceptions are documented here.