21#if !defined(AA9CDF05506A4A07827B1144C4755C06)
23#define AA9CDF05506A4A07827B1144C4755C06
26#if defined(__cplusplus)
28#include <miktex/Core/c/api.h>
30#include <miktex/Definitions>
31#include <miktex/Core/Debug>
32#include <miktex/Core/IntegerTypes>
33#include <miktex/Version>
34#include <miktex/KPSE/Emulation>
38#if defined(__cplusplus)
39MIKTEX_WEB2C_BEGIN_NAMESPACE;
41MIKTEXW2CCEEAPI(
char*) GetCurrentFileName();
42MIKTEXW2CCEEAPI(
void) GetSecondsAndMicros(
int* seconds,
int* micros);
43MIKTEXW2CCEEAPI(
int) RunSystemCommand(
const char* cmd);
45MIKTEX_WEB2C_END_NAMESPACE;
55#include "../../c-auto.h"
63#include "../../w2c/config.h"
83#if defined(__cplusplus)
84inline char* generic_synctex_get_current_name()
86 return MiKTeX::Web2C::GetCurrentFileName();
90#if defined(__cplusplus)
91inline int runsystem(
const char* cmd)
93 return MiKTeX::Web2C::RunSystemCommand(cmd);
97#if defined(__cplusplus)
98inline void secondsandmicros(integer& s, integer& m)
100 MiKTeX::Web2C::GetSecondsAndMicros(&s, &m);
116#if defined(__cplusplus)
117template<
class T> T* addressof(T& x)
122#define addressof(x) (&(x))
125#if defined(__cplusplus)
126template<
class T>
const char* conststringcast(T* s)
128 MIKTEX_ASSERT(
sizeof(s[0]) ==
sizeof(
char));
129 return (
const char*)s;
137#define halfp(i) ((i) >> 1)
139#define ISDIRSEP IS_DIR_SEP
143#define odd(x) ((x) & 1)
145#define round(x) miktex_zround((double) (x))
147#define xmallocarray(type, size) \
148 ((type*)xmalloc(((size) + 1) * sizeof(type)))
150#define xreallocarray(ptr, type, size) \
151 ((type*)xrealloc(ptr, ((size) + 1) * sizeof(type)))
153#if defined(__cplusplus)
156# define nil ((void*)0)
159#define kpsevarvalue kpse_var_value
161#define kpseinitprog kpse_init_prog
163#define kpsesetprogramenabled kpse_set_program_enabled
165#define kpsepkformat kpse_pk_format
167#define kpsesrccmdline kpse_src_cmdline
169#define kpsemaketexdiscarderrors kpse_make_tex_discard_errors
173#define intcast(x) ((integer)(x))
175#define stringcast(x) ((char *) (x))
177#define ucharcast(x) ((unsigned char)(x))
178#define ustringcast(x) ((unsigned char *) (x))
180#if defined(MIKTEX_WINDOWS)
181# define promptfilenamehelpmsg "(Press Enter to retry, or Control-Z to exit"
183# define promptfilenamehelpmsg "(Press Enter to retry, or Control-D to exit"
186#define vgetc(f) (void)getc(f)
194#if defined(__cplusplus)
195MIKTEX_BEGIN_EXTERN_C_BLOCK
198MIKTEXW2CCEEAPI(integer) miktex_zround(
double r);
200MIKTEX_END_EXTERN_C_BLOCK