36
36
print ("Try installing it with pip install pycparser or using your distributions package manager." )
37
37
sys .exit (1 )
38
38
39
- VERSION = "0.2 "
39
+ VERSION = "0.3 "
40
40
URL = "https://github.com/hpvb/dynload-wrapper"
41
41
NOW = datetime .now ().strftime ("%Y-%m-%d %H:%M:%S" )
42
42
PROGNAME = sys .argv [0 ]
@@ -147,24 +147,27 @@ def write_implementation(filename, soname, sysincludes, initname, functions, sym
147
147
for sym_definition in sym_definitions :
148
148
file .write (f"{ sym_definition } \n " )
149
149
150
- file .write (f"int initialize_{ initname } () {{\n " )
150
+ file .write (f"int initialize_{ initname } (int verbose ) {{\n " )
151
151
file .write (" void *handle;\n " )
152
152
file .write (" char *error;\n " )
153
153
file .write (f" handle = dlopen(\" { soname } \" , RTLD_LAZY);\n " )
154
154
file .write (" if (!handle) {\n " )
155
- file .write (" fprintf(stderr, \" %s\\ n\" , dlerror());\n " )
155
+ file .write (" if (verbose) {\n " )
156
+ file .write (" fprintf(stderr, \" %s\\ n\" , dlerror());\n " )
157
+ file .write (" }\n " )
156
158
file .write (" return(1);\n " )
157
159
file .write (" }\n " )
158
160
file .write (" dlerror();\n " )
159
161
160
162
for function in functions :
161
163
file .write (f"// { function } \n " )
162
- #file.write(f" *(void **) (&_sym_{function}) = dlsym(handle, \"{function}\");")
163
164
file .write (f" *(void **) (&{ function } _dylibloader_wrapper_{ initname } ) = dlsym(handle, \" { function } \" );\n " )
164
- file .write (" error = dlerror();\n " )
165
- file .write (" if (error != NULL) {\n " )
166
- file .write (" fprintf(stderr, \" %s\\ n\" , error);\n " )
167
- #file.write(" return(1);\n")
165
+ file .write (" if (verbose) {\n " )
166
+ file .write (" error = dlerror();\n " )
167
+ file .write (" if (error != NULL) {\n " )
168
+ file .write (" fprintf(stderr, \" %s\\ n\" , error);\n " )
169
+ #file.write(" return(1);\n")
170
+ file .write (" }\n " )
168
171
file .write (" }\n " )
169
172
170
173
file .write ("return 0;\n " );
@@ -185,7 +188,7 @@ def write_header(filename, sysincludes, initname, functions, sym_definitions):
185
188
for sym_definition in sym_definitions :
186
189
file .write (f"extern { sym_definition } \n " )
187
190
188
- file .write (f"int initialize_{ initname } ();\n " )
191
+ file .write (f"int initialize_{ initname } (int verbose );\n " )
189
192
190
193
file .write ("#ifdef __cplusplus\n " )
191
194
file .write ("}\n " )
0 commit comments