[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
Re: [MD:4174] Do NOT update mingw-runtime, w32api!!
- X-ml-count: 4184
- Subject: Re: [MD:4174] Do NOT update mingw-runtime, w32api!!
- From: MIYOSHI Masanori <miyoshi@xxxxxxxxxxxxxxxx>
- Date: Thu, 13 Feb 2003 01:17:25 +0900
- User-agent: Wanderlust/2.11.1 (Wonderwall) EMIKO/1.14.1 (Choanoflagellata) LIMIT/1.14.7 (Fujiidera) APEL/10.4 Emacs/21.1 (i386-mingw-nt5.1.2600) MULE/5.0 (SAKAKI) Meadow/1.99 Alpha4 (KUROGANE)
>>>>> [meadow-develop : No.4183] にて
>>>>> "藤井" = "M.Fujii" <boochang@xxxxxxxxxxxx> さんは書きました:
藤井> とりあえず、エラーの原因は分かりました。改行コードの問題のようです。
藤井> mw32_start@xxxxxxxxx で変数 _fmode を設定してバイナリモードをデフォル
藤井> トに変更していますが、どうも mingw-runtime 2.3-1 におけるモード設定の
藤井> 変更によって、これがうまくいかなくなったようです。このため、テキストモー
藤井> ドで Meadow.dmp を書き込むことによりデータのサイズが LF -> CRLF の分だ
藤井> け大きくなり、ヘッダの情報とデータがずれてしまうことで portable dumper
藤井> でエラーが発生します。
すばらしい。よく分かりましたね。
mingw-runtime のソースを眺めてみたところ、_CRT_fmode で制御するの
がよさそうなことが分かりました。
以下のパッチで、mingw-runtime-2.4 でビルドできました。後ほど
commit しておきます。
--- ./mw32mem.c.orig 2003-02-13 00:32:16.000000000 +0900
+++ ./mw32mem.c 2003-02-13 01:08:14.000000000 +0900
@@ -113,6 +113,15 @@
text files appropriately, in accordance with the MSDOS code. */
_fmode = O_BINARY;
+#if defined (__MINGW32__)
+#if __MINGW32_MAJOR_VERSION >= 2 && __MINGW32_MINOR_VERSION >= 3
+ {
+ extern int _CRT_fmode;
+ _CRT_fmode = _O_BINARY;
+ }
+#endif /* __MINGW32_MAJOR_VERSION >= 2 && __MINGW32_MINOR_VERSION >= 3 */
+#endif /* __MINGW32__ */
+
/* This prevents ctrl-c's in shells running while we're suspended from
having us exit. */
SetConsoleCtrlHandler ((PHANDLER_ROUTINE) ctrl_c_handler, TRUE);
--
三好 雅則 mailto:miyoshi@xxxxxxxxxxxxxxxx
http://www.boreas.dti.ne.jp/~miyoshi/ (Meadow2 のページ始めました)