mirror of https://github.com/postgres/postgres
Rewrite strnlen replacement implementation from 8a241792f9
.
The previous placement of the fallback implementation in libpgcommon was problematic, because libpqport functions need strnlen functionality. Move replacement into libpgport. Provide strnlen() under its posix name, instead of pg_strnlen(). Fix stupid configure bug, executing the test only when compiled with threading support. Author: Andres Freund Discussion: https://postgr.es/m/E1e1gR2-0005fB-SI@gemulon.postgresql.orgpull/31/head^2
parent
fa5e119dc7
commit
fffd651e83
@ -0,0 +1,33 @@ |
||||
/*-------------------------------------------------------------------------
|
||||
* |
||||
* strnlen.c |
||||
* Fallback implementation of strnlen(). |
||||
* |
||||
* |
||||
* Portions Copyright (c) 1996-2017, PostgreSQL Global Development Group |
||||
* Portions Copyright (c) 1994, Regents of the University of California |
||||
* |
||||
* IDENTIFICATION |
||||
* src/port/strnlen.c |
||||
* |
||||
*------------------------------------------------------------------------- |
||||
*/ |
||||
|
||||
#include "c.h" |
||||
|
||||
/*
|
||||
* Implementation of posix' strnlen for systems where it's not available. |
||||
* |
||||
* Returns the number of characters before a null-byte in the string pointed |
||||
* to by str, unless there's no null-byte before maxlen. In the latter case |
||||
* maxlen is returned. |
||||
*/ |
||||
size_t |
||||
strnlen(const char *str, size_t maxlen) |
||||
{ |
||||
const char *p = str; |
||||
|
||||
while (maxlen-- > 0 && *p) |
||||
p++; |
||||
return p - str; |
||||
} |
Loading…
Reference in new issue