Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • global.c

    rdc1edbd r7b4f3be  
    1616
    1717  g_type_init();
    18   g_thread_init(NULL);
    19 
    20   owl_select_init();
    2118
    2219  g->lines=LINES;
     
    5451  g->direction=OWL_DIRECTION_DOWNWARDS;
    5552  g->zaway=0;
    56   if (has_colors()) {
    57     g->hascolors=1;
    58   }
    59   g->colorpairs=COLOR_PAIRS;
    6053  owl_fmtext_init_colorpair_mgr(&(g->cpmgr));
    6154  g->debug=OWL_DEBUG;
     
    10295
    10396  owl_errqueue_init(&(g->errqueue));
     97  g->got_err_signal=0;
    10498
    10599  owl_zbuddylist_create(&(g->zbuddies));
     
    110104  owl_message_init_fmtext_cache();
    111105  owl_list_create(&(g->io_dispatch_list));
     106  owl_list_create(&(g->psa_list));
    112107  g->timerlist = NULL;
     108  g->interrupted = FALSE;
    113109  g->kill_buffer = NULL;
    114 
    115   g->interrupt_count = 0;
    116   g->interrupt_lock = g_mutex_new();
    117110}
    118111
     
    351344
    352345void owl_global_set_resize_pending(owl_global *g) {
    353   g->resizepending = true;
     346  g->resizepending=1;
    354347}
    355348
     
    451444  /* resize the screen.  If lines or cols is 0 use the terminal size */
    452445  if (!g->resizepending) return;
    453   g->resizepending = false;
     446  g->resizepending = 0;
    454447
    455448  owl_global_get_terminal_size(&g->lines, &g->cols);
     
    577570owl_view *owl_global_get_current_view(owl_global *g) {
    578571  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);
    592572}
    593573
     
    696676}
    697677
    698 bool owl_global_is_doaimevents(const owl_global *g)
    699 {
    700   return g->aim_event_source != NULL;
     678int owl_global_is_doaimevents(const owl_global *g)
     679{
     680  if (g->aim_doprocessing) return(1);
     681  return(0);
    701682}
    702683
    703684void owl_global_set_doaimevents(owl_global *g)
    704685{
    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;
    709687}
    710688
    711689void owl_global_set_no_doaimevents(owl_global *g)
    712690{
    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;
    718692}
    719693
     
    833807}
    834808
     809void 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
     821int 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
    835833owl_zbuddylist *owl_global_get_zephyr_buddylist(owl_global *g)
    836834{
     
    863861}
    864862
     863owl_list *owl_global_get_psa_list(owl_global *g)
     864{
     865  return &(g->psa_list);
     866}
     867
    865868GList **owl_global_get_timerlist(owl_global *g)
    866869{
    867870  return &(g->timerlist);
     871}
     872
     873int owl_global_is_interrupted(const owl_global *g) {
     874  return g->interrupted;
     875}
     876
     877void owl_global_set_interrupted(owl_global *g) {
     878  g->interrupted = 1;
     879}
     880
     881void owl_global_unset_interrupted(owl_global *g) {
     882  g->interrupted = 0;
    868883}
    869884
     
    933948  g->kill_buffer = g_strndup(kill, len);
    934949}
    935 
    936 void owl_global_add_interrupt(owl_global *g) {
    937   /* TODO: This can almost certainly be done with atomic
    938    * 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.