ruby/prism/util/pm_memchr.h

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

30 строки
895 B
C
Исходник Обычный вид История

/**
* @file pm_memchr.h
*
* A custom memchr implementation.
*/
2023-09-27 19:24:48 +03:00
#ifndef PRISM_MEMCHR_H
#define PRISM_MEMCHR_H
2023-06-30 21:30:24 +03:00
2023-09-27 19:24:48 +03:00
#include "prism/defines.h"
#include "prism/encoding.h"
2023-06-30 21:30:24 +03:00
#include <stddef.h>
/**
* 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.
*
* @param source The source string.
* @param character The character to search for.
* @param number The maximum number of bytes to search.
* @param encoding_changed Whether the encoding changed.
* @param encoding A pointer to the encoding.
* @return A pointer to the first occurrence of the character in the source
* string, or NULL if no such character exists.
*/
void * pm_memchr(const void *source, int character, size_t number, bool encoding_changed, const pm_encoding_t *encoding);
2023-06-30 21:30:24 +03:00
#endif