рдореЛрдЯреЗ рддреМрд░ рдкрд░ рдЙрд╕ рд╕рдордп рдЬрдм рдореИрдВрдиреЗ (рдмрд╣реБрдд рд╕рдлрд▓рддрд╛рдкреВрд░реНрд╡рдХ рдирд╣реАрдВ) рдкрд┐рдЫрд▓реА рдкреЛрд╕реНрдЯ рдореЗрдВ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдЯрд╛рдЗрдкреЛ рдХреЛ рдкрдврд╝рд╛,
рдмреЙрдмреА рдиреЗ рд╕реБрдЭрд╛рд╡ рджрд┐рдпрд╛ рдХрд┐ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдПрдХ рдХрд╣рд╛рдиреА рдХреИрд╕реЗ рдмрдирд╛рдИ рдЬрд╛рдП (рдЬреЛ, Shift-PgUp)ред
рдЯрд░реНрдорд┐рдирд▓реЛрдВ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХреБрдЫ рдХрд░рдиреЗ рдХрд╛ рд╕реНрдкрд╖реНрдЯ рддрд░реАрдХрд╛ рдпрд╣ рджреЗрдЦрдирд╛ рд╣реИ рдХрд┐ рджреВрд╕рд░реЛрдВ рдиреЗ рдЗрд╕реЗ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рд╣реИ рдФрд░ рдРрд╕рд╛ рд╣реА рдХрд░рддреЗ рд╣реИрдВред рдЗрд╕рдХрд╛ рдЕрдзреНрдпрдпрди рдХрд░рдиреЗ рдХреА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ, рд╣рдордиреЗ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрд░ рдзреНрдпрд╛рди рдЖрдХрд░реНрд╖рд┐рдд рдХрд┐рдпрд╛: рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдо, рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рддреЗ рд╣реБрдП, рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд╢реБрд░реВ рд╣реЛрдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕реНрдХреНрд░реАрди рдХреЛ рдкреБрдирд░реНрд╕реНрдерд╛рдкрд┐рдд рдХрд░реЗрдВ (рдПрдорд╕реА, рд╡рд┐рдо, рдиреИрдиреЛ, рдХрдо, рдЖрджрд┐)ред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЬрдм рд╡реЗ рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╕реНрдХреНрд░реЙрд▓ рдмрд╛рд░ рдЧрд╛рдпрдм рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ (xterm / рд╕реВрдХреНрддрд┐-рдЯрд░реНрдорд┐рдирд▓ рдореЗрдВ)ред
рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐, рдПрдорд╕реА рдкрд░ рдирд┐рд╡рд╛рд╕ рдХрд░рдиреЗ рдХрд╛ рдирд┐рд░реНрдгрдп рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рд╕рдмрд╕реЗ рдкреБрд░рд╛рдирд╛ (рдФрд░ рдирд░реНрд╕реЛрдВ рдкрд░ рдирд┐рд░реНрднрд░ рдирд╣реАрдВ) рдЖрд╡реЗрджрди рдХреЗ рд░реВрдк рдореЗрдВред
рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдПрдХ рд░реЛрдорд╛рдВрдЯрд┐рдХ рдХрд╣рд╛рдиреА рд╣реИ рдХрд┐ рд╕реНрд░реЛрдд рдХреЛрдб рдХреЗ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЙрджреНрдзрд░рдгреЛрдВ рдХреЗ рд╕рд╛рде mc рдЯреЙрдЧрд▓_рдкреЗрди () рдХреИрд╕реЗ рдХрд░рддрд╛ рд╣реИред
рдЙрд╕реА рд╕рдордп, рдкрд╛рдардХ рдпрд╣ рджреЗрдЦ рдкрд╛рдПрдЧрд╛ рдХрд┐ "рд╕реНрд░реЛрдд рдореЗрдВ рджреЗрдЦреЛ" рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреНрдпрд╛ рджрд┐рдЦрддреА рд╣реИред
рддреЛ, рд╕реНрд░реЛрдд рдХреЛрдб MC рд╣реИред рдпрд╣ рдЬреНрдЮрд╛рдд рд╣реИ рдХрд┐ рд╕реНрдХреНрд░реАрди "рдмреИрдХ" рдХреЛ Ctrl-O рджреНрд╡рд╛рд░рд╛ рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдмрдЯрдиреЛрдВ рдХрд╛ рд╕рдВрдпреЛрдЬрди рдкреБрд░рд╛рдиреЗ рдиреЙрд░реНрдЯрди рдХрдорд╛рдВрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджрд┐рдпрд╛, рдЬрд╣рд╛рдВ рдЗрд╕реЗ рдмрд╛рдж рдХреЗ рд╕рднреА рдПрдирд╕реА рдХрдВрд╕реЛрд▓ рдХреНрд▓реЛрди рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рдЧрдпрд╛ рдерд╛: рдбреЙрд╕ рдиреЗрд╡рд┐рдЧреЗрдЯрд░, рд╡реЛрд▓реНрдХреЛрд╡ рдХрдорд╛рдВрдбрд░, рд╕реБрджреВрд░ рдиреЗрд╡рд┐рдЧреЗрдЯрд░, рдЖрджрд┐ред
рдбрд╛рдЙрдирд▓реЛрдб рдХрд┐рдП рдЧрдП рдХрдЪреНрдЪреЗ рдорд╛рд▓ (apt-get source mc), рдЕрдВрджрд░ рджреЗрдЦрд╛ред
рдмрд╣реБрдд рдЬрд▓реНрджреА, рд╣рдореЗрдВ рдХреАрдмрд╛рдЗрдВрдб рд╕реАред рд╕реАред рдлрд╛рдЗрд▓ рдорд┐рд▓реА, рдЬрд╣рд╛рдБ рд╣рдордиреЗ рдЖрд╕рд╛рдиреА рд╕реЗ рджреЗрдЦрд╛ рдХрд┐ Ctrl-letter рд╕рдВрдпреЛрдЬрди "CL" (рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, "Co") рдХреЗ рд░реВрдк рдореЗрдВ рдПрдиреНрдХреЛрдбреЗрдб рд╣реИрдВред Enums рдХрд╛ рдПрдХ рд╕рд░рд▓ рд╕рд░рдгреА (рдпрд╛ рдпрд╣ рдкрд░рд┐рднрд╛рд╖рд╛ рд╣реИ? рдорд╣рддреНрд╡рдкреВрд░реНрдг рдирд╣реАрдВ), рдЖрд╡рд╢реНрдпрдХ рдкрдВрдХреНрддрд┐:
{XCTRL ('o'), CK_ShowCommandLine, "Co"},
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ (рд╣рдо рдПрдорд╕реА рдХреА рд╡рд╛рд╕реНрддреБрдХрд▓рд╛ рдХреЛ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВ, рдФрд░ рд╣рдо рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЬрд╛рдирдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ), рд╣рдо рдмрд╕
grep рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХрд╛ рдЙрдкрдпреЛрдЧ рдпрд╣ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рдпрд╣ рдлрд╝рдВрдХреНрд╢рди рдХрд╣рд╛рдВ рд╣реИ:
grep CK_ShowCommandLine -A3 -B3 -r *
рдЦреЛрдЬреА рдЧрдИ рдлрд╛рдЗрд▓ - main.c
main.c: рдорд╛рдорд▓рд╛ CK_ShowCommandLine:
main.c- view_other_cmd ();
main.c- рд╡рд┐рд░рд╛рдо;
рдФрд░ рдЗрд╕рдХреЗ рдЖрдЧреЗ:
рджрд░реНрд╢рдХ / рдХреНрд░рд┐рдпрд╛рдПрдБ_ cmd.c: рдорд╛рдорд▓рд╛ CK_ShowCommandLine:
рджрд░реНрд╢рдХ / рдХреНрд░рд┐рдпрд╛рдПрдБ_cmd.c- view_other_cmd ();
рджрд░реНрд╢рдХ / рдХреНрд░рд┐рдпрд╛рдПрдБ_cmd.c- рдмреНрд░реЗрдХ;
рдФрд░ рджрд░реНрд╢рдХред рдФрд░ mc рд╣реА рдЙрд╕реА рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ: view_other_cmdред рд╡рд╛рдВрдЫрд┐рдд рдлрд╝рдВрдХреНрд╢рди рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдорд╛рди grep cmd.c рдлрд╝рд╛рдЗрд▓ рд╣реИ:
рд╢реВрдиреНрдп
view_other_cmd (рд╢реВрдиреНрдп)
{
рд╕реНрдерд┐рд░ int message_flag = TRUE;
рдЕрдЧрд░ (xterm_flag &&! рдХрдВрд╕реЛрд▓_рдлреНрд▓реИрдЧ &&! use_subshell &&! output_starts_shell) {
рдЕрдЧрд░ (рд╕рдВрджреЗрд╢_рдлреНрд▓реИрдЧ)
рд╕рдВрджреЗрд╢ (D_ERROR, MSG_ERROR,
_ ("рдирд╣реАрдВ xterm рдпрд╛ Linux рдХрдВрд╕реЛрд▓? \ N"
"рдкреИрдирд▓ рдХреЛ рднреАрдЦ рдирд╣реАрдВ рджреА рдЬрд╛ рд╕рдХрддреА рд╣реИред"));
message_flag = FALSE;
} {
toggle_panels ();
}
}
рдЖрдВрдЦ рдкреБрд░рд╛рдиреЗ рд╢реИрд▓реА рдХреЗ рдкрд╛рда рд╕реНрд╡рд░реВрдкрдг рдХреЛ рдереЛрдбрд╝рд╛ рдХрдо рдХрд░рддреА рд╣реИ, рд▓реЗрдХрд┐рди ...
рдЗрд╕ рдкреНрд░рдХрд╛рд░,
- рдорд╛рдВрдЧреА рдЧрдИ рдлрд╝рдВрдХреНрд╢рди рдЯреЙрдЧрд▓_рдкреИрдирд▓реНрд╕ ()ред рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣рдо рддреБрд░рдВрдд рдЗрд╕реЗ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рджреМрдбрд╝реЗ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдЕрдзрд┐рдХ рд╕реБрд╕рдВрдЧрдд рд╣реЛрдВрдЧреЗ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рддреНрд░реБрдЯрд┐ рдорд╛рдорд▓реЗ рдХреЛ рдкрдврд╝реЗрдВрдЧреЗ (рд╕реА рдореЗрдВ рдмрдВрдж рд╣реЛрдиреЗ рдХреЗ рд╕реБрд░реБрдЪрд┐рдкреВрд░реНрдг рдЕрдиреБрдХрд░рдг рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ - рдПрдХ рд╕реНрдереИрддрд┐рдХ рдЪрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреВрд░реЗ рдСрдкрд░реЗрд╢рди рдХреЗ рд╕рдордп рдХреЗрд╡рд▓ рдПрдХ рдмрд╛рд░ рддреНрд░реБрдЯрд┐ рд╕рдВрджреЗрд╢ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПред рдХрд╛рд░реНрдпрдХреНрд░рдо)ред
- рддреНрд░реБрдЯрд┐ рдЖрдЙрдЯрдкреБрдЯ рд╣реИ рдЕрдЧрд░ ... рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ xterm рдирд╣реАрдВ рд╣реИ рдФрд░ рдХрдВрд╕реЛрд▓ рдирд╣реАрдВ рд╣реИред рдЙрдкрдЦрдВрдб-рд╕рдВрдмрдВрдзрд┐рдд рднрд╛рдЧ рд╣рдореЗрдВ рд░реВрдЪрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдПрдХ рдЕрд▓рдЧ xterm рдЬрд╛рдБрдЪ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдореЗрдВ рдПрдХ рдЬрд╛рдБрдЪ рдбрд╛рд▓реЗрдВред
рд╣рдо toggle_pannels () рдХреА рддрд▓рд╛рд╢ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░реЗрдВ рдлрд╝рд╛рдЗрд▓ред рдлрд╝рдВрдХреНрд╢рди рдмрдбрд╝рд╛ рд╣реИ, рдореИрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рдЬрдЧрд╣ рдЙрджреНрдзреГрдд рдХрд░реВрдВрдЧрд╛ред
tty_reset_screen ();
do_exit_ca_mode ();
tty_raw_mode ();
рдЕрдЧрд░ (рдХрдВрд╕реЛрд▓_рдлреНрд▓реИрдЧ)
handle_console (CONSOLE_RESTORE);
- tty_reset_screen - рдЖрдЗрдП рдмрддрд╛рддреЗ рд╣реИрдВ
- do_exit_ca_mode - рдУрд╣, рджрд┐рд▓рдЪрд╕реНрдк рд╣реИ
- tty_raw_mode рдХреЗрд╡рд▓ рдЪрд░рд┐рддреНрд░ рдЗрдирдкреБрдЯ рдореЛрдб рд╕реНрд╡рд┐рдЪ рдХрд░ рд░рд╣рд╛ рд╣реИ
- рджрд┐рд▓рдЪрд╕реНрдк рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЕрдЧрд░ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХрдВрд╕реЛрд▓ рд╣реИ, рддреЛ handle_console рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ ...
Ca_mode рдХреНрдпрд╛ рд╣реИ? рдЫреЛрдЯреА рдЕрдбрд╝рдЪрди (рдлрд╝рд╛рдЗрд▓ src рдореЗрдВ рдирд╣реАрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд╛рдо рдореЗрдВ рд╣реИ), tty / win.c. рдЗрд╕рдХреЗ рдЖрдЧреЗ рд░рд┐рд╡рд░реНрд╕ do_enter_ca_mode рд╣реИ:
рд╢реВрдиреНрдп
do_enter_ca_mode (рд╢реВрдиреНрдп)
{
рдЕрдЧрд░ (xterm_flag) {
fprintf (stdout, / * ESC_STR ") 0" * / ESC_STR "7" ESC_STR "[! 47h");
fflush (stdout);
}
}
рд╢реВрдиреНрдп
do_exit_ca_mode (рд╢реВрдиреНрдп)
{
рдЕрдЧрд░ (xterm_flag) {
fprintf (stdout, ESC_STR "[; 47l" ESC_STR "8" ESC_STR "[m");
fflush (stdout);
}
}
рдХреБрд▓ - рдПрдХ рдЕрдЬреАрдм рдореЛрдб рд╕реНрд╡рд┐рдЪ рдХрд░рдирд╛, рдЬрд┐рд╕реЗ рд╣рдо рдирд╣реАрдВ рдЬрд╛рдирддреЗ рд╣реИрдВред Xterm рдХреЗ рд╕рд╛рде рдЬреБрдбрд╝реЗред рддреНрд╡рд░рд┐рдд Google рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдПрдХ "рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдХреНрд░реАрди рдмрдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ" рд╣реИ:
Xterm рджреЛ рд╕реНрдХреНрд░реАрди рдмрдлрд╝рд░реНрд╕ рд░рдЦрддрд╛ рд╣реИред рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдХреНрд░реАрди рдмрдлрд░ рдЖрдкрдХреЛ рд╕реЗрд╡рд▓рд╛рдЗрди рд╕рдВрд╕рд╛рдзрди рджреНрд╡рд╛рд░рд╛ рдЕрдзрд┐рдХрддрдо рд╕реЗрдЯ рдЕрдк рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдЙрдЯрдкреБрдЯ рдХреА рд╕рд╣реЗрдЬреА рдЧрдИ рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрдХреНрд░реЙрд▓ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдХреНрд░реАрди рдмрдлрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд░реВрдк рдореЗрдВ рдмрд┐рд▓реНрдХреБрд▓ рдмрдбрд╝рд╛ рд╣реИ, рдЗрд╕рдореЗрдВ рдХреЛрдИ рдЕрддрд┐рд░рд┐рдХреНрдд рд╕рд╣реЗрдЬреА рдЧрдИ рд▓рд╛рдЗрдиреЗрдВ рдирд╣реАрдВ рд╣реИрдВред рдЬрдм рд╡реИрдХрд▓реНрдкрд┐рдХ рд╕реНрдХреНрд░реАрди рдмрдлрд░ рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ, рддреЛ рдЖрдк рд╕рд╣реЗрдЬреЗ рдЧрдП рд▓рд╛рдЗрдиреЛрдВ рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд╛рдкрд╕ рд╕реНрдХреНрд░реЙрд▓ рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗред Xterm рджреЛрдиреЛрдВ рдХреЗ рдмреАрдЪ рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдВрддреНрд░рдг рдЕрдиреБрдХреНрд░рдо рдФрд░ рдореЗрдиреВ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐рдпрд╛рдБ рдкреНрд░рджрд╛рди рдХрд░рддрд╛ рд╣реИред
рд▓рдЧрднрдЧред рдореИрдВ рджреЗрдЦрддрд╛ рд╣реВрдВред Xterm рдореЗрдВ рдПрдХ рд╡рд┐рд╢реЗрд╖ esc рдХреЛрдб рд╣реЛрддрд╛ рд╣реИред
рд▓рд┐рдирдХреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рд╣рдо рд▓рд┐рдирдХреНрд╕ рдХрдВрд╕реЛрд▓ (рд╡рд╛рд╕реНрддрд╡рд┐рдХ, Ctrl-Alt-F1) рдкрд░ рдЬрд╛рддреЗ рд╣реИрдВ, рд╡рд┐рдо рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ - рдЬрдм рд╣рдо рдмрд╛рд╣рд░ рдирд┐рдХрд▓рддреЗ рд╣реИрдВ, рддреЛ рд╣рдо рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд┐рдЫрд▓реА рд╕рд╛рдордЧреНрд░реА рджреЗрдЦрддреЗ рд╣реИрдВред рдХрдо ... рджреЗрдЦреЗрдВред рдиреИрдиреЛ ... рджреЗрдЦрддреЗ рд╣реИрдВред рдпрд╣реА рд╣реИ, рд▓рд┐рдирдХреНрд╕ (рдХрдВрд╕реЛрд▓_рдХреЛрдб рдХреЗ рдЕрдиреБрд╕рд╛рд░) рдЗрд╕рдХрд╛ рд╕рдорд░реНрдерди рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рдБ, рд╕реНрдкрд╖реНрдЯред Mc рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдФрд░ рдПрдорд╕реА рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ, рдЧрдзреЗ! рдХреИрд╕реЗ? рдХреНрдпреЛрдВ? рд╣рдо рд╕реНрд░реЛрдд рдХреЛрдб mc рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ, рджреЗрдЦреЛ ... рдФрд░ handle_console рдХреНрдпрд╛ рдХрд░рддрд╛ рд╣реИ?
рд╣рдо рджреЗрдЦ рд░рд╣реЗ рд╣реИрдВ ... (cons.handler.c):
рд╢реВрдиреНрдп
handle_console (рдЕрд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЪрд╛рд░ рдХрд╛рд░реНрд░рд╡рд╛рдИ)
{
(рд╢реВрдиреНрдп) рдХрд╛рд░реНрд░рд╡рд╛рдИ;
рдЕрдЧрд░ (рджреЗрдЦреЗрдВ_рдлреЛрд░рд╛_рдХреНрд░рдХреНрд╕_рдЕрддрд┐рдХреНрд░рдордг) ()
рд╡рд╛рдкрд╕реА;
#ifdef __linux__
handle_console_linux (рдХреНрд░рд┐рдпрд╛);
# рдореБрдЦреНрдп рдкрд░рд┐рднрд╛рд╖рд┐рдд (__FreeBSD__)
handle_console_freebsd (рдХреНрд░рд┐рдпрд╛);
#endif
рд╣рдореНрдо ... рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдкрд░ рдФрд░ рдлреНрд░реАрдмреАрдПрд╕рдбреА рдкрд░ рдпрд╣ рдЕрд▓рдЧ рддрд░рд╣ рд╕реЗ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛рддрд╛ рд╣реИред (рд▓реЗрдХрд┐рди рд╕реЛрд▓рд╛рд░рд┐рд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛? рдЖрдкрдХреЗ рд╕реЛрд▓рд╛рд░рд┐рд╕ рд╕реЗ рдЕрдзрд┐рдХ рдирд╣реАрдВ, рдУрд░реЗрдХрд▓ рдиреЗ рдорд╣рд╕реВрд╕ рдХрд┐рдП рдЧрдП рдЬреВрддреЗ рдХреЛ рдХрдВрд╕реЛрд▓ рдкрд░ рдлреЗрдВрдХ рджрд┐рдпрд╛ред)
рд╣рдо handle_console_linux рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ, рдЗрд╕рдХреЗ рджреНрд╡рд╛рд░рд╛ рдХрдВрд╕реЛрд▓_рд╕реНрд╡реЗред рд╣рдо рдХреНрдпрд╛ рджреЗрдЦрддреЗ рд╣реИрдВ? MC рдПрдХ рдЕрд▓рдЧ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреА рдорд╛рдВрдЧ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕реЗ cons.saver рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЕрдЬреАрдм рдЙрдкрдХрд░рдгреЛрдВ / рджреЗрд╡ / vcsa * рдХреЛ ioctl, рдкрдврд╝рдирд╛ рдФрд░ рд▓рд┐рдЦрдирд╛ рдХрд░рддрд╛ рд╣реИред рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХреЗ рдЙрдкрдХрд░рдг?
рдУрд╣, рдПрдХ рдирдИ, рдЕрджреНрднреБрдд рджреБрдирд┐рдпрд╛
рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рд╣реИ рдХрд┐ рд▓рд┐рдирдХреНрд╕ рдореЗрдВ рдкрд╛рда рдореЛрдб рдореЗрдВ CGA (VGA) рдПрдбрд╛рдкреНрдЯрд░ рдХреА рдореЗрдореЛрд░реА рдХреЗ рдЕрдиреБрд░реВрдк рдЫрджреНрдо рдЙрдкрдХрд░рдг рд╣реИрдВ, рдЬрд╣рд╛рдВ рдбреЗрдЯрд╛ рдХреЛ рдПрдХ рд╕рд░рдгреА рдХреЗ рд░реВрдк рдореЗрдВ рд╕рдВрдЧреНрд░рд╣реАрдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ
рд╕рдВрд░рдЪрдирд╛ {
рдЪрд╛рд░ рдЪрд╛рд░;
рдЪрд╛рд░ рдЕрдЯреНрд░рд┐рдм;
}
рд╣рд╛рдБ, рд╣рд╛рдБ, рдЙрд╕ рдкреБрд░рд╛рдиреЗ рд▓рдВрдмреЗ рд╕рдордп рд╕реЗ рднреВрд▓ рдЧрдП рдбреЙрд╕, рд╡реАрдбрд┐рдпреЛ рдореЗрдореЛрд░реА рддрдХ рд╕реАрдзреА рдкрд╣реБрдВрдЪ рдХреЗ рд╕рд╛рдеред рдЪреЗрдХ - рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рд╣реЗрдХреНрд╕рдбрдВрдк рдлрд╝рд╛рдЗрд▓ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдореЗрдВ рд╕реНрдХреНрд░реАрди рдХреА рд╕рд╛рдордЧреНрд░реА рджрд┐рдЦрд╛рддреА рд╣реИред рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдЗрд╕ рдЙрдкрдХрд░рдг рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕ рдкрд░ рдЕрдзрд┐рдХрд╛рд░ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред рдЖрдорддреМрд░ рдкрд░ рдпрд╣ рдЗрд╕ рддрд░рд╣ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ: рд╡реЗ рдбрд┐рд╡рд╛рдЗрд╕ рдХреА рдлрд╝рд╛рдЗрд▓ рдкрд░ рдПрдХ рд╕рдореВрд╣ рдбрд╛рд▓рддреЗ рд╣реИрдВ, рдЗрд╕ рд╕рдореВрд╣ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдлрд╝рд╛рдЗрд▓ рдХреЗ рдорд╛рд▓рд┐рдХ рдХреЛ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЙрдЬрд╛рдЧрд░ рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдЗрд╕рдХреЗ рд▓рд┐рдП sgid рдмрд┐рдЯ рд╕реЗрдЯ рдХрд░рддреЗ рд╣реИрдВред
рдбреЗрдмрд┐рдпрди рдореЗрдВ, cons.saver рдХреЗ рдкрд╛рд╕ tty рд╕рдореВрд╣ (рдЫрджреНрдо-рдЯрд░реНрдорд┐рдирд▓реЛрдВ рддрдХ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕рдореВрд╣) рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖ vcsa рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рд╕реЗрдВрдЯреЛ рдореЗрдВ рдереЛрдбрд╝рд╛ рд╕рд╛ рд╣реЛрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рдореИрдВ рдЖрд░рдПрдЪрдИрдПрд▓ / рд╕реЗрдВрдЯреЛрд╕ рджреГрд╖реНрдЯрд┐рдХреЛрдг рд╕реЗ рд╕рд╣рдордд рд╣реВрдВ, рдпрд╣ рдЕрдзрд┐рдХ рд╕реБрд░рдХреНрд╖рд┐рдд рд╣реИред
рддреЛ, рдПрдХ рд╡рд┐рд╢реЗрд╖ рдлрд╝рд╛рдЗрд▓ ... рдЕрд░реНрдерд╛рддреН, рдПрдХ рдЪрд╛рд▓рд╛рдХ рд╣реИрдХ рдХреА рдорджрдж рд╕реЗ MC рд╕реНрдХреНрд░реАрди рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рдкрдврд╝рддрд╛ рд╣реИ, рдФрд░ рдЬрдм рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рддреЛ рд╡рд╛рдкрд╕ рд▓рд┐рдЦрддрд╛ рд╣реИ ...
рд▓реЗрдХрд┐рди рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрди рдХрд╛ рдХрдВрд╕реЛрд▓ VGA рдПрдбреЙрдкреНрдЯрд░ рдкрд░ рдирд╣реАрдВ рд╣реИ! рдпрд╣ рдПрдХ рд╢реБрджреНрдз рдзрд╛рд░рд╛рд╡рд╛рд╣рд┐рдХ рдмрдВрджрд░рдЧрд╛рд╣ рд╣реИред рдФрд░ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЬрд╛рдВрдЪ рд╕рдВрджреЗрд╣ рдХреЗ рдЕрдзреАрди рд╣реИ - рд╕рднреА рдЖрднрд╛рд╕реА рдорд╢реАрдиреЛрдВ рдкрд░, vcsa рдкреНрд░рд╛рдЪреАрди рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ VGA рдПрдбрд╛рдкреНрдЯрд░ рдирд╣реАрдВ рд╣реИред рдореЗрд░рд╛ рдорддрд▓рдм рд╣реИ, рд╡реАрдбрд┐рдпреЛ рдХрд╛рд░реНрдбред
рдХреНрдпрд╛ рдХрд░реЗрдВ? рдЦреИрд░, рд╢реБрд░реБрдЖрдд рдХреЗ рд▓рд┐рдП, рджреЗрдЦреЗрдВ рдХрд┐ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреА рд╕реНрдерд┐рддрд┐ рдореЗрдВ рдПрдорд╕реА рдХреНрдпрд╛ рдХрд░реЗрдЧрд╛ред рдЬреИрд╕рд╛ рдХрд┐ рд╣рдо рдЬрд╛рдирддреЗ рд╣реИрдВ, UNIX98 рдЫрджреНрдо рдЯрд░реНрдорд┐рдирд▓ рдФрд░ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдХреЗ рдмреАрдЪ рдХреЛрдИ рдЕрдВрддрд░ рдирд╣реАрдВ рд╣реИред рд╣рдо рд╡рд╛рд╕реНрддрд╡рд┐рдХ рд▓рд┐рдирдХреНрд╕ (рдХрдВрд╕реЛрд▓) рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рддреЗ рд╣реИрдВ, рдХрд┐рд╕реА рднреА рд╕рд░реНрд╡рд░ рдкрд░ ssh рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рд▓реЙрдЧ рдЗрди рдХрд░рддреЗ рд╣реИрдВ, mc рд╢реБрд░реВ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рд╡реЙрдпрд▓рд╛ - рд╕рдорд░реНрдерд┐рдд рдирд╣реАрдВ рд╣реИрдВред
рдЗрд╕ рдкреНрд░рдХрд╛рд░, рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдкрд░ рдХрдВрд╕реЛрд▓ рдмрдирд╛рддреЗ рд╕рдордп, рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВ, рд╣рдо vcsa рдХрд╛ рдПрдирд╛рд▓реЙрдЧ рдкреНрд░рджрд╛рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ - рдФрд░ ctrl-o рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ mc рдореЗрдВ рд╣реИрдХ рдХрд╛рдо рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИред рд╕рд┐рджреНрдзрд╛рдВрдд рд░реВрдк рдореЗрдВред
рд▓реЗрдХрд┐рди xterm рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреНрдпрд╛?
Xterm рдХреЗ рд▓рд┐рдП ESC рдХреЛрдб рд▓рд╛рдЧреВ рдХрд░рдирд╛ рд╕рд░рд▓ рд╣реЛрдЧрд╛ред рд▓реЗрдХрд┐рди ... рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╡рд░реНрдЪреБрдЕрд▓ рдорд╢реАрдиреЛрдВ рдХреА рд╕рд╛рдордЧреНрд░реА рддрдХ рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ, рд╣рдо рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╡рд╛рддрд╛рд╡рд░рдг рдирд╣реАрдВ рдмрджрд▓ рд╕рдХрддреЗ рд╣реИрдВ - рдЬрд┐рд╕рдХрд╛ рдЕрд░реНрде рд╣реИ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рд▓рд┐рдирдХреНрд╕ рдпрд╣ рдЙрдореНрдореАрдж рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдореЗрдВ рд╕реАрд░рд┐рдпрд▓ рдкреЛрд░реНрдЯ рдкрд░ рд▓рд┐рдирдХреНрд╕ рдЯрд░реНрдорд┐рдирд▓ рдкреНрд░рдХрд╛рд░ (TERM = linux) рд╣реИ рдФрд░ рдпрд╣ xmm / xrvt рдлрд╝рдВрдХреНрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ рдЕрд░реНрде - рд╡реЗ рд╡реИрд╕реЗ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред
рдмрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдо рдЬрд╛рдБрдЪрддреЗ рд╣реИрдВ рдХрд┐ xcm рдПрдХреНрд╕рдЯреЗрдВрд╢рди рдХреЗ рдЕрд╕реНрддрд┐рддреНрд╡ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ mc рдХреИрд╕реЗ рд╕реАрдЦрддрд╛ рд╣реИ ...
const char * рд╕рдорд╛рдкреНрддрд┐;
termvalue = getenv ("TERM");
рдХрд╛рд╢ - рдПрдХ рдкрд░реНрдпрд╛рд╡рд░рдг рдЪрд░ (рдФрд░ рдореИрдВ рдПрдХ рдХреНрд╡реЗрд░реА рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдореНрдореАрдж рдХрд░ рд░рд╣рд╛ рдерд╛)ред рдЦреИрд░, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдирд╣реАрдВред рдЕрдлрд╕реЛрд╕ред
рд╡реИрд╕реЗ, рдмрд┐рд▓реНрдХреБрд▓ рдЙрд╕реА рд╣реИрдХ (рд▓реЗрдХрд┐рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд▓рд┐рдП рд╕рдорд╛рдпреЛрдЬрд┐рдд) рдХрд╛ рдЙрдкрдпреЛрдЧ FreeBSD рдореЗрдВ рднреА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЕрдлрд╕реЛрд╕ред
рдиреИрддрд┐рдХ?
Ctrl-O рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╣рдорд╛рд░реЗ рдЕрджреНрднреБрдд рд▓рд┐рдирдХреНрд╕ рдХрдВрд╕реЛрд▓ рдореЗрдВ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдХрд╛рдо рдирд╣реАрдВ рдХрд░реЗрдЧрд╛ред рдХрд╛рд╢, рдХрднреА рдирд╣реАрдВред рдФрд░ рдмрд╛рдХреА рджрд┐рд▓рдЪрд╕реНрдк рдерд╛ред
... рд╡реИрд╕реЗ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдПрдХ рд▓рд╛рдЗрд╡ рд╕рд░реНрд╡рд░ рд╣реИ, рдФрд░ рдпрд╣ рдЬреАрд╡рд┐рдд рд╣реИ, рддреЛ рдЖрдк рджреВрд░рд╕реНрде рд░реВрдк рд╕реЗ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЗрд╕рдХреЗ рдХрдВрд╕реЛрд▓ рдкрд░ рдХреНрдпрд╛ рд╣реЛ рд░рд╣рд╛ рд╣реИ - рдмрд┐рд▓реНрд▓реА / рджреЗрд╡ / vcsa *ред рдФрд░ рд╡рд┐рд╢реЗрд╖ рдкреНрд░рд╢рдВрд╕рдХ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рджреЗрдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рдЕрдиреНрдп рд▓реЛрдЧ рд╢рд╛рдиреНрддрд┐ рдкрд░ рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред