The char* is passed in case the commands need to sub-parse the arguments. Very useful for QA. For example, the could create a command called "click", and the command could receive arguments.
using my own dprintf
and some compilations issues on Linux