Commit 4873aa8ccfd45cc1f4f1ed67ce8bdc137073e850
1 parent
76b2eeba
Exists in
master
and in
5 other branches
Ajustes para android
Showing
9 changed files
with
213 additions
and
200 deletions
Show diff stats
src/lib3270/actions.c
... | ... | @@ -95,13 +95,15 @@ static char *aliased_actions[] = { |
95 | 95 | "Close", "HardPrint", "Open", NULL |
96 | 96 | }; |
97 | 97 | */ |
98 | + | |
99 | +/* | |
98 | 100 | enum iaction ia_cause; |
99 | 101 | const char *ia_name[] = { |
100 | 102 | "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", |
101 | 103 | "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", |
102 | 104 | "Keymap", "Idle" |
103 | 105 | }; |
104 | - | |
106 | +*/ | |
105 | 107 | |
106 | 108 | /* |
107 | 109 | * Return a name for an action. |
... | ... | @@ -135,6 +137,7 @@ check_usage(XtActionProc action, Cardinal nargs, Cardinal nargs_min, |
135 | 137 | /* |
136 | 138 | * Wrapper for calling an action internally. |
137 | 139 | */ |
140 | + /* | |
138 | 141 | void |
139 | 142 | action_internal(XtActionProc action, enum iaction cause, const char *parm1, |
140 | 143 | const char *parm2) |
... | ... | @@ -142,7 +145,7 @@ action_internal(XtActionProc action, enum iaction cause, const char *parm1, |
142 | 145 | Cardinal count = 0; |
143 | 146 | String parms[2]; |
144 | 147 | |
145 | - /* Duplicate the parms, because XtActionProc doesn't grok 'const'. */ | |
148 | + // Duplicate the parms, because XtActionProc doesn't grok 'const'. | |
146 | 149 | if (parm1 != CN) { |
147 | 150 | parms[0] = NewString(parm1); |
148 | 151 | count++; |
... | ... | @@ -157,11 +160,11 @@ action_internal(XtActionProc action, enum iaction cause, const char *parm1, |
157 | 160 | count ? parms : (String *) NULL, |
158 | 161 | &count); |
159 | 162 | |
160 | - /* Free the parm copies. */ | |
163 | + // Free the parm copies. | |
161 | 164 | switch (count) { |
162 | 165 | case 2: |
163 | 166 | Free(parms[1]); |
164 | - /* fall through... */ | |
167 | + // fall through... | |
165 | 168 | case 1: |
166 | 169 | Free(parms[0]); |
167 | 170 | break; |
... | ... | @@ -169,5 +172,6 @@ action_internal(XtActionProc action, enum iaction cause, const char *parm1, |
169 | 172 | break; |
170 | 173 | } |
171 | 174 | } |
175 | +*/ | |
172 | 176 | |
173 | 177 | ... | ... |
src/lib3270/actionsc.h
... | ... | @@ -17,22 +17,22 @@ |
17 | 17 | * Global declarations for actions.c. |
18 | 18 | */ |
19 | 19 | |
20 | -extern enum iaction ia_cause; | |
20 | +// extern enum iaction ia_cause; | |
21 | 21 | |
22 | 22 | extern int actioncount; |
23 | -extern XtActionsRec *actions; | |
23 | +// extern XtActionsRec *actions; | |
24 | 24 | |
25 | -extern const char *ia_name[]; | |
25 | +// extern const char *ia_name[]; | |
26 | + | |
27 | +// #if defined(X3270_TRACE) /*[*/ | |
28 | +// extern void action_debug(XtActionProc action, XEvent *event, String *params, Cardinal *num_params); | |
29 | +// #else /*][*/ | |
30 | +// #define action_debug(a, e, p, n) | |
31 | +// #endif /*]*/ | |
26 | 32 | |
27 | -#if defined(X3270_TRACE) /*[*/ | |
28 | -extern void action_debug(XtActionProc action, XEvent *event, String *params, | |
29 | - Cardinal *num_params); | |
30 | -#else /*][*/ | |
31 | -#define action_debug(a, e, p, n) | |
32 | -#endif /*]*/ | |
33 | 33 | extern void action_init(void); |
34 | -extern void action_internal(XtActionProc action, enum iaction cause, | |
35 | - const char *parm1, const char *parm2); | |
34 | + | |
35 | +// extern void action_internal(XtActionProc action, enum iaction cause, const char *parm1, const char *parm2); | |
36 | 36 | |
37 | 37 | #define action_name(x) #x |
38 | 38 | // extern const char *action_name(XtActionProc action); | ... | ... |
src/lib3270/api.h
... | ... | @@ -112,15 +112,15 @@ |
112 | 112 | // #define LUNAME_SIZE 16 |
113 | 113 | // #define FULL_MODEL_NAME_SIZE 13 |
114 | 114 | |
115 | - #define ST_RESOLVING LIB3270_STATE_RESOLVING | |
116 | - #define ST_HALF_CONNECT LIB3270_STATE_HALF_CONNECT | |
115 | +// #define ST_RESOLVING LIB3270_STATE_RESOLVING | |
116 | +// #define ST_HALF_CONNECT LIB3270_STATE_HALF_CONNECT | |
117 | 117 | // #define ST_CONNECT LIB3270_STATE_CONNECT |
118 | 118 | // #define ST_3270_MODE LIB3270_STATE_3270_MODE |
119 | - #define ST_LINE_MODE LIB3270_STATE_LINE_MODE | |
120 | - #define ST_REMODEL LIB3270_STATE_REMODEL | |
121 | - #define ST_PRINTER LIB3270_STATE_PRINTER | |
122 | - #define ST_EXITING LIB3270_STATE_EXITING | |
123 | - #define ST_CHARSET LIB3270_STATE_CHARSET | |
119 | +// #define ST_LINE_MODE LIB3270_STATE_LINE_MODE | |
120 | +// #define ST_REMODEL LIB3270_STATE_REMODEL | |
121 | +// #define ST_PRINTER LIB3270_STATE_PRINTER | |
122 | +// #define ST_EXITING LIB3270_STATE_EXITING | |
123 | +// #define ST_CHARSET LIB3270_STATE_CHARSET | |
124 | 124 | #define N_ST LIB3270_STATE_USER |
125 | 125 | #define LIB3270_STATE_CHANGE LIB3270_STATE |
126 | 126 | ... | ... |
src/lib3270/ctlr.c
... | ... | @@ -149,7 +149,7 @@ static unsigned char code_table[64] = { |
149 | 149 | void ctlr_init(H3270 *session, unsigned cmask unused) |
150 | 150 | { |
151 | 151 | /* Register callback routines. */ |
152 | - lib3270_register_schange(session,ST_HALF_CONNECT, ctlr_half_connect, 0); | |
152 | + lib3270_register_schange(session,LIB3270_STATE_HALF_CONNECT, ctlr_half_connect, 0); | |
153 | 153 | lib3270_register_schange(session,LIB3270_STATE_CONNECT, ctlr_connect, 0); |
154 | 154 | lib3270_register_schange(session,LIB3270_STATE_3270_MODE, ctlr_connect, 0); |
155 | 155 | } | ... | ... |
src/lib3270/host.c
... | ... | @@ -559,7 +559,7 @@ static int do_connect(H3270 *hSession, const char *n) |
559 | 559 | if (resolving) |
560 | 560 | { |
561 | 561 | hSession->cstate = RESOLVING; |
562 | - lib3270_st_changed(hSession, ST_RESOLVING, True); | |
562 | + lib3270_st_changed(hSession, LIB3270_STATE_RESOLVING, True); | |
563 | 563 | return 0; |
564 | 564 | } |
565 | 565 | |
... | ... | @@ -589,7 +589,7 @@ static int do_connect(H3270 *hSession, const char *n) |
589 | 589 | if (pending) |
590 | 590 | { |
591 | 591 | hSession->cstate = PENDING; |
592 | - lib3270_st_changed(hSession, ST_HALF_CONNECT, True); | |
592 | + lib3270_st_changed(hSession, LIB3270_STATE_HALF_CONNECT, True); | |
593 | 593 | } |
594 | 594 | else |
595 | 595 | { | ... | ... |
src/lib3270/kybd.c
... | ... | @@ -84,6 +84,15 @@ |
84 | 84 | /* Statics */ |
85 | 85 | // static enum { NONE, COMPOSE, FIRST } composing = NONE; |
86 | 86 | |
87 | +#ifdef X3270_TRACE | |
88 | +static const char *ia_name[] = | |
89 | +{ | |
90 | + "String", "Paste", "Screen redraw", "Keypad", "Default", "Key", | |
91 | + "Macro", "Script", "Peek", "Typeahead", "File transfer", "Command", | |
92 | + "Keymap", "Idle" | |
93 | +}; | |
94 | +#endif // X3270_TRACE | |
95 | + | |
87 | 96 | static unsigned char pf_xlate[] = { |
88 | 97 | AID_PF1, AID_PF2, AID_PF3, AID_PF4, AID_PF5, AID_PF6, |
89 | 98 | AID_PF7, AID_PF8, AID_PF9, AID_PF10, AID_PF11, AID_PF12, |
... | ... | @@ -100,13 +109,15 @@ static time_t unlock_delay_time; |
100 | 109 | #define UNLOCK_MS 350 /* 0.35s after last unlock */ |
101 | 110 | static Boolean key_Character(int code, Boolean with_ge, Boolean pasting,Boolean *skipped); |
102 | 111 | static Boolean flush_ta(void); |
103 | -static void key_AID(unsigned char aid_code); | |
112 | +static void key_AID(H3270 *session, unsigned char aid_code); | |
104 | 113 | static void kybdlock_set(unsigned int bits, const char *cause); |
105 | 114 | // static KeySym MyStringToKeysym(char *s, enum keytype *keytypep); |
106 | 115 | |
107 | -#if defined(X3270_DBCS) /*[*/ | |
116 | +/* | |
117 | +#if defined(X3270_DBCS) | |
108 | 118 | Boolean key_WCharacter(unsigned char code[], Boolean *skipped); |
109 | -#endif /*]*/ | |
119 | +#endif | |
120 | +*/ | |
110 | 121 | |
111 | 122 | static int nxk = 0; |
112 | 123 | static struct xks { |
... | ... | @@ -146,23 +157,20 @@ static struct ta |
146 | 157 | { |
147 | 158 | TA_TYPE_DEFAULT, |
148 | 159 | TA_TYPE_KEY_AID, |
149 | - | |
150 | 160 | TA_TYPE_USER |
151 | 161 | } type; |
152 | 162 | |
153 | - XtActionProc fn; | |
154 | - char *parm1; | |
155 | - char *parm2; | |
163 | + H3270 * session; | |
164 | + void (*fn)(H3270 *, const char *, const char *); | |
165 | + char *parm[2]; | |
166 | + unsigned char aid_code; | |
156 | 167 | } *ta_head = (struct ta *) NULL, |
157 | 168 | *ta_tail = (struct ta *) NULL; |
158 | 169 | |
159 | -#define ENQUEUE_ACTION(x) enq_ta((XtActionProc) x, CN, CN) | |
170 | +#define ENQUEUE_ACTION(x) enq_ta(hSession, (void (*)(H3270 *, const char *, const char *)) x, NULL, NULL) | |
160 | 171 | |
161 | -static char dxl[] = "0123456789abcdef"; | |
172 | +static const char dxl[] = "0123456789abcdef"; | |
162 | 173 | #define FROM_HEX(c) (strchr(dxl, tolower(c)) - dxl) |
163 | - | |
164 | -// extern Widget *screen; | |
165 | - | |
166 | 174 | #define KYBDLOCK_IS_OERR (kybdlock && !(kybdlock & ~KL_OERR_MASK)) |
167 | 175 | |
168 | 176 | |
... | ... | @@ -207,11 +215,8 @@ static int enq_chk(void) |
207 | 215 | /* |
208 | 216 | * Put a "Key-aid" on the typeahead queue |
209 | 217 | */ |
210 | - static void enq_key(unsigned char *xlate, int k) | |
218 | + static void enq_key(unsigned char aid_code) | |
211 | 219 | { |
212 | - if(enq_chk()) | |
213 | - return; | |
214 | - | |
215 | 220 | struct ta *ta; |
216 | 221 | |
217 | 222 | if(enq_chk()) |
... | ... | @@ -220,10 +225,11 @@ static int enq_chk(void) |
220 | 225 | ta = (struct ta *) Malloc(sizeof(*ta)); |
221 | 226 | memset(ta,0,sizeof(struct ta)); |
222 | 227 | |
223 | - ta->next = (struct ta *) NULL; | |
224 | - ta->type = TA_TYPE_KEY_AID; | |
225 | - ta->parm1 = (char *) xlate; | |
226 | - ta->parm2 = (char *) k; | |
228 | + ta->next = (struct ta *) NULL; | |
229 | + ta->type = TA_TYPE_KEY_AID; | |
230 | + ta->aid_code = aid_code; | |
231 | + | |
232 | + trace("Adding key %02x on queue",(int) aid_code); | |
227 | 233 | |
228 | 234 | if (ta_head) |
229 | 235 | { |
... | ... | @@ -242,26 +248,34 @@ static int enq_chk(void) |
242 | 248 | /* |
243 | 249 | * Put an action on the typeahead queue. |
244 | 250 | */ |
245 | -static void enq_ta(XtActionProc fn, char *parm1, char *parm2) | |
251 | +static void enq_ta(H3270 *hSession, void (*fn)(H3270 *, const char *, const char *), const char *parm1, const char *parm2) | |
246 | 252 | { |
247 | 253 | struct ta *ta; |
248 | 254 | |
249 | 255 | if(enq_chk()) |
250 | 256 | return; |
251 | 257 | |
258 | + CHECK_SESSION_HANDLE(hSession); | |
259 | + | |
252 | 260 | ta = (struct ta *) Malloc(sizeof(*ta)); |
253 | - ta->next = (struct ta *) NULL; | |
254 | - ta->type = TA_TYPE_DEFAULT; | |
255 | - ta->fn = fn; | |
256 | - ta->parm1 = ta->parm2 = CN; | |
257 | - if (parm1) { | |
258 | - ta->parm1 = NewString(parm1); | |
259 | - if (parm2) | |
260 | - ta->parm2 = NewString(parm2); | |
261 | - } | |
261 | + memset(ta,0,sizeof(struct ta)); | |
262 | + ta->session = hSession; | |
263 | + ta->next = (struct ta *) NULL; | |
264 | + ta->type = TA_TYPE_DEFAULT; | |
265 | + ta->fn = fn; | |
266 | + | |
267 | + if (parm1) | |
268 | + ta->parm[0] = NewString(parm1); | |
269 | + | |
270 | + if (parm2) | |
271 | + ta->parm[1] = NewString(parm2); | |
272 | + | |
262 | 273 | if (ta_head) |
274 | + { | |
263 | 275 | ta_tail->next = ta; |
264 | - else { | |
276 | + } | |
277 | + else | |
278 | + { | |
265 | 279 | ta_head = ta; |
266 | 280 | status_typeahead(&h3270,True); |
267 | 281 | } |
... | ... | @@ -280,7 +294,8 @@ Boolean run_ta(void) |
280 | 294 | if (kybdlock || (ta = ta_head) == (struct ta *)NULL) |
281 | 295 | return False; |
282 | 296 | |
283 | - if ((ta_head = ta->next) == (struct ta *)NULL) { | |
297 | + if ((ta_head = ta->next) == (struct ta *)NULL) | |
298 | + { | |
284 | 299 | ta_tail = (struct ta *)NULL; |
285 | 300 | status_typeahead(&h3270,False); |
286 | 301 | } |
... | ... | @@ -288,31 +303,19 @@ Boolean run_ta(void) |
288 | 303 | switch(ta->type) |
289 | 304 | { |
290 | 305 | case TA_TYPE_DEFAULT: |
291 | - action_internal(ta->fn, IA_TYPEAHEAD, ta->parm1, ta->parm2); | |
292 | - Free(ta->parm1); | |
293 | - Free(ta->parm2); | |
306 | + ta->fn(ta->session,ta->parm[0],ta->parm[1]); | |
307 | + Free(ta->parm[0]); | |
308 | + Free(ta->parm[1]); | |
294 | 309 | Free(ta); |
295 | 310 | break; |
296 | 311 | |
297 | 312 | case TA_TYPE_KEY_AID: |
298 | - key_AID( ((char *) ta->parm1)[(int) ta->parm2]); | |
313 | + trace("Sending enqueued key %02x",ta->aid_code); | |
314 | + key_AID(ta->session,ta->aid_code); | |
299 | 315 | break; |
300 | -/* | |
301 | - enum _ta_type | |
302 | - { | |
303 | - TA_TYPE_DEFAULT, | |
304 | - , | |
305 | - | |
306 | - TA_TYPE_USER | |
307 | - } type; | |
308 | - | |
309 | - XtActionProc fn; | |
310 | - char *parm1; | |
311 | - char *parm2; | |
312 | -*/ | |
313 | 316 | |
314 | 317 | default: |
315 | - popup_an_error(NULL, _( "Unexpected type %d in typeahead queue" ), ta->type); | |
318 | + popup_an_error(ta->session, _( "Unexpected type %d in typeahead queue" ), ta->type); | |
316 | 319 | |
317 | 320 | } |
318 | 321 | |
... | ... | @@ -329,9 +332,10 @@ flush_ta(void) |
329 | 332 | struct ta *ta, *next; |
330 | 333 | Boolean any = False; |
331 | 334 | |
332 | - for (ta = ta_head; ta != (struct ta *) NULL; ta = next) { | |
333 | - Free(ta->parm1); | |
334 | - Free(ta->parm2); | |
335 | + for (ta = ta_head; ta != (struct ta *) NULL; ta = next) | |
336 | + { | |
337 | + Free(ta->parm[0]); | |
338 | + Free(ta->parm[1]); | |
335 | 339 | next = ta->next; |
336 | 340 | Free(ta); |
337 | 341 | any = True; |
... | ... | @@ -482,8 +486,7 @@ operator_error(int error_type) |
482 | 486 | * Handle an AID (Attention IDentifier) key. This is the common stuff that |
483 | 487 | * gets executed for all AID keys (PFs, PAs, Clear and etc). |
484 | 488 | */ |
485 | -static void | |
486 | -key_AID(unsigned char aid_code) | |
489 | +static void key_AID(H3270 *session, unsigned char aid_code) | |
487 | 490 | { |
488 | 491 | #if defined(X3270_ANSI) /*[*/ |
489 | 492 | if (IN_ANSI) { |
... | ... | @@ -551,9 +554,9 @@ LIB3270_FKEY_ACTION( pfkey ) |
551 | 554 | if (kybdlock & KL_OIA_MINUS) |
552 | 555 | return -1; |
553 | 556 | else if (kybdlock) |
554 | - enq_key(pf_xlate,key-1); | |
557 | + enq_key(pf_xlate[key-1]); | |
555 | 558 | else |
556 | - key_AID(pf_xlate[key-1]); | |
559 | + key_AID(hSession,pf_xlate[key-1]); | |
557 | 560 | |
558 | 561 | return 0; |
559 | 562 | } |
... | ... | @@ -568,9 +571,9 @@ LIB3270_FKEY_ACTION( pakey ) |
568 | 571 | if (kybdlock & KL_OIA_MINUS) |
569 | 572 | return -1; |
570 | 573 | else if (kybdlock) |
571 | - enq_key(pa_xlate,key-1); | |
574 | + enq_key(pa_xlate[key-1]); | |
572 | 575 | else |
573 | - key_AID(pa_xlate[key-1]); | |
576 | + key_AID(hSession,pa_xlate[key-1]); | |
574 | 577 | |
575 | 578 | return 0; |
576 | 579 | } |
... | ... | @@ -720,27 +723,28 @@ static Boolean ins_prep(int faddr, int baddr, int count) |
720 | 723 | #define GE_WFLAG 0x100 |
721 | 724 | #define PASTE_WFLAG 0x200 |
722 | 725 | |
723 | -static void | |
724 | -key_Character_wrapper(Widget w unused, XEvent *event unused, String *params, | |
725 | - Cardinal *num_params unused) | |
726 | +static void key_Character_wrapper(H3270 *param, const char *param1, const char *param2) | |
726 | 727 | { |
727 | 728 | int code; |
728 | 729 | Boolean with_ge = False; |
729 | 730 | Boolean pasting = False; |
730 | 731 | |
731 | - code = atoi(params[0]); | |
732 | - if (code & GE_WFLAG) { | |
732 | + code = atoi(param1); | |
733 | + | |
734 | + if (code & GE_WFLAG) | |
735 | + { | |
733 | 736 | with_ge = True; |
734 | 737 | code &= ~GE_WFLAG; |
735 | 738 | } |
736 | - if (code & PASTE_WFLAG) { | |
739 | + | |
740 | + if (code & PASTE_WFLAG) | |
741 | + { | |
737 | 742 | pasting = True; |
738 | 743 | code &= ~PASTE_WFLAG; |
739 | 744 | } |
740 | - trace_event(" %s -> Key(%s\"%s\")\n", | |
741 | - ia_name[(int) ia_cause], | |
742 | - with_ge ? "GE " : "", | |
743 | - ctl_see((int) ebc2asc[code])); | |
745 | + | |
746 | +// trace_event(" %s -> Key(%s\"%s\")\n",ia_name[(int) ia_cause],with_ge ? "GE " : "",ctl_see((int) ebc2asc[code])); | |
747 | + | |
744 | 748 | (void) key_Character(code, with_ge, pasting, NULL); |
745 | 749 | } |
746 | 750 | |
... | ... | @@ -757,13 +761,12 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
757 | 761 | if (skipped != NULL) |
758 | 762 | *skipped = False; |
759 | 763 | |
760 | - if (kybdlock) { | |
764 | + if (kybdlock) | |
765 | + { | |
761 | 766 | char codename[64]; |
762 | 767 | |
763 | - (void) sprintf(codename, "%d", code | | |
764 | - (with_ge ? GE_WFLAG : 0) | | |
765 | - (pasting ? PASTE_WFLAG : 0)); | |
766 | - enq_ta(key_Character_wrapper, codename, CN); | |
768 | + (void) sprintf(codename, "%d", code |(with_ge ? GE_WFLAG : 0) | (pasting ? PASTE_WFLAG : 0)); | |
769 | + enq_ta(&h3270,key_Character_wrapper, codename, CN); | |
767 | 770 | return False; |
768 | 771 | } |
769 | 772 | baddr = h3270.cursor_addr; |
... | ... | @@ -976,10 +979,10 @@ static Boolean key_Character(int code, Boolean with_ge, Boolean pasting, Boolean |
976 | 979 | return True; |
977 | 980 | } |
978 | 981 | |
979 | -#if defined(X3270_DBCS) /*[*/ | |
982 | +/* | |
983 | +#if defined(X3270_DBCS) | |
980 | 984 | static void |
981 | -key_WCharacter_wrapper(Widget w unused, XEvent *event unused, String *params, | |
982 | - Cardinal *num_params unused) | |
985 | +key_WCharacter_wrapper(Widget w unused, XEvent *event unused, String *params, Cardinal *num_params unused) | |
983 | 986 | { |
984 | 987 | int code; |
985 | 988 | unsigned char codebuf[2]; |
... | ... | @@ -992,12 +995,11 @@ key_WCharacter_wrapper(Widget w unused, XEvent *event unused, String *params, |
992 | 995 | (void) key_WCharacter(codebuf, NULL); |
993 | 996 | } |
994 | 997 | |
995 | -/* | |
996 | - * Input a DBCS character. | |
997 | - * Returns True if a character was stored in the buffer, False otherwise. | |
998 | - */ | |
999 | -Boolean | |
1000 | -key_WCharacter(unsigned char code[], Boolean *skipped) | |
998 | +// | |
999 | +// Input a DBCS character. | |
1000 | +// Returns True if a character was stored in the buffer, False otherwise. | |
1001 | +// | |
1002 | +Boolean key_WCharacter(unsigned char code[], Boolean *skipped) | |
1001 | 1003 | { |
1002 | 1004 | int baddr; |
1003 | 1005 | register unsigned char fa; |
... | ... | @@ -1006,7 +1008,7 @@ key_WCharacter(unsigned char code[], Boolean *skipped) |
1006 | 1008 | int xaddr; |
1007 | 1009 | Boolean done = False; |
1008 | 1010 | Boolean no_si = False; |
1009 | - extern unsigned char reply_mode; /* XXX */ | |
1011 | + extern unsigned char reply_mode; // XXX | |
1010 | 1012 | |
1011 | 1013 | reset_idle_timer(); |
1012 | 1014 | |
... | ... | @@ -1021,15 +1023,15 @@ key_WCharacter(unsigned char code[], Boolean *skipped) |
1021 | 1023 | if (skipped != NULL) |
1022 | 1024 | *skipped = False; |
1023 | 1025 | |
1024 | - /* In DBCS mode? */ | |
1026 | + // In DBCS mode? | |
1025 | 1027 | if (!dbcs) { |
1026 | 1028 | trace_event("DBCS character received when not in DBCS mode, " |
1027 | 1029 | "ignoring.\n"); |
1028 | 1030 | return True; |
1029 | 1031 | } |
1030 | 1032 | |
1031 | -#if defined(X3270_ANSI) /*[*/ | |
1032 | - /* In ANSI mode? */ | |
1033 | +#if defined(X3270_ANSI) | |
1034 | + // In ANSI mode? | |
1033 | 1035 | if (IN_ANSI) { |
1034 | 1036 | char mb[16]; |
1035 | 1037 | |
... | ... | @@ -1037,38 +1039,38 @@ key_WCharacter(unsigned char code[], Boolean *skipped) |
1037 | 1039 | net_sends(mb); |
1038 | 1040 | return True; |
1039 | 1041 | } |
1040 | -#endif /*]*/ | |
1042 | +#endif | |
1041 | 1043 | |
1042 | 1044 | baddr = cursor_addr; |
1043 | 1045 | fa = get_field_attribute(baddr); |
1044 | 1046 | faddr = find_field_attribute(baddr); |
1045 | 1047 | |
1046 | - /* Protected? */ | |
1048 | + // Protected? | |
1047 | 1049 | if (ea_buf[baddr].fa || FA_IS_PROTECTED(fa)) { |
1048 | 1050 | operator_error(KL_OERR_PROTECTED); |
1049 | 1051 | return False; |
1050 | 1052 | } |
1051 | 1053 | |
1052 | - /* Numeric? */ | |
1054 | + // Numeric? | |
1053 | 1055 | if (h3270.numeric_lock && FA_IS_NUMERIC(fa)) { |
1054 | 1056 | operator_error(KL_OERR_NUMERIC); |
1055 | 1057 | return False; |
1056 | 1058 | } |
1057 | 1059 | |
1058 | - /* | |
1059 | - * Figure our what to do based on the DBCS state of the buffer. | |
1060 | - * Leaves baddr pointing to the next unmodified position. | |
1061 | - */ | |
1060 | + // | |
1061 | + // Figure our what to do based on the DBCS state of the buffer. | |
1062 | + // Leaves baddr pointing to the next unmodified position. | |
1063 | + // | |
1062 | 1064 | retry: |
1063 | 1065 | switch (d = ctlr_dbcs_state(baddr)) { |
1064 | 1066 | case DBCS_RIGHT: |
1065 | 1067 | case DBCS_RIGHT_WRAP: |
1066 | - /* Back up one position and process it as a LEFT. */ | |
1068 | + // Back up one position and process it as a LEFT. | |
1067 | 1069 | DEC_BA(baddr); |
1068 | - /* fall through... */ | |
1070 | + // fall through... | |
1069 | 1071 | case DBCS_LEFT: |
1070 | 1072 | case DBCS_LEFT_WRAP: |
1071 | - /* Overwrite the existing character. */ | |
1073 | + // Overwrite the existing character. | |
1072 | 1074 | if (insert) { |
1073 | 1075 | if (!ins_prep(faddr, baddr, 2)) { |
1074 | 1076 | return False; |
... | ... | @@ -1081,24 +1083,24 @@ retry: |
1081 | 1083 | done = True; |
1082 | 1084 | break; |
1083 | 1085 | case DBCS_SB: |
1084 | - /* Back up one position and process it as an SI. */ | |
1086 | + // Back up one position and process it as an SI. | |
1085 | 1087 | DEC_BA(baddr); |
1086 | - /* fall through... */ | |
1088 | + // fall through... | |
1087 | 1089 | case DBCS_SI: |
1088 | - /* Extend the subfield to the right. */ | |
1090 | + // Extend the subfield to the right. | |
1089 | 1091 | if (insert) { |
1090 | 1092 | if (!ins_prep(faddr, baddr, 2)) { |
1091 | 1093 | return False; |
1092 | 1094 | } |
1093 | 1095 | } else { |
1094 | - /* Don't overwrite a field attribute or an SO. */ | |
1096 | + // Don't overwrite a field attribute or an SO. | |
1095 | 1097 | xaddr = baddr; |
1096 | - INC_BA(xaddr); /* C1 */ | |
1098 | + INC_BA(xaddr); // C1 | |
1097 | 1099 | if (ea_buf[xaddr].fa) |
1098 | 1100 | break; |
1099 | 1101 | if (ea_buf[xaddr].cc == EBC_so) |
1100 | 1102 | no_si = True; |
1101 | - INC_BA(xaddr); /* SI */ | |
1103 | + INC_BA(xaddr); // SI | |
1102 | 1104 | if (ea_buf[xaddr].fa || ea_buf[xaddr].cc == EBC_so) |
1103 | 1105 | break; |
1104 | 1106 | } |
... | ... | @@ -1117,107 +1119,107 @@ retry: |
1117 | 1119 | if (ea_buf[faddr].ic) { |
1118 | 1120 | Boolean extend_left = FALSE; |
1119 | 1121 | |
1120 | - /* Is there room? */ | |
1122 | + // Is there room? | |
1121 | 1123 | if (insert) { |
1122 | 1124 | if (!ins_prep(faddr, baddr, 4)) { |
1123 | 1125 | return False; |
1124 | 1126 | } |
1125 | 1127 | } else { |
1126 | - xaddr = baddr; /* baddr, SO */ | |
1128 | + xaddr = baddr; // baddr, SO | |
1127 | 1129 | if (ea_buf[xaddr].cc == EBC_so) { |
1128 | - /* | |
1129 | - * (baddr), where we would have put the | |
1130 | - * SO, is already an SO. Move to | |
1131 | - * (baddr+1) and try again. | |
1132 | - */ | |
1133 | -#if defined(DBCS_RIGHT_DEBUG) /*[*/ | |
1130 | + // | |
1131 | + // (baddr), where we would have put the | |
1132 | + // SO, is already an SO. Move to | |
1133 | + // (baddr+1) and try again. | |
1134 | + // | |
1135 | +#if defined(DBCS_RIGHT_DEBUG) | |
1134 | 1136 | printf("SO in position 0\n"); |
1135 | -#endif /*]*/ | |
1137 | +#endif | |
1136 | 1138 | INC_BA(baddr); |
1137 | 1139 | goto retry; |
1138 | 1140 | } |
1139 | 1141 | |
1140 | - INC_BA(xaddr); /* baddr+1, C0 */ | |
1142 | + INC_BA(xaddr); // baddr+1, C0 | |
1141 | 1143 | if (ea_buf[xaddr].fa) |
1142 | 1144 | break; |
1143 | 1145 | if (ea_buf[xaddr].cc == EBC_so) { |
1144 | 1146 | enum dbcs_state e; |
1145 | 1147 | |
1146 | - /* | |
1147 | - * (baddr+1), where we would have put | |
1148 | - * the left side of the DBCS, is a SO. | |
1149 | - * If there's room, we can extend the | |
1150 | - * subfield to the left. If not, we're | |
1151 | - * stuck. | |
1152 | - */ | |
1148 | + // | |
1149 | + // (baddr+1), where we would have put | |
1150 | + // the left side of the DBCS, is a SO. | |
1151 | + // If there's room, we can extend the | |
1152 | + // subfield to the left. If not, we're | |
1153 | + // stuck. | |
1154 | + // | |
1153 | 1155 | DEC_BA(xaddr); |
1154 | 1156 | DEC_BA(xaddr); |
1155 | 1157 | e = ctlr_dbcs_state(xaddr); |
1156 | 1158 | if (e == DBCS_NONE || e == DBCS_SB) { |
1157 | 1159 | extend_left = True; |
1158 | 1160 | no_si = True; |
1159 | -#if defined(DBCS_RIGHT_DEBUG) /*[*/ | |
1161 | +#if defined(DBCS_RIGHT_DEBUG) | |
1160 | 1162 | printf("SO in position 1, " |
1161 | 1163 | "extend left\n"); |
1162 | -#endif /*]*/ | |
1164 | +#endif | |
1163 | 1165 | } else { |
1164 | - /* | |
1165 | - * Won't actually happen, | |
1166 | - * because this implies that | |
1167 | - * the buffer addr at baddr | |
1168 | - * is an SB. | |
1169 | - */ | |
1170 | -#if defined(DBCS_RIGHT_DEBUG) /*[*/ | |
1166 | + // | |
1167 | + // Won't actually happen, | |
1168 | + // because this implies that | |
1169 | + // the buffer addr at baddr | |
1170 | + // is an SB. | |
1171 | + // | |
1172 | +#if defined(DBCS_RIGHT_DEBUG) | |
1171 | 1173 | printf("SO in position 1, " |
1172 | 1174 | "no room on left, " |
1173 | 1175 | "fail\n"); |
1174 | -#endif /*]*/ | |
1176 | +#endif | |
1175 | 1177 | break; |
1176 | 1178 | } |
1177 | 1179 | } |
1178 | 1180 | |
1179 | - INC_BA(xaddr); /* baddr+2, C1 */ | |
1181 | + INC_BA(xaddr); // baddr+2, C1 | |
1180 | 1182 | if (ea_buf[xaddr].fa) |
1181 | 1183 | break; |
1182 | 1184 | if (ea_buf[xaddr].cc == EBC_so) { |
1183 | - /* | |
1184 | - * (baddr+2), where we want to put the | |
1185 | - * right half of the DBCS character, is | |
1186 | - * a SO. This is a natural extension | |
1187 | - * to the left -- just make sure we | |
1188 | - * don't write an SI. | |
1189 | - */ | |
1185 | + // | |
1186 | + // (baddr+2), where we want to put the | |
1187 | + // right half of the DBCS character, is | |
1188 | + // a SO. This is a natural extension | |
1189 | + // to the left -- just make sure we | |
1190 | + // don't write an SI. | |
1191 | + // | |
1190 | 1192 | no_si = True; |
1191 | -#if defined(DBCS_RIGHT_DEBUG) /*[*/ | |
1193 | +#if defined(DBCS_RIGHT_DEBUG) | |
1192 | 1194 | printf("SO in position 2, no SI\n"); |
1193 | -#endif /*]*/ | |
1195 | +#endif | |
1194 | 1196 | } |
1195 | 1197 | |
1196 | - /* | |
1197 | - * Check the fourth position only if we're | |
1198 | - * not doing an extend-left. | |
1199 | - */ | |
1198 | + // | |
1199 | + // Check the fourth position only if we're | |
1200 | + // not doing an extend-left. | |
1201 | + /// | |
1200 | 1202 | if (!no_si) { |
1201 | - INC_BA(xaddr); /* baddr+3, SI */ | |
1203 | + INC_BA(xaddr); // baddr+3, SI | |
1202 | 1204 | if (ea_buf[xaddr].fa) |
1203 | 1205 | break; |
1204 | 1206 | if (ea_buf[xaddr].cc == EBC_so) { |
1205 | - /* | |
1206 | - * (baddr+3), where we want to | |
1207 | - * put an | |
1208 | - * SI, is an SO. Forget it. | |
1209 | - */ | |
1210 | -#if defined(DBCS_RIGHT_DEBUG) /*[*/ | |
1207 | + // | |
1208 | + // (baddr+3), where we want to | |
1209 | + // put an | |
1210 | + // SI, is an SO. Forget it. | |
1211 | + // | |
1212 | +#if defined(DBCS_RIGHT_DEBUG) | |
1211 | 1213 | printf("SO in position 3, " |
1212 | 1214 | "retry right\n"); |
1213 | 1215 | INC_BA(baddr); |
1214 | 1216 | goto retry; |
1215 | -#endif /*]*/ | |
1217 | +#endif | |
1216 | 1218 | break; |
1217 | 1219 | } |
1218 | 1220 | } |
1219 | 1221 | } |
1220 | - /* Yes, add it. */ | |
1222 | + // Yes, add it. | |
1221 | 1223 | if (extend_left) |
1222 | 1224 | DEC_BA(baddr); |
1223 | 1225 | ctlr_add(baddr, EBC_so, ea_buf[baddr].cs); |
... | ... | @@ -1231,7 +1233,7 @@ retry: |
1231 | 1233 | } |
1232 | 1234 | done = True; |
1233 | 1235 | } else if (reply_mode == SF_SRM_CHAR) { |
1234 | - /* Use the character attribute. */ | |
1236 | + // Use the character attribute. | |
1235 | 1237 | if (insert) { |
1236 | 1238 | if (!ins_prep(faddr, baddr, 2)) { |
1237 | 1239 | return False; |
... | ... | @@ -1252,7 +1254,7 @@ retry: |
1252 | 1254 | } |
1253 | 1255 | |
1254 | 1256 | if (done) { |
1255 | - /* Implement blank fill mode. */ | |
1257 | + // Implement blank fill mode. | |
1256 | 1258 | if (lib3270_get_toggle(&h3270,LIB3270_TOGGLE_BLANK_FILL)) { |
1257 | 1259 | xaddr = faddr; |
1258 | 1260 | INC_BA(xaddr); |
... | ... | @@ -1267,7 +1269,7 @@ retry: |
1267 | 1269 | |
1268 | 1270 | mdt_set(cursor_addr); |
1269 | 1271 | |
1270 | - /* Implement auto-skip. */ | |
1272 | + // Implement auto-skip. | |
1271 | 1273 | while (ea_buf[baddr].fa) { |
1272 | 1274 | if (skipped != NULL) |
1273 | 1275 | *skipped = True; |
... | ... | @@ -1284,7 +1286,8 @@ retry: |
1284 | 1286 | return False; |
1285 | 1287 | } |
1286 | 1288 | } |
1287 | -#endif /*]*/ | |
1289 | +#endif | |
1290 | +*/ | |
1288 | 1291 | |
1289 | 1292 | /* |
1290 | 1293 | * Handle an ordinary character key, given an ASCII code. |
... | ... | @@ -2306,7 +2309,7 @@ LIB3270_KEY_ACTION( enter ) |
2306 | 2309 | else if (kybdlock) |
2307 | 2310 | ENQUEUE_ACTION(lib3270_enter); |
2308 | 2311 | else |
2309 | - key_AID(AID_ENTER); | |
2312 | + key_AID(hSession,AID_ENTER); | |
2310 | 2313 | |
2311 | 2314 | return 0; |
2312 | 2315 | } |
... | ... | @@ -2328,7 +2331,7 @@ LIB3270_ACTION( sysreq ) |
2328 | 2331 | else if (kybdlock) |
2329 | 2332 | ENQUEUE_ACTION(lib3270_sysreq); |
2330 | 2333 | else |
2331 | - key_AID(AID_SYSREQ); | |
2334 | + key_AID(hSession,AID_SYSREQ); | |
2332 | 2335 | } |
2333 | 2336 | return 0; |
2334 | 2337 | } |
... | ... | @@ -2356,7 +2359,7 @@ LIB3270_ACTION( clear ) |
2356 | 2359 | ctlr_clear(hSession,True); |
2357 | 2360 | cursor_move(hSession,0); |
2358 | 2361 | if (CONNECTED) |
2359 | - key_AID(AID_CLEAR); | |
2362 | + key_AID(hSession,AID_CLEAR); | |
2360 | 2363 | return 0; |
2361 | 2364 | } |
2362 | 2365 | |
... | ... | @@ -2836,7 +2839,6 @@ LIB3270_ACTION( fieldend ) |
2836 | 2839 | // reset_idle_timer(); |
2837 | 2840 | if (kybdlock) { |
2838 | 2841 | ENQUEUE_ACTION( lib3270_fieldend ); |
2839 | -// enq_ta(FieldEnd_action, CN, CN); | |
2840 | 2842 | return 0; |
2841 | 2843 | } |
2842 | 2844 | #if defined(X3270_ANSI) /*[*/ |
... | ... | @@ -3079,11 +3081,12 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p |
3079 | 3081 | key_ACharacter((unsigned char) c, KT_STD, ia, &skipped); |
3080 | 3082 | break; |
3081 | 3083 | default: |
3082 | -#if defined(X3270_DBCS) /*[*/ | |
3083 | - /* | |
3084 | - * Try mapping it to the 8-bit character set, | |
3085 | - * otherwise to the 16-bit character set. | |
3086 | - */ | |
3084 | +/* | |
3085 | +#if defined(X3270_DBCS) | |
3086 | + // | |
3087 | + // Try mapping it to the 8-bit character set, | |
3088 | + // otherwise to the 16-bit character set. | |
3089 | + // | |
3087 | 3090 | if (dbcs_map8(c, &cx)) { |
3088 | 3091 | key_ACharacter((unsigned char)cx, |
3089 | 3092 | KT_STD, ia_cause, &skipped); |
... | ... | @@ -3096,9 +3099,8 @@ LIB3270_EXPORT int lib3270_emulate_input(H3270 *session, char *s, int len, int p |
3096 | 3099 | "EBCDIC\n", c & 0xffff); |
3097 | 3100 | break; |
3098 | 3101 | } |
3099 | -#endif /*]*/ | |
3100 | - key_ACharacter((unsigned char) c, KT_STD, | |
3101 | - ia, &skipped); | |
3102 | +#endif */ | |
3103 | + key_ACharacter((unsigned char) c, KT_STD, ia, &skipped); | |
3102 | 3104 | break; |
3103 | 3105 | } |
3104 | 3106 | break; | ... | ... |
src/lib3270/localdefs.h
... | ... | @@ -41,16 +41,23 @@ typedef char *String; |
41 | 41 | typedef unsigned int Cardinal; |
42 | 42 | typedef unsigned long KeySym; |
43 | 43 | #define Bool int |
44 | + | |
45 | +/* | |
44 | 46 | typedef void (*XtActionProc)( |
45 | - Widget /* widget */, | |
46 | - XEvent* /* event */, | |
47 | - String* /* params */, | |
48 | - Cardinal* /* num_params */ | |
47 | + Widget // widget, | |
48 | + XEvent* // event, | |
49 | + String* // params, | |
50 | + Cardinal* // num_param | |
49 | 51 | ); |
52 | +*/ | |
53 | + | |
54 | +/* | |
50 | 55 | typedef struct _XtActionsRec{ |
51 | 56 | String string; |
52 | 57 | XtActionProc proc; |
53 | 58 | } XtActionsRec; |
59 | +*/ | |
60 | + | |
54 | 61 | #define XtNumber(n) (sizeof(n)/sizeof((n)[0])) |
55 | 62 | #define NoSymbol 0L |
56 | 63 | ... | ... |
src/lib3270/screen.c
... | ... | @@ -133,7 +133,7 @@ int screen_init(H3270 *session) |
133 | 133 | /* Set up callbacks for state changes. */ |
134 | 134 | lib3270_register_schange(session,LIB3270_STATE_CONNECT, status_connect,0); |
135 | 135 | lib3270_register_schange(session,LIB3270_STATE_3270_MODE, status_3270_mode,0); |
136 | -// lib3270_register_schange(session,ST_PRINTER, status_printer,0); | |
136 | +// lib3270_register_schange(session,LIB3270_STATE_PRINTER, status_printer,0); | |
137 | 137 | |
138 | 138 | /* Set up the controller. */ |
139 | 139 | ctlr_init(session,-1); | ... | ... |
src/lib3270/telnet.c
... | ... | @@ -2588,7 +2588,7 @@ check_linemode(Boolean init) |
2588 | 2588 | |
2589 | 2589 | if (init || linemode != wasline) |
2590 | 2590 | { |
2591 | - st_changed(ST_LINE_MODE, linemode); | |
2591 | + st_changed(LIB3270_STATE_LINE_MODE, linemode); | |
2592 | 2592 | if (!init) |
2593 | 2593 | { |
2594 | 2594 | trace_dsn("Operating in %s mode.\n",linemode ? "line" : "character-at-a-time"); | ... | ... |