aboutsummaryrefslogtreecommitdiffstats
path: root/prototypes/connections/edit-module.c
diff options
context:
space:
mode:
Diffstat (limited to 'prototypes/connections/edit-module.c')
-rw-r--r--prototypes/connections/edit-module.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/prototypes/connections/edit-module.c b/prototypes/connections/edit-module.c
index 9305923..3ce272e 100644
--- a/prototypes/connections/edit-module.c
+++ b/prototypes/connections/edit-module.c
@@ -89,19 +89,11 @@ int main(int argc, char **argv) {
if (!show && !number(argv[at + 2], INT64_MAX, &expected)) goto usage;
if (edit && (!number(argv[at + 3], UINT32_MAX, &offset) || !number(argv[at + 4], UINT32_MAX, &remove))) goto usage;
- static unsigned char image[1 << 17];
static PureModule module;
char error[160];
- FILE *source = fopen(module_path, "rb");
- size_t image_size = source ? fread(image, 1, sizeof(image), source) : 0;
- if (!source || ferror(source) || image_size == sizeof(image)) {
- if (source) fclose(source);
- fputs("Module: cannot read module\n", stderr);
- return 2;
- }
- fclose(source);
- if (pure_module_load(image, image_size, &module, error, sizeof(error)) != PURE_OK) {
- fprintf(stderr, "Module: %s\n", error);
+ PureResult read = pure_module_read(module_path, &module, error, sizeof(error));
+ if (read != PURE_OK) {
+ fprintf(stderr, "Module: %s\n", read == PURE_NOT_FOUND ? "cannot read module" : error);
return 2;
}
int input = pure_module_input(&module, show ? "show" : "edit");