Commit 0ceb5c2742e985bfb068d45905105057802ca12a
1 parent
0058b0cd
Exists in
master
Ajustes para multi-sessão
Showing
14 changed files
with
73 additions
and
47 deletions
Show diff stats
latest/src/gtk2/action_calls.c
@@ -323,7 +323,7 @@ | @@ -323,7 +323,7 @@ | ||
323 | action_group_set_sensitive(ACTION_GROUP_ONLINE,FALSE); | 323 | action_group_set_sensitive(ACTION_GROUP_ONLINE,FALSE); |
324 | action_group_set_sensitive(ACTION_GROUP_OFFLINE,FALSE); | 324 | action_group_set_sensitive(ACTION_GROUP_OFFLINE,FALSE); |
325 | unselect(); | 325 | unselect(); |
326 | - host_disconnect(hSession,0); | 326 | + lib3270_disconnect(hSession); |
327 | } | 327 | } |
328 | 328 | ||
329 | static int SaveText(const char *title, gchar *text) | 329 | static int SaveText(const char *title, gchar *text) |
latest/src/gtk2/clipboard.c
@@ -113,7 +113,7 @@ | @@ -113,7 +113,7 @@ | ||
113 | action_group_set_sensitive(ACTION_GROUP_CLIPBOARD,clipboard_string != NULL); | 113 | action_group_set_sensitive(ACTION_GROUP_CLIPBOARD,clipboard_string != NULL); |
114 | gtk_action_set_sensitive(action_by_id[ACTION_PASTENEXT],clipboard_string != NULL); | 114 | gtk_action_set_sensitive(action_by_id[ACTION_PASTENEXT],clipboard_string != NULL); |
115 | 115 | ||
116 | - screen_resume(); | 116 | + screen_resume(hSession); |
117 | 117 | ||
118 | Trace("%s - ends (clipboard_string=%p)",__FUNCTION__,clipboard_string); | 118 | Trace("%s - ends (clipboard_string=%p)",__FUNCTION__,clipboard_string); |
119 | 119 |
latest/src/gtk2/main.c
@@ -647,7 +647,7 @@ int main(int argc, char *argv[]) | @@ -647,7 +647,7 @@ int main(int argc, char *argv[]) | ||
647 | gtk_main_iteration(); | 647 | gtk_main_iteration(); |
648 | 648 | ||
649 | /* Connect to the host. */ | 649 | /* Connect to the host. */ |
650 | - screen_suspend(); | 650 | + screen_suspend(hSession); |
651 | 651 | ||
652 | if(cl_hostname != CN) | 652 | if(cl_hostname != CN) |
653 | SetString("Network","Hostname",cl_hostname); | 653 | SetString("Network","Hostname",cl_hostname); |
@@ -659,7 +659,7 @@ int main(int argc, char *argv[]) | @@ -659,7 +659,7 @@ int main(int argc, char *argv[]) | ||
659 | 659 | ||
660 | if(topwindow) | 660 | if(topwindow) |
661 | { | 661 | { |
662 | - screen_resume(); | 662 | + screen_resume(hSession); |
663 | screen_disp(hSession); | 663 | screen_disp(hSession); |
664 | 664 | ||
665 | // Start plugins after the creation of main loop | 665 | // Start plugins after the creation of main loop |
latest/src/include/lib3270.h
@@ -131,6 +131,10 @@ | @@ -131,6 +131,10 @@ | ||
131 | 131 | ||
132 | #include <lib3270/api.h> | 132 | #include <lib3270/api.h> |
133 | 133 | ||
134 | +#ifdef __cplusplus | ||
135 | + extern "C" { | ||
136 | +#endif | ||
137 | + | ||
134 | /** | 138 | /** |
135 | * Get current screen size. | 139 | * Get current screen size. |
136 | * | 140 | * |
@@ -192,6 +196,15 @@ | @@ -192,6 +196,15 @@ | ||
192 | */ | 196 | */ |
193 | LIB3270_EXPORT int lib3270_connect(H3270 *h,const char *n, int wait); | 197 | LIB3270_EXPORT int lib3270_connect(H3270 *h,const char *n, int wait); |
194 | 198 | ||
199 | + | ||
200 | + /** | ||
201 | + * Disconnect from host. | ||
202 | + * | ||
203 | + * @param h Session handle. | ||
204 | + * | ||
205 | + */ | ||
206 | + LIB3270_EXPORT void lib3270_disconnect(H3270 *h); | ||
207 | + | ||
195 | /** | 208 | /** |
196 | * Reconnect. | 209 | * Reconnect. |
197 | * | 210 | * |
@@ -331,5 +344,8 @@ | @@ -331,5 +344,8 @@ | ||
331 | */ | 344 | */ |
332 | LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm); | 345 | LIB3270_EXPORT int lib3270_call_thread(int(*callback)(H3270 *h, void *), H3270 *h, void *parm); |
333 | 346 | ||
347 | +#ifdef __cplusplus | ||
348 | + } | ||
349 | +#endif | ||
334 | 350 | ||
335 | #endif // LIB3270_H_INCLUDED | 351 | #endif // LIB3270_H_INCLUDED |
latest/src/include/lib3270/api.h
@@ -603,8 +603,8 @@ | @@ -603,8 +603,8 @@ | ||
603 | LIB3270_EXPORT int ctlr_get_rows(void) __attribute__ ((deprecated)); | 603 | LIB3270_EXPORT int ctlr_get_rows(void) __attribute__ ((deprecated)); |
604 | 604 | ||
605 | /* Screen calls */ | 605 | /* Screen calls */ |
606 | - LIB3270_EXPORT void screen_resume(void); | ||
607 | - LIB3270_EXPORT void screen_suspend(void); | 606 | + LIB3270_EXPORT void screen_resume(H3270 *session); |
607 | + LIB3270_EXPORT void screen_suspend(H3270 *session); | ||
608 | LIB3270_EXPORT void screen_disp(H3270 *session); | 608 | LIB3270_EXPORT void screen_disp(H3270 *session); |
609 | 609 | ||
610 | /* Console calls */ | 610 | /* Console calls */ |
@@ -623,8 +623,6 @@ | @@ -623,8 +623,6 @@ | ||
623 | #define host_connect(n,wait) lib3270_connect(NULL,n,wait) | 623 | #define host_connect(n,wait) lib3270_connect(NULL,n,wait) |
624 | #define host_reconnect(w) lib3270_reconnect(NULL,w) | 624 | #define host_reconnect(w) lib3270_reconnect(NULL,w) |
625 | 625 | ||
626 | - LIB3270_EXPORT void host_disconnect(H3270 *h, int disable); | ||
627 | - | ||
628 | #define register_schange(tx,func) lib3270_register_schange(NULL,tx,func,NULL) | 626 | #define register_schange(tx,func) lib3270_register_schange(NULL,tx,func,NULL) |
629 | LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE tx, void (*func)(H3270 *, int, void *),void *user_data); | 627 | LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE tx, void (*func)(H3270 *, int, void *),void *user_data); |
630 | 628 |
latest/src/lib/Makefile.in
@@ -67,13 +67,13 @@ SDK_LDFLAGS= | @@ -67,13 +67,13 @@ SDK_LDFLAGS= | ||
67 | 67 | ||
68 | #---[ Sources ]---------------------------------------------------------------- | 68 | #---[ Sources ]---------------------------------------------------------------- |
69 | 69 | ||
70 | -SOURCES = version.c XtGlue.c actions.c ansi.c apl.c charset.c ctlr.c \ | 70 | +SOURCES = version.c XtGlue.c actions.c ansi.c charset.c ctlr.c \ |
71 | ft.c ft_cut.c ft_dft.c glue.c host.c kybd.c \ | 71 | ft.c ft_cut.c ft_dft.c glue.c host.c kybd.c \ |
72 | print.c printer.c proxy.c resources.c rpq.c screen.c see.c \ | 72 | print.c printer.c proxy.c resources.c rpq.c screen.c see.c \ |
73 | sf.c tables.c telnet.c toggles.c trace_ds.c utf8.c util.c \ | 73 | sf.c tables.c telnet.c toggles.c trace_ds.c utf8.c util.c \ |
74 | xio.c resolver.c log.c paste.c macros.c @LIB_SRCS@ | 74 | xio.c resolver.c log.c paste.c macros.c @LIB_SRCS@ |
75 | 75 | ||
76 | -# icmd.c | 76 | +# icmd.c apl.c |
77 | 77 | ||
78 | #---[ Rules ]------------------------------------------------------------------ | 78 | #---[ Rules ]------------------------------------------------------------------ |
79 | 79 |
latest/src/lib/host.c
@@ -689,6 +689,11 @@ static void try_reconnect(H3270 *session) | @@ -689,6 +689,11 @@ static void try_reconnect(H3270 *session) | ||
689 | lib3270_reconnect(session,0); | 689 | lib3270_reconnect(session,0); |
690 | } | 690 | } |
691 | 691 | ||
692 | +LIB3270_EXPORT void lib3270_disconnect(H3270 *h) | ||
693 | +{ | ||
694 | + host_disconnect(h,0); | ||
695 | +} | ||
696 | + | ||
692 | void host_disconnect(H3270 *h, int failed) | 697 | void host_disconnect(H3270 *h, int failed) |
693 | { | 698 | { |
694 | CHECK_SESSION_HANDLE(h); | 699 | CHECK_SESSION_HANDLE(h); |
@@ -768,24 +773,6 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE_CHANGE tx, v | @@ -768,24 +773,6 @@ LIB3270_EXPORT void lib3270_register_schange(H3270 *h,LIB3270_STATE_CHANGE tx, v | ||
768 | 773 | ||
769 | } | 774 | } |
770 | 775 | ||
771 | -/* | ||
772 | -void register_schange(LIB3270_STATE_CHANGE tx, void (*func)(H3270 *, int)) | ||
773 | -{ | ||
774 | - struct st_callback *st; | ||
775 | - | ||
776 | - st = (struct st_callback *)Malloc(sizeof(*st)); | ||
777 | - | ||
778 | - st->func = func; | ||
779 | - st->next = (struct st_callback *)NULL; | ||
780 | - | ||
781 | - if (st_last[tx] != (struct st_callback *)NULL) | ||
782 | - st_last[tx]->next = st; | ||
783 | - else | ||
784 | - st_callbacks[tx] = st; | ||
785 | - st_last[tx] = st; | ||
786 | -} | ||
787 | -*/ | ||
788 | - | ||
789 | /* Signal a state change. */ | 776 | /* Signal a state change. */ |
790 | void lib3270_st_changed(H3270 *h, int tx, int mode) | 777 | void lib3270_st_changed(H3270 *h, int tx, int mode) |
791 | { | 778 | { |
latest/src/lib/hostc.h
@@ -36,5 +36,5 @@ | @@ -36,5 +36,5 @@ | ||
36 | LIB3270_INTERNAL void hostfile_init(void); | 36 | LIB3270_INTERNAL void hostfile_init(void); |
37 | LIB3270_INTERNAL void host_connected(H3270 *session); | 37 | LIB3270_INTERNAL void host_connected(H3270 *session); |
38 | LIB3270_INTERNAL void host_in3270(H3270 *session, LIB3270_CSTATE); | 38 | LIB3270_INTERNAL void host_in3270(H3270 *session, LIB3270_CSTATE); |
39 | - | 39 | + LIB3270_INTERNAL void host_disconnect(H3270 *h, int disable); |
40 | 40 |
latest/src/lib/kybd.c
@@ -467,7 +467,7 @@ operator_error(int error_type) | @@ -467,7 +467,7 @@ operator_error(int error_type) | ||
467 | 467 | ||
468 | if(appres.oerr_lock) { // || sms_redirect()) { | 468 | if(appres.oerr_lock) { // || sms_redirect()) { |
469 | status_oerr(NULL,error_type); | 469 | status_oerr(NULL,error_type); |
470 | - mcursor_locked(); | 470 | + mcursor_locked(&h3270); |
471 | kybdlock_set((unsigned int)error_type, "operator_error"); | 471 | kybdlock_set((unsigned int)error_type, "operator_error"); |
472 | (void) flush_ta(); | 472 | (void) flush_ta(); |
473 | } else { | 473 | } else { |
@@ -528,7 +528,7 @@ key_AID(unsigned char aid_code) | @@ -528,7 +528,7 @@ key_AID(unsigned char aid_code) | ||
528 | } | 528 | } |
529 | if (!IN_SSCP || aid_code != AID_CLEAR) { | 529 | if (!IN_SSCP || aid_code != AID_CLEAR) { |
530 | status_twait(NULL); | 530 | status_twait(NULL); |
531 | - mcursor_waiting(); | 531 | + mcursor_waiting(&h3270); |
532 | set_toggle(INSERT,0); | 532 | set_toggle(INSERT,0); |
533 | kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); | 533 | kybdlock_set(KL_OIA_TWAIT | KL_OIA_LOCKED, "key_AID"); |
534 | } | 534 | } |
@@ -1567,7 +1567,7 @@ do_reset(Boolean explicit) | @@ -1567,7 +1567,7 @@ do_reset(Boolean explicit) | ||
1567 | 1567 | ||
1568 | /* Clean up other modes. */ | 1568 | /* Clean up other modes. */ |
1569 | status_reset(NULL); | 1569 | status_reset(NULL); |
1570 | - mcursor_normal(); | 1570 | + mcursor_normal(&h3270); |
1571 | 1571 | ||
1572 | // composing = NONE; | 1572 | // composing = NONE; |
1573 | // status_compose(False, 0, KT_STD); | 1573 | // status_compose(False, 0, KT_STD); |
latest/src/lib/paste.c
@@ -175,7 +175,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | @@ -175,7 +175,7 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | ||
175 | if(kybdlock) | 175 | if(kybdlock) |
176 | return -EINVAL; | 176 | return -EINVAL; |
177 | 177 | ||
178 | - screen_suspend(); | 178 | + screen_suspend(h); |
179 | 179 | ||
180 | while(*str && last && !kybdlock && h->cursor_addr >= data.orig_addr) | 180 | while(*str && last && !kybdlock && h->cursor_addr >= data.orig_addr) |
181 | { | 181 | { |
@@ -215,6 +215,6 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | @@ -215,6 +215,6 @@ LIB3270_EXPORT int lib3270_set_string(H3270 *h, const unsigned char *str) | ||
215 | } | 215 | } |
216 | } | 216 | } |
217 | 217 | ||
218 | - screen_resume(); | 218 | + screen_resume(h); |
219 | return data.qtd; | 219 | return data.qtd; |
220 | } | 220 | } |
latest/src/lib/screen.c
@@ -187,7 +187,7 @@ int screen_init(H3270 *session) | @@ -187,7 +187,7 @@ int screen_init(H3270 *session) | ||
187 | #endif | 187 | #endif |
188 | 188 | ||
189 | /* Finish screen initialization. */ | 189 | /* Finish screen initialization. */ |
190 | - screen_suspend(); | 190 | + screen_suspend(session); |
191 | 191 | ||
192 | return 0; | 192 | return 0; |
193 | } | 193 | } |
@@ -449,15 +449,15 @@ void screen_disp(H3270 *session) | @@ -449,15 +449,15 @@ void screen_disp(H3270 *session) | ||
449 | callbacks->display(session); | 449 | callbacks->display(session); |
450 | } | 450 | } |
451 | 451 | ||
452 | -void screen_suspend(void) | 452 | +void screen_suspend(H3270 *session) |
453 | { | 453 | { |
454 | if(callbacks && callbacks->set_suspended) | 454 | if(callbacks && callbacks->set_suspended) |
455 | callbacks->set_suspended(1); | 455 | callbacks->set_suspended(1); |
456 | } | 456 | } |
457 | 457 | ||
458 | -void screen_resume(void) | 458 | +void screen_resume(H3270 *session) |
459 | { | 459 | { |
460 | - screen_disp(&h3270); | 460 | + screen_disp(session); |
461 | 461 | ||
462 | if(callbacks && callbacks->set_suspended) | 462 | if(callbacks && callbacks->set_suspended) |
463 | callbacks->set_suspended(0); | 463 | callbacks->set_suspended(0); |
@@ -822,23 +822,39 @@ void Warning(const char *fmt, ...) | @@ -822,23 +822,39 @@ void Warning(const char *fmt, ...) | ||
822 | 822 | ||
823 | } | 823 | } |
824 | 824 | ||
825 | -void mcursor_locked() | 825 | +void mcursor_set(H3270 *session,CURSOR_MODE m) |
826 | { | 826 | { |
827 | + CHECK_SESSION_HANDLE(session); | ||
828 | + | ||
829 | + if(callbacks && callbacks->cursor) | ||
830 | + callbacks->cursor(m); | ||
831 | +} | ||
832 | + | ||
833 | +/* | ||
834 | +void mcursor_locked(H3270 *session) | ||
835 | +{ | ||
836 | + CHECK_SESSION_HANDLE(session); | ||
837 | + | ||
827 | if(callbacks && callbacks->cursor) | 838 | if(callbacks && callbacks->cursor) |
828 | callbacks->cursor(CURSOR_MODE_LOCKED); | 839 | callbacks->cursor(CURSOR_MODE_LOCKED); |
829 | } | 840 | } |
830 | 841 | ||
831 | -extern void mcursor_normal() | 842 | +extern void mcursor_normal(H3270 *session) |
832 | { | 843 | { |
844 | + CHECK_SESSION_HANDLE(session); | ||
845 | + | ||
833 | if(callbacks && callbacks->cursor) | 846 | if(callbacks && callbacks->cursor) |
834 | callbacks->cursor(CURSOR_MODE_NORMAL); | 847 | callbacks->cursor(CURSOR_MODE_NORMAL); |
835 | } | 848 | } |
836 | 849 | ||
837 | -extern void mcursor_waiting() | 850 | +extern void mcursor_waiting(H3270 *session) |
838 | { | 851 | { |
852 | + CHECK_SESSION_HANDLE(session); | ||
853 | + | ||
839 | if(callbacks && callbacks->cursor) | 854 | if(callbacks && callbacks->cursor) |
840 | callbacks->cursor(CURSOR_MODE_WAITING); | 855 | callbacks->cursor(CURSOR_MODE_WAITING); |
841 | } | 856 | } |
857 | +*/ | ||
842 | 858 | ||
843 | /* Pop up an error dialog. */ | 859 | /* Pop up an error dialog. */ |
844 | extern void popup_an_error(const char *fmt, ...) | 860 | extern void popup_an_error(const char *fmt, ...) |
latest/src/lib/screenc.h
@@ -31,9 +31,18 @@ LIB3270_INTERNAL int screen_init(H3270 *session); | @@ -31,9 +31,18 @@ LIB3270_INTERNAL int screen_init(H3270 *session); | ||
31 | // LIB3270_INTERNAL void screen_flip(void); | 31 | // LIB3270_INTERNAL void screen_flip(void); |
32 | LIB3270_INTERNAL FILE *start_pager(void); | 32 | LIB3270_INTERNAL FILE *start_pager(void); |
33 | LIB3270_INTERNAL Boolean screen_new_display_charsets(char *cslist, char *csname); | 33 | LIB3270_INTERNAL Boolean screen_new_display_charsets(char *cslist, char *csname); |
34 | -LIB3270_INTERNAL void mcursor_locked(); | ||
35 | -LIB3270_INTERNAL void mcursor_normal(); | ||
36 | -LIB3270_INTERNAL void mcursor_waiting(); | 34 | + |
35 | +LIB3270_INTERNAL void mcursor_set(H3270 *session,CURSOR_MODE m); | ||
36 | + | ||
37 | +#define mcursor_locked(x) mcursor_set(x,CURSOR_MODE_LOCKED) | ||
38 | +#define mcursor_normal(x) mcursor_set(x,CURSOR_MODE_NORMAL) | ||
39 | +#define mcursor_waiting(x) mcursor_set(x,CURSOR_MODE_WAITING) | ||
40 | + | ||
41 | + | ||
42 | +//LIB3270_INTERNAL void mcursor_locked(H3270 *session); | ||
43 | +//LIB3270_INTERNAL void mcursor_normal(H3270 *session); | ||
44 | +//LIB3270_INTERNAL void mcursor_waiting(H3270 *session); | ||
45 | + | ||
37 | LIB3270_INTERNAL void notify_toggle_changed(int ix, int value, int reason); | 46 | LIB3270_INTERNAL void notify_toggle_changed(int ix, int value, int reason); |
38 | LIB3270_INTERNAL void set_viewsize(H3270 *session, int rows, int cols); | 47 | LIB3270_INTERNAL void set_viewsize(H3270 *session, int rows, int cols); |
39 | 48 |
latest/src/oxt/connection.cxx
@@ -33,7 +33,7 @@ | @@ -33,7 +33,7 @@ | ||
33 | #include "ooo3270.hpp" | 33 | #include "ooo3270.hpp" |
34 | #include <osl/thread.hxx> | 34 | #include <osl/thread.hxx> |
35 | #include <errno.h> | 35 | #include <errno.h> |
36 | -#include <lib3270/api.h> | 36 | +#include <lib3270.h> |
37 | #include <string.h> | 37 | #include <string.h> |
38 | #include <time.h> | 38 | #include <time.h> |
39 | #include <malloc.h> | 39 | #include <malloc.h> |
@@ -132,7 +132,7 @@ sal_Int16 SAL_CALL pw3270::uno_impl::Disconnect() throw (RuntimeException) | @@ -132,7 +132,7 @@ sal_Int16 SAL_CALL pw3270::uno_impl::Disconnect() throw (RuntimeException) | ||
132 | 132 | ||
133 | yeld(); | 133 | yeld(); |
134 | 134 | ||
135 | - host_disconnect(this->hSession,0); | 135 | + lib3270_disconnect(this->hSession); |
136 | 136 | ||
137 | yeld(); | 137 | yeld(); |
138 | 138 |
latest/src/plugins/rexx/network.c