■スレッドリストへ戻る■ 全部 1- 101- 201- 301- 401- 501- 601- 701- 801- 901- 最新50
read.cgi改良スレッド 2
- 470 :転載 :01/09/19 20:43
 -  ニュース速報が最新スクリプト5.22になっていた。 
 
- 471 :デフォルトの名無しさん :01/09/19 20:44
 -  見栄えに副作用を与えないUSE_CSS案。のつもりだったんだが 
 どういうわけかNN4だと名前が全部緑になりやがる。 
 マジで氏ね>ネスケ 
  
 #ifdef USE_CSS 
 #define R2CH_HTML_CSS_DEFINE \ 
 "<style type=\"text/css\"><!--" \ 
 "body{background:#eee;color:#000}" \ 
 "a{color:green}" \ 
 ":link{color:blue}" \ 
 ":visited{color:#609}" \ 
 ":hover{color:red}" \ 
 "--></style>" 
 #define R2CH_HTML_BODY_DEFINE "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" 
 #else 
 #define R2CH_HTML_CSS_DEFINE "" 
 #define R2CH_HTML_BODY_DEFINE "<body>" 
 #endif 
  
 #define R2CH_SIMPLE_HTML_HEADER_1(title) \ 
 "<html>" \ 
 "<head>" \ 
 "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" \ 
 "<title>" title " </title>" \ 
 R2CH_HTML_COOKIE_SCRIPT \ 
 R2CH_HTML_CSS_DEFINE \ 
 "</head>" \ 
 R2CH_HTML_BODY_DEFINE 
  
 [CREATE_NAME_ANCHORがオフのほうを変更。オンのほうはそのままでいい] 
 #ifdef USE_CSS 
 #define R2CH_HTML_RES_NOMAIL(n, nm, d, t) \ 
 "<dt>" n " " R2CH_HTML_NAME "<a><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>" 
 #else 
 
- 472 :デフォルトの名無しさん :01/09/19 20:54
 -  #ifdefined(LATEST_ANCHOR) && !defined(SEPARATE_CHUNK_ANCHOR) 
 /* LATEST_ANCHORも常に生きにする */ 
  
 どっちが正しいの? 
 
- 473 :デフォルトの名無しさん :01/09/19 20:57
 -  #if 0/* #ifdef USE_PATH */ 
 ってやっぱ気持ち悪いから 
 #ifdef USE_INDEX 
 にしたいなあ。と言ってみる。 
 
- 474 :デフォルトの名無しさん :01/09/19 21:01
 -  SAGE_IS_PLAINについて。 
 どうせ3バイトの節約にしかならないなら 
 <font color=blue></font> 
 より 
 <a href=mailto:sage></a> 
 のほうがCREATE_NAME_ANCHOR時に有利なぶんいいと思われ 
  
 それにこれだと見栄えに影響を与えないからONにしても 
 いいはず。 
 
- 475 :デフォルトの名無しさん :01/09/19 21:02
 -  /* ここには、If-None-Matchを付加しないUAのリスト 
    (又は付加するUAのリスト)を置き 
    無意味な場合にfalseを返すのが望ましい。 */ 
  
 If-None-Matchが規定されたのはHTTP/1.1からだから 
 HTTPバージョンを見るといいのではないかと。 
 
- 476 :デフォルトの名無しさん :01/09/19 21:06
 -  rawmodeでERR_NOT_FOUNDのとき、 
 ・倉庫落ちかどうか判別できるようにする 
 ・倉庫落ちで.datにアクセス可能ならそのURLを返す 
 ことを提案。 
  
 倉庫にもないことがその場で分かればツールが無駄に 
 もう一度アクセスする必要がなくなる。 
 過去ログURLの形式が変わるたびにツールのほうで 
 対応しなおす必要もなくなる。 
 
- 477 :デフォルトの名無しさん :01/09/19 21:08
 -  rawmodeのとき、たとえば 
 +OK 12345/512K 
 のような形式で、ツールに限界サイズを知らせるようにすることを 
 提案。 
  
 dat直接アクセスが禁止されればツールも「大きすぎます」の 
 影響を受けるようになるのでこの情報が必要になるはず。 
 
- 478 :デフォルトの名無しさん :01/09/19 21:20
 -  >>476 
 [r2chhtml.h] 
 #define ERRORMES_NOT_FOUND "そんな板orスレッドないです。" 
 #define ERRORMES_DAT_FOUND "過去ログ倉庫で発見 %s" 
 #define ERRORMES_TEMP_FOUND "html化待ち" 
  
 [read.c] 
 #ifdef RAWOUTの前に 
 *tmp = '\0'; 
 strcpy(tmp, LastChar(zz_ky, '/')); 
 kako_dirname(zz_soko, tmp); 
 を移動。 
  
 #ifdef RAWOUT 
 if(rawmode) { 
 /* -ERR (message)はエラー。 */ 
 if (errorcode == ERROR_NOT_FOUND) { 
 sprintf(doko, KAKO_DIR "%.50s/%.50s.dat", 
 zz_bs, zz_soko, tmp); 
 if (!stat(doko, &CountStat)) { 
 pPrintf(pStdout, "-ERR " ERRORMES_DAT_FOUND "\n", doko); 
 } else { 
 sprintf(doko, TEMP_DIR "%.50s.dat", 
 zz_bs, tmp); 
 if (!stat(doko, &CountStat)) { 
 pPrintf(pStdout, "-ERR %s\n", ERRORMES_TEMP_FOUND); 
 } else { 
 pPrintf(pStdout, "-ERR %s\n", mes); 
 } 
 } 
 } else 
 pPrintf(pStdout, "-ERR %s\n", mes); 
 exit(0); 
 } 
 #endif 
 
- 479 :名無し娘。 ◆vP.bOZFQ  :01/09/20 00:41
 -  >>476 
 ちょっと関連しますが、将来的には /kako/ 以下の .dat は rawmode で 
 あろうとなかろうと、read.cgi が扱った方が転送量減ると思うのですが、 
 予定としてはどうなのでしょう。。。 
 /kako/ 行きでも ls st to の指定ができるのは大きいと思いますので。 
 # 今でもブラウザでURL指定すればできますが、いちいちやってくれる人は 
 # 多くはないかと。結果、/kako/ 行きのものは html 全体が呼び出される、と。 
 
- 480 :デフォルトの名無しさん :01/09/20 00:52
 -  >>479 
 ># 今でもブラウザでURL指定すればできますが、 
  
 これの意味が分からん。 
 
- 481 :名無し娘。 ◆vP.bOZFQ  :01/09/20 02:25
 -  >>480 
 ごめん、忘れて(^^; 
 
- 482 :デフォルトの名無しさん :01/09/20 03:07
 -  >>473 
 >>478 
 >  USE_INDEX用処理の一部が#if 0になっていたので#ifdef USE_INDEXに訂正。 
 >  rawmodeリザルトで "-ERR 過去ログ倉庫で発見 %s" と "-ERR html待ち" 追加。 
 やったんだけどcvsにcommit挑戦してるんだが固まってる… 
 落ちてるのか? 単に重いのか? 
 
- 483 :482 :01/09/20 03:21
 -  >Secure connection to iwato.uryusoft.net refused. 
 >cvs [commit aborted]: end of file from server (consult above messages if any) 
 (´д`;) 
 
- 484 :デフォルトの名無しさん :01/09/20 03:27
 -  ホスト名出したらまずくないか? 
 CVSたててくれたけど、ログに残るの嫌がってたのに。 
 
- 485 :483 :01/09/20 03:32
 -  >>484 
 すまん、うっかりしてた。 
 
- 486 :ghanyan :01/09/20 04:03
 -  read.cgiの5.22ですが、RAWモードで末尾に変なHTMLがつくみたいです。 
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&raw=0.0 
 で確認してください 
 
- 487 :デフォルトの名無しさん :01/09/20 04:11
 -  不具合は確認。 
 HTMLヘッダが最後についちゃってる。 
 これから原因調べます。 
 
- 488 :デフォルトの名無しさん :01/09/20 04:14
 -  原因判明。 
 main()の最後で、 
 #ifdefREFERDRES_SIMPLE 
  if (can_simplehtml()) 
   out_simplehtml(); 
  else 
 #endif 
  dat_out(0); 
 これがあるので、RAWMODEの最後にゴミが付く。 
 
- 489 :デフォルトの名無しさん :01/09/20 04:18
 -  >>488 
 >#ifdef USE_INDEX 
 >        if (path_depth == 2) { 
 ここでelseのchainが切れてしまってるんだな。 
 >        else if (path_depth == 2) { 
 とすれば直るはず。 
 
- 490 :488 :01/09/20 04:20
 -  >>489 
 いかん、else入れる場所違うな。 
 >        } else 
 >#ifdef USE_INDEX 
 >        if (path_depth == 2) { 
 こんなふうにしないと。 
 
- 491 :489=490 :01/09/20 04:21
 -  >>490 
 あ、490は俺。名前間違った 
 
- 492 :デフォルトの名無しさん :01/09/20 04:28
 -  >>490 
 対策は、 
 #ifdef RAWOUT 
  if (rawmode) 
   dat_out_raw(); 
  else 
 #endif 
 を 
 #ifdefREFERDRES_SIMPLE 
 の直前にもってくるか、 
  if (rawmode) { 
   dat_out_raw(); 
   return 0; 
  } 
 とすれば楽なんじゃないかな? 
  
 ツール作者の方々、申し訳ありませんが、 
 Ver5.22がこの世の中から消滅するまでの間、 
 サイズを手がかりに切り捨てちゃってください。 
 
- 493 :デフォルトの名無しさん :01/09/20 04:31
 -  お、CVS復活してる 
 
- 494 :482 :01/09/20 04:31
 -  >>473 >>478 >>489 
 cvs commitできた。 
 鯖オーナーありがとう。 
 
- 495 :aki :01/09/20 04:53
 -  ごめん。 
 YahooBB来たんでocnとマルチホームさせたり 
 Nimda対策で壁の設定いじってたりして間欠的に落ちてました。 
  
 gedoh.orgのミラーが止まってるのは謎なので調べてみます。 
 
- 496 :aki :01/09/20 05:01
 -  cron埋まってた;) 
 
- 497 :デフォルトの名無しさん :01/09/20 05:16
 -  おつかれさまですぅ 
 いつもありがとうございますぅ 
 
- 498 :ghanyan :01/09/20 05:33
 -  http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&raw=0.0 
 をリクすると、 
 >Content-Length: 23869 
 >Content-Encoding: gzip 
 で、展開後のサイズは111,953バイト 
 展開後の一行目は+OK 45902 
 OKの後に続く数字はいったい何なんでしょう? 
 
- 499 :デフォルトの名無しさん :01/09/20 05:37
 -  >>498 
 データ部のサイズです。 
 
- 500 :ghanyan :01/09/20 05:42
 -  すみません、あんまりサイズが違うもんで、ちょっと不安になってしまいました。 
 
- 501 :デフォルトの名無しさん :01/09/20 05:48
 -  >>500 
 5.22のバグで、後ろに余分なものがついてます。 
 +OKに書かれたサイズ分より後ろは無視してください。 
  
 それにしてもずいぶん差があるな… 
 
- 502 :デフォルトの名無しさん :01/09/20 05:56
 -  これ、datの後にhtmlが送られてきてる感じ。 
 長い1行データがテキスト扱いで来るから、IEが死にそうになる。 
 これで末尾は短く出来ると思うけど、どう? 
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=998908559&raw=0.0&ls=1 
 
- 503 :デフォルトの名無しさん :01/09/20 06:18
 -  ETag生成時、dat_read()が二回呼ばれることがあったが、1回のみにするようにした。 
  
 >>490 
 確かにreturn入れたほうがケアレスミス防げるね。ってことで入れた。 
 
- 504 :デフォルトの名無しさん :01/09/20 06:24
 -  >dat_read()が二回 
 dat_read()の先頭で対策されている 
 
- 505 :デフォルトの名無しさん :01/09/20 06:33
 -  ぬお、いつのまに。1.113で入ってたのか。 
 つーことで無駄な追加だったので消しました。 
 ChangeLogも適切な位置に移動。 
 
- 506 :デフォルトの名無しさん :01/09/20 06:42
 -  げ、pathと旧形式の出力を統合してたんだが、 
 1.124と内容までコンフリクトしちまった。 
 形式気にしないで出力できるようにしたんだが、 
 さて、どうしよう。 
 
- 507 :1.124の人 :01/09/20 06:51
 -  んと、俺が考えていたのは、 
 あれから発展させて、r2chhtml.hを少しいじって 
 pPrintfのフォーマット以外のパラメータを 
 (特に#ifdef USE_PATHと#elseとで)統一しようかなと。 
  
 で、将来的に必要があれば 
 時間帯やUA,imode,PATH_INFO,SETTING_FILE等による 
 実行時の出力切替を容易にすることも可能だろうと。 
 struct { 
  const char *head1; 
  const char *head2; 
  const char *res_mail; 
  const char *res_nomail; 
  ・・・ 
 } zz_html = { 
  R2CH_HTML_・・・ 
  R2CH_HTML_・・・ 
 }; 
 こんな感じで、実行時にzz_html.head1等を書き換えて 
  pPrintf(pStdout, zz_html.head1, ...); 
 という形式にしたいなって。 
 (ただし、フォーマット間違いの警告が出なくなると思うけど) 
 
- 508 :506 :01/09/20 06:57
 -  >>507 
 URLの生成を関数に追い出して、文字列を共用できるようにしたんだが、 
 たとえば、こんな感じ。 
  
 pPrintf(pStdout, R2CH_HTML_CHUNK_ANCHOR("%s", "1"), 
     create_link(1,CHUNK_NUM,0,0,0) ); 
  
 ついでに、path形式の時は"を取るなど。 
 
- 509 :506 :01/09/20 07:04
 -  やってることは大差ないんだが、機能がダブってるんでマージできないんだよね。 
 ちなみに、r2chhtml.hにPATHの文字は残っていない。 
 
- 510 :デフォルトの名無しさん :01/09/20 07:06
 -  506の方法は美しそうだ。がんばれ(笑) 
 
- 511 :507 :01/09/20 07:24
 -  rewrite_hrefの方はconflictしてないだろうとして、 
 「掲示板に戻る」のリンク先かな? 
 可能なら、zz_board_nameから作成してもらったほうがいいけど、 
 だめなら、無視してくださいな。 
 html_head/html_footの内部の 
 #ifdef USE_PATH 
 #endif 
 #ifdef CHECK_MOD_GZIP 
 #endif 
 #ifdef GZIP 
 #else 
 #endif 
 が1つのpPrintfだけになっちゃったから、その辺がまずいかな。 
  
 あと、zz_server_softwareも、 
 「使わないから消した」だけだから、 
 必要ならもどしちゃってください。 
  
 将来formatの切替を考えるにしても、 
 パラメータが(関数としてでも)統一されさえすればよいので、 
 無理にzz_thread_nameにこだわるつもりはないです。 
 
- 512 :506 :01/09/20 07:34
 -  >>511 
 実は、rewrite_hrefから何からread.cgiを呼び出す奴は全ていじった。 
 掲示板に戻るも考え方は同じだが、違う実装をした。 
  
 他にも、細かい所を修正してあったので、悪いが1.124の変更はキャンセルして 
 commitしました。 
  
 途中のマージ忘れがないか、これからチェックします。 
 
- 513 :デフォルトの名無しさん :01/09/20 07:49
 -  特に機能的に変更した内容はChangeLogにも書いて頂けますか? 
 
- 514 :506 :01/09/20 08:06
 -  >>513 
 機能的な変更は、ほとんどがバグ対応です。 
 マージミスの修正とコメントの追加が済んだら、一緒にコミットします。 
 
- 515 :デフォルトの名無しさん :01/09/20 08:19
 -  >>472ですが、 
 LATEST_ANCHORは常に生きにしたはずなのに 
 conditionが残ってるのはどうしてなんでしょうか? 
 (ALL_ANCHORのほうは残ってない) 
 
- 516 :506 :01/09/20 08:42
 -  >>514 
 コミットしました。 
  
 >>515 
 SEPARATE_CHUNK_ANCHORの時に出力する場所が違うせいで、 
 取りにくかったのが原因かな。 
 
- 517 :デフォルトの名無しさん :01/09/20 09:05
 -  整理されてみると、first_line()やlast_line()が何回も呼ばれているのが気になってくる。 
 
- 518 :506 :01/09/20 09:21
 -  >>515 
 LATEST_ANCHORのcondition削除 
 ついでに、SEPARATE_CHUN_ANCHORがONの場合を調整 
 
- 519 :デフォルトの名無しさん :01/09/20 16:15
 -  config.txtで、ALL_ANCHORも「採用決定のためcondition削除」 
 へ移動したほうがいいのではないかと。 
 
- 520 :デフォルトの名無しさん :01/09/20 16:32
 -  PATH仕様でないときの「最新50」では1が表示されますが、 
 http://news.2ch.net/test/read.cgi?bbs=news&key=1000969048&ls=50 
 PATH仕様で「最新50」にすると1が表示されなくなります。 
 http://news.2ch.net/test/read.cgi/news/1000969048/l50 
 「l」を指定したときはnofirst=falseをデフォルトにしたほうが 
 動作が統一されていいのでは。 
 
- 521 :デフォルトの名無しさん :01/09/20 17:29
 -  全鯖read.cgi 5.22になったようなので、bbs.cgiのパス仕様対応を 
 要望しに行きたいのですが、 
 http://piza2.2ch.net/test/read.cgi/tech/998921988/219-222n 
 計算間違いなどのツッコミ希望。 
 
- 522 :デフォルトの名無しさん :01/09/20 18:52
 -  #ifdef GZIP 
 if (!gzip_flag) 
 strcpy(p,"index.html"); 
 else 
 #endif 
 strcpy(p,"index.htm"); 
  
 これおかしくないですか? GZIPがオフならindex.htmlに 
 戻らなくてはならないはずですけど。 
 それと戻り先を /板名/ にすれば10バイト減らせます。 
 以上を考え合わせて 
 #ifdef GZIP 
 if (gzip_flag) 
 strcpy(p,"index.htm"); 
 #endif 
 
- 523 :521 :01/09/20 20:03
 -  read.cgi 5.22はi-mode用がパス仕様に未対応でしたっけ。 
 http://piza2.2ch.net/test/read.cgi/tech/998921988/i 
 もうすこし待ったほうがいいか。 
 
- 524 :デフォルトの名無しさん :01/09/20 20:44
 -  非パス仕様のURLで呼ばれたときはBASEを出力して、 
 常にパス仕様でリンクを生成 
  
 [r2chhtml.h] 
 #ifdef ALWAYS_PATH 
 #define R2CH_HTML_HEADER_0 \ 
 "<html>" \ 
 "<head>" \ 
 "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=Shift_JIS\">" 
  
 #define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s/test/" CGINAME "/%s/%s/\">" 
 #endif 
  
 変更(<title>以前を削除): 
 #define R2CH_SIMPLE_HTML_HEADER_1(title, cookie_script) \ 
 R2CH_HTML_CSS_TYPE \ 
 "<title>" title " </title>" \ 
 cookie_script \ 
 R2CH_HTML_CSS_DEFINE \ 
 "</head>" \ 
 "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" 
  
 変更(<title>以前を削除): 
 #define R2CH_HTML_IMODE_HEADER_1(title, board, alllink)  \ 
 "<title>" title " </title>" \ 
 "</head>" \ 
 "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \ 
 "<a href=\"" board "\">■掲示板に戻る■</a>" \ 
 " <a href=" alllink ">レスを最初から読む</a>" 
  
 [read.c] 
 #ifdef ALWAYS_PATH 
 char const *zz_server_name; 
 #endif 
  
 zz_GetEnv()に追加: 
 #ifdef ALWAYS_PATH 
 zz_server_name = getenv("SERVER_NAME"); 
 #endif 
  
 html_head()内「if (!is_imode()) {」の直前に追加: 
 pPrintf(pStdout, R2CH_HTML_HEADER_0); 
 #ifdef ALWAYS_PATH 
 if (path_depth < 3 && zz_server_name) { 
 pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_bs, zz_ky); 
 path_depth = 3; 
 } 
 #endif 
 
- 525 :デフォルトの名無しさん :01/09/20 21:19
 -  >>520 
 最新版では合わせてあるはずだけど? 
 5.22のことを言ってるのかな。 
  
 >>522 
 過去の動作に合わせた。判定しないときはindex.htm推奨の名残。 
 いまさらindex.htmにする意味はないから、index.htmlでかまわないけど。 
  
 index.htmlを付けるかどうかは、バイト数削ることより 
 bbs.cgiも含めて統一することの方が大切。 
 2chの板じゃ回転速すぎて意味がない気もするが。 
 
- 526 :デフォルトの名無しさん :01/09/20 21:23
 -  >>525 
 bbstableは /板名/ にリンクしてるからそのほうがいいかと 
 思った。リロードは常にindex.htmだし。 
 過去動作との互換は了解。 
 >判定しないときはindex.htm推奨の名残。 
 どこで推奨してたの? 
 
- 527 :デフォルトの名無しさん :01/09/20 21:42
 -  1から表示したときは「前100」が省略されるのに 
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&to=50 
 最後まで表示されてても「次100」は省略されない。 
 http://piza2.2ch.net/test/read.cgi?bbs=tech&key=1000035521&ls=50 
 これもcurrentでは修正済みだったりする? 
 
- 528 :デフォルトの名無しさん :01/09/20 21:46
 -  PREV_NEXT_ANCHOR有効時はi-mode版もリンクを 
 「1-」「最新10」「次10」のように簡略化すること希望。 
 
- 529 :デフォルトの名無しさん :01/09/20 21:46
 -  >>526 
 書き方が悪かったかな。 
 判定が入っていない時期に、2chで.htmの使用を推奨していたため。 
  
 現実には一度も実使用されてない部分だからindex.htmlでいいんだが。 
 
- 530 :デフォルトの名無しさん :01/09/20 21:53
 -  >>527 
 1より前はありえないから「前100」は省略した。 
 最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。 
  
 取った方がいいですか? 
 
- 531 :527 :01/09/20 21:55
 -  >最後は読んでるうちに増えるかもしれないので「次100」は残しておいた。 
  
 なるほど。 
 
- 532 :デフォルトの名無しさん :01/09/20 21:57
 -  でも1000超え時にはさすがにいらないかも。 
 http://news.2ch.net/test/read.cgi?bbs=news&key=1000822776 
 
- 533 :デフォルトの名無しさん :01/09/20 21:58
 -  CHUNK_ANCHORの「1001-」もいらない気がする。 
 Over 1000 Threadを読むためだけに「1001-」を 
 ほしがる人はいないでしょう。 
 
- 534 :デフォルトの名無しさん :01/09/20 22:00
 -  どこかcurrentの動作テストを常にできるところってある? 
 
- 535 :批判要望から :01/09/20 22:10
 -  196 名前:哀モですが 投稿日:01/09/20 22:04 ID:cr4UsmUk 
 哀モードからなんですけど、表示が10レスきざみですよね。 
 で、今の状態だと最初と最新の 10レスしか見れないじゃないですか。 
 >>も使えない板もあるし。 
  
 【前の10レスを見る】のようなんは導入されないのですか?  
 
- 536 :デフォルトの名無しさん :01/09/20 22:32
 -  >>532-533 
 スレストに失敗することもあったりするからなあ。 
 「1001-」は、気持ちよくないのは確かだね。 
  
 >>534 
 テスト公開してくれた所が一時期はあったようなんだけど、今は? 
  
 >>535 
 i-modeでどうなると嬉しいかを実感できないので不具合修正にとどめています。 
 具体的に要望を出す人もいなかったし。 
  
 次ぎの10レスでnofirst=trueの方がいいんじゃないか 
 とか思ってもいじってません。 
 >>528みたいに具体的な要望をあげておくのがよろしいかと。 
 
- 537 :デフォルトの名無しさん :01/09/20 22:56
 -  COOKIEの残骸を取った。 
 create_bbs_path()を作って、FORMの出力まわりも整理した。 
 なんかもっとましな方法がありそうだが、他との統一ということで。 
  
 >>524 
 相対パス対応が欲しいな。(/test/もはずしたい) 
 SCRIPT_NAMEあたりか? 
 HTTP_HOSTとSERVER_NAMEの扱いは? 
 
- 538 :デフォルトの名無しさん :01/09/20 22:58
 -  >>537 
 HTTP_HOSTは「Host:」ヘッダがないと定義されないから 
 クライアントに依存しないSERVER_NAMEにした。 
 実際には「Host:」がないと「ブラウザ変ですよん」を喰らっ 
 たり鯖によっては見ることさえできないから気にし過ぎ 
 かもしれないけど。 
 
- 539 :デフォルトの名無しさん :01/09/20 23:06
 -  相対パス対応(>>524と違うところのみ) 
 #define R2CH_HTML_BASE_DEFINE "<base href=\"http://%s%s/%s/%s/\">" 
  
 #ifdef ALWAYS_PATH 
 char const *zz_server_name; 
 char const *zz_script_name; 
 #endif 
  
 if (path_depth < 3 && zz_server_name && zz_script_name) { 
 pPrintf(pStdout, R2CH_HTML_BASE_DEFINE, zz_server_name, zz_script_name, zz_bs, zz_ky); 
 path_depth = 3; 
 }  
 
- 540 :デフォルトの名無しさん :01/09/20 23:07
 -  書き忘れ。 
 #ifdef ALWAYS_PATH 
 zz_server_name = getenv("SERVER_NAME"); 
 zz_script_name = getenv("SCRIPT_NAME"); 
 #endif  
 
- 541 :夜勤 ★ :01/09/21 00:52
 -  おっと 現在は index.htm だの色々ありますが、完成形は 
 全部 .html だけの運用になりまする。(.htm は廃止の予定です) 
  
 よろしくお願いいたします。 
 
- 542 :デフォルトの名無しさん :01/09/21 03:22
 -  >>524 
 >>539-540 
  まとめてあてた。 
 
- 543 :デフォルトの名無しさん :01/09/21 04:44
 -  >>540,542 
 HTTP_HOSTが使える時はそちらを使うようにした。 
  
 掲示板に戻るは、できるだけ/板名/を使うようにした。 
 path形式で/iのバグ修正 
 ALL_ANCHORの記述移動 
 
- 544 :デフォルトの名無しさん :01/09/21 05:02
 -  >>528 
 #ifdef PREV_NEXT_ANCHOR 
 #define R2CH_HTML_IMODE_TAIL(path, next) \ 
 " <a href=" path ">次" next "</a>" 
 #define R2CH_HTML_IMODE_TAIL2(path, ls) \ 
 " <a href=" path ">最新" ls "</a><br>\n" 
 #else 
 #define R2CH_HTML_IMODE_TAIL(path, next) \ 
 " <a href=" path ">次の" next "レス</a>" 
 #define R2CH_HTML_IMODE_TAIL2(path, ls) \ 
 " <a href=" path ">最新レス" ls "</a><br>\n" 
 #endif 
  
 #ifdef PREV_NEXT_ANCHOR 
 #define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \ 
 "<title>" title " </title>" \ 
 "</head>" \ 
 "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \ 
 "<a href=\"" board "\">■掲示板に戻る■</a>" \ 
 " <a href=" alllink ">1-</a>" 
  
 #define R2CH_HTML_IMODE_HEADER_2(latestlink, ls)  \ 
 " <a href=" latestlink ">最新" ls "</a>" 
 #else 
 #define R2CH_HTML_IMODE_HEADER_1(title, board, alllink) \ 
 "<title>" title " </title>" \ 
 "</head>" \ 
 "<body bgcolor=#efefef text=black link=blue alink=red vlink=#660099>" \ 
 "<a href=\"" board "\">■掲示板に戻る■</a>" \ 
 " <a href=" alllink ">レスを最初から読む</a>" 
  
 #define R2CH_HTML_IMODE_HEADER_2(latestlink, ls)  \ 
 " <a href=" latestlink ">最新レス" ls "</a>" 
 #endif 
 
- 545 :デフォルトの名無しさん :01/09/21 05:13
 -  i-mode版で不要な</dl>が出力されるバグの修正。 
  
 if (!is_imode()) 
 を、dat_out()内の 
 pPrintf(pStdout, R2CH_HTML_PREFOOTER); 
 の前に付ける。 
  
 今はi-mode版ではcan_simplehtml()がfalseを返すから 
 関係ないけどout_simplehtml()も修正しておいたほうが 
 安全かも。 
 
- 546 :デフォルトの名無しさん :01/09/21 05:44
 -  >>544-545 
 当てた 
 
- 547 :デフォルトの名無しさん :01/09/21 06:14
 -  パス仕様で倉庫落ちしたスレッドのURLを指定したとき、 
 「そんな板orスレッドないです。」の画面でリンクが切れる。 
 http://teri.2ch.net/test/read.cgi/accuse/990769720/ 
 存在しないスレの場合の「過去ログ倉庫」へのリンクも同様。 
 http://teri.2ch.net/test/read.cgi/accuse/990769721/ 
 とりあえず報告だけ。 
 
- 548 :デフォルトの名無しさん :01/09/21 06:23
 -  >>547 修正。 
 #define R2CH_HTML_ERROR_5_HTML \ 
 "隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.html</a> を発見しました。\n" 
  
 #define R2CH_HTML_ERROR_5_DAT \ 
 "隊長! 過去ログ倉庫で、<a href=\"%s%s\">スレッド %s.dat</a> を発見しました。<br>" \ 
 "<b><font size=+1 color=red>が</font></b>、しかしまだ html化されていません。残念、待つしかない。\n" 
  
 #define R2CH_HTML_ERROR_5_NONE \ 
 "<a href=\"%s" KAKO_DIR "\">過去ログ倉庫</a>にもありませんでした。<br>" \ 
 "問い合わせても見つかる可能\性はほとんどありません。\n" 
  
 pPrintf(pStdout, R2CH_HTML_ERROR_5_HTML, 
 create_bbs_path(), doko, tmp); 
  
 pPrintf(pStdout, R2CH_HTML_ERROR_5_DAT, 
 create_bbs_path(), doko, tmp); 
  
 pPrintf(pStdout, R2CH_HTML_ERROR_5_NONE, 
 create_bbs_path(), zz_bs); 
 
- 549 :デフォルトの名無しさん :01/09/21 06:25
 -  create_bbs_path()は関数名を変更したほうがいいかも。 
 
- 550 :デフォルトの名無しさん :01/09/21 06:41
 -  >>548 
 当てた 
 
- 551 :デフォルトの名無しさん :01/09/21 06:47
 -  要望なのですが。 
  
 鯖移転した板のスレへのリンクをクリックしたとき、現状、 
 http://news.kakiko.com/mentai/へ飛ばされますよね。 
 これを、倉庫落ちなどと同様に、新鯖のスレへ飛ばすようには 
 できないでしょうか? 
 bbs名はほとんど変わらないと思うので。 
  
 夜勤さん(鯖側)の範疇なのかな。 
 
- 552 :デフォルトの名無しさん :01/09/21 06:57
 -  >>477 
 dat_out_raw()を修正: 
 pPrintf(pStdout, " %d/%dK\n", end - begin, MAX_FILESIZE / 1024); 
 
- 553 :デフォルトの名無しさん :01/09/21 07:16
 -  >>552 
 当てた。 
  
 あとcreate_parent_link()などを毎回呼ぶのをやめて 
 一回だけグローバル変数に作って使うようにした。 
 
- 554 :デフォルトの名無しさん :01/09/21 07:58
 -  >>nnリンクを削除する場合に余分な"</a>"が残ってしまっていたバグ修正。 
 
- 555 :デフォルトの名無しさん :01/09/21 08:28
 -  dat_out()とかのlevel引数って使ってないみたいだけど、 
 バッサリ消してもいいんでしょうか? 
 
- 556 :デフォルトの名無しさん :01/09/21 08:46
 -  >>555 
 #ifdef USE_INDEXで囲むくらいにしておいたほうがいいかも。 
 関数の引数として渡されてる部分は難しいけど。 
 
- 557 :デフォルトの名無しさん :01/09/21 08:48
 -  USE_INDEXってのは.idxファイルのサポート用で 
 ダイジェスト表示とは直接関係ないんだっけ? 
 だとすると #ifdef USE_INDEX は変だな。 
 やっぱりバッサリ逝くか? 
 
- 558 :デフォルトの名無しさん :01/09/21 09:12
 -  >>557 
 #ifdef USE_INDEXで囲った。 
 USE_INDEXが有効ならダイジェストを呼び出すようになってたので。 
 
- 559 :デフォルトの名無しさん :01/09/21 10:15
 -  sageのメールリンク最適化。 
  
 [r2chhtml.h] 
 #ifdef CREATE_NAME_ANCHOR 
 (中略) 
 #ifdef SAGE_IS_PLAIN 
 #define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \ 
 "<dt>" n " <a name=" l ">" R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>" 
 #else 
 #define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \ 
 "<dt>" n " " R2CH_HTML_NAME "<a name=" l " href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>" 
 #endif 
  
 #else 
 (中略) 
 #ifdef SAGE_IS_PLAIN 
 #define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \ 
 "<dt>" n " " R2CH_HTML_NAME "<font color=blue><b>" nm " </b></font> " R2CH_HTML_DATE d "<dd>" t "<br><br>" 
 #else 
 #define R2CH_HTML_RES_SAGE(n, l, nm, d, t) \ 
 "<dt>" n " " R2CH_HTML_NAME "<a href=mailto:sage><b>" nm " </b></a> " R2CH_HTML_DATE d "<dd>" t "<br><br>" 
 #endif 
  
 #endif 
  
 [read.c] 
 #ifdef SAGE_IS_PLAIN (1箇所だけ)を削除 
  
 SAGE_IS_PLAINはいちおう残してみたけどオンにしたほうが 
 とくなことって何もない気がする。 
 
- 560 :デフォルトの名無しさん :01/09/21 10:27
 -  >>559 
 これってsageのために囲む " を取っただけ? 
 圧縮率にも、cgiのバイナリサイズにも逆効果な気がするなあ。 
 
- 561 :デフォルトの名無しさん :01/09/21 10:40
 -  >>560 
 じゃあ危なそうな文字( " とか空白とか)を含んでない 
 ときはいつも " を削除するというのはどう? 
 
- 562 :デフォルトの名無しさん :01/09/21 11:28
 -  あちこちにあるtarget="_blank" の「"」って消せるんでない? 
 
- 563 :デフォルトの名無しさん :01/09/21 11:36
 -  _ は " で囲まなくても安全な文字じゃないんだけどすでに # 
 とか囲まないで書きまくってるしいまさらそんなこと気にしても 
 確かに仕方ない 
 
- 564 :デフォルトの名無しさん :01/09/21 11:39
 -  HTML 2.0/3.2の仕様上は、 " で囲まなくてもいい文字は 
 英数字と - と . だけ。 
 現実のブラウザはもっとはるかにルーズだけど。 
 
- 565 :デフォルトの名無しさん :01/09/21 12:10
 -  HTML 4.0(とそれ以降)の仕様上は、 "" で囲まなくてもいい文字は 
 英数字と . と - と _ と : の四つ。 
 現実のブラウザは以下同じ。 
 
- 566 :デフォルトの名無しさん :01/09/21 13:29
 -  >>553 
 >あとcreate_parent_link()などを毎回呼ぶのをやめて 
 最大2回しか呼ばないんだけど・・・。 
 使わないときは、初期化もしないんだけど・・・。 
 
- 567 :デフォルトの名無しさん :01/09/21 16:05
 -  >>562 
 r2chhtml.hでTARGET_BLANK, TARGET_BODYにマクロ定義した上で 
 「"」を消してみた。 
 駄目ならこのマクロ定義直してくれ。 
 
- 568 :デフォルトの名無しさん :01/09/21 16:47
 -  効率とはまったく関係ないけど 
 REFERDRES_SIMPLE のスペルミスが気になる… 
 ×REFERDRES_SIMPLE 
 ○REFEREDRES_SIMPLE 
 
- 569 :デフォルトの名無しさん :01/09/21 17:48
 -  開発中のみ、平常時間帯でも混雑時の出力をするquery、 
 Faketime=true(あえて大文字)を提案したいが、どうだろう? 
 ローカルで確認する時もSETTING_FILEのLIMITを変更するのが面倒だし、 
 逆はともかく、制限が強くなるだけだから、 
 そのまま実験サーバーに上げられても不都合はないと思うので。 
  
 もしやるなら、zz_GetEnv()の最後でisbusytimeを設定した後に、 
 #ifndefNDEBUG 
  { 
   char fake[1024]; 
   GetString(zz_query_string, fake, sizeof(fake), "Faketime"); 
   if (*fake == 't') 
    isbusytime = 1; 
  } 
 #endif 
 (read2ch.hに記述するような内容ではないと思う) 
 
325KB
新着レスの表示
スレッドリストへ戻る 全部 前100 次100 最新50
0ch BBS 2004-10-30