■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 最新50

プログラマが2chを救う!?2

532 :♯6411 :01/08/28 02:40 ID:8QKJAcfc
--- orig/read.c Tue Aug 28 01:00:02 2001
+++ read.c Tue Aug 28 02:23:32 2001
@@ -46,6 +46,9 @@
char *zz_remote_host;
char *zz_http_referer;
char *zz_http_cookie;
+#ifdef USE_PATH
+char *zz_path_info;
+#endif
char *zz_query_string;
char *zz_temp;
char *zz_http_user_agent;
@@ -688,6 +691,9 @@
zz_remote_host = getenv("REMOTE_HOST");
zz_http_referer = getenv("HTTP_REFERER");
zz_http_cookie = getenv("HTTP_COOKIE");
+#ifdef USE_PATH
+ zz_path_info = getenv("PATH_INFO");
+#endif
zz_query_string = getenv("QUERY_STRING");
zz_temp = getenv("REMOTE_USER");
zz_http_user_agent = getenv("HTTP_USER_AGENT");
@@ -705,6 +711,10 @@
zz_remote_host = KARA;
if (!zz_http_referer)
zz_http_referer = KARA;
+#ifdef USE_PATH
+ if (!zz_path_info)
+ zz_path_info = KARA;
+#endif
if (!zz_query_string)
zz_query_string = KARA;
if (!zz_temp)
@@ -730,6 +740,23 @@
zz_GetString(zz_to, "to");
zz_GetString(zz_nf, "nofirst");
zz_GetString(zz_im, "imode");
+#endif
+#ifdef USE_PATH
+ if (zz_path_info[0] == '/')
+ {
+ /* PATH_INFOから、トークンを2個抜き出す */
+ char buf[48];
+ char const *b, *k;
+ strncpy(buf, zz_path_info + 1, 47);
+ buf[47] = 0;
+ b = strtok(buf, "/");
+ k = strtok(NULL, "/");
+ if (b && k)
+ {
+ strncpy(zz_bs, b, 1023);
+ strncpy(zz_ky, k, 1023);
+ }
+ }
#endif
#ifdef COOKIE
SetFormName();
--以上

533 : ̄ー ̄)ノ :01/08/28 02:41 ID:nki9F5ks
あ、いきなりこけた

534 :♯6411 :01/08/28 02:41 ID:8QKJAcfc
>>502 PATH_INFO対応、とりあえずしてみました。
/test/read.cgi?bbs=tech&key=998845501&ls=100
のようなものが、
/test/read.cgi/tech/998845501/?ls=100
と書けます。('?'の前の'/'は必須)
この改造に関して、CGIへのPATHなどを
出力してる部分を改造しなければなりませんが、
r2chhtml.hへの変更が必要なため、
とりあえず後回し、ちうこって。
(どういじればいいか、動かしてみればわかります)
↑が、めんどっちーのでdiffだ
インデント崩れてるので、がんばって取り込んでください。

272KB
新着レスの表示

スレッドリストへ戻る 全部 前100 次100 最新50

0ch BBS 2004-10-30