WIP of header generation

git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8728 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval 2004-08-30 16:21:47 +00:00
parent 502f746720
commit 0a05ee797d
3 changed files with 35 additions and 1 deletions

View File

@ -693,6 +693,30 @@ Keymap::Save(entry_ref &ref)
}
const char header_header[] =
"/*\tHaiku \t*/"
"/*\n"
" This file is generated automatically. Don't edit ! \n"
"*/\n";
void
Keymap::SaveAsHeader(entry_ref &ref)
{
status_t err;
BFile file(&ref, B_WRITE_ONLY | B_CREATE_FILE | B_ERASE_FILE );
if ((err = file.InitCheck()) != B_OK) {
printf("error %s\n", strerror(err));
return;
}
file.Write(header_header, strlen(header_header));
}
/* we need to know if a key is a modifier key to choose
a valid key when several are pressed together
*/

View File

@ -29,6 +29,7 @@ public:
status_t LoadSource(FILE *f);
status_t LoadSourceFromRef(entry_ref &ref);
void SaveAsCurrent();
void SaveAsHeader(entry_ref &ref);
status_t Use();
void Dump();
bool IsModifierKey(uint32 keyCode);

View File

@ -26,6 +26,7 @@ static void usage(char *prog)
" -l # load key map from standard input\n"
" -r # restore system default key map\n"
" -c # compile source keymap to binary\n"
" -h # compile source keymap to header\n"
" -o # change output file to output_file (default:keymap.out)\n"
, prog);
}
@ -70,7 +71,15 @@ int main(int argc, char **argv)
keymap.Save(output_ref);
return 0;
} else
} else if (operation == 'h') {
entry_ref ref;
get_ref_for_path(argv[i], &ref);
Keymap keymap;
keymap.LoadSourceFromRef(ref);
keymap.SaveAsHeader(output_ref);
return 0;
} else
break;
}
}