if(tagsText) free(tagsText); tagsText = strdup(text);
tagsOptions[0].name = msg;
MarkMenu("View.Tags", TagsDlg);
- GenericPopUp(tagsOptions, title, TagsDlg, BoardWindow, NONMODAL, appData.topLevel);
+ GenericPopUp(tagsOptions + (msg == NULL), title, TagsDlg, BoardWindow, NONMODAL, appData.topLevel);
}
void
#define HISTORY_SIZE 64
static char *history[HISTORY_SIZE];
static int histIn = 0, histP = 0;
+static Boolean noEcho;
static void
SaveInHistory (char *cmd)
{
+ if(noEcho) return; // do not save password!
if (history[histIn] != NULL) {
free(history[histIn]);
history[histIn] = NULL;
} else PopUpMoveDialog(*buf);
}
-static Boolean noEcho;
-
void
EchoOn ()
{
void
GetHelpText (FILE *f, char *name)
{
- char *line, buf[MSG_SIZ], text[10000], *p = text, *q = text;
+ char *line, buf[MSG_SIZ], title[MSG_SIZ], text[10000], *p = text, *q = text;
int len, cnt = 0;
snprintf(buf, MSG_SIZ, ".B %s", name);
len = strlen(buf);
- for(len=1; buf[len] == ' ' || isalpha(buf[len]) || isdigit(buf[len]); len++);
+ for(len=1; buf[len] == ' ' || buf[len] == '-' || isalpha(buf[len]) || isdigit(buf[len]); len++);
buf[len] = NULLCHAR;
while(buf[--len] == ' ') buf[len] = NULLCHAR;
+ snprintf(title, MSG_SIZ, "Help on '%s'", buf+3);
while((line = ReadLine(f))) {
- if(!strncmp(line, buf, len) && (strncmp(line, ".SS ", 4) || strncmp(line+4, buf+3, len-3))) {
- while((line = ReadLine(f)) && (cnt == 0 || strncmp(line, ".B ", 3))) {
+ if(!strncmp(line, buf, len) || !strncmp(line, ".SS ", 4) && !strncmp(line+4, buf+3, len-3)) {
+ while((line = ReadLine(f)) && (cnt == 0 || strncmp(line, ".B ", 3) && strncmp(line, ".SS ", 4))) {
if(!*line) { *p++ = '\n'; *p++ = '\n'; q = p; continue; }
if(*line == '.') continue;
*p++ = ' '; cnt++;
if(p - text > 9900) break;
}
*p = NULLCHAR;
- DisplayNote(text);
+ ErrorPopUp(title, text, FALSE);
return;
}
}
void
DisplayHelp (char *name)
{
- char *manFile = DATADIR "/../../man/man6/xboard.6";
- FILE *f = fopen(manFile, "r");
+ char buf[MSG_SIZ], *manFile = MANDIR "/man6/xboard.6";
+ FILE *f;
+ if(currentCps) snprintf(manFile = buf, MSG_SIZ, "/usr/share/man/man6/%s.6", currentCps->program);
+ f = fopen(manFile, "r");
+ if(!f && currentCps) { // engine manual could be in two places
+ snprintf(buf, MSG_SIZ, "/usr/man/man6/%s.6", currentCps->program);
+ f= fopen(buf, "r");
+ }
if(f) {
GetHelpText(f, name);
fclose(f);
".trn",
".bin",
".wav",
+".png",
".ini",
".log",
"",