#include <stdio.h>
#ifndef NO_STDLIB_H
#include <stdlib.h>
#endif
#include "cgi-util.h"

#define MAX_ENTRIES 1000


int main(int argc, char *argv[])
{
entry entries[MAX_ENTRIES];
int x, m, p;
char op1[80], op2[80], opr[80];
int v1, v2, res;

	/**CGI: inicializar o modulo de CGI **/
	m = cgi_init(entries, sizeof(entries)/sizeof(entries[0]));
	if (m < 0)
	{
		/**CGI: reportar erro no modulo **/
		cgi_send_error(m);
		exit(1);
	}

	/**CGI: indicar tipo de conteudo da resposta **/  
	cgi_send_header(HEADER_TYPE_TEXT_HTML);
	
	/**CGI: procurar por um valor **/
	cgi_get_value_from_key(op1, sizeof(op1), "op1", 0, entries, m);
	cgi_get_value_from_key(op2, sizeof(op2), "op2", 0, entries, m);
	cgi_get_value_from_key(opr, sizeof(opr), "operacao", 0, entries, m);

	/* efectuar calculo */
	sscanf(op1, "%d", &v1);
	sscanf(op2, "%d", &v2);
	switch (opr[0])
	{
	case '+':
		res = v1 + v2;
		break;
	case '-':
		res = v1 - v2;
		break;
	case '*':
		res = v1 * v2;
		break;
	case '/':
		res = v1 / v2;
		break;
	}
	
	/* construir documento */
	printf("<H1>O resultado da opera&ccedil;&atilde;o &eacute;</H1>");
	printf("%d %s %d = %d%c", v1, opr, v2, res, 10);
	
	/**CGI: libertar recursos do modulo **/
	cgi_uninit(entries, m);		return 0;
}

