yusuk****@cheru*****
yusuk****@cheru*****
2003年 5月 13日 (火) 21:41:54 JST
田畑です。 > ■uim-prime (new!) Great! > 先日、予測入力システムであるPRIMEが公開されましたので、対応しようと試 > みています。今のところ、入力した文字に対応して変換候補を標準出力に流すと > ころまできてます。 PRIMEのページにTCP/IPは「実用には向いていません」とあるのが良いですね。 #開発の初期に小松さんに指摘してくださった春山さんに感謝します。 > 現在はprime.cで文字列を扱うのにglibに頼ってます。将来的にはglib使うの > はやめたいと思ってます。 そうですね。 > GtkCListには目的にあう関数は無さげなのでとりあえずGtkTreeView化してみ > たのですが、こちらもやはり一度幅を広げると元には戻りませんでした。 > TreeViewにすると遅くなりますし、メリットも特にないので、とりあえず > CListに戻しました。im-jaのように候補ウィンドウにメニューを使うという方法 > も検討してみた方がよさそうです。 GtkCListはdeprecatedなので、多少問題があっても使うのをやめたいのですが、 GtkTreeViewはフォーカスのあるitemを変更する関数が見付けられなくて やらずに今にいたっています。 それから、pluginを付けるのに必要と思うので、関数feature?と provideをschemeに追加するpatchを付けます。 *** ../slib.c 2002-12-14 01:38:01.000000000 +0900 --- slib.c 2003-05-13 21:35:57.000000000 +0900 *************** *** 129,134 **** --- 129,135 ---- LISP sym_dot = NIL; LISP sym_after_gc = NIL; LISP sym_eval_history_ptr = NIL; + LISP sym_features = NIL; LISP unbound_marker = NIL; LISP *obarray; LISP repl_return_val = NIL; *************** *** 1323,1328 **** --- 1324,1331 ---- setvar (sym_after_gc, NIL, NIL); gc_protect_sym (&sym_eval_history_ptr, "*eval-history-ptr*"); setvar (sym_eval_history_ptr, NIL, NIL); + gc_protect_sym (&sym_features, "features"); + setvar (sym_features, NIL, NIL); if (inums_dim > 0) { inums = (LISP *) must_malloc (sizeof (LISP) * inums_dim); *************** *** 3097,3102 **** --- 3100,3124 ---- } LISP + featurep (LISP name) + { + return memq (name, sym_features); + } + + LISP + provide (LISP name) + { + if NSYMBOLP + (name) { + my_err ("wta(non-symbol) to provide", name); + return NIL; + } + if (featurep(name) == NIL) + setvar (sym_features, cons (name, sym_features), NIL); + return (NIL); + } + + LISP vload (char *fname, long cflag, long rflag) { LISP form, result, tail, lf, reader = NIL; *************** *** 3715,3720 **** --- 3737,3744 ---- init_subr_1 ("srand", lsrand); init_subr_0 ("last-c-error", lllast_c_errmsg); init_subr_0 ("help", help); + init_subr_1 ("feature?", featurep); + init_subr_1 ("provide", provide); init_slib_version (); } -- CHAOS AND CHANCE! Yusuke TABATA (yusuk****@cheru*****)