Add built local::lib
[catagits/Gitalist.git] / local-lib5 / lib / perl5 / URI / _userpass.pm
diff --git a/local-lib5/lib/perl5/URI/_userpass.pm b/local-lib5/lib/perl5/URI/_userpass.pm
new file mode 100644 (file)
index 0000000..a0361ae
--- /dev/null
@@ -0,0 +1,51 @@
+package URI::_userpass;
+
+use strict;
+use URI::Escape qw(uri_unescape);
+
+sub user
+{
+    my $self = shift;
+    my $info = $self->userinfo;
+    if (@_) {
+       my $new = shift;
+       my $pass = defined($info) ? $info : "";
+       $pass =~ s/^[^:]*//;
+
+       if (!defined($new) && !length($pass)) {
+           $self->userinfo(undef);
+       } else {
+           $new = "" unless defined($new);
+           $new =~ s/%/%25/g;
+           $new =~ s/:/%3A/g;
+           $self->userinfo("$new$pass");
+       }
+    }
+    return unless defined $info;
+    $info =~ s/:.*//;
+    uri_unescape($info);
+}
+
+sub password
+{
+    my $self = shift;
+    my $info = $self->userinfo;
+    if (@_) {
+       my $new = shift;
+       my $user = defined($info) ? $info : "";
+       $user =~ s/:.*//;
+
+       if (!defined($new) && !length($user)) {
+           $self->userinfo(undef);
+       } else {
+           $new = "" unless defined($new);
+           $new =~ s/%/%25/g;
+           $self->userinfo("$user:$new");
+       }
+    }
+    return unless defined $info;
+    return unless $info =~ s/^[^:]*://;
+    uri_unescape($info);
+}
+
+1;