mirror of
https://git.postgresql.org/git/postgresql.git
synced 2026-02-12 09:27:04 +08:00
So that it works on MSVC, too. Author: Michaël Paquier Discussion: https://postgr.es/m/29889.1520968202@sss.pgh.pa.us
59 lines
1.1 KiB
C
59 lines
1.1 KiB
C
/*-------------------------------------------------------------------------
|
|
*
|
|
* string.c
|
|
* string handling helpers
|
|
*
|
|
*
|
|
* Portions Copyright (c) 1996-2018, PostgreSQL Global Development Group
|
|
* Portions Copyright (c) 1994, Regents of the University of California
|
|
*
|
|
*
|
|
* IDENTIFICATION
|
|
* src/common/string.c
|
|
*
|
|
*-------------------------------------------------------------------------
|
|
*/
|
|
|
|
|
|
#ifndef FRONTEND
|
|
#include "postgres.h"
|
|
#else
|
|
#include "postgres_fe.h"
|
|
#endif
|
|
|
|
#include "common/string.h"
|
|
|
|
|
|
/*
|
|
* Returns whether the string `str' has the postfix `end'.
|
|
*/
|
|
bool
|
|
pg_str_endswith(const char *str, const char *end)
|
|
{
|
|
size_t slen = strlen(str);
|
|
size_t elen = strlen(end);
|
|
|
|
/* can't be a postfix if longer */
|
|
if (elen > slen)
|
|
return false;
|
|
|
|
/* compare the end of the strings */
|
|
str += slen - elen;
|
|
return strcmp(str, end) == 0;
|
|
}
|
|
|
|
|
|
/*
|
|
* strtoint --- just like strtol, but returns int not long
|
|
*/
|
|
int
|
|
strtoint(const char *pg_restrict str, char **pg_restrict endptr, int base)
|
|
{
|
|
long val;
|
|
|
|
val = strtol(str, endptr, base);
|
|
if (val != (int) val)
|
|
errno = ERANGE;
|
|
return (int) val;
|
|
}
|