リリースノート
既に判明している問題 - Curl IDE 6.0.1005
インストーラ
サイレントインストーラがスタートメニューのショットカット作成にエラーを起こす場合があります
コンピュータのロケール選択の際、現在のホストロケールと異なるロケールを選択している状態で前回のインストール作業が行われた場合、Curl RTEまたはCurl IDEのアップグレードまたはアンインストールが失敗します。典型的な例は、ロケール設定で日本語を選択しているコンピュータでCurl RTEをインストールし、ロケール設定を英語(英国または米国)に変更してからアンインストールまたはアップグレードを行った場合です。このエラーが起きた場合、コマンドウインドウに以下のようなメッセージが現れます。
Throwing unexpected:
ExistingFileException: Failed to create directory
'file:///c:/Documents and Settings/All Users/Start Menu/Programs/Curl RTE': Cannot create a file when that file already exists (183)
*** Error encountered: ExistingFileException:
Failed to create directory 'file:///c:/Documents and Settings/All Users/Start Menu/Programs/Curl RTE': Cannot create a file when that file already exists (183)
+------------------------------------------------+
| To dismiss this window, press the 'enter' key. |
+------------------------------------------------+
回避方法:以下の手順でこの問題が回避されます。
- [スタート]> [コントロールパネル] > [地域と言語のオプション]に進み、初回のインストールが行われたときのロケールに設定を戻してください。
- 全てのCurl RTE/Curl IDEをアンインストールしてください。
- 希望するロケールを設定してください。
- 再インストールします。
Curl RTE /IDEのインストールまたはアンインストールの際は、ロケールの設定は統一されていなければなりません。
Curl RTEが置換わった後に、Curl IDEのインストールをキャンセルすると、古いIDEが削除されます
Curl IDE 5.0 のインストール時に、Curl RTE5.0の置換またはアップグレードが必要となる時があります。Curl RTEインストーラはCurl IDEが置換されようとしていることを認識している場合に、既存のCurl IDEを削除します。しかし、Curl IDEのインストールの途中にキャンセルした場合、新しいCurl IDEはインストールされず、以前に存在していたCurl IDEは復元されません。
この問題はサイレントインストーラならばキャンセルが不可能なため発生することはありません。この問題は、ユーザがCurl RTE 5.0とCurl IDE 5.0のベータ版を持っている状態で、実際にリリースされたCurl IDE 5.0のインストールを行った際に起きます。また、Curl IDEを最新のバージョンにアップグレードし、Curl RTEに追加のアップグレードを行った場合にも同様の問題が起きます。
回避方法 : Curl IDE 5.0のインストーラが、互換性のあるCurl RTEをインストールする旨のダイアログを表示した場合、そのダイアログ、またはCurl RTEのインストールを継続しているダイアログからCurl RTEのインストールをキャンセルしてください。
注意:Curl IDEがインストールされようとしている内容のダイアログの表示を待たずにキャンセルしてください。
Curl IDEのインストールをキャンセルした場合、
- Curl RTE5.0 をアンインストールしてください
- 以前のバージョンのCurl IDE で再インストールしてください
SuSE 8.2/KDEにCurl RTE 5.0が正常にインストールできません(openssl dep)
Linux SuSE 8.2のディストリビューションでは、Curl RTE 5.0がインストール、実行できません。
回避方法:ありません。SuSE 8.2/KDEとCurl RTE 5.0では互換性のないバージョンの libcrypto.soが必要だからです。
FireFox上ではプラグインがキャッシュされますが、Curlがインストールされたときに、CurlのプラグインがFireFoxに検知されません
FireFox または Mozilla ブラウザでJavaを使用不可した状態では、 FireFoxは新しいプラグインを検知しません。
回避方法:これはFireFoxまたはMozilla の機能の問題です。
この問題を回避する為に、次のいずれの方法で対応してください:
- FireFox又はMozillaのアドレス欄に about:plugins と入力し、Enterキーを押すと、プラグインリストが更新されます
- FireFox又はMozillaのユーザ設定ダイアログでJavaを使用可に設定する
- FireFox/Mozillaの新しいバージョンにアップグレードする。FireFox 1.0.5、Mozilla 1.8 から該当バグがフィックスされた
FireFox/Mozillaのこのバグに関する情報は次のリソースを参照してください:
https://bugzilla.mozilla.org/show_bug.cgi?id=273785
Linux 用Curl RTEインストーラが余計なCurl IDEのショートカットを作成します
Curl IDEがインストールされていない状態でも、Curl IDEのショートカットを作成してしまいます。
回避方法:ありません。ショートカットがコンピュータに深刻な問題を与えることはありません。ショートカットをクリックした場合はダイアログが表示されます。
Linux用Curl IDEをスタートメニューで見るためには再ログインが必要です
Gnomeが起動しているLinuxでは、Curlの開発環境をインストールした直後にスタートメニューにCurl IDEが表示されません。
回避方法:一度ログアウトしてから再ログインを行うと表示されます。
インストーラがDirectXのバージョンを正しく検出しない問題について
Curl RTEは、グラフィックAPIを正しく動作させるために7.0以降のバージョンのMicrosoft DirectXを必要とします。Curl RTEのインストーラは、インストールされているDirectXのバージョン検出を行います。7.0以降のバージョンのDirectXをお持ちでない場合は、最新バージョンのDirectXをMicrosoftのWebサイトから入手してください。
Curl Incは、Microsoft Windows 98SE をお使いで、DirectXのバージョンが古い場合に、Surge RTEのインストーラが動作しないという報告を受けています。Surge RTEのインストーラは、Microsoftのガイドラインに沿って、DirectXのバージョンを正しく判定しています。また我々のテストラボでは、今までこの問題を再現することが出来ませんでした。
回避方法: Curl RTEをインストールする前に、最新のDirectXをインストールしてください。
KDEではLinux 用Curl IDEスタートメニューが作成されません
Linuxのバージョンによって、KDEが動作している場合、Curl RTE、Curl IDEのスタートメニューが作成されないことがあります。
回避方法:コマンドラインより起動させて下さい。
Curl RTE => /opt/curl/surge/6/surge
Curl IDE => /opt/curl/surge/6/surge-lab
回避方法:コマンドラインより起動させて下さい。
GUIとグラフィックス
デフォルトのDrawオペレーションが変更されました
Renderer2dのデフォルトのDrawOperationがsourceからmaskに変更されました。with-render-propertiesを使用してDrawOperationを使用しない場合、この変更はRenderer2dインタフェースを直接使用して自分のレンダリングを行っているアプレットに影響を与える可能性があります。以前のバージョンでは、デフォルトの振る舞いは透明度が無視されていましたが、今回のバージョンでのデフォルトの振舞いは、PixmapエレメントやFillPatternの透明度設定によって行われます。
前のバージョンの振る舞いで描画処理を行いたい場合、次のようなコードでラップして、コーディングしてください:
{with-render-properties draw-operation =
DrawOperation.source on renderer2d do
[your drawing code here]
}
トレードマークシンボルに下線を引いた場合に起こる問題について
一部のLinuxでは、トレードマークシンボルに下線が引かれた場合、下線付きの文字の表示がおかしくなる場合があります。
DrawableGraphic.occlusion-performance-modeの制限について
DrawableGraphic.occlusion-performance-modeは
”high-performance”、”accurate-occlusion”、”best-effort”の3つの設定が可能です。
現在は、”best-effort”と” high-performance”モードは同じものです。アプレットが他のグラフィカルオブジェクトでDrawableGraphicオブジェクトをオーバーラップすることを要求した場合、”accurate-oclusion”モードを明示的に指定してください。
テーブルセルでの特別なイベント処理について
通常、グラフィカルオブジェクトにbackgroundを設定した場合、そのbackgroundは可視的な設定であれば、ポインターイベントを受け取ります。しかしテーブルセルにbackgroundを設定したときは同じではありません。(例えば、{cell-prototype, background = red, …}と記述した場合)
テーブルセルはGraphicでないので、その振る舞いはグラフィックオブジェクトと違います。
回避方法 : テーブルセルの中にFrameなどのグラフィックオブジェクトを挿入し、backgroundを設定します。(テーブルセルを全てFrameで埋めるために、フレームの高さや幅を指定する時に、{add-stretch}を使用してください。)
ListBox内でのダブルクリックに関する説明
ListBoxでのダブルクリックは、たとえアイテムが一つも選択されていなくても、Actionイベントを発生させます。これは、ListBoxのActionイベントハンドラは、ListBox.valueがnon-nullであると見なさない事を意味しています。
推奨:enabled?=false と visible?=falseを同時に使用してください
コントロールが目に見えない場合でも、フォーカスを取得することは可能です。これはenabled?=falseとvisible?=falseを同時に使用することで回避できます。
BasicConnectedRecordSetは空文字をnullに変換します
ConnectedRecordSetでは、nullの値が認められているcolumnでの空文字はレコードセットがコミットされるときにnullに変換されます。これは特殊なケースであり、より厳密にテーブルの定義を行うことで回避されます。(明示的にnon-nullと定義するなど)
イタリックの文字が欠けることがあります
どの文字もテキストレイアウトに最適な境界ボックスを持っており、また描画処理に最適な境界ボックスも持っています。Curl RTEは、これらの場合、テキストレイアウト用のボックスを使います。その結果、最初または最後の文字が僅かに欠ける時があります。同じ現象が殆どのウェブブラウザで見られます。
ディレクトリを検索する際のファイル名は、大文字小文字を区別します
ディレクトリを検索する為にIDEの検索ダイアログを使用する時、探すファイル名に正規表現を使うことが出来ます。Windowsでは、この正規表現検索は、大文字小文字を区別しません。例えば、"*.h"というパターンは、"WINERROR.H"ファイルにマッチします。
Linux上でのモーダル・ダイアログについて
Linuxでモーダル・ダイアログは、システムの仕様によって親windowをdisableにしませんが、それらのダイアログはモーダル・ダイアログとして機能します。
Windows XPでATI 3d Rage Proを使用している場合に起こる不明瞭なグラフィック表示の問題について
ATI 3d Rage ProグラフィックカードがWindows XPで使用されている場合に、グラフィックの表示が不明瞭になる場合があります。ほとんどの場合、製造元のサイトから最新版のドライバをインストールすることでこの問題は解決されます。
TextShapeでスケールに負の値を設定するとレンダリングが正しく行われません
TextShapeでスケールに負の値を設定すると、本来テキストは反転したイメージでレンダリングされるべきですが、現在この動作が正しく行われません。この問題に対する回避方法は現在ありません。
透明な Background と ポインターイベントの伝播について
オブジェクトのバックグランドが設定された場合、不透明だと考えられます。これは透明なバックグラウンドを持っているオブジェクトの後ろにほかのオブジェクトが見えても、ポインターイベントが前面のオブジェクトに止められることを意味します。回避策:前面のオブジェクトのバックグランドを、”transparent”と設定する代わりに、unsetしてください。
QuickTestにおける右クリックメニューからのPlayBack機能は実装されていません
Mercury QuickTestで右クリックを使用した際、正しくPlayBackが行われません。しかし、多くの場合メインメニューやキーボードのショートカットからPlayBack機能を使用することができます。
アプレットのローディングが完了するまではQuickTestのPlayBackは使用できません
QuickTestのPlayBack機能はアプレットのローディングが完全に終了するまで使用できません。これはアプレットがロード時にダイアログを表示している場合に、QuickTestのダイアログが使用できないことが理由です。回避方法として、{after 0s do}を使用して読み込み時のダイアログをポップアップさせてください。このコードによって、アプレットが完全にローディングされるまで、コードの実行を遅らせることが出来ます。
QTPでは、GroupBoxのラベルはControlを記述する為に使用されます
QTPのtest-name(テスト名)とCurlのtest-nameプロパティが対応していない場合があります。コントロールに対し、Curlのtest-nameがあれば、それがQTPのtest-nameになりますが、ない場合は、コントロールの説明がQTPのtest-nameになります。
またコントロールの多くは内部的に説明があるわけではありません(例えばボタンラベルのように)。その為コントロールは自分自身よりも先にラベルを参照し、それを説明として使用します。よってGroupBox内の最初のコントロールはその説明にGroupBoxのラベルを使用してしまいます。回避方法として、このコントロールに対しCurlのコードの中でtest-nameを与えてください。
言語サポートについて
Curl RTEにおいてサポートされる言語は英語と日本語のみです。アプレットの中で使用されOSで利用可能な左から右へ読むほとんどの言語は表示することと入力することは可能です。
View.draw が GUI ツールキットから呼び出されません
Curl バージョン 6.0 から、View.draw メソッドが呼び出されます。以前、このメソッドは呼び出されなかったので、 View.draw をオーバーライドしたアプレットごとに振る舞いが異なっていました。以前のバージョンと整合性を保つために、このようなアプレットはオーバーライド部分を削除するか、コードの修正を行い、描画の振る舞いを調整してください。
TEA-manager.xcurl 実行中にQTP ユーザ機能は Curl オブジェクトと同じ名前を持つことはできません
Mercury QuickTest Professional (QTP) を Curl アプリケーションのテストに使用する際、Curl のコントロールに付けられた名前と同じ名前を QTP ユーザ機能に付けることはできません。
LightWeightTextGraphic が文字列末の空白を正しく表示しません
CurlはString のようなオブジェクトが、必要に応じて自動でGraphicオブジェクトに変換することを許可しています。例えば以下のコード
-
{Frame background = "yellow",

}
は String を表示するGraphicを含んだFrameを作成しています。この場合の変換は、以下のように文字列末の空白を取り除く動作を含むソースコードの処理をまねています。
-
{Frame background = "yellow",

}
しかしながら、6.0 より前のバージョンでは、空白は常に取り除かれていたわけではありません。もし、文字列末の空白を残したままStringを Graphic に変換したい場合は、空白文字を使用するか、明示的に以下のようにTextFlowBoxを作成してください。
-
{Frame background = "yellow",

}
元に戻す / やり直し は スキンが適用された ComboBox には実装されていません
Curl バージョン 6.0から、Windows 及び Linux上で、元に戻す / やり直し の振る舞いはさまざまなテキスト コントロール に適用されており、その中には規定のユーザインターフェースを持つ ComboBox も含まれています。しかしながら今回のリリースでは、例えば Mac プラットフォーム上での既定のユーザインターフェース のように、スキンが適用されたユーザインターフェースを持つ ComboBox に対しては、元に戻す / やり直し の機能をサポートしていません。
コントロール パネル上で登録されていないQTPのボタンはWindows Vista上では動作しません
Curl RTEとMercury QuickTest ProfessionalをMicrosoft Windows Vista上で実行する際、Windows Vista上でユーザーアカウント制御(UAC)をオフにしない限りは、Curl RTE コントロールパネル上でしか、QuickTestの[登録]ボタンと[登録解除]を使うことができません。
CurlアプレットではリンクをPCのコントロールキー+クリックやMacのアップルキー+クリックをしても新しいタブは開きません
コントロールキーやアップルキーを押しながらのCurlアプレット内のリンクのクリックは、新しいタブを開くことはできません。
GDI+ は GDI 経由で invert-destination を使うことができます
Windows で、出力先を反転させる代わりに Microsoft GDI+ ベースの Renderer2d 上の DrawOperation.invert-destination を使って 2D レンダリングを実行すると、レンダラーはハッチング パターンを使います。 (グローバルもしくは View に対し RenderingMode を high-quality に設定するか、Canvas、AntialiasedFrame、もしくはオフスクリーン Renderer2d を、 use-host-rendering? = false と support-advanced-draw-operations? = false を設定した場合に GDI+ を使用します。) この振る舞いは Curl の将来のリリースでは変更される可能性があることに注意してください。
2つの長い名前のプリンターを判別することができません
get-current-printerの戻り値には返すことができる文字数に制限があります。もし2つのほぼ同じ長い名前のプリンターで、その2つの名前の違いが名前の後ろの方にあった場合、get-current-printerの戻り値は同じになることがあります。
回避策 : ほぼ同じ名前のプリンターがあった場合、プリンターの名前の長さを制限します。
Curl IDE, VLE, ドキュメント
文字コードが正しくない場合、ファイルのチェックアウトが出来ない場合があります
正しくない文字コードを持っているファイルがソースコードリポジトリにチェックインされて、Curl IDEがそのファイルをチェックアウトして編集しようとするときに、この操作が正しく行われない可能性があります。
回避策: Curl IDEで編集する前に、Curl IDE以外のツールでそのファイルをチェックアウトする。
不完全なファイルをデバッグする際に起こるエラーについて
HTTPのURLからロードされたアプレットの最上段にブレイクポイントを設定した場合、ブレイクポイントまで到達した時にファイルは部分的にしか表示されません。
回避方法 : HTTPサーバからファイルをデバッグする際は、Curl IDEのサーバーマッピング機能を使用してください。Curl IDEで、「編集」 → ユーザ設定 → 全般タブ → [URLマッピングを有効にする]を選択し、必要な情報を記述してください。
VLE拡張エディタは保存されていないランタイムパッケージファイルを見つけられません
変更したファイルを保存しない場合、VLE拡張エディタがCurl IDEで開いたファイルの変更を認識しません。
回避方法 : 拡張エディタで作業する前に、Curl IDEで修正された全てのファイルを保存してください。
LinuxにおけるVLEレイアウトツリーに関する問題について
特定のバージョンのLinuxでは、VLEウインドウの一部がオフスクリーンになっている時にVLEレイアウトの中の操作が正確に行えません。
回避方法 : これはウインドウマネージャの問題です。ウインドウの全体をスクリーン上に表示してください。
Linuxでパッケージが完全にキャッシュされる前に、Curl IDEを起動できてしまいます
Linuxではインストールが完了する前にCurl IDEを起動させることが出来てしまいます。また、Linuxではインストール完了のダイアログが表示されません。
回避方法 : Curl IDEをインストールし、rpmコマンドの呼び出しが成功した後も、バックグラウンドでCurl IDEのパッケージをコンパイルし、キャッシュを行うためのタスクが実行されています。
psコマンドを実行し、’surge’プロセスのインスタンスが表示されているか確認してください。surgeに関するプロセスがなにも表示されない場合は、インストールが完了しています。
コンピュータの性能が低かったり、CPU使用率が高い状態でインストールを行うと、バックグラウンドでのプロセスに数分かかることがあります。性能の高いコンピュータならば、この処理に一分以上かかることはまずありません。
Curl IDEはバックグラウンドでのパッケージのインストールタスクが完了する前に起動しても正常に動作します。しかしバックグラウンドのタスクが実行されている間は、パフォーマンスが悪いので、インストール作業が完全に終了してからIDEを起動することをお勧めします。
pcurlが条件つき’include’を評価する時、ユーザではなく、開発者の環境に依存してしまいます
pcurl が条件つき’include’を評価するときに、ユーザではなく、開発者の環境に依存した条件で行なってしまいます。pcurlバージョンはCurlのソースのバージョンと同じ動作を行なうべきで、条件つきinclude文の評価はアプレットが実行される環境によって行わなければいけないので、pcurlのこの振る舞いは間違っています。
パッケージはpcurl化された後も、pcurl化される前と同じように動作しなければいけません。
all-version-switch, platform-switchなどのコードで、pcurl化されたパッケージに誤作動が起こります。
以下に例を示します。
-
{api-version-switch






}
このコードは、開発者側のテストでは正常に動作しますが、プロジェクトを配布した際、開発者側のAPIバージョンに基づいたファイルをインクルードされることになってしまいます。
回避方法 : 配布パッケージの中では条件付のインクルードを行わないでください。
デバッガで大きな配列を展開する場合の注意
現在表示できるアイテムの数に制限はありませんので、デバッガで配列を展開する時には注意して下さい。
変更されたプロジェクトのセッティングに対し、Undo Checkoutでの変更はできません
変更されたプロジェクトのセッティングに対し、Undo Checkoutでの変更はできません。”元に戻す”操作の後にファイルを一度閉じ、再度開く必要があります。この問題は、Undo Checkoutがプロジェクトファイル上で行われ、プロジェクトターゲットの変更が起きた場合のみに起こります。
Curl IDEで古いプロジェクトを開く場合について
Curl IDEはプロジェクトファイルにプロジェクトのAPIバージョンを保持しています。古いバージョンのプロジェクトが開かれた場合、それよりも新しいバージョンのみが持っている機能は使うことが出来ません。[プロジェクト]→[APIバージョンの変更]を選び、古いバージョンのプロジェクトを現在の新しいIDEのバージョンにアップグレードして下さい。Ver5.0では、このダイアログは新しいAPIバージョンを特定する為に、プロジェクトの中のアプレットのヘラルドのバージョンを検知し置き換える機能も持っています。
高さと幅が設定されるまではチャートが表示されない問題について
多くの場合、チャートオブジェクトは高さと幅を明示的に設定するまでは表示されません。
VLEでチャートレイアウトを加えた際にチャートが見えない場合は、高さと幅を設定してください。
VLEは異なるAPIのバージョンに対して、トップレベルでのオブジェクトを許可します
VLEの[ファイル]→[新規]または[編集]→[新規レイアウト]を使い、レイアウトのトップレベルのコンテナオブジェクトのタイプを特定することができます。しかしながら、VLEはこの新しいオブジェクトのリストを有効なAPIバージョンでのオブジェクトのみに限定していません。例えば、バージョン3.0のプロジェクトでVLEを開き、[ファイル]→[新規]を選択します。ダイアログはデフォルトでバージョン3.0のAPIのリストを表示します。しかし、トップレベルのコンテナの選択項目には、TabAccordionのようなバージョン5.0からのコンテナも含まれています。もし古いバージョンのまま動かすときは、トップレベルのコンテナに、新しいバージョンのコンテナを選択しないように気をつけてください。
VLE拡張エディタは現在のバージョンのみをサポートしています
VLE拡張エディタは現在のバージョンのみをサポートしています。特定のCurl IDEのバージョンのVLE拡張エディタで作成する場合は、そのバージョンにあったCurl IDEをインストールしなければなりません。
Internet Explorer 7はCurl IDEからCurlアプレットを起動した場合、まだ起動中であると解釈されることがあります
Internet Explorer 7でタブブラウズ機能を無効にしてCurlアプレットを起動した場合、起動が完了しているにもかかわらずInternet Explorer 7はまだ起動している状態であると解釈されることがあります。
Curlアプレットをリロードすると起動中を示すアイコンが止まります。
Curl IDEのデプロイオプションの同期の問題について
Curl IDEのオプションを使ってデプロイしたものを同期するときCurlドキュメントを読むことをお勧めします。
Curlドキュメントの「Curl開発者ガイド」 → 「コンテンツの構成要素」 → 「キャッシュと同期」
ファイル操作、I/O、OCC及びパーシスタントデータ
Curlを終了してもI/Oバッファはフラッシュされません
Curlファイルを開いたり、編集したり、閉じたりする際、Curlを終了するとバッファされたデータは全て失われます。この結果、全てのデータがファイルに書き込まれません。この問題を回避するために、”flush”メソッドが明示的に呼び出されるか、Curlを終了する前にファイルを閉じる必要があります。
curl://occは、いつでもデフォルトブラウザで開きます
Windowsにおいて、OCCアプレット("curl://occ/...")は、デフォルトではないブラウザのアドレス欄にURLを入力したときでも、デフォルトブラウザを開きます。
IISサーバを使う場合、最終更新時が”None”と表示される時があります
初めてパッケージがロードされた時は、「Temporary Internet Files」ディレクトリのそのファイルの最終更新時間が正しく設定されますが、続いてロードを行うと、最終更新時が”なし”と表示されてしまいます。
マニフェストやアプレット中の'resync-as-of'パラメータが最終更新時に依存しているので、マニフェストとアプレットが最新のファイルにアップデートされたように見えてしまいます。
回避方法 :この問題はIIS Webサーバ内での制限が原因です。問題を解決するために、他のWebサーバでデプロイしてください。
‘resync-as-of’の時間を未来に設定することで、マニフェストとアプレット(パッケージファイル)を常に更新させることが可能ですが、パフォーマンスの面からお勧めできません。
Linuxで'network-offline-mode?' はサポートされていません
回避方法 : 'network-offline-mode?'の代わりに 'network-disconnected?'を使用しネットワークが利用可能か確認してください。
request-browser-resident-httpを使用しOCCもしくは多言語対応している時の問題について
request-browser-resident-httpを使用していてOCC機能を持つCurlアプリケーションをデプロイする時と、翻訳ファイルを使用している場合は、注意が必要です。Curlドキュメントの「Webサイトとの対話」の章を読むことをお勧めします。
OS、ブラウザ及びサーバ問題
IEでCurlアプレットを含んでいるウインドウの中で起こるJavascriptの問題について
IEのJavaScriptのwindow.openで呼び出されたウインドウでアプレットが開かれた際、ウインドウがすでに開かれている状態で再度window.openの呼び出さないない限り、window.closeを使用してもウインドウが閉じられません。
回避方法 : アプレットを含んだHTMLページがEMBED/OBJECT/IFTRAMEタグを使用して、window.openで開かれている場合、window.closeでウインドウを閉じることができます。Microsoftはこのバグを認識しており、将来のOSサービスパックで修正される予定です。
Konquerer 3.1.4でアプレットのbrowse-forward と browse-backwardが使えません
Konqueror 3.1.4以前のブラウザで実行するアプレットはApplet.browse-forward とApplet.browse-backwardが使えません。使用すると、(JavaScript: not being supported)のようなエラー内容が書かれたポップアップ画面が表示されます。
回避方法:最近のバージョンではこの問題は解決されています。
Netscape 8.0.2でアプレットのbrowse-forward と browse-backwardが使えません
Netscape 8.0.2で実行するアプレットはApplet.browse-forward とApplet.browse-backwardが使えません。使用しても、何も起こりません。
回避方法:ありません。これはNetscape 8.X.の問題です。
Curl IDEを利用しFireFoxでアプレットを実行する時に、最小化されたFireFoxが元のサイズに戻りません
FireFoxがデフォルトブラウザで最小化されて実行している場合、Curl IDEからアプレットを実行するとアプレットがブラウザ内で実行されますが、ブラウザのウインドウは最小化されたままです。
FireFoxのタブブラウジング問題について
FireFoxでCurlのアプレットを実行する時に、FireFoxのタブブラウジング機能を全て活用することができません。
Windows98とWindowsMEでbrowse-url-postが呼びだされる時に、IEがクラッシュするケースがあります
回避策:別のブラウザを利用するか、OSをバージョンアップしてください。
Netscape 4.75上でのObjectやEmbedタグの問題について
Netscape 4.X 上では、存在しないURLのリンクを保持しているObjectやEmbedタグが使われる場合、何もエラーを表示しないか、おかしなエラーを表示する場合があります。
回避方法:ブラウザをアップグレードしてください。Netscape 4.Xの機能の問題です。
Konqueror3.3.1以前のバージョンでCurlのアプレットにPOSTデータが送られた場合正常に動作しません
回避策:ありません。Konquerorブラウザの制限です。
MozillaベースのブラウザでCurlアプレットがスティッキーなアプレットとして動作します
以下のブラウザではCurlアプレットがスティッキーなアプレットとして動作します。そのため、ブラウザの履歴に残っているCurlアプレットのURLを参照した際、存在するアプレットのインスタンスが参照されて、すでに実行されているアプレットインスタンスに戻ります。
影響のあるブラウザ
- Netscape4.8以上
- Mozillaの全てのバージョン
- Firefoxの全てのバージョン
回避方法:ありません。Mozillaベースのブラウザはプラグインに対して履歴情報の提供をサポートしていません。
Konquerorが自動的に新しいプラグインを検出しません
KDE 環境下で動いているKonquerorブラウザがCurlプラグインの存在を自動的に認識しません。
回避方法:Konquerorで、 Settings -> Configure Konquerer -> Plugins -> Plugins で "Scan for new plugins"ボタンを押してください。
Fedora Core 3において Curl RTE で SSHを使用する場合の注意
最近のOpenSSH のバージョンでは、通常アントラストX11クッキーを使用しています。それに伴い、Fedora Core 3 LinuxにおいてSSH経由でCurlを起動するとエラーが発生する場合があります。以前の状態に戻す為に、ssh_config でForwardX11Trusted yesと設定する必要があります。詳しくは OpenSSH FAQ. を参照してください。
127.0.0.1 が拒否されると強制終了します
ファイアウォールでIPアドレス127.0.0.1 を接続拒否に設定しないでください。Curl RTE と Curl IDEは、内部利用の目的の為にこのループバック・アドレスを使用しています。これらの製品は、このアドレスに対するアクセスがブロックされていると機能しません。
LinuxにおけるMozillaのアドレス・バー内のキーボード・フォーカスについて
Linux上のMozillaでCurlアプレットを動作させた場合、一度キーボード・フォーカスがCurlアプレットに与えられると、ブラウザのアドレス・バーにフォーカスを戻すことが難しくなる場合があります。これはMozillaの特定のバージョンにおけるバグです。
Curl RTEに付属のMozillaには日本語リソースはありません
Linux上のCurl RTEは、ブラウザを起動する必要がある時に、既にインストールされている妥当なブラウザが見つけられないと、Curl RTEに含まれているMozillaブラウザのコピーを使用します。このMozillaのコピーは、ユーザが利用している環境の言語と関係なく、英語リソースだけを含んでいます。
TurboLinux では、ウインドウアイコンをセットできません
TurboLinuxにおいてCurl RTEはウインドウアイコンをセットすることが出来ません。
LinuxにおけるIME Windowの問題について
Fedora Core 3において、IME Windowがタイトルバーを表示すべきではない時にタイトルバーと共に表示されます。ここにはキーボード・フォーカスとIMEウインドウを閉じる際に問題がある可能性があります。しかしながら新しいIMEコンポジションを始める時に、既存のIMEウインドウが閉じられます。この問題は一部のシステムの設定の可能性があります。
以下の設定を/usr/X11R6/lib/X11/app-defaults/Kinput2に追加することにより、kinput2 のウインドウが多くのウインドウマネージャからフォーカスを取得することを防ぐことが出来ます。
*SeparateConversion.input: false
*selectionShell.input: false
*auxShell.input: false
この設定は: fvwm2-2.4.5, sawfish-1.0.1, KDE3, icewm-1.0.9, enlightenment-0.16.5, scwm-0.99.6.2, twm (from XFree86 4.2.0)で動作することが報告されています。
次のウインドウマネージャには有効でありません: blackbox-0.62.1, WindowMaker-0.80.0
上記の設定を適用できないウインドウマネージャにとって、何も変化が無いが、適用できるウインドウマネージャにとって、上記の設定は改善です。
Konquerorが自動的に新しいプラグインを検出しません
Konquerorを使用している全てのCurlユーザはCurlをインストールした後にプラグインを認識させるためにKonquerorの ”Scan for new plugins” ボタンを押す必要があります。そうしないとKonquerorはCurlプラグインを見つけられずCurlアプレットを正しく表示できません。
Curlのインストーラは適切な場所にプラグインのライブラリをコピーします。しかし、"Scan for new plugin at KDE start up"ボタンが押されたときにだけプラグインのスキャンが実行され追加されたことを認識します。これはKonquerorの起動時に発生するのではなくKDEの起動時に発生します。
Konqueror ブラウザでCurlプラグインを起動する時の問題について
Curl RTEはKonquerorブラウザで正しく動作しません。Konquerorブラウザが適切なときに"NPP_Destroy()"を呼び出していないためです。これは以前に生成されたインスタンスを置き換えずに新しいインスタンスを生成してできたアプレットをロードする場合に影響があります。結局、多くのCurl RTEのプロセスが例外を出力しながら生成されます。唯一の回避策は、ブラウザに関連しているすべてのCurl RTEプロセスを取り除くためにKonquerorブラウザを時々止めることです。アプレットのリロードは以前に生成されたインスタンスを置き換えずに新しいインスタンスを生成します。
Linuxで”コントロールキーでマウス・カーソルを表示する”がCurlのコントロールキーの処理を妨げます
Linux上で、”コントロールキーでマウス・カーソルを表示する”を選択した場合、Curl RTEがコンロトールキーの状態を受け取ること出来ません。
LinuxではCurl RTEは、Firefoxのプロファイルをコピーしません。その為Firefoxのユーザ設定は無視されます
LinuxのCurl RTEは、httpとhttpsを取り扱うためにMozillaベースのライブラリを使用しており、Curl RTEは使用しているプロキシサーバーやクライアント証明書などの様々な設定を取得するためにユーザが最後に使用したMozillaのプロファイルのコピーを作成します。しかしながら、Curl RTEはFirefoxのプロファイルをコピーしません。その為、Firefoxのユーザは、Curl RTEが変更を認識できるようにMozillaを起動し、該当の設定をMozilla経由で変更する必要があります。
ネットワークソケットの制限について
Windows 98上でCurl RTEを実行中に、OSのソケット数の制限によってネットワークソケットが不足する可能性があります。この問題によって、ロードが完了しないアプレット、またはネットワークリソースを使用しつくしてしまうことに関するエラーが表示されます。これを修正する為には、regeditを使用して新しくString型のレジストリ・エントリをHKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\MaxConnections に作成し値を256にします。
無限ループを行うアプレットはWindowsのタスクバーの正常な動作を妨げます
Windows XP SP2で特定の設定を行うことによって、無限ループを使った破棄されないCurlのアプレットを実行すると、Windowsのタスクバーが反応しなくなります。以下に単純な例を載せます。
-
{curl 5.0 applet}


}
このアプレットが動作する為の条件は
- Windows XP SP2がインストールされていること
- エクスプローラで、クラシック表示になっていること
- Windows Multiple Language Support がインストールされていること
- 大きな言語バーのアイコンがタスクバーに表示されていること
- Curl RTEが起動されており、システムトレイの左端にある。また、言語バーのアイコンはタスクバーの中ではCurl RTEの左に位置していること
- 無限ループを含んだ破棄されないアプレットがInternet Explorerで実行される
この状態で、Windows Explorerはマウスからのイベントに反応しなくなります。
回避方法 : 上記の設定を行っている場合は、システムトレイ上のCurl RTEアイコンの左側にあるアプリケーションのアイコンを開いてください。最も簡単な方法は、Windows タスクマネージャーを起動することです。
タスクバーが反応しなくなっている場合は、Ctrl-Alt-Delキーを押し、タスクマネージャーを開いてください。プロセスタブの中から、surge.exeを選択し終了させてください。この場合は、全てのアプレットが終了しますので。アプレットを再起動させる必要があります。
Linux上のCurl IDEのショートカットで正常に動作しないものがあります
特定のLinux上で、Curl IDEのショートカットコマンド(Ctrl+F5 やCtrl+Shift+F5)が動作しない場合があります。回避方法としては、メニューから直接選択するか、ツールバーボタンを使用してください。
Windows Vistaでファイルとレジストリについて
Windows Vistaでファイルとレジストリの仮想化は権限の昇格を必要とする領域に書き込む特権アプレットに影響を与えます。これはProgram Filesディレクトリ、Systemディレクトリ、HKEY_LOCAL_MACHINEのレジストリに書き込む時に影響を受けます。これらの領域に書き込み、修正は成功しますがCurrent Userにだけ影響し、アンインストールで削除されません。またWindows Vistaでの権限の昇格を要求するホストプロセスの実行は動作します。
Curl IDEはCurlアプレットが動作している時Firefoxを最小化することができません
Firefoxがデフォルトブラウザで最小化されたウインドウで動作している時、ブラウザウインドは最小化させることができません。
Windows VistaでInternetExplorer7のプロテクトモードの環境でCurlアプレットを起動した時にセキュリティ警告が出ます
Windows Vistaでieuser.exeが動作している状況でCurl RTE、Curl IDEをインストールし、Curlアプレットを起動すると以下のようなセキュリティ警告が出ます。
"A website wants to open web content using this program on your computer...."
回避策として、
- ieuser.exeプロセスが動作していない状況でCurl RTEをインストールする
- Curl RTEをインストールした後に再起動する
Mozillaスタイルプラグインでのブラウザに組み込まれた場合のCurlアプリケーションについて
MacのMozillaスタイルブラウザーでブラウザ内に組み込まれたCurlアプリケーションを表示した時に、Curlアプリケーションは正しく表示されません。1つ以上のアプレットがブラウザ内に組み込まれた場合、Mozillaは不正確な座標を返します。
Internet Explorer 7のクイックタブビューでのCurlアプリケーションの表示について
Internet Exploreの制限によりInternet Explorer 7のクイックタブビューでCurlアプレットを表示するとアイコンでしか表示されません。
API / 言語の問題
“with”マクロを使用した際の、セットされていないオプションに対する動作について
“with”マクロを使用した際の、セットされていないオプションに対する動作について
-
{curl 5.0 applet}
{let cb:CommandButton = {CommandButton}}
{after 5seconds do



}

}
{value cb}
“with(マクロ)”のドキュメンテーションの中で、オプションの値に対して、特定の動きに関する記述をしていません。このドキュメントでは、変数のみを説明しています。
回避方法として、”with”マクロの前で、”with”マクロの中で初期化されたオプションの変数に対して、状態を保存してください。また、”with”マクロを出る際に、その値を明示的に修正してください。
CURL.UTIL.ELASTICの中に移動したAPIについて
CurlRTEのver4.0のAPIの中で、make-elasticを含むエラスティックを操作するAPIはCURL.GUI.BASEからCURL.UTIL.ELASTICに移りました。これらのAPIは両方のAPIバージョンの中で、CURL.GUI.STANDARDによって再読み込みが行われています。
パッケージが4.0以降のバージョンにアップグレードされた場合に、CURL.GUI.BASEがインポートされていて、以下のAPIが定義されていない場合は、CURL.UTIL.ELASTIC 又はCURL.GUI.STANDARDをインポートすることで解決が出来ます。
- クラス:
- Dimension
- Elastic
- OriginElastic
- プロシージャ:
- make-elastic
- make-origin-elastic
- dimension-to-elastic
- dimension-to-origin-elastic
- コンテンツ:
- StretchOrder
- unstretchable-zero-length-elastic
- unstretchable-zero-length-origin-elastic
- unstretchable-stretch-order
- rigid-threshold-stretch-order
- rigid-compress-order
- rigid-neutral-stretch-order
- rigid-stretch-order
- padding-threshold-stretch-order
- proportional-stretch-order
- compliant-stretch-order
Curlの暗号化APIのAlgorithm.rc2は、Windows 2000では正常に動作しません
CURL.CRYPTO.CIPHER パッケージの中のCurl RTEの暗号化APIは、その実装をOSの内部的な機能に依存しています。Windows XP Service Pack 1では、MicrosoftはRC2暗号化で使用するキーのビット数を変更しました。そのため、暗号化されたデータはWindows XPとそれより前のWindowsでは互換性がありません。CurlはRC2の暗号化の際に、全てのサポートしているプラットフォームに対し128ビットの長さのキーを指定していますが、Windows XP Service Pack 1以前のWindowsでは、RC2のキーに対しMicrosoftの暗号提供は40ビットの長さのキーを採用していました。SP1より古いバージョンのWindows OSと暗号化されたデータをやり取りする必要がある際は、CURL.CRYPTO.CIPHER.Algorithm.rc2を使用しないで下さい。
String.replace-clone メソッドが無限ループに落ちる可能性があります
String.replace-cloneメソッドを呼び出す時に、一番目のパラメータを空のStringを渡すと、無限ループに落ちます。 同じように、WritableString.replaceでもこの問題が発生します。
回避策 : これらのメソッドを呼び出す前に、一番目のパラメータが空のストリングにしないように、パラメータの空判定を行ない、空の場合、このメソッドを呼び出さないようにしてください。
ローカルホスト名は非特権アプレットでも取得することができます
セキュリティの問題により、以下のAPIは変更されています。CURL.IO.SOCKETパッケージのSocketInetAddress.get-LowSocketInetAddressLookupは特権アプレットのみで使用することができます。{SocketInetAddress SocketInetAddress.local-host}.nameを使用してローカルホスト名を取得する方法もまた特権アプレットでのみ動作します。
また、以下のAPIは変更されています。
AcceptorTCPSocket.bind, DataTCPSocket.connect,
DataTCPSocket.start-connect, UDPSocket.bind, UDPSocket.write-packet,
UDPSocket.set-remote-address, NetworkSocket.set-local-address
NetworkSocket.current-LowSocketInetAddressLookupはもう使用できません。
トップレベルでの構文の定数はエイリアスとして使えません
'def' 構文を使い、マクロやコード中に埋め込まれた構文に対してエイリアスを作成することが可能になりました。
例えば:
-
def mydo = do


}
この機能はコードを複雑にする恐れがありますので、頻繁に使わないほうがよいでしょう。 これはパラメータ化された型のパラメータとして、マクロにも使うことができます。