MiKTeX 26.5-next
A scalable TeX distribution
Loading...
Searching...
No Matches
lib.h
Go to the documentation of this file.
1
13
15
16#pragma once
17
18#if !defined(CD8636162364443B94377CDABD5ABD8F)
20#define CD8636162364443B94377CDABD5ABD8F
22
23#include "../miktex/W2C/pre.h"
24
25#if defined(__cplusplus)
28MIKTEX_WEB2C_BEGIN_NAMESPACE;
29
30MIKTEXW2CCEEAPI(void) ChangeRecorderFileName(const char* fileName);
31MIKTEXW2CCEEAPI(int) OpenInput(FILE** ppfile, kpse_file_format_type format, const char* modeString);
32MIKTEXW2CCEEAPI(void) RecordFileName(const char* path, MiKTeX::Core::FileAccess access);
33MIKTEXW2CCEEAPI(MiKTeX::Util::PathName) GetOutputDirectory();
34MIKTEXW2CCEEAPI(void) SetOutputDirectory(const MiKTeX::Util::PathName& path);
35
36MIKTEX_WEB2C_END_NAMESPACE;
37#endif
38
39MIKTEX_BEGIN_EXTERN_C_BLOCK
40
41MIKTEXW2CCEEAPI(void) miktex_web2c_change_recorder_file_name(const char* path);
42MIKTEXW2CCEEAPI(void) miktex_web2c_record_file_name(const char* path, int reading);
43MIKTEXW2CCEEAPI(integer) miktex_zround(double r);
44MIKTEXW2CCEEAPI(void) miktex_setupboundvariable(integer* pVar, const char* lpszVarName, integer dflt);
45MIKTEXW2CCEEAPI(const char*) miktex_web2c_get_output_directory();
46MIKTEXW2CCEEAPI(void) miktex_web2c_set_output_directory(const char* path);
47extern MIKTEXW2CDATA(boolean) miktex_web2c_recorder_enabled;
48extern MIKTEXW2CDATA(const_string) miktex_web2c_version_string;
49extern MIKTEXW2CDATA(string) miktex_web2c_fullnameoffile;
50
54
55MIKTEX_END_EXTERN_C_BLOCK
56
57#if defined(__cplusplus)
58inline int open_input(FILE** f_ptr, kpse_file_format_type filefmt, const char* fopen_mode)
59{
60 return MiKTeX::Web2C::OpenInput(f_ptr, filefmt, fopen_mode);
61}
62#endif
63
64static inline void close_file(FILE* f)
65{
66 if (f != 0)
67 {
68 fclose(f);
69 }
70}
71
72#if defined(__cplusplus)
73inline void recorder_change_filename(const char* new_name)
74{
75 MiKTeX::Web2C::ChangeRecorderFileName(new_name);
76}
77#else
78static inline void recorder_change_filename(const char* new_name)
79{
80 miktex_web2c_change_recorder_file_name(new_name);
81}
82#endif
83
84#if defined(__cplusplus)
85inline void recorder_record_input(const char* fname)
86{
87 MiKTeX::Web2C::RecordFileName(fname, MiKTeX::Core::FileAccess::Read);
88}
89#else
90static inline void recorder_record_input(const char* fname)
91{
92 miktex_web2c_record_file_name(fname, 1);
93}
94#endif
95
96#if defined(__cplusplus)
97inline void recorder_record_output(const char* fname)
98{
99 MiKTeX::Web2C::RecordFileName(fname, MiKTeX::Core::FileAccess::Write);
100}
101#else
102static inline void recorder_record_output(const char* fname)
103{
104 miktex_web2c_record_file_name(fname, 0);
105}
106#endif
107
108#define output_directory miktex_web2c_get_output_directory()
109
110#if defined(__cplusplus)
111static inline void printversionandexit(const_string banner, const_string copyright_holder, const_string author, const_string extra_info)
112{
113 // TODO
114 throw 0;
115}
116#endif
117
118#if defined(__cplusplus)
119#else
120static inline void setupboundvariable(integer* var, const char* var_name, integer dflt)
121{
122 miktex_setupboundvariable(var, var_name, dflt);
123}
124#endif
125
126#if defined(__cplusplus)
127constexpr const char* versionstring = " (" MIKTEX_PRODUCTNAME_STR " " MIKTEX_DISPLAY_VERSION_STR ")";
128#endif
129
130static inline integer zround(double r)
131{
132 return miktex_zround(r);
133}
134
135#define recorder_enabled miktex_web2c_recorder_enabled
136#define fullnameoffile miktex_web2c_fullnameoffile
137
139
140#endif
141
Instances of this class can be used to store path names.
Definition PathName.h:64
FileAccess
File access options.
Definition File.h:72
@ Write
Write access.
Definition File.h:77
@ Read
Read access.
Definition File.h:75
Web2C emulation.