int sendMessages(void* socka) { int len, temp, n; char message[1024]; UDPsoc sock = *(UDPsoc*)(socka); while(1) { if(khit()) { printf("Send: "); onTheTable_len=6; for(n=0; (temp=gech())!='\n'; n++) { if(temp == '\b') { n-=2; onTheTable_len--; } else { message[n]=temp; onTheTable[6+n] = temp; onTheTable_len++; } } message[n]=0; onTheTable_len=0; //send message to client if(sock.Send(message,n+1)) printf("\t\tEr ur\n"); if(message[0]=='e' && message[1]=='n' && message[2]=='d' && message[3]==0) break; } SDL_Delay(10); } printf("Connection has been closed (by you). Press enter to quit.\n"); SDL_KillThread(recvThread); }
int BusyFileOpen(char *name, int wait) { char *bsyname, *dir, *point; char temp[PATHLEN]; int bfile; unsigned bs; /* Only use if FLAG_BSY is set, and FLAG_FRODO is *not* set. */ if ((config.flag & FLAG_BSY)==0) return 0; bsyname=bsy_extension(name); /* Open the file with O_EXCL, such that the create fails if the file * * already exists. */ while ((bfile=cshopen(bsyname, O_EXCL | O_CREAT | O_WRONLY | O_BINARY))==-1) { if (!wait) return -1; dir=sstrdup(bsyname); point=strrchr(dir, PATH_DELIM); if (point) *point='\0'; (void)make_dir(dir); free(dir); (void)sprintf(temp," (%s busy; wait)", name); (void)printf(temp); while (fexist(bsyname)) { if (khit() && kgetch()==K_ESC) break; tdelay(200); } for (bs=strlen(temp); bs--; ) (void)printf("\b \b"); } if (bfile != -1) (void)close(bfile); free(bsyname); return 0; }
static void CheckForPause(void) { int ch = 0; if (khit()) ch = inkey(); if (!g_bRedirected && ((ch == 19) || (ch == ' ') || // <Ctrl-S> or <Space> (g_bPause && (g_nLines == g_nScreenLines-1))) ) // full screen { ch = ShowTextAndPause(g_szContinue); g_nLines = 0; } if ((ch == 27) || // <Esc> (ch == 3)) // <Ctrl-C> { fputs("\n", stdout); exit(1); } }
static int ShowTextAndPause(char *szMsg) { int ch; short sCol; unsigned rcSave; if (g_bRedirected) return(0); rcSave = GetCursorPos(); sCol = (short)((g_nScreenCols - strlen(szMsg))/2); SetCursorPos(g_nScreenLines, sCol); OutText(szMsg); while (!khit()); ch = inkey(); SetCursorPos(g_nScreenLines, sCol); OutText(g_szBlanks); SetCursorPos(-1, rcSave); return(ch); }