/* * Copyright (c) 2016 MariaDB Corporation Ab * * Use of this software is governed by the Business Source License included * in the LICENSE.TXT file and at www.mariadb.com/bsl11. * * Change Date: 2022-01-01 * * On the date above, in accordance with the Business Source License, use * of this software will be governed by version 2 or later of the General * Public License. */ #include #include #include namespace { thread_local char errbuf[512]; // Enough for all errors } const char* mxb_strerror(int error) { #ifdef HAVE_GLIBC return strerror_r(error, errbuf, sizeof(errbuf)); #else strerror_r(error, errbuf, sizeof(errbuf)); return errbuf; #endif } namespace maxbase { char* ltrim(char* str) { char* ptr = str; while (isspace(*ptr)) { ptr++; } if (ptr != str) { memmove(str, ptr, strlen(ptr) + 1); } return str; } char* rtrim(char* str) { char* ptr = strchr(str, '\0') - 1; while (ptr > str && isspace(*ptr)) { ptr--; } if (isspace(*(ptr + 1))) { *(ptr + 1) = '\0'; } return str; } char* trim(char* str) { return ltrim(rtrim(str)); } }