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