[ 捕捉確認済アンテナ ] 日記観察 *BSD Diary Links わっちりんく(す) はこんだらウォッチ 天野アンテナ HNN日記バード しっぽあんてな しぐなるぽ〜と |
|
いつの間にか、w3m に Local CGI なる機能が実装されていた模様。
しかし、ポケビの主力ブラウザに そんな機能が実装されてしまうと mhttpd の存在意義 (笑)がますます減退していくような。
mhttpd のコードをいろいろ見直し中。
データの持ち回りについて少しはマシな構造を考えたい。 懸案は
というわけで、ブラウザから来た情報などは一式構造体に詰め込んでから、 下位の関数に受け渡すようにしよう。
…作業中。
…。
…。
…。
Cで文字列処理なんてやってられっかー!
というわけで、mhttpd を少し改造しました。ポート番号を指定しないと標準入出力を読み書きしますので、 inetd の手下になることができます。
でも DocumentRoot については次回と言うことで…。(汗;
内部のデータの持ち方は上記の通りいろいろ変わってます。 バグを発見した方はメールなり他の媒体なりで教えて下さい。 (メールが一番早く伝わります。)
コードを複数のファイルに分割してみたり。
こんなに大きなプログラムは生まれて初めて書くもんだから、当然分割作業も初めて。 聞きかじりの知識でやったことなので、おかしいところは是非指摘してもらいたいです。
~/src/mhttpd $ wc -l *.c *.h 304 http.c 245 mhttpd.c 492 output.c 179 sock.c 393 util.c 64 global.h 179 mhttpd.h 1856 total
…、分けただけなのになんで増えますか。
コンソールと同じ画面イメージで使いたいので、 mgterm をいじってみた。 -r というオプション指定でリバースモード(黒地に白文字)になる。
diff -ur mgterm/mgterm.c mgterm_r/mgterm.c --- mgterm/mgterm.c Thu Aug 31 21:06:47 2000 +++ mgterm_r/mgterm.c Thu Nov 23 22:10:26 2000 @@ -113,6 +113,10 @@ char *cmdline; +/* 2000年 11月23日 木曜日 20時40分32秒 JST cake */ +int color_text; +int color_back; + void send_hangup(close) { if (childid) kill(childid,SIGHUP); } @@ -172,7 +176,10 @@ int x,y,xs,ys,outocr; int soft_key = 0; - while ((c = getopt(argc,argv,"iwf:ms:e:o:"))!=EOF) { + color_text = COLOR_BLACK; + color_back = COLOR_WHITE; + + while ((c = getopt(argc,argv,"iwf:ms:e:o:r"))!=EOF) { switch(c) { case 'i': inherit_tty = 0; break; @@ -201,6 +208,10 @@ SCREEN_HEIGHT = 200; } break; + case 'r': /* reverse mode (cake) */ + color_text = COLOR_WHITE; + color_back = COLOR_BLACK; + break; } } @@ -244,7 +255,7 @@ } if (ttyfd < 0) exit(1); - set_color(COLOR_WHITE); + set_color(color_back); clear_screen(); if (font_size == 10) { if (!load_font("k12x10.fnt",12,10)) { @@ -273,6 +284,7 @@ ys = lines*font_height; ts = create_textscreen(NULL,x,y,xs,ys,0); + ts_set_bgcolor(ts, color_back); if (mgl_apli_type == AT_MINIAPLI) { set_color(COLOR_DARKGRAY); draw_rect(2,2,SCREEN_WIDTH-4,SCREEN_HEIGHT-4); diff -ur mgterm/vt.c mgterm_r/vt.c --- mgterm/vt.c Thu Aug 31 21:06:47 2000 +++ mgterm_r/vt.c Thu Nov 23 22:18:50 2000 @@ -180,6 +180,10 @@ int MAXLIN=18; extern int ptyfd; +/* cake */ +extern int color_text; +extern int color_back; + struct screen_data { char attr; /* 0: no char 1: ANK 2:kanji 1st 4: kanji 2nd */ unsigned char ch; @@ -891,7 +895,7 @@ memmove(&screen_data[0][0],&screen_data[l][0] ,(void *)(&screen_data[MAXLIN][0]) - (void *)(&screen_data[l][0])); #endif - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); #if 1 /* scroll region fix */ fill_rect(ts->x,ts->y+(con.ymax+1-l)*font_height,ts->xs,l*font_height); memset(&screen_data[con.ymax+1-l][0],0 @@ -913,7 +917,7 @@ bitblt(NULL,ts->x,ts->y+l*font_height,NULL,ts->x,ts->y,ts->xs,ts->ys - l*font_height,0); memmove(&screen_data[l][0],&screen_data[0][0] ,(void *)(&screen_data[MAXLIN][0]) - (void *)(&screen_data[l][0])); - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); fill_rect(ts->x,ts->y,ts->xs,l*font_height); memset(&screen_data[0][0],0 ,(void *)(&screen_data[l][0]) - (void *)(&screen_data[0][0])); @@ -927,7 +931,7 @@ } void TextClearEol(c) int c; { - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); if (con.x < MAXCOL) fill_rect(ts->x+con.x*font_width,ts->y+con.y*font_height,ts->xs-con.x*font_width,font_height); memset(&screen_data[con.y][con.x],0 @@ -936,7 +940,7 @@ } void TextClearEos(c) int c; { - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); if (con.x < MAXCOL) { fill_rect(ts->x+con.x*font_width,ts->y+con.y*font_height,ts->xs-con.x*font_width,font_height); memset(&screen_data[con.y][con.x],0 @@ -978,7 +982,7 @@ memmove(&screen_data[con.y][con.x+c],&screen_data[con.y][con.x] ,(void *)(&screen_data[con.y][MAXCOL]) - (void *)(&screen_data[con.y][con.x+c])); - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); /* kaga */ fill_rect(x1,ts->y+con.y*font_height,font_width*c,font_height); memset(&screen_data[con.y][con.x],0,c); @@ -1005,7 +1009,7 @@ memmove(&screen_data[top][0],&screen_data[top+line][0] ,(btm-line-top+1)*sizeof(struct screen_data)*MAXCOL); } - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); fill_rect(ts->x,y3,ts->xs,line*font_height); memset(&screen_data[btm+1-line][0],0 ,(line)*sizeof(struct screen_data)*MAXCOL); @@ -1026,7 +1030,7 @@ memmove(&screen_data[top+line][0],&screen_data[top][0] ,(btm-line-top+1)*sizeof(struct screen_data)*MAXCOL); } - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); fill_rect(ts->x,y1,ts->xs,line*font_height); memset(&screen_data[top][0],0 ,(line)*sizeof(struct screen_data)*MAXCOL); @@ -1043,9 +1047,9 @@ if (con.attr & ATTR_ITALIC) attr |= FA_ITALIC; if (con.attr & ATTR_HIGH) attr |= FA_BOLD; set_font(font_size,attr); - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); fill_rect(x,y,xs,ys); - set_color((con.attr&ATTR_REVERSE)?COLOR_WHITE:COLOR_BLACK); + set_color((con.attr&ATTR_REVERSE)?color_back:color_text); draw_font(x,y,(ch1<<8)|ch2,DIR_NORTH); if (con.attr & ATTR_ULINE) { draw_line(x,y+ys-1,x+xs-1,y+ys-1); @@ -1067,9 +1071,9 @@ if (con.attr & ATTR_ITALIC) attr |= FA_ITALIC; if (con.attr & ATTR_HIGH) attr |= FA_BOLD; set_font(font_size,attr); - set_color((con.attr&ATTR_REVERSE)?COLOR_BLACK:COLOR_WHITE); + set_color((con.attr&ATTR_REVERSE)?color_text:color_back); fill_rect(x,y,xs,ys); - set_color((con.attr&ATTR_REVERSE)?COLOR_WHITE:COLOR_BLACK); + set_color((con.attr&ATTR_REVERSE)?color_back:color_text); draw_font(x,y,ch&0x7f, DIR_NORTH); if (con.attr & ATTR_ULINE) { draw_line(x,y+ys-1,x+xs-1,y+ys-1);
~/.emacs から
(set-keyboard-coding-system 'euc-jp)
を外したら ALT が Meta として働くようになった。 上記は Xhpc で Emacs が kinput2 から漢字入力できるようにと設定したものだった。 imcanna を生かしたい場合も必要になってくるような気もするが、とりあえず外しとこう。
サスペンドさせてしばらく経ってから、再びレジュームさせようと電源ボタンを押しても 、復帰しないことがある。
リセットボタンだけが効くが、それを押すと CE が動き出す。
うぐぅ。
Liece で自分が参加していないチャンネル一覧を見るためのコマンドを教えてくらはい。
ese-nikki、もうちょっと目に優しい色使いにしてくれると嬉しいな。濃緑地に薄緑な文字なんだもん。
issei さんからのパッチを取り込んたものをリリース。
ちょっとだけ欲をだして試行錯誤の末 install: ターゲットも追加。 勝手に install-sh なんてつけちゃったけどよかったのかな。:-P
あと、ブランチを切って遊ぶ。リポジトリにいらんタグがたくさんついてしまった。 けどなんとなく cvs の使い方がわかってきたり。
あとはブランチからのマージをマスターせねば。
されるプログラムが、引数を受け取れなくて悩んでいる。むう、tcp_wrappers とか見れ ばいいのか。
要りますかね、ログで。アドレスで十分?
ネチケット
普通の礼儀とかエチケットとかでいいじゃん、とか思う。
Emacs の C-mode で M-; するとあら不思議。
これで打鍵の面倒な /* */ なコメントも簡単に入れられます。
ってこれ基本ですか。
issei さん から立て続けに mhttpd のパッチが送られて来たり。
やはり見る人が見ると目に余るものらしい。甘々なコードをバサバサと斬られている。 勉強になります。m(_@_)m
ああっ 、わがまま言ってすみません。
会社の Win から IE で見たら、ese-nikki はほぼ黒地に緑文字という感じで、そんなに見にくいことなかったです。 おかしいなあ。おかしいのは自分の目か?
自宅から見るぶんには今のが見やすいですが。
ニセがテンパっている。
逃避したいけどできないくらいの激しさで。
うう。コードいじりたいよぅ。
以上、8日分です。
[Top] [PocketBSD] [シュミプロ] [ぽめれちょう掲示板] [きまたま日記] [最新版] [一覧] [戻る]
このページはTsDiarySystemを用いて生成されています。
Cake (SHIMADA Keiki)