Rev 4309 | Rev 5207 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 4309 | Rev 4516 | ||
---|---|---|---|
Line 33... | Line 33... | ||
33 | unsigned cmdLen = 0; |
33 | unsigned cmdLen = 0; |
34 | unsigned cmdPos = 0; |
34 | unsigned cmdPos = 0; |
35 | CMD[0] = '\0'; |
35 | CMD[0] = '\0'; |
36 | 36 | ||
Line -... | Line 37... | ||
- | 37 | int clipNum; // number of clipboard slots |
|
- | 38 | char* clipBuf; // clipboard buffer |
|
- | 39 | char clipCopy[255+12]; |
|
- | 40 | ||
37 | for (;;) |
41 | for (;;) |
38 | { |
42 | { |
39 | key = getch(); |
43 | key = getch(); |
40 | if ( 0 != (key & 0xff) ) |
44 | if ( 0 != (key & 0xff) ) |
41 | { |
45 | { |
Line 83... | Line 87... | ||
83 | 87 | ||
Line 84... | Line 88... | ||
84 | 88 | ||
85 | case 9: // TAB |
89 | case 9: // TAB |
- | 90 | break; |
|
- | 91 | ||
- | 92 | ||
- | 93 | case 22: // Ctrl+V |
|
- | 94 | clipNum = kol_clip_num(); |
|
- | 95 | if (clipNum > 0) |
|
- | 96 | { |
|
- | 97 | clipBuf = kol_clip_get(clipNum-1); |
|
- | 98 | // printf("Length: %d, Type: %d, Encoding: %d\n", (int) *clipBuf, (int)*(clipBuf+4), (int)*(clipBuf+8)); |
|
- | 99 | if ( (int) *clipBuf > 0 ) // is clipboard empty? |
|
- | 100 | { |
|
- | 101 | if ((int)*(clipBuf+4)==0) // text? |
|
- | 102 | { |
|
- | 103 | if ((int)*(clipBuf+8)==1) // 866 encoding? |
|
- | 104 | ||
- | 105 | for (i = cmdPos; i < cmdLen; i++) |
|
- | 106 | printf(" "); |
|
- | 107 | for (i = cmdLen; i > 0; i--) |
|
- | 108 | printf("%c %c", 8, 8); |
|
- | 109 | cmdLen = 0; |
|
- | 110 | cmdPos = 0; |
|
Line -... | Line 111... | ||
- | 111 | CMD[0] = '\0'; |
|
- | 112 | ||
- | 113 | // strcpy_n |
|
- | 114 | for (i = 0; i < 255; i++) |
|
- | 115 | { |
|
- | 116 | CMD[i]=*(clipBuf+12+i); |
|
- | 117 | if (CMD[i]=='\0') |
|
- | 118 | break; |
|
- | 119 | } |
|
- | 120 | ||
- | 121 | cmdPos = cmdLen = strlen(CMD); |
|
- | 122 | /* |
|
- | 123 | printf("Length: %d\n", cmdLen); |
|
- | 124 | for (i = 0; i < cmdLen; i++) |
|
- | 125 | printf("%d ", CMD[i]); |
|
Line -... | Line 126... | ||
- | 126 | */ |
|
- | 127 | printf("%s", CMD); |
|
- | 128 | ||
- | 129 | } |
|
- | 130 | } |
|
- | 131 | } |
|
- | 132 | break; |
|
- | 133 | ||
- | 134 | ||
- | 135 | case 3: // Ctrl+C |
|
- | 136 | if ( cmdLen > 0 ) |
|
- | 137 | { |
|
- | 138 | ||
- | 139 | *clipCopy = 12 + cmdLen; |
|
- | 140 | *(clipCopy+4)=0; |
|
- | 141 | *(clipCopy+8)=1; |
|
- | 142 | ||
- | 143 | for (i = 0; i <= cmdLen; i++) |
|
- | 144 | *(clipCopy+12+i) = CMD[i]; |
|
- | 145 | ||
- | 146 | kol_clip_set(12+cmdLen, clipCopy); |
|
- | 147 | ||
- | 148 | } |
|
86 | break; |
149 | break; |
87 | 150 | ||
88 | 151 | ||
89 | default: |
152 | default: |
90 | if (cmdLen < 255) |
153 | if (cmdLen < 255) |
91 | { |
154 | { |
92 | if ( kol_key_control() & 0x40 ) // ¥á«¨ ¢ª«îçñ CapsLock |
155 | if ( kol_key_control() & 0x40 ) // ¥á«¨ ¢ª«îçñ CapsLock |
93 | if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // ¥á«¨ ¦ âë è¨äâë |
156 | if ( (kol_key_control() & 1) || (kol_key_control() & 2)) // ¥á«¨ ¦ âë è¨äâë |
Line 94... | Line 157... | ||
94 | key = tolower(key); |
157 | key = tolower(key); |
95 | else |
158 | else |
Line 96... | Line 159... | ||
96 | key = toupper(key); |
159 | key = toupper(key); |
Line 97... | Line 160... | ||
97 | 160 | ||
98 | for (i = cmdLen+1; i > cmdPos; i--) |
161 | for (i = cmdLen+1; i > cmdPos; i--) |
Line 99... | Line 162... | ||
99 | CMD[i] = CMD[i-1]; |
162 | CMD[i] = CMD[i-1]; |
Line 100... | Line 163... | ||
100 | 163 | ||
101 | CMD[cmdPos] = key; |
164 | CMD[cmdPos] = key; |
Line 102... | Line 165... | ||
102 | 165 | ||
103 | for (i = cmdPos; i > 0; i--) |
166 | for (i = cmdPos; i > 0; i--) |
104 | printf("%c %c", 8, 8); |
167 | printf("%c %c", 8, 8); |
105 | 168 | ||
Line 106... | Line 169... | ||
106 | printf("%s", CMD); |
169 | printf("%s", CMD); |
107 | 170 | ||
108 | for (i = 0; i < cmdLen-cmdPos; i++) |
171 | for (i = 0; i < cmdLen-cmdPos; i++) |
109 | printf("%c", 8); |
- | |
110 | - | ||
111 | cmdPos++; |
- | |
112 | cmdLen++; |
172 | printf("%c", 8); |
- | 173 | ||
- | 174 | cmdPos++; |
|
- | 175 | cmdLen++; |
|
113 | } |
176 | } |
114 | break; |
177 | break; |
115 | 178 | ||
116 | } |
179 | } |
117 | } |
180 | } |