annotate bin/slashes @ 4869:54c75e4b8405

<mroman_> learn hax0r (see \xc2\xaf\\(\xc2\xb0\xe2\x80\x8b_o)/\xc2\xaf)
author HackBot
date Fri, 26 Sep 2014 13:12:02 +0000
parents 417963e20c08
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
4728
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
1 #!/usr/bin/perl -w
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
2 #By Ørjan Johansen, 2009-2012. This file is in the public domain.
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
3
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
4 $| = 1;
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
5 my $l = 0;
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
6
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
7 $_ = join '', <>;
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
8 while ($l < 512) {
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
9 if (s!^([^/\\]+)!! or s!^\\(.)!!s) {
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
10 $l += length($1);
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
11 print($1);
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
12 }
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
13 else {
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
14 if (s!^/((?:[^/\\]|\\.)*)/((?:[^/\\]|\\.)*)/!!s) {
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
15 my ($s,$d) = ($1,$2);
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
16 $s =~ s/\\(.)/$1/gs;
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
17 $d =~ s/\\(.)/$1/gs;
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
18 while (s/(?:\Q$s\E)/$d/) {
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
19 }
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
20 }
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
21 else { last; }
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
22 }
3339ace022d7 <oerjan> fetch http://oerjan.nvg.org/esoteric/slashes/ircslashes.pl
HackBot
parents:
diff changeset
23 }