Prism Ruby parser
Loading...
Searching...
No Matches
Functions
pm_memchr.h File Reference

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.
 

Detailed Description

A custom memchr implementation.

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.