Subversion Repositories Kolibri OS

Rev

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
		}