Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Don't overwrite match data #47

Merged
merged 1 commit into from
Feb 26, 2016
Merged

Conversation

syohex
Copy link
Contributor

@syohex syohex commented Feb 25, 2016

Some hooks are run at insert-and-inherit, like jit-lock-after-change-extend-region-functions. If some hook function overwrite match data, code after 'insert' does not work as expected. So save match data
and not use 'match-{beginning,end}' functions.

insert-and-inheritの呼び出しでいくつかの hook関数が呼ばれます. jit-lock-after-change-extend-region-functionsなどが該当します. もしこの関数の中で match-dataの上書きが行われてしまうとそれ以降のコードが期待通り動きません(もちろん hook関数で上書きしないようにするべきですが). そこで初めに match-dataをローカル変数に保存し以降はそれを使うようにし, match-dataが上書きされた場合でも問題ないようにしています.

markdown-modeが登録する hook関数で上書きが発生し, 期待通り動かない問題が見られました.(Tak Kunihiroさんより報告を受けました.). markdown-modeには PRを送付済みです(jrblevin/markdown-mode#105)

状況により以下のような現象が発生します. 元の文字が適切に削除されないため, 元々挿入した文字にマッチし続ける現象が発生する.

skk-fix

ご確認のほどよろしくお願いします.

Some hooks are run at insert-and-inherit, like
jit-lock-after-change-extend-region-functions. If some hook function overwrite
match data, code after 'insert' does not work as expected. So save match data
and not use 'match-{beginning,end}' functions.
tkita added a commit that referenced this pull request Feb 26, 2016
@tkita tkita merged commit 7b27bc3 into skk-dev:master Feb 26, 2016
@syohex syohex deleted the overwrite-match-data branch February 26, 2016 12:20
@tkita
Copy link
Member

tkita commented Feb 26, 2016

これ http://mail.ring.gr.jp/skk/201111/msg00065.html ですね。
markdown-mode 以外でも発生しうると思われるので、 merge しました。
報告ありがとうございます。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants