Gyazoでファイル名に空白があるとアップロードできない

Macで⌘+⇧+4とかでキャプチャするとデフォルトで以下のような名前のファイルが作成される。

しかし、ファイルがこのような名前だとGyazoのアイコンへのD&Dによるアップロードがうまく動かないっぽい。

たぶんググれば一発なんだろうけどGyazoのソースも見てみたかったので、この機会にググらずに調査してみた。

まずConsoleログを見てみたら、案の定エラーが

/Users/snaka/Desktop/gyazo.app/Contents/Resources/script:25:in `read': No such file or directory - /tmp/image_upload3130.png (Errno::ENOENT)
	from /Users/snaka/Desktop/gyazo.app/Contents/Resources/script:25
Warning: /Users/snaka/Desktop/ピクチャ not a valid file - skipping
Warning: 1.png not a valid file - skipping
Error 4: no file was specified
Try 'sips --help' for help using this tool

これを見て一発で原因が判明。本来、"/Users/snaka/Desktop/ピクチャ 1.png"となるところが"/Users/snaka/Desktop/ピクチャ"となっている。空白以降が途切れてしまっている。

Gyazoのソース(/Applications/gyazo.app/Contents/Resources/script)を開いてみると

  system "sips -s format png #{imagefile} --out #{tmpfile}"

となっているのがダメみたい。以下のようにsipsコマンドに渡すファイル名をダブルクォートで括る。

  system "sips -s format png \"#{imagefile}\" --out #{tmpfile}"

そしたら、OKだった。Gyazo簡単過ぎ。