Commit 63b4fa6029920ca47b4316c4b2322940e7c1c0f1
1 parent
0b58195c
Exists in
master
and in
5 other branches
Implementando conversao de strings de controle no plugin HLLAPI
Showing
3 changed files
with
85 additions
and
6 deletions
Show diff stats
po/pt_BR.po
@@ -5,7 +5,7 @@ msgid "" | @@ -5,7 +5,7 @@ msgid "" | ||
5 | msgstr "" | 5 | msgstr "" |
6 | "Project-Id-Version: pw3270 5.0\n" | 6 | "Project-Id-Version: pw3270 5.0\n" |
7 | "Report-Msgid-Bugs-To: \n" | 7 | "Report-Msgid-Bugs-To: \n" |
8 | -"POT-Creation-Date: 2012-09-20 17:26-0300\n" | 8 | +"POT-Creation-Date: 2012-09-20 18:39-0300\n" |
9 | "PO-Revision-Date: 2012-09-20 17:33-0300\n" | 9 | "PO-Revision-Date: 2012-09-20 17:33-0300\n" |
10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
11 | "Language-Team: Português <perry.werneck@gmail.com>\n" | 11 | "Language-Team: Português <perry.werneck@gmail.com>\n" |
src/lib3270/kybd.c
@@ -2628,11 +2628,11 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, const char *s, int len | @@ -2628,11 +2628,11 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *hSession, const char *s, int len | ||
2628 | break; | 2628 | break; |
2629 | 2629 | ||
2630 | case '[': /* APL left bracket */ | 2630 | case '[': /* APL left bracket */ |
2631 | - key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped); | 2631 | + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped); |
2632 | break; | 2632 | break; |
2633 | 2633 | ||
2634 | case ']': /* APL right bracket */ | 2634 | case ']': /* APL right bracket */ |
2635 | - key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped); | 2635 | + key_ACharacter(hSession,(unsigned char) c, KT_STD, ia, &skipped); |
2636 | break; | 2636 | break; |
2637 | 2637 | ||
2638 | default: | 2638 | default: |
src/plugins/remotectl/remotectl.c
@@ -35,11 +35,16 @@ | @@ -35,11 +35,16 @@ | ||
35 | #include <pw3270.h> | 35 | #include <pw3270.h> |
36 | #include <pw3270/plugin.h> | 36 | #include <pw3270/plugin.h> |
37 | #include <pw3270/v3270.h> | 37 | #include <pw3270/v3270.h> |
38 | + #include <lib3270/actions.h> | ||
38 | #include <errno.h> | 39 | #include <errno.h> |
39 | #include <string.h> | 40 | #include <string.h> |
40 | 41 | ||
41 | /*--[ Implement ]------------------------------------------------------------------------------------*/ | 42 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
42 | 43 | ||
44 | + static const gchar control_char = '@'; | ||
45 | + | ||
46 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | ||
47 | + | ||
43 | #ifdef WIN32 | 48 | #ifdef WIN32 |
44 | 49 | ||
45 | void popup_lasterror(const gchar *fmt, ...) | 50 | void popup_lasterror(const gchar *fmt, ...) |
@@ -176,11 +181,85 @@ | @@ -176,11 +181,85 @@ | ||
176 | 181 | ||
177 | g_get_charset(&charset); | 182 | g_get_charset(&charset); |
178 | 183 | ||
179 | - text = g_convert(buffer,-1,lib3270_get_charset(hSession),charset,&bytes_read,&bytes_written,&error); | 184 | + text = g_convert(buffer,length,lib3270_get_charset(hSession),charset,&bytes_read,&bytes_written,&error); |
180 | if(text) | 185 | if(text) |
181 | { | 186 | { |
182 | - #warning Converter "@" em "\\" | ||
183 | - lib3270_emulate_input(hSession,text,strlen(text),0); | 187 | + if(strchr(text,control_char)) |
188 | + { | ||
189 | + // Convert control char | ||
190 | + gchar * buffer = text; | ||
191 | + char * ptr; | ||
192 | + | ||
193 | + for(ptr = strchr(text,control_char);ptr;ptr = strchr(buffer,control_char)) | ||
194 | + { | ||
195 | + *(ptr++) = 0; | ||
196 | + | ||
197 | + lib3270_emulate_input(hSession,buffer,-1,0); | ||
198 | + | ||
199 | + switch(*(ptr++)) | ||
200 | + { | ||
201 | + case 'E': // Enter | ||
202 | + lib3270_enter(hSession); | ||
203 | + break; | ||
204 | + | ||
205 | + case '1': // PF1 | ||
206 | + lib3270_pfkey(hSession,1); | ||
207 | + break; | ||
208 | + | ||
209 | + case '2': // PF2 | ||
210 | + lib3270_pfkey(hSession,2); | ||
211 | + break; | ||
212 | + | ||
213 | + case '3': // PF3 | ||
214 | + lib3270_pfkey(hSession,3); | ||
215 | + break; | ||
216 | + | ||
217 | + case '4': // PF4 | ||
218 | + lib3270_pfkey(hSession,4); | ||
219 | + break; | ||
220 | + | ||
221 | + case '5': // PF5 | ||
222 | + lib3270_pfkey(hSession,5); | ||
223 | + break; | ||
224 | + | ||
225 | + case '6': // PF6 | ||
226 | + lib3270_pfkey(hSession,6); | ||
227 | + break; | ||
228 | + | ||
229 | + case '7': // PF7 | ||
230 | + lib3270_pfkey(hSession,7); | ||
231 | + break; | ||
232 | + | ||
233 | + case '8': // PF8 | ||
234 | + lib3270_pfkey(hSession,8); | ||
235 | + break; | ||
236 | + | ||
237 | + case '9': // PF9 | ||
238 | + lib3270_pfkey(hSession,9); | ||
239 | + break; | ||
240 | + | ||
241 | + case 'a': // PF10 | ||
242 | + lib3270_pfkey(hSession,10); | ||
243 | + break; | ||
244 | + | ||
245 | + case 'b': // PF11 | ||
246 | + lib3270_pfkey(hSession,11); | ||
247 | + break; | ||
248 | + | ||
249 | + case 'c': // PF12 | ||
250 | + lib3270_pfkey(hSession,12); | ||
251 | + break; | ||
252 | + } | ||
253 | + | ||
254 | + } | ||
255 | + | ||
256 | + lib3270_emulate_input(hSession,buffer,-1,0); | ||
257 | + | ||
258 | + } | ||
259 | + else | ||
260 | + { | ||
261 | + lib3270_emulate_input(hSession,text,strlen(text),0); | ||
262 | + } | ||
184 | g_free(text); | 263 | g_free(text); |
185 | rc = 0; | 264 | rc = 0; |
186 | } | 265 | } |