Ruby  3.4.0dev (2024-12-06 revision 892c46283a5ea4179500d951c9d4866c0051f27b)
Functions
pm_memchr.h File Reference

(892c46283a5ea4179500d951c9d4866c0051f27b)

A custom memchr implementation. More...

#include "prism/defines.h"
#include "prism/encoding.h"
#include <stddef.h>
Include dependency graph for pm_memchr.h:
This graph shows which files directly or indirectly include this file:

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. More...
 

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.