1
This commit is contained in:
Alex Yatskov 2017-02-12 10:24:57 -08:00
parent 06672bb78c
commit 1aa176f1cf
3 changed files with 28 additions and 20 deletions

9
book.c
View File

@ -263,6 +263,7 @@ static void subbook_encode(json_t* subbook_json, const Book_Subbook* subbook, in
json_object_set_new(subbook_json, "fonts", font_json_array); json_object_set_new(subbook_json, "fonts", font_json_array);
} }
if (flags & FLAG_ENTRIES) {
json_t* entry_json_array = json_array(); json_t* entry_json_array = json_array();
for (int i = 0; i < subbook->entry_count; ++i) { for (int i = 0; i < subbook->entry_count; ++i) {
json_t* entry_json = json_object(); json_t* entry_json = json_object();
@ -271,6 +272,7 @@ static void subbook_encode(json_t* subbook_json, const Book_Subbook* subbook, in
} }
json_object_set_new(subbook_json, "entries", entry_json_array); json_object_set_new(subbook_json, "entries", entry_json_array);
}
} }
static void book_encode(json_t* book_json, const Book* book, int flags) { static void book_encode(json_t* book_json, const Book* book, int flags) {
@ -367,7 +369,7 @@ static void subbook_font_import(Book_Font* font, EB_Book* eb_book, EB_Font_Code
Book_Glyph* glyph = glyph_set->glyphs + glyph_set->count; Book_Glyph* glyph = glyph_set->glyphs + glyph_set->count;
glyph->code = font_code; glyph->code = font_code;
memset(glyph->bitmap, 0, sizeof(glyph->bitmap)); memset(glyph->bitmap, 0, glyph_set->bitmap_size);
if (eb_narrow_font_character_bitmap(eb_book, font_code, glyph->bitmap) != EB_SUCCESS) { if (eb_narrow_font_character_bitmap(eb_book, font_code, glyph->bitmap) != EB_SUCCESS) {
break; break;
} }
@ -422,7 +424,7 @@ static void subbook_font_import(Book_Font* font, EB_Book* eb_book, EB_Font_Code
Book_Glyph* glyph = glyph_set->glyphs + glyph_set->count; Book_Glyph* glyph = glyph_set->glyphs + glyph_set->count;
glyph->code = font_code; glyph->code = font_code;
memset(glyph->bitmap, 0, sizeof(glyph->bitmap)); memset(glyph->bitmap, 0, glyph_set->bitmap_size);
if (eb_wide_font_character_bitmap(eb_book, font_code, glyph->bitmap) != EB_SUCCESS) { if (eb_wide_font_character_bitmap(eb_book, font_code, glyph->bitmap) != EB_SUCCESS) {
break; break;
} }
@ -450,6 +452,7 @@ static void subbook_import(Book_Subbook* subbook, EB_Book* eb_book, EB_Hookset*
} }
} }
if (flags & FLAG_ENTRIES) {
if (eb_search_all_alphabet(eb_book) == EB_SUCCESS) { if (eb_search_all_alphabet(eb_book) == EB_SUCCESS) {
subbook_entries_import(subbook, eb_book, eb_hookset); subbook_entries_import(subbook, eb_book, eb_hookset);
} }
@ -461,8 +464,8 @@ static void subbook_import(Book_Subbook* subbook, EB_Book* eb_book, EB_Hookset*
if (eb_search_all_asis(eb_book) == EB_SUCCESS) { if (eb_search_all_asis(eb_book) == EB_SUCCESS) {
subbook_entries_import(subbook, eb_book, eb_hookset); subbook_entries_import(subbook, eb_book, eb_hookset);
} }
}
memset(subbook->fonts, 0, sizeof(subbook->fonts));
if (flags & FLAG_FONTS) { if (flags & FLAG_FONTS) {
const EB_Font_Code codes[] = {EB_FONT_16, EB_FONT_24, EB_FONT_30, EB_FONT_48}; const EB_Font_Code codes[] = {EB_FONT_16, EB_FONT_24, EB_FONT_30, EB_FONT_48};
for (unsigned i = 0; i < ARRSIZE(codes); ++i) { for (unsigned i = 0; i < ARRSIZE(codes); ++i) {

4
main.c
View File

@ -36,6 +36,7 @@ int main(int argc, char *argv[]) {
{ "markup", no_argument, NULL, 'm' }, { "markup", no_argument, NULL, 'm' },
{ "positions", no_argument, NULL, 's' }, { "positions", no_argument, NULL, 's' },
{ "fonts", no_argument, NULL, 'f' }, { "fonts", no_argument, NULL, 'f' },
{ "entries", no_argument, NULL, 'e' },
{ NULL, 0, NULL, 0 }, { NULL, 0, NULL, 0 },
}; };
@ -57,6 +58,9 @@ int main(int argc, char *argv[]) {
case 'f': case 'f':
flags |= FLAG_FONTS; flags |= FLAG_FONTS;
break; break;
case 'e':
flags |= FLAG_ENTRIES;
break;
default: default:
return 1; return 1;
} }

1
util.h
View File

@ -34,6 +34,7 @@ enum {
FLAG_HOOK_MARKUP = 1 << 1, FLAG_HOOK_MARKUP = 1 << 1,
FLAG_POSITIONS = 1 << 2, FLAG_POSITIONS = 1 << 2,
FLAG_FONTS = 1 << 3, FLAG_FONTS = 1 << 3,
FLAG_ENTRIES = 1 << 4,
}; };
#endif /* UTIL_H */ #endif /* UTIL_H */