Linenoise: Ctrl-z (SIGSTOP) рдХреЛ рдареАрдХ рд╕реЗ рдирд┐рдпрдВрддреНрд░рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдордИ 2017  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: antirez/linenoise

рдЬрдм рдореИрдВ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ ctrl-z рджрдмрд╛рддрд╛ рд╣реВрдВ (рд╕рд┐рдЧрд╕реНрдЯреЙрдк рднреЗрдЬ рд░рд╣рд╛ рд╣реВрдВ) рддреЛ рдпрд╣ рдЗрдирдкреБрдЯ рд▓рд╛рдЗрди рдкрд░ рд╕рд┐рд░реНрдл тЙд рдбрд╛рд▓рддрд╛ рд╣реИред рдореБрдЭреЗ рдирд╣реАрдВ рдкрддрд╛ рдХреНрдпреЛрдВ рдФрд░ рдХреИрд╕реЗ, рд▓реЗрдХрд┐рди рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЛ рд░реЛрдХрдирд╛ рдФрд░ рдЦреЛрд▓ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдирд╛ рд╣реИред рдлрд┐рд░ рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде fg рдореБрдЭреЗ рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред

тФмтФА[arne@arne-thinkpad:~/proj/c++/linenoise]тФА[18:05:53]
тХ░тФА>$ ./linenoise_example 
hello> foo
echo: 'foo'
hello> 
echo: ''
hello> 

тФмтФА[arne@arne-thinkpad:~/proj/c++/linenoise]тФА[18:05:54]
тХ░тФА>$ python
Python 3.6.1 (default, Mar 27 2017, 00:27:06) 
[GCC 6.3.1 20170306] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> foo = 17
'python' has gestoppt

тФмтФА[arne@arne-thinkpad:~/proj/c++/linenoise]тФА[18:06:07]
тФВ 1 28968   0%  gestoppt    python
тХ░тФА>$ fg
Job 1, 'python' in den Vordergrund schicken

>>> print(foo)
17

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

CTRL+Z рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреАрд╡ рдмреЗрдиреЗрдЯ рдиреЗ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ: https://github.com/msteveb/linenoise/commit/29aedbd22b5e3529aff1f85ec1b3164118b83291

рдореИрдВрдиреЗ рдкреИрдЪ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ (https://github.com/antirez/linenoise/commit/4a961c0108720741e2683868eb10495f015ee422) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

commit d9400774549967cda04cfa04f56ed956cd79147c
Author: Steve Bennett <[email protected]>
Date:   Mon Jan 1 13:11:16 2018 +1000

    Enable ^Z (SUSP) support

    Allows the current process to be backgrounded and then resumed.

    Signed-off-by: Steve Bennett <[email protected]>

    (adaptations)

    Signed-off-by: Alexander F. Mayer <[email protected]>

diff --git a/linenoise.c b/linenoise.c
index 10ffd71..d861505 100644
--- a/linenoise.c
+++ b/linenoise.c
@@ -109,6 +109,7 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
+#include <signal.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include <sys/stat.h>
@@ -168,6 +169,7 @@ enum KEY_ACTION{
    CTRL_T = 20,        /* Ctrl-t */
    CTRL_U = 21,        /* Ctrl+u */
    CTRL_W = 23,        /* Ctrl+w */
+   CTRL_Z = 26,        /* Ctrl+z */
    ESC = 27,           /* Escape */
    BACKSPACE =  127    /* Backspace */
 };
@@ -830,6 +832,16 @@ static int linenoiseEdit(int stdin_fd, int stdout_fd, char *buf, size_t buflen,
         case CTRL_C:     /* ctrl-c */
             errno = EAGAIN;
             return -1;
+        case CTRL_Z:     /* ctrl-z */
+#ifdef SIGTSTP
+            /* send ourselves SIGSUSP */
+            disableRawMode(STDIN_FILENO);
+            raise(SIGTSTP);
+            /* and resume */
+            enableRawMode(STDIN_FILENO);
+            refreshLine(&l);
+#endif
+            continue;
         case BACKSPACE:   /* backspace */
         case 8:     /* ctrl-h */
             linenoiseEditBackspace(&l);

рд╕рднреА 8 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдк рдЕрдкрдиреЗ рдкреНрд░реЙрдореНрдкреНрдЯ рдХреЛ 0.0 . рдЬреИрд╕рд╛ рдХреИрд╕реЗ рдмрдирд╛рддреЗ рд╣реИрдВ

@ krux02 рдореИрдВ рджреЗрдЦ рд░рд╣рд╛ рд╣реВрдБ рдХрд┐ рдЖрдк c++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, @yhirose рдореЗрдВ рдПрдХ рд▓рд┐рдирдиреЛрдЗрдЬрд╝ рд╣реИ рдЬрд┐рд╕реЗ c++ рдореЗрдВ рдкреЛрд░реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: https://github.com/yhirose/cpp-linenoiseред рдпрд╣ рднреА UTF8 рд╕рдХреНрд╖рдо рд╣реИред

рдХреНрдпрд╛ рдЖрдк рдЕрдкрдиреЗ linenoise_example рдХреЛрдб рдХрд╛ рд╕рд╛рд░ рд╕рд╛рдЭрд╛ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ?

рдЕрд╕рд▓ рдореЗрдВ рдореИрдВ рд╕реА ++ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд░ рд░рд╣рд╛ рд╣реВрдВред рдореИрдВ рдмрд╣реБрдд рд╕рд╛рд░реЗ рд╕реА ++ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддрд╛ рдерд╛ рд▓реЗрдХрд┐рди рдЕрдм рдореИрдВ рдирд┐рдо рдХрд░рддрд╛ рд╣реВрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдореИрдВ рдпрд╣ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдореЗрд░реА рд╕рдорд╕реНрдпрд╛ рдирд┐рдо рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рдХрд┐рд╕реА рднреА рдЪреАрдЬрд╝ рд╕реЗ рдирд╣реАрдВ рдЖрддреА рд╣реИ, рдЗрд╕рд▓рд┐рдП рдореИрдВрдиреЗ рдПрдХ рд╕реА ++ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдпрд╛ред

рдореЗрд░реЗ рдЕрдиреБрднрд╡ рд╕реЗ рд╕реА рдПрдкреАрдЖрдИ рдареАрдХ рд╣реИ, рдореБрдЭреЗ рд╕реА ++ рд╕рдВрд╕реНрдХрд░рдг рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдореБрдЭреЗ рдЗрд╕ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдореЗрдВ utf8 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдореЗрдВ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рдереАред рдореБрдЭреЗ рдЬреЛ рдпрд╛рдж рдЖ рд░рд╣рд╛ рд╣реИ рд╡рд╣ рдХрдИ рдХреАрдмреЛрд░реНрдб рдХрдорд╛рдВрдб рд╣реИрдВ рдЬрд┐рдирд╕реЗ рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рд░реАрдбрд▓рд╛рдЗрди рд╕реЗ рдмрд╣реБрдд рдкрд░рд┐рдЪрд┐рдд рд╣реВрдВред

рдореИрдВ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдХреЗ рдПрдХ рд▓рд┐рдкрдЯреЗ рд╕рдВрд╕реНрдХрд░рдг рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ, рдЗрд╕рд▓рд┐рдП рдореБрдЭреЗ рдпрдХреАрди рдирд╣реАрдВ рд╣реИ рдХрд┐ рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдЖрдкрдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдореВрд▓реНрдпрд╡рд╛рди рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рд╡рд╣ рдЙрджрд╛рд╣рд░рдг рд╣реИ рдЬрд┐рд╕рдХрд╛ рдореИрдВ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реВрдВ рдФрд░ рдпрд╣ рд▓рд┐рдирдиреЛрдЗрд╕ рдЙрдиреНрдореБрдЦ рдирд╣реАрдВ рд╣реИ: https://github.com/krux02/opengl -рд╕реИрдВрдбрдмреЙрдХреНрд╕/рдмреНрд▓реЙрдм/рдорд╛рд╕реНрдЯрд░/рдЙрджрд╛рд╣рд░рдг/рдХрдВрд╕реЛрд▓.рдирд┐рдо

рдЙрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╡рд┐рдЪрд╛рд░ рдпрд╣ рдирд┐рдо рдХреЗ рдореИрдХреНрд░реЛ рд╕рд┐рд╕реНрдЯрдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рдореЗрдВ рдПрдХ рдордирдорд╛рдирд╛ рдХрд╛рд░реНрдп рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рд▓реЗрдХрд┐рди рд╣реБрдб рдХреЗ рддрд╣рдд рдХрдорд╛рдВрдб рджреБрднрд╛рд╖рд┐рдпрд╛ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рд╣реИред

@ рдХреНрд░реБрдХреНрд╕02

рдареАрдХ рд╣реИ, рдореИрдВ рдкреЗрд╢реЗрд╡рд░ рд░реВрдк рд╕реЗ рднрд╛рд╖рд╛ рдЕрдЬреНрдЮреЗрдпрд╡рд╛рджреА рд╣реВрдВ рд▓реЗрдХрд┐рди рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рдореИрдВ рдПрдХ рд╕реА рд╕реНрдиреЛрдм рднреА рд╣реВрдВ: рдмреНрд▓рд╢: рдореБрдЭреЗ рд╕реА рдкрд╕рдВрдж рд╣реИред

рдпрд╛рдж рд░рдЦреЗрдВ, рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдПрдХ рдирдВрдЧреА рд╣рдбреНрдбрд┐рдпрд╛рдБ рд╣реИрдВ, рдХреЛрдИ рддрд╛рдордЭрд╛рдо рдкреБрд╕реНрддрдХрд╛рд▓рдп рдирд╣реАрдВ рд╣реИ, рдпрд╣ рдПрдХ рдбрд┐рдЬрд╝рд╛рдЗрди рд▓рдХреНрд╖реНрдп рд╣реИред

рдореИрдВ рдЗрд╕ рдкрд░ рдЧреМрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕ рд╕рдкреНрддрд╛рд╣рд╛рдВрдд рддрдХ рд╕рдордп рдирд╣реАрдВ рд╣реЛрдЧрд╛, рдЗрд╕реЗ рддрдм рддрдХ рдЦреБрд▓рд╛ рдЫреЛрдбрд╝ рджреЗрдВ рдЬрдм рддрдХ рдХрд┐ рдХреЛрдИ рдЗрд╕реЗ рдЖрдкрдХреЗ рд▓рд┐рдП рд╣рд▓ рди рдХрд░ рджреЗред

рдЕрд░реЗ! рдЖрдк рдирд┐рдо рдХреЗ рдкрд╣рд▓реЗ рдкрдиреНрдиреЗ рдкрд░ рд╣реИрдВ! рдЕрдЪреНрдЫрд╛ рдХрд╛рдо рдЕрд░реНрдиреЗ!

@ рдХреНрд░реБрдХреНрд╕02

рдареАрдХ рд╣реИ, рдпрд╣ рд╕реА рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЙрд╕ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХрд╛ рдЖрдк рд╡рд░реНрдгрди рдХрд░ рд░рд╣реЗ рд╣реИрдВ:

https://github.com/Sonophoto/shellnoise

рд╣рд╛рд▓рд╛рдВрдХрд┐ Ctrl-C рдФрд░ Ctrl-D рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рд╕реЗ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░рддреЗ рд╣реИрдВред

рдРрд╕рд╛ рдкреНрд░рддреАрдд рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдЗрдирдкреБрдЯ рдХреЗ рд░реВрдк рдореЗрдВ Ctrl-Z рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░ рд░рд╣рд╛ рд╣реИ (рдФрд░ рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдЗрд╕реЗ рдХреЗрд╡рд▓ рдПрдХ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЗ рд░реВрдк рдореЗрдВ рдЯрд░реНрдорд┐рдирд▓ рдкрд░ рдЧреВрдБрдЬрддрд╛ рд╣реИ) рдЗрд╕реЗ рд╢реЗрд▓ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдпред

рдУрд╣ рдФрд░ рдзреНрдпрд╛рди рджреЗрдВ рдХрд┐ рдпрд╣ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд▓рд┐рдирдиреЛрдЗрд╕ рдорд▓реНрдЯреА-рд▓рд╛рдЗрди рдЗрдирдкреБрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реИред

@ рдХреНрд░реБрдХреНрд╕02

рдереЛрдбрд╝реА рдЦреБрджрд╛рдИ рдХреЗ рд╕рд╛рде рдореЗрд░рд╛ рд╕рдмрд╕реЗ рдЕрдЪреНрдЫрд╛ рдЕрдиреБрдорд╛рди рдпрд╣ рд╣реИ рдХрд┐ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдЯрд░реНрдорд┐рдирд▓ рдХреЛ рдХрдЪреНрдЪреЗ рдореЛрдб рдореЗрдВ рд░рдЦрддрд╛ рд╣реИ рдФрд░ рд╡рд╣ рд╕реЗрдЯрдЕрдк рдЗрд╕реЗ ASCII рдирд┐рдпрдВрддреНрд░рдг рдХреЛрдб рдХреЗ рдмрдЬрд╛рдп рдПрдХ рдЪрд░рд┐рддреНрд░ рдХреЗ рд░реВрдк рдореЗрдВ Ctrl-Z рдХреЛ рдХреИрдкреНрдЪрд░ рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдмрди рд░рд╣рд╛ рд╣реИред

https://github.com/antirez/linenoise/blob/master/linenoise.c#L217 -L251

рдФрд░ U+001A, рдЬрдм UTF8 рдореЗрдВ рдкреНрд░рд┐рдВрдЯ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рддреЛ Ctrl-Z рдХреЛрдб рд╣реЛрддрд╛ рд╣реИ

@hoelzro рдЗрд╕ рдкреИрдЪ рдХреЗ рд╕рд╛рде рдЖрдпрд╛ рд▓реЗрдХрд┐рди рдпрд╣ Ctrl-C рдХреЛ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рд╣реИрдВрдбрд▓ рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐ рдЗрд╕реЗ рднреА рдкрдХрдбрд╝рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╕ рд▓рд┐рдиреЗрдирд╛рдЗрдЬрд╝ рдореЗрдВ рд╕рдВрднрд╛рд▓рд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

https://github.com/hoelzro/p6-linenoise/commit/7d0bb83cab34ca58f7a487b5df30736d058112cf

CTRL+Z рдХрд╛рд░реНрдпрдХреНрд╖рдорддрд╛ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рдПрдХ рдмрд╣реБрдд рд╣реА рд╕рд░рд▓ рддрд░реАрдХрд╛ рд╣реИ, рдЬреИрд╕рд╛ рдХрд┐ рд╕реНрдЯреАрд╡ рдмреЗрдиреЗрдЯ рдиреЗ рд▓рд┐рдиреЗрдиреЛрдЗрд╕ рдХреЗ рдЕрдкрдиреЗ рдХрд╛рдВрдЯреЗ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рд╣реИ: https://github.com/msteveb/linenoise/commit/29aedbd22b5e3529aff1f85ec1b3164118b83291

рдореИрдВрдиреЗ рдкреИрдЪ рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд▓рд┐рдпрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдпрд╣ рд╡рд░реНрддрдорд╛рди рдорд╛рд╕реНрдЯрд░ (https://github.com/antirez/linenoise/commit/4a961c0108720741e2683868eb10495f015ee422) рдХреЗ рд╢реАрд░реНрд╖ рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ рдФрд░ рдпрд╣ рдкрд░рд┐рдгрд╛рдо рд╣реИ:

commit d9400774549967cda04cfa04f56ed956cd79147c
Author: Steve Bennett <[email protected]>
Date:   Mon Jan 1 13:11:16 2018 +1000

    Enable ^Z (SUSP) support

    Allows the current process to be backgrounded and then resumed.

    Signed-off-by: Steve Bennett <[email protected]>

    (adaptations)

    Signed-off-by: Alexander F. Mayer <[email protected]>

diff --git a/linenoise.c b/linenoise.c
index 10ffd71..d861505 100644
--- a/linenoise.c
+++ b/linenoise.c
@@ -109,6 +109,7 @@
 #include <stdio.h>
 #include <errno.h>
 #include <string.h>
+#include <signal.h>
 #include <stdlib.h>
 #include <ctype.h>
 #include <sys/stat.h>
@@ -168,6 +169,7 @@ enum KEY_ACTION{
    CTRL_T = 20,        /* Ctrl-t */
    CTRL_U = 21,        /* Ctrl+u */
    CTRL_W = 23,        /* Ctrl+w */
+   CTRL_Z = 26,        /* Ctrl+z */
    ESC = 27,           /* Escape */
    BACKSPACE =  127    /* Backspace */
 };
@@ -830,6 +832,16 @@ static int linenoiseEdit(int stdin_fd, int stdout_fd, char *buf, size_t buflen,
         case CTRL_C:     /* ctrl-c */
             errno = EAGAIN;
             return -1;
+        case CTRL_Z:     /* ctrl-z */
+#ifdef SIGTSTP
+            /* send ourselves SIGSUSP */
+            disableRawMode(STDIN_FILENO);
+            raise(SIGTSTP);
+            /* and resume */
+            enableRawMode(STDIN_FILENO);
+            refreshLine(&l);
+#endif
+            continue;
         case BACKSPACE:   /* backspace */
         case 8:     /* ctrl-h */
             linenoiseEditBackspace(&l);

рдХреНрдпрд╛ рдпрд╣ рдкреГрд╖реНрда рдЙрдкрдпреЛрдЧреА рдерд╛?
0 / 5 - 0 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

fatcerberus picture fatcerberus  ┬╖  5рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

denisvm picture denisvm  ┬╖  9рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ozancaglayan picture ozancaglayan  ┬╖  21рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

ghost picture ghost  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

JelteF picture JelteF  ┬╖  8рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ