diff --git a/src/apps/bin/keymap/Keymap.cpp b/src/apps/bin/keymap/Keymap.cpp index c8fbaff7bb..917c681fa9 100644 --- a/src/apps/bin/keymap/Keymap.cpp +++ b/src/apps/bin/keymap/Keymap.cpp @@ -664,6 +664,9 @@ Keymap::LoadSource(FILE * f) } fCharsSize = offset; + + if (fKeys.version != 3) + return B_ERROR; return B_OK; } diff --git a/src/apps/bin/keymap/key_map.cpp b/src/apps/bin/keymap/key_map.cpp index 5155f40a4b..ee37605a39 100644 --- a/src/apps/bin/keymap/key_map.cpp +++ b/src/apps/bin/keymap/key_map.cpp @@ -59,7 +59,10 @@ main(int argc, char **argv) return 0; } else if (operation == 'l') { Keymap keymap; - keymap.LoadSource(stdin); + if (keymap.LoadSource(stdin)!=B_OK) { + printf("error when loading the keymap\n"); + return 1; + } keymap.SaveAsCurrent(); printf("Key map loaded.\n"); return 0; @@ -71,17 +74,22 @@ main(int argc, char **argv) entry_ref ref; get_ref_for_path(argv[i], &ref); Keymap keymap; - keymap.LoadSourceFromRef(ref); - + if (keymap.LoadSourceFromRef(ref)!=B_OK) { + printf("error when loading the keymap\n"); + return 1; + } keymap.Save(outputRef); return 0; } else if (operation == 'h') { entry_ref ref; get_ref_for_path(argv[i], &ref); Keymap keymap; - keymap.LoadSourceFromRef(ref); - - keymap.SaveAsHeader(outputRef); + if (keymap.LoadSourceFromRef(ref)!=B_OK) { + printf("error when loading the keymap\n"); + return 1; + } + keymap.Dump(); + keymap.SaveAsHeader(outputRef); return 0; } else break;