| 1 |
//---------------------------------------------------------------------- |
| 2 |
// 開発ノート |
| 3 |
//---------------------------------------------------------------------- |
| 4 |
|
| 5 |
//---------------------------------------------------------------------- |
| 6 |
// Ver 2.85 |
| 7 |
//---------------------------------------------------------------------- |
| 8 |
|
| 9 |
2011/7/28 |
| 10 |
htmlヘルプをRDから作成するようにした。 |
| 11 |
hhcは作成したhtmlから作成しているが、後でRDから直接出力するようにしたい。 |
| 12 |
|
| 13 |
//---------------------------------------------------------------------- |
| 14 |
// Ver 2.84 |
| 15 |
//---------------------------------------------------------------------- |
| 16 |
|
| 17 |
2009/01/02 |
| 18 |
→ エラーウィンドウのコピーがおかしい。複数行選択されないとコピーできないようだ。→修正済み |
| 19 |
|
| 20 |
//---------------------------------------------------------------------- |
| 21 |
// Ver 2.84 |
| 22 |
//---------------------------------------------------------------------- |
| 23 |
|
| 24 |
2008/12/20 |
| 25 |
・PHPの「ブラウザへ送る」に対応 |
| 26 |
・HTMLHELPの挙動がおかしかったので、FreeLibraryを最後におこなうようにした。 |
| 27 |
→ HTMLヘルプ、一度読みに行くとロックを解除せず、ファイルが削除できなくなるようだ。 |
| 28 |
|
| 29 |
2008/06/22 |
| 30 |
・CopalConfig::SetTabWidthを実装。 |
| 31 |
・Tab幅の設定を作ったが、反映されない。 |
| 32 |
→チェックすること |
| 33 |
|
| 34 |
2008/05/30 |
| 35 |
・TFScript::SaveToTemporaryFileを追加。 |
| 36 |
・ConvertStreamで、必ずmsOut->Positionを巻き戻すように修正。 |
| 37 |
・chelpxxx.lzhの表示がおかしいのをなおした |
| 38 |
→ConvertStream関連とFindText関連を整理すること |
| 39 |
→SJISがUTF-8と判定されるバグを修正すること。 |
| 40 |
|
| 41 |
//---------------------------------------------------------------------- |
| 42 |
// Ver 2.83 |
| 43 |
//---------------------------------------------------------------------- |
| 44 |
|
| 45 |
2008/05/29 |
| 46 |
・エラーウィンドウにフォーカスがある場合の表示の修正 |
| 47 |
・Ctrl+Tabでウィンドウを切り替えられるようにした。 |
| 48 |
・スクリプト、結果、エラー各ウィンドウの表示にショートカットキーを設定した。 |
| 49 |
|
| 50 |
//---------------------------------------------------------------------- |
| 51 |
// Ver 2.82 |
| 52 |
//---------------------------------------------------------------------- |
| 53 |
|
| 54 |
2008/02/10 |
| 55 |
・結果ウィンドウでキー入力に対してステータスバー表示が更新されないことがある不具合を修正。 |
| 56 |
・既に登録されている言語を追加できる不具合を修正。 |
| 57 |
・「新しい言語を追加」時に、エラーが出る場合があった不具合を修正。 |
| 58 |
・HTMLHelpとWindows Helpを拡張子で判別するように変更。これに伴い、「言語別の設定」から「HtmlHelp」を削除。 |
| 59 |
・PHPに対応するため「言語別の設定」に「エラーコードが0以外の時に結果ウィンドウを表示しない」を追加。 |
| 60 |
|
| 61 |
//---------------------------------------------------------------------- |
| 62 |
// Ver 2.81 |
| 63 |
//---------------------------------------------------------------------- |
| 64 |
2007/11/06 |
| 65 |
・日本語を含まないファイルをUTF-8と判定されるバグを修正。 |
| 66 |
|
| 67 |
2007/11/05 |
| 68 |
・htmlのmakefileを修正 |
| 69 |
・日本語を含まないファイルだけだとUTF-8と判定されてしまう問題を修正すること。 |
| 70 |
|
| 71 |
2007/10/02 |
| 72 |
・拡張子判別言語切り替えの不具合を修正。 |
| 73 |
|
| 74 |
2007/10/01 |
| 75 |
・FMain::OpenDialogをFScriptに移動。 |
| 76 |
・KMenuCustomizer.* を削除 |
| 77 |
|
| 78 |
2007/09/08 |
| 79 |
・CGIの拡張子をPerlとRubyで設定しているとき、再読み込みでPerlになってしまう。 |
| 80 |
|
| 81 |
2007/08/13 |
| 82 |
・強制終了後、再ログインしないと実行できない不具合を修正(多分 Win 95/98/Me限定)。 |
| 83 |
|
| 84 |
旧コード: |
| 85 |
if (err == ERROR_ALREADY_EXISTS) { |
| 86 |
//もしすでに常駐してたらそいつにメッセージを投げて、自分は死ぬ |
| 87 |
HWND prev = FindWindow("TFCopalProMain",NULL); |
| 88 |
if(prev==NULL) { |
| 89 |
//mutexが設定されているのにウィンドウが見つからない |
| 90 |
MessageBox(NULL,"Cannot find the previous window.","CopalPro",MB_OK); |
| 91 |
}else{ |
| 92 |
|
| 93 |
//引数をGlobal Atomとして追加 |
| 94 |
ATOM atom = GlobalAddAtom(FileName.c_str()); |
| 95 |
if (PostMessage(prev,WM_FILEPOST,(int)atom,0)==0) { |
| 96 |
MessageBox(NULL,"Posting Message was failed.","CopalPro",MB_OK); |
| 97 |
} |
| 98 |
} |
| 99 |
return 0; |
| 100 |
} |
| 101 |
|
| 102 |
新コード: |
| 103 |
|
| 104 |
if (err == ERROR_ALREADY_EXISTS) { |
| 105 |
//もしすでに常駐してたらそいつにメッセージを投げて、自分は死ぬ |
| 106 |
HWND prev = FindWindow("TFCopalProMain",NULL); |
| 107 |
if(prev!=NULL) { |
| 108 |
//引数をGlobal Atomとして追加 |
| 109 |
ATOM atom = GlobalAddAtom(FileName.c_str()); |
| 110 |
if (PostMessage(prev,WM_FILEPOST,(int)atom,0)==0) { |
| 111 |
MessageBox(NULL,"Posting Message was failed.","CopalPro",MB_OK); |
| 112 |
} |
| 113 |
return 0; |
| 114 |
}else { |
| 115 |
//mutexが設定されているのにウィンドウが見つからない(強制終了の疑い) |
| 116 |
const char *msg = "前回、正常に終了していない可能性があります。\n" |
| 117 |
"Perlなどのプロセスが残っている可能性がありますので、\n" |
| 118 |
"タスクマネージャから削除するようにしてください。\n" |
| 119 |
"また、なるべく強制終了をせず、エスケープキーを利用するように\n" |
| 120 |
"してください。"; |
| 121 |
MessageBox(NULL,msg,"CopalPro",MB_OK); |
| 122 |
} |
| 123 |
} |
| 124 |
|
| 125 |
|
| 126 |
2007/05/16 |
| 127 |
・mutexの設定方法を変えた。OpenMutexをやめ、CreateMutexとした。 |
| 128 |
・コンパイル時に「DCLUSR.LIBが開けません」と出る不具合を修正。これで |
| 129 |
まっさらなBCBでもビルドできるはず。 |
| 130 |
・必要ない *.ddpファイルを削除。 |
| 131 |
|
| 132 |
//---------------------------------------------------------------------- |
| 133 |
// Ver 2.80リリース |
| 134 |
//---------------------------------------------------------------------- |
| 135 |
|
| 136 |
2007/03/04 |
| 137 |
・マウスクリックによるactivateで、ファイルの更新チェックをやったときに |
| 138 |
おかしくなる不具合に対応(完全な修正ではない) |
| 139 |
・UTF-8を自動判別できるようにした。 |
| 140 |
・JISの判定ができなくなっていた不具合を解消(UTFが優先されていた) |
| 141 |
・文字コード判別コードをクラス化。それに伴い CodeConv.* -> KCodeConv.* |
| 142 |
・stdio.hを撲滅した。 |
| 143 |
|
| 144 |
2007/03/02 |
| 145 |
・KCopalConfig::UseCGIで統一した。 |
| 146 |
・ SetCodeModeその他も KCopalConfigに移した。 |
| 147 |
→「常に結果をファイルに保存」SaveAllもKCopalConfigの管理下におくべき。 |
| 148 |
→文字コード判別で、UTF-8とJISも判別できるようにすること。 |
| 149 |
|
| 150 |
|
| 151 |
2007/03/01 |
| 152 |
・HotKey関係をKCopalConfigに移行した。 |
| 153 |
→ SetCodeModeその他も KCopalConfigに移すべきか? |
| 154 |
→ OnActivate時の問題の原因判明 |
| 155 |
・Mouse入力によりActivateされた場合、そのマウスイベントが残って問題となる。 |
| 156 |
|
| 157 |
|
| 158 |
2007/02/28 |
| 159 |
・「外部エディタの起動」にショートカット Ctrl+Eを設定 |
| 160 |
・オートリフレッシュの無駄コードを修正(FMainとFScriptのOnChangeScriptの削除) |
| 161 |
・On_WM_Activateで、メッセージがWA_INACTIVEでないかチェックする |
| 162 |
コードを入れた。 |
| 163 |
void __fastcall |
| 164 |
TFMain::On_WM_Activate(TWMActivate &Msg) { |
| 165 |
if(Msg.Active != WA_INACTIVE){ |
| 166 |
FScript->CheckFileDate(); |
| 167 |
} |
| 168 |
} |
| 169 |
|
| 170 |
→ HotKey関係をKCopalConfigに移すこと!!! |
| 171 |
|
| 172 |
2007/02/20 |
| 173 |
・ウィンドウを全てpsDefaultPosOnlyに変更。 |
| 174 |
→ キーワードを選択してから F1を押すとキーワード検索ができない |
| 175 |
|
| 176 |
2007/02/18 |
| 177 |
・ソースの掃除 |
| 178 |
→TFScriptとTFResultで検索コードがかぶっているのを直したい。 |
| 179 |
|
| 180 |
2007/02/18 |
| 181 |
・「オートリフレッシュ時に外部エディタでファイルを開いたら編集禁止」を実装 |
| 182 |
・ソースの掃除。 SaveQueryなど、TFScript::FileAgeや TFScript::FileNameをprivateに |
| 183 |
・makehtmlの場所を変更。Releaseと同格に。 |
| 184 |
・makehtml.rbでアーカイブとソースを作った |
| 185 |
・Ver 2.79をリリース |
| 186 |
|
| 187 |
2007/02/17 |
| 188 |
・Release/html/makehtml.rbを途中まで作った。 |
| 189 |
・makefileも作成。環境変数からの受け渡しも作った。 |
| 190 |
→make release からのテストと、make copyへの追加を忘れずに |
| 191 |
→「オートリフレッシュ時にファイルを開いたら...」が実装されていない |
| 192 |
|
| 193 |
2007/02/15 |
| 194 |
・DOS窓で実行中、プロセスを監視する |
| 195 |
|
| 196 |
HINSTANCE handle = ShellExecute(this->Handle,NULL,CopalConfig->TempBat.c_str(),NULL,NULL,SW_SHOW); |
| 197 |
DWORD exitcode = 0; |
| 198 |
while(1) { |
| 199 |
//exitcodeを調べる |
| 200 |
if(GetExitCodeProcess((HANDLE)handle,&exitcode)==false) { |
| 201 |
break; |
| 202 |
} |
| 203 |
|
| 204 |
if (exitcode !=STILL_ACTIVE) |
| 205 |
break; |
| 206 |
|
| 207 |
if (GetAsyncKeyState(VK_ESCAPE)<0) { |
| 208 |
ShowMessage("処理は中断されました"); |
| 209 |
break; |
| 210 |
} |
| 211 |
} |
| 212 |
DeleteFile(CopalConfig->GetTempFile()); |
| 213 |
|
| 214 |
これにより、確実にゴミを消すことができる。 |
| 215 |
|
| 216 |
2007/02/09 |
| 217 |
・新規作成などをしたら、編集禁止を解くようにした。 |
| 218 |
・スクリプト実行時、結果ウィンドウのスクロールバーの位置を一番上に戻すようにした。 |
| 219 |
・アンフックを忘れていたので、フックを解放するようにした。 |
| 220 |
|
| 221 |
・UpdateAllをつけた。 |
| 222 |
・実行時一時変数をCopalConfigが管理するように変更 |
| 223 |
→なるべくFMain::GetCopalConfig()を削除していきたい。 |
| 224 |
|
| 225 |
2007/02/04 |
| 226 |
・新規作成などをしたら、編集禁止を解くこと。 |
| 227 |
|
| 228 |
2007/01/24 |
| 229 |
・基本的に MenuItemとToolButtonの同期は UpdateMenuで行うことにした。 |
| 230 |
・バージョン情報のメールアドレスを修正 |
| 231 |
→ 一時状態変数はすべてKCopalConfigに保存するようにしたい。 |
| 232 |
→ Exec.cppがひどいので整理したい。 |
| 233 |
→ 整理したあと、Resultのスクロールバーの処理をすること。 |
| 234 |
|
| 235 |
2007/01/22 |
| 236 |
・編集禁止をつけた |
| 237 |
・条件はどうするか |
| 238 |
→ファイルを開いたときにオートリフレッシュがONなら編集禁止にする |
| 239 |
→TFScriot::LoadFromFileでやってよいか考えること |
| 240 |
|
| 241 |
2006/10/28 |
| 242 |
・拡張子を指定せずに保存した場合、デフォルトで拡張子が追加されるようになった。 |
| 243 |
この際、「test.cgi」を保存しようとして、「test.cgi.rb」などとなってしまうが、 |
| 244 |
これは「言語別の設定」「拡張子リスト」に「rb,cgi」などと使う拡張子を追加すればOK。 |
| 245 |
|
| 246 |
2006/09/01 |
| 247 |
・HTMLヘルプで、存在しないファイルを指定するとバグる問題に対処した。 |
| 248 |
|
| 249 |
2006/08/27 |
| 250 |
|
| 251 |
それぞれのソースファイル(¥Source\Toolsapi)をコンパイルして それぞれ |
| 252 |
の.dcu ファイルを\Lib\Objにコピーしました。 |
| 253 |
[プロジェクト | オプションソースの編集]で |
| 254 |
|
| 255 |
PFLAGS(パスカルのオプション)項目に Ludesignide を追加 |
| 256 |
<PFLAGS value="-$YD -$W -$O- -$A8 -v -JPHNE -M -Ludesignide"/> |
| 257 |
|
| 258 |
これで、コンポーネントのコンパイルもエラーなく、インストールできました。 |
| 259 |
|
| 260 |
|
| 261 |
2006/08/18 |
| 262 |
・Cygwinのmakeが通るように KRegexp.cppの KRegexp::Patternを修正。 |
| 263 |
|
| 264 |
2006/07/15 |
| 265 |
・空白を含むファイルを開けないバグを修正 |
| 266 |
・拡張子により自動的に言語が切り替わるようにした。 |
| 267 |
・以下のコードは、*.rbを表示しているときに test.cgiと保存しようとすると |
| 268 |
test.cgi.rbになってしまって鬱陶しいので削除。 |
| 269 |
やるなら自前でやるか。 |
| 270 |
//FMain->SaveDialog->DefaultExt = FMain->GetCopalConfig()->GetDefaultExt(); |
| 271 |
|
| 272 |
|
| 273 |
|
| 274 |
2006/05/17 |
| 275 |
・検索ウィンドウにフォーカスがあるときにショートカットキーが効かなかったバグを修正。 |
| 276 |
|
| 277 |
2006/05/04 |
| 278 |
・UseTagJumpToOtherFileに対応。 |
| 279 |
・requireなどで読み込んだ別のファイルにエラーがあった場合に、タグジャンプ |
| 280 |
できるようにした。外部エディタのタグジャンプ設定が必要。 |
| 281 |
|
| 282 |
2006/05/03 |
| 283 |
・BREGEXP.DLLのラッパークラス、KRegexpを追加。 |
| 284 |
・それに伴い BMRegExpコンポーネントを削除。 |
| 285 |
|
| 286 |
2006/04/07 |
| 287 |
・パスに空白を含むファイルをショートカットにドロップしたときに開けない問題を修正。 |
| 288 |
|
| 289 |
|
| 290 |
2006/02/20 |
| 291 |
・下方向の検索速度も向上。数千行くらいまでなら実用的。 |
| 292 |
・64KB以上のテキストが編集できなかった問題を修正。 |
| 293 |
|
| 294 |
2006/02/19 |
| 295 |
・上方向への検索速度を向上。 |
| 296 |
・同様に下方向も向上させる必要あり。 |
| 297 |
|
| 298 |
2006/02/18 |
| 299 |
・Cookieエディタをつけた。 |
| 300 |
|
| 301 |
2006/02/10 |
| 302 |
・環境変数エディタを、常に手前に表示できるようにした。 |
| 303 |
|
| 304 |
2006/02/08 |
| 305 |
・環境変数エディタの使い勝手向上 |
| 306 |
・あとは検索だけなんとかして公開したい。 |
| 307 |
|
| 308 |
2006/01/23 |
| 309 |
・Ruby のエラーメッセージ |
| 310 |
・test.rb:2: undefined local variable or method `a' for main:Object (NameError) |
| 311 |
・BRegexp.dllが使えそう。サンプルコードを書きたい。$1に帰るようにすればいいな。 |
| 312 |
|
| 313 |
2006/01/19 |
| 314 |
・requireの別ファイルにタグジャンプしたい。 |
| 315 |
・フォームエディタの使い勝手を向上 |
| 316 |
|
| 317 |
2006/01/17 |
| 318 |
・requireの別ファイルにタグジャンプしたい。 |
| 319 |
|
| 320 |
2006/01/15 |
| 321 |
・FindNextで、視界から消える問題を修正。 |
| 322 |
・FindPrev(上方向に検索)を作成 |
| 323 |
・TEditor用にFindPrev, FindNextをTAWKStrを使って作り直した。 |
| 324 |
|
| 325 |
2006/01/10 |
| 326 |
・FindNextをつけた。 |
| 327 |
・Windowを変えるショートカットキーを削除 |
| 328 |
・FindNextで、視界から消えるバグを修正すること。 |
| 329 |
|
| 330 |
2006/01/05 |
| 331 |
・SetWindowFocusを指定。TEditorに対応する準備。 |
| 332 |
・ファイルを開いているときに、春Mから別のファイルをCopalに送ったとき、 |
| 333 |
Copalが最前面にこない。 |
| 334 |
|
| 335 |
2006/01/04 |
| 336 |
・設定を開いている時にはホットキーを無効にした。 |
| 337 |
・ホットキーが効かないことがあるバグを修正。 |
| 338 |
・Ctrl+Zが効かないバグを修正。 |
| 339 |
|
| 340 |
↑Ver 2.74 |
| 341 |
------------------------------------------------------------------------- |
| 342 |
↓Ver 2.73 |
| 343 |
|
| 344 |
2005/11/27 |
| 345 |
・ホットキーに対応 |
| 346 |
|
| 347 |
2005/11/20 |
| 348 |
・「実行結果のブラウザへ」エラーがあるときにはブラウザを開かないように修正。 |
| 349 |
|
| 350 |
2005/10/17 |
| 351 |
・フォームエディタがESCで閉じるようにした。 |
| 352 |
・Valueでリターンキーを押したとき、次に進むようにしたい。 |
| 353 |
・出力が何もないときに「ブラウザへ出力」をやると「リストの範囲を超えています」とでるバグを修正。 |
| 354 |
・すでにCopalが起動しているときに、もう一度実行すると変な名前のファイル名を開こうとしていたバグを修正。 |
| 355 |
|
| 356 |
2005/07/05 |
| 357 |
・カレントディレクトリを、スクリプト、実行結果で分けて管理するようにした。 |
| 358 |
・スクリプトでないファイルをドロップしたとき、実行結果のカレントがドロップファイルの |
| 359 |
あるディレクトリに変わるようにした。 |
| 360 |
→これは人それぞれかも知れないので、環境にチェックを入れておく。 |
| 361 |
・ディレクトリ |
| 362 |
|
| 363 |
ファイルドロップ時にカレントディレクトリを変更する。 |
| 364 |
・デスクトップからドロップした場合は変更しない |
| 365 |
|
| 366 |
・ヘッダのカットがおかしかったので直した。 |
| 367 |
|
| 368 |
2005/04/17 |
| 369 |
・ファイルをドロップしたら、「ドロップファイルを記憶」が押されるようにしたい。 |
| 370 |
・返り値が0でなかったら、エラーがあることをどこかに表示したい。 |
| 371 |
|
| 372 |
2005/01/05 |
| 373 |
・エディタを指定した時に、カレントディレクトリが変わるのを防ぐようにした |
| 374 |
・常に出力ファイルを指定を作った |
| 375 |
・CGIエディタでコピー系が全てTFMainに乗っ取られていたので、 |
| 376 |
PostMessage(ActiveControl->Handle,WM_COPY,0,0); |
| 377 |
をメニューで入れることで対応。 |
| 378 |
・キーワード検索の不具合を修正。 |
| 379 |
・時々セーブがおかしくなるので、結果ウィンドウの保存はいま常にSJISになっている。 |
| 380 |
|
| 381 |
2004/08/23 |
| 382 |
・単語検索で、範囲チェックエラーが出る。検索範囲もおかしい。 |
| 383 |
・コマンドラインから新規ファイル作成ができないバグ |
| 384 |
|
| 385 |
|
| 386 |
2004/08/13 |
| 387 |
・実行結果のエディタでコピー&ぺーすと等ができない。 |
| 388 |
・実行ファイルをセーブしたファイル名が残っていた→クリアする |
| 389 |
|
| 390 |
2003/11/04 |
| 391 |
・アンドゥが効かない?チェックすること |
| 392 |
2003/11/11 |
| 393 |
|
| 394 |
・スクリプトをドロップして言語が変わったときの |
| 395 |
バグを修正 |
| 396 |
・多数のファイルをドロップの処理を付け加える |
| 397 |
・処理中のダイアログを出すこと |
| 398 |
|
| 399 |
|
| 400 |
現在、フル構築に137秒かかる。 |
| 401 |
|
| 402 |
|
| 403 |
2003/11/18 |
| 404 |
・ファイルをいじるたびにカレントフォルダが戻ってしまう。 |
| 405 |
・タグジャンプ |
| 406 |
terapad なら |
| 407 |
/jl=%N %F |
| 408 |
秀丸なら |
| 409 |
/j行番号,桁番号 |
| 410 |
多分 /j%N,0 %F でいけると思う。 |
| 411 |
|
| 412 |
|
| 413 |
・キーワード検索で括弧に反応してしまう |
| 414 |
・open(file)で、「open(」を探してしまう。 |
| 415 |
・なおした |
| 416 |
|
| 417 |
・カレントフォルダ |
| 418 |
・スクリプトのカレントディレクトリと実行結果のカレントフォルダを |
| 419 |
別々に管理 |
| 420 |
|
| 421 |
・直前にドロップしたファイルを知りたい |
| 422 |
・直した |
| 423 |
|
| 424 |
|
| 425 |
2004/06/09 |
| 426 |
・Copalで開いているスクリプトに変更がある場合、オートリフレッシュを |
| 427 |
押したら注意すべき。 |
| 428 |
|
| 429 |
2004/10/29 |
| 430 |
・環境変数の与え方 |
| 431 |
char* lpEnvironment ="test=test1"; |
| 432 |
CreateProcess(NULL,CommandLine.c_str(), NULL, NULL, TRUE, 0, lpEnvironment, NULL, &si, &pi) |
| 433 |
|
| 434 |
ただし、各値は "名前=値"でNULLターミネート。ブロックの終わりにNULLも必要なので、 |
| 435 |
最後は二つNULLが並ぶことになる。 |
| 436 |
|
| 437 |
表示は |
| 438 |
print $ENV{"PATH"}; |
| 439 |
|
| 440 |
リストから lpEnvironmentを作るコードが必要。 |
| 441 |
KExecProcのメンバにすべき。 |
| 442 |
|
| 443 |
・とりあえず、 lpEnvironmentをメンバ変数にした。 |
| 444 |
・ちゃんと作ればGETメソッドだけはできる。 |
| 445 |
|
| 446 |
AddEnvironment(AnsiString Name, AnsiString Value); |
| 447 |
|
| 448 |
それとは別に、CONTENT_LENGTHとかを作る |
| 449 |
|
| 450 |
さしあたり必要なもの。 |
| 451 |
REQUEST_METHOD POST/GET |
| 452 |
CONTENT_LENGTH POSTの時、長さを入れる。(GETの時はセットしない) |
| 453 |
QUERY_STRING |
| 454 |
|
| 455 |
|
| 456 |
FORMで必要なもの |
| 457 |
|
| 458 |
TEXT <input type=text name="name" size=20 value="ひろし"> |
| 459 |
TEXTAREA <textarea name="value" rows=5 cols=82></textarea> |
| 460 |
CHECKBOX |
| 461 |
|
| 462 |
・環境変数lpEnvironmentは、KExecProcには渡すだけ、 |
| 463 |
したがって、 |
| 464 |
|
| 465 |
KExecProc::SetEnvironment(char * buf, int size); |
| 466 |
でOK。 |
| 467 |
|
| 468 |
lpEnvironmentを作るのは、CGIフォームエディタ。 |
| 469 |
MakeEnvironmentが作る。 |
| 470 |
|
| 471 |
・FormEditorの作成(リビジョン36が直前) |
| 472 |
|
| 473 |
TStringGridで、行全体を選ぶのは |
| 474 |
Options goRowSelectをtrueに。 |
| 475 |
Options goRangeSelectをfalseに。 |
| 476 |
|
| 477 |
配置: |
| 478 |
|
| 479 |
TStringGrid Client |
| 480 |
Panel Bottom |
| 481 |
|
| 482 |
Panelの大きさを確定するため、Splitterはいらない |
| 483 |
|
| 484 |
2004/10/31 |
| 485 |
・フォームエディタを作った。 |
| 486 |
|
| 487 |
|
| 488 |
PATH |
| 489 |
REMOTE_ADDR |
| 490 |
REQUEST_METHOD |
| 491 |
HTTP_ACCEPT |
| 492 |
HTTP_ACCEPT_CHARSET |
| 493 |
HTTP_ACCEPT_ENCODING |
| 494 |
HTTP_ACCEPT_LANGUAGE |
| 495 |
HTTP_HOST |
| 496 |
HTTP_REFERER |
| 497 |
HTTP_USER_AGENT |
| 498 |
TZ |
| 499 |
|
| 500 |
環境変数の取得 |
| 501 |
GetEnvironmentVariable,SetEnvironmentVariable |
| 502 |
|
| 503 |
・まずは環境変数から |
| 504 |
|
| 505 |
TList *EnvList; |
| 506 |
|
| 507 |
class KEnvData{ |
| 508 |
private: |
| 509 |
AnsiString Name; |
| 510 |
AnsiString Value; |
| 511 |
public: |
| 512 |
AnsiString GetName(void); |
| 513 |
AnsiString GetValue(void); |
| 514 |
void SetName(AnsiString n); |
| 515 |
void SetValue(AnsiString v); |
| 516 |
}; |
| 517 |
|
| 518 |
2004/10/31 |
| 519 |
・環境変数のGUI部分を完成 |
| 520 |
・KExecProcへの受け渡しも作った。 |
| 521 |
・「CGIフォームデータを使う」を作った。 |
| 522 |
→Execのロジックの整理 |
| 523 |
|
| 524 |
2004/11/01 |
| 525 |
URLエンコード: |
| 526 |
・文字は危なげなものをそのまま%でエスケープ |
| 527 |
・ただ、?(%81%48)となるべきものが、なぜか%81Hになっている。 |
| 528 |
・変数名もエンコードしなくてはいけない |
| 529 |
・空白は+へ。+もエスケープ |
| 530 |
・エスケープされない文字 |
| 531 |
・このUrlEncodeメソッドによってエンコードされる文字は、下記以外の文字である。 |
| 532 |
「a〜z」「A〜Z」「0〜9」「'」「.」「-」「*」「)」「(」「_」 |
| 533 |
・どの文字コードでエンコードすべきか。とりあえずスクリプトと同じ文字列でエンコードする。 |
| 534 |
・UTF-8とか言われると面倒かも・・・。 |
| 535 |
|
| 536 |
要するに、文字コードを指定の文字コードに変換後、エスケープしない文字列は全てエスケープする。 |
| 537 |
|
| 538 |
|
| 539 |
LPTSTR lpBuffer; |
| 540 |
FormatMessage( |
| 541 |
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM, |
| 542 |
NULL, |
| 543 |
GetLastError(), |
| 544 |
LANG_USER_DEFAULT, |
| 545 |
(LPTSTR)&lpBuffer, |
| 546 |
0,NULL); |
| 547 |
ShowMessage(lpBuffer); |
| 548 |
LocalFree(lpBuffer); |
| 549 |
|
| 550 |
・GetConvertOptionの動作も修正 |
| 551 |
・GetURLEncodedTextを作った。 |
| 552 |
|
| 553 |
2004/11/02 |
| 554 |
・ファイルヒストリもおかしい。 |
| 555 |
→直した |
| 556 |
|
| 557 |
2004/11/03 |
| 558 |
・GETは全て完成 |
| 559 |
・POSTはまだ |
| 560 |
→クリップボードがおかしい |
| 561 |
→?のあとを直接入力するモードが欲しい |
| 562 |
→HTMLを解析するツールが欲しい |
| 563 |
|
| 564 |
2004/11/04 |
| 565 |
|
| 566 |
・CreatePipeしたら、片方はDupulicateする。 |
| 567 |
//子プロセスの書き込み権を禁止 |
| 568 |
HANDLE hcp = GetCurrentProcess(); |
| 569 |
DuplicateHandle(hcp,hStdInWriteEnd,hcp,&hRead,0,TRUE,DUPLICATE_CLOSE_SOURCE|DUPLICATE_SAME_ACCESS); |
| 570 |
|
| 571 |
→いちどサンプルコードを組んで、標準入力に書き込む、読み込むだけの |
| 572 |
コードを書かないとだめだ。 |
| 573 |
|
| 574 |
フルビルド 64.08sec |
| 575 |
|