X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=fdf2d5721a50fd7855f443d48bfd8ed29010f4e3;hb=4bfad947161d93ce1b566093211bd05f368bdffe;hp=89cd822736bdd4a88d2049c9aedd7f0e6ccc703b;hpb=1383f5acee09efd2d21ac20bb47fbc15b475ecd5;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 89cd822..fdf2d57 100644 --- a/dialogs.c +++ b/dialogs.c @@ -892,6 +892,7 @@ IcsTextProc () if((p = icsTextMenuString) == NULL) return; do { q = r = p; while(*p && *p != ';') p++; + if(textOptions[i].name == NULL) textOptions[i].name = (char*) malloc(MSG_SIZ); for(j=0; j in chat-partner text-edit, as there is no OK button + char buf[MSG_SIZ]; + if(!partner || strcmp(partner, chatPartner[activePartner])) { + safeStrCpy(chatPartner[activePartner], partner, MSG_SIZ); + SetWidgetText(&chatOptions[5], "", -1); // clear text if we alter partner + SetWidgetText(&chatOptions[6], "", ChatDlg); // clear text if we alter partner + HardSetFocus(&chatOptions[6]); + } + if(line[0]) { // something was typed + SetWidgetText(&chatOptions[6], "", ChatDlg); + // from here on it could be back-end + if(line[strlen(line)-1] == '\n') line[strlen(line)-1] = NULLCHAR; + SaveInHistory(line); + if(!strcmp("whispers", chatPartner[activePartner])) + snprintf(buf, MSG_SIZ, "whisper %s\n", line); // WHISPER box uses "whisper" to send + else if(!strcmp("shouts", chatPartner[activePartner])) + snprintf(buf, MSG_SIZ, "shout %s\n", line); // SHOUT box uses "shout" to send + else { + if(!atoi(chatPartner[activePartner])) { + snprintf(buf, MSG_SIZ, "> %s\n", line); // echo only tells to handle, not channel + OutputChatMessage(activePartner, buf); + snprintf(buf, MSG_SIZ, "xtell %s %s\n", chatPartner[activePartner], line); + } else + snprintf(buf, MSG_SIZ, "tell %s %s\n", chatPartner[activePartner], line); + } + SendToICS(buf); + } + return FALSE; // never pop down +} + +void +ChatSwitch (int n) +{ + int i, j; + if(n <= activePartner) n--; + activePartner = n; + if(!texts[n]) texts[n] = strdup(""); + dirty[n] = 0; + SetWidgetText(&chatOptions[5], texts[n], ChatDlg); + SetInsertPos(&chatOptions[5], strlen(texts[n])); + SetWidgetText(&chatOptions[0], chatPartner[n], ChatDlg); + for(i=j=0; i