Exemplo n.º 1
0
/********************************************************************
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);
		}
	}
}
Exemplo n.º 2
0
/********************************************************************
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);
}