2008-02-13から1日間の記事一覧

hsp3とhsp3clだけPATHを通す

コンソールからhsp3やhsp3clを実行するときにいちいち"C:\Program Files\hsp31\hsp3"なんて書くのが面倒。 じゃあ、PATHに通そうと思ってもHSPのフォルダには他にも色々ファイルがあって気が引ける。 ということで、以下の二つのファイルだけがあるフォルダ…

ellerさんのはてなダイアリー

Kengo's blog 発見。

文字列リテラルのエスケープシークエンスに\xnnを追加するパッチ

これでオブジェクトファイルを直接いじらず非印字を文字列リテラルに入れられますね。微妙。 --- codegen.cpp.orig Mon Jan 14 09:30:26 2008 +++ codegen.cpp Wed Feb 13 15:39:36 2008 @@ -398,6 +398,19 @@ case 'r': a1 = 13; break; + case 'x': + if( …

#modcfuncを追加するパッチ

#modfuncの関数版が欲しくてパッチを作ろうと思ったら、実はPP_Defcfuncで既に用意はされていたんですね。なので、追加するのはすごく短く済みました。 --- token.cpp.orig Mon Jan 14 09:30:26 2008 +++ token.cpp Wed Feb 13 13:35:58 2008 @@ -2937,6 +29…

エラー時の行数表示がおかしい

実際の4倍の行数で表示される。もちろん、なんの改造もしていないOpenHSP ver3.2beta1をコンパイルしたhspcmp.dllなんだけど。 後でHSP ver3.1とプリプロセス済みファイル、オブジェクトファイルを比較してみる。

文字列のポインタから文字列を得る

HSP

a = "hello" ptr = varptr( a ) // strf %s を使う // 長い文字列では注意が必要 b = strf("%s",ptr) mes b // dupptr を使う // これはクローンであることに注意 // 参照だけでなく破壊的な操作を行う場合はコピーすること dupptr c, ptr, 1, 2 mes c // ls…