annotate mpsplit.pl @ 916:7cac220d52a7
Pdfsw type should be hidden!
author |
HIROSE Yuuji <yuuji@gentei.org> |
date |
Fri, 08 Jan 2021 19:17:31 +0900 |
parents |
07863b13e3f9 |
children |
|
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@748
|
33 $fn =~ s/[ <>&\#'\"\&|*?]/_/g;
|
yuuji@716
|
34 $fn =~ s,.*[/\\],,;
|
yuuji@11
|
35 open(OUT, ">$dir/$fn");
|
yuuji@11
|
36 print OUT $body;
|
yuuji@11
|
37 close(OUT);
|
yuuji@11
|
38 printf("%s:filename=%s\n", $name, unpack("H*", $fn));
|
yuuji@11
|
39 } else {
|
yuuji@11
|
40 printf("%s=%s\n", $name, unpack("H*", $body));
|
yuuji@11
|
41 }
|
yuuji@11
|
42 }
|