Was ich als Benutzer mit einem Befehl .createpd anfangen soll, habe ich zwar noch nicht ganz verstanden, aber vielleicht ist ja einfach dein Bedienkonzept etwas anders.
Im großen und ganzen denke ich auf den ersten Blick, daß du eine gesunde Grundlage zu haben scheinst. Aber richtig schön was zum herzeigen hat man natürlich erst, wenn es auch Programme gibt. Insofern warte ich mal gespannt auf die nächste Version.
Beim Code überfliegen ist mir noch folgender potentieller Buffer Overflow aufgefallen (wenn ein Leerstring übergeben wird):
bool ishex(char *string)
{
if(string[1] == 'x') string+=2; //wenn ein x, dann überspringen[(code]