2011/04/09

pme の 文字列中の改行文字をなんとかしてみる



pme はすごく便利だけど、少しだけ困ったことがある。


マクロ定義の中の文字列に改行が含まれていた場合は、そこで改行してしまって見づらくなることだ。


たとえば、以前書いたこのマクロは、



(pme (dbg-msgbox 'foo 'bar))
(msgbox (concat "~S
" "~S
")
'foo 'bar)
nil


と展開されてしまって、ちょっと悲しい。


下のようにしてみた。



;; mod
(defun pprint-1 (s0)
(pp-loop (substitute-string (format nil "~S" s0) "\n" "\\\\n"))
(values))


ついでに、最後に nil って表示されてたのを消した。


結果、さっきの例だと↓こうなる。



(pme (dbg-msgbox 'foo 'bar))
(msgbox (concat "~S\n" "~S\n")
'foo 'bar)


いい感じになった。


本当は、改行以外のコントロール文字(タブ文字とか)も考えたほうがいいけど、まあ今はこれでよしとする。





Related Posts Plugin for WordPress, Blogger...

0 コメント :

コメントを投稿