てきとーに作られたパッチ達。詳細はパッチ参照。
cygwin1.1や、b20.1であっても割と最新版を追いかけている場合は wgetがうまくコンパイルできないはずだが、それに対するパッチ。 h_errnoはDLLの中にあるようなので、 そのように宣言を変更したところ、うまく動いているようだ。
parse_dir() で "?" 以降の "/" をファイルパスの区切りだ と思わないようにするパッチ。 要するに、 "?" の後ろの "//" とかを path_simplify() で整理されないようにする。 query で URL を送りつけたりする方はどうぞ。
ポート番号 80 のときにはリクエストヘッダ Host: に :80 を入れないようにするパッチ。 wget は Host: にいつでもポート番号を入れるように実装されている。 この実装は RFC 的に何も問題がないはずだが、 これだとバーチャルドメインな場所で取れないことがあるので。
'@' や ':' や '~' をそのまま URL に使うようにするパッチ。 これらの文字は RFC1630 (これとRFC1738との関係って?) では URL エンコーディングが必要だったが、 RFC2396 では必要ない。 もちろんエンコードしても RFC 的に正しいはずで、 実際、 wget はエンコードするように実装されているが、 それだと某サービスが使えないので。ちなみに、ソースに
------------------------------ /* A list of unsafe characters for encoding, as per RFC1738. '@' and ':' (not listed in RFC) were added because of user/password encoding, and \033 for safe printing. */ ------------------------------
などと書いてある。 user:passwordとURLに書く関係上、 user名またはpasswordに ':' が入ってたらエンコードしないといかん、 ということのようだ。'@'も同じ問題をかかえている (本当にエンコードが必要か?自信ないけど…)。 というわけで、このパッチを使うと user名/passwordつきのファイルを取る際に困るかもしれない。 ま、そのうちRFCでも眺めつつなんとかするつもり。 (obsoleteなRFC1738に基づいているようだし)
注:このパッチで -r をつけてgetすると、 http://geocities.com/~ginza5432/ のような URL に対して、 ~ から始まるディレクトリを作られることがあります。 これに対し、cd ~ginza5432 などとやると ホームディレクトリを探しに行ってしまいますが、 cd ./~ginza5432 などとやれば普通にアクセスできます。
--referer と --fake-referer を新設するパッチ。
path_simplify() で "://" という文字の並びの場合に限り '/' を2つ残すようにするパッチ。 こうしないと某サービスがいまいちうまく動かないので。 しかし、.. とか . の整理ってしなくても動くよねえ。 クライアント側で「やってもいい」んだっけっか。
標準的でないネーミングの分割アーカイブも 普通の分割アーカイブと同様に扱う。 UnrarSrc.rar に含まれるソースに対するパッチ。 このパッチの改行コードは全て CRLF なことに注意。