13d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 23d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* module: Library for String Functions */ 33d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 43d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* file: libstr.h */ 53d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target system: ALL */ 63d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* target OS: ALL */ 73d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* */ 83d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Description: */ 93d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/* Header for the implementation of common string-handling functions */ 103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/*************************************************************************/ 113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 123d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 133d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 143d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby /* 153d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright Notice 163d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Copyright (c) Ericsson, IBM, Lotus, Matsushita Communication 173d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Industrial Co., Ltd., Motorola, Nokia, Openwave Systems, Inc., 183d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Palm, Inc., Psion, Starfish Software, Symbian, Ltd. (2001). 193d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * All Rights Reserved. 203d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Implementation of all or part of any Specification may require 213d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * licenses under third party intellectual property rights, 223d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * including without limitation, patent rights (such a third party 233d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * may or may not be a Supporter). The Sponsors of the Specification 243d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * are not responsible and shall not be held responsible in any 253d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * manner for identifying or failing to identify any or all such 263d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * third party intellectual property rights. 273d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 283d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT AND THE INFORMATION CONTAINED HEREIN ARE PROVIDED 293d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * ON AN "AS IS" BASIS WITHOUT WARRANTY OF ANY KIND AND ERICSSON, IBM, 303d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO. LTD, MOTOROLA, 313d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * NOKIA, PALM INC., PSION, STARFISH SOFTWARE AND ALL OTHER SYNCML 323d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SPONSORS DISCLAIM ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING 333d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION 343d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF 353d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT 363d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * SHALL ERICSSON, IBM, LOTUS, MATSUSHITA COMMUNICATION INDUSTRIAL CO., 373d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * LTD, MOTOROLA, NOKIA, PALM INC., PSION, STARFISH SOFTWARE OR ANY 383d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OTHER SYNCML SPONSOR BE LIABLE TO ANY PARTY FOR ANY LOSS OF 393d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PROFITS, LOSS OF BUSINESS, LOSS OF USE OF DATA, INTERRUPTION OF 403d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * BUSINESS, OR FOR DIRECT, INDIRECT, SPECIAL OR EXEMPLARY, INCIDENTAL, 413d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * PUNITIVE OR CONSEQUENTIAL DAMAGES OF ANY KIND IN CONNECTION WITH 423d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * THIS DOCUMENT OR THE INFORMATION CONTAINED HEREIN, EVEN IF ADVISED 433d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * OF THE POSSIBILITY OF SUCH LOSS OR DAMAGE. 443d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 453d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * The above notice and this paragraph must be included on all copies 463d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * of this document that are made. 473d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * 483d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby */ 493d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 503d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 513d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __LIB_STR_H 523d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#define __LIB_STR_H 533d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 543d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 553d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Definitions 563d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 573d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 583d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "smldef.h" 593d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include "libmem.h" 603d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __ANSI_C__ 613d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <string.h> 623d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 633d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __PALM_OS__ 643d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#include <StringMgr.h> 653d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 663d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 673d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 683d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 693d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * External Functions for all Toolkit versions 703d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 713d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 723d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 733d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __PALM_OS__ /* we use #define to reduce heap usage */ 743d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby String_t smlLibStrdup (const char* constStringP); 753d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrcpy(pTarget,pSource) (char*)StrCopy((char*)pTarget,(char*)pSource) 763d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrncpy(pTarget,pSource,count) (char*)StrNCopy((char*)pTarget,(char*)pSource,count) 773d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrcat(pTarget,pSource) (char*)StrCat((char*)pTarget,(char*)pSource) 783d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrcmp(pTarget,pSource) StrCompare((char*)pTarget,(char*)pSource) 793d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrncmp(pTarget,pSource,count) StrNCompare((char*)pTarget,(char*)pSource,count) 803d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrchr(pString,character) (char*)StrChr((String_t)pString,character) 813d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrlen(pString) StrLen((char*)pString) 823d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else /* we use functions, to make the library exportable */ 833d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrdup (const char *constStringP); 843d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrcpy(const char *pTarget, const char *pSource); 853d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrncpy(const char *pTarget, const char *pSource, int count); 863d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrcat(const char *pTarget, const char *pSource); 873d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF int smlLibStrcmp(const char *pTarget, const char *pSource); 883d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF int smlLibStrncmp(const char *pTarget, const char *pSource, int count); 893d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrchr(const char *pString, char character); 903d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF int smlLibStrlen(const char *pString); 913d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 923d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 933d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 943d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 953d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 963d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby/************************************************************************* 973d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby * Additional External Functions for Full Sized Toolkit Only 983d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby *************************************************************************/ 993d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1003d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifndef __SML_LITE__ /* these API calls are NOT included in the Toolkit lite version */ 1013d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#ifdef __PALM_OS__ /* we use define to reduce heap usage */ 1023d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrncat(pTarget,pSource,count) (char*)StrNCat((char*)pTarget,(char*)pSource,count) 1033d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby #define smlLibStrstr(pString,pSubstring) (char*)StrStr((char*)pString,(char*)pSubstring) 1043d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#else /* we use functions, to make the library exportable */ 1053d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrncat(const char *pTarget, const char *pSource, int count); 1063d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby SML_API_DEF String_t smlLibStrstr(const char *pString, const char *pSubString); 1073d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1083d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 1093d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1103d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby 1113d91e7ce47853dc4e6ec7e1fc675c3d1585e3c51Jake Hamby#endif 112