ATOKでIME変換中に文字表示が消えるバグを修正

NTEmacsスレ3の 56さんより,パッチをいただきましたので,修正版リリースさせていただきました.NTEmacsスレ3の 56さん,ありがとうございました.

emacs-24.2

ビルド時のオプションは以下のとおりです.



configure.bat
--no-debug --with-gcc --enable-w32-ime --with-svg
--cflags -O2
--cflags -fno-omit-frame-pointer
--cflags -funsigned-char
--cflags -mthreads
--cflags -pipe
--cflags -DRECONVERSION
--cflags -DIME_UNICODE
--cflags -IC:/gnupack_devel/app/libs/gnome-binaries-win32/include
--ldflags -LC:/gnupack_devel/app/libs/gnome-binaries-win32/lib
--cflags -IC:/gnupack_devel/app/libs/gnutls4win/include
--ldflags -LC:/gnupack_devel/app/libs/gnutls4win/lib
--cflags -IC:/gnupack_devel/app/libs/gnuwin32/include
--ldflags -LC:/gnupack_devel/app/libs/gnuwin32/lib
--cflags -IC:/gnupack_devel/app/libs/libxpm/include
--ldflags -LC:/gnupack_devel/app/libs/libxpm/lib

mingw32-make bootstrap
mingw32-make install INSTALL_DIR=/c/emacs-24.2-20120922

使用した各種ライブラリのバージョンは以下のとおりです.


atk 1.32.0-2
cairo 1.10.2-2
expat 2.0.1-1
fontconfig 2.8.0-2
freetype 2.4.4-1
gdk-pixbuf 2.24.0-1
gettext-runtime 0.18.1.1-2
glib 2.28.8-1
gtk+ 2.24.10-1
jpeg 8-1
libcroco 0.6.2-1
libpng 1.4.3-1
librsvg 2.32.1-1
libtiff 3.9.2-1
libxml2 2.7.7-1
pango 1.29.4-1
zlib 1.2.5-2
gnutls 2.10.1-1
giflib 4.1.4-1
libxpm 3.5.8

gnupack 10.01 リリース

gnupack 10.01リリースしました.今日,emacsも修正版をリリースしていますが,gnupackへの取り込みは次回にしたいと思います.

  • gnupack startup(emacs起動プログラム)で gdi++使用時に正常起動できない問題を修正.
  • emacsで gifと pngが表示できない問題を修正.

ダウンロードはこちらから.

SourceForge.JPからファイルをダウンロードするのに,時間が掛かる場合があるようです.そういう場合は,ミラーサイトを変更すると多少改善するかもしれませんので,お困りの方はお試しください.

ATOKでIME変換中に文字が表示されない問題(未解決)

itouhiroさんより,IME変換中の文字が表示できない事象についてご報告いただきましたが,解決の目処が立っていません.私が事象を確認した環境,再現手順は以下のとおりです.(itouhiroさんが分かりやすいように動画GIFを用意してくださっています >> http://f.hatena.ne.jp/itouhiro/20120911155026

環境
Windows XP SP3 32bit
ATOK 2012 for Windows 25.0.4.0(試用版)
emacs-24.2-20120902 あるいは emacs-24.1-20120716

再現手順
  1. emacsを起動
  2. 別のウィンドウをアクティブ化
  3. Alt + Tabを操作して,emacsをアクティブ化
  4. IMEを有効にして文字を入力


IME変換中の文字が表示されないのは,一度目のみで,それ以降はちゃんと表示されるようです.ただし,再度,他のウィンドウから Alt + Tabで emacsへフォーカスを切り替えた直後は表示されないようです.



emacs-24.1-20120716と emacs-24.1-20120616のソースを比較したところ,w32fns.cの関数 w32_wnd_procにおけるメッセージループ処理を変更していることで今回の事象が発生しているようです.これは,Office IME2010での不具合に対処するための修正であるため,そのまま戻すことができません.



以下は emacs-24.1-20120716のロジックです(ATOKで問題が発生).



case WM_IME_STARTCOMPOSITION:
if (!ignore_ime_char)
{
struct frame *f;
f = x_window_to_frame (dpyinfo, hwnd);

w32_set_ime_conv_window (hwnd, f);
ignore_ime_char = 1;

goto dflt;
}
break;



以下は emacs-24.1-20120616のロジックです(Office IME2010で問題が発生).



case WM_IME_STARTCOMPOSITION:
if (!ignore_ime_char)
{
struct frame *f;
f = x_window_to_frame (dpyinfo, hwnd);

w32_set_ime_conv_window (hwnd, f);
ignore_ime_char = 1;

}
goto dflt;

emacs-24.1-20120616のロジックでは,「goto dflt」により「DefWindowProc」が実行されることにより,メッセージ処理のデフォルト処理を行っているようなので,それがないことにより ATOKの問題が発生しているのではと考えています.(しかし,どの処理が足りないのか,誤っているのかを特定する手段が分からず,現状,行き詰っています…)

gnupack 10.00 リリース

gnupack 10.00リリースしました.

  • emacsemacs-24.2-20120902にバージョンアップ.
  • cygwinを 1.7.16-1にバージョンアップ.
  • emacsの file-name-shadow-modeが正しく設定できていなかった問題を修正.

ダウンロードはこちらから.

emacs for gnupack 24.2リリース

emacs 24.2をビルドしました.

gnupackへの取り込みは,来週末を目処に実施したいと思ってます.

emacs-24.2

ビルド時のオプションは以下のとおりです.



# configure.bat
--no-debug --with-gcc --enable-w32-ime --with-svg
--cflags -O2
--cflags -fno-omit-frame-pointer
--cflags -funsigned-char
--cflags -mthreads
--cflags -pipe
--cflags -DRECONVERSION
--cflags -DIME_UNICODE
--cflags -IC:/gnupack_devel/app/libs/gnome-binaries-win32/include
--ldflags -LC:/gnupack_devel/app/libs/gnome-binaries-win32/lib
--cflags -IC:/gnupack_devel/app/libs/gnutls4win/include
--ldflags -LC:/gnupack_devel/app/libs/gnutls4win/lib
--cflags -IC:/gnupack_devel/app/libs/gnuwin32/include
--ldflags -LC:/gnupack_devel/app/libs/gnuwin32/lib
--cflags -IC:/gnupack_devel/app/libs/libxpm/include
--ldflags -LC:/gnupack_devel/app/libs/libxpm/lib

# mingw32-make bootstrap

# mingw32-make install INSTALL_DIR=/c/emacs-24.2-20120902

使用した各種ライブラリのバージョンは以下のとおりです.


atk 1.32.0-2
cairo 1.10.2-2
expat 2.0.1-1
fontconfig 2.8.0-2
freetype 2.4.4-1
gdk-pixbuf 2.24.0-1
gettext-runtime 0.18.1.1-2
glib 2.28.8-1
gtk+ 2.24.10-1
jpeg 8-1
libcroco 0.6.2-1
libpng 1.4.3-1
librsvg 2.32.1-1
libtiff 3.9.2-1
libxml2 2.7.7-1
pango 1.29.4-1
zlib 1.2.5-2
gnutls 2.10.1-1
giflib 4.1.4-1
libxpm 3.5.8

gnupack 9.01 リリース

gnupack 9.01リリースしました.

  • emacsemacs-24.1-20120716にバージョンアップ.
  • gvimを 7.3.600にバージョンアップ.
  • .emacs.d/init.elに package.elの設定を追加.
  • elisp package w32-symlinksを追加.

ダウンロードはこちらから.

package manager(package.el)の設定は,NTEmacs version 24 とパッケージマネージャ | Amrtaを利用させていただきました.

w32-symlinksの設定は,[Emacs]NTEmacs23.3でショートカットをw32-symlinksで扱えるようにする - ヒルズで働くholidays-lの技ログを利用させていただきました.



今回のリリースには間に合いませんでしたが,NTEmacsスレ3に trampや shell-modeの設定が書き込まれていたので,次回以降のリリースで gnupackへの取り込みを検討したいと思います.

IME2010におけるIME変換時の文字表示が消えるバグを修正

NTEmacsスレ3の 93さんより,IME2010の場合,IME変換時の文字表示が消える事象をご報告いただきました.それに対し,NTEmacsスレ3の 56さんが改修パッチを提供してくださったので,取り込ませていただきました.

NTEmacsスレ3の 56さん,ありがとうございました.

emacs-24.1

ビルド時のオプションは以下のとおりです.



# configure.bat
--no-debug --with-gcc --enable-w32-ime --with-svg
--cflags -O2
--cflags -fno-omit-frame-pointer
--cflags -funsigned-char
--cflags -mthreads
--cflags -pipe
--cflags -DRECONVERSION
--cflags -DIME_UNICODE
--cflags -IC:/gnupack_devel/app/libs/gnome-binaries-win32/include
--ldflags -LC:/gnupack_devel/app/libs/gnome-binaries-win32/lib
--cflags -IC:/gnupack_devel/app/libs/gnutls4win/include
--ldflags -LC:/gnupack_devel/app/libs/gnutls4win/lib
--cflags -IC:/gnupack_devel/app/libs/gnuwin32/include
--ldflags -LC:/gnupack_devel/app/libs/gnuwin32/lib
--cflags -IC:/gnupack_devel/app/libs/libxpm/include
--ldflags -LC:/gnupack_devel/app/libs/libxpm/lib

# mingw32-make bootstrap

# mingw32-make install INSTALL_DIR=/c/emacs-24.1-20120716

使用した各種ライブラリのバージョンは以下のとおりです.


atk 1.32.0-2
cairo 1.10.2-2
expat 2.0.1-1
fontconfig 2.8.0-2
freetype 2.4.4-1
gdk-pixbuf 2.24.0-1
gettext-runtime 0.18.1.1-2
glib 2.28.8-1
gtk+ 2.24.10-1
jpeg 8-1
libcroco 0.6.2-1
libpng 1.4.3-1
librsvg 2.32.1-1
libtiff 3.9.2-1
libxml2 2.7.7-1
pango 1.29.4-1
zlib 1.2.5-2
gnutls 2.10.1-1
giflib 4.1.4-1
libxpm 3.5.8