/******************************************************************** Desc: Edit language *********************************************************************/ FLMBOOL ViewEditLanguage( FLMUINT * puiLang ) { char szTempBuf[ 80]; FLMUINT uiTempNum; FLMBOOL bValEntered; for (;;) { if (!ViewEditText( "Enter Language Code: ", szTempBuf, 3, &bValEntered) || !bValEntered) { return( FALSE); } if (f_strlen( szTempBuf) != 2) { uiTempNum = 0; szTempBuf [0] = 0; } else { if (szTempBuf [0] >= 'a' && szTempBuf [0] <= 'z') { szTempBuf [0] = szTempBuf [0] - 'a' + 'A'; } if (szTempBuf [1] >= 'a' && szTempBuf [1] <= 'z') { szTempBuf [1] = szTempBuf [1] - 'a' + 'A'; } uiTempNum = f_languageToNum( szTempBuf); } if (uiTempNum == 0 && (szTempBuf [0] != 'U' || szTempBuf [1] != 'S')) { ViewShowError( "Illegal language code"); } else { *puiLang = uiTempNum; return( TRUE); } } }
/******************************************************************** Desc: ? *********************************************************************/ FSTATIC FLMBOOL bldParseHdrInfo( const char * pucBuffer) { FLMUINT uiNum; FLMBOOL bHaveParam; CREATE_OPTS CreateOpts; FLMUINT uiFieldNum; f_memcpy( &CreateOpts, &gv_DefaultCreateOpts, sizeof( CREATE_OPTS)); uiFieldNum = 1; for (;;) { uiNum = 0; bHaveParam = FALSE; while ((*pucBuffer == ' ') || (*pucBuffer == ':') || (*pucBuffer == ',') || (*pucBuffer == ';') || (*pucBuffer == '\t')) { pucBuffer++; } if( uiFieldNum == 8) // Language { char pszTmpBuf[ 100]; FLMUINT uiTmpLen = 0; while ((*pucBuffer) && (*pucBuffer != ':') && (*pucBuffer != ',') && (*pucBuffer != ';') && (*pucBuffer != ' ') && (*pucBuffer != '\t')) { pszTmpBuf[ uiTmpLen++] = *pucBuffer++; } pszTmpBuf[ uiTmpLen] = 0; if( uiTmpLen) { uiNum = f_languageToNum( pszTmpBuf); if( (!uiNum) && (f_stricmp( pszTmpBuf, "US") != 0)) { bldShowError( "Illegal language in header information"); return( FALSE); } bHaveParam = TRUE; } } else { while( (*pucBuffer >= '0') && (*pucBuffer <= '9')) { uiNum *= 10; uiNum += (FLMUINT)(*pucBuffer - '0'); pucBuffer++; bHaveParam = TRUE; } } if( ((*pucBuffer != 0) && (*pucBuffer != ' ') && (*pucBuffer != ':') && (*pucBuffer != ',') && (*pucBuffer != ';') && (*pucBuffer != '\t'))) { bldShowError( "Illegal value in header information"); return( FALSE); } if( bHaveParam) { switch( uiFieldNum) { case 1: if( uiNum != 0 && !VALID_BLOCK_SIZE( uiNum)) { bldShowError( "Illegal block size"); return( FALSE); } CreateOpts.uiBlockSize = uiNum; break; case 4: if( uiNum > 255) { bldShowError( "Illegal application major version"); return( FALSE); } CreateOpts.uiAppMajorVer = uiNum; break; case 5: if( uiNum > 255) { bldShowError( "Illegal application minor version"); return( FALSE); } CreateOpts.uiAppMinorVer = uiNum; break; case 6: CreateOpts.uiMaxRflFileSize = uiNum; break; case 7: CreateOpts.uiDefaultLanguage = uiNum; break; case 8: CreateOpts.uiVersionNum = uiNum; break; default: bldShowError( "Too many parameters in header information"); return( FALSE); } } if( !(*pucBuffer)) { break; } uiFieldNum++; } gv_bFixHdrInfo = TRUE; f_memcpy( &gv_DefaultCreateOpts, &CreateOpts, sizeof( CREATE_OPTS)); return( TRUE); }