23#ifndef MUPDF_FITZ_STRING_H
24#define MUPDF_FITZ_STRING_H
31#define FZ_REPLACEMENT_CHARACTER 0xFFFD
100const char *
fz_strstr(
const char *haystack,
const char *needle);
116void *
fz_memmem(
const void *haystack,
size_t haystacklen,
const void *needle,
size_t needlelen);
339static inline uint16_t fz_unpack_uint16(
const uint8_t *p)
341 return (uint16_t)p[0] << 8 | (uint16_t)p[1];
344static inline uint16_t fz_unpack_uint16_le(
const uint8_t *p)
346 return (uint16_t)p[1] << 8 | (uint16_t)p[0];
349static inline uint32_t fz_unpack_uint32(
const uint8_t *p)
351 return (uint32_t)p[0] << 24 | (uint32_t)p[1] << 16 | (uint32_t)p[2] << 8 | (uint32_t)p[3];
354static inline uint32_t fz_unpack_uint32_le(
const uint8_t *p)
356 return (uint32_t)p[3] << 24 | (uint32_t)p[2] << 16 | (uint32_t)p[1] << 8 | (uint32_t)p[0];
359static inline uint64_t fz_unpack_uint64(
const uint8_t *p)
362 (uint64_t)p[0]<<56 | (uint64_t)p[1]<<48 | (uint64_t)p[2]<<40 | (uint64_t)p[3]<<32 |
363 (uint64_t)p[4]<<24 | (uint64_t)p[5]<<16 | (uint64_t)p[6]<<8 | (uint64_t)p[7]
367static inline uint64_t fz_unpack_uint64_le(
const uint8_t *p)
370 (uint64_t)p[7]<<56 | (uint64_t)p[6]<<48 | (uint64_t)p[5]<<40 | (uint64_t)p[4]<<32 |
371 (uint64_t)p[3]<<24 | (uint64_t)p[2]<<16 | (uint64_t)p[1]<<8 | (uint64_t)p[0]
375static inline int16_t fz_unpack_int16(
const uint8_t *p) {
return fz_unpack_uint16(p); }
376static inline int16_t fz_unpack_int16_le(
const uint8_t *p) {
return fz_unpack_uint16_le(p); }
377static inline int32_t fz_unpack_int32(
const uint8_t *p) {
return fz_unpack_uint32(p); }
378static inline int32_t fz_unpack_int32_le(
const uint8_t *p) {
return fz_unpack_uint32_le(p); }
379static inline int64_t fz_unpack_int64(
const uint8_t *p) {
return fz_unpack_uint64(p); }
380static inline int64_t fz_unpack_int64_le(
const uint8_t *p) {
return fz_unpack_uint64_le(p); }
382static inline float fz_unpack_float(
const uint8_t *p)
384 uint32_t u = fz_unpack_uint32(p);
386 memcpy(&x, &u,
sizeof x);
390static inline float fz_unpack_float_le(
const uint8_t *p)
392 uint32_t u = fz_unpack_uint32_le(p);
394 memcpy(&x, &u,
sizeof x);
398static inline double fz_unpack_double(
const uint8_t *p)
400 uint64_t u = fz_unpack_uint64(p);
402 memcpy(&x, &u,
sizeof x);
406static inline double fz_unpack_double_le(
const uint8_t *p)
408 uint64_t u = fz_unpack_uint64_le(p);
410 memcpy(&x, &u,
sizeof x);
414static inline void fz_pack_uint16(uint8_t *p, uint16_t x)
420static inline void fz_pack_uint32(uint8_t *p, uint32_t x)
428static inline void fz_pack_uint64(uint8_t *p, uint64_t x)
440static inline void fz_pack_uint16_le(uint8_t *p, uint16_t x)
446static inline void fz_pack_uint32_le(uint8_t *p, uint32_t x)
454static inline void fz_pack_uint64_le(uint8_t *p, uint64_t x)
466static inline void fz_pack_float(uint8_t *p,
float x)
469 memcpy(&u, &x,
sizeof u);
470 fz_pack_uint32(p, u);
473static inline void fz_pack_double(uint8_t *p,
double x)
476 memcpy(&u, &x,
sizeof u);
477 fz_pack_uint64(p, u);
480static inline void fz_pack_float_le(uint8_t *p,
float x)
483 memcpy(&u, &x,
sizeof u);
484 fz_pack_uint32_le(p, u);
487static inline void fz_pack_double_le(uint8_t *p,
double x)
490 memcpy(&u, &x,
sizeof u);
491 fz_pack_uint64_le(p, u);
int fz_chartorunen(int *rune, const char *str, size_t n)
void fz_format_output_path(fz_context *ctx, char *path, size_t size, const char *fmt, int page)
void fz_dirname(char *dir, const char *path, size_t dirsize)
int fz_strverscmp(const char *s1, const char *s2)
int fz_runeidx(const char *str, const char *p)
int fz_utflen(const char *s)
int fz_strcasecmp(const char *a, const char *b)
char * fz_encode_uri(fz_context *ctx, const char *s)
char * fz_encode_uri_pathname(fz_context *ctx, const char *s)
char * fz_urldecode(char *url)
int fz_chartorune(int *rune, const char *str)
char * fz_realpath(const char *path, char *resolved_path)
char * fz_cleanname_strdup(fz_context *ctx, const char *name)
int fz_is_page_range(fz_context *ctx, const char *s)
char * fz_utf8_from_wchar(fz_context *ctx, const wchar_t *s)
char * fz_cleanname(char *name)
char * fz_encode_uri_component(fz_context *ctx, const char *s)
int fz_strncasecmp(const char *a, const char *b, size_t n)
@ FZ_UTFMAX
Definition string-util.h:217
const char * fz_strstrcase(const char *haystack, const char *needle)
const char * fz_parse_page_range(fz_context *ctx, const char *s, int *a, int *b, int n)
void * fz_memmem(const void *haystack, size_t haystacklen, const void *needle, size_t needlelen)
wchar_t * fz_wchar_from_utf8(fz_context *ctx, const char *path)
size_t fz_strlcat(char *dst, const char *src, size_t n)
char * fz_decode_uri_component(fz_context *ctx, const char *s)
const char * fz_strstr(const char *haystack, const char *needle)
char * fz_strsep(char **stringp, const char *delim)
size_t fz_strnlen(const char *s, size_t maxlen)
int fz_runetochar(char *str, int rune)
const char * fz_basename(const char *path)
int fz_grisu(float f, char *s, int *exp)
size_t fz_strlcpy(char *dst, const char *src, size_t n)
char * fz_decode_uri(fz_context *ctx, const char *s)
float fz_strtof(const char *s, char **es)
const char * fz_runeptr(const char *str, int idx)