git-svn-id: https://svn.code.sf.net/p/flaim/code/trunk@482 0109f412-320b-0410-ab79-c3e0c5ffbbe6
93 lines
2.6 KiB
C
93 lines
2.6 KiB
C
//------------------------------------------------------------------------------
|
|
// Desc: Header for collation routines
|
|
//
|
|
// Tabs: 3
|
|
//
|
|
// Copyright (c) 1991-1992, 1994-2000, 2002-2006 Novell, Inc.
|
|
// All Rights Reserved.
|
|
//
|
|
// This program is free software; you can redistribute it and/or
|
|
// modify it under the terms of version 2 of the GNU General Public
|
|
// License as published by the Free Software Foundation.
|
|
//
|
|
// This program is distributed in the hope that it will be useful,
|
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
// GNU General Public License for more details.
|
|
//
|
|
// You should have received a copy of the GNU General Public License
|
|
// along with this program; if not, contact Novell, Inc.
|
|
//
|
|
// To contact Novell about this file by physical or electronic mail,
|
|
// you may find current contact information at www.novell.com
|
|
//
|
|
// $Id$
|
|
//------------------------------------------------------------------------------
|
|
|
|
#ifndef FCOLLATE_H
|
|
#define FCOLLATE_H
|
|
|
|
#define TRUNCATED_FLAG 0x8000
|
|
#define EXCLUSIVE_LT_FLAG 0x4000
|
|
#define EXCLUSIVE_GT_FLAG 0x2000
|
|
#define SEARCH_KEY_FLAG 0x1000
|
|
|
|
#define KEY_COMPONENT_LENGTH_MASK 0x0FFF
|
|
#define KEY_LOW_VALUE 0x0FFE
|
|
#define KEY_HIGH_VALUE 0x0FFF
|
|
|
|
FINLINE FLMBOOL isKeyComponentLTExclusive(
|
|
const FLMBYTE * pucKeyComponent)
|
|
{
|
|
return( (FB2UW( pucKeyComponent) & EXCLUSIVE_LT_FLAG) ? TRUE : FALSE);
|
|
}
|
|
|
|
FINLINE FLMBOOL isKeyComponentGTExclusive(
|
|
const FLMBYTE * pucKeyComponent)
|
|
{
|
|
return( (FB2UW( pucKeyComponent) & EXCLUSIVE_GT_FLAG) ? TRUE : FALSE);
|
|
}
|
|
|
|
FINLINE FLMBOOL isKeyComponentTruncated(
|
|
const FLMBYTE * pucKeyComponent)
|
|
{
|
|
return( (FB2UW( pucKeyComponent) & TRUNCATED_FLAG) ? TRUE : FALSE);
|
|
}
|
|
|
|
FINLINE FLMBOOL isSearchKeyComponent(
|
|
const FLMBYTE * pucKeyComponent)
|
|
{
|
|
return( (FB2UW( pucKeyComponent) & SEARCH_KEY_FLAG) ? TRUE : FALSE);
|
|
}
|
|
|
|
FINLINE FLMUINT getKeyComponentLength(
|
|
const FLMBYTE * pucKeyComponent)
|
|
{
|
|
return( (FLMUINT)(FB2UW( pucKeyComponent)) & KEY_COMPONENT_LENGTH_MASK);
|
|
}
|
|
|
|
RCODE flmColText2StorageText(
|
|
const FLMBYTE * pucColStr,
|
|
FLMUINT uiColStrLen,
|
|
FLMBYTE * pucStorageBuf,
|
|
FLMUINT * puiStorageLen,
|
|
FLMUINT uiLang,
|
|
FLMBOOL * pbDataTruncated,
|
|
FLMBOOL * pbFirstSubstring);
|
|
|
|
RCODE flmUTF8ToColText(
|
|
IF_PosIStream * pIStream,
|
|
FLMBYTE * pucCollatedStr,
|
|
FLMUINT * puiCollatedStrLen,
|
|
FLMBOOL bCaseInsensitive,
|
|
FLMUINT * puiCollationLen,
|
|
FLMUINT * puiCaseLen,
|
|
FLMUINT uiLanguage,
|
|
FLMUINT uiCharLimit,
|
|
FLMBOOL bFirstSubstring,
|
|
FLMBOOL bDataTruncated,
|
|
FLMBOOL * pbOriginalCharsLost,
|
|
FLMBOOL * pbDataTruncated);
|
|
|
|
#endif
|