s4

annotate mpsplit.pl @ 487:b17bdc798dc5

Help for emphasizing notations
author HIROSE Yuuji <yuuji@gentei.org>
date Tue, 06 Feb 2018 11:22:51 +0900
parents 3565d93c2fb1
children 347ea2bca687
rev   line source
yuuji@11 1 #!/usr/bin/env perl
yuuji@11 2 $sep = "--" . $ARGV[0];
yuuji@11 3 $dir = ($ARGV[1] || "tmp");
yuuji@12 4 if ($dir =~ /^([^<>\;\&]*)$/) {
yuuji@12 5 $dir = $1;
yuuji@12 6 }
yuuji@11 7
yuuji@11 8 #print "sep=".$sep, "dir=$dir\n";
yuuji@11 9 #binmode STDIN;
yuuji@11 10 $/ = undef;
yuuji@11 11 $stream = (<STDIN>);
yuuji@11 12 $n=0;
yuuji@11 13 @slices = split($sep, $stream);
yuuji@11 14 shift(@slices);
yuuji@11 15 pop(@slices);
yuuji@11 16 foreach $item (@slices) {
yuuji@11 17 $item =~ s/^\n//;
yuuji@11 18 ($header = $item) =~ s/\r\n\r\n.*//s;
yuuji@11 19 ($body = $item) =~ s/.*?\r\n\r\n//s;
yuuji@11 20 $body =~ s/\r\n$//;
yuuji@11 21 #print "h=[$header]\n";
yuuji@11 22 #print "b=[$body]\n";
yuuji@11 23 unless ($header =~ /\bname=([\"']?)(.*?)\1/) {
yuuji@11 24 next;
yuuji@11 25 }
yuuji@11 26 $name = $2;
yuuji@11 27 #print "name=$name\n";
yuuji@11 28 if ($header =~ /filename=(['\"]?)(.*?)\1/ && $2 gt "") {
yuuji@12 29 $fn=$2;
yuuji@12 30 if ($fn =~ /^([^\/]*)$/) {
yuuji@12 31 $fn = $1;
yuuji@12 32 }
yuuji@11 33 open(OUT, ">$dir/$fn");
yuuji@11 34 print OUT $body;
yuuji@11 35 close(OUT);
yuuji@11 36 printf("%s:filename=%s\n", $name, unpack("H*", $fn));
yuuji@11 37 } else {
yuuji@11 38 printf("%s=%s\n", $name, unpack("H*", $body));
yuuji@11 39 }
yuuji@11 40 }