From c4c62db41d3aa70ae0c99b53d3d697285a7f0e18 Mon Sep 17 00:00:00 2001 From: Joseph Hunkeler Date: Thu, 7 Nov 2019 23:34:06 -0500 Subject: Initial commit --- reloc.h | 47 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 47 insertions(+) create mode 100644 reloc.h (limited to 'reloc.h') diff --git a/reloc.h b/reloc.h new file mode 100644 index 0000000..bebd8bb --- /dev/null +++ b/reloc.h @@ -0,0 +1,47 @@ +// +// Created by jhunk on 11/7/2019. +// + +#ifndef RELOC_RELOC_H +#define RELOC_RELOC_H + +#define _GNU_SOURCE 1 + +#include +#include +#include +#include + +#if defined(_WIN32) || defined(_WIN64) +#define DIRSEP '\\' +#elif defined(__linux__) || defined(__unix__) || defined(__APPLE__) || defined(__MACH__) +#define DIRSEP '/' +#endif + + +typedef struct { + size_t size; + char *path; + char *data; +} RelocData; + + +typedef struct { + char *begin; + char *end; + char *post; + size_t length; + size_t post_length; + size_t total_length; +} RelocMatch; + + +RelocMatch *reloc_match(char *haystack, const char *needle); +char *reloc_find_null(char *s); +RelocData *reloc_read(const char *filename); +size_t reloc_write(RelocData *finfo, const char *filename); +void reloc_deinit_data(RelocData *finfo); +void reloc_replace(RelocMatch *match, const char *rstr); + + +#endif //RELOC_RELOC_H -- cgit