Develop and Download Open Source Software

View setlocale_hack_1.0 - Release Notes

category(Tag) tree

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

と記述しておくと便利かと思います。

SourceForge.JP is a Japanese version of SourceForge.net. For developments that are not related to Japan, we recommend you to use SourceForge.net.