#!/usr/bin/perl # # Copyright © 2008,2010,2012,2019-2020 Nick Bowler # # License GPLv3+: GNU General Public License version 3 or any later version. # This is free software: you are free to change and redistribute it. # There is NO WARRANTY, to the extent permitted by law. package MPD; use strict; use Exporter; our ($VERSION, @ISA, @EXPORT); $VERSION = 0; @ISA = qw(Exporter); @EXPORT = qw(); # Returns the argument (or $_ if no arguments are supplied) quoted so that it # can be presented as a single command argument to MPD at the protocol level. sub escape { my $s = @_[0] // $_; # No way to encode literal newlines in the protocol, so we convert # any newlines in the arguments into a space, which can help with # shell quoting. $s =~ s/\n/ /g; if ($s =~ /[ \t\\"']/) { $s =~ s/[\\"]/\\$&/g; return "\"$s\""; } $s =~ s/^\s*$/"$&"/; return $s; } 1;