Ruby 3.3.7p123 (2025-01-15 revision be31f993d7fa0219d85f7b3c694d454da4ecc10b)
pm_memchr.h File Reference

A custom memchr implementation. More...

#include "prism/defines.h"
#include "prism/encoding.h"
#include <stddef.h>

Go to the source code of this file.

Functions

void * pm_memchr (const void *source, int character, size_t number, bool encoding_changed, const pm_encoding_t *encoding)
 We need to roll our own memchr to handle cases where the encoding changes and we need to search for a character in a buffer that could be the trailing byte of a multibyte character.
 

Detailed Description

A custom memchr implementation.

Definition in file pm_memchr.h.

Function Documentation

◆ pm_memchr()

void * pm_memchr ( const void * source,
int character,
size_t number,
bool encoding_changed,
const pm_encoding_t * encoding )

We need to roll our own memchr to handle cases where the encoding changes and we need to search for a character in a buffer that could be the trailing byte of a multibyte character.

Parameters
sourceThe source string.
characterThe character to search for.
numberThe maximum number of bytes to search.
encoding_changedWhether the encoding changed.
encodingA pointer to the encoding.
Returns
A pointer to the first occurrence of the character in the source string, or NULL if no such character exists.

Definition at line 11 of file pm_memchr.c.