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 | 5 | msgstr "" |
6 | 6 | "Project-Id-Version: pw3270 5.0\n" |
7 | 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 | 9 | "PO-Revision-Date: 2012-09-20 17:33-0300\n" |
10 | 10 | "Last-Translator: Perry Werneck <perry.werneck@gmail.com>\n" |
11 | 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 | 2628 | break; |
2629 | 2629 | |
2630 | 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 | 2632 | break; |
2633 | 2633 | |
2634 | 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 | 2636 | break; |
2637 | 2637 | |
2638 | 2638 | default: | ... | ... |
src/plugins/remotectl/remotectl.c
... | ... | @@ -35,11 +35,16 @@ |
35 | 35 | #include <pw3270.h> |
36 | 36 | #include <pw3270/plugin.h> |
37 | 37 | #include <pw3270/v3270.h> |
38 | + #include <lib3270/actions.h> | |
38 | 39 | #include <errno.h> |
39 | 40 | #include <string.h> |
40 | 41 | |
41 | 42 | /*--[ Implement ]------------------------------------------------------------------------------------*/ |
42 | 43 | |
44 | + static const gchar control_char = '@'; | |
45 | + | |
46 | +/*--[ Implement ]------------------------------------------------------------------------------------*/ | |
47 | + | |
43 | 48 | #ifdef WIN32 |
44 | 49 | |
45 | 50 | void popup_lasterror(const gchar *fmt, ...) |
... | ... | @@ -176,11 +181,85 @@ |
176 | 181 | |
177 | 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 | 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 | 263 | g_free(text); |
185 | 264 | rc = 0; |
186 | 265 | } | ... | ... |