やるきなし

2019/06/17 16:32 / rdtool-elisp 0.6.38-4, Symbol's function definition is void: insert-string

ほぼ markdown に移行したのだが,一部 RD を使う場面があって,Emacs の rd-mode を使っているのだが,M-RET (箇条書きItem (*)追加)が以下でコケる.

if: Symbol’s function definition is void: insert-string

手元の Emacs 24.5.1 で f1-f insert-string で確認したところ以下とのことでinsertを使わなければならないらしい.

This function is obsolete since 22.1;
use `insert' instead.

なお insert-string は以下で定義されている(integerであればstringに変換のうえinsertする).

(defun insert-string (&rest args)
  "Mocklisp-compatibility insert function.
Like the function `insert' except that any argument that is a number
is converted into a string by expressing it in decimal."
  (declare (obsolete insert "22.1"))
  (dolist (el args)
    (insert (if (integerp el) (number-to-string el) el))))

github では https://github.com/uwabami/rdtool/commit/9879b190716b43ff5801782ddf2de65b0a5893ef で修正されているようだが Debian Package はまだのようで,ひとまず ~/.emacs に以下を書いておく.

(defun rd-intelligent-newline ()
  (interactive)
  (let (item)
    (setq item
          (save-excursion (rd-search-last-listitem) )
          )
    (end-of-line)
    (newline)
    (if item (insert item) )
    )
  )

Related articles