[#10793] 今度こそ (patch of the ruby-1.4.6 for NT4.0&VC4.0 on DEC Alpha.) — kou@...1609.sip.eee.yamaguchi-u.ac.jp (Koichi Okada)

岡田です。

10 messages 2000/09/01

[#10920] SIGINT on windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

17 messages 2000/09/14
[#11077] Re: SIGINT on windows — matz@... (Yukihiro Matsumoto) 2000/09/27

まつもと ゆきひろです

[#10944] dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

19 messages 2000/09/18
[#10955] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10963] Re: dummy DLL on Windows — "Nobuyoshi.Nakada" <nobu.nakada@...> 2000/09/19

なかだです。

[#10964] Re: dummy DLL on Windows — WATANABE Hirofumi <eban@...> 2000/09/19

わたなべです.

[#10978] [PATCH] require in require — "Nobuyoshi.Nakada" <nobu.nakada@...>

なかだです。

15 messages 2000/09/20

[#10985] httphead.rb proxy version problem — Katsuyuki Komatsu <komatsu@...>

小松です.

16 messages 2000/09/20
[#10989] Re: httphead.rb proxy version problem — Minero Aoki <aamine@...> 2000/09/20

あおきです。

[ruby-dev:10850] Re: bmingw package

From: WATANABE Hirofumi <eban@...>
Date: 2000-09-06 01:01:25 UTC
List: ruby-dev #10850
わたなべです.

nobu.nakada@nifty.ne.jp <nobu.nakada@nifty.ne.jp> writes:

:> Linux 上だと zip + SFXWiz32.exe がいいかなと思ってます.
:>   % cat foo.zip SFXWiz32.exe >foo.exe
:>   % zip -A foo.exe
:> で Self-extracting なパッケージのできあがり.

これ逆でした. 正しくは
  % cat SFXWiz32.exe foo.zip >foo.exe
  % zip -A foo.exe
です.
SFXWiz32.exe 自身を upx で圧縮すると 28672 バイトになってさ
らにお得. こっそり置いときます.
  http://jarh.hoops.livedoor.com/win32/SFXWiz32.exe

:  自己展開ファイルは全然考えに入れてませんでしたが、クロスで作
:れるとは知りませんでした。そんな機能があったとは。

exe にしても msi にしても unzip -l とかして中身を見ることが
できないパッケージは遠慮したい性質なので, この方法がそこそこ
の人が満足するんじゃないかなと思います.

LHa でも同じように stub を作れば可能だろうけど, exe にしちゃ
えば LHa だろうが zip だろうがどっちでもいいじゃんってゆうか,
あとは圧縮率だけの問題.

実は ruby.c にしかけてあるんですが, runruby.exe みたいな
stub を用意すれば,
  % cat runruby.exe foo.rb >foo.exe
で, スクリプトの EXE 化も可能です. SOS みたいにテキストには
ならないけど.
foo.rb の先頭は "\n#! ruby" じゃないとまずいので rb2exe みた
いなコマンドを用意したほうがいいか.

% cat runruby.c
#include <windows.h>
#include <stdio.h>
#include <unistd.h>
#include <process.h>
#include <stdlib.h>
#include <string.h>

int
main(int argc, char **argv)
{
    char myname[MAX_PATH];
    char *newargl;
    char *cmdline;
    char *p;
    int inquot;

    GetModuleFileName(0, myname, sizeof myname - 1);

    for (p = myname; *p; p = CharNext(p)) {
	if (*p == '\\')
	    *p = '/';
    }

    cmdline = GetCommandLine();
    newargl = malloc(strlen(myname) + strlen(cmdline) + sizeof("ruby -x ") + 10);
    if (!newargl)
	exit(1);
    inquot = 0;
    for (;*cmdline; cmdline++) {
	if (*cmdline == '"') {
	    inquot = !inquot;
	    continue;
	}
	if (inquot)
	    continue;
	if (*cmdline == ' ' || *cmdline == '\t') {
	    cmdline++;
	    break;
	}
    }
    sprintf(newargl, "ruby -x \"%s\" %s", myname, cmdline);
    exit(spawnlp(_P_WAIT, "ruby", newargl, 0));
}

-- 
わたなべひろふみ


In This Thread