
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "c_calls.h"

/* Allocate enough stack space to support recursion. */
#ifdef __TURBOC__
extern unsigned _stklen = 32000;
#endif

void main(int argc, char *argv[])
{
LIST fcn_list = NULL;

if (argc != 2)
     error("c_calls:  usage:  c_calls <.asm filename>");

build_graph(&fcn_list, argv[1]);  /* Determine calling relationships. */

if (fcn_list != NULL)
     print_all_calls(fcn_list);  /* Print the fcn call tree. */
}


void error(const char *message)

/* Exit after giving an error message. */

{
printf("Error:  %s\n", message);
exit(-1);
}


int namecmp(const char *name1, const char *name2)

/*
Identical to stricmp, except that "main" is considered
less than any other string.
*/

{
if (stricmp(name1, "main") == 0)
     return -1;
else
     if (stricmp(name2, "main") == 0)
          return 1;
     else return stricmp(name1, name2);
}
