MOON
Server: Apache
System: Linux nserver.cafsindia.com 4.18.0-553.123.2.lve.el8.x86_64 #1 SMP Thu May 7 23:17:13 UTC 2026 x86_64
User: cafsindia (1002)
PHP: 8.2.30
Disabled: NONE
Upload Files
File: //opt/cpanel/ea-ruby27/root/usr/local/share/gems/gems/prism-1.9.0/include/prism/util/pm_memchr.h
/**
 * @file pm_memchr.h
 *
 * A custom memchr implementation.
 */
#ifndef PRISM_MEMCHR_H
#define PRISM_MEMCHR_H

#include "prism/defines.h"
#include "prism/encoding.h"

#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);

#endif