示例#1
0
void CMainFrame::OnHelpOpenPPL()
{
	OpenHelpFile("OpenPPL_Manual.chm");
}
示例#2
0
main(int argc, char *argv[])
{
    char *cp;
	int HelpCount = 0;
	long where;

	if (argc < 2)
		return -1;
	Argv = argv;
    if ((helpfp = OpenHelpFile(argv[1], "r+b")) == NULL)
        return -1;


    *hline = '\0';
    while (*hline != '<')    {
        if (GetHelpLine(hline) == NULL)    {
            fclose(helpfp);
            return -1;
        }
    }
    while (*hline == '<')   {
        if (strncmp(hline, "<end>", 5) == 0)
            break;

        /* -------- parse the help window's text name ----- */
        if ((cp = strchr(hline, '>')) != NULL)    {
            ThisHelp = calloc(1, sizeof(struct helps));
            if (FirstHelp == NULL)
            	FirstHelp = ThisHelp;
            *cp = '\0';
            ThisHelp->hname=malloc(strlen(hline+1)+1);
            strcpy(ThisHelp->hname, hline+1);

            HelpFilePosition(&ThisHelp->hptr, &ThisHelp->bit);
            if (GetHelpLine(hline) == NULL)
                break;

            /* ------- build the help linked list entry --- */
            while (*hline == '[')    {
                HelpFilePosition(&ThisHelp->hptr,
                                            &ThisHelp->bit);
				/* ------ parse a comment ----- */
                if (strncmp(hline, "[*]", 3) == 0)    {
				    ThisHelp->comment=malloc(strlen(hline+3)+1);
            		strcpy(ThisHelp->comment, hline+3);
                    if (GetHelpLine(hline) == NULL)
                        break;
					continue;
				}
                /* ---- parse the <<prev button pointer ---- */
                if (strncmp(hline, "[<<]", 4) == 0)    {
                    char *cp = strchr(hline+4, '<');
                    if (cp != NULL)    {
                        char *cp1 = strchr(cp, '>');
                        if (cp1 != NULL)    {
                            int len = (int) (cp1-cp);
                            ThisHelp->PrevName=calloc(1,len);
                            strncpy(ThisHelp->PrevName,
                                cp+1,len-1);
                        }
                    }
                    if (GetHelpLine(hline) == NULL)
                        break;
                    continue;
                }
                /* ---- parse the next>> button pointer ---- */
                else if (strncmp(hline, "[>>]", 4) == 0)    {
                    char *cp = strchr(hline+4, '<');
                    if (cp != NULL)    {
                        char *cp1 = strchr(cp, '>');
                        if (cp1 != NULL)    {
                            int len = (int) (cp1-cp);
                            ThisHelp->NextName=calloc(1,len);
                            strncpy(ThisHelp->NextName,
                                            cp+1,len-1);
                        }
                    }
                    if (GetHelpLine(hline) == NULL)
                        break;
                    continue;
                }
                else
                    break;
            }
            ThisHelp->hheight = 0;
            ThisHelp->hwidth = 0;
            ThisHelp->NextHelp = NULL;

            /* ------ append entry to the linked list ------ */
            if (LastHelp != NULL)
                LastHelp->NextHelp = ThisHelp;
            LastHelp = ThisHelp;
			HelpCount++;
        }
        /* -------- move to the next <helpname> token ------ */
        if (GetHelpLine(hline) == NULL)
            strcpy(hline, "<end>");
        while (*hline != '<')    {
            ThisHelp->hwidth =
                max(ThisHelp->hwidth, HelpLength(hline));
            ThisHelp->hheight++;
            if (GetHelpLine(hline) == NULL)
                strcpy(hline, "<end>");
        }
    }
	/* --- append the help structures to the file --- */
	fseek(helpfp, 0L, SEEK_END);
	where = ftell(helpfp);
	ThisHelp = FirstHelp;
	fwrite(&HelpCount, sizeof(int), 1, helpfp);
	while (ThisHelp != NULL)	{
		ThisHelp->nexthlp = FindHelp(ThisHelp->NextName);
		ThisHelp->prevhlp = FindHelp(ThisHelp->PrevName);
		WriteText(ThisHelp->hname);
		WriteText(ThisHelp->comment);
		fwrite(&ThisHelp->hptr, sizeof(short)*5+sizeof(long), 1, helpfp);
		ThisHelp = ThisHelp->NextHelp;
	}
	fwrite(&where, sizeof(long), 1, helpfp);
    fclose(helpfp);
	return 0;
}
示例#3
0
void CMainFrame::OnHelp() {
	OpenHelpFile("OpenHoldem_Manual.chm");
}