eval-last-sexp-popupでmake-stringマイナスでバグることの解決方法

どうやったら再現できるバグかはわからないけれど何回も苦しめられたので一応書こうと思う。
もう既に解決された問題だったか、popup.elをアップデートしていなかったことが原因だったかもしれない。

エラー文の見た目は下リンクのwholenumpエラーと大体一緒
anything-show-completion.el/anything-complete.el の最新版の組み合わせの使い心地がよいです、そしてパッチ - hchbaw記

(wrong-type-argument wholenump -16)
 make-string(-16 32)

自分の場合はpopup.elの部分でなんだか失敗してたのでそこを編集した。

          (when (< current-column column)
            ;; Extend short buffer lines by popup prefix (line of spaces)
            (setq prefix (make-string (+ (if (= current-column 0)
                                             (- window-hscroll (current-column))
                                           0)
                                         (- column current-column))
                                      ? )))

だいたこんな感じの場所にある740行目あたり。make-stringで検索するのが一番早いと思う。(i-searchが効いていれば C-s make-string)

これを

(make-string (+ (if current-column 0)
↓
(make-string (abs (+ (if (current-column 0)

とやるとの、

(- column current-column))
↓
(- column current-column)))

とやって閉じ括弧を追加すれば良い。

そうしたらmake-stringがマイナスの値になってエラーになることはなくなるはず。

(追記 2012/10/30)
アップデートする場合は
GitHub - auto-complete/auto-complete: Emacs auto-complete package
でauto-complete.elなどなどをアップデートすると良い。yasnippetとかがエラーを起こす場合はGitHub - joaotavora/yasnippet: A template system for Emacsでアップデートすると解決するかも。