Обновление "хешегенератора"
Хоть true inline — и хорошо, но больно уж неудобно пользоваться и есть шанс, что сгенерировав код, затрешь свои изменения. Поэтому я решил функции делать "слабыми синонимами": __attribute__ ((weak, alias ("__f1"))) на функцию __f1, которая просто возвращает 1. Функцию parsecmd упростил (теперь она не выкидывает пробелы, чтобы разработчик мог сложные команды типа "set ip" или "set param" отправить, вычленять команду из строки ввода — задача разработчика).
Заодно добавил проверку на совпадение имен функций для разных команд (скажем, "sim-key", "sim_key", "sim key" и "sim'key" дадут одну и ту же функцию fn_sim_key). В таком случае утилита выдаст матюк:
И благополучно отвалится.
( tl;dr )
Заодно добавил проверку на совпадение имен функций для разных команд (скажем, "sim-key", "sim_key", "sim key" и "sim'key" дадут одну и ту же функцию fn_sim_key). В таком случае утилита выдаст матюк:
Have two similar function names for 'sim key' and 'sim-key': 'fn_sim_key' Have two similar function names for 'sim-key' and 'sim'key': 'fn_sim_key' Have two similar function names for 'sim'key' and 'sim_key': 'fn_sim_key' Can't generate code when names of some functions matches
И благополучно отвалится.
( tl;dr )