unit carvars;

interface

{-------------------------------------------------------------}
{                     variaveis globais
{-------------------------------------------------------------}

const
    VERSAO = '3.0c';

    BUFSIZE = 4096;		                { tamanho do buffer de rede }
    CRLF: string = #$0d + #$0a;                 { fim de linha }
    MAXCARTAS = 1800;

type
    PNOMARQ = ^NOMARQ;
    NOMARQ = string [144];

    pregCarta = ^regCarta;
    regCarta = record
        nomArqCarta: string[12];
        datahora: longint;
    end;

   pListaCC = ^listaCC;
   listaCC = record
       nome: string[80];
       prox: pListaCC;
   end;

var
    sockSMTP, sockPOP3: integer;                { descritor dos soquetes }
    hostSMTP, hostPOP3: string;	                { nome dos hosts }
    portaSMTP, portaPOP3: integer;              { portas dos servidores }
    dirRecebe, dirEnvia: string;		{ diretorios de envio e recepcao }
    nomeUsuario: string;                        { nome do usuário }
    enderUsuario: string;                       { endereço eletrônico do usuário }
    contaUsuario: string;                       { nome da conta do usuário }
    meuNome: array [0..100] of char;            { título desta janela }
    nbaseRecebe, nbaseEnvia: integer;		{ numero base das cartas recebidas e enviadas }
    nbaseCopia: integer;                        { numero base das copias das cartas enviadas }
    computLocal: string;                        { nome do computador local }

    bufRecebe: array [0..BUFSIZE] of char;	{ buffer de recepcao de mensagens }
    bufEnvia:  array [0..BUFSIZE] of char;	{ buffer de envio de mensagens }
    numCartasPOP3: integer;	                { número de cartas a buscar e tamanho }
    numBytesPOP3: longint;                      { tamanho em bytes }
    interativoPOP3: boolean;			{ traz cartas perguntando antes }

    chaveMime: string;                          { chave para separacao de arquivos mime }
    narqMime: integer;                          { número de arquivos Mime a enviar }
    tabArqMime: array [1..30] of PNOMARQ;       { nome desses arquivos }
    tipoConvMime: array [1..30] of char;        { tipo de conversao }

    arqOrig, arqEnv: text;                      { arquivos de leitura e envio }
    arqBin: file;                               { arquivo binario }
    nomeArqApelidos: string;                    { nome do arquivo de apelidos }
    maxTamAuto: longint;                        { tamanho maximo para trazer automaticamente }
    nomeAssinatura: string;                     { nome do arquivo de assinatura }
    guardaEnviadas: boolean;                    { guarda cartas após transmiti-las }
    bipaNoSpeaker: boolean;                     { guarda cartas após transmiti-las }

    debug: boolean;                             { se depurando... }

    numRegs: integer;                           { registros do folheamento }
    regLido: array [1..MAXCARTAS] of pregCarta;
    textoBusc: string;                          { texto buscado }
    pCC, pBCC: pListaCC;                        { listas de copias carbono }

implementation
end.
