Here is another clipboard transform that I use. It transforms a \n-separated list into a comma-separated list with " around each item and ( and ) around the list, wrapped to 72 columns (for use in a 3270 emulator). It doesn't use text:wrap, because a string might contain a space, and be wrapped inappropriately. I call it "cqlist.cmd" and bind it to Ctrl-Shift-'.
@rem = '--*-Perl-*--
@echo off
perl -x -S "%~dpnx0" %1 %2 %3 %4 %5 %6 %7 %8 %9
goto endofperl
@rem ';
#!perl
#line 8
use strict;
use warnings;
use Win32::Clipboard;
my $CLIP = Win32::Clipboard();
my ($output, $lastline) = ("", "(");
foreach( split m[\x0d\x0a?|\x0a\x0d?], $CLIP->GetText ) {
(my $quoted = $_) =~ s/'/''/g;
$quoted = qq['$quoted', ];
if( $lastline ne "" and length($lastline) + length($quoted) > 72 )
+{
chop $lastline; # remove trailing space
$output .= $lastline . "\n";
$lastline = "";
}
$lastline .= $quoted;
}
$lastline =~ s|, \z|)|; # convert last ", " to a ")"
$output .= $lastline;
$output =~ s|\n|\x0d\x0a|g; # convert perlish \n to windows CRLF.
print $output;
$CLIP->Set($output);
__END__
:endofperl