22template<
class PROGRAM_CLASS>
class InputOutputImpl :
28 InputOutputImpl(PROGRAM_CLASS& program) :
33 C4P::C4P_signed32& loc()
override
35#if defined(MIKTEX_META_COMPILER) || defined(MIKTEX_TEX_COMPILER)
36 return program.curinput.locfield;
42 C4P::C4P_signed32& limit()
override
44#if defined(MIKTEX_META_COMPILER) || defined(MIKTEX_TEX_COMPILER)
45 return program.curinput.limitfield;
51 C4P::C4P_signed32 first()
override
53#if defined(MIKTEX_META_COMPILER) || defined(MIKTEX_TEX_COMPILER)
60 C4P::C4P_signed32& last()
override
65 C4P::C4P_signed32 bufsize()
override
67 return program.bufsize;
70 char*& nameoffile()
override
72 MIKTEX_ASSERT(
sizeof(program.nameoffile[0]) ==
sizeof(
char));
73 return reinterpret_cast<char*&
>(program.nameoffile);
76 C4P::C4P_signed32& namelength()
override
78 return program.namelength;
81 char* buffer()
override
83#if defined(MIKTEX_XETEX)
86 MIKTEX_ASSERT(
sizeof(program.buffer[0]) ==
sizeof(
char));
87 return reinterpret_cast<char*
>(program.buffer);
91 char* buffer2()
override
96 char32_t* buffer32()
override
98#if defined(MIKTEX_XETEX)
99 MIKTEX_ASSERT(
sizeof(program.buffer[0]) ==
sizeof(
char32_t));
100 return reinterpret_cast<char32_t*
>(program.buffer);
106 C4P::C4P_signed32& maxbufstack()
override
108#if defined(MIKTEX_META_COMPILER) || defined(MIKTEX_TEX_COMPILER)
109 return program.maxbufstack;
115 void overflow(C4P::C4P_signed32 s, C4P::C4P_integer n)
override
117#if defined(MIKTEX_META_COMPILER) || defined(MIKTEX_TEX_COMPILER)
118 program.overflow(s, n);
126 PROGRAM_CLASS& program;