• R/O
  • HTTP
  • SSH
  • HTTPS

コミット

タグ
未設定

よく使われているワード(クリックで追加)

javac++androidlinuxc#windowsobjective-ccocoa誰得qtpythonphprubygameguibathyscaphec計画中(planning stage)翻訳omegatframeworktwitterdomtestvb.netdirectxゲームエンジンbtronarduinopreviewer

mfiler4のgitリポジトリ


コミットメタ情報

リビジョンeb458fd3475fc2df114b94e455ef0d207ab3cdb5 (tree)
日時2012-12-13 17:26:14
作者ab25q <ab25cq@gmai...>
コミッターab25q

ログメッセージ

v1.0.4c release

変更サマリ

差分

--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,4 +1,16 @@
11
2+2012 12月8日 version 1.0.4c
3+
4+ 1. cursesを独自ライブラリからcurses(w)に変更
5+
6+ 2. keymap内部コマンドを削除
7+
8+ 3. 環境変数のkey_meta_left, key_meta_right, key_meta_up, key_meta_down, key_ctrl_left, key_ctrl_right, key_ctrl_up, key_ctrl_down, key_ctrl_delete, key_ctrl_spaceを削除。環境変数のkey_delete2を追加。
9+
10+ 4. ディレクトリの戻るをmeta + l, ディレクトリの進をmeta + r に変更 ( key_meta_left, key_meta_rightが使えなくなったため)
11+
12+ 5. 全マークをするHOMEキーと同じ機能をmeta + aに、ENDキーと同じ機能をmeta + eにバインド。(HOME, ENDキーが使えない端末が多いため)
13+
214 2012 12月8日 version 1.0.4b
315
416 1. 最適化レベルを3にしてみました。問題があれば、また2に戻します。
--- a/USAGE.ja.txt
+++ b/USAGE.ja.txt
@@ -1,231 +1,95 @@
11 キー操作とその機能、キー操作の定義
22
3-カーソル上, CTRL-P
4- カーソルを上に移動する。
5-
6-カーソル下, CTRL-N
7- カーソルを下に移動する。
8-
9-カーソル右、CTRL-F
10- カーソルを右のウィンドウに移動する。
11-
12-カーソル左、CTRL-B
13- カーソルを左のウィンドウに移動する。
14-
15-CTRL-A
16- カーソルを一番上に移動する。
17-
18-CTRL-E
19- カーソルを一番下に移動する。
20-
21-PAGEUP, CTRL-U, Meta-v
22- カーソルを上に10移動する。
23-
24-PAGEDORN, CTRL-D, CTRL-V
25- カーソルを下に10移動する。
26-
27-BACKSPACE, CHTRL-H
28- 親ディレクトリに移動する。
29-
30-\
31- ルートディレクトリに移動する。
32-
33-~
34- ホームディレクトリに移動する。
35-
36-ENTER
37- カーソルのファイルがディレクトリであればカーソルのディレクトリに移動する。
38- ディレクトリでなければ、実行する。コマンドラインに移動するのでコマンドを入力してください。
39-
40-q
41- 2画面の時は1画面にする。1画面の時は終了する。
42-
43-tab
44- 1画面の時は2画面にする。(コピーなどのファイル操作をする場合tabで2画面にしてからファイル操作が終わったらqを押せばスマートに操作できます。)
45-
46-CTRL-C
47- 終了する。
48-
49-CTRL-L
50- ディスクを再読み込みして、画面を再描写する。
51-
52-SPACE
53- カーソル下のファイルをマークして、下に移動する。
54-
55-[
56- 範囲マークの始点をカーソル下のファイルに設定。
57-
58-]
59- 範囲マークの終点をカーソル下のファイルに設定。範囲マークに入っているファイルをマークを反転する
60-
61-HOME
62- ディレクトリ以外を全てのファイルのマークを反転
63-
64-END
65- 全てのファイルのマークを反転
66-
67-*
68- グロブマーク。*.cとすれば全ての拡張子cのファイルのマークを反転。
69-
70-+
71- 正規表現マーク。正規表現にマッチするファイルのマークを反転。
72-
73-.
74- .から始まるファイルを表示する、表示しないを繰り返す。
75-
76-c
77- マークしているファイルをコピー。1画面時は目標ディレクトリを指定してからコピー。2画面時は2画面のアクティブでないほうのディレクトリを目標ディレクトリとする。
78-
79-C
80- cpプログラムを使ったコピー。&をつけるとバックグランドコピーになります。
81- その場合は-iを外したほうがいいです。詳しくはman cpしてください。
82-
83-m
84- マークしているファイルを移動。1画面時は目標ディレクトリを指定してから移動。2画面時は2画面のアクティブでないほうのディレクトリを目標ディレクトリとする。
85-
86-M
87- mvプログラムを使ったファイルの移動。
88-d
89- マークしているファイルを$TRASHBOX_DIRに移動する。初期値は~/.mfiler3/trashbox/
90-
91-D
92- マークしているファイルを削除。
93-
94-e
95- エディッタ(vim)でファイルを編集
96-
97- (キーバインドに表示を伴うようなコマンドをバインドする場合はexternalが必要)
98-
99-v
100- ページャ(less)でファイルを見る。(テキストファイルのみ)
101-
102-r
103- ファイル名を変える
104-
105- マークしてからrを押すと正規表現改名。
106-
107- 例えば
108-
109- regex_rename '\.c$' '.h'
110-
111- を実行すると拡張子cを拡張子hに変換。
112-
113-a
114- ファイル属性を操作するメニューを呼ぶ
115-
116-n
117- ファイルを新しく作る。
118-
119-k
120- ディレクトリを新しく作る。
121-
122- mkdirは-pオプションがしてあるので、例えばdir1/dir2/dir3など深くディレクトリを指定してもdir1/dir2/dir3が作成されます。
123-
124-b
125- ファイルのバックアップを作成する
126-
127-g
128- mgrepを実行する。文字列を検索して、その結果のリストをENTERで選択すればその位置にvimが立ち上がります。mgrepに-Rをつければ再帰的に下のディレクトリも検索します。
129-
130-G
131- 文字列を検索して、その文字列を含むファイルの仮想ディレクトリを作成します。grepに-Rをつければ再帰的に下のディレクトリも検索します。
132-
133-f,/
134-
135- インクリメンタルサーチを開始。ファイル名を入力すればマッチするファイルに移動します。その後下キーを押せば次の候補を探します。上キーを押せば前の候補に移動します。スペースを押せば、ファイルをマークします。
136-
137-F
138-
139- findコマンドにマッチするファイルの仮想ディレクトリを作成します。
140-
141- findコマンドには以下のようなオプションがあります。
142-
143- -name パターンにマッチするファイル名を持つファイルを検索します。これにはワイルドカードが使用できます。'*.c'とすろと拡張子cのファイル。
144-
145- -size +n
146- -size -n
147- -size n
148-
149- ファイルのサイズが+n(n以上) -n(n以下) n(nジャスト)のファイルを検索します。
150-
151- 詳しくはman findとしてください。
152-
153-s
154- ソートとマスクの設定をするメニューを表示します。
155-
156-V
157- 表示オプションの設定をするメニューを表示します。
158-
159-o
160- アクティブ側のディレクトリのパスを非アクティブ側のパスに移動。
161-
162-O
163- 非アクティブ側のディレクトリのパスをアクティブ側のパスに移動。
164-
165-w
166- アクティブ側のパスと非アクティブ側のパスを交換します。
167-
168-j
169- ディレクトリのジャンプメニューを表示します。
3+カーソル上, CTRL-P カーソルを上に移動する。
4+カーソル下, CTRL-N カーソルを下に移動する。
5+カーソル右、CTRL-F カーソルを右のウィンドウに移動する。
6+カーソル左、CTRL-B カーソルを左のウィンドウに移動する。
7+CTRL-A カーソルを一番上に移動する。
8+CTRL-E カーソルを一番下に移動する。
9+PAGEUP, CTRL-U, meta + v カーソルを上に10移動する。
10+PAGEDORN, CTRL-D, CTRL-V カーソルを下に10移動する。
11+BACKSPACE, CHTRL-H, DELETE 親ディレクトリに移動する。
12+\ ルートディレクトリに移動する。
13+~ ホームディレクトリに移動する。
14+ENTER カーソルのファイルがディレクトリであればカーソルのディレクトリに移動する。ディレクトリでなければ、実行する。コマンドラインに移動するのでコマンドを入力してください。
15+tab 1画面の時は2画面にする。(コピーなどのファイル操作をする場合tabで2画面にしてからファイル操作が終わったらqを押せばスマートに操作できます。)
16+q 2画面の時は1画面にする。1画面の時は終了する。
17+CTRL-C 終了する。
18+CTRL-L ディスクを再読み込みして、画面を再描写する。
19+SPACE カーソル下のファイルをマークして、下に移動する。
20+[ 範囲マークの始点をカーソル下のファイルに設定。
21+] 範囲マークの終点をカーソル下のファイルに設定。範囲マークに入っているファイルをマークを反転する
22+HOME, meta + a ディレクトリ以外を全てのファイルのマークを反転
23+END, meta + e 全てのファイルのマークを反転
24+* グロブマーク。*.cとすれば全ての拡張子cのファイルのマークを反転。
25++ 正規表現マーク。正規表現にマッチするファイルのマークを反転。
26+. .から始まるファイルを表示する、表示しないを繰り返す。
27+c マークしているファイルをコピー。1画面時は目標ディレクトリを指定してからコピー。2画面時は2画面のアクティブでないほうのディレクトリを目標ディレクトリとする。
28+C cpプログラムを使ったコピー。&をつけるとバックグランドコピーになります。その場合は-iを外したほうがいいです。詳しくはman cpしてください。
29+m マークしているファイルを移動。1画面時は目標ディレクトリを指定してから移動。2画面時は2画面のアクティブでないほうのディレクトリを目標ディレクトリとする。
30+M mvプログラムを使ったファイルの移動。
31+d マークしているファイルを$TRASHBOX_DIRに移動する。初期値は~/.mfiler3/trashbox/
32+D マークしているファイルを削除。
33+l マークしたファイルのリンクを作成します。対象ディレクトリは2画面時は非アクティブなディレクトリに、1画面時はパスを指定してください。作成されるリンクはフルパスです。
34+e エディッタ(vim)でファイルを編集(キーバインドに表示を伴うようなコマンドをバインドする場合はexternalが必要)
35+v ページャ(less)でファイルを見る。(テキストファイルのみ)
36+r ファイル名を変える
37+ マークしてからrを押すと正規表現改名。
38+
39+ 例えば
40+
41+ regex_rename '\.c$' '.h'
42+
43+ を実行すると拡張子cを拡張子hに変換。
44+a ファイル属性を操作するメニューを呼ぶ
45+n ファイルを新しく作る。
46+k ディレクトリを新しく作る。mkdirは-pオプションがしてあるので、例えばdir1/dir2/dir3など深くディレクトリを指定してもdir1/dir2/dir3が作成されます。
47+b ファイルのバックアップを作成する
48+g mgrepを実行する。文字列を検索して、その結果のリストをENTERで選択すればその位置にvimが立ち上がります。mgrepに-Rをつければ再帰的に下のディレクトリも検索します。
49+G 文字列を検索して、その文字列を含むファイルの仮想ディレクトリを作成します。grepに-Rをつければ再帰的に下のディレクトリも検索します。
50+f,/ インクリメンタルサーチを開始。ファイル名を入力すればマッチするファイルに移動します。その後下キーを押せば次の候補を探します。上キーを押せば前の候補に移動します。スペースを押せば、ファイルをマークします。
51+F findコマンドにマッチするファイルの仮想ディレクトリを作成します。
52+ findコマンドには以下のようなオプションがあります。
53+
54+ -name パターンにマッチするファイル名を持つファイルを検索します。これにはワイルドカードが使用できます。'*.c'とすろと拡張子cのファイル。
55+
56+ -size +n
57+ -size -n
58+ -size n
59+
60+ ファイルのサイズが+n(n以上) -n(n以下) n(nジャスト)のファイルを検索します。
61+
62+ 詳しくはman findとしてください。
63+s ソートとマスクの設定をするメニューを表示します。
64+V 表示オプションの設定をするメニューを表示します。
65+o アクティブ側のディレクトリのパスを非アクティブ側のパスに移動。
66+O 非アクティブ側のディレクトリのパスをアクティブ側のパスに移動。
67+w アクティブ側のパスと非アクティブ側のパスを交換します。
68+j ディレクトリのジャンプメニューを表示します。
17069
171- Add ...で現在のディレクトリをメニューに追加します。
172- Clear...でジャンプメニューを初期化。
173-
174- メニューは終了時保存されます。
175-
176-J
177- コマンドラインによるディレクトリ移動
178-
179-h
180- コマンドラインに移動します。
181-
182-H
183- コマンドラインに移動します。コマンドを実行してもコマンドラインのままです。
184-
185-x
186- ファイルを実行します。
187-
188-p
189- マークファイルを圧縮する。(2画面時は非アクティブ側に保存される)
190-
191-P
192- マークファイルを圧縮する。(2画面、1画面時ともにアクティブ側に保存される)
193-
194-u
195- 圧縮ファイルを解凍する。(2画面時は非アクティブ側に保存される)
196-
197-U
198- 圧縮ファイルを解凍する。(2画面、1画面時ともに非アクティブ側に保存される)
199-
200-CTRL-T
201- 新規ディレクトリを作成する。(現在のカレントディレクトリのパス)
202-
203-CTRL-W
204- ディレクトリを削除する。(現在のカレントディレクトリを削除)
205-
206-l
207- マークしたファイルのリンクを作成します。対象ディレクトリは2画面時は非アクティブなディレクトリに、1画面時はパスを指定してください。作成されるリンクはフルパスです。
208-
209-meta + 左
210- ディレクトリを戻る
211-
212-meta + 右
213- ディレクトリを進む
214-
215-:
216- bashシェルを起動する。
217-
218-!
219- ファイルマネージャーを起動する。
220-
221-1-9
222- サスペンドしているプログラムを前面に持ってくる
223-
224-meta + 1-9
225- ディレクトリをアクティブにする。
70+ Add ...で現在のディレクトリをメニューに追加します。
71+ Clear...でジャンプメニューを初期化。
72+
73+ メニューは終了時保存されます。
74+
75+J コマンドラインによるディレクトリ移動
76+h コマンドラインに移動します。
77+H コマンドラインに移動します。コマンドを実行してもコマンドラインのままです。
78+x ファイルを実行します。
79+p マークファイルを圧縮する。(2画面時は非アクティブ側に保存される)
80+P マークファイルを圧縮する。(2画面、1画面時ともにアクティブ側に保存される)
81+u 圧縮ファイルを解凍する。(2画面時は非アクティブ側に保存される)
82+U 圧縮ファイルを解凍する。(2画面、1画面時ともに非アクティブ側に保存される)
83+CTRL-T 新規ディレクトリを作成する。(現在のカレントディレクトリのパス)
84+CTRL-W ディレクトリを削除する。(現在のカレントディレクトリを削除)
85+meta + 1-9 ディレクトリをアクティブにする。
86+meta + l ディレクトリを戻る
87+meta + r ディレクトリを進む
88+: bashシェルを起動する。
89+1-9 サスペンドしているプログラムを前面に持ってくる
90+! ファイルマネージャーを起動する。
91+? ヘルプを表示する
22692
227-?
228- ヘルプを表示する
22993
23094 シェルスクリプト言語 xyzshの使い方
23195
@@ -238,21 +102,17 @@ meta + 1-9
238102 $key_left 左キー
239103 $key_insert インサートキー
240104 $key_delete deleteキー
105+ $key_delete2 deleteキー2
241106 $key_home homeキー
242107 $key_end endキー
243108 $key_pageup pageupキー
244109 $key_pagedown pagedownキー
245- $key_meta_left meta+左キー
246- $key_meta_right meta+右キー
247- $key_meta_up meta+上キー
248- $key_meta_down meta+下キー
249110 $key_enter ENTERキー
250111 $key_backspace BackSpaceキー
251112 $key_f1, key_f12) ファンクションキー
252113 $key_a,..., key_z) 英字キーa,..z
253114 $key_A, ..., key_Z) 英字キーA,...,Z
254115 $key_space スペースキー
255- $key_ctrl_space CTRL+スペースキー
256116 $key_ctrl_a, key_ctrl_z) CTRL+英字キー
257117 $key_escape escapeキー
258118 $key_tab tabキー
--- a/USAGE.txt
+++ b/USAGE.txt
@@ -4,21 +4,21 @@ LEFT, CTRL-B cursor left
44 RIGHT, CTRL-F cursor right
55 CTRL-A cursor top
66 CTRL-E cursor bottom
7-PAGEUP, CTRL-U, Meta-v cursor up a lots
7+PAGEUP, CTRL-U, meta + v cursor up a lots
88 PAGEDOWN, CTRL-D, CTRL-V cursor down a lots
9-BACKSPACE, CTRL-H move to parent direcotry
10-\\ move to root directory
9+BACKSPACE, CTRL-H, DELETE move to parent direcotry
10+\ move to root directory
1111 ~ move to home directory
1212 ENTER run cursor file(insert directory)
1313 tab go to 2pain mode
1414 q quit from 2pain mode or quit from mfiler4
15-CTRL_C quit
16-CTRL+L reread diskt and redraw the screen
15+CTRL-C quit
16+CTRL-L reread diskt and redraw the screen
1717 SPACE mark file
1818 [ mark range begin
1919 ] mark range end
20-HOME mark all files without directory
21-END mark all files
20+HOME, meta + a mark all files without directory
21+END, meta + e mark all files
2222 * glob mark
2323 + regex mark
2424 . toggle dot file mask
@@ -28,6 +28,7 @@ m move mark files to other directory
2828 M mv
2929 d move mark files to $TRASHBOX_DIR
3030 D delete mark files
31+l make symbolic links with mark files to a other directory
3132 e edit file(vim)
3233 v view file(less)
3334 r rename
@@ -48,7 +49,19 @@ j jump menu
4849 J cmdline jump
4950 h switch to command line mode
5051 x excute under file
51-l make symbolic links with mark files to a other directory
52+p make tar archive file
53+P make tar archive file
54+u unzip tar archive file
55+U unzip tar archive file
56+CTRL-T make new directory
57+CTRL-W delete ative directory
58+meta + 1-9 activate the number directory
59+meta + l forward directory
60+meta + r backward directory
61+: run bash
62+1-9 forground job
63+! run file manager(GUI)
64+? help
5265
5366
5467 Usage of xyzsh
@@ -59,28 +72,24 @@ mfiler3 inner command
5972
6073
6174 keycode
62- $key_up
63- $key_right
64- $key_down
65- $key_left
66- $key_insert
67- $key_delete
68- $key_home
69- $key_end
70- $key_pageup
75+ $key_up
76+ $key_right
77+ $key_down
78+ $key_left
79+ $key_insert
80+ $key_delete
81+ $key_delete2
82+ $key_home
83+ $key_end
84+ $key_pageup
7185 $key_pagedown
72- $key_meta_left
73- $key_meta_right
74- $key_meta_up
75- $key_meta_down
7686 $key_enter
7787 $key_backspace
7888 $key_f1, key_f12
7989 $key_a,..., key_z
8090 $key_A, ..., key_Z
8191 $key_space
82- $key_ctrl_space
83- $key_ctrl_a, key_ctrl_z
92+ $key_ctrl_a, key_ctrl_z
8493 $key_escape
8594 $key_tab
8695 $key_0,...,key_9
@@ -89,7 +98,7 @@ keycode
8998 $key_sharp
9099 $key_dollar
91100 $key_percent
92- $key_and
101+ $key_and
93102 $key_squote
94103 $key_lparen
95104 $key_rparen
--- a/mfiler4.xyzsh
+++ b/mfiler4.xyzsh
@@ -96,16 +96,18 @@ def toggle_nameonly_mode (
9696
9797 # color ####################
9898 print 0 | var COLOR
99-print 0 | ( | export COLOR_DIR; | export COLOR_EXE; | export COLOR_LINK; | export COLOR_MARK)
99+export ma_bold | ( | export COLOR_DIR; | export COLOR_EXE; | export COLOR_LINK; | export COLOR_MARK)
100100
101101 def toggle_color (
102102 if(COLOR |chomp| = 0) (
103- print 1 | var COLOR
103+ if (export HAS_COLOR | = 1\n) (
104+ print 1 | var COLOR
104105
105- export ma_cyan | export COLOR_DIR
106- export ma_red | export COLOR_EXE
107- export ma_magenta | export COLOR_LINK
108- export ma_yellow | export COLOR_MARK
106+ export ma_cyan | export COLOR_DIR
107+ export ma_green | export COLOR_EXE
108+ export ma_magenta | export COLOR_LINK
109+ export ma_yellow | export COLOR_MARK
110+ )
109111 ) else (
110112 print 0 | var COLOR
111113
@@ -387,6 +389,8 @@ keycommand $key_x (
387389 )
388390
389391 keycommand $key_backspace ( mcd .. )
392+keycommand $key_delete ( mcd .. )
393+keycommand $key_delete2 ( mcd .. )
390394 keycommand $key_ctrl_h ( mcd .. )
391395 keycommand $key_tilda ( mcd ~ )
392396 keycommand $key_backslash ( mcd / )
@@ -782,10 +786,8 @@ keycommand $key_q (
782786 )
783787 )
784788
785-keycommand $key_meta_left ( mcd - )
786-keycommand $key_meta_right ( mcd + )
787-keycommand -m $key_left ( mcd - )
788-keycommand -m $key_right ( mcd + )
789+keycommand -m $key_l ( mcd - )
790+keycommand -m $key_r ( mcd + )
789791
790792 keycommand $key_ctrl_t (
791793 dir_num | var -local a
@@ -801,13 +803,15 @@ keycommand $key_ctrl_w (
801803 )
802804
803805 keycommand $key_home ( mark -t -f -a )
806+keycommand -m $key_a ( mark -t -f -a )
804807 keycommand $key_end ( mark -t -a )
808+keycommand -m $key_e ( mark -t -a )
805809 keycommand $key_pageup ( cursor_move -10 )
806810 keycommand $key_ctrl_u ( cursor_move -10 )
807811 keycommand -m $key_v ( cursor_move -10 )
808812 keycommand $key_pagedown ( cursor_move +10 )
809-keycommand $key_ctrl_d ( cursor_move +10 )
810813 keycommand $key_ctrl_v ( cursor_move +10 )
814+keycommand $key_ctrl_d ( cursor_move +10 )
811815 keycommand $key_ctrl_a ( cursor_move 0 )
812816 keycommand $key_ctrl_e ( cursor_move $(file_num|chomp) )
813817
@@ -1034,70 +1038,6 @@ def quit -inherit (
10341038 inherit
10351039 )
10361040
1037-## key map
1038-keymap $key_up 27 91 65 -1 -1 -1 -1 -1 -1 -1
1039-keymap $key_up 27 79 65 -1 -1 -1 -1 -1 -1 -1
1040-keymap $key_down 27 91 66 -1 -1 -1 -1 -1 -1 -1
1041-keymap $key_down 27 79 66 -1 -1 -1 -1 -1 -1 -1
1042-keymap $key_right 27 91 67 -1 -1 -1 -1 -1 -1 -1
1043-keymap $key_right 27 79 67 -1 -1 -1 -1 -1 -1 -1
1044-keymap $key_left 27 91 68 -1 -1 -1 -1 -1 -1 -1
1045-keymap $key_left 27 79 68 -1 -1 -1 -1 -1 -1 -1
1046-keymap $key_insert 27 91 50 126 -1 -1 -1 -1 -1 -1
1047-keymap $key_delete 27 91 51 126 -1 -1 -1 -1 -1 -1
1048-keymap $key_backspace 127 -1 -1 -1 -1 -1 -1 -1 -1 -1
1049-keymap $key_home 27 79 72 -1 -1 -1 -1 -1 -1 -1
1050-keymap $key_home 27 91 72 -1 -1 -1 -1 -1 -1 -1
1051-keymap $key_home 27 91 55 126 -1 -1 -1 -1 -1 -1
1052-keymap $key_home 27 91 0 -1 -1 -1 -1 -1 -1 -1
1053-keymap $key_home 27 91 49 126 -1 -1 -1 -1 -1 -1
1054-keymap $key_end 27 79 70 -1 -1 -1 -1 -1 -1 -1
1055-keymap $key_end 27 91 70 -1 -1 -1 -1 -1 -1 -1
1056-keymap $key_end 27 91 56 126 -1 -1 -1 -1 -1 -1
1057-keymap $key_end 27 91 101 -1 -1 -1 -1 -1 -1 -1
1058-keymap $key_end 27 91 52 126 -1 -1 -1 -1 -1 -1
1059-keymap $key_pageup 27 91 53 126 -1 -1 -1 -1 -1 -1
1060-keymap $key_pageup 27 91 73 -1 -1 -1 -1 -1 -1 -1
1061-keymap $key_pagedown 27 91 54 126 -1 -1 -1 -1 -1 -1
1062-keymap $key_pagedown 27 91 71 -1 -1 -1 -1 -1 -1 -1
1063-keymap $key_f1 27 91 49 49 126 -1 -1 -1 -1 -1
1064-keymap $key_f1 27 79 80 -1 -1 -1 -1 -1 -1 -1
1065-keymap $key_f1 27 91 91 65 -1 -1 -1 -1 -1 -1
1066-keymap $key_f2 27 91 49 50 126 -1 -1 -1 -1 -1
1067-keymap $key_f2 27 79 81 -1 -1 -1 -1 -1 -1 -1
1068-keymap $key_f2 27 91 91 66 -1 -1 -1 -1 -1 -1
1069-keymap $key_f3 27 91 49 51 126 -1 -1 -1 -1 -1
1070-keymap $key_f3 27 79 82 -1 -1 -1 -1 -1 -1 -1
1071-keymap $key_f3 27 91 91 67 -1 -1 -1 -1 -1 -1
1072-keymap $key_f4 27 91 49 52 126 -1 -1 -1 -1 -1
1073-keymap $key_f4 27 79 83 -1 -1 -1 -1 -1 -1 -1
1074-keymap $key_f4 27 91 91 68 -1 -1 -1 -1 -1 -1
1075-keymap $key_f5 27 91 49 53 126 -1 -1 -1 -1 -1
1076-keymap $key_f5 27 91 91 69 -1 -1 -1 -1 -1 -1
1077-keymap $key_f6 27 91 49 55 126 -1 -1 -1 -1 -1
1078-keymap $key_f7 27 91 49 56 126 -1 -1 -1 -1 -1
1079-keymap $key_f8 27 91 49 57 126 -1 -1 -1 -1 -1
1080-keymap $key_f9 27 91 50 48 126 -1 -1 -1 -1 -1
1081-keymap $key_f10 27 91 50 49 126 -1 -1 -1 -1 -1
1082-keymap $key_f11 27 91 50 51 126 -1 -1 -1 -1 -1
1083-keymap $key_f12 27 91 50 52 126 -1 -1 -1 -1 -1
1084-keymap $key_meta_left 27 91 51 68 -1 -1 -1 -1 -1 -1 # gnome-terminal
1085-keymap $key_meta_left 27 91 49 59 51 68 -1 -1 -1 -1 # xterm
1086-keymap $key_meta_left 27 91 49 59 57 68 -1 -1 -1 -1 # mlterm
1087-keymap $key_meta_left 27 79 49 59 51 68 -1 -1 -1 -1 # screen
1088-keymap $key_meta_right 27 91 51 67 -1 -1 -1 -1 -1 -1 # gnome-terminal
1089-keymap $key_meta_right 27 91 49 59 51 67 -1 -1 -1 -1 # xterm
1090-keymap $key_meta_right 27 91 49 59 57 67 -1 -1 -1 -1 # mlterm
1091-keymap $key_meta_right 27 79 49 59 51 67 -1 -1 -1 -1 # screen
1092-keymap $key_meta_up 27 91 51 65 -1 -1 -1 -1 -1 -1 # gnome-terminal
1093-keymap $key_meta_up 27 91 49 59 51 65 -1 -1 -1 -1 # xterm
1094-keymap $key_meta_up 27 91 49 59 57 65 -1 -1 -1 -1 # mlterm
1095-keymap $key_meta_up 27 79 49 59 51 65 -1 -1 -1 -1 # screen
1096-keymap $key_meta_down 27 91 51 66 -1 -1 -1 -1 -1 -1 # gnome-terminal
1097-keymap $key_meta_down 27 91 49 59 51 66 -1 -1 -1 -1 # xterm
1098-keymap $key_meta_down 27 91 49 59 57 66 -1 -1 -1 -1 # mlterm
1099-keymap $key_meta_down 27 79 49 59 51 66 -1 -1 -1 -1 # screen
1100-
11011041 ## help
11021042
11031043 mfiler4::run(
@@ -1151,11 +1091,6 @@ keycommand -m/-external キーコード ブロック
11511091 -m メタキー(Alt)を押してキーを押せばブロックが実行される
11521092 -external 画面制御を行うプログラムがブロック中現れる場合必要となります。(具体的にはcursesをoffにしてブロックを実行します。)
11531093 -
1154-keymap キーコード キー1 キー2 ........ キー10
1155--
1156-キーコードの設定です。
1157-HOMEキーなどが利かない端末があります。その場合はその端末がそのキーが押されたときにアプリケーションに渡すデータを調べて、このコマンドで設定すると利くようになります。
1158--
11591094 cursor_move n|+n|-n|/ファイル名
11601095 -
11611096 n カーソル番号のファイルに移動
@@ -1397,10 +1332,6 @@ Define keybind. If the key of keycode is pressed, mfiler4 run the block.
13971332 -m meta(alt) key
13981333 -external If there is controlling terminal program in the block, you need this. It turn curses off before running block.
13991334 -
1400-keymap keycode key1 key2 ... key3
1401--
1402-define keycode
1403--
14041335 cursor_move n|+n|-n|/[file name]
14051336 -
14061337 -d [all|adir|sdir|n] specifies directory
--- a/src/commands.c
+++ b/src/commands.c
@@ -68,32 +68,6 @@ BOOL cmd_keycommand(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
6868 return TRUE;
6969 }
7070
71-BOOL cmd_keymap(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
72-{
73- sCommand* command = runinfo->mCommand;
74-
75- if(command->mArgsNumRuntime == 12) {
76- char keys[kKeyMapKeysMax];
77-
78- keys[0] = atoi(command->mArgsRuntime[2]);
79- keys[1] = atoi(command->mArgsRuntime[3]);
80- keys[2] = atoi(command->mArgsRuntime[4]);
81- keys[3] = atoi(command->mArgsRuntime[5]);
82- keys[4] = atoi(command->mArgsRuntime[6]);
83- keys[5] = atoi(command->mArgsRuntime[7]);
84- keys[6] = atoi(command->mArgsRuntime[8]);
85- keys[7] = atoi(command->mArgsRuntime[9]);
86- keys[8] = atoi(command->mArgsRuntime[10]);
87- keys[9] = atoi(command->mArgsRuntime[11]);
88-
89- madd_keymap(atoi(command->mArgsRuntime[1]), keys);
90-
91- runinfo->mRCode = 0;
92- }
93-
94- return TRUE;
95-}
96-
9771 BOOL cmd_cursor_move(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
9872 {
9973 sCommand* command = runinfo->mCommand;
@@ -848,10 +822,10 @@ static void cmdline_start(char* cmdline, int cursor, BOOL quick, BOOL continue_)
848822 const int maxy = mgetmaxy();
849823 mclear_online(maxy-1);
850824 mclear_online(maxy-2);
851- mrefresh();
825+ refresh();
852826 mmove_immediately(maxy-2, 0);
853827
854- mendwin();
828+ endwin();
855829 mreset_tty();
856830
857831 int rcode;
@@ -876,11 +850,10 @@ static void cmdline_start(char* cmdline, int cursor, BOOL quick, BOOL continue_)
876850 printf("\nHIT ANY KEY\n");
877851 }
878852
879- minitscr();
853+ xinitscr();
880854
881855 if(rcode != 0 || !quick) {
882- int meta;
883- (void)mgetch(&meta);
856+ (void)getch();
884857 }
885858 }
886859
@@ -2162,8 +2135,8 @@ static void draw_progress_box(int mark_num)
21622135 const int y = maxy/2;
21632136
21642137 mbox(y, (maxx-22)/2, 22, 3);
2165- mmvprintw(y, (maxx-22)/2+2, "progress");
2166- mmvprintw(y+1, (maxx-22)/2+1, "(%d/%d) files", gProgressMark, mark_num);
2138+ mvprintw(y, (maxx-22)/2+2, "progress");
2139+ mvprintw(y+1, (maxx-22)/2+1, "(%d/%d) files", gProgressMark, mark_num);
21672140 }
21682141
21692142 BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
@@ -2172,7 +2145,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
21722145
21732146 BOOL raw_mode = mis_raw_mode();
21742147 if(!raw_mode) {
2175- minitscr();
2148+ xinitscr();
21762149 }
21772150
21782151 BOOL preserve = sCommand_option_item(command, "-p");
@@ -2207,7 +2180,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
22072180 snprintf(buf, 128, "mcp: making directory err(%s)", distination);
22082181 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
22092182 if(!raw_mode) {
2210- mendwin();
2183+ endwin();
22112184 }
22122185 return FALSE;
22132186 }
@@ -2217,7 +2190,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
22172190 snprintf(buf, 128, "mcp: destination err(%s)", distination);
22182191 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
22192192 if(!raw_mode) {
2220- mendwin();
2193+ endwin();
22212194 }
22222195 return FALSE;
22232196 }
@@ -2230,7 +2203,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
22302203 snprintf(buf, 128, "mcp: distination is not directory");
22312204 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
22322205 if(!raw_mode) {
2233- mendwin();
2206+ endwin();
22342207 }
22352208 return FALSE;
22362209 }
@@ -2264,7 +2237,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
22642237
22652238 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
22662239 //draw_progress_box(mark_file_num);
2267- mrefresh();
2240+ refresh();
22682241
22692242 if(!file_copy(source, distination, FALSE, preserve))
22702243 {
@@ -2282,7 +2255,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
22822255 /*
22832256 mclear();
22842257 view();
2285- mrefresh();
2258+ refresh();
22862259 */
22872260
22882261 dir = filer_dir(0);
@@ -2300,7 +2273,7 @@ BOOL cmd_mcp(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23002273 }
23012274
23022275 if(!raw_mode) {
2303- mendwin();
2276+ endwin();
23042277 }
23052278
23062279 return TRUE;
@@ -2312,7 +2285,7 @@ BOOL cmd_mbackup(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23122285
23132286 BOOL raw_mode = mis_raw_mode();
23142287 if(!raw_mode) {
2315- minitscr();
2288+ xinitscr();
23162289 }
23172290
23182291 BOOL preserve = sCommand_option_item(command, "-p");
@@ -2333,7 +2306,7 @@ BOOL cmd_mbackup(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23332306 if(access(distination, F_OK) == 0) {
23342307 err_msg("distination exists", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
23352308 if(!raw_mode) {
2336- mendwin();
2309+ endwin();
23372310 }
23382311 return FALSE;
23392312 }
@@ -2356,7 +2329,7 @@ BOOL cmd_mbackup(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23562329 snprintf(buf, 128, "%s doesn't exist", fname);
23572330 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
23582331 if(!raw_mode) {
2359- mendwin();
2332+ endwin();
23602333 }
23612334 return FALSE;
23622335 }
@@ -2366,12 +2339,12 @@ BOOL cmd_mbackup(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23662339
23672340 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
23682341 //draw_progress_box(mark_file_num);
2369- mrefresh();
2342+ refresh();
23702343
23712344 if(!file_copy(source, distination, FALSE, preserve)) {
23722345 err_msg("", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
23732346 if(!raw_mode) {
2374- mendwin();
2347+ endwin();
23752348 }
23762349 return FALSE;
23772350 }
@@ -2387,7 +2360,7 @@ BOOL cmd_mbackup(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23872360 }
23882361
23892362 if(!raw_mode) {
2390- mendwin();
2363+ endwin();
23912364 }
23922365 return TRUE;
23932366 }
@@ -2398,7 +2371,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
23982371
23992372 BOOL raw_mode = mis_raw_mode();
24002373 if(!raw_mode) {
2401- minitscr();
2374+ xinitscr();
24022375 }
24032376
24042377 BOOL force = sCommand_option_item(command, "-f");
@@ -2440,7 +2413,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
24402413 snprintf(buf, 128, "mmv: making directory err(%s)", distination);
24412414 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
24422415 if(!raw_mode) {
2443- mendwin();
2416+ endwin();
24442417 }
24452418 return FALSE;
24462419 }
@@ -2450,7 +2423,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
24502423 snprintf(buf, 128, "mmv: destination err(%s)", distination);
24512424 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
24522425 if(!raw_mode) {
2453- mendwin();
2426+ endwin();
24542427 }
24552428 return FALSE;
24562429 }
@@ -2461,7 +2434,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
24612434 if(stat(distination, &dstat) < 0 || !S_ISDIR(dstat.st_mode)) {
24622435 err_msg("mmv: distination is not directory", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
24632436 if(!raw_mode) {
2464- mendwin();
2437+ endwin();
24652438 }
24662439 return FALSE;
24672440 }
@@ -2495,7 +2468,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
24952468
24962469 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
24972470 //draw_progress_box(mark_file_num);
2498- mrefresh();
2471+ refresh();
24992472
25002473 if(!file_copy(source, distination, TRUE, preserve)) {
25012474 break;
@@ -2512,7 +2485,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
25122485 /*
25132486 mclear();
25142487 view();
2515- mrefresh();
2488+ refresh();
25162489 */
25172490
25182491 (void)filer_reread(0);
@@ -2523,7 +2496,7 @@ BOOL cmd_mmv(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
25232496 }
25242497
25252498 if(!raw_mode) {
2526- mendwin();
2499+ endwin();
25272500 }
25282501 return TRUE;
25292502 }
@@ -2534,14 +2507,14 @@ BOOL cmd_mrm(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
25342507
25352508 BOOL raw_mode = mis_raw_mode();
25362509 if(!raw_mode) {
2537- minitscr();
2510+ xinitscr();
25382511 }
25392512
25402513 if(!mis_raw_mode()) {
25412514 err_msg("invalid terminal setting. not raw mode", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
25422515
25432516 if(!raw_mode) {
2544- mendwin();
2517+ endwin();
25452518 }
25462519 return FALSE;
25472520 }
@@ -2578,7 +2551,7 @@ BOOL cmd_mrm(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
25782551
25792552 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
25802553 //draw_progress_box(mark_file_num);
2581- mrefresh();
2554+ refresh();
25822555
25832556 if(!file_remove(source, FALSE, TRUE)) {
25842557 break;
@@ -2596,7 +2569,7 @@ BOOL cmd_mrm(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
25962569 /*
25972570 mclear();
25982571 view();
2599- mrefresh();
2572+ refresh();
26002573 */
26012574
26022575 (void)filer_reread(0);
@@ -2606,7 +2579,7 @@ BOOL cmd_mrm(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
26062579 }
26072580
26082581 if(!raw_mode) {
2609- mendwin();
2582+ endwin();
26102583 }
26112584 return TRUE;
26122585 }
@@ -2617,7 +2590,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
26172590
26182591 BOOL raw_mode = mis_raw_mode();
26192592 if(!raw_mode) {
2620- minitscr();
2593+ xinitscr();
26212594 }
26222595
26232596 BOOL force = sCommand_option_item(command, "-f");
@@ -2667,7 +2640,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
26672640 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
26682641
26692642 if(!raw_mode) {
2670- mendwin();
2643+ endwin();
26712644 }
26722645 return FALSE;
26732646 }
@@ -2678,7 +2651,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
26782651 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
26792652
26802653 if(!raw_mode) {
2681- mendwin();
2654+ endwin();
26822655 }
26832656 return FALSE;
26842657 }
@@ -2690,7 +2663,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
26902663 err_msg("mmv: distination is not directory", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
26912664
26922665 if(!raw_mode) {
2693- mendwin();
2666+ endwin();
26942667 }
26952668 return FALSE;
26962669 }
@@ -2724,7 +2697,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
27242697
27252698 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
27262699 //draw_progress_box(mark_file_num);
2727- mrefresh();
2700+ refresh();
27282701
27292702 if(!file_copy(source, distination, TRUE, preserve)) {
27302703 break;
@@ -2741,7 +2714,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
27412714 /*
27422715 mclear();
27432716 view();
2744- mrefresh();
2717+ refresh();
27452718 */
27462719
27472720 (void)filer_reread(0);
@@ -2752,7 +2725,7 @@ BOOL cmd_mtrashbox(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
27522725 }
27532726
27542727 if(!raw_mode) {
2755- mendwin();
2728+ endwin();
27562729 }
27572730 return TRUE;
27582731 }
@@ -2763,7 +2736,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
27632736
27642737 BOOL raw_mode = mis_raw_mode();
27652738 if(!raw_mode) {
2766- minitscr();
2739+ xinitscr();
27672740 }
27682741
27692742 if(command->mArgsNumRuntime == 2) {
@@ -2791,7 +2764,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
27912764 snprintf(buf, 128, "mcp: making directory err(%s)", distination);
27922765 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
27932766 if(!raw_mode) {
2794- mendwin();
2767+ endwin();
27952768 }
27962769 return FALSE;
27972770 }
@@ -2801,7 +2774,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
28012774 snprintf(buf, 128, "mcp: destination err(%s)", distination);
28022775 err_msg(buf, runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
28032776 if(!raw_mode) {
2804- mendwin();
2777+ endwin();
28052778 }
28062779 return FALSE;
28072780 }
@@ -2812,7 +2785,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
28122785 if(stat(distination, &dstat) < 0 || !S_ISDIR(dstat.st_mode)) {
28132786 err_msg("mcp: distination is not directory", runinfo->mSName, runinfo->mSLine, command->mArgs[0]);
28142787 if(!raw_mode) {
2815- mendwin();
2788+ endwin();
28162789 }
28172790 return FALSE;
28182791 }
@@ -2846,7 +2819,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
28462819
28472820 view(); // これはコピーの上書き確認のときに正しい位置にカーソルがある必要があったり、*印の描写などが正しく描写されている必要があるので必要
28482821 //draw_progress_box(mark_file_num);
2849- mrefresh();
2822+ refresh();
28502823
28512824 char dfile[PATH_MAX];
28522825 xstrncpy(dfile, distination, PATH_MAX);
@@ -2868,7 +2841,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
28682841 /*
28692842 mclear();
28702843 view();
2871- mrefresh();
2844+ refresh();
28722845 */
28732846
28742847 dir = filer_dir(0);
@@ -2886,7 +2859,7 @@ BOOL cmd_mln(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
28862859 }
28872860
28882861 if(!raw_mode) {
2889- mendwin();
2862+ endwin();
28902863 }
28912864
28922865 return TRUE;
@@ -2900,7 +2873,7 @@ BOOL cmd_mchoise(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
29002873 BOOL make_raw = FALSE;
29012874 if(!mis_raw_mode()) {
29022875 make_raw = TRUE;
2903- minitscr();
2876+ xinitscr();
29042877 }
29052878 char* msg = command->mArgsRuntime[1];
29062879 char** str = MALLOC(sizeof(char*)*command->mArgsNumRuntime);
@@ -2935,7 +2908,7 @@ BOOL cmd_mchoise(sObject* nextin, sObject* nextout, sRunInfo* runinfo)
29352908 runinfo->mRCode = 0;
29362909
29372910 if(make_raw) {
2938- mendwin();
2911+ endwin();
29392912 }
29402913
29412914 const int maxy = mgetmaxy();
@@ -3105,7 +3078,6 @@ void commands_init()
31053078
31063079 xyzsh_add_inner_command(gMFiler4, "quit", cmd_quit, 0);
31073080 xyzsh_add_inner_command(gMFiler4, "keycommand", cmd_keycommand, 0);
3108- xyzsh_add_inner_command(gMFiler4, "keymap", cmd_keymap, 0);
31093081 xyzsh_add_inner_command(gMFiler4, "cursor_move", cmd_cursor_move, 1, "-d");
31103082 xyzsh_add_inner_command(gMFiler4, "mcd", cmd_mcd, 1, "-d");
31113083 xyzsh_add_inner_command(gMFiler4, "file_num", cmd_file_num, 1, "-d");
--- a/src/common.h
+++ b/src/common.h
@@ -124,6 +124,8 @@ void ISearchClear();
124124 ///////////////////////////////////////////////////
125125 // gui.c
126126 ///////////////////////////////////////////////////
127+int xgetch(int* meta);
128+void xinitscr();
127129 char* choise(char* msg, char* str[], int len, int cancel);
128130 void merr_msg(char* msg, ...);
129131 void msg_nonstop(char* msg, ...);
--- a/src/file.c
+++ b/src/file.c
@@ -35,7 +35,7 @@ void file_copy_override_box(char* spath, struct stat stat_, char* dfile, struct
3535 if(year < 0) year+=100;
3636 while(year > 100) year-=100;
3737
38- mmvprintw(y+1, 5, "source");
38+ mvprintw(y+1, 5, "source");
3939 char tmp[PATH_MAX];
4040 xstrncpy(tmp, spath, PATH_MAX);
4141 if(S_ISDIR(stat_.st_mode)) {
@@ -52,9 +52,9 @@ void file_copy_override_box(char* spath, struct stat stat_, char* dfile, struct
5252 }
5353
5454
55- mmvprintw(y+2, 5, "path: %s", tmp);
56- mmvprintw(y+3, 5, "size: %d", stat_.st_size);
57- mmvprintw(y+4, 5, "time: %02d-%02d-%02d %02d:%02d", year, tm_->tm_mon+1
55+ mvprintw(y+2, 5, "path: %s", tmp);
56+ mvprintw(y+3, 5, "size: %d", stat_.st_size);
57+ mvprintw(y+4, 5, "time: %02d-%02d-%02d %02d:%02d", year, tm_->tm_mon+1
5858 , tm_->tm_mday, tm_->tm_hour, tm_->tm_min);
5959
6060 t = dfstat.st_mtime;
@@ -64,7 +64,7 @@ void file_copy_override_box(char* spath, struct stat stat_, char* dfile, struct
6464 if(year < 0) year+=100;
6565 while(year > 100) year-=100;
6666
67- mmvprintw(y+6, 5, "distination");
67+ mvprintw(y+6, 5, "distination");
6868 char tmp2[PATH_MAX];
6969 xstrncpy(tmp2, dfile, PATH_MAX);
7070 if(S_ISDIR(dfstat.st_mode)) {
@@ -80,9 +80,9 @@ void file_copy_override_box(char* spath, struct stat stat_, char* dfile, struct
8080 xstrncat(tmp, "@", PATH_MAX);
8181 }
8282
83- mmvprintw(y+7, 5, "path: %s", tmp2);
84- mmvprintw(y+8, 5, "size: %d", dfstat.st_size);
85- mmvprintw(y+9, 5, "time: %02d-%02d-%02d %02d:%02d", year, tm_->tm_mon+1
83+ mvprintw(y+7, 5, "path: %s", tmp2);
84+ mvprintw(y+8, 5, "size: %d", dfstat.st_size);
85+ mvprintw(y+9, 5, "time: %02d-%02d-%02d %02d:%02d", year, tm_->tm_mon+1
8686 , tm_->tm_mday, tm_->tm_hour, tm_->tm_min);
8787 }
8888
@@ -112,9 +112,9 @@ BOOL file_copy(char* spath, char* dpath, BOOL move, BOOL preserve)
112112
113113 if(FD_ISSET(0, &mask)) {
114114 int meta;
115- int key = mgetch(&meta);
115+ int key = xgetch(&meta);
116116
117- if(key == 3 || key == 7 || key == 27) { // CTRL-G and CTRL-C
117+ if(key == 3 || key == 7 || key == 27) { // CTRL-G and CTRL-C
118118 merr_msg("file_copy: canceled");
119119 return FALSE;
120120 }
@@ -262,9 +262,9 @@ override_select_str:
262262
263263 gView = NULL;
264264
265- mclear();
265+ clear();
266266 view();
267- mrefresh();
267+ refresh();
268268
269269 switch(ret) {
270270 case 0:
@@ -499,9 +499,9 @@ override_select_str2:
499499
500500 gView = NULL;
501501
502- mclear();
502+ clear();
503503 view();
504- mrefresh();
504+ refresh();
505505
506506 switch(ret) {
507507 case 0:
@@ -640,9 +640,9 @@ file_copy:
640640
641641 if(FD_ISSET(0, &mask)) {
642642 int meta;
643- int key = mgetch(&meta);
643+ int key = xgetch(&meta);
644644
645- if(key == 3 || key == 7 || key == 27) { // CTRL-G and CTRL-C
645+ if(key == 3 || key == 7 || key == 27) { // CTRL-G and CTRL-C
646646 merr_msg("file_copy: canceled");
647647 close(fd);
648648 close(fd2);
@@ -1055,9 +1055,9 @@ BOOL file_remove(char* path, BOOL no_ctrl_c, BOOL message)
10551055
10561056 if(FD_ISSET(0, &mask)) {
10571057 int meta;
1058- int key = mgetch(&meta);
1058+ int key = xgetch(&meta);
10591059
1060- if(key == 3 || key == 7 || key == 27) { // CTRL-C and CTRL-G
1060+ if(key == 3 || key == 7 || key == 27) { // CTRL-C and CTRL-G
10611061 return FALSE;
10621062 }
10631063 }
--- a/src/filer.c
+++ b/src/filer.c
@@ -1122,9 +1122,9 @@ void filer_input(int meta, int key)
11221122 const int maxy = mgetmaxy();
11231123 mclear_online(maxy-1);
11241124 mclear_online(maxy-2);
1125- mrefresh();
1125+ refresh();
11261126 mmove_immediately(maxy-2, 0);
1127- mendwin();
1127+ endwin();
11281128
11291129 mreset_tty();
11301130
@@ -1132,7 +1132,7 @@ void filer_input(int meta, int key)
11321132 if(xyzsh_run(&rcode, command, "external", NULL, gStdin, gStdout, 0, NULL, gMFiler4))
11331133 {
11341134 if(rcode == 0) {
1135- minitscr();
1135+ xinitscr();
11361136
11371137 filer_reread(0);
11381138 filer_reread(1);
@@ -1144,10 +1144,9 @@ void filer_input(int meta, int key)
11441144
11451145 printf("\nHIT ANY KEY\n");
11461146
1147- minitscr();
1147+ xinitscr();
11481148
1149- int meta;
1150- (void)mgetch(&meta);
1149+ (void)getch();
11511150 }
11521151 }
11531152 else {
@@ -1155,10 +1154,9 @@ void filer_input(int meta, int key)
11551154 fprintf(stderr, "runtime err\n%s", string_c_str(gErrMsg));
11561155 printf("\nHIT ANY KEY\n");
11571156
1158- minitscr();
1157+ xinitscr();
11591158
1160- int meta;
1161- (void)mgetch(&meta);
1159+ (void)getch();
11621160 }
11631161 }
11641162 else {
@@ -1821,25 +1819,25 @@ void filer_view(int dir)
18211819 char* env_color_dir = getenv("COLOR_DIR");
18221820 int color_dir = 0;
18231821 if(env_color_dir) {
1824- color_dir = atoi(env_color_dir);
1822+ color_dir = atoi(env_color_dir) | A_BOLD;
18251823 }
18261824
18271825 char* env_color_exe = getenv("COLOR_EXE");
18281826 int color_exe = 0;
18291827 if(env_color_exe) {
1830- color_exe = atoi(env_color_exe);
1828+ color_exe = atoi(env_color_exe)| A_BOLD;
18311829 }
18321830
18331831 char* env_color_link = getenv("COLOR_LINK");
18341832 int color_link = 0;
18351833 if(env_color_link) {
1836- color_link = atoi(env_color_link);
1834+ color_link = atoi(env_color_link)| A_BOLD;
18371835 }
18381836
18391837 char* env_color_mark = getenv("COLOR_MARK");
18401838 int color_mark = 0;
18411839 if(env_color_mark) {
1842- color_mark = atoi(env_color_mark);
1840+ color_mark = atoi(env_color_mark)| A_BOLD;
18431841 }
18441842
18451843 const int maxx = mgetmaxx();
@@ -1881,18 +1879,18 @@ void filer_view(int dir)
18811879
18821880 const int len = strlen(path);
18831881 if(len < maxx-4) {
1884- mattron(kCABold);
1885- mmvprintw(0 + dstack_exist, 2, "%s", path);
1886- mattroff();
1882+ attron(A_BOLD);
1883+ mvprintw(0 + dstack_exist, 2, "%s", path);
1884+ attroff(A_BOLD);
18871885 }
18881886 else {
18891887 char buf[PATH_MAX];
18901888
18911889 str_cut3(gKanjiCode, path, maxx-4, buf, PATH_MAX);
18921890
1893- mattron(kCABold);
1894- mmvprintw(0 + dstack_exist, 2, "%s", buf);
1895- mattroff();
1891+ attron(A_BOLD);
1892+ mvprintw(0 + dstack_exist, 2, "%s", buf);
1893+ attroff(A_BOLD);
18961894 }
18971895
18981896 int i;
@@ -1909,7 +1907,7 @@ void filer_view(int dir)
19091907 int green = -1;
19101908 int blue = -1;
19111909 if(self->mCursor == i && self->mActive) {
1912- attr |= kCAReverse;
1910+ attr |= A_REVERSE;
19131911 }
19141912
19151913 if(S_ISDIR(file->mStat.st_mode)) {
@@ -1945,27 +1943,22 @@ void filer_view(int dir)
19451943 attr |= color_mark;
19461944 }
19471945
1948- mattron(attr);
1949-/*
1950- if(red != -1) {
1951- mattron_256color(red, green, blue);
1952- }
1953-*/
1946+ attron(attr);
19541947 if(file->mMark) {
1955- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, 1, "*");
1948+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, 1, "*");
19561949 }
19571950 else {
1958- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, 1, " ");
1951+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, 1, " ");
19591952 }
19601953
19611954 if(S_ISDIR(file->mStat.st_mode) || !view_divide_ext) {
1962- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, 2, "%s%s", fname,buf);
1955+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, 2, "%s%s", fname,buf);
19631956 }
19641957 else {
1965- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, 2, "%s%c%-4s%s", fname, dot, ext,buf);
1958+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, 2, "%s%c%-4s%s", fname, dot, ext,buf);
19661959 }
19671960
1968- mattroff();
1961+ attroff(attr);
19691962 }
19701963
19711964 char size[256];
@@ -1973,7 +1966,7 @@ void filer_view(int dir)
19731966 if(page_view_way) {
19741967 const int p = (((float)self->mCursor+1)
19751968 /((float)vector_count(self->mFiles)))*100;
1976- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
1969+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
19771970 , "(%d/%d)-%sbytes-(%3d%%)", filer_mark_file_num(dir)
19781971 , vector_count(self->mFiles)-1, size, p);
19791972 }
@@ -1981,7 +1974,7 @@ void filer_view(int dir)
19811974 const int cur_page = self->mCursor/filer_line_max(adir()) + 1;
19821975 const int max_page = vector_count(self->mFiles)/filer_line_max(adir()) + 1;
19831976
1984- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
1977+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
19851978 , "(%d/%d)-%sbytes-(%d/%d)", filer_mark_file_num(dir)
19861979 , vector_count(self->mFiles)-1, size, cur_page, max_page);
19871980 }
@@ -2008,18 +2001,18 @@ void filer_view(int dir)
20082001
20092002 const int len = strlen(path);
20102003 if(len < maxx-4) {
2011- mattron(kCABold);
2012- mmvprintw(0 + dstack_exist, 2, "%s", path);
2013- mattroff();
2004+ attron(A_BOLD);
2005+ mvprintw(0 + dstack_exist, 2, "%s", path);
2006+ attroff(A_BOLD);
20142007 }
20152008 else {
20162009 char buf[PATH_MAX];
20172010
20182011 str_cut3(gKanjiCode, path, maxx-4, buf, PATH_MAX);
20192012
2020- mattron(kCABold);
2021- mmvprintw(0 + dstack_exist, 2, "%s", buf);
2022- mattroff();
2013+ attron(A_BOLD);
2014+ mvprintw(0 + dstack_exist, 2, "%s", buf);
2015+ attroff(A_BOLD);
20232016 }
20242017 int i;
20252018 for(i=self->mScrollTop;
@@ -2036,7 +2029,7 @@ void filer_view(int dir)
20362029 int blue = -1;
20372030
20382031 if(self->mCursor == i && self->mActive) {
2039- attr |= kCAReverse;
2032+ attr |= A_REVERSE;
20402033 }
20412034
20422035 if(S_ISDIR(file->mStat.st_mode)) {
@@ -2079,27 +2072,22 @@ void filer_view(int dir)
20792072 attr |= color_mark;
20802073 }
20812074
2082- mattron(attr);
2083-/*
2084- if(red != -1) {
2085- mattron_256color(red, green, blue);
2086- }
2087-*/
2075+ attron(attr);
20882076 if(file->mMark) {
2089- mmvprintw(y, x, "*");
2077+ mvprintw(y, x, "*");
20902078 }
20912079 else {
2092- mmvprintw(y, x, " ");
2080+ mvprintw(y, x, " ");
20932081 }
20942082
20952083 if(S_ISDIR(file->mStat.st_mode) || !view_divide_ext) {
2096- mmvprintw(y, x+1, "%s%s", fname,buf);
2084+ mvprintw(y, x+1, "%s%s", fname,buf);
20972085 }
20982086 else {
2099- mmvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext,buf);
2087+ mvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext,buf);
21002088 }
21012089
2102- mattroff();
2090+ attroff(attr);
21032091 }
21042092
21052093 char size[256];
@@ -2108,7 +2096,7 @@ void filer_view(int dir)
21082096 if(page_view_way) {
21092097 const int p = (((float)self->mCursor+1)/((float)vector_count(self->mFiles)))*100;
21102098
2111- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2099+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
21122100 , "(%d/%d)-%sbytes-(%3d%%)"
21132101 , filer_mark_file_num(dir), vector_count(self->mFiles)-1, size, p);
21142102 }
@@ -2116,7 +2104,7 @@ void filer_view(int dir)
21162104 const int cur_page = self->mCursor/(filer_line_max(adir())*2) + 1;
21172105 const int max_page = vector_count(self->mFiles)/(filer_line_max(adir())*2) + 1;
21182106
2119- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2107+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
21202108 , "(%d/%d)-%sbytes-(%d/%d)", filer_mark_file_num(dir)
21212109 , vector_count(self->mFiles)-1, size, cur_page, max_page);
21222110 }
@@ -2143,18 +2131,18 @@ void filer_view(int dir)
21432131
21442132 const int len = strlen(path);
21452133 if(len < maxx-4) {
2146- mattron(kCABold);
2147- mmvprintw(0 + dstack_exist, 2, "%s", path);
2148- mattroff();
2134+ attron(A_BOLD);
2135+ mvprintw(0 + dstack_exist, 2, "%s", path);
2136+ attroff(A_BOLD);
21492137 }
21502138 else {
21512139 char buf[PATH_MAX];
21522140
21532141 str_cut3(gKanjiCode, path, maxx-4, buf, PATH_MAX);
21542142
2155- mattron(kCABold);
2156- mmvprintw(0 + dstack_exist, 2, "%s", buf);
2157- mattroff();
2143+ attron(A_BOLD);
2144+ mvprintw(0 + dstack_exist, 2, "%s", buf);
2145+ attroff(A_BOLD);
21582146 }
21592147
21602148 int i;
@@ -2171,7 +2159,7 @@ void filer_view(int dir)
21712159 int blue = -1;
21722160
21732161 if(self->mCursor == i && self->mActive) {
2174- attr |= kCAReverse;
2162+ attr |= A_REVERSE;
21752163 }
21762164
21772165 if(S_ISDIR(file->mStat.st_mode)) {
@@ -2211,30 +2199,25 @@ void filer_view(int dir)
22112199 + 1 + dstack_exist;
22122200
22132201 if(file->mMark) {
2214- attr != kCABold;
2202+ attr |= A_BOLD;
22152203 }
22162204
2217- mattron(attr);
2218-/*
2219- if(red != -1) {
2220- mattron_256color(red, green, blue);
2221- }
2222-*/
2205+ attron(attr);
22232206 if(file->mMark) {
2224- mmvprintw(y, x, "*");
2207+ mvprintw(y, x, "*");
22252208 }
22262209 else {
2227- mmvprintw(y, x, " ");
2210+ mvprintw(y, x, " ");
22282211 }
22292212
22302213 if(S_ISDIR(file->mStat.st_mode) || !view_divide_ext) {
2231- mmvprintw(y, x+1, "%s%s", fname,buf);
2214+ mvprintw(y, x+1, "%s%s", fname,buf);
22322215 }
22332216 else {
2234- mmvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext,buf);
2217+ mvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext,buf);
22352218 }
22362219
2237- mattroff();
2220+ attroff(attr);
22382221 }
22392222
22402223 char size[256];
@@ -2243,14 +2226,14 @@ void filer_view(int dir)
22432226 if(page_view_way) {
22442227 const int p = (((float)self->mCursor+1)/((float)vector_count(self->mFiles)))*100;
22452228
2246- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2229+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
22472230 , "(%d/%d)-%sbytes-(%3d%%)", filer_mark_file_num(dir), vector_count(self->mFiles)-1, size, p);
22482231 }
22492232 else {
22502233 const int cur_page = self->mCursor/(filer_line_max(adir())*3) + 1;
22512234 const int max_page = vector_count(self->mFiles)/(filer_line_max(adir())*3) + 1;
22522235
2253- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2236+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
22542237 , "(%d/%d)-%sbytes-(%d/%d)", filer_mark_file_num(dir)
22552238 , vector_count(self->mFiles)-1, size, cur_page, max_page);
22562239 }
@@ -2278,18 +2261,18 @@ void filer_view(int dir)
22782261
22792262 const int len = strlen(path);
22802263 if(len < maxx-4) {
2281- mattron(kCABold);
2282- mmvprintw(0 + dstack_exist, 2, "%s", path);
2283- mattroff();
2264+ attron(A_BOLD);
2265+ mvprintw(0 + dstack_exist, 2, "%s", path);
2266+ attroff(A_BOLD);
22842267 }
22852268 else {
22862269 char buf[PATH_MAX];
22872270
22882271 str_cut3(gKanjiCode, path, maxx-4, buf, PATH_MAX);
22892272
2290- mattron(kCABold);
2291- mmvprintw(0 + dstack_exist, 2, "%s", buf);
2292- mattroff();
2273+ attron(A_BOLD);
2274+ mvprintw(0 + dstack_exist, 2, "%s", buf);
2275+ attroff(A_BOLD);
22932276 }
22942277
22952278 int i;
@@ -2306,7 +2289,7 @@ void filer_view(int dir)
23062289 int blue = -1;
23072290
23082291 if(self->mCursor == i && self->mActive) {
2309- attr |= kCAReverse;
2292+ attr |= A_REVERSE;
23102293 }
23112294
23122295 if(S_ISDIR(file->mStat.st_mode)) {
@@ -2338,15 +2321,10 @@ void filer_view(int dir)
23382321 make_file_name(file, fname, 1024, ext, PATH_MAX, &dot, name_len);
23392322
23402323 if(file->mMark) {
2341- attr != kCABold;
2324+ attr |= A_BOLD;
23422325 }
23432326
2344- mattron(attr);
2345-/*
2346- if(red != -1) {
2347- mattron_256color(red, green, blue);
2348- }
2349-*/
2327+ attron(attr);
23502328 const int x = (i-self->mScrollTop)
23512329 /(maxy-kMaxYMinus-dstack_exist-jobs_exist)
23522330 *(maxx/5) + 1;
@@ -2354,19 +2332,19 @@ void filer_view(int dir)
23542332 %(maxy-kMaxYMinus-dstack_exist-jobs_exist)
23552333 + 1 + dstack_exist;
23562334 if(file->mMark) {
2357- mmvprintw(y, x, "*");
2335+ mvprintw(y, x, "*");
23582336 }
23592337 else {
2360- mmvprintw(y, x, " ");
2338+ mvprintw(y, x, " ");
23612339 }
23622340 if(S_ISDIR(file->mStat.st_mode) || !view_divide_ext) {
2363- mmvprintw(y, x+1, "%s%s", fname, buf);
2341+ mvprintw(y, x+1, "%s%s", fname, buf);
23642342 }
23652343 else {
2366- mmvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext, buf);
2344+ mvprintw(y, x+1, "%s%c%-4s%s", fname, dot, ext, buf);
23672345 }
23682346
2369- mattroff();
2347+ attroff(attr);
23702348 }
23712349
23722350 char size[256];
@@ -2375,14 +2353,14 @@ void filer_view(int dir)
23752353 if(page_view_way) {
23762354 const int p = (((float)self->mCursor+1)/((float)vector_count(self->mFiles)))*100;
23772355
2378- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2356+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
23792357 , "(%d/%d)-%sbytes-(%3d%%)", filer_mark_file_num(dir), vector_count(self->mFiles)-1, size, p);
23802358 }
23812359 else {
23822360 const int cur_page = self->mCursor/(filer_line_max(adir())*5) + 1;
23832361 const int max_page = vector_count(self->mFiles)/(filer_line_max(adir())*5) + 1;
23842362
2385- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
2363+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, 2
23862364 , "(%d/%d)-%sbytes-(%d/%d)", filer_mark_file_num(dir)
23872365 , vector_count(self->mFiles)-1, size, cur_page, max_page);
23882366 }
@@ -2428,18 +2406,18 @@ void filer_view(int dir)
24282406
24292407 const int len = strlen(path);
24302408 if(len < maxx/2-5) {
2431- if(self->mActive) mattron(kCABold);
2432- mmvprintw(0 + dstack_exist, x+2, "%s", path);
2433- if(self->mActive) mattroff();
2409+ if(self->mActive) attron(A_BOLD);
2410+ mvprintw(0 + dstack_exist, x+2, "%s", path);
2411+ if(self->mActive) attroff(A_BOLD);
24342412 }
24352413 else {
24362414 char buf[PATH_MAX];
24372415
24382416 str_cut3(gKanjiCode, path, maxx/2-5, buf, PATH_MAX);
24392417
2440- if(self->mActive) mattron(kCABold);
2441- mmvprintw(0 + dstack_exist, x+2, "%s", buf);
2442- if(self->mActive) mattroff();
2418+ if(self->mActive) attron(A_BOLD);
2419+ mvprintw(0 + dstack_exist, x+2, "%s", buf);
2420+ if(self->mActive) attroff(A_BOLD);
24432421 }
24442422
24452423 int i;
@@ -2456,7 +2434,7 @@ void filer_view(int dir)
24562434 int blue = -1;
24572435
24582436 if(self->mCursor == i && self->mActive) {
2459- attr |= kCAReverse;
2437+ attr |= A_REVERSE;
24602438 }
24612439
24622440 if(S_ISDIR(file->mStat.st_mode)) {
@@ -2492,45 +2470,40 @@ void filer_view(int dir)
24922470 attr |= color_mark;
24932471 }
24942472
2495- mattron(attr);
2496-/*
2497- if(red != -1) {
2498- mattron_256color(red, green, blue);
2499- }
2500-*/
2473+ attron(attr);
25012474 if(file->mMark) {
2502- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, x+1, "*");
2475+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, x+1, "*");
25032476 }
25042477 else {
2505- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, x+1, " ");
2478+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, x+1, " ");
25062479 }
25072480
25082481 if(S_ISDIR(file->mStat.st_mode) || !view_divide_ext) {
2509- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, x+2, "%s%s", fname,buf);
2482+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, x+2, "%s%s", fname,buf);
25102483 }
25112484 else {
2512- mmvprintw(i-self->mScrollTop + 1 + dstack_exist, x+2, "%s%c%-4s%s", fname, dot, ext,buf);
2485+ mvprintw(i-self->mScrollTop + 1 + dstack_exist, x+2, "%s%c%-4s%s", fname, dot, ext,buf);
25132486 }
25142487
2515- mattroff();
2488+ attroff(attr);
25162489 }
25172490
25182491 char size[256];
25192492 make_size_str2(size, filer_mark_file_size(dir));
25202493
2521- mmvprintw(maxy - kMaxYMinus+1-jobs_exist, x + 2
2494+ mvprintw(maxy - kMaxYMinus+1-jobs_exist, x + 2
25222495 , "(%d/%d)-%sbytes", filer_mark_file_num(dir), vector_count(self->mFiles)-1, size);
25232496
25242497 if(self->mActive) {
25252498 if(page_view_way) {
25262499 const int p = (((float)self->mCursor+1)/((float)vector_count(self->mFiles)))*100;
2527- mprintw("-(%3d%%)", p);
2500+ printw("-(%3d%%)", p);
25282501 }
25292502 else {
25302503 const int cur_page = self->mCursor/filer_line_max(adir()) + 1;
25312504 const int max_page = vector_count(self->mFiles)/(filer_line_max(adir())) + 1;
25322505
2533- mprintw("-(%d/%d)", cur_page, max_page);
2506+ printw("-(%d/%d)", cur_page, max_page);
25342507 }
25352508 }
25362509 }
@@ -2567,7 +2540,7 @@ void filer_view(int dir)
25672540 char buf[256];
25682541 snprintf(buf, 256, "[%d.%s]", i, buf2);
25692542
2570- mmvprintw(0, width * (i-2), "%s", buf);
2543+ mvprintw(0, width * (i-2), "%s", buf);
25712544 }
25722545 }
25732546 }
--- a/src/gui.c
+++ b/src/gui.c
@@ -12,6 +12,82 @@
1212 #include <ncurses/ncurses.h>
1313 #endif
1414
15+void xinitscr()
16+{
17+ initscr();
18+ raw();
19+ keypad(stdscr, TRUE);
20+
21+ int background = COLOR_BLACK;
22+
23+ if(has_colors()) {
24+ if(start_color() == OK) {
25+ init_pair(1, COLOR_WHITE, background);
26+ init_pair(2, COLOR_BLUE, background);
27+ init_pair(3, COLOR_CYAN, background);
28+ init_pair(4, COLOR_GREEN, background);
29+ init_pair(5, COLOR_YELLOW, background);
30+ init_pair(6, COLOR_MAGENTA, background);
31+ init_pair(7, COLOR_RED, background);
32+
33+ setenv("HAS_COLOR", "1", 1);
34+ }
35+ else {
36+ setenv("HAS_COLOR", "0", 1);
37+ }
38+ }
39+ else {
40+ setenv("HAS_COLOR", "0", 1);
41+ }
42+}
43+
44+int xgetch(int* meta)
45+{
46+ int key = getch();
47+
48+ if(key == 27) {
49+ key = getch();
50+
51+ *meta = 1;
52+ return key;
53+/*
54+ fd_set mask;
55+
56+ FD_ZERO(&mask);
57+ FD_SET(0, &mask);
58+
59+ struct timeval tv;
60+ tv.tv_sec = 0;
61+ tv.tv_usec = 500;
62+
63+ select(5, &mask, NULL, NULL, &tv);
64+
65+ /// キー処理 ///
66+ if(FD_ISSET(0, &mask)) {
67+ key = getch();
68+ *meta = 1;
69+ return key;
70+ }
71+ else {
72+ *meta = 0;
73+ return key;
74+ }
75+*/
76+ }
77+ else {
78+ if(key >= kKeyMetaFirst
79+ && key <= kKeyMetaFirst + 127)
80+ {
81+ *meta = 1;
82+ return key - kKeyMetaFirst;
83+ }
84+ else {
85+ *meta = 0;
86+ return key;
87+ }
88+ }
89+}
90+
1591 ///////////////////////////////////////////////////
1692 // エラーメッセージ表示
1793 ///////////////////////////////////////////////////
@@ -28,15 +104,14 @@ void merr_msg(char* msg, ...)
28104 const int maxx = mgetmaxx();
29105
30106 if(mis_raw_mode()) {
31- mclear();
107+ clear();
32108 view();
33109 mclear_online(maxy-2);
34110 mclear_online(maxy-1);
35- mmvprintw(maxy-2, 0, "%s", msg2);
36- mrefresh();
111+ mvprintw(maxy-2, 0, "%s", msg2);
112+ refresh();
37113
38- int meta;
39- mgetch(&meta);
114+ (void)getch();
40115 }
41116 else {
42117 fprintf(stderr, "%s", msg2);
@@ -68,12 +143,12 @@ void msg_nonstop(char* msg, ...)
68143 const int maxy = mgetmaxy();
69144 const int maxx = mgetmaxx();
70145
71- mclear();
146+ clear();
72147 view();
73148 mclear_online(maxy-2);
74149 mclear_online(maxy-1);
75- mmvprintw(maxy-2, 0, "%s", msg2);
76- mrefresh();
150+ mvprintw(maxy-2, 0, "%s", msg2);
151+ refresh();
77152 }
78153
79154 ///////////////////////////////////////////////////
@@ -88,35 +163,35 @@ char* choise(char* msg, char* str[], int len, int cancel)
88163
89164 while(1) {
90165 /// view ///
91- mclear();
166+ clear();
92167 view();
93168
94169 mclear_online(maxy-2);
95170 mclear_online(maxy-1);
96171
97- mmove(maxy-2, 0);
98- mprintw("%s", msg);
172+ move(maxy-2, 0);
173+ printw("%s", msg);
99174
100- mprintw(" ");
175+ printw(" ");
101176 int i;
102177 for(i=0; i< len; i++) {
103178 if(cursor == i) {
104- mattron(kCAReverse);
105- mprintw("%s", str[i]);
106- mattroff();
107- mprintw(" ");
179+ attron(A_REVERSE);
180+ printw("%s", str[i]);
181+ attroff(A_REVERSE);
182+ printw(" ");
108183 }
109184 else {
110- mprintw("%s ", str[i]);
185+ printw("%s ", str[i]);
111186 }
112187 }
113- mmove(maxy-1, maxx-2);
114- mrefresh();
188+ move(maxy-1, maxx-2);
189+ refresh();
115190
116191
117192 /// input ///
118193 int meta;
119- int key = mgetch(&meta);
194+ int key = xgetch(&meta);
120195 if(key == 10 || key == 13) {
121196 break;
122197 }
@@ -133,7 +208,7 @@ char* choise(char* msg, char* str[], int len, int cancel)
133208 else if(key == 12) { // CTRL-L
134209 mclear_immediately();
135210 }
136- else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
211+ else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
137212 return NULL;
138213 }
139214 else {
@@ -176,18 +251,18 @@ void input_box_view()
176251 mclear_online(maxy-2);
177252 mclear_online(maxy-1);
178253
179- mmvprintw(maxy-2, 0, "%s", gInputBoxMsg);
254+ mvprintw(maxy-2, 0, "%s", gInputBoxMsg);
180255
181- mmove(maxy-1, 0);
256+ move(maxy-1, 0);
182257
183258 const int len = string_length(gInputBoxInput);
184259 int i;
185260 for(i=0; i< len && i<maxx-1; i++) {
186- mprintw("%c", string_c_str(gInputBoxInput)[i]);
261+ printw("%c", string_c_str(gInputBoxInput)[i]);
187262 }
188263
189- //mmove_immediately(maxy -1, gInputBoxCursor);
190- mmove(maxy -1, gInputBoxCursor);
264+ //move_immediately(maxy -1, gInputBoxCursor);
265+ move(maxy -1, gInputBoxCursor);
191266 }
192267
193268 int input_box(char* msg, char* result, int result_size, char* def_input, int def_cursor)
@@ -204,11 +279,12 @@ int input_box(char* msg, char* result, int result_size, char* def_input, int def
204279
205280 while(1) {
206281 input_box_view();
207- mrefresh();
282+ refresh();
208283
209284 /// input ///
210285 int meta;
211- int key = mgetch(&meta);
286+ int key = xgetch(&meta);
287+
212288 if(key == 10 || key == 13) {
213289 result2 = 0;
214290 break;
@@ -324,7 +400,7 @@ int input_box(char* msg, char* result, int result_size, char* def_input, int def
324400 gInputBoxCursor = pos;
325401 }
326402 }
327- else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
403+ else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
328404 result2 = 1;
329405 break;
330406 }
@@ -372,25 +448,25 @@ void select_str_view()
372448 mclear_online(maxy-2);
373449 mclear_online(maxy-1);
374450
375- mmove(maxy-2, 0);
376- mprintw("%s", gSelectStrMsg);
451+ move(maxy-2, 0);
452+ printw("%s", gSelectStrMsg);
377453
378-// mmove(maxy-1, 0);
379- mprintw(" ");
454+// move(maxy-1, 0);
455+ printw(" ");
380456 int i;
381457 for(i=0; i< gSelectStrLen; i++) {
382458 if(gSelectStrCursor == i) {
383- mattron(kCAReverse);
384- mprintw("%s", gSelectStrStr[i]);
385- mattroff();
386- mprintw(" ");
459+ attron(A_REVERSE);
460+ printw("%s", gSelectStrStr[i]);
461+ attroff(A_REVERSE);
462+ printw(" ");
387463 }
388464 else {
389- mprintw("%s ", gSelectStrStr[i]);
465+ printw("%s ", gSelectStrStr[i]);
390466 }
391467 }
392468
393- mmove(maxy-1, maxx-2);
469+ move(maxy-1, maxx-2);
394470 }
395471
396472 int select_str(char* msg, char* str[], int len, int cancel)
@@ -407,11 +483,11 @@ int select_str(char* msg, char* str[], int len, int cancel)
407483 filer_view(0);
408484 filer_view(1);
409485 select_str_view();
410- mrefresh();
486+ refresh();
411487
412488 /// input ///
413489 int meta;
414- int key = mgetch(&meta);
490+ int key = xgetch(&meta);
415491 if(key == 10 || key == 13) {
416492 break;
417493 }
@@ -428,7 +504,7 @@ int select_str(char* msg, char* str[], int len, int cancel)
428504 else if(key == 12) { // CTRL-L
429505 mclear_immediately();
430506 }
431- else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
507+ else if(key == 3 || key == 7 | key == 27) { // CTRL-C -G Escape
432508 gSelectStrCursor = cancel;
433509 break;
434510 }
@@ -461,11 +537,11 @@ int select_str2(char* msg, char* str[], int len, int cancel)
461537
462538 while(1) {
463539 select_str_view();
464- mrefresh();
540+ refresh();
465541
466542 /// input ///
467543 int meta;
468- int key = mgetch(&meta);
544+ int key = xgetch(&meta);
469545 if(key == 10 || key == 13) {
470546 break;
471547 }
@@ -482,7 +558,7 @@ int select_str2(char* msg, char* str[], int len, int cancel)
482558 else if(key == 12) { // CTRL-L
483559 mclear_immediately();
484560 }
485- else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
561+ else if(key == 3 || key == 7 || key == 27) { // CTRL-C -G Escape
486562 gSelectStrCursor = cancel;
487563 break;
488564 }
--- a/src/isearch.c
+++ b/src/isearch.c
@@ -62,7 +62,7 @@ static void mfiler4_migemo_init();
6262 static BOOL is_isearch_char(int key)
6363 {
6464 return key == 9 || (key >= ' ' && key <= '~')
65- && key != '\\';
65+ && key != '\\' || key >= 128;
6666 }
6767
6868 static char* mystrcasestr(const char *haystack, const char *needle)
@@ -625,9 +625,9 @@ void isearch_view()
625625 const int maxy = mgetmaxy();
626626
627627 if(gISearchPartMatch)
628- mmvprintw(maxy -2, 0, "//");
628+ mvprintw(maxy -2, 0, "//");
629629 else
630- mmvprintw(maxy -2, 0, "/");
630+ mvprintw(maxy -2, 0, "/");
631631
632632 char buf[1024];
633633 char* str = string_c_str(gInputFileName);
@@ -642,6 +642,6 @@ void isearch_view()
642642 }
643643 }
644644 buf[i] = 0;
645- mprintw(buf);
645+ printw(buf);
646646 }
647647
--- a/src/main.c
+++ b/src/main.c
@@ -75,10 +75,10 @@ char gHomeDir[PATH_MAX]; // ホームディレクトリ
7575 static void input(int meta, int key)
7676 {
7777 if(key == 26) { // CTRL-Z
78- mendwin();
78+ endwin();
7979 mreset_tty();
8080 kill(getpid(), SIGSTOP);
81- minitscr();
81+ xinitscr();
8282 }
8383 else if(gActiveMenu) {
8484 /// メニュー ///
@@ -114,7 +114,7 @@ static void job_view()
114114
115115 str_cut(gKanjiCode, buf, maxx/size, buf2, BUFSIZ);
116116
117- mmvprintw(maxy-3, x, "%s", buf2);
117+ mvprintw(maxy-3, x, "%s", buf2);
118118 }
119119 }
120120
@@ -150,7 +150,7 @@ static void cmdline_view_filer()
150150 }
151151 }
152152
153- mmvprintw(maxy-2, 0, SFD(nextout).fdbuf.mBuf);
153+ mvprintw(maxy-2, 0, SFD(nextout).fdbuf.mBuf);
154154
155155 (void)vector_pop_back(gStackFrames);
156156 stack_end_stack();
@@ -247,7 +247,7 @@ static void cmdline_view_filer()
247247 char buf3[1024];
248248 str_cut2(gKanjiCode, buf2, maxx-1, buf3, 1024);
249249
250- mmvprintw(maxy-1, 0, "%s", buf3);
250+ mvprintw(maxy-1, 0, "%s", buf3);
251251 }
252252 else {
253253 snprintf(buf, 1024,
@@ -266,10 +266,10 @@ static void cmdline_view_filer()
266266 char buf2[1024];
267267 str_cut2(gKanjiCode, buf, maxx-1, buf2, 1024);
268268
269- mmvprintw(maxy-1, 0, "%s", buf2);
269+ mvprintw(maxy-1, 0, "%s", buf2);
270270 }
271271
272- mmove(maxy-1, maxx-2);
272+ move(maxy-1, maxx-2);
273273 }
274274
275275 void view()
@@ -343,7 +343,7 @@ static void sig_winch(int s)
343343 if(gMainLoop == -1) {
344344 mclear_immediately(); // 画面の再描写
345345 view();
346- mrefresh();
346+ refresh();
347347 }
348348 }
349349
@@ -352,7 +352,7 @@ static void sig_cont(int s)
352352 if(gMainLoop == -1) {
353353 mclear_immediately(); // 画面の再描写
354354 view();
355- mrefresh();
355+ refresh();
356356 }
357357 }
358358
@@ -439,6 +439,8 @@ static void set_mfenv()
439439 snprintf(buf, 128, "%d", KEY_IC);
440440 setenv("key_insert", buf, 1);
441441 snprintf(buf, 128, "%d", KEY_DC);
442+ setenv("key_delete2", buf, 1);
443+ snprintf(buf, 128, "%d", 127);
442444 setenv("key_delete", buf, 1);
443445 snprintf(buf, 128, "%d", KEY_HOME);
444446 setenv("key_home", buf, 1);
@@ -448,24 +450,7 @@ static void set_mfenv()
448450 setenv("key_pageup", buf, 1);
449451 snprintf(buf, 128, "%d", KEY_NPAGE);
450452 setenv("key_pagedown", buf, 1);
451- snprintf(buf, 128, "%d", KEY_F(13));
452- setenv("key_meta_left", buf, 1);
453- snprintf(buf,128, "%d", KEY_F(14));
454- setenv("key_meta_right", buf, 1);
455- snprintf(buf,128, "%d", KEY_F(15));
456- setenv("key_meta_up", buf, 1);
457- snprintf(buf,128, "%d", KEY_F(16));
458- setenv("key_meta_down", buf, 1);
459- snprintf(buf,128, "%d", KEY_F(17));
460- setenv("key_ctrl_left", buf, 1);
461- snprintf(buf,128, "%d", KEY_F(18));
462- setenv("key_ctrl_right", buf, 1);
463- snprintf(buf,128, "%d", KEY_F(19));
464- setenv("key_ctrl_up", buf, 1);
465- snprintf(buf,128, "%d", KEY_F(20));
466- setenv("key_ctrl_down", buf, 1);
467- snprintf(buf,128, "%d", KEY_F(21));
468- setenv("key_ctrl_delete", buf, 1);
453+
469454 snprintf(buf,128, "%d", 10);
470455 setenv("key_enter", buf, 1);
471456 snprintf(buf,128, "%d", KEY_BACKSPACE);
@@ -600,8 +585,6 @@ static void set_mfenv()
600585 setenv("key_Z", buf, 1);
601586 snprintf(buf,128, "%d", 32);
602587 setenv("key_space", buf, 1);
603- snprintf(buf,128, "%d", 0);
604- setenv("key_ctrl_space", buf, 1);
605588 snprintf(buf,128, "%d", 1);
606589 setenv("key_ctrl_a", buf, 1);
607590 snprintf(buf,128, "%d", 2);
@@ -746,25 +729,25 @@ static void set_mfenv()
746729 setenv("nometa", buf, 1);
747730 snprintf(buf,128, "%d", 1);
748731 setenv("meta", buf, 1);
749- snprintf(buf,128, "%d", kCAReverse);
732+ snprintf(buf,128, "%d", A_REVERSE);
750733 setenv("ma_reverse", buf, 1);
751- snprintf(buf,128, "%d", kCABold);
734+ snprintf(buf,128, "%d", A_BOLD);
752735 setenv("ma_bold", buf, 1);
753- snprintf(buf,128, "%d", kCAUnderline);
736+ snprintf(buf,128, "%d", A_UNDERLINE);
754737 setenv("ma_underline", buf, 1);
755- snprintf(buf,128, "%d", kCAWhite);
738+ snprintf(buf,128, "%d", COLOR_PAIR(1));
756739 setenv("ma_white", buf, 1);
757- snprintf(buf,128, "%d", kCABlue);
740+ snprintf(buf,128, "%d", COLOR_PAIR(2));
758741 setenv("ma_blue", buf, 1);
759- snprintf(buf,128, "%d", kCACyan);
742+ snprintf(buf,128, "%d", COLOR_PAIR(3));
760743 setenv("ma_cyan", buf, 1);
761- snprintf(buf,128, "%d", kCAGreen);
744+ snprintf(buf,128, "%d", COLOR_PAIR(4));
762745 setenv("ma_green", buf, 1);
763- snprintf(buf,128, "%d", kCAYellow);
746+ snprintf(buf,128, "%d", COLOR_PAIR(5));
764747 setenv("ma_yellow", buf, 1);
765- snprintf(buf,128, "%d", kCAMagenta);
748+ snprintf(buf,128, "%d", COLOR_PAIR(6));
766749 setenv("ma_magenta", buf, 1);
767- snprintf(buf,128, "%d", kCARed);
750+ snprintf(buf,128, "%d", COLOR_PAIR(7));
768751 setenv("ma_red", buf, 1);
769752 }
770753
@@ -925,7 +908,7 @@ int main(int argc, char* argv[])
925908 CHECKML_BEGIN(FALSE);
926909
927910 /// ファイラでもスクリプトでも共通の環境変数を初期化 ///
928- setenv("VERSION", "1.0.4b", 1);
911+ setenv("VERSION", "1.0.4c", 1);
929912 setenv("MFILER4_DATAROOTDIR", DATAROOTDIR, 1);
930913
931914 /// mfiler4のホームディレクトリを保存しておく ///
@@ -1139,7 +1122,7 @@ int main(int argc, char* argv[])
11391122 }
11401123
11411124 /// カーシスの起動 ///
1142- minitscr();
1125+ xinitscr();
11431126
11441127 /// メインループ ///
11451128 fd_set mask;
@@ -1150,51 +1133,32 @@ int main(int argc, char* argv[])
11501133
11511134 while(gMainLoop == -1) {
11521135 /// 描写 ///
1153- mclear();
1136+ clear();
11541137 view();
1155- mrefresh();
1138+ refresh();
11561139
11571140 const int maxy = mgetmaxy();
11581141 mmove_immediately(maxy-2, 0);
11591142
11601143 /// selectで入力待ち ///
11611144 read_ok = mask;
1162- if(!mkbuf_exist()) { // キーボードのバッファがないならselect
1163- if(xyzsh_job_num() > 0) {
1164- struct timeval tv;
1165- tv.tv_sec = 5;
1166- tv.tv_usec = 0;
1145+ if(xyzsh_job_num() > 0) {
1146+ struct timeval tv;
1147+ tv.tv_sec = 5;
1148+ tv.tv_usec = 0;
11671149
1168- select(5, &read_ok, NULL, NULL, &tv);
1169- }
1170- else {
1171- select(5, &read_ok, NULL, NULL, NULL);
1172- }
1150+ select(5, &read_ok, NULL, NULL, &tv);
1151+ }
1152+ else {
1153+ select(5, &read_ok, NULL, NULL, NULL);
11731154 }
11741155
11751156 /// キー処理 ///
1176- if(FD_ISSET(0, &read_ok) || mkbuf_exist()) { // キー入力があったか、キーボードのバッファがあるなら
1157+ if(FD_ISSET(0, &read_ok)) {
11771158 int meta;
1178- int key = mgetch_nonblock(&meta);
1159+ int key = xgetch(&meta);
11791160
1180- /// ESCキー ///
1181- if(key == -1) {
1182- }
1183- else if(meta) {
1184- input(1, key);
1185- }
1186-
1187- /// meta key ///
1188- else if(key >= kKeyMetaFirst
1189- && key <= kKeyMetaFirst + 127)
1190- {
1191- input(1, key - kKeyMetaFirst );
1192- }
1193-
1194- /// normal key ///
1195- else {
1196- input(0, key);
1197- }
1161+ input(meta, key);
11981162 }
11991163
12001164 /// ジョブ処理 ///
@@ -1202,7 +1166,7 @@ int main(int argc, char* argv[])
12021166 }
12031167
12041168 /// カーシス終わり ///
1205- mendwin();
1169+ endwin();
12061170
12071171 /// ジョブの消去 ///
12081172 xyzsh_kill_all_jobs();
--- a/src/mattr.c
+++ b/src/mattr.c
@@ -207,7 +207,7 @@ int main(int argc, char* argv[])
207207 editing = kDateYesNo;
208208 }
209209 }
210- else if(key == 3 || key == 7 || key == 27) {
210+ else if(key == 3 || key == 7) {
211211 cancel = TRUE;
212212 break;
213213 }
@@ -235,7 +235,7 @@ int main(int argc, char* argv[])
235235 else if(key == 10 || key == 13) { // CTRL+M CTRL+J
236236 editing = kDateYesNo;
237237 }
238- else if(key == 3 || key == 7 || key == 27) {
238+ else if(key == 3 || key == 7) {
239239 editing = kModeYesNo;
240240 }
241241 }
@@ -255,7 +255,7 @@ int main(int argc, char* argv[])
255255 editing = kOK;
256256 }
257257 }
258- else if(key == 3 || key == 7 || key == 27) {
258+ else if(key == 3 || key == 7) {
259259 editing = kModeYesNo;
260260 }
261261 }
@@ -309,7 +309,7 @@ int main(int argc, char* argv[])
309309 break;
310310 }
311311 }
312- else if(key == 3 || key == 7 || key == 27) {
312+ else if(key == 3 || key == 7) {
313313 editing = kDateYesNo;
314314 }
315315 }
@@ -321,7 +321,7 @@ else if(editing == kOK) {
321321 cancel = TRUE;
322322 break;
323323 }
324- else if(key == 3 || key == 7 || key == 27) {
324+ else if(key == 3 || key == 7) {
325325 editing = kDateYesNo;
326326 }
327327 }
--- a/src/menu.c
+++ b/src/menu.c
@@ -116,14 +116,14 @@ void menu_start(char* menu_name)
116116 ///////////////////////////////////////////////////
117117 static void menu_run(sMenuItem* item)
118118 {
119- mclear();
119+ clear();
120120 view();
121- mrefresh();
121+ refresh();
122122
123123 if(item->mExternal) {
124124 const int maxy = mgetmaxy();
125125 mmove_immediately(maxy-2, 0);
126- mendwin();
126+ endwin();
127127
128128 mreset_tty();
129129
@@ -131,7 +131,7 @@ static void menu_run(sMenuItem* item)
131131 if(xyzsh_run(&rcode, item->mBlock, item->mName, NULL, gStdin, gStdout, 0, NULL, gMFiler4))
132132 {
133133 if(rcode == 0) {
134- minitscr();
134+ xinitscr();
135135 //(void)filer_reset_marks(adir());
136136 }
137137 else {
@@ -140,10 +140,9 @@ static void menu_run(sMenuItem* item)
140140
141141 printf("\nHIT ANY KEY\n");
142142
143- minitscr();
143+ xinitscr();
144144
145- int meta;
146- (void)mgetch(&meta);
145+ (void)getch();
147146 }
148147 }
149148 else {
@@ -151,10 +150,9 @@ static void menu_run(sMenuItem* item)
151150 fprintf(stderr, "runtime err\n%s", string_c_str(gErrMsg));
152151 printf("\nHIT ANY KEY\n");
153152
154- minitscr();
153+ xinitscr();
155154
156- int meta;
157- (void)mgetch(&meta);
155+ (void)getch();
158156 }
159157 }
160158 else {
@@ -195,16 +193,16 @@ void menu_input(sMenu* self, int meta, int key)
195193 else if(key == 21 || key == KEY_PPAGE) { // CTRL-U PAGE UP
196194 self->mCursor-=7;
197195 }
198- else if(key == 3 || key == 7 || key == 27) { // CTRL-C CTRL-G Escape
196+ else if(key == 3 || key == 7) { // CTRL-C CTRL-G
199197 gActiveMenu = NULL;
200- mclear();
198+ clear();
201199 }
202200 else if(key == 10 || key == 13) { // CTRL-M CTRL-J
203201 gActiveMenu = NULL;
204202
205203 sMenuItem* item = vector_item(self->mMenuItems, self->mCursor);
206204 menu_run(item);
207- mclear();
205+ clear();
208206 }
209207 else if(key == 12) {// CTRL-L
210208 mclear_immediately();
@@ -221,7 +219,7 @@ void menu_input(sMenu* self, int meta, int key)
221219 }
222220 }
223221
224- mclear();
222+ clear();
225223 }
226224
227225 while(self->mCursor < 0) {
@@ -274,9 +272,9 @@ void menu_view(sMenu* self)
274272 const int size = vector_count(self->mMenuItems) + 2;
275273 mbox(0, 2, item_maxx, size < maxy ? size : maxy);
276274
277- mattron(kCABold);
278- mmvprintw(0, 4, self->mTitle);
279- mattroff();
275+ attron(A_BOLD);
276+ mvprintw(0, 4, self->mTitle);
277+ attroff(A_BOLD);
280278
281279 float f;
282280 if(vector_count(self->mMenuItems) == 0) {
@@ -287,7 +285,7 @@ void menu_view(sMenu* self)
287285 /(float)vector_count(self->mMenuItems))*100;
288286 }
289287
290- mmvprintw((size < maxy ? size: maxy) - 1, 2+item_maxx-8, "(%3d%%)", (int)f);
288+ mvprintw((size < maxy ? size: maxy) - 1, 2+item_maxx-8, "(%3d%%)", (int)f);
291289 for(i=self->mScrollTop;
292290 (i<vector_count(self->mMenuItems) && i-self->mScrollTop<maxy-2); i++) {
293291 sMenuItem* item = (sMenuItem*)vector_item(self->mMenuItems, i);
@@ -301,16 +299,16 @@ void menu_view(sMenu* self)
301299 }
302300
303301 if(i == self->mCursor) {
304- mattron(kCAReverse);
305- mmvprintw(i-self->mScrollTop+1, 3, buf);
306- mattroff();
302+ attron(A_REVERSE);
303+ mvprintw(i-self->mScrollTop+1, 3, buf);
304+ attroff(A_REVERSE);
307305 }
308306 else {
309- mmvprintw(i-self->mScrollTop+1, 3, buf);
307+ mvprintw(i-self->mScrollTop+1, 3, buf);
310308 }
311309 }
312310
313- mmove(maxy-1, maxx-2);
311+ move(maxy-1, maxx-2);
314312 }
315313
316314