Re: [PATCH 2/n] gitweb: Use '&iquot;' instead of '?' in esc_path
- From
Jakub Narebski <jnareb@gmail.com>
- Date
- Nov 6, 2006, 21:58 UTC
- Message-ID
- <200611062258.08320.jnareb@gmail.com>
- In-Reply-To
- <200611032333.49794.jnareb@gmail.com>
Jakub Narebski wrote:
Show 7 quoted lines
> 3. Use Character Escape Codes (CEC), using alphabetic and octal > backslash sequences like those used in C. Probably need to escape > backslash (quoting character) too. Has the advantage of being widely > understood in POSIX world. Has the disadvantage of need for escape > sequence table/hash. Has the advantage that it works for all > characters - simple octal backslash sequence if they have no special > escape sequence.
Here is example code for this:
sub esc_path {
my $str = shift; sub quot {
my $seq = shift;
my %es = (
"\t" => '\t', # tab (HT, TAB)
"\n" => '\n', # newline (NL)
"\r" => '\r', # return (CR)
"\f" => '\f', # form feed (FF)
"\b" => '\b', # backspace (BS)
"\a" => '\a', # alarm (bell) (BEL)
"\e" => '\e', # escape (ESC)
"\013" => '\v', # vertical tab (VT)
); if (exists $es{seq}) {
return $es{$seq};
}
return sprintf("\\%03o", ord($seq));
}
$str = esc_html($str);
$str =~ s/([[:cntrl:]])/'<span class="cntrl">' . quot($1) . '</span>'/eg;
return $str;
}-- Jakub Narebski