comparison mpsplit.rb @ 8:3db7524d3dea

Add default images
author HIROSE Yuuji <yuuji@gentei.org>
date Mon, 20 Jul 2015 11:30:39 +0900
parents b8a890828283
children 3565d93c2fb1
comparison
equal deleted inserted replaced
7:67a1bb482ce1 8:3db7524d3dea
3 require 'nkf' 3 require 'nkf'
4 Encoding.default_external = Encoding::BINARY 4 Encoding.default_external = Encoding::BINARY
5 Encoding.default_internal = Encoding::BINARY 5 Encoding.default_internal = Encoding::BINARY
6 6
7 boundary="--"+ARGV[0] # +"\r\n" 7 boundary="--"+ARGV[0] # +"\r\n"
8 tmpdir=(ARGV[1] || "tmp") 8 tmpdir=(ARGV[1] || "tmp").dup
9 test(?d, tmpdir) || Dir.mkdir("tmp") 9 tmpdir.untaint
10 test(?d, tmpdir) or Dir.mkdir(tmpdir)
10 stream=STDIN.readlines.join 11 stream=STDIN.readlines.join
11 stream.split(boundary)[1..-2].each do |x| 12 stream.split(boundary)[1..-2].each do |x|
12 header = x.sub(/\r\n\r\n.*/, "") 13 header = x.sub(/\r\n\r\n.*/, "")
13 name = header.scan(/\bname=([\"']?)(.*?)\1/)[0][1] 14 name = header.scan(/\bname=([\"']?)(.*?)\1/)[0][1]
14 body = x.sub(/.*?\r\n\r\n/m, "").sub(/\r\n$/, "") 15 body = x.sub(/.*?\r\n\r\n/m, "").sub(/\r\n$/, "")
15 STDERR.printf("body[%s]=[%s]\n", name, body.length) 16 STDERR.printf("body[%s]=[%s]\n", name, body.length)
16 if /filename=(['\"]?)(.*?)\1/ =~ header && $2 > "" 17 if /filename=(['\"]?)(.*?)\1/ =~ header && $2 > ""
17 fn = $2 18 fn = $2
18 open(File.expand_path(fn, tmpdir), "w") do |out| 19 fn.untaint if File.dirname(fn)=="."
20 open(File.expand_path(fn, tmpdir).untaint, "w") do |out|
19 out.write body 21 out.write body
20 end 22 end
21 printf("%s:filename=%s\n", name, fn) 23 printf("%s:filename=%s\n", name, fn)
22 elsif /name=(['\"]?)(.*?)\1/ =~ header 24 elsif /name=(['\"]?)(.*?)\1/ =~ header
23 v=$2 25 v=$2

yatex.org