PostgreSQL Source Code  git master
ascii.h File Reference
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

void ascii_safe_strlcpy (char *dest, const char *src, size_t destsiz)
 

Function Documentation

◆ ascii_safe_strlcpy()

void ascii_safe_strlcpy ( char *  dest,
const char *  src,
size_t  destsiz 
)

Definition at line 174 of file ascii.c.

175 {
176  if (destsiz == 0) /* corner case: no room for trailing nul */
177  return;
178 
179  while (--destsiz > 0)
180  {
181  /* use unsigned char here to avoid compiler warning */
182  unsigned char ch = *src++;
183 
184  if (ch == '\0')
185  break;
186  /* Keep printable ASCII characters */
187  if (32 <= ch && ch <= 127)
188  *dest = ch;
189  /* White-space is also OK */
190  else if (ch == '\n' || ch == '\r' || ch == '\t')
191  *dest = ch;
192  /* Everything else is replaced with '?' */
193  else
194  *dest = '?';
195  dest++;
196  }
197 
198  *dest = '\0';
199 }

References generate_unaccent_rules::dest.

Referenced by BackgroundWorkerStateChange(), and pgstat_get_crashed_backend_activity().