void stream() { unsigned char msg_id; unsigned long count; unsigned char interface_id; drawInput(); wmove(w_in,1,1); waddstr(w_in,"Interface id: "); echo(); wscanw(w_in,"%hhd",&interface_id); noecho(); wmove(w_in,2,1); waddstr(w_in,"Message id: "); echo(); wscanw(w_in,"%hhd",&msg_id); noecho(); wmove(w_in,3,1); waddstr(w_in,"Message count: "); echo(); wscanw(w_in,"%ld",&count); noecho(); wmove(w_in,4,1); if(sensor.ReqStream(interface_id,msg_id,count)) { wprintw(w_in,"Data Requested (%hhd)",msg_id); } else { waddstr(w_in,"Stream Request Failed"); } wrefresh(w_in); }
void data() { unsigned char msg_id; unsigned char interface_id; drawInput(); wmove(w_in,1,1); waddstr(w_in,"Interface id: "); echo(); wscanw(w_in,"%hhd",&interface_id); noecho(); wmove(w_in,2,1); waddstr(w_in,"Message id: "); echo(); wscanw(w_in,"%hhd",&msg_id); noecho(); wmove(w_in,3,1); if(sensor.ReqData(interface_id,msg_id)) { wprintw(w_in,"Data Requested (%hhd)",msg_id); } else { waddstr(w_in,"Data Request Failed"); } wrefresh(w_in); }
void timeattone() { long sec,usec; drawInput(); wmove(w_in,1,1); waddstr(w_in,"seconds: "); echo(); wscanw(w_in,"%ld",&sec); noecho(); wmove(w_in,2,1); waddstr(w_in,"microsecons: "); echo(); wscanw(w_in,"%ld",&usec); noecho(); wmove(w_in,3,1); wprintw(w_in,"Time at Tone:"); wmove(w_in,4,1); wprintw(w_in,"%ld s %ld us",sec,usec); wmove(w_in,5,1); if(sensor.TimeAtTone(sec,usec)) { waddstr(w_in,"Time at Tone Sent"); } else { waddstr(w_in,"Time at Tone Failed"); } wrefresh(w_in); }
void cancel() { unsigned char msg_id; unsigned char interface_id; drawInput(); wmove(w_in,1,1); waddstr(w_in,"Interface id: "); echo(); wscanw(w_in,"%hhd",&interface_id); noecho(); wmove(w_in,2,1); waddstr(w_in,"Message id: "); echo(); wscanw(w_in,"%hhd",&msg_id); noecho(); wmove(w_in,3,1); wprintw(w_in,"Data Canceled (%hhd)",msg_id); wmove(w_in,4,1); if(sensor.Cancel(interface_id,msg_id)) { waddstr(w_in,"Cancel Sent"); } else { waddstr(w_in,"Cancel Failed"); } wrefresh(w_in); }
/* Schreibt den Speicher in eine Datei */ int coreDump() { FILE *file; int r=0; char str[256]; echo(); /* Echo an */ curs_set(1); /* Cursor an*/ mvwprintw(cmdWin, 1, 1, "Dateiname"); mvwprintw(cmdWin, 2, 1, ":"); wrefresh(cmdWin); wscanw(cmdWin, "%s", &str); file = fopen(str, "wb"); if (file==NULL) return i8086_ERR_FILENF; r = fwrite(core->mem, sizeof(char), i8086_MEM_SIZE, file); if (r==0) return i8086_ERR_FILEREAD; fclose(file); clearCmd(); return i8086_SUC_FILELOAD; }
void asim_command() { unsigned char cmd_id; short length; unsigned char* data; int i; unsigned char interface_id; drawInput(); wmove(w_in,1,1); waddstr(w_in,"Interface id: "); echo(); wscanw(w_in,"%hhd",&interface_id); noecho(); wmove(w_in,2,1); waddstr(w_in,"Command id: "); echo(); wscanw(w_in,"%hhd",&cmd_id); noecho(); wmove(w_in,3,1); waddstr(w_in,"Command length: "); echo(); wscanw(w_in,"%hd",&length); noecho(); data = (unsigned char*)malloc(sizeof(unsigned char)*length); for(i=0;i<length;i++) { wmove(w_in,4+i,1); waddstr(w_in,"Command byte: "); echo(); wscanw(w_in,"%hhd",&(data[i])); noecho(); } wmove(w_in,5+i,1); if(sensor.Command(interface_id,cmd_id,length,data)) { wprintw(w_in,"Command %hhd Sent",cmd_id); } else { wprintw(w_in,"Command %hhd Failed",cmd_id); } free(data); wrefresh(w_in); }
void printHelp() { char c; mvwprintw(cmdWin, 1, 1, "m - Print StrAdr. q - Quit. r - Set Reg. w - Set Mem"); wrefresh(cmdWin); wscanw(cmdWin, "%c", &c); clearCmd(); }
void getNextMove(figure * gBoard[8][8]) { int startM, endM, startX, startY, endX, endY; werase(in); ChessBoard.print(); waddstr(in, "StartXY:"); wscanw(in, "%d", &startM); startX = startM / 10 - 1; startY = startM % 10 - 1; waddstr(in, "EndXY:"); wscanw(in, "%d", &endM); endX = endM / 10 - 1; endY = endM % 10 - 1; gBoard[7-endY][endX]= gBoard[7-startY][startX]; gBoard[startY][startX] = 0; }
/* Nur ein BP möglich */ void setBreakpoint() { unsigned short adr=0; mvwprintw(cmdWin, 1, 1, "Breakpoint (Hex max 4 Stellen)"); mvwprintw(cmdWin, 2, 1, ":"); wrefresh(cmdWin); echo(); /* Echo an */ curs_set(1); /* Cursor an*/ wscanw(cmdWin, "%4hx", &adr); breakpoint = adr; clearCmd(); }
/* Setzt den angezeigten Speicheraschnitt */ unsigned short readMem() { unsigned short v=0; mvwprintw(cmdWin, 1, 1, "Adr(Hex max 4 Stellen):"); wrefresh(cmdWin); echo(); /* Echo an */ curs_set(1); /* Cursor an*/ wscanw(cmdWin, "%4hx", &v); clearCmd(); return (v/16)*16; }
/* Setzt den Wert in einer Speicheradresse */ void setMem() { unsigned short adr=0, v=0; mvwprintw(cmdWin, 1, 1, "Adr(Hex max 4 Stellen) Vl(Hex max 2 Stellen)"); mvwprintw(cmdWin, 2, 1, ":"); wrefresh(cmdWin); echo(); /* Echo an */ curs_set(1); /* Cursor an*/ wscanw(cmdWin, "%4hx %2hx", &adr, &v); core->mem[adr] = v; clearCmd(); }
int get_sno(int stat,infostruct user, char *sno,char *header,char *ask){ WINDOW *send_reply; char conf; int retval = 2; int x,y; char *screen_name; double message_id; char *message; screen_name = (char *)malloc(25 * sizeof(char)); if(screen_name == NULL){ return 1; } message = (char *)malloc(200 * sizeof(char)); if(message == NULL){ return 1; } echo(); send_reply = newwin(10,80,user.row/2, (user.col - 80)/2); keypad(send_reply,TRUE); box(send_reply,0,0); wattron(send_reply,A_BOLD); mvwprintw(send_reply,2,(getmaxx(send_reply) -strlen(header))/2,"%s",header); wattroff(send_reply,A_BOLD); mvwprintw(send_reply,4,5,"%s",ask); wrefresh(send_reply); wscanw(send_reply,"%s",sno); if((message_id = get_message_id(stat,sno,&screen_name,&message)) == 1) return 1; getyx(send_reply,y,x); mvwprintw(send_reply,getmaxy(send_reply)- 2,5,"%s","Confirm? [y/N]"); wrefresh(send_reply); do { conf = wgetch(send_reply); if(conf == 'Y' || conf == 'y') retval = 0; else if (conf == 'N' || conf == 'n') retval = 1; }while(conf != 'y' && conf != 'Y' && conf != 'N' && conf != 'n'); noecho(); refresh(); delwin(send_reply); return retval; }
void group_chat(int new_fd) { char str[100]; Node msg; char *wday[] = {"Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"}; time_t timep; struct tm *p; time(&timep); p = localtime(&timep); memset(str, 0, sizeof(str[100])); memset(&msg, 0, sizeof(Node)); msg.action = GROUP_CHAT; msg.online_sfd = msg1.online_sfd; msg.state = msg1.state; my_strcpy(msg.id, msg1.id); my_strcpy(msg.name, msg1.name); my_strcpy(msg.password, msg1.password); curs_set(1); mvwaddstr(ch_window3, 1, 4, "TO ALL USERS"); mvwaddstr(ch_window3, 3, 4, "MESSAGE :"); wmove(ch_window3, 3, 14); wrefresh(ch_window3); echo(); wscanw(ch_window3, "%s", str); sprintf(msg.message, "(%d/%d/%d %s %d:%d:%d): %s", (1900+p->tm_year), (1+p->tm_mon), p->tm_mday, wday[p->tm_wday], p->tm_hour, p->tm_min, p->tm_sec, str); wprintw(ch_window2, "我 对 所有人 %s\n", msg.message); wrefresh(ch_window2); write(new_fd, &msg, sizeof(Node)); mvwaddstr(ch_window3, 1, 4, " "); mvwaddstr(ch_window3, 3, 4, " "); mvwaddstr(ch_window3, 4, 1, " "); wrefresh(ch_window3); }
/* Setzt den Wert eines Registers */ void setReg() { unsigned short reg=0, v=0; //wmove(cmdWin, 1, 1); echo(); /* Echo an */ curs_set(1); /* Cursor an*/ mvwprintw(cmdWin, 1, 1, "Reg(AX=0 BX=3 CX=1 DX=2 SP-DI=4-7 DS 8) Value(Dec):"); mvwprintw(cmdWin, 2, 1, ":"); wrefresh(cmdWin); wscanw(cmdWin, "%1hi %hi", ®, &v); if (reg==8) i8086SetSegRegister(core, i8086_REG_DS, v); else i8086SetRegister(core, reg, 1, v); clearCmd(); printReg(); }
char *input_name(void) { char *name = malloc(sizeof(char) * 36); int height = 3; int width = 40; int startx = (COLS - width) / 2; int starty = (LINES - height) / 2; WINDOW *win = newwin(height, width, starty, startx); clear(); box(win, 0, 0); mvwprintw(win, 0, 1, "Enter your name"); wrefresh(win); wmove(win, 1, 1); noraw(); echo(); wscanw(win, "%[a-zA-z_0-9]", name); raw(); noecho(); return name; }
void outputTest(WINDOW *win) { WINDOW *win1; char Buffer[80]; chtype ch; int by, bx; nl(); wclear(win); mvwaddstr(win, 1, 1, "You should now have a screen in the upper " "left corner, and this text should have wrapped"); waddstr(win,"\nThis text should be down\n"); waddstr(win, "and broken into two here ^"); Continue(win); wclear(win); wattron(win, A_BOLD); mvwaddstr(win, 1, 1, "A new window will appear with this text in it"); mvwaddstr(win, 8, 1, "Press any key to continue"); wrefresh(win); wgetch(win); getbegyx(win, by, bx); if (LINES < 24 || COLS < 75) { mvwaddstr(win, 5, 1, "Some tests have been skipped as they require a"); mvwaddstr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS"); Continue(win); } else { win1 = newwin(10, 50, 14, 25); if (win1 == NULL) { endwin(); return; } #ifdef A_COLOR if (has_colors()) { init_pair(3, COLOR_BLUE, COLOR_WHITE); wbkgd(win1, COLOR_PAIR(3)); } else #endif wbkgd(win1, A_NORMAL); wclear(win1); mvwaddstr(win1, 5, 1, "This text should appear; using overlay option"); copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE); box(win1, ACS_VLINE, ACS_HLINE); wmove(win1, 8, 26); wrefresh(win1); wgetch(win1); wclear(win1); wattron(win1, A_BLINK); mvwaddstr(win1, 4, 1, "This blinking text should appear in only the second window"); wattroff(win1, A_BLINK); mvwin(win1, by, bx); overlay(win, win1); mvwin(win1, 14, 25); wmove(win1, 8, 26); wrefresh(win1); wgetch(win1); delwin(win1); } clear(); wclear(win); wrefresh(win); mvwaddstr(win, 6, 2, "This line shouldn't appear"); mvwaddstr(win, 4, 2, "Only half of the next line is visible"); mvwaddstr(win, 5, 2, "Only half of the next line is visible"); wmove(win, 6, 1); wclrtobot(win); wmove(win, 5, 20); wclrtoeol(win); mvwaddstr(win, 8, 2, "This line also shouldn't appear"); wmove(win, 8, 1); winsdelln(win, -1); Continue(win); wmove(win, 5, 9); ch = winch(win); wclear(win); wmove(win, 6, 2); waddstr(win, "The next char should be l: "); winsch(win, ch); Continue(win); mvwinsstr(win, 6, 2, "A1B2C3D4E5"); Continue(win); wmove(win, 5, 1); winsdelln(win, 1); mvwaddstr(win, 5, 2, "The lines below should have moved down"); Continue(win); wclear(win); wmove(win, 2, 2); wprintw(win, "This is a formatted string in a window: %d %s\n", 42, "is it"); mvwaddstr(win, 10, 1, "Enter a string: "); wrefresh(win); echo(); wscanw(win, "%s", Buffer); printw("This is a formatted string in stdscr: %d %s\n", 42, "is it"); mvaddstr(10, 1, "Enter a string: "); scanw("%s", Buffer); wclear(win); curs_set(2); mvwaddstr(win, 1, 1, "The cursor should be in high-visibility mode"); Continue(win); wclear(win); curs_set(0); mvwaddstr(win, 1, 1, "The cursor should have disappeared"); Continue(win); wclear(win); curs_set(1); mvwaddstr(win, 1, 1, "The cursor should be normal"); Continue(win); #ifdef A_COLOR if (has_colors()) { wclear(win); mvwaddstr(win, 1, 1, "Colors should change after you press a key"); Continue(win); init_pair(1, COLOR_RED, COLOR_WHITE); wrefresh(win); } #endif werase(win); mvwaddstr(win, 1, 1, "Information About Your Terminal"); mvwaddstr(win, 3, 1, termname()); mvwaddstr(win, 4, 1, longname()); if (termattrs() & A_BLINK) mvwaddstr(win, 5, 1, "This terminal claims to support blinking."); else mvwaddstr(win, 5, 1, "This terminal does NOT support blinking."); mvwaddnstr(win, 7, 5, "Have a nice day!ok", 16); wrefresh(win); mvwinnstr(win, 7, 5, Buffer, 18); mvaddstr(LINES - 2, 10, Buffer); refresh(); Continue(win); }
// add a nice dialog box later unsigned char readInput(WINDOW *win){ unsigned char value; wscanw(win,"%x", &value); return value; }
int run(void) { Instruction* code = codeBlock->code; int count = 0; int number; char s[100]; WINDOW* win = initscr(); nonl(); cbreak(); noecho(); scrollok(win,TRUE); ps = PS_ACTIVE; while (ps == PS_ACTIVE) { if (debugMode) { sprintInstruction(s,&(code[pc])); wprintw(win, "%6d-%-4d: %s\n",count++,pc,s); } switch (code[pc].op) { case OP_LA: t ++; if (checkStack()) stack[t] = base(code[pc].p) + code[pc].q; break; case OP_LV: t ++; if (checkStack()) stack[t] = stack[base(code[pc].p) + code[pc].q]; break; case OP_LC: t ++; if (checkStack()) stack[t] = code[pc].q; break; case OP_LI: stack[t] = stack[stack[t]]; break; case OP_INT: t += code[pc].q; checkStack(); break; case OP_DCT: t -= code[pc].q; checkStack(); break; case OP_J: pc = code[pc].q - 1; break; case OP_FJ: if (stack[t] == FALSE) pc = code[pc].q - 1; t --; checkStack(); break; case OP_HL: ps = PS_NORMAL_EXIT; break; case OP_ST: stack[stack[t-1]] = stack[t]; t -= 2; checkStack(); break; case OP_CALL: stack[t+2] = b; // Dynamic Link stack[t+3] = pc; // Return Address stack[t+4] = base(code[pc].p); // Static Link b = t + 1; // Base & Result pc = code[pc].q - 1; break; case OP_EP: t = b - 1; // Previous top pc = stack[b+2]; // Saved return address b = stack[b+1]; // Saved base break; case OP_EF: t = b; // return value is on the top of the stack pc = stack[b+2]; // Saved return address b = stack[b+1]; // saved base break; case OP_RC: t ++; echo(); wscanw(win,"%c",&number); noecho(); stack[t] = number; checkStack(); break; case OP_RI: t ++; echo(); wscanw(win,"%d",&number); noecho(); stack[t] = number; checkStack(); break; case OP_WRC: wprintw(win,"%c",stack[t]); t --; checkStack(); break; case OP_WRI: wprintw(win,"%d",stack[t]); t --; checkStack(); break; case OP_WLN: wprintw(win,"\n"); break; case OP_AD: t --; if (checkStack()) stack[t] += stack[t+1]; break; case OP_SB: t --; if (checkStack()) stack[t] -= stack[t+1]; break; case OP_ML: t --; if (checkStack()) stack[t] *= stack[t+1]; break; case OP_DV: t --; if (checkStack()) { if (stack[t+1] == 0) ps = PS_DIVIDE_BY_ZERO; else stack[t] /= stack[t+1]; } break; case OP_NEG: stack[t] = - stack[t]; break; case OP_CV: stack[t+1] = stack[t]; t ++; checkStack(); break; case OP_EQ: t --; if (stack[t] == stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_NE: t --; if (stack[t] != stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_GT: t --; if (stack[t] > stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_LT: t --; if (stack[t] < stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_GE: t --; if (stack[t] >= stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_LE: t --; if (stack[t] <= stack[t+1]) stack[t] = TRUE; else stack[t] = FALSE; checkStack(); break; case OP_BP: // Just for debugging debugMode = 1; break; default: break; } if (debugMode) { int command; int level, offset; int interactive = 1; do { interactive = 0; command = getch(); switch (command) { case 'a': case 'A': wprintw(win,"\nEnter memory location (level, offset):"); wscanw(win,"%d %d", &level, &offset); wprintw(win,"Absolute address = %d\n", base(level) + offset); interactive = 1; break; case 'm': case 'M': wprintw(win,"\nEnter memory location (level, offset):"); wscanw(win,"%d %d", &level, &offset); wprintw(win,"Value = %d\n", stack[base(level) + offset]); interactive = 1; break; case 't': case 'T': wprintw(win,"Top (%d) = %d\n", t, stack[t]); interactive = 1; break; case 'c': case 'C': debugMode = 0; break; case 'h': case 'H': ps = PS_NORMAL_EXIT; break; default: break; } } while (interactive); } pc ++; } wprintw(win,"\nPress any key to exit...");getch(); endwin(); return ps; }
void* typing_func(void) { char message_buffer[LENGHT_MESSAGE]; char message_buffer_2[LENGHT_MESSAGE]; char confirm_file[LENGHT_MESSAGE]; char filename[LENGHT_MESSAGE]; char ch; int buffer_int; FILE *fp; while (state == 0) { //Reset string for get new message strcpy(message_buffer, ""); strcpy(message_buffer_2, ""); wscanw(global_typing, " %[^\n]s", message_buffer); while (strlen(message_buffer) > 200) { werase(global_typing); draw_new(global_display, "system>> Message cannot more than 200 characters."); wscanw(global_typing, " %[^\n]s", message_buffer); } //Draw_new line to display message strcpy(message_buffer_2, "you>> "); strcat(message_buffer_2, message_buffer); draw_new(global_display, message_buffer_2); //Check exit command if (strcmp(message_buffer, ":q!") == 0) { //set state to stop all function state = 1; } else if (message_buffer[0] == '/') { if (split_strcmp(0, 6, "/upload", 0, 6, message_buffer)){ split_str(8, strlen(message_buffer), message_buffer, filename); sprintf(message_buffer, "3system>> Sending file to you: %s", filename); send_data(message_buffer); sleep(1); draw_new(global_display, "system>> Uploading..."); fp = fopen(filename, "r"); while( ( ch = fgetc(fp) ) != EOF ){ sprintf(message_buffer, "4%c", ch); if(send_data(message_buffer) == 0) draw_new(global_display, "system>> Send failed"); } fclose(fp); sleep(1); strcpy(message_buffer, "5"); send_data(message_buffer); draw_new(global_display, "system>> Done!"); } else if (split_strcmp(0, 2, "/up", 0, 2, message_buffer)){ split_str(4, strlen(message_buffer), message_buffer, message_buffer_2); buffer_int = atoi(message_buffer_2); draw_old_line(global_display, 1, buffer_int); } else if (split_strcmp(0, 4, "/down", 0, 4, message_buffer)){ split_str(6, strlen(message_buffer), message_buffer, message_buffer_2); buffer_int = atoi(message_buffer_2); draw_old_line(global_display, 2, buffer_int); } else if (split_strcmp(0, 4, "/help", 0, 4, message_buffer)){ draw_new(global_display, "system>> ### THIS IS HELP! ###"); draw_new(global_display, "system>> \":q!\" to exit program."); draw_new(global_display, "system>> \"/talkto [nickname]\" to choose contact."); draw_new(global_display, "system>> \"/untalk\" to remove contact that we are talking."); draw_new(global_display, "system>> \"/upload [file]\" to upload file to client that you are talking."); draw_new(global_display, "system>> \"/watline\" to show number of latest line"); draw_new(global_display, "system>> \"/up [amount of line]\" to scroll screen up n lines."); draw_new(global_display, "system>> \"/down [amount of line]\" to scroll screen down n lines."); draw_new(global_display, "system>> \"/find [word]\" to find number of line that word was display."); draw_new(global_display, "system>> \"/contact\" to show all user on server."); } else if (split_strcmp(0, 4, "/find", 0, 4, message_buffer)){ split_str(6, strlen(message_buffer) - 1, message_buffer, message_buffer_2); search(message_buffer_2, global_display); } else if (split_strcmp(0, 7, "/watline", 0, 7, message_buffer)){ //bottom_line come from buffer_screen.h sprintf(message_buffer, "system>> v This is lines number %d. v", bottom_line); draw_new(global_display, message_buffer); } else if ( split_strcmp(0, 6, "/talkto", 0, 6, message_buffer) || split_strcmp(0, 6, "/untalk", 0, 6, message_buffer) || split_strcmp(0, 7, "/contact", 0, 7, message_buffer)) { sprintf(message_buffer_2, "0%s", message_buffer); send_data(message_buffer_2); } else { draw_new(global_display, "system>> Command not found."); } } else { //Set protocal to send packet sprintf(message_buffer_2, "0%s", message_buffer); if(send_data(message_buffer_2) == 0) draw_new(global_display, "system>> Send failed"); } werase(global_typing); } pthread_cancel(*global_display_thread); return 0; }
static void outputTest(WINDOW *win) { WINDOW *win1; char Buffer[80]; chtype ch; int by, bx; #if !HAVE_TIGETSTR #if HAVE_TGETENT char tc_buffer[4096]; char tc_parsed[4096]; char *area_pointer = tc_parsed; tgetent(tc_buffer, getenv("TERM")); #else #define tgetstr(a,b) 0 #endif #endif /* !HAVE_TIGETSTR */ nl(); wclear(win); MvWAddStr(win, 1, 1, "You should now have a screen in the upper left corner, and this text should have wrapped"); mvwin(win, 2, 1); waddstr(win, "\nThis text should be down\n"); waddstr(win, "and broken into two here ^"); Continue(win); wclear(win); wattron(win, A_BOLD); MvWAddStr(win, 1, 1, "A new window will appear with this text in it"); MvWAddStr(win, 8, 1, "Press any key to continue"); wrefresh(win); wgetch(win); getbegyx(win, by, bx); if (LINES < 24 || COLS < 75) { MvWAddStr(win, 5, 1, "Some tests have been skipped as they require a"); MvWAddStr(win, 6, 1, "display of at least 24 LINES by 75 COLUMNS"); Continue(win); } else { win1 = newwin(10, 50, 14, 25); if (win1 == NULL) { endwin(); return; } #ifdef A_COLOR if (has_colors()) { init_pair(3, COLOR_BLUE, COLOR_WHITE); wbkgd(win1, (chtype) COLOR_PAIR(3)); } else wbkgd(win1, A_NORMAL); #else wbkgd(win1, A_NORMAL); #endif wclear(win1); MvWAddStr(win1, 5, 1, "This text should appear; using overlay option"); copywin(win, win1, 0, 0, 0, 0, 9, 49, TRUE); #if defined(PDCURSES) && !defined(XCURSES) box(win1, 0xb3, 0xc4); #else box(win1, ACS_VLINE, ACS_HLINE); #endif wmove(win1, 8, 26); wrefresh(win1); wgetch(win1); wclear(win1); wattron(win1, A_BLINK); MvWAddStr(win1, 4, 1, "This blinking text should appear in only the second window"); wattroff(win1, A_BLINK); mvwin(win1, by, bx); overlay(win, win1); mvwin(win1, 14, 25); wmove(win1, 8, 26); wrefresh(win1); wgetch(win1); delwin(win1); } clear(); wclear(win); wrefresh(win); MvWAddStr(win, 6, 2, "This line shouldn't appear"); MvWAddStr(win, 4, 2, "Only half of the next line is visible"); MvWAddStr(win, 5, 2, "Only half of the next line is visible"); wmove(win, 6, 1); wclrtobot(win); wmove(win, 5, 20); wclrtoeol(win); MvWAddStr(win, 8, 2, "This line also shouldn't appear"); wmove(win, 8, 1); wdeleteln(win); Continue(win); wmove(win, 5, 9); ch = winch(win); wclear(win); wmove(win, 6, 2); waddstr(win, "The next char should be l: "); winsch(win, ch); Continue(win); #if HAVE_WINSSTR (void) mvwinsstr(win, 6, 2, "A1B2C3D4E5"); Continue(win); #endif wmove(win, 5, 1); winsertln(win); MvWAddStr(win, 5, 2, "The lines below should have moved down"); Continue(win); wclear(win); wmove(win, 2, 2); wprintw(win, "This is a formatted string in a window: %d %s\n", 42, "is it"); MvWAddStr(win, 10, 1, "Enter a string: "); wrefresh(win); noraw(); echo(); *Buffer = 0; wscanw(win, "%s", Buffer); printw("This is a formatted string in stdscr: %d %s\n", 42, "is it"); MvAddStr(10, 1, "Enter a string: "); *Buffer = 0; scanw("%s", Buffer); if (TIGETSTR("cvvis", "vs") != 0) { wclear(win); curs_set(2); MvWAddStr(win, 1, 1, "The cursor should appear as a block (visible)"); Continue(win); } if (TIGETSTR("civis", "vi") != 0) { wclear(win); curs_set(0); MvWAddStr(win, 1, 1, "The cursor should have disappeared (invisible)"); Continue(win); } if (TIGETSTR("cnorm", "ve") != 0) { wclear(win); curs_set(1); MvWAddStr(win, 1, 1, "The cursor should be an underline (normal)"); Continue(win); } #ifdef A_COLOR if (has_colors()) { wclear(win); MvWAddStr(win, 1, 1, "Colors should change after you press a key"); Continue(win); init_pair(1, COLOR_RED, COLOR_WHITE); wrefresh(win); } #endif werase(win); #if HAVE_TERMNAME MvWAddStr(win, 1, 1, "Information About Your Terminal"); MvWAddStr(win, 3, 1, termname()); MvWAddStr(win, 4, 1, longname()); if (termattrs() & A_BLINK) MvWAddStr(win, 5, 1, "This terminal supports blinking."); else MvWAddStr(win, 5, 1, "This terminal does NOT support blinking."); #endif (void) mvwaddnstr(win, 7, 5, "Have a nice day!ok", 16); wrefresh(win); (void) mvwinnstr(win, 7, 5, Buffer, 18); MvAddStr(LINES - 2, 10, Buffer); refresh(); Continue(win); }
int main (int argc, char **argv) { logfilepath = getenv ("HOME"); logfilepath = strcat (logfilepath, "/.ooview.log"); load_config(); initscr(); raw(); noecho(); start_color(); keypad(stdscr,TRUE); init_pair(1, COLOR_WHITE, COLOR_BLACK); init_pair(2, COLOR_RED, COLOR_WHITE); init_pair(3, COLOR_BLUE, COLOR_WHITE); init_pair(4, COLOR_BLACK, COLOR_WHITE); bkgd(COLOR_PAIR(1)); curs_set(0); menu_bar = subwin(stdscr,1,COLS,0,0); wbkgd(menu_bar,COLOR_PAIR(2)); waddstr(menu_bar,"File"); wattron(menu_bar, COLOR_PAIR(3)); waddstr(menu_bar,"<F1>"); wattroff(menu_bar, COLOR_PAIR(3)); wmove(menu_bar, 0, 19); waddstr(menu_bar,"View"); wattron(menu_bar, COLOR_PAIR(3)); waddstr(menu_bar,"<F2>"); wattroff(menu_bar, COLOR_PAIR(3)); wmove(menu_bar, 0, 34); waddstr(menu_bar,"Options"); wattron(menu_bar, COLOR_PAIR(3)); waddstr(menu_bar,"<F3>"); wattroff(menu_bar, COLOR_PAIR(3)); wmove(menu_bar, 0, 53); waddstr(menu_bar,"Help"); wattron(menu_bar, COLOR_PAIR(3)); waddstr(menu_bar,"<F4>"); wattroff(menu_bar, COLOR_PAIR(3)); status_bar = subwin(stdscr,1,COLS,LINES-1,0); wbkgd(status_bar,COLOR_PAIR(4)); n_choices[0] = ARRAY_SIZE(file_choices); n_choices[1] = ARRAY_SIZE(view_choices); n_choices[2] = ARRAY_SIZE(opts_choices); n_choices[3] = ARRAY_SIZE(help_choices); file_items = (ITEM **)calloc(n_choices[0] + 1, sizeof(ITEM *)); view_items = (ITEM **)calloc(n_choices[1] + 1, sizeof(ITEM *)); opts_items = (ITEM **)calloc(n_choices[2] + 1, sizeof(ITEM *)); help_items = (ITEM **)calloc(n_choices[3] + 1, sizeof(ITEM *)); for (i=0; i<n_choices[0]; ++i) file_items[i] = new_item(file_choices[i], NULL); for (i=0; i<n_choices[1]; ++i) view_items[i] = new_item(view_choices[i], NULL); for (i=0; i<n_choices[2]; ++i) opts_items[i] = new_item(opts_choices[i], NULL); for (i=0; i<n_choices[3]; ++i) help_items[i] = new_item(help_choices[i], NULL); file_items[n_choices[0]] = (ITEM *)NULL; view_items[n_choices[1]] = (ITEM *)NULL; opts_items[n_choices[2]] = (ITEM *)NULL; help_items[n_choices[3]] = (ITEM *)NULL; file_menu = new_menu((ITEM **)file_items); view_menu = new_menu((ITEM **)view_items); opts_menu = new_menu((ITEM **)opts_items); help_menu = new_menu((ITEM **)help_items); set_menu_mark(file_menu, ""); set_menu_mark(view_menu, ""); set_menu_mark(opts_menu, ""); set_menu_mark(help_menu, ""); init_screen(); if (argc == 2) open_file(argv[1]); while ((c = getch()) != EXIT_KEY) { action_performed = false; switch (c) { case KEY_F(1): cur_menu=1; break; case KEY_F(2): cur_menu=2; break; case KEY_F(3): cur_menu=3; break; case KEY_F(4): cur_menu=4; break; case KEY_UP: if ((file_printed) && (buffer->cur_line > 1)) { int backsteps = 0; int steps; char *tmp; if ((*--cur_char)==NEWLINE) backsteps++; tmp = cur_char - 1; if ((*--cur_char) == NEWLINE) { cur_char = tmp; print_status_bar("yeah"); } else { do { cur_char--; backsteps++; } while (((*cur_char)!=NEWLINE) && (cur_char != buffer->content)); if (backsteps > COLS) { int test; test = backsteps/COLS; steps = (backsteps%COLS); if (test>1) steps += COLS; mvwprintw(status_bar,0,0,"%d",steps); touchwin(status_bar); wrefresh(status_bar); cur_char += backsteps; cur_char -= steps; } } buffer->cur_line--; print_site(buffer->cur_line, buffer->lines); if (cur_char!=buffer->content) print_file(buffer,++cur_char); else print_file(buffer,cur_char); } break; case KEY_DOWN: if ((file_printed) && (buffer->cur_line < buffer->lines)) { int cols=0; while (((*cur_char)!=NEWLINE) && (cols < COLS-1)) { cols++; cur_char++; } buffer->cur_line++; print_site(buffer->cur_line, buffer->lines); print_file(buffer,++cur_char); } break; default: if (meta_win!=NULL) { delwin(meta_win); touchwin(stdscr); refresh(); } } if (cur_menu == 1) { file_win = newwin(8,19,1,0); keypad(file_win,TRUE); box(file_win,0,0); set_menu_win(file_menu, file_win); set_menu_sub(file_menu, derwin(file_win,6,17,1,1)); post_menu(file_menu); while (c = wgetch(file_win)) { if (c == KEY_DOWN) menu_driver(file_menu, REQ_DOWN_ITEM); else if (c == KEY_UP) menu_driver(file_menu, REQ_UP_ITEM); else if (c == KEY_RIGHT) { cur_menu = 2; break; } else if (c == KEY_LEFT) { cur_menu = 4; break; } else if (c == RETURN) { cur_menu = 0; cmd = (char *)item_name(current_item(file_menu)); action_performed = true; break; } else { cur_menu = 0; break; } } unpost_menu(file_menu); touchwin(stdscr); wrefresh(stdscr); } if (cur_menu == 2) { view_win = newwin(6,15,1,19); keypad(view_win,TRUE); box(view_win,0,0); set_menu_win(view_menu, view_win); set_menu_sub(view_menu, derwin(view_win,4,13,1,1)); post_menu(view_menu); while (c = wgetch(view_win)) { if (c == KEY_DOWN) menu_driver(view_menu, REQ_DOWN_ITEM); else if (c == KEY_UP) menu_driver(view_menu, REQ_UP_ITEM); else if (c == KEY_RIGHT) { cur_menu = 3; break; } else if (c == KEY_LEFT) { cur_menu = 1; break; } else if (c == RETURN) { cur_menu = 0; cmd = (char *)item_name(current_item(view_menu)); action_performed = true; break; } else { cur_menu = 0; break; } } unpost_menu(view_menu); touchwin(stdscr); refresh(); } if (cur_menu == 3) { opts_win = newwin(5,19,1,34); keypad(opts_win,TRUE); box(opts_win,0,0); set_menu_win(opts_menu, opts_win); set_menu_sub(opts_menu, derwin(opts_win,3,17,1,1)); post_menu(opts_menu); while (c = wgetch(opts_win)) { if (c == KEY_DOWN) menu_driver(opts_menu, REQ_DOWN_ITEM); else if (c == KEY_UP) menu_driver(opts_menu, REQ_UP_ITEM); else if (c == KEY_RIGHT) { cur_menu = 4; break; } else if (c == KEY_LEFT) { cur_menu = 2; break; } else if (c == RETURN) { cur_menu = 0; cmd = (char *)item_name(current_item(opts_menu)); action_performed = true; break; } else { cur_menu = 0; break; } } unpost_menu(opts_menu); touchwin(stdscr); refresh(); } if (cur_menu == 4) { help_win = newwin(6,17,1,53); keypad(help_win,TRUE); box(help_win,0,0); set_menu_win(help_menu, help_win); set_menu_sub(help_menu, derwin(help_win,4,15,1,1)); post_menu(help_menu); while (c = wgetch(help_win)) { if (c == KEY_DOWN) menu_driver(help_menu, REQ_DOWN_ITEM); else if (c == KEY_UP) menu_driver(help_menu, REQ_UP_ITEM); else if (c == KEY_RIGHT) { cur_menu = 1; break; } else if (c == KEY_LEFT) { cur_menu = 3; break; } else if (c == RETURN) { cur_menu = 0; cmd = (char *)item_name(current_item(help_menu)); action_performed = true; break; } else { cur_menu = 0; break; } } unpost_menu(help_menu); touchwin(stdscr); refresh(); } if (action_performed) { char file[80]; clear_status_bar(); if (!strcmp(cmd,"Open")) { if (file_printed==false) { print_status_bar("Enter a file: "); curs_set(1); echo(); wscanw(status_bar,"%s",file); /* get filename from user */ curs_set(0); noecho(); open_file(file); } else { print_status_bar("Please close current file."); } } if (!strcmp(cmd,"Close")) { if (file_printed) { free(buffer); werase(main_win); init_screen(); wrefresh(main_win); file_printed = false; system("rm -rf /tmp/ooview"); } else { print_status_bar("No open file!"); } } if (!strcmp(cmd,"Reload")) { if (file_printed) { if (strstr(file,".ovd")!=NULL) /* ovd*/ { ovd_file = fopen(file,"r"); if (ovd_file != NULL) { free(buffer); buffer = (struct fileinfo *)malloc(sizeof(struct fileinfo)); main_win = subwin(stdscr,LINES-2,COLS,1,0); get_file_content(ovd_file, file, buffer); fclose(ovd_file); cur_char = buffer->content; print_site(buffer->cur_line, buffer->lines); print_file(buffer,cur_char); file_printed = true; } else { print_status_bar("File does not exist!"); } } else /* else if odt */ { free(buffer); buffer = (struct fileinfo *)malloc(sizeof(struct fileinfo)); main_win= subwin(stdscr,LINES-2,COLS,1,0); open_odt(file,buffer); get_file_meta("/tmp/ooview/meta.xml",buffer); cur_char = buffer->content; print_site(buffer->cur_line, buffer->lines); print_file(buffer,cur_char); file_printed = true; } } else { print_status_bar("No open file!"); } } if (!strcmp(cmd,"Document info")) { if (file_printed) { if (file_type==1) { meta_win = newwin(9,COLS-2,(LINES/2)-5,1); wbkgd(meta_win,COLOR_PAIR(4)); mvwprintw(meta_win,1,1,"Genarator: %s", buffer->generator); mvwprintw(meta_win,2,1,"Initial creator:\t%s", buffer->initial_creator); mvwprintw(meta_win,3,1,"Creation date:\t\t%s", buffer->creation_date); mvwprintw(meta_win,4,1,"Creator:\t\t%s", buffer->creator); mvwprintw(meta_win,5,1,"Date:\t\t\t%s", buffer->date); mvwprintw(meta_win,6,1,"Editing cycles:\t%s", buffer->editing_cycles); mvwprintw(meta_win,7,1,"Editing duration:\t%s", buffer->editing_duration); box(meta_win,0,0); wrefresh(meta_win); touchwin(meta_win); } } else { print_status_bar("No open file!"); } } if (!strcmp(cmd,"OOView homepage")) { char *syscall; syscall=(char *)malloc(strlen(BROWSER)+strlen(HOMEPAGE_URL)+1); sprintf(syscall, "%s %s", BROWSER, HOMEPAGE_URL); system(syscall); free(syscall); if (file_printed) free(buffer); end_curses(); return(0); } if (!strcmp(cmd,"Documentation")) { char *syscall; syscall=(char *)malloc(strlen(BROWSER)+strlen(HOMEPAGE_URL)+1); sprintf(syscall, "%s %s", BROWSER, HOMEPAGE_URL); system(syscall); free(syscall); if (file_printed) free(buffer); end_curses(); return(0); } if (!strcmp(cmd, "About OOView")) print_status_bar("OOView. Visit Homepage for details"); if (!strcmp(cmd, "Copying")) print_status_bar("OOView is under GPL/2 Visit Homepage for details"); if (!strcmp(cmd, "Find")) { if (file_printed) { print_status_bar("Enter string to find: "); char *findit; curs_set(1); echo(); wscanw(status_bar,"%s",findit); /* how to find a string in a string? find it -> set cursor to position */ print_status_bar("Not implemented yet :("); curs_set(0); noecho(); } else { print_status_bar("No open file!"); } } if (!strcmp(cmd, "External Programs")) { char *prompt; /*getting printer command*/ prompt = (char *)malloc((strlen("Enter Printing Command []: ")+strlen(PRINTER))); sprintf(prompt,"Enter Printing Command [%s]: ",PRINTER); print_status_bar(prompt); free(prompt); curs_set(1); echo(); char *newcmd; wscanw(status_bar,"%s",newcmd); curs_set(0); noecho(); print_status_bar(newcmd); /* / getting printer command*/ } if (!strcmp(cmd,"Exit")) { if (file_printed) free(buffer); end_curses(); return 0; } } } if (file_printed) free(buffer); end_curses(); return 0; }
int main(int argc,char** argv){ // openssl support #ifdef _SSL initSSL(); ctx=SSL_CTX_new(SSLv23_client_method()); if(ctx==NULL){ ERR_print_errors_fp(stdout); exit(-2); } #endif if(argc!=2){ printf("Usage:client ipv6addr\n"); exit(-1); } setlocale(LC_ALL,""); char name[10]; printf("输入昵称:\n"); scanf("%6s",name); int sockfd,len; struct sockaddr_in6 dst; char buf[MAXBUF+1]; char buf1[MAXBUF+1]; sockfd=socket(AF_INET6,PROTOCOL,0); GUARD(sockfd); bzero(&dst,sizeof(dst)); dst.sin6_family=AF_INET6; dst.sin6_port=htons(SERVERPORT); GUARD(inet_pton(AF_INET6,argv[1],&dst.sin6_addr)); GUARD(connect(sockfd,(struct sockaddr *)&dst,sizeof(dst))); // ssl support #ifdef _SSL sslfd=SSL_new(ctx); SSL_set_fd(sslfd,sockfd); if(SSL_connect(sslfd)==-1) ERR_print_errors_fp(stderr); else{ printf("connected with %s encryption\n",SSL_get_cipher(sslfd)); //ShowCerts(sslfd); } #endif // ssl support bind over initscr(); WINDOW *recvBd=subwin(stdscr,HEIGHT1+2,WIDTH+2,1,1); WINDOW *inputBd=subwin(stdscr,HEIGHT+2,WIDTH+2,15,1); recvWin=subwin(stdscr,HEIGHT1,WIDTH,2,2); inputWin=subwin(stdscr,HEIGHT,WIDTH,16,2); box(recvBd,HLINE,VLINE); box(inputBd,HLINE,VLINE); wprintw(recvBd,"接收"); wprintw(inputBd,"发送"); cbreak(); keypad(stdscr,TRUE); start_color(); scrollok(recvWin,1); scrollok(inputWin,1); refresh(); bzero(buf,MAXBUF+1); #ifndef _SSL len=recv(sockfd,buf,MAXBUF,0); #else len=SSL_read(sslfd,buf,MAXBUF); #endif wprintw(recvWin,"%s\n",buf); touchwin(recvWin); wrefresh(recvWin); pthread_t t_recv; if(pthread_create(&t_recv,NULL,recvThread,(void*)sockfd)<0){ perror("create thread"); exit(1); } while(1){ bzero(buf,MAXBUF+1); wprintw(inputWin,"%6s > ",name); int key=wgetch(inputWin); if(key==ESCAPE){ break; } wscanw(inputWin,"%s",buf); touchwin(inputWin); wrefresh(inputWin); sprintf(buf1,"[%6s]: %c%s\n",name,(char)key,buf); #ifndef _SSL len=send(sockfd,buf1,strlen(buf1),0); #else len=SSL_write(sslfd,buf1,strlen(buf1)); #endif if(len<0) continue; } close(sockfd); delwin(recvWin); delwin(inputWin); delwin(recvBd); delwin(inputBd); endwin(); #ifdef _SSL SSL_shutdown(sslfd); SSL_free(sslfd); SSL_CTX_free(ctx); #endif return 0; }
int ide::Window::read(char *format,...) { curs_set(_cursorType); wscanw(_win,format); }
int get_reply_to_post(infostruct user,char *reply, char *sno){ WINDOW *send_reply; WINDOW *msgwind; char conf; int retval = 2; int x,y; char *header = "*** Send A Reply ***"; int i = 0; char *screen_name; double message_id; char *message; screen_name = (char *)malloc(25 * sizeof(char)); if(screen_name == NULL){ return 1; } /* i dont need this here.. needed in the retweet */ message = (char *)malloc(140 * sizeof(char)); if(message == NULL){ return 1; } echo(); cbreak(); send_reply = newwin(10,80,user.row/2, (user.col - 80)/2); keypad(send_reply,TRUE); msgwind = derwin(send_reply,5,50,4,5 + strlen("Enter reply: ")); keypad(msgwind,TRUE); box(send_reply,0,0); wattron(send_reply,A_BOLD); mvwprintw(send_reply,2,(getmaxx(send_reply) -strlen(header))/2,"%s",header); wattroff(send_reply,A_BOLD); mvwprintw(send_reply,4,5,"%s","Reply to sno :"); wrefresh(send_reply); wscanw(send_reply,"%s",sno); if((message_id = get_message_id(0,sno,&screen_name,&message)) == 1) return 1; mvwprintw(send_reply,4,5,"%s","Enter reply: "); noecho(); wrefresh(send_reply); getyx(send_reply,y,x); touchwin(send_reply); mvwprintw(msgwind,0,0,"@%s " ,screen_name); wrefresh(msgwind); while (1){ int k; if(i > (140 - (int)strlen(screen_name) -2)) wattron(send_reply,COLOR_PAIR(2)); mvwprintw(send_reply,8,76," "); mvwprintw(send_reply,8,76,"%i",140 - strlen(screen_name) - 2 -i); if(i > (140 - (int)strlen(screen_name) -2)) wattroff(send_reply,COLOR_PAIR(2)); wrefresh(send_reply); wrefresh(msgwind); k = wgetch(msgwind); if(k == '\n') break; if ((k == KEY_BACKSPACE) && i > 0){ getyx(msgwind,y,x); /* if on 1st of line 2, please go back to the last of line 1*/ if((i + strlen(screen_name) + 2) == 50){ mvwaddch(msgwind,y-1,49,' '); wmove(msgwind,y-1,49); } else if((i + strlen(screen_name) + 2) == 100){ mvwaddch(msgwind,y-1,49,' '); wmove(msgwind,y-1,49); } else if((i + strlen(screen_name) + 2 ) == 150){ mvwaddch(msgwind,y-1,49,' '); wmove(msgwind,y-1,49); } else { mvwaddch(msgwind,y,x -1,' '); wmove(msgwind,y,x-1); } i = i-1; } else { /* if its at 0 and i press a bcakspace, i dont want anything to happen, without the if, it was printing ^G etc */ if(k != KEY_BACKSPACE){ reply[i] = k; waddch(msgwind,reply[i]); i++; } } } reply[i+1] = '\0'; wrefresh(send_reply); echo(); getyx(send_reply,y,x); mvwprintw(send_reply,getmaxy(send_reply)- 2,5,"%s","Send? [y/N]"); wrefresh(send_reply); do { conf = wgetch(send_reply); if(conf == 'Y' || conf == 'y') retval = 0; else if (conf == 'N' || conf == 'n') retval = 1; }while(conf != 'y' && conf != 'Y' && conf != 'N' && conf != 'n'); noecho(); refresh(); delwin(send_reply); return retval; }
void file_receive(int new_fd) { int flag = 3; int ch; echo(); mvwprintw(ch_window3, 1, 4, "是否接收 %s?", file_name); mvwaddstr(ch_window3, 3, 4, " 是"); mvwaddstr(ch_window3, 4, 4, " 否"); mvwaddstr(ch_window3, flag, 4, "=>"); wrefresh(ch_window3); keypad(ch_window3, true); cbreak(); while(1) { curs_set(0); noecho(); while((ch = wgetch(ch_window3)) != '\n') { if(ch == KEY_UP || ch == KEY_DOWN) { mvwaddstr(ch_window3, flag, 4, " "); if(flag == 3) { flag = 4; } else { flag = 3; } mvwaddstr(ch_window3, flag, 4, "=>"); wrefresh(ch_window3); } } switch(flag) { case 3: { curs_set(1); echo(); char filename[50]; Node msg3; mvwaddstr(ch_window3, 1, 4, " "); mvwaddstr(ch_window3, 3, 4, " "); mvwaddstr(ch_window3, 4, 4, " "); mvwaddstr(ch_window3, 2, 4, "保存目录: "); wmove(ch_window3, 2, 14); wrefresh(ch_window3); wscanw(ch_window3, "%s", filename); mvwaddstr(ch_window3, 2, 4, " "); wrefresh(ch_window3); sprintf(filename, "%s%s", filename, file_name); memset(&msg3, 0, sizeof(Node)); msg3.action = FILE_SEND_START; my_strcpy(msg3.name, file_name); my_strcpy(msg3.id, msg1.id); my_strcpy(msg3.target_user, filename); write(new_fd, &msg3, sizeof(Node)); curs_set(0); } case 4: { goto EXIT_FILE_SEND; } default: { break; } } } EXIT_FILE_SEND: mvwaddstr(ch_window3, 1, 4, " "); mvwaddstr(ch_window3, 3, 4, " "); mvwaddstr(ch_window3, 4, 4, " "); wrefresh(ch_window3); }