MAN HIMAZINE INTERFACE 4.0
この「にっき」には暴力シーンやグロテスクな表現が含まれています。
(2010.10.26)
$ NYAOS 3.1.1_0 をリリースしました
Tweet
-
3.1.1_0 (2010/10/24)
- nyaos.filter3.xxxxx を実装。
- No Such file or directory の前にファイル名を表示するようにした。
以下、nyaos_ja.txt からの引用です。
nyaos.filter3.xxxxx (xxxxx は任意) という関数を定義しておくと、外部コマンド を呼ぶシステムコール直前に、呼び出しパラメータを加工することができます。
nyaos.filter3.xxxxx はコマンド名とフルコマンドラインの二つをパラメータとして 受け取ります。これを加工して、戻り値として二つを返すことでシステムコール (Windows だと CreateProcess、OS/2 だとDosExecPgm)のパラメータを差し替えるこ とができます。(戻り値が二個無い場合は、差し替えは行われません)
以下は、#! (shebang) を実現するための定義例です。
function drop_first_token( s ) for i=1,string.len(s) do if string.sub(s,i,i) == ' ' then return string.sub(s,i) end end return '' end function nyaos.filter3.shebang( name , param ) local suffix = string.lower( string.sub( name , #name - 3 ) ) if suffix ~= '.exe' and suffix ~= '.com' then local fd=io.open( name , 'r' ) local line=fd:read() fd:close() if string.sub(line,1,2)=='#!' then local interpretor = string.sub(line,3) local new_param = interpretor .. ' ' .. name .. ' ' .. drop_first_token( param ) return interpretor , new_param end end end
上の例だと、次のようなプログラム(hoge)を「Perl ./hoge」ではなく「./hoge」で実行することができます。
#!C:\Perl\bin\perl.exe
print "Perl executed!\n";
print "Param: $0 " . join(' ',@ARGV) . "\n";
#! 行はインタプリタのフルパスを、ディレクトリパラメータ \ で区切らないといけませんが、Lua スクリプトの方を改良すれば、/ を使うことなども出来るようになるでしょう。そこは工夫次第です。
Commentは書けるけど、絶望してたら返答できないかも [URLは入力不可!]
- 1996|12
- 1997|04
- 1998|03
- 1999|09
- 2000|07
- 2002|01|11
- 2004|01|02|03|04|05|06|07|08|09|10|11|12
- 2005|01|02|03|04|05|06|07|08|09|10|11|12
- 2006|01|02|03|04|05|06|07|08|09|10|11|12
- 2007|01|02|03|04|05|06|07|08|09|10|11|12
- 2008|01|02|03|04|05|07|08|10|11|12
- 2009|01|02|03|04|05|06|07|08|09|10|11|12
- 2010|01|02|03|04|05|06|07|08|09|10|11|12
- 2011|01|02|03|04|05|06|07|08|09|10|11|12
- 2012|01|02|03|04|05