コード例 #1
0
//
// Parse the group information from the cfg file.
//
bool PanelGroupManager::cfgParseComment(const char *comment,
                                        const char *filename, int lineno)

{
    char *p, *c, name[128];
    int  inst;

    if (strncmp(comment," panel group",12))
        return false;

    p = (char *) strchr(comment,'"');
    if (!p) {
        ErrorMessage("Bad panel group name (%s, line %d)",filename,lineno);
        return false;
    }

    c = p + 1;
    p = strchr(c,'"');
    if (!p) {
        ErrorMessage("Bad panel group name (%s, line %d)",filename,lineno);
        return false;
    }
    *p = '\0';
    strcpy(name,c);
    if (!this->createPanelGroup(name)) {
        ErrorMessage("Can't create panel group named '%s'",name);
        return false;
    }

    *p = '"';	// Put back the "
    p++;
    SkipWhiteSpace(p);
    while(*p)
    {
        inst = atoi(p) + 1;
        if (!this->addGroupMember(name, inst)) {
            ErrorMessage("Can't add panel instance %d to group '%s'",inst,name);
            return false;
        }
        FindWhiteSpace(p);	// Skip over the number or to end-of-string
        SkipWhiteSpace(p);	// Skip to the next number or end-of-string
    }

    return true;
}
コード例 #2
0
ファイル: genmsg.c プロジェクト: mingpen/OpenNT
BOOL
ReadTxtAndOutputHdr(
    PCHAR pszTxtFile,
    FILE *fhTxt,
    FILE *fhHdr
    )
{
    ULONG LanguageId;
    PMESSAGE_INFO MessageInfo;
    PCHAR s, s1, TextPtr, SyntaxPhrase, MsgName, MsgComment;
    ULONG MsgId, MsgLang;
    BOOL CopyComments;
    BOOL Result = TRUE;
    int LineNumber;
    int State;

    MessageInfo = NULL;
    LineNumber = 0;
    CopyComments = FALSE;
    State = LOOKING_FOR_MSGID;
    while (fgets( LineBuffer, sizeof( LineBuffer ), fhTxt )) {
        LineNumber += 1;

        if (!(s = SkipWhiteSpace( LineBuffer ))) {
            if (LineNumber > 1) {
                fprintf( fhHdr, "\r\n" );
                }
            CopyComments = TRUE;
            continue;
            }

tryagain:
        if (*s == ';') {
            if (CopyComments) {
                if (State == LOOKING_FOR_MSGID) {
                    State = PROCESSING_COMMENTS;
                    fprintf( fhHdr, "//\r\n" );
                    }

                if (State == PROCESSING_COMMENTS) {
                    fprintf( fhHdr, "//%s", s+1 );
                    }
                }
            else {
                fprintf( fhHdr, "//%s", s+1 );
                }
            continue;
            }

        if (State == PROCESSING_COMMENTS) {
            State = LOOKING_FOR_MSGID;
            fprintf( fhHdr, "//\r\n" );
            }

        if (State == LOOKING_FOR_MSGID) {
            SyntaxPhrase = "MessageId=";
            if (_strnicmp( s, SyntaxPhrase, strlen( SyntaxPhrase ) )) {
syntaxerr:
                fprintf( stderr,
                         "%s(%d) : error : invalid syntax - %s\n",
                         pszTxtFile,
                         LineNumber,
                         SyntaxPhrase
                       );

                Result = FALSE;
                }
            s += strlen( SyntaxPhrase );
            if (s1 = FindWhiteSpace( s ))  {
                *s1++ = '\0';
                }

            SyntaxPhrase = "MessageId=value";
            if (!CharToInteger( s, 0, &MsgId )) {
                goto syntaxerr;
                }

            SyntaxPhrase = "SymbolicName=";
            if (!(s = SkipWhiteSpace( s1 ))) {
                goto syntaxerr;
                }
            if (_strnicmp( s, SyntaxPhrase, strlen( SyntaxPhrase ) )) {
                goto syntaxerr;
                }
            MsgName = s + strlen( SyntaxPhrase );

            if (s = FindWhiteSpace( MsgName ))  {
                *s++ = '\0';
                MsgComment = SkipWhiteSpace( s );
                }

            MessageInfo = AddMessageInfo( MsgId, MsgName );
            fprintf( fhHdr, "//\r\n// MessageId: %s\r\n//\r\n// MessageText:\r\n//\r\n",
                     MessageInfo->Name
                   );

            State = LOOKING_FOR_LANGUAGE;
            }
        else
        if (State == LOOKING_FOR_LANGUAGE) {
            SyntaxPhrase = "Language=";
            if (_strnicmp( s, SyntaxPhrase, strlen( SyntaxPhrase ) )) {
                State = LOOKING_FOR_MSGID;
                goto tryagain;
                }

            s += strlen( SyntaxPhrase );
            if ((LanguageId = FindLanguageId( s ))) {
                State = LOOKING_FOR_PERIOD;
                TextPtr = TextBuffer;
                *TextPtr = '\0';
                }
            else {
                goto syntaxerr;
                }
            }

        else
        if (State == LOOKING_FOR_PERIOD) {
            if (!strcmp( s, ".\r\n" )) {
                State = LOOKING_FOR_LANGUAGE;
                *s = '\0';
                if (!AddMessageText( MessageInfo, LanguageId, TextBuffer )) {
                    SyntaxPhrase = "Message Text";
                    goto syntaxerr;
                    }
                }
            else {
                strcpy( TextPtr, s );
                TextPtr += strlen( s );
                }

            if (LanguageId == LANG_ENGLISH) {
                if (State == LOOKING_FOR_PERIOD) {
                    fprintf( fhHdr, "//  %s", s );
                    }
                else {
                    fprintf( fhHdr, "//\r\n#define %-32s %5ld  %s\r\n\r\n",
                             MessageInfo->Name,
                             MessageInfo->Id,
                             MsgComment ? MsgComment : ""
                           );
                    }
                }
            }
        }

    return( Result );
}