#include <stdio.h>
#include <string.h>

#define MAX_ENTRIES 10000

typedef struct {
    char *name;
    char *val;
} entry;

char *makeword(char *line, char stop);
char *fmakeword(FILE *f, char stop, int *len);
char x2c(char *what);
void unescape_url(char *url);
void plustospace(char *str);


grava(entry *entries, int nro)
{
 register int j;
   FILE *fp3;
    char filename[256];
    char command[256];

    register int x;
    FILE *fp2;
     
           

   if(!(fp2 = fopen("teste.html", "a+")))
    
    {
	printf("erro: o arquivo nao pode ser criado\n");
        exit(1);

    }
    for ( x=0; x <= nro ; x++)
         fprintf(fp2, "%s : %s<br>\n", entries[x].name, entries[x].val);
    fprintf(fp2, "<p>");
    fclose(fp2);

 /*   sprintf(filename, "/tmp/mailin%d", (int)getpid());
    fp3 = fopen(filename, "w");
    if (fp3 != NULL)
    {

        for (j=0; j <= nro ; j++)
           fprintf(fp3, "\n %s :  %s", entries[j].name, entries[j].val);
        fclose(fp3);
        sprintf(command, "mail otsuka@inf.ufrgs.br < %s", filename);
        system(command);
        unlink(filename);
     }*/

}

/* ---------------------------------------------------------------
   FUNCAO....: main
   --------------------------------------------------------------- */
main(int argc, char *argv[])
{
   entry entries[MAX_ENTRIES];
   register int x, m=0;
   int cl;
   char *val, *name;

 
   cl = atoi(getenv("CONTENT_LENGTH"));

   printf("Content-type: text/html%c%c",10,10);

   for (x=0; cl && (!feof(stdin)); x++)
   {
      entries[x].val = fmakeword(stdin,'&',&cl);
      plustospace(entries[x].val);
      unescape_url(entries[x].val);
      entries[x].name = makeword(entries[x].val,'=');
      m=x;
   }
      grava(entries,m);
    
      for ( x=0; x <= m ; x++)
          printf("<b>%s</b> = %s<p>", entries[x].name, entries[x].val);

 
}

