View setlocale_hack_1.0 - Release Notes
file info- category(Tag)
- root
- file name
- Patches_for_build_setlocale_hack_1.0_-_Notes
- last update
- 2003-04-12 02:00
- type
- Plain Text
- editor
- Hiroshi Chonan
- description
- setlocale_hack_1.0 - Release Notes
- language
- English
- translate
========================================================================
OpenOffice.org 日本語ロケール版向けMSVC setlocale hack
2003.4.12
========================================================================
OpenOffice.org
独自ビルドプロジェクト
http://waooo.sourceforge.jp/
■setlocale hackリリースノート
このパッケージは OpenOffice.org を日本語版MSVCでビルドする際に問題となる
リテラル文字列および文字定数の誤認を抑制するquick hackです。ビルドを行う
際の参考にしていただければ幸いです。
■hack方法
日本語版VC++6.0は製品の特質上、SJISコードのリテラル文字列および文字定数
をうまく扱えるようにプリプロセッサが働く仕様となっています。この機構は
SJIS漢字コードを扱うためには非常に有用な機構であるのですが、その一方で、
SJIS以外の各種コードをリテラル文字列等に使用するとプリプロセッサがうまく
リテラル文字列を認識できなくなるという問題を持っています。
この挙動はsetlocaleプラグマで制御することができ、実際には、
#pragma setlocale("C")
と記述することにより、SJISコードの処理を抑制することができます。
OpenOffice.org をビルドする際には、すべてのソースコードにこのpragmaを
何らかの形でインクルードする必要があるのですが、筆者は、上記のpragmaを
記述したファイルを solenv\inc\setlocale_msvc.h に設置し、ビルドする際に
環境変数CLを
[C:\OOo\oo_1.0.3_src]set CL=/FI setlocale_msvc.h
と設定してビルドを行うことにより、強制的にsetlocale_msvcをインクルードし、
SJISコードの特殊処理を抑制しました。実際のビルドのい際にはビルドに先立って
winenv.batを実行しますので、事前にwinenv.batの最終行に
set CL=/FIsetlocale_msvc.h
と記述しておくと便利かと思います。
| 
|