diff options
author | ridiculousfish <corydoras@ridiculousfish.com> | 2012-07-17 12:47:01 -0700 |
---|---|---|
committer | ridiculousfish <corydoras@ridiculousfish.com> | 2012-07-17 12:47:01 -0700 |
commit | d06d6c69645c4d355772cb19043469328c05ccc5 (patch) | |
tree | ba9f91943b94b9b59b3e781580eca5d3230ac493 /input.cpp | |
parent | 977a4477f646e344e66a7b0bc22e2e89b72d20db (diff) |
Various changes to reduce fish's compiled code size
OS X release build executable size dropped from 672k to 511k
Diffstat (limited to 'input.cpp')
-rw-r--r-- | input.cpp | 312 |
1 files changed, 155 insertions, 157 deletions
@@ -224,14 +224,7 @@ static std::vector<input_mapping_t> mapping_list; /* Terminfo map list */ static std::vector<terminfo_mapping_t> terminfo_mappings; -/** Add a new terminfo mapping */ -static inline void terminfo_add(const wchar_t *name, const char *seq) -{ - terminfo_mapping_t mapping = {name, seq}; - terminfo_mappings.push_back(mapping); -} -#define TERMINFO_ADD(key) do { terminfo_add((L ## #key)+4, key); } while (0) - +#define TERMINFO_ADD(key) { (L ## #key) + 4, key } /** @@ -614,52 +607,53 @@ bool input_mapping_get( const wcstring &sequence, wcstring &cmd ) */ static void input_terminfo_init() { - TERMINFO_ADD(key_a1); - TERMINFO_ADD(key_a3); - TERMINFO_ADD(key_b2); - TERMINFO_ADD(key_backspace); - TERMINFO_ADD(key_beg); - TERMINFO_ADD(key_btab); - TERMINFO_ADD(key_c1); - TERMINFO_ADD(key_c3); - TERMINFO_ADD(key_cancel); - TERMINFO_ADD(key_catab); - TERMINFO_ADD(key_clear); - TERMINFO_ADD(key_close); - TERMINFO_ADD(key_command); - TERMINFO_ADD(key_copy); - TERMINFO_ADD(key_create); - TERMINFO_ADD(key_ctab); - TERMINFO_ADD(key_dc); - TERMINFO_ADD(key_dl); - TERMINFO_ADD(key_down); - TERMINFO_ADD(key_eic); - TERMINFO_ADD(key_end); - TERMINFO_ADD(key_enter); - TERMINFO_ADD(key_eol); - TERMINFO_ADD(key_eos); - TERMINFO_ADD(key_exit); - TERMINFO_ADD(key_f0); - TERMINFO_ADD(key_f1); - TERMINFO_ADD(key_f2); - TERMINFO_ADD(key_f3); - TERMINFO_ADD(key_f4); - TERMINFO_ADD(key_f5); - TERMINFO_ADD(key_f6); - TERMINFO_ADD(key_f7); - TERMINFO_ADD(key_f8); - TERMINFO_ADD(key_f9); - TERMINFO_ADD(key_f10); - TERMINFO_ADD(key_f11); - TERMINFO_ADD(key_f12); - TERMINFO_ADD(key_f13); - TERMINFO_ADD(key_f14); - TERMINFO_ADD(key_f15); - TERMINFO_ADD(key_f16); - TERMINFO_ADD(key_f17); - TERMINFO_ADD(key_f18); - TERMINFO_ADD(key_f19); - TERMINFO_ADD(key_f20); + const terminfo_mapping_t tinfos[] = { + TERMINFO_ADD(key_a1), + TERMINFO_ADD(key_a3), + TERMINFO_ADD(key_b2), + TERMINFO_ADD(key_backspace), + TERMINFO_ADD(key_beg), + TERMINFO_ADD(key_btab), + TERMINFO_ADD(key_c1), + TERMINFO_ADD(key_c3), + TERMINFO_ADD(key_cancel), + TERMINFO_ADD(key_catab), + TERMINFO_ADD(key_clear), + TERMINFO_ADD(key_close), + TERMINFO_ADD(key_command), + TERMINFO_ADD(key_copy), + TERMINFO_ADD(key_create), + TERMINFO_ADD(key_ctab), + TERMINFO_ADD(key_dc), + TERMINFO_ADD(key_dl), + TERMINFO_ADD(key_down), + TERMINFO_ADD(key_eic), + TERMINFO_ADD(key_end), + TERMINFO_ADD(key_enter), + TERMINFO_ADD(key_eol), + TERMINFO_ADD(key_eos), + TERMINFO_ADD(key_exit), + TERMINFO_ADD(key_f0), + TERMINFO_ADD(key_f1), + TERMINFO_ADD(key_f2), + TERMINFO_ADD(key_f3), + TERMINFO_ADD(key_f4), + TERMINFO_ADD(key_f5), + TERMINFO_ADD(key_f6), + TERMINFO_ADD(key_f7), + TERMINFO_ADD(key_f8), + TERMINFO_ADD(key_f9), + TERMINFO_ADD(key_f10), + TERMINFO_ADD(key_f11), + TERMINFO_ADD(key_f12), + TERMINFO_ADD(key_f13), + TERMINFO_ADD(key_f14), + TERMINFO_ADD(key_f15), + TERMINFO_ADD(key_f16), + TERMINFO_ADD(key_f17), + TERMINFO_ADD(key_f18), + TERMINFO_ADD(key_f19), + TERMINFO_ADD(key_f20), /* I know of no keyboard with more than 20 function keys, so adding the rest here makes very little sense, since it will @@ -667,109 +661,113 @@ static void input_terminfo_init() but with no benefit. */ /* - TERMINFO_ADD(key_f21); - TERMINFO_ADD(key_f22); - TERMINFO_ADD(key_f23); - TERMINFO_ADD(key_f24); - TERMINFO_ADD(key_f25); - TERMINFO_ADD(key_f26); - TERMINFO_ADD(key_f27); - TERMINFO_ADD(key_f28); - TERMINFO_ADD(key_f29); - TERMINFO_ADD(key_f30); - TERMINFO_ADD(key_f31); - TERMINFO_ADD(key_f32); - TERMINFO_ADD(key_f33); - TERMINFO_ADD(key_f34); - TERMINFO_ADD(key_f35); - TERMINFO_ADD(key_f36); - TERMINFO_ADD(key_f37); - TERMINFO_ADD(key_f38); - TERMINFO_ADD(key_f39); - TERMINFO_ADD(key_f40); - TERMINFO_ADD(key_f41); - TERMINFO_ADD(key_f42); - TERMINFO_ADD(key_f43); - TERMINFO_ADD(key_f44); - TERMINFO_ADD(key_f45); - TERMINFO_ADD(key_f46); - TERMINFO_ADD(key_f47); - TERMINFO_ADD(key_f48); - TERMINFO_ADD(key_f49); - TERMINFO_ADD(key_f50); - TERMINFO_ADD(key_f51); - TERMINFO_ADD(key_f52); - TERMINFO_ADD(key_f53); - TERMINFO_ADD(key_f54); - TERMINFO_ADD(key_f55); - TERMINFO_ADD(key_f56); - TERMINFO_ADD(key_f57); - TERMINFO_ADD(key_f58); - TERMINFO_ADD(key_f59); - TERMINFO_ADD(key_f60); - TERMINFO_ADD(key_f61); - TERMINFO_ADD(key_f62); - TERMINFO_ADD(key_f63);*/ - TERMINFO_ADD(key_find); - TERMINFO_ADD(key_help); - TERMINFO_ADD(key_home); - TERMINFO_ADD(key_ic); - TERMINFO_ADD(key_il); - TERMINFO_ADD(key_left); - TERMINFO_ADD(key_ll); - TERMINFO_ADD(key_mark); - TERMINFO_ADD(key_message); - TERMINFO_ADD(key_move); - TERMINFO_ADD(key_next); - TERMINFO_ADD(key_npage); - TERMINFO_ADD(key_open); - TERMINFO_ADD(key_options); - TERMINFO_ADD(key_ppage); - TERMINFO_ADD(key_previous); - TERMINFO_ADD(key_print); - TERMINFO_ADD(key_redo); - TERMINFO_ADD(key_reference); - TERMINFO_ADD(key_refresh); - TERMINFO_ADD(key_replace); - TERMINFO_ADD(key_restart); - TERMINFO_ADD(key_resume); - TERMINFO_ADD(key_right); - TERMINFO_ADD(key_save); - TERMINFO_ADD(key_sbeg); - TERMINFO_ADD(key_scancel); - TERMINFO_ADD(key_scommand); - TERMINFO_ADD(key_scopy); - TERMINFO_ADD(key_screate); - TERMINFO_ADD(key_sdc); - TERMINFO_ADD(key_sdl); - TERMINFO_ADD(key_select); - TERMINFO_ADD(key_send); - TERMINFO_ADD(key_seol); - TERMINFO_ADD(key_sexit); - TERMINFO_ADD(key_sf); - TERMINFO_ADD(key_sfind); - TERMINFO_ADD(key_shelp); - TERMINFO_ADD(key_shome); - TERMINFO_ADD(key_sic); - TERMINFO_ADD(key_sleft); - TERMINFO_ADD(key_smessage); - TERMINFO_ADD(key_smove); - TERMINFO_ADD(key_snext); - TERMINFO_ADD(key_soptions); - TERMINFO_ADD(key_sprevious); - TERMINFO_ADD(key_sprint); - TERMINFO_ADD(key_sr); - TERMINFO_ADD(key_sredo); - TERMINFO_ADD(key_sreplace); - TERMINFO_ADD(key_sright); - TERMINFO_ADD(key_srsume); - TERMINFO_ADD(key_ssave); - TERMINFO_ADD(key_ssuspend); - TERMINFO_ADD(key_stab); - TERMINFO_ADD(key_sundo); - TERMINFO_ADD(key_suspend); - TERMINFO_ADD(key_undo); - TERMINFO_ADD(key_up); + TERMINFO_ADD(key_f21), + TERMINFO_ADD(key_f22), + TERMINFO_ADD(key_f23), + TERMINFO_ADD(key_f24), + TERMINFO_ADD(key_f25), + TERMINFO_ADD(key_f26), + TERMINFO_ADD(key_f27), + TERMINFO_ADD(key_f28), + TERMINFO_ADD(key_f29), + TERMINFO_ADD(key_f30), + TERMINFO_ADD(key_f31), + TERMINFO_ADD(key_f32), + TERMINFO_ADD(key_f33), + TERMINFO_ADD(key_f34), + TERMINFO_ADD(key_f35), + TERMINFO_ADD(key_f36), + TERMINFO_ADD(key_f37), + TERMINFO_ADD(key_f38), + TERMINFO_ADD(key_f39), + TERMINFO_ADD(key_f40), + TERMINFO_ADD(key_f41), + TERMINFO_ADD(key_f42), + TERMINFO_ADD(key_f43), + TERMINFO_ADD(key_f44), + TERMINFO_ADD(key_f45), + TERMINFO_ADD(key_f46), + TERMINFO_ADD(key_f47), + TERMINFO_ADD(key_f48), + TERMINFO_ADD(key_f49), + TERMINFO_ADD(key_f50), + TERMINFO_ADD(key_f51), + TERMINFO_ADD(key_f52), + TERMINFO_ADD(key_f53), + TERMINFO_ADD(key_f54), + TERMINFO_ADD(key_f55), + TERMINFO_ADD(key_f56), + TERMINFO_ADD(key_f57), + TERMINFO_ADD(key_f58), + TERMINFO_ADD(key_f59), + TERMINFO_ADD(key_f60), + TERMINFO_ADD(key_f61), + TERMINFO_ADD(key_f62), + TERMINFO_ADD(key_f63),*/ + TERMINFO_ADD(key_find), + TERMINFO_ADD(key_help), + TERMINFO_ADD(key_home), + TERMINFO_ADD(key_ic), + TERMINFO_ADD(key_il), + TERMINFO_ADD(key_left), + TERMINFO_ADD(key_ll), + TERMINFO_ADD(key_mark), + TERMINFO_ADD(key_message), + TERMINFO_ADD(key_move), + TERMINFO_ADD(key_next), + TERMINFO_ADD(key_npage), + TERMINFO_ADD(key_open), + TERMINFO_ADD(key_options), + TERMINFO_ADD(key_ppage), + TERMINFO_ADD(key_previous), + TERMINFO_ADD(key_print), + TERMINFO_ADD(key_redo), + TERMINFO_ADD(key_reference), + TERMINFO_ADD(key_refresh), + TERMINFO_ADD(key_replace), + TERMINFO_ADD(key_restart), + TERMINFO_ADD(key_resume), + TERMINFO_ADD(key_right), + TERMINFO_ADD(key_save), + TERMINFO_ADD(key_sbeg), + TERMINFO_ADD(key_scancel), + TERMINFO_ADD(key_scommand), + TERMINFO_ADD(key_scopy), + TERMINFO_ADD(key_screate), + TERMINFO_ADD(key_sdc), + TERMINFO_ADD(key_sdl), + TERMINFO_ADD(key_select), + TERMINFO_ADD(key_send), + TERMINFO_ADD(key_seol), + TERMINFO_ADD(key_sexit), + TERMINFO_ADD(key_sf), + TERMINFO_ADD(key_sfind), + TERMINFO_ADD(key_shelp), + TERMINFO_ADD(key_shome), + TERMINFO_ADD(key_sic), + TERMINFO_ADD(key_sleft), + TERMINFO_ADD(key_smessage), + TERMINFO_ADD(key_smove), + TERMINFO_ADD(key_snext), + TERMINFO_ADD(key_soptions), + TERMINFO_ADD(key_sprevious), + TERMINFO_ADD(key_sprint), + TERMINFO_ADD(key_sr), + TERMINFO_ADD(key_sredo), + TERMINFO_ADD(key_sreplace), + TERMINFO_ADD(key_sright), + TERMINFO_ADD(key_srsume), + TERMINFO_ADD(key_ssave), + TERMINFO_ADD(key_ssuspend), + TERMINFO_ADD(key_stab), + TERMINFO_ADD(key_sundo), + TERMINFO_ADD(key_suspend), + TERMINFO_ADD(key_undo), + TERMINFO_ADD(key_up) + }; + const size_t count = sizeof tinfos / sizeof *tinfos; + terminfo_mappings.reserve(terminfo_mappings.size() + count); + terminfo_mappings.insert(terminfo_mappings.end(), tinfos, tinfos + count); } const wchar_t *input_terminfo_get_sequence( const wchar_t *name ) |