engine/engine/qclib/qccguistuff.c

45 lines
925 B
C
Raw Normal View History

#include "qcc.h"
#include "gui.h"
void GoToDefinition(char *name)
{
QCC_def_t *def;
QCC_dfunction_t *fnc;
char *strip; //trim whitespace (for convieniance).
while (*name <= ' ' && *name)
name++;
for (strip = name + strlen(name)-1; *strip; strip++)
{
if (*strip <= ' ')
*strip = '\0';
else //got some part of a word
break;
}
if (!globalstable.numbuckets)
{
MessageBox(NULL, "You need to compile first.", "Not found", 0);
return;
}
def = QCC_PR_GetDef(NULL, name, NULL, false, 0);
if (def)
{
if (def->type->type == ev_function && def->constant)
{
fnc = &functions[((int *)qcc_pr_globals)[def->ofs]];
if (fnc->first_statement>=0 && fnc->s_file)
{
EditFile(fnc->s_file+strings, statement_linenums[fnc->first_statement]);
return;
}
}
EditFile(def->s_file+strings, def->s_line-1);
}
else
MessageBox(NULL, "Global instance of var was not found", "Not found", 0);
}