/* * send all buffered data to the remote host */ void tcp_flush __P0 (void) { int n; char *p = output_buffer; if (output_len && output_socket == -1) { clear_input_line(1); PRINTF("#no open connections. Use '#connect main <address> <port>' to open a connection.\n"); output_len = 0; return; } if (!output_len) return; while (output_len) { while ((n = write(output_socket, p, output_len)) < 0 && errno == EINTR) ; if (n < 0) { output_len = 0; errmsg("write to socket"); return; } sent += n; p += n; output_len -= n; } if (CONN_LIST(output_socket).flags & SPAWN) status(1); else /* sent stuff, so we expect a prompt */ status(-1); }
static void write_message __P1 (char *,s) { clear_input_line(opt_compact); if (!opt_compact) { tty_putc('\n'); status(1); } tty_puts(s); }
static int click_buddy_handler (window_info *win, int mx, int my, Uint32 flags) { int x = mx; int y = my - buddy_border_space; char str[50]; // scroll the winow with the mouse wheel if(flags & ELW_WHEEL_UP) { vscrollbar_scroll_up(buddy_win,buddy_scroll_id); return 1; } else if(flags & ELW_WHEEL_DOWN) { vscrollbar_scroll_down(buddy_win,buddy_scroll_id); return 1; } // only handle mouse button clicks, not scroll wheels moves if ( (flags & ELW_MOUSE_BUTTON) == 0) return 0; if(x > (win->len_x - win->box_size)) { //Clicked on the scrollbar. Let it fall through. return 0; } else if(!queue_isempty(buddy_request_queue) && mx > (request_box_start_x - win->small_font_len_x) && y < (win->small_font_len_y + 1)) { //Clicked on the requests button while(!queue_isempty(buddy_request_queue)) { char *name = queue_pop(buddy_request_queue); select_window(display_accept_buddy(name)); free(name); } return 1; } // clicked on a buddy's name y /= buddy_name_step_y; if (y >= num_displayed_buddies) return 0; y += vscrollbar_get_pos(buddy_win,buddy_scroll_id); if((strlen(buddy_list[y].name) == 0)||(buddy_list[y].type > 0xFE)) { //There's no name. Fall through. return 0; } if(flags&ELW_RIGHT_MOUSE) { if(flags&ELW_CTRL) { //CTRL + right click, delete buddy. safe_snprintf(str, sizeof(str), "%c#del_buddy %s", RAW_TEXT, buddy_list[y].name); my_tcp_send(my_socket, (Uint8*)str, strlen(str+1)+1); } else { //Right click, open edit window display_buddy_change(&buddy_list[y]); } } else if (buddy_list[y].type < 0xFE) { //start a pm to them // clear the buffer clear_input_line(); // insert the person's name safe_snprintf (str, sizeof(str),"/%s ", buddy_list[y].name); //put_string_in_buffer (&input_text_line, str, 0); //We'll just reuse the paste function here paste_in_input_field((unsigned char*)str); } return 1; }