linkdecode — decode hex-encoded entities found within URLs
The filter decodes hex-encoded entities found within URLs.
The filter is explicitly called linkdecode because it
only operates on <form action=>,
href= and src= contents.
Therefore, it is likely to be useful only when passed lines containing
HTML URLs or source specifiers (such as <a> or <img> tags).
Interchange 5.9.0:
Source: code/Filter/linkdecode.filter
Lines: 25
# Copyright 2002-2007 Interchange Development Group and others
# Copyright 1996-2002 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
# the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version. See the LICENSE file for details.
#
# $Id: linkdecode.filter,v 1.6 2007-03-30 23:40:44 pajamian Exp $
CodeDef linkdecode Filter
CodeDef linkdecode Description URLdecode link text
CodeDef linkdecode Visibility private
CodeDef linkdecode Routine <<EOR
sub {
my $body = shift;
$body =~ s{(<form\s+[^>]*action=)(["'])(\%5b\w+.*?\%5d)\2}
{ $1 . $2 . unhexify($3) . $2 }egi;
$body =~ s{(<\w+\s+[^>]*href=)(["'])(\%5b\w+.*?\%5d)\2}
{ $1 . $2 . unhexify($3) . $2 }egi;
$body =~ s{(<i\w+\s+[^>]*src=)(["'])(\%5b\w+.*?\%5d)\2}
{ $1 . $2 . unhexify($3) . $2 }egi;
return $body;
}
EOR