libcvd-members
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libcvd-members] Functions in gvars


From: Edward Rosten
Subject: [libcvd-members] Functions in gvars
Date: Fri, 8 Jun 2007 17:47:05 -0600 (MDT)


Here's a minimal implementations of functions in GVars:





///////////////////////////////////////////////////////////////////////////////////////////////////
static string lastfunc="";
map<string, vector<string> > functions;

void runfunc(void*, string name, string args)
{
        vector<string>& v = functions[name];
        for(unsigned int i=0; i < v.size(); i++)
        {
                GUI.ParseLine(v[i]);
        }
}

void function(void*, string name, string args)
{

        vector<string> vs = ChopAndUnquoteString(args);
        if(vs.size() != 1)
        {
                cerr << "Error: " << name << " takes 1 argument: " << name << " 
name\n";
                return;
        }

        lastfunc=vs[0];

        GUI.RegisterCommand(vs[0], runfunc);
}

void pushfuncline(void*, string, string line)
{
        if(lastfunc == "")
        {
                cerr << "Error: no function.\n";
                return;
        }
        else
                functions[lastfunc].push_back(line);
}




//////////////
////////////// Stuff
//////////////

        GUI.RegisterCommand("function", function);
        GUI.RegisterCommand("+", pushfuncline);

///////////////////////////////////////////////////////////////////////////////////////////////////


Now use define like this:

function hellworld
+ echo hello
+ echo world


-Ed





reply via email to

[Prev in Thread] Current Thread [Next in Thread]