mirror of
https://github.com/swift-server/async-http-client.git
synced 2026-05-03 07:32:29 +00:00
e69318d4cb
This PR adds support for Android, mostly just by importing the Android module when needed.
44 lines
1.4 KiB
C
44 lines
1.4 KiB
C
//===----------------------------------------------------------------------===//
|
|
//
|
|
// This source file is part of the AsyncHTTPClient open source project
|
|
//
|
|
// Copyright (c) 2018-2021 Apple Inc. and the AsyncHTTPClient project authors
|
|
// Licensed under Apache License v2.0
|
|
//
|
|
// See LICENSE.txt for license information
|
|
// See CONTRIBUTORS.txt for the list of AsyncHTTPClient project authors
|
|
//
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
//===----------------------------------------------------------------------===//
|
|
|
|
#if __APPLE__
|
|
#include <xlocale.h>
|
|
#elif __linux__
|
|
#include <locale.h>
|
|
#endif
|
|
|
|
#include <stdbool.h>
|
|
#include <time.h>
|
|
|
|
bool swiftahc_cshims_strptime(const char * string, const char * format, struct tm * result) {
|
|
const char * firstNonProcessed = strptime(string, format, result);
|
|
if (firstNonProcessed) {
|
|
return *firstNonProcessed == 0;
|
|
}
|
|
return false;
|
|
}
|
|
|
|
bool swiftahc_cshims_strptime_l(const char * string, const char * format, struct tm * result, void * locale) {
|
|
// The pointer cast is fine as long we make sure it really points to a locale_t.
|
|
#if defined(__musl__) || defined(__ANDROID__)
|
|
const char * firstNonProcessed = strptime(string, format, result);
|
|
#else
|
|
const char * firstNonProcessed = strptime_l(string, format, result, (locale_t)locale);
|
|
#endif
|
|
if (firstNonProcessed) {
|
|
return *firstNonProcessed == 0;
|
|
}
|
|
return false;
|
|
}
|