Platon Technologies
not logged in Login Registration
EnglishSlovak
open source software development celebrating 10 years of open source development! Friday, October 16, 2026

Diff for tucniak/cuchar/cc_term.c between version 1.5 and 1.6

version 1.5, 2005/12/02 17:15:00 version 1.6, 2005/12/08 21:13:04
Line 7 
Line 7 
   
 #include "cc.h"  #include "cc.h"
   
 bool hascolors;  bool _cc_hascolors;
 long screenx,  long _cc_screenx,
      screeny;       _cc_screeny;
 bool uglycharset=false;  bool _cc_uglycharset=false;
 char *mapsymbol="lmkjtwuvqxna,+-.",  char *_cc_mapsymbol="lmkjtwuvqxna,+-.",
      *ugmsymbol="++++++++-|+ <>AV";       *_cc_ugmsymbol="++++++++-|+ <>AV";
 short keymap[]={  short _cc_keymap[]={
   KEY_LEFT,4,END_SEQ,CC_K_LEFT,    KEY_LEFT,4,END_SEQ,CC_KEY_LEFT,
   KEY_SLEFT,4,END_SEQ,CC_K_LEFT|CC_D_SHIFT,    KEY_SLEFT,4,END_SEQ,CC_KEY_LEFT|CC_MOD_SHIFT,
   KEY_RIGHT,4,END_SEQ,CC_K_RIGHT,    KEY_RIGHT,4,END_SEQ,CC_KEY_RIGHT,
   KEY_SRIGHT,4,END_SEQ,CC_K_RIGHT|CC_D_SHIFT,    KEY_SRIGHT,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_SHIFT,
   KEY_UP,4,END_SEQ,CC_K_UP,    KEY_UP,4,END_SEQ,CC_KEY_UP,
   KEY_DOWN,4,END_SEQ,CC_K_DOWN,    KEY_DOWN,4,END_SEQ,CC_KEY_DOWN,
   KEY_HOME,4,END_SEQ,CC_K_HOME,    KEY_HOME,4,END_SEQ,CC_KEY_HOME,
   KEY_SHOME,4,END_SEQ,CC_K_HOME|CC_D_SHIFT,    KEY_SHOME,4,END_SEQ,CC_KEY_HOME|CC_MOD_SHIFT,
   KEY_END,4,END_SEQ,CC_K_END,    KEY_END,4,END_SEQ,CC_KEY_END,
   KEY_SEND,4,END_SEQ,CC_K_END|CC_D_SHIFT,    KEY_SEND,4,END_SEQ,CC_KEY_END|CC_MOD_SHIFT,
   KEY_NPAGE,4,END_SEQ,CC_K_PGDOWN,    KEY_NPAGE,4,END_SEQ,CC_KEY_PGDOWN,
   KEY_PPAGE,4,END_SEQ,CC_K_PGUP,    KEY_PPAGE,4,END_SEQ,CC_KEY_PGUP,
   KEY_B2,4,END_SEQ,CC_K_CENTER,    KEY_B2,4,END_SEQ,CC_KEY_CENTER,
   KEY_BACKSPACE,4,END_SEQ,CC_K_BACK,    KEY_BACKSPACE,4,END_SEQ,CC_KEY_BACK,
   127,4,END_SEQ,CC_K_BACK,    127,4,END_SEQ,CC_KEY_BACK,
   KEY_ENTER,4,END_SEQ,CC_K_ENTER,    KEY_ENTER,4,END_SEQ,CC_KEY_ENTER,
   10,4,END_SEQ,CC_K_ENTER,    10,4,END_SEQ,CC_KEY_ENTER,
   9,4,END_SEQ,CC_K_TAB,    9,4,END_SEQ,CC_KEY_TAB,
   KEY_BTAB,4,END_SEQ,CC_K_TAB|CC_D_SHIFT,    KEY_BTAB,4,END_SEQ,CC_KEY_TAB|CC_MOD_SHIFT,
   KEY_DC,4,END_SEQ,CC_K_DEL,    KEY_DC,4,END_SEQ,CC_KEY_DEL,
   KEY_SDC,4,END_SEQ,CC_K_DEL|CC_D_SHIFT,    KEY_SDC,4,END_SEQ,CC_KEY_DEL|CC_MOD_SHIFT,
   KEY_IC,4,END_SEQ,CC_K_INS,    KEY_IC,4,END_SEQ,CC_KEY_INS,
   KEY_SIC,4,END_SEQ,CC_K_INS|CC_D_SHIFT,    KEY_SIC,4,END_SEQ,CC_KEY_INS|CC_MOD_SHIFT,
   KEY_BREAK,4,END_SEQ,CC_K_PAUSE,    KEY_BREAK,4,END_SEQ,CC_KEY_PAUSE,
   KEY_F(1),4,END_SEQ,CC_K_F1,    KEY_F(1),4,END_SEQ,CC_KEY_F1,
   KEY_F(2),4,END_SEQ,CC_K_F2,    KEY_F(2),4,END_SEQ,CC_KEY_F2,
   KEY_F(3),4,END_SEQ,CC_K_F3,    KEY_F(3),4,END_SEQ,CC_KEY_F3,
   KEY_F(4),4,END_SEQ,CC_K_F4,    KEY_F(4),4,END_SEQ,CC_KEY_F4,
   KEY_F(5),4,END_SEQ,CC_K_F5,    KEY_F(5),4,END_SEQ,CC_KEY_F5,
   KEY_F(6),4,END_SEQ,CC_K_F6,    KEY_F(6),4,END_SEQ,CC_KEY_F6,
   KEY_F(7),4,END_SEQ,CC_K_F7,    KEY_F(7),4,END_SEQ,CC_KEY_F7,
   KEY_F(8),4,END_SEQ,CC_K_F8,    KEY_F(8),4,END_SEQ,CC_KEY_F8,
   KEY_F(9),4,END_SEQ,CC_K_F9,    KEY_F(9),4,END_SEQ,CC_KEY_F9,
   KEY_F(10),4,END_SEQ,CC_K_F10,    KEY_F(10),4,END_SEQ,CC_KEY_F10,
   KEY_F(11),4,END_SEQ,CC_K_F11,    KEY_F(11),4,END_SEQ,CC_KEY_F11,
   KEY_F(12),4,END_SEQ,CC_K_F12,    KEY_F(12),4,END_SEQ,CC_KEY_F12,
   KEY_F(13),4,END_SEQ,CC_K_F1|CC_D_SHIFT,    KEY_F(13),4,END_SEQ,CC_KEY_F1|CC_MOD_SHIFT,
   KEY_F(14),4,END_SEQ,CC_K_F2|CC_D_SHIFT,    KEY_F(14),4,END_SEQ,CC_KEY_F2|CC_MOD_SHIFT,
   KEY_F(15),4,END_SEQ,CC_K_F3|CC_D_SHIFT,    KEY_F(15),4,END_SEQ,CC_KEY_F3|CC_MOD_SHIFT,
   KEY_F(16),4,END_SEQ,CC_K_F4|CC_D_SHIFT,    KEY_F(16),4,END_SEQ,CC_KEY_F4|CC_MOD_SHIFT,
   KEY_F(17),4,END_SEQ,CC_K_F5|CC_D_SHIFT,    KEY_F(17),4,END_SEQ,CC_KEY_F5|CC_MOD_SHIFT,
   KEY_F(18),4,END_SEQ,CC_K_F6|CC_D_SHIFT,    KEY_F(18),4,END_SEQ,CC_KEY_F6|CC_MOD_SHIFT,
   KEY_F(19),4,END_SEQ,CC_K_F7|CC_D_SHIFT,    KEY_F(19),4,END_SEQ,CC_KEY_F7|CC_MOD_SHIFT,
   KEY_F(20),4,END_SEQ,CC_K_F8|CC_D_SHIFT,    KEY_F(20),4,END_SEQ,CC_KEY_F8|CC_MOD_SHIFT,
   KEY_F(21),4,END_SEQ,CC_K_F9|CC_D_SHIFT,    KEY_F(21),4,END_SEQ,CC_KEY_F9|CC_MOD_SHIFT,
   KEY_F(22),4,END_SEQ,CC_K_F10|CC_D_SHIFT,    KEY_F(22),4,END_SEQ,CC_KEY_F10|CC_MOD_SHIFT,
   KEY_F(23),4,END_SEQ,CC_K_F11|CC_D_SHIFT,    KEY_F(23),4,END_SEQ,CC_KEY_F11|CC_MOD_SHIFT,
   KEY_F(24),4,END_SEQ,CC_K_F12|CC_D_SHIFT,    KEY_F(24),4,END_SEQ,CC_KEY_F12|CC_MOD_SHIFT,
   KEY_F(25),4,END_SEQ,CC_K_F1|CC_D_CTRL,    KEY_F(25),4,END_SEQ,CC_KEY_F1|CC_MOD_CTRL,
   KEY_F(26),4,END_SEQ,CC_K_F2|CC_D_CTRL,    KEY_F(26),4,END_SEQ,CC_KEY_F2|CC_MOD_CTRL,
   KEY_F(27),4,END_SEQ,CC_K_F3|CC_D_CTRL,    KEY_F(27),4,END_SEQ,CC_KEY_F3|CC_MOD_CTRL,
   KEY_F(28),4,END_SEQ,CC_K_F4|CC_D_CTRL,    KEY_F(28),4,END_SEQ,CC_KEY_F4|CC_MOD_CTRL,
   KEY_F(29),4,END_SEQ,CC_K_F5|CC_D_CTRL,    KEY_F(29),4,END_SEQ,CC_KEY_F5|CC_MOD_CTRL,
   KEY_F(30),4,END_SEQ,CC_K_F6|CC_D_CTRL,    KEY_F(30),4,END_SEQ,CC_KEY_F6|CC_MOD_CTRL,
   KEY_F(31),4,END_SEQ,CC_K_F7|CC_D_CTRL,    KEY_F(31),4,END_SEQ,CC_KEY_F7|CC_MOD_CTRL,
   KEY_F(32),4,END_SEQ,CC_K_F8|CC_D_CTRL,    KEY_F(32),4,END_SEQ,CC_KEY_F8|CC_MOD_CTRL,
   KEY_F(33),4,END_SEQ,CC_K_F9|CC_D_CTRL,    KEY_F(33),4,END_SEQ,CC_KEY_F9|CC_MOD_CTRL,
   KEY_F(34),4,END_SEQ,CC_K_F10|CC_D_CTRL,    KEY_F(34),4,END_SEQ,CC_KEY_F10|CC_MOD_CTRL,
   KEY_F(35),4,END_SEQ,CC_K_F11|CC_D_CTRL,    KEY_F(35),4,END_SEQ,CC_KEY_F11|CC_MOD_CTRL,
   KEY_F(36),4,END_SEQ,CC_K_F12|CC_D_CTRL,    KEY_F(36),4,END_SEQ,CC_KEY_F12|CC_MOD_CTRL,
   KEY_F(37),4,END_SEQ,CC_K_F1|CC_D_SHIFT|CC_D_CTRL,    KEY_F(37),4,END_SEQ,CC_KEY_F1|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(38),4,END_SEQ,CC_K_F2|CC_D_SHIFT|CC_D_CTRL,    KEY_F(38),4,END_SEQ,CC_KEY_F2|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(39),4,END_SEQ,CC_K_F3|CC_D_SHIFT|CC_D_CTRL,    KEY_F(39),4,END_SEQ,CC_KEY_F3|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(40),4,END_SEQ,CC_K_F4|CC_D_SHIFT|CC_D_CTRL,    KEY_F(40),4,END_SEQ,CC_KEY_F4|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(41),4,END_SEQ,CC_K_F5|CC_D_SHIFT|CC_D_CTRL,    KEY_F(41),4,END_SEQ,CC_KEY_F5|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(42),4,END_SEQ,CC_K_F6|CC_D_SHIFT|CC_D_CTRL,    KEY_F(42),4,END_SEQ,CC_KEY_F6|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(43),4,END_SEQ,CC_K_F7|CC_D_SHIFT|CC_D_CTRL,    KEY_F(43),4,END_SEQ,CC_KEY_F7|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(44),4,END_SEQ,CC_K_F8|CC_D_SHIFT|CC_D_CTRL,    KEY_F(44),4,END_SEQ,CC_KEY_F8|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(45),4,END_SEQ,CC_K_F9|CC_D_SHIFT|CC_D_CTRL,    KEY_F(45),4,END_SEQ,CC_KEY_F9|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(46),4,END_SEQ,CC_K_F10|CC_D_SHIFT|CC_D_CTRL,    KEY_F(46),4,END_SEQ,CC_KEY_F10|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(47),4,END_SEQ,CC_K_F11|CC_D_SHIFT|CC_D_CTRL,    KEY_F(47),4,END_SEQ,CC_KEY_F11|CC_MOD_SHIFT|CC_MOD_CTRL,
   KEY_F(48),4,END_SEQ,CC_K_F12|CC_D_SHIFT|CC_D_CTRL,    KEY_F(48),4,END_SEQ,CC_KEY_F12|CC_MOD_SHIFT|CC_MOD_CTRL,
   27,LAST_KEY,    27,LAST_KEY,
     ERR,4,END_SEQ,CC_K_ESC,      ERR,4,END_SEQ,CC_KEY_ESC,
     79,114,      79,114,
       51,18,        51,18,
         80,4,END_SEQ,CC_K_F1|CC_D_ALT,          80,4,END_SEQ,CC_KEY_F1|CC_MOD_ALT,
         81,4,END_SEQ,CC_K_F2|CC_D_ALT,          81,4,END_SEQ,CC_KEY_F2|CC_MOD_ALT,
         82,4,END_SEQ,CC_K_F3|CC_D_ALT,          82,4,END_SEQ,CC_KEY_F3|CC_MOD_ALT,
         83,LAST_KEY,END_SEQ,CC_K_F4|CC_D_ALT,          83,LAST_KEY,END_SEQ,CC_KEY_F4|CC_MOD_ALT,
       52,18,        52,18,
         80,4,END_SEQ,CC_K_F1|CC_D_ALT|CC_D_SHIFT,          80,4,END_SEQ,CC_KEY_F1|CC_MOD_ALT|CC_MOD_SHIFT,
         81,4,END_SEQ,CC_K_F2|CC_D_ALT|CC_D_SHIFT,          81,4,END_SEQ,CC_KEY_F2|CC_MOD_ALT|CC_MOD_SHIFT,
         82,4,END_SEQ,CC_K_F3|CC_D_ALT|CC_D_SHIFT,          82,4,END_SEQ,CC_KEY_F3|CC_MOD_ALT|CC_MOD_SHIFT,
         83,LAST_KEY,END_SEQ,CC_K_F4|CC_D_ALT|CC_D_SHIFT,          83,LAST_KEY,END_SEQ,CC_KEY_F4|CC_MOD_ALT|CC_MOD_SHIFT,
       97,4,END_SEQ,CC_K_UP|CC_D_CTRL,        97,4,END_SEQ,CC_KEY_UP|CC_MOD_CTRL,
       98,4,END_SEQ,CC_K_DOWN|CC_D_CTRL,        98,4,END_SEQ,CC_KEY_DOWN|CC_MOD_CTRL,
       99,4,END_SEQ,CC_K_RIGHT|CC_D_CTRL,        99,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_CTRL,
       100,4,END_SEQ,CC_K_LEFT|CC_D_CTRL,        100,4,END_SEQ,CC_KEY_LEFT|CC_MOD_CTRL,
       106,4,END_SEQ,'*',        106,4,END_SEQ,'*',
       107,4,END_SEQ,'+',        107,4,END_SEQ,'+',
       109,4,END_SEQ,'-',        109,4,END_SEQ,'-',
       110,4,END_SEQ,CC_K_DEL,        110,4,END_SEQ,CC_KEY_DEL,
       111,4,END_SEQ,'/',        111,4,END_SEQ,'/',
       112,4,END_SEQ,CC_K_INS,        112,4,END_SEQ,CC_KEY_INS,
       113,4,END_SEQ,CC_K_END,        113,4,END_SEQ,CC_KEY_END,
       114,4,END_SEQ,CC_K_DOWN,        114,4,END_SEQ,CC_KEY_DOWN,
       115,4,END_SEQ,CC_K_PGDOWN,        115,4,END_SEQ,CC_KEY_PGDOWN,
       116,4,END_SEQ,CC_K_LEFT,        116,4,END_SEQ,CC_KEY_LEFT,
       117,4,END_SEQ,CC_K_CENTER,        117,4,END_SEQ,CC_KEY_CENTER,
       118,4,END_SEQ,CC_K_RIGHT,        118,4,END_SEQ,CC_KEY_RIGHT,
       119,4,END_SEQ,CC_K_HOME,        119,4,END_SEQ,CC_KEY_HOME,
       120,4,END_SEQ,CC_K_UP,        120,4,END_SEQ,CC_KEY_UP,
       121,LAST_KEY,END_SEQ,CC_K_PGUP,        121,LAST_KEY,END_SEQ,CC_KEY_PGUP,
     91,LAST_KEY,      91,LAST_KEY,
       80,4,END_SEQ,CC_K_PAUSE,        80,4,END_SEQ,CC_KEY_PAUSE,
       49,180,        49,180,
         49,6,          49,6,
           126,LAST_KEY,END_SEQ,CC_K_F1,            126,LAST_KEY,END_SEQ,CC_KEY_F1,
         50,6,          50,6,
           126,LAST_KEY,END_SEQ,CC_K_F2,            126,LAST_KEY,END_SEQ,CC_KEY_F2,
         51,6,          51,6,
           126,LAST_KEY,END_SEQ,CC_K_F3,            126,LAST_KEY,END_SEQ,CC_KEY_F3,
         52,6,          52,6,
           126,LAST_KEY,END_SEQ,CC_K_F4,            126,LAST_KEY,END_SEQ,CC_KEY_F4,
         53,16,          53,16,
           59,LAST_KEY,            59,LAST_KEY,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F5|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F5|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F5|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F5|CC_MOD_ALT|CC_MOD_SHIFT,
         55,16,          55,16,
           59,LAST_KEY,            59,LAST_KEY,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F6|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F6|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F6|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F6|CC_MOD_ALT|CC_MOD_SHIFT,
         56,16,          56,16,
           59,LAST_KEY,            59,LAST_KEY,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F7|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F7|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F7|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F7|CC_MOD_ALT|CC_MOD_SHIFT,
         57,16,          57,16,
           59,LAST_KEY,            59,LAST_KEY,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F8|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F8|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F8|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F8|CC_MOD_ALT|CC_MOD_SHIFT,
         59,LAST_KEY,          59,LAST_KEY,
           50,10,            50,10,
             65,4,END_SEQ,CC_K_UP|CC_D_SHIFT,              65,4,END_SEQ,CC_KEY_UP|CC_MOD_SHIFT,
             66,LAST_KEY,END_SEQ,CC_K_DOWN|CC_D_SHIFT,              66,LAST_KEY,END_SEQ,CC_KEY_DOWN|CC_MOD_SHIFT,
           51,26,            51,26,
             65,4,END_SEQ,CC_K_UP|CC_D_ALT,              65,4,END_SEQ,CC_KEY_UP|CC_MOD_ALT,
             66,4,END_SEQ,CC_K_DOWN|CC_D_ALT,              66,4,END_SEQ,CC_KEY_DOWN|CC_MOD_ALT,
             67,4,END_SEQ,CC_K_RIGHT|CC_D_ALT,              67,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_ALT,
             68,4,END_SEQ,CC_K_LEFT|CC_D_ALT,              68,4,END_SEQ,CC_KEY_LEFT|CC_MOD_ALT,
             70,4,END_SEQ,CC_K_END|CC_D_ALT,              70,4,END_SEQ,CC_KEY_END|CC_MOD_ALT,
             72,LAST_KEY,END_SEQ,CC_K_HOME|CC_D_ALT,              72,LAST_KEY,END_SEQ,CC_KEY_HOME|CC_MOD_ALT,
           53,26,            53,26,
             65,4,END_SEQ,CC_K_UP|CC_D_CTRL,              65,4,END_SEQ,CC_KEY_UP|CC_MOD_CTRL,
             66,4,END_SEQ,CC_K_DOWN|CC_D_CTRL,              66,4,END_SEQ,CC_KEY_DOWN|CC_MOD_CTRL,
             67,4,END_SEQ,CC_K_RIGHT|CC_D_CTRL,              67,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_CTRL,
             68,4,END_SEQ,CC_K_LEFT|CC_D_CTRL,              68,4,END_SEQ,CC_KEY_LEFT|CC_MOD_CTRL,
             70,4,END_SEQ,CC_K_END|CC_D_CTRL,              70,4,END_SEQ,CC_KEY_END|CC_MOD_CTRL,
             72,LAST_KEY,END_SEQ,CC_K_HOME|CC_D_CTRL,              72,LAST_KEY,END_SEQ,CC_KEY_HOME|CC_MOD_CTRL,
           54,LAST_KEY,            54,LAST_KEY,
             65,4,END_SEQ,CC_K_UP|CC_D_SHIFT|CC_D_CTRL,              65,4,END_SEQ,CC_KEY_UP|CC_MOD_SHIFT|CC_MOD_CTRL,
             66,4,END_SEQ,CC_K_DOWN|CC_D_SHIFT|CC_D_CTRL,              66,4,END_SEQ,CC_KEY_DOWN|CC_MOD_SHIFT|CC_MOD_CTRL,
             67,4,END_SEQ,CC_K_RIGHT|CC_D_SHIFT|CC_D_CTRL,              67,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_SHIFT|CC_MOD_CTRL,
             68,4,END_SEQ,CC_K_LEFT|CC_D_SHIFT|CC_D_CTRL,              68,4,END_SEQ,CC_KEY_LEFT|CC_MOD_SHIFT|CC_MOD_CTRL,
             70,4,END_SEQ,CC_K_END|CC_D_SHIFT|CC_D_CTRL,              70,4,END_SEQ,CC_KEY_END|CC_MOD_SHIFT|CC_MOD_CTRL,
             72,LAST_KEY,END_SEQ,CC_K_HOME|CC_D_SHIFT|CC_D_CTRL,              72,LAST_KEY,END_SEQ,CC_KEY_HOME|CC_MOD_SHIFT|CC_MOD_CTRL,
       50,230,        50,230,
         48,16,          48,16,
           59,LAST_KEY,            59,LAST_KEY,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F9|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F9|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F9|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F9|CC_MOD_ALT|CC_MOD_SHIFT,
         49,20,          49,20,
           59,14,            59,14,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F10|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F10|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F10|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F10|CC_MOD_ALT|CC_MOD_SHIFT,
           94,LAST_KEY,END_SEQ,CC_K_F10|CC_D_CTRL,            94,LAST_KEY,END_SEQ,CC_KEY_F10|CC_MOD_CTRL,
         51,28,          51,28,
           36,4,END_SEQ,CC_K_F11|CC_D_SHIFT,            36,4,END_SEQ,CC_KEY_F11|CC_MOD_SHIFT,
           59,14,            59,14,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F11|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F11|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F11|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F11|CC_MOD_ALT|CC_MOD_SHIFT,
           64,4,END_SEQ,CC_K_F11|CC_D_CTRL|CC_D_SHIFT,            64,4,END_SEQ,CC_KEY_F11|CC_MOD_CTRL|CC_MOD_SHIFT,
           94,LAST_KEY,END_SEQ,CC_K_F11|CC_D_CTRL,            94,LAST_KEY,END_SEQ,CC_KEY_F11|CC_MOD_CTRL,
         52,28,          52,28,
           36,4,END_SEQ,CC_K_F12|CC_D_SHIFT,            36,4,END_SEQ,CC_KEY_F12|CC_MOD_SHIFT,
           59,14,            59,14,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_F12|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_F12|CC_MOD_ALT,
             52,LAST_KEY,              52,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_F12|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_F12|CC_MOD_ALT|CC_MOD_SHIFT,
           64,4,END_SEQ,CC_K_F12|CC_D_CTRL|CC_D_SHIFT,            64,4,END_SEQ,CC_KEY_F12|CC_MOD_CTRL|CC_MOD_SHIFT,
           94,LAST_KEY,END_SEQ,CC_K_F12|CC_D_CTRL,            94,LAST_KEY,END_SEQ,CC_KEY_F12|CC_MOD_CTRL,
         53,10,          53,10,
           94,4,END_SEQ,CC_K_F3|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F3|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F3|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F3|CC_MOD_SHIFT,
         54,10,          54,10,
           94,4,END_SEQ,CC_K_F4|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F4|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F4|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F4|CC_MOD_SHIFT,
         56,10,          56,10,
           94,4,END_SEQ,CC_K_F5|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F5|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F5|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F5|CC_MOD_SHIFT,
         57,62,          57,62,
           36,4,END_SEQ,CC_K_POPUP|CC_D_SHIFT,            36,4,END_SEQ,CC_KEY_POPUP|CC_MOD_SHIFT,
           59,44,            59,44,
             50,6,              50,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_SHIFT,
             51,6,              51,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_ALT,
             52,6,              52,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_ALT|CC_MOD_SHIFT,
             53,6,              53,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_CTRL,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL,
             54,6,              54,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_CTRL|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL|CC_MOD_SHIFT,
             55,6,              55,6,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_CTRL|CC_D_ALT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL|CC_MOD_ALT,
             56,LAST_KEY,              56,LAST_KEY,
               126,LAST_KEY,END_SEQ,CC_K_POPUP|CC_D_CTRL|CC_D_ALT|CC_D_SHIFT,                126,LAST_KEY,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL|CC_MOD_ALT|
           64,4,END_SEQ,CC_K_POPUP|CC_D_CTRL|CC_D_SHIFT,                                     CC_MOD_SHIFT,
           94,4,END_SEQ,CC_K_POPUP|CC_D_CTRL,            64,4,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_POPUP,            94,4,END_SEQ,CC_KEY_POPUP|CC_MOD_CTRL,
             126,LAST_KEY,END_SEQ,CC_KEY_POPUP,
         59,LAST_KEY,          59,LAST_KEY,
           50,6,            50,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_SHIFT,
           51,6,            51,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_ALT,
           52,6,            52,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_ALT|CC_MOD_SHIFT,
           53,6,            53,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_CTRL,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_CTRL,
           54,6,            54,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_CTRL|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_CTRL|CC_MOD_SHIFT,
           55,6,            55,6,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_CTRL|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_CTRL|CC_MOD_ALT,
           56,LAST_KEY,            56,LAST_KEY,
             126,LAST_KEY,END_SEQ,CC_K_INS|CC_D_CTRL|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_INS|CC_MOD_CTRL|CC_MOD_ALT|CC_MOD_SHIFT,
       51,94,        51,94,
         36,4,END_SEQ,CC_K_DEL|CC_D_SHIFT,          36,4,END_SEQ,CC_KEY_DEL|CC_MOD_SHIFT,
         49,10,          49,10,
           94,4,END_SEQ,CC_K_F7|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F7|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F7|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F7|CC_MOD_SHIFT,
         50,10,          50,10,
           94,4,END_SEQ,CC_K_F8|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F8|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F8|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F8|CC_MOD_SHIFT,
         51,10,          51,10,
           94,4,END_SEQ,CC_K_F9|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F9|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F9|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F9|CC_MOD_SHIFT,
         52,10,          52,10,
           94,4,END_SEQ,CC_K_F10|CC_D_CTRL|CC_D_SHIFT,            94,4,END_SEQ,CC_KEY_F10|CC_MOD_CTRL|CC_MOD_SHIFT,
           126,LAST_KEY,END_SEQ,CC_K_F10|CC_D_SHIFT,            126,LAST_KEY,END_SEQ,CC_KEY_F10|CC_MOD_SHIFT,
         59,44,          59,44,
           50,6,            50,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_SHIFT,
           51,6,            51,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_ALT,
           52,6,            52,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_ALT|CC_MOD_SHIFT,
           53,6,            53,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_CTRL,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_CTRL,
           54,6,            54,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_CTRL|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_CTRL|CC_MOD_SHIFT,
           55,6,            55,6,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_CTRL|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_CTRL|CC_MOD_ALT,
           56,LAST_KEY,            56,LAST_KEY,
             126,LAST_KEY,END_SEQ,CC_K_DEL|CC_D_CTRL|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_DEL|CC_MOD_CTRL|CC_MOD_ALT|CC_MOD_SHIFT,
         126,LAST_KEY,END_SEQ,CC_K_DEL,          126,LAST_KEY,END_SEQ,CC_KEY_DEL,
       53,46,        53,46,
         59,LAST_KEY,          59,LAST_KEY,
           50,6,            50,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_SHIFT,
           51,6,            51,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_ALT,
           52,6,            52,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_ALT|CC_MOD_SHIFT,
           53,6,            53,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_CTRL,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_CTRL,
           54,6,            54,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_CTRL|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_CTRL|CC_MOD_SHIFT,
           55,6,            55,6,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_CTRL|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_CTRL|CC_MOD_ALT,
           56,LAST_KEY,            56,LAST_KEY,
             126,LAST_KEY,END_SEQ,CC_K_PGUP|CC_D_CTRL|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGUP|CC_MOD_CTRL|CC_MOD_ALT|
                                    CC_MOD_SHIFT,
       54,46,        54,46,
         59,LAST_KEY,          59,LAST_KEY,
           50,6,            50,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_SHIFT,
           51,6,            51,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_ALT,
           52,6,            52,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_ALT|CC_MOD_SHIFT,
           53,6,            53,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_CTRL,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_CTRL,
           54,6,            54,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_CTRL|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_CTRL|CC_MOD_SHIFT,
           55,6,            55,6,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_CTRL|CC_D_ALT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_CTRL|CC_MOD_ALT,
           56,LAST_KEY,            56,LAST_KEY,
             126,LAST_KEY,END_SEQ,CC_K_PGDOWN|CC_D_CTRL|CC_D_ALT|CC_D_SHIFT,              126,LAST_KEY,END_SEQ,CC_KEY_PGDOWN|CC_MOD_CTRL|CC_MOD_ALT|
                                    CC_MOD_SHIFT,
       55,10,        55,10,
         36,4,END_SEQ,CC_K_HOME|CC_D_SHIFT,          36,4,END_SEQ,CC_KEY_HOME|CC_MOD_SHIFT,
         126,LAST_KEY,END_SEQ,CC_K_HOME,          126,LAST_KEY,END_SEQ,CC_KEY_HOME,
       56,10,        56,10,
         36,4,END_SEQ,CC_K_END|CC_D_SHIFT,          36,4,END_SEQ,CC_KEY_END|CC_MOD_SHIFT,
         126,LAST_KEY,END_SEQ,CC_K_END,          126,LAST_KEY,END_SEQ,CC_KEY_END,
       97,4,END_SEQ,CC_K_UP|CC_D_SHIFT,        97,4,END_SEQ,CC_KEY_UP|CC_MOD_SHIFT,
       98,4,END_SEQ,CC_K_DOWN|CC_D_SHIFT,        98,4,END_SEQ,CC_KEY_DOWN|CC_MOD_SHIFT,
       99,4,END_SEQ,CC_K_RIGHT|CC_D_SHIFT,        99,4,END_SEQ,CC_KEY_RIGHT|CC_MOD_SHIFT,
       100,LAST_KEY,END_SEQ,CC_K_LEFT|CC_D_SHIFT        100,LAST_KEY,END_SEQ,CC_KEY_LEFT|CC_MOD_SHIFT
 };  };
   
 void fillback(WIN *win,attr_t ch)  void _cc_fillback(Cc_Win *win,attr_t ch)
 {  {
   long i;    long i;
   for(i=0;i<win->vx*win->vy;i++)win->windata[i]=ch;    for(i=0;i<win->vx*win->vy;i++)win->windata[i]=ch;
 }  }
   
 void addsymbol(WIN *win,long x,long y,unsigned char sym)  void _cc_addsymbol(Cc_Win *win,long x,long y,unsigned char sym)
 {  {
   if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))    if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))
     win->windata[x+y*win->vx]=win->attr+(!uglycharset?A_ALTCHARSET:A_NORMAL)+sym;      win->windata[x+y*win->vx]=
           win->attr+(!_cc_uglycharset?A_ALTCHARSET:A_NORMAL)+sym;
 }  }
   
 void addchar(WIN *win,long y,long x,unsigned char c)  void _cc_addchar(Cc_Win *win,long y,long x,unsigned char c)
 {  {
   if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))win->windata[x+y*win->vx]=win->attr+c;    if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))
       win->windata[x+y*win->vx]=win->attr+c;
 }  }
   
 attr_t minch(WIN *win,long y,long x)  attr_t _cc_minch(Cc_Win *win,long y,long x)
 {  {
   if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))return win->windata[x+y*win->vx];    if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))return win->windata[x+y*win->vx];
   else return -1;    else return -1;
 }  }
   
 void maddch(WIN *win,long y,long x,attr_t ch)  void _cc_maddch(Cc_Win *win,long y,long x,attr_t ch)
 {  {
   if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))win->windata[x+y*win->vx]=ch;    if((x>=0)&&(x<win->vx)&&(y>=0)&&(y<win->vy))win->windata[x+y*win->vx]=ch;
 }  }
   
 void mhline(WIN *win,long x,long y,long n)  void _cc_mhline(Cc_Win *win,long x,long y,long n)
 {  {
   long i;    long i;
   for(i=x;i<x+n;i++)addsymbol(win,i,y,mapsymbol[HLINE]);    for(i=x;i<x+n;i++)_cc_addsymbol(win,i,y,_cc_mapsymbol[HLINE]);
 }  }
   
 void mvline(WIN *win,long x,long y,long n)  void _cc_mvline(Cc_Win *win,long x,long y,long n)
 {  {
   long i;    long i;
   for(i=y;i<y+n;i++)addsymbol(win,x,i,mapsymbol[VLINE]);    for(i=y;i<y+n;i++)_cc_addsymbol(win,x,i,_cc_mapsymbol[VLINE]);
 }  }
   
 void mbox(WIN *win,long x,long y,long vx,long vy)  void _cc_mbox(Cc_Win *win,long x,long y,long vx,long vy)
 {  {
   long i;    long i;
   addsymbol(win,x,y,mapsymbol[LUCORN]);    _cc_addsymbol(win,x,y,_cc_mapsymbol[LUCORN]);
   addsymbol(win,x+vx-1,y,mapsymbol[RUCORN]);    _cc_addsymbol(win,x+vx-1,y,_cc_mapsymbol[RUCORN]);
   addsymbol(win,x+vx-1,y+vy-1,mapsymbol[RDCORN]);    _cc_addsymbol(win,x+vx-1,y+vy-1,_cc_mapsymbol[RDCORN]);
   addsymbol(win,x,y+vy-1,mapsymbol[LDCORN]);    _cc_addsymbol(win,x,y+vy-1,_cc_mapsymbol[LDCORN]);
   mhline(win,x+1,y,vx-2);    _cc_mhline(win,x+1,y,vx-2);
   mvline(win,x+vx-1,y+1,vy-2);    _cc_mvline(win,x+vx-1,y+1,vy-2);
   mhline(win,x+1,y+vy-1,vx-2);    _cc_mhline(win,x+1,y+vy-1,vx-2);
   mvline(win,x,y+1,vy-2);    _cc_mvline(win,x,y+1,vy-2);
 }  }
   
 void mprintwmenu(WIN *win,long y,long x,long cb,long cf,long cfu,attr_t attr,const char *fmt,...)  void _cc_mprintwmenu(Cc_Win *win,long y,long x,long cb,long cf,long cfu,
                        attr_t attr,const char *fmt,...)
 {  {
   va_list args;    va_list args;
   unsigned char *buffer;    unsigned char *buffer;
Line 395  void mprintwmenu(WIN *win,long y,long x,
Line 401  void mprintwmenu(WIN *win,long y,long x,
   va_end(args);    va_end(args);
   long i,p,l=strlen(buffer);    long i,p,l=strlen(buffer);
   bool ch=true;    bool ch=true;
   windowinitdraw(win,cf,cb,false);    _cc_windowinitdraw(win,cf,cb,false);
   win->attr|=attr;    win->attr|=attr;
   attr_t oldattr=win->attr;    attr_t oldattr=win->attr;
   for(i=0,p=0;p<l;i++,p++)    for(i=0,p=0;p<l;i++,p++)
Line 403  void mprintwmenu(WIN *win,long y,long x,
Line 409  void mprintwmenu(WIN *win,long y,long x,
     {      {
       ch=false;        ch=false;
       i--;        i--;
       windowinitdraw(win,cfu,cb,false);        _cc_windowinitdraw(win,cfu,cb,false);
       win->attr|=attr;        win->attr|=attr;
       win->attr|=A_UNDERLINE;        win->attr|=A_UNDERLINE;
     }      }
Line 411  void mprintwmenu(WIN *win,long y,long x,
Line 417  void mprintwmenu(WIN *win,long y,long x,
     {      {
       if(!ch)ch=true;else        if(!ch)ch=true;else
       {        {
         windowinitdraw(win,cf,cb,false);          _cc_windowinitdraw(win,cf,cb,false);
         win->attr|=attr;          win->attr|=attr;
         win->attr&=~A_UNDERLINE;          win->attr&=~A_UNDERLINE;
       }        }
       addchar(win,y,x+i,buffer[p]);        _cc_addchar(win,y,x+i,buffer[p]);
     }      }
   win->attr=oldattr;    win->attr=oldattr;
   free(buffer);    free(buffer);
 }  }
   
 void mprintw(WIN *win,long y,long x,const char *fmt,...)  void _cc_mprintw(Cc_Win *win,long y,long x,const char *fmt,...)
 {  {
   va_list args;    va_list args;
   unsigned char *buffer;    unsigned char *buffer;
Line 434  void mprintw(WIN *win,long y,long x,cons
Line 440  void mprintw(WIN *win,long y,long x,cons
   vsnprintf(buffer,size,fmt,args);    vsnprintf(buffer,size,fmt,args);
   va_end(args);    va_end(args);
   long i,l=strlen(buffer);    long i,l=strlen(buffer);
   for(i=0;i<l;i++)addchar(win,y,x+i,buffer[i]);    for(i=0;i<l;i++)_cc_addchar(win,y,x+i,buffer[i]);
   free(buffer);    free(buffer);
 }  }
   
 void windowinitdraw(WIN *win,char cf,char cb,char back)  void _cc_windowinitdraw(Cc_Win *win,char cf,char cb,char back)
 {  {
   long attr;    long attr;
   short pair=cb&0x7;    short pair=cb&0x7;
Line 449  void windowinitdraw(WIN *win,char cf,cha
Line 455  void windowinitdraw(WIN *win,char cf,cha
   if((cf&0x8)==0x8)attr=A_BOLD;else attr=A_NORMAL;    if((cf&0x8)==0x8)attr=A_BOLD;else attr=A_NORMAL;
   if(back==2)attr|=A_UNDERLINE;    if(back==2)attr|=A_UNDERLINE;
   if(back==3)attr|=A_REVERSE;    if(back==3)attr|=A_REVERSE;
   if((back==4)&&(!uglycharset))attr|=A_ALTCHARSET+'a';    if((back==4)&&(!_cc_uglycharset))attr|=A_ALTCHARSET+'a';
   win->attr=COLOR_PAIR(pair)+attr;    win->attr=COLOR_PAIR(pair)+attr;
   if(back)fillback(win,COLOR_PAIR(pair)+attr+(!(attr&A_CHARTEXT)?' ':0));    if(back)_cc_fillback(win,COLOR_PAIR(pair)+attr+(!(attr&A_CHARTEXT)?' ':0));
 }  }
   
 void mrefresh(WIN *win)  void _cc_mrefresh(Cc_Win *win)
 {  {
   long i,j,c,s,k;    long i,j,c,s,k;
   attr_t *data;    attr_t *data;
   CMAP *map;    CMAP *map;
   if(win!=&mainwin)    if(win!=&_cc_mainwin)
   {    {
     long x,y,vx,vy,ox,oy;      long x,y,vx,vy,ox,oy;
     bool paint=false,fade=false;      bool paint=false,fade=false;
Line 467  void mrefresh(WIN *win)
Line 473  void mrefresh(WIN *win)
     if(win->extra->type==TP_FADE)fade=true;      if(win->extra->type==TP_FADE)fade=true;
     x=0;      x=0;
     y=0;      y=0;
     client_to_screen(win,&x,&y);      cc_client_to_screen(win,&x,&y);
     vx=win->vx;      vx=win->vx;
     vy=win->vy;      vy=win->vy;
     if(x<0){vx+=x;ox=-x;x=0;}else ox=0;      if(x<0){vx+=x;ox=-x;x=0;}else ox=0;
     if(y<0){vy+=y;oy=-y;y=0;}else oy=0;      if(y<0){vy+=y;oy=-y;y=0;}else oy=0;
     if(vx>mainwin.vx-x)vx=mainwin.vx-x;      if(vx>_cc_mainwin.vx-x)vx=_cc_mainwin.vx-x;
     if(vy>mainwin.vy-y)vy=mainwin.vy-y;      if(vy>_cc_mainwin.vy-y)vy=_cc_mainwin.vy-y;
     for(j=y;j<y+vy;j++)      for(j=y;j<y+vy;j++)
     {      {
       s=x+j*mainwin.vx;        s=x+j*_cc_mainwin.vx;
       c=s+vx;        c=s+vx;
       k=ox+(j-y+oy)*win->vx;        k=ox+(j-y+oy)*win->vx;
       for(i=s;i<c;i++,k++)        for(i=s;i<c;i++,k++)
       {        {
         if(!fade)          if(!fade)
         {          {
           mainwin.windata[i]=win->windata[k];            _cc_mainwin.windata[i]=win->windata[k];
           cmap[i].win=win;            _cc_cmap[i].win=win;
           cmap[i].nochange=false;            _cc_cmap[i].nochange=false;
         }          }
         if(paint)cmap[i].paint=win;          if(paint)_cc_cmap[i].paint=win;
         cmap[i].fade=fade;          _cc_cmap[i].fade=fade;
       }        }
     }      }
   }    }
   else    else
   {    {
     for(j=0;j<mainwin.vy;j++)      for(j=0;j<_cc_mainwin.vy;j++)
     {      {
       map=cmap+j*mainwin.vx;        map=_cc_cmap+j*_cc_mainwin.vx;
       for(i=0;i<mainwin.vx;i++)if(!(map++)->nochange)break;        for(i=0;i<_cc_mainwin.vx;i++)if(!(map++)->nochange)break;
       if(i<mainwin.vx)        if(i<_cc_mainwin.vx)
       {        {
         wredrawln(stdscr,j,1);          wredrawln(stdscr,j,1);
         map=cmap+j*mainwin.vx;          map=_cc_cmap+j*_cc_mainwin.vx;
         data=mainwin.windata+j*mainwin.vx;          data=_cc_mainwin.windata+j*_cc_mainwin.vx;
         for(i=0;i<mainwin.vx;i++)          for(i=0;i<_cc_mainwin.vx;i++)
         {          {
           if(!map->nochange)            if(!map->nochange)
           {            {
Line 518  void mrefresh(WIN *win)
Line 524  void mrefresh(WIN *win)
   }    }
 }  }
   
 long getcharfrom(long x,long y)  long _cc_getcharfrom(long x,long y)
 {  {
   long px,py,ox,oy;    long px,py,ox,oy;
   WIN *win;    Cc_Win *win;
   WINDOW *window;    WINDOW *window;
   win=findwinonlypaint(x,y);    win=_cc_findwinonlypaint(x,y);
   if(win==NULL)return -1;    if(win==NULL)return -1;
   px=0;    px=0;
   py=0;    py=0;
   client_to_screen(win,&px,&py);    cc_client_to_screen(win,&px,&py);
   if(px<0)ox=px;else ox=0;    if(px<0)ox=px;else ox=0;
   if(py<0)oy=py;else oy=0;    if(py<0)oy=py;else oy=0;
   px=x;    px=x;
   py=y;    py=y;
   screen_to_client(win,&px,&py);    cc_screen_to_client(win,&px,&py);
   return minch(win,py+oy,px+ox);    return _cc_minch(win,py+oy,px+ox);
 }  }
   
 void checksymbol(WIN *win,long x,long y)  void _cc_checksymbol(Cc_Win *win,long x,long y)
 {  {
   long c;    long c;
   char ch,cl,cd,cu,cr;    char ch,cl,cd,cu,cr;
   c=getcharfrom(x,y);    c=_cc_getcharfrom(x,y);
   if(c==-1)return;    if(c==-1)return;
   ch=c&A_CHARTEXT;    ch=c&A_CHARTEXT;
   c=c&A_ATTRIBUTES;    c=c&A_ATTRIBUTES;
   cl=getcharfrom(x-1,y)&A_CHARTEXT;    cl=_cc_getcharfrom(x-1,y)&A_CHARTEXT;
   cr=getcharfrom(x+1,y)&A_CHARTEXT;    cr=_cc_getcharfrom(x+1,y)&A_CHARTEXT;
   cu=getcharfrom(x,y-1)&A_CHARTEXT;    cu=_cc_getcharfrom(x,y-1)&A_CHARTEXT;
   cd=getcharfrom(x,y+1)&A_CHARTEXT;    cd=_cc_getcharfrom(x,y+1)&A_CHARTEXT;
   if((cl==mapsymbol[HLINE])||(cl==mapsymbol[LUCORN])||(cl==mapsymbol[LDCORN])||    if((cl==_cc_mapsymbol[HLINE])||(cl==_cc_mapsymbol[LUCORN])||
      (cl==mapsymbol[LTEE])||(cl==mapsymbol[UTEE])||(cl==mapsymbol[DTEE])||(cl==mapsymbol[CROSS]))cl=true;else cl=false;       (cl==_cc_mapsymbol[LDCORN])||(cl==_cc_mapsymbol[LTEE])||
   if((cr==mapsymbol[HLINE])||(cr==mapsymbol[RDCORN])||(cr==mapsymbol[RUCORN])||       (cl==_cc_mapsymbol[UTEE])||(cl==_cc_mapsymbol[DTEE])||
      (cr==mapsymbol[RTEE])||(cr==mapsymbol[UTEE])||(cr==mapsymbol[DTEE])||(cr==mapsymbol[CROSS]))cr=true;else cr=false;       (cl==_cc_mapsymbol[CROSS]))cl=true;else cl=false;
   if((cu==mapsymbol[VLINE])||(cu==mapsymbol[RUCORN])||(cu==mapsymbol[LUCORN])||    if((cr==_cc_mapsymbol[HLINE])||(cr==_cc_mapsymbol[RDCORN])||
      (cu==mapsymbol[UTEE])||(cu==mapsymbol[LTEE])||(cu==mapsymbol[RTEE])||(cu==mapsymbol[CROSS]))cu=true;else cu=false;       (cr==_cc_mapsymbol[RUCORN])||(cr==_cc_mapsymbol[RTEE])||
   if((cd==mapsymbol[VLINE])||(cd==mapsymbol[LDCORN])||(cd==mapsymbol[RDCORN])||       (cr==_cc_mapsymbol[UTEE])||(cr==_cc_mapsymbol[DTEE])||
      (cd==mapsymbol[DTEE])||(cd==mapsymbol[LTEE])||(cd==mapsymbol[RTEE])||(cd==mapsymbol[CROSS]))cd=true;else cd=false;       (cr==_cc_mapsymbol[CROSS]))cr=true;else cr=false;
   if((cl||cr)&&!cu&&!cd)ch=mapsymbol[HLINE];    if((cu==_cc_mapsymbol[VLINE])||(cu==_cc_mapsymbol[RUCORN])||
   else if((!cl)&&(!cr)&&(cu||cd))ch=mapsymbol[VLINE];       (cu==_cc_mapsymbol[LUCORN])||(cu==_cc_mapsymbol[UTEE])||
   else if(cl&&cr&&cu&&!cd)ch=mapsymbol[DTEE];       (cu==_cc_mapsymbol[LTEE])||(cu==_cc_mapsymbol[RTEE])||
   else if(cl&&cr&&!cu&&cd)ch=mapsymbol[UTEE];       (cu==_cc_mapsymbol[CROSS]))cu=true;else cu=false;
   else if(cl&&!cr&&cu&&cd)ch=mapsymbol[RTEE];    if((cd==_cc_mapsymbol[VLINE])||(cd==_cc_mapsymbol[LDCORN])||
   else if(!cl&&cr&&cu&&cd)ch=mapsymbol[LTEE];       (cd==_cc_mapsymbol[RDCORN])||(cd==_cc_mapsymbol[DTEE])||
   else if(cl&&!cr&&cu&&!cd)ch=mapsymbol[RDCORN];       (cd==_cc_mapsymbol[LTEE])||(cd==_cc_mapsymbol[RTEE])||
   else if(!cl&&cr&&cu&&!cd)ch=mapsymbol[LDCORN];       (cd==_cc_mapsymbol[CROSS]))cd=true;else cd=false;
   else if(cl&&!cr&&!cu&&cd)ch=mapsymbol[RUCORN];    if((cl||cr)&&!cu&&!cd)ch=_cc_mapsymbol[HLINE];
   else if(!cl&&cr&&!cu&&cd)ch=mapsymbol[LUCORN];    else if((!cl)&&(!cr)&&(cu||cd))ch=_cc_mapsymbol[VLINE];
   else if(cl&&cr&&cu&&cd)ch=mapsymbol[CROSS];    else if(cl&&cr&&cu&&!cd)ch=_cc_mapsymbol[DTEE];
   screen_to_client(win,&x,&y);    else if(cl&&cr&&!cu&&cd)ch=_cc_mapsymbol[UTEE];
   maddch(win,y,x,c|ch);    else if(cl&&!cr&&cu&&cd)ch=_cc_mapsymbol[RTEE];
     else if(!cl&&cr&&cu&&cd)ch=_cc_mapsymbol[LTEE];
     else if(cl&&!cr&&cu&&!cd)ch=_cc_mapsymbol[RDCORN];
     else if(!cl&&cr&&cu&&!cd)ch=_cc_mapsymbol[LDCORN];
     else if(cl&&!cr&&!cu&&cd)ch=_cc_mapsymbol[RUCORN];
     else if(!cl&&cr&&!cu&&cd)ch=_cc_mapsymbol[LUCORN];
     else if(cl&&cr&&cu&&cd)ch=_cc_mapsymbol[CROSS];
     cc_screen_to_client(win,&x,&y);
     _cc_maddch(win,y,x,c|ch);
 }  }
   
 void checkbars(WIN *win,bool dorefresh)  void _cc_checkbars(Cc_Win *win,bool dorefresh)
 {  {
   if((win->extra->type==CC_TP_PAINT)&&(win->extra->paint.style==CC_PA_BORDER)&&    if((win->extra->type==CC_TP_PAINT)&&(win->extra->paint.style==CC_PA_BORDER)&&
      isvisible(win))       _cc_isvisible(win))
   {    {
     long i,x,y;      long i,x,y;
     x=0;      x=0;
     y=0;      y=0;
     client_to_screen(win,&x,&y);      cc_client_to_screen(win,&x,&y);
     if((win->vx==1)&&(win->vy>1))      if((win->vx==1)&&(win->vy>1))
     {      {
       for(i=y;i<y+win->vy;i++)checksymbol(win,x,i);        for(i=y;i<y+win->vy;i++)_cc_checksymbol(win,x,i);
     }      }
     else if((win->vx>1)&&(win->vy==1))      else if((win->vx>1)&&(win->vy==1))
     {      {
       for(i=x;i<x+win->vx;i++)checksymbol(win,i,y);        for(i=x;i<x+win->vx;i++)_cc_checksymbol(win,i,y);
     }      }
     else if((win->vx>1)&&(win->vy>1))      else if((win->vx>1)&&(win->vy>1))
     {      {
       for(i=x;i<x+win->vx-1;i++)checksymbol(win,i,y);        for(i=x;i<x+win->vx-1;i++)_cc_checksymbol(win,i,y);
       for(i=y;i<y+win->vy-1;i++)checksymbol(win,x+win->vx-1,i);        for(i=y;i<y+win->vy-1;i++)_cc_checksymbol(win,x+win->vx-1,i);
       for(i=x+win->vx-1;i>x;i--)checksymbol(win,i,y+win->vy-1);        for(i=x+win->vx-1;i>x;i--)_cc_checksymbol(win,i,y+win->vy-1);
       for(i=y+win->vy-1;i>y;i--)checksymbol(win,x,i);        for(i=y+win->vy-1;i>y;i--)_cc_checksymbol(win,x,i);
     }      }
     if(dorefresh)mrefresh(win);      if(dorefresh)_cc_mrefresh(win);
   }    }
 }  }
   
 void dokey(short key,unsigned short mod)  void _cc_dokey(short key,unsigned short mod)
 {  {
   MEVENT event;    MEVENT event;
   if(key==KEY_MOUSE)    if(key==KEY_MOUSE)
   {    {
     if((mouseactive==MOUSE_XTERM)&&(getmouse(&event)==OK))      if((_cc_mouseactive==MOUSE_XTERM)&&(getmouse(&event)==OK))
     {      {
       domouseevent(&event);        _cc_domouseevent(&event);
     }      }
   }    }
   else    else
   {    {
     long pos=0;      long pos=0;
     short oldkey=key;      short oldkey=key;
     while(pos<sizeof(keymap)-1)      while(pos<sizeof(_cc_keymap)-1)
     {      {
       if(keymap[pos]!=END_SEQ)        if(_cc_keymap[pos]!=END_SEQ)
       {        {
         if(keymap[pos]!=key)          if(_cc_keymap[pos]!=key)
         {          {
           if(keymap[pos+1]!=LAST_KEY)            if(_cc_keymap[pos+1]!=LAST_KEY)
             pos+=keymap[pos+1];              pos+=_cc_keymap[pos+1];
           else            else
           {            {
             if((oldkey>=32)&&(oldkey<256))sendkeymessage(oldkey|mod);              if((oldkey>=32)&&(oldkey<256))_cc_sendkeymessage(oldkey|mod);
             else if(oldkey==0)sendkeymessage(mod|CC_D_CTRL|' ');              else if(oldkey==0)_cc_sendkeymessage(mod|CC_MOD_CTRL|' ');
             else if(((oldkey<9)&&(oldkey>0))||((oldkey>9)&&(oldkey<27)))sendkeymessage(mod|CC_D_CTRL|('A'+oldkey-1));              else if(((oldkey<9)&&(oldkey>0))||((oldkey>9)&&(oldkey<27)))
             else if(oldkey>27)sendkeymessage(mod|CC_D_CTRL|('3'+oldkey-27));                _cc_sendkeymessage(mod|CC_MOD_CTRL|('A'+oldkey-1));
               else if(oldkey>27)
                 _cc_sendkeymessage(mod|CC_MOD_CTRL|('3'+oldkey-27));
             break;              break;
           }            }
         }          }
Line 639  void dokey(short key,unsigned short mod)
Line 655  void dokey(short key,unsigned short mod)
       else        else
       {        {
         while(getch()!=ERR);          while(getch()!=ERR);
         sendkeymessage((unsigned short)keymap[pos+1]|mod);          _cc_sendkeymessage((unsigned short)_cc_keymap[pos+1]|mod);
         break;          break;
       }        }
     }      }

Legend:
Removed from v.1.5  
changed lines
  Added in v.1.6

Platon Group <platon@platon.org> http://platon.org/
Copyright © 2002-2006 Platon Group
Site powered by Metafox CMS
Go to Top