chiark / gitweb /
Dgit.pm: Provide messagequote
authorIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2015 14:19:20 +0000 (15:19 +0100)
committerIan Jackson <ijackson@chiark.greenend.org.uk>
Sun, 26 Jul 2015 14:19:24 +0000 (15:19 +0100)
Debian/Dgit.pm

index d66b712..9216dee 100644 (file)
@@ -26,7 +26,7 @@ BEGIN {
                       initdebug enabledebug enabledebuglevel
                       printdebug debugcmd
                       $debugprefix *debuglevel *DEBUG
-                      shellquote printcmd);
+                      shellquote printcmd messagequote);
     # implicitly uses $main::us
     %EXPORT_TAGS = ( policyflags => [qw(NOFFCHECK FRESHREPO)] );
     @EXPORT_OK   = @{ $EXPORT_TAGS{policyflags} };
@@ -81,6 +81,16 @@ sub printdebug {
     print DEBUG $debugprefix, @_ or die $! if $debuglevel>0;
 }
 
+sub messagequote ($) {
+    local ($_) = @_;
+    s{\\}{\\\\}g;
+    s{\n}{\\n}g;
+    s{\x08}{\\b}g;
+    s{\t}{\\t}g;
+    s{[\000-\037\177]}{ sprintf "\\x%02x", ord $& }ge;
+    $_;
+}
+
 sub shellquote {
     my @out;
     local $_;