Skip to content

Commit cb59cc4

Browse files
committed
Add 'verbose' mode to initialize.
When this flag is set warnings about missing symbols are printed at runtime. Otherwise be silent.
1 parent 2d67379 commit cb59cc4

File tree

4 files changed

+16
-13
lines changed

4 files changed

+16
-13
lines changed

examples/alsa.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ unsigned char buffer[16*1024]; /* some random data */
55

66
int main(void)
77
{
8-
if (initialize_asound()) {
8+
if (initialize_asound(0)) {
99
printf("Failed to load libasound\n");
1010
return 1;
1111
}

examples/paplay.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -214,12 +214,12 @@ enum {
214214

215215

216216
int main(int argc, char *argv[]) {
217-
if (initialize_pulse()) {
217+
if (initialize_pulse(0)) {
218218
printf("Failed to initialize pulse\n");
219219
return 1;
220220
}
221221

222-
if (initialize_sndfile()) {
222+
if (initialize_sndfile(0)) {
223223
printf("Failed to initialize sndfile\n");
224224
return 1;
225225
}

examples/xlib.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ static int do_buttonpress(XButtonEvent*, int, int);
1717

1818
int main(int argc, char *argv [])
1919
{
20-
if(initialize_xlib()) {
20+
if(initialize_xlib(0)) {
2121
printf("Error initializing Xlib\n");
2222
return 1;
2323
}

generate-wrapper.py

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
print("Try installing it with pip install pycparser or using your distributions package manager.")
3737
sys.exit(1)
3838

39-
VERSION="0.2"
39+
VERSION="0.3"
4040
URL="https://github.com/hpvb/dynload-wrapper"
4141
NOW=datetime.now().strftime("%Y-%m-%d %H:%M:%S")
4242
PROGNAME=sys.argv[0]
@@ -147,24 +147,27 @@ def write_implementation(filename, soname, sysincludes, initname, functions, sym
147147
for sym_definition in sym_definitions:
148148
file.write(f"{sym_definition}\n")
149149

150-
file.write(f"int initialize_{initname}() {{\n")
150+
file.write(f"int initialize_{initname}(int verbose) {{\n")
151151
file.write(" void *handle;\n")
152152
file.write(" char *error;\n")
153153
file.write(f" handle = dlopen(\"{soname}\", RTLD_LAZY);\n")
154154
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")
156158
file.write(" return(1);\n")
157159
file.write(" }\n")
158160
file.write(" dlerror();\n")
159161

160162
for function in functions:
161163
file.write(f"// {function}\n")
162-
#file.write(f" *(void **) (&_sym_{function}) = dlsym(handle, \"{function}\");")
163164
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")
168171
file.write(" }\n")
169172

170173
file.write("return 0;\n");
@@ -185,7 +188,7 @@ def write_header(filename, sysincludes, initname, functions, sym_definitions):
185188
for sym_definition in sym_definitions:
186189
file.write(f"extern {sym_definition}\n")
187190

188-
file.write(f"int initialize_{initname}();\n")
191+
file.write(f"int initialize_{initname}(int verbose);\n")
189192

190193
file.write("#ifdef __cplusplus\n")
191194
file.write("}\n")

0 commit comments

Comments
 (0)