blob: 75c668a89d7278f57b7e24450a8d8ea99a078cdb [file] [log] [blame]
// Copyright 2016 The Cobalt Authors. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
// A poem (POsix EMulation) for functions in stdlib.h
#ifndef STARBOARD_CLIENT_PORTING_POEM_STDLIB_POEM_H_
#define STARBOARD_CLIENT_PORTING_POEM_STDLIB_POEM_H_
#if defined(STARBOARD)
#include "starboard/configuration.h"
#ifdef __cplusplus
extern "C" {
#endif
static SB_C_INLINE int PoemAbs(int x) {
if (x < 0)
return -x;
return x;
}
#ifdef __cplusplus
} // extern "C"
#endif
#if !defined(POEM_NO_EMULATION)
#include "starboard/system.h"
#ifdef __cplusplus
#include <string>
#include "starboard/common/string.h"
#else
#include "starboard/string.h"
#endif
// number conversion functions
#undef strtol
#define strtol(s, o, b) SbStringParseSignedInteger(s, o, b)
#undef strtoll
#define strtoll(s, o, b) SbStringParseSignedInteger(s, o, b)
#undef atoi
#define atoi(v) SbStringAToI(v)
#undef atol
#define atol(v) SbStringAToL(v)
#undef strtoul
#define strtoul(s, o, b) SbStringParseUnsignedInteger(s, o, b)
#undef strtoull
#define strtoull(s, o, b) SbStringParseUInt64(s, o, b)
#undef strtod
#define strtod(s, o) SbStringParseDouble(s, o)
#undef qsort
#define qsort(b, ec, ew, c) SbSystemSort(b, ec, ew, c);
#undef abs
#define abs(x) PoemAbs(x)
#endif // POEM_NO_EMULATION
#endif // STARBOARD
#endif // STARBOARD_CLIENT_PORTING_POEM_STDLIB_POEM_H_