Minecraftとタートルと僕

PCゲームMinecraftのMOD「ComputerCraft」の情報を集めたニッチなブログです。

こちらのページは更新が滞っており、情報が古くなりつつあります。新しいCC情報サイトをはじめましたので、もしよければご参照ください。今後ともよろしくお願い申し上げます。

「百億のマインクラフトと千億のタートル」(https://hevo2.hatenablog.com/)

ComputerCraft1.6プレリリース(2)-複数行コピペできるよ!

発端

さきほどの記事では、
"paste"イベントが実装されたけれどそのイベントを扱っているLuaプログラム自体が改行コードを想定していない
と書いていました。

実際、改行コード入りの複数行にわたる文字列をコピペしてもうまくいきません。

しかし思いました。

あれ? "paste"イベント自体は、改行コードも含めて文字列を返しているのでは?

そこで以下の検証。

検証用コード

検証用プログラム

while true do
  local event, str = os.pullEvent("paste")
  local lengh = string.len(str)
  local pos1 = string.find(str,"\n")

  print("lenght: ", length)
  print("newline char pos: ", pos1)
  print(str)
  print("--")
end

コピペする文字列

abc
def
ghi

(CTRL+Vで)コピペした結果

f:id:hevohevo:20140130192235p:plain:w400

すばらしい!!! pasteイベント自体は改行コードも問題なく返してくれています。

現在(computercraft1.6pr0)は、editコマンドやshellのプログラムで改行コードを取り扱うようになっていませんが、一部を書き換えるだけで問題なく複数行コピー&ペーストできます。

今後の正式版に期待しましょう。

まとめ

  • computercraft1.6pr0では、"paste"イベントが実装されたので、複数行コピー&ペーストが可能です
  • ただし、editおよびshellプログラム自体が複数行を扱うようプログラムされていないため、これらの中ではまだできません。
  • 正式版でeditおよびshellプログラムが改修されていることを祈りましょう。
  • もし正式版で直っていなくても、どちらもLuaプログラムなので自分で直せば大丈夫!