From: Masamichi Hosoda Date: Sun, 14 Jun 2015 14:17:19 +0000 (+0900) Subject: Issue 4451 / 1: Use mkstemp for PNG scale down X-Git-Tag: release/2.19.22-1~19 X-Git-Url: https://git.donarmstrong.com/?a=commitdiff_plain;h=19c69d0adb23892a7f994d7c662612c790f6f110;p=lilypond.git Issue 4451 / 1: Use mkstemp for PNG scale down In procedure ``scale-down-image'' (ps-to-png.scm), temp files are created by mkstemp. --- diff --git a/scm/ps-to-png.scm b/scm/ps-to-png.scm index e890eaa746..a8a170cc2f 100644 --- a/scm/ps-to-png.scm +++ b/scm/ps-to-png.scm @@ -52,7 +52,10 @@ '("pnmtopng")))) (define (scale-down-image factor file) - (let* ((old (string-append file ".old")) + (let* ((port-tmp1 (make-tmpfile)) + (tmp1-name (port-filename port-tmp1)) + (port-tmp2 (make-tmpfile)) + (tmp2-name (port-filename port-tmp2)) ;; Netpbm commands (pngtopnm, pnmscale, pnmtopng) ;; outputs only standard output instead of a file. ;; So we need pipe and redirection. @@ -61,14 +64,16 @@ (cmd (ly:format "~a \"~a\" | ~a -reduce ~a | ~a -compression 9 > \"~a\"" - (search-pngtopam) old + (search-pngtopam) tmp1-name (search-pamscale) factor (search-pnmtopng) - file))) + tmp2-name))) - (rename-file file old) + (copy-binary-file file tmp1-name) (ly:system-with-shell cmd) - (delete-file old))) + (copy-binary-file tmp2-name file) + (delete-file tmp1-name) + (delete-file tmp2-name))) (define-public (ps-page-count ps-name) (let* ((byte-count 10240)