Changes in global.c [dc1edbd:7b4f3be]
Legend:
- Unmodified
- Added
- Removed
-
global.c
rdc1edbd r7b4f3be 16 16 17 17 g_type_init(); 18 g_thread_init(NULL);19 20 owl_select_init();21 18 22 19 g->lines=LINES; … … 54 51 g->direction=OWL_DIRECTION_DOWNWARDS; 55 52 g->zaway=0; 56 if (has_colors()) {57 g->hascolors=1;58 }59 g->colorpairs=COLOR_PAIRS;60 53 owl_fmtext_init_colorpair_mgr(&(g->cpmgr)); 61 54 g->debug=OWL_DEBUG; … … 102 95 103 96 owl_errqueue_init(&(g->errqueue)); 97 g->got_err_signal=0; 104 98 105 99 owl_zbuddylist_create(&(g->zbuddies)); … … 110 104 owl_message_init_fmtext_cache(); 111 105 owl_list_create(&(g->io_dispatch_list)); 106 owl_list_create(&(g->psa_list)); 112 107 g->timerlist = NULL; 108 g->interrupted = FALSE; 113 109 g->kill_buffer = NULL; 114 115 g->interrupt_count = 0;116 g->interrupt_lock = g_mutex_new();117 110 } 118 111 … … 351 344 352 345 void owl_global_set_resize_pending(owl_global *g) { 353 g->resizepending = true;346 g->resizepending=1; 354 347 } 355 348 … … 451 444 /* resize the screen. If lines or cols is 0 use the terminal size */ 452 445 if (!g->resizepending) return; 453 g->resizepending = false;446 g->resizepending = 0; 454 447 455 448 owl_global_get_terminal_size(&g->lines, &g->cols); … … 577 570 owl_view *owl_global_get_current_view(owl_global *g) { 578 571 return(&(g->current_view)); 579 }580 581 /* has colors */582 583 int owl_global_get_hascolors(const owl_global *g) {584 if (g->hascolors) return(1);585 return(0);586 }587 588 /* color pairs */589 590 int owl_global_get_colorpairs(const owl_global *g) {591 return(g->colorpairs);592 572 } 593 573 … … 696 676 } 697 677 698 bool owl_global_is_doaimevents(const owl_global *g) 699 { 700 return g->aim_event_source != NULL; 678 int owl_global_is_doaimevents(const owl_global *g) 679 { 680 if (g->aim_doprocessing) return(1); 681 return(0); 701 682 } 702 683 703 684 void owl_global_set_doaimevents(owl_global *g) 704 685 { 705 if (g->aim_event_source) 706 return; 707 g->aim_event_source = owl_aim_event_source_new(owl_global_get_aimsess(g)); 708 g_source_attach(g->aim_event_source, NULL); 686 g->aim_doprocessing=1; 709 687 } 710 688 711 689 void owl_global_set_no_doaimevents(owl_global *g) 712 690 { 713 if (!g->aim_event_source) 714 return; 715 g_source_destroy(g->aim_event_source); 716 g_source_unref(g->aim_event_source); 717 g->aim_event_source = NULL; 691 g->aim_doprocessing=0; 718 692 } 719 693 … … 833 807 } 834 808 809 void owl_global_set_errsignal(owl_global *g, int signum, siginfo_t *siginfo) 810 { 811 g->got_err_signal = signum; 812 if (siginfo) { 813 g->err_signal_info = *siginfo; 814 } else { 815 siginfo_t si; 816 memset(&si, 0, sizeof(si)); 817 g->err_signal_info = si; 818 } 819 } 820 821 int owl_global_get_errsignal_and_clear(owl_global *g, siginfo_t *siginfo) 822 { 823 int signum; 824 if (siginfo && g->got_err_signal) { 825 *siginfo = g->err_signal_info; 826 } 827 signum = g->got_err_signal; 828 g->got_err_signal = 0; 829 return signum; 830 } 831 832 835 833 owl_zbuddylist *owl_global_get_zephyr_buddylist(owl_global *g) 836 834 { … … 863 861 } 864 862 863 owl_list *owl_global_get_psa_list(owl_global *g) 864 { 865 return &(g->psa_list); 866 } 867 865 868 GList **owl_global_get_timerlist(owl_global *g) 866 869 { 867 870 return &(g->timerlist); 871 } 872 873 int owl_global_is_interrupted(const owl_global *g) { 874 return g->interrupted; 875 } 876 877 void owl_global_set_interrupted(owl_global *g) { 878 g->interrupted = 1; 879 } 880 881 void owl_global_unset_interrupted(owl_global *g) { 882 g->interrupted = 0; 868 883 } 869 884 … … 933 948 g->kill_buffer = g_strndup(kill, len); 934 949 } 935 936 void owl_global_add_interrupt(owl_global *g) {937 /* TODO: This can almost certainly be done with atomic938 * operations. Whatever. */939 g_mutex_lock(g->interrupt_lock);940 g->interrupt_count++;941 g_mutex_unlock(g->interrupt_lock);942 }943 944 bool owl_global_take_interrupt(owl_global *g) {945 bool ans = false;946 g_mutex_lock(g->interrupt_lock);947 if (g->interrupt_count > 0) {948 ans = true;949 g->interrupt_count--;950 }951 g_mutex_unlock(g->interrupt_lock);952 return ans;953 }
Note: See TracChangeset
for help on using the changeset viewer.