
CAMBIOS
=======
-- Cambios de Suck-3.8.0 -> Suck-3.9.0

active.c -- nntp_active(), read_active() - cre, lee la lista activa de
	un host NNTP o archivo local respectivamente.

	get_message_index_active() - cambi a llamar nntp_active()
	o read_active()

	get_msgids() - aadido nl para imprimir la lnea original, para
	que se ve bien sucknewsrc.

batch.c - do_rnewsbatch() - aadido cdigo para comprobar si exista el
	archivo batch y fallar si ya existe.  Aadi cdigo para verificar
	si ha surjido un error de escritura.  Reescribi fclose() para que
	estn en el lugar correcto.

	do_innbatch() - aadido cdigo para comprobar si haya un error de
	escritura.

both.c - do_debug_binary() - cre, descargarse sin filtrar va impresin.
	Necesario si se recibe una cadena con NULL.

	findnl() - cre, reemplaza la llamada a strstr() dentro de sgetline()
	para manejar los NULL dentro de un mensaje.

	sgetline() - aadido una llamada a do_debug_binary() - para poder ver
	si recibo un NULL en recv().

killfile.c - get_one_article_kill() - aadido cdigo para comprobar si ha
	fallado al escribir la cabecera al disco.  Modific para manejar
	la nueva secuencia de llamada para chk_msg_kill*().  Aadi 
	cdigo para recibir el cuerpo de un artculo, si no ha sido ya 
	bajado en check_a_group().  Aadi algn cdigo para funcionar
	con UNEXPECTEDANS en get_chunk_mem.

	chk_msg_kill() - modific para tratar la nueva secuencia de llamadas,
	para poder pasar master a check_a_group().

	get_chunk_mem - renombr de get_a_chunk_mem().  Aadi un parametro
	de tamao para seguir el tamao del buffer.  Cambi strcpy() a
	memmove() en caso de NULLs dentro de una cadena.  Aadi cdigo
	para recuperar la cabecera y cuerpo en buffers diferentes. Aadi
	un NULO al final del buffer para que el "logging" es correcto.
	Aadi cdigo para tratar retval y devolver UNEXPECTANS si el
	artculo no es disponible en el servidor.

	check_a_group() - aadido cdigo para comprobar el cuerpo y su
	tamao.  Movi algn cdigo a regex_block().  Recodific para
	contemplar multiples comprobaciones de cabecera y cuerpo.

	parse_a_file(), do_debug() - aadido cdigo para tratar los
	parametros body, bodysize> y bodsize<.  Aadi cdigo para
	tratar multiples comprobaciones de cabecera y cuerpo.

	regex_block() - cre.  Este cdigo comprobar el bloque entero
	(cabecera/cuerpo) para la cadena/regex deseado.

	debug_one_kill() - cre, imprime estructura OneKill, movi
	algo del cdigo de print_debug() aqu para hacer las impresiones
	ms uniformes y a facilitar la lectura del cdigo.

        regex_scan() - arregl un bug en el mensaje de error message para
	una expresin regular mala.
        Aadi cdigo para liberar la estructura si hay un error en la rutina.
	Aadi codigo para tratar el uso de un parametro de regex extendido.

        pass_one() - aadido cdigo para tratar el uso del parametro de
	regex extendido.

killprg.c - chk_msg_kill_fork() - modific para tratar la nueva secuencia
	de llamada, necesario porque chg_msg_kill necesit master.

lmove.c - read_active(), rewrite_active() - intercambiar los parametros
	lownr and highnr para coincidir con el formato real de active.

        load_phrases() - aadido cdigo para comprobar la versin correcta,
	arregl un bug al no seguir en lmove.

        find_groups() - arregl un bug, al cambiar linein[] a static.

makephrases.c - aadido cdigo para escribir la versin al archivo de frases.

rpost.c - aadido ms comprobaciones a varios sgetlines() para tratar el 
	caso de errores por timeout.

load_phrases() - aadido cdigo para comprobar la versin.

        do_batch() - aadi cdigo para escribir el resto de los artculos
	a un archivo fallado si perdemos la conexin.

suck_config.h - Mover DEBUG1 de suck_config.h al Makefile debug_both

suck.c - main() - aadido macros TRUE_STR() y NULL_STR() para
	limpiar la salida de depuracin.  Arreglado un bug en errormsg
	si localhost no est definido.  Movido la salida de depuracion
	para que imprima si hay un error a parsear los argumentos.
	Aadido cdigo para tratar la opcin chk_msgid.  Aadido
	cdigo para tratar la opcin -AL, y leer el arhivo active.
	Aadido cdigo para tratar la opcin -B, para comprobar si
	hay mensajes que haban quedado, y tratarlos antes de empezar.

        do_supplemental() - aadida una opcin -z para evitar la eliminacin
	de artculos duplicados.  Est pensado en principio para mquinas
	muy lentas, donde el proceso de eliminar duplicados tarda ms tiempo
	que el tiempo para bajar los mensajes.  No recomiendo est opcin.

        allocnode() - aadido cdigo para tratar la opcin -x, chk_msgid.
	Si est habilitada esta opcin, suck no comprueba la parte final
	del MsgID para verificar que terminar con un '>' como es debido.
	Es para algunos servidores tontos que truncan la informacin XHDR
	a 72 caracteres.  Arreglado un bug introducido al aadir cdigo
	para recuperar el nmero del mensaje que provoc el no procesamiento
	del archivo supplemental.

        get_a_chunk() - cambiado fputs por fwrite(), para tratar NULLs.
	Aadido cdigo para comprobar el val de retorno de fwrite() en
	caso de llenar el disco.

        load_phrases() - aadido cdigo para comprobar la versin correcta
	y arregaldo un bug al no pasar las frases de lmove.

        get_articles() - movido la comprobacin mandatorio al cdigo killfile,
	por motivos del pipeliningn en el cdigo non-killfile.

testhost.c - main() - adidada una opcin -q, que suprime los mensajes de 
	conexin, y solo muestran el resultado del comando.

        load_phrases() - aadido cdigo para comprobar la versin correcta
	del archivo de frases.

-- Cambios de Suck-3.7.0 -> Suck-3.8.0

active.c - read_ignore() - mover fclose() para no intentar cerrar un
	archivo que es NULL.

batch.c - batch_lmove() - cambi la opcin batchfile para pasar el
	nombre de archivo de configuracin va el nombre de archivo
	active.  Ahora lmove usa el archivo de configuracin para
	saber el nombre de archivo active.

killfile.c - parse_a_file() - aadido cdigo para funcionar con comentarios.

lmove.c - main(), rewrite_active(), load_active(), scan_args() -
        aadido opcin -c que permite especificar el nombre del archivo de
	configuracin.  Modificado para que el archivo active parece igual
	que el archivo activo "estandar", que engrupa campos de nombre, bajo,
	alto, y estado.
        Este implica que he tenido que mover BASE= a otro archivo, el archivo
	de configuracin.  Tambin carga ACTIVE= al especificar el lugar del
	archivo active.
        load_config() - cre, carga el archivo de configuracin.

rpost.c - main(), send_command() - aadido cdigo para usar la opcin -u
       nueva, auto_authenticate.  Esta opcin envia de manera automatica
       el comando authinfo del usuario al conectar al host remoto.

       do_authenticate() - aadido, usado por la opcin -u.  send_command() y
       do_authenticate() son copias identicas de lo que esta en suck.c, excepto
       con los nombres de los variables cambiados.

suck.c - get_one_article() - mover salida de '.' final para que solo
	aparece si se baja el artculo correctamente.

        main(), allocnode(), do_free(), do_one_group(), do_supplemental(),
        get_one_article(), get_one_article_kill(), restart_yn(), parse_args()
        - (wow) Aadido cdigo para funcionar con la opcin -n.  Esta opcin
	recupera los articulos por su nmero, y no por MessageID.  Esto
	significa que he tenido que seguir el grupo de cada artculo, y enviar
	el comando para cambiar de grupos cuando era necesario.  Esto es un
	poco complicado por el cdigo de "pipelining", porque no puedo pedir
	ms adelante si tengo que cambiar de grupos.  Si tu servidor remoto
	NNTP no soporta el nmero de artculo con el comando xhdr, entonces
	se desactiva esta opcin en el cdigo.

        get_group_number() - cre, aade un grupo a la lista y asigna un
	nmero para una recuperacin posterior con la opcin -n.

        build_command() - cre, construye el comando de head, article o body
	con el msgid o el nmero de mensaje, segn la opcin -n.

       do_connect, scan_args() - aadido cdigo para usar la opcion -u,
       auto_authenticate.  Esta opcin enviar de manera automatica el
       comando authinfo al conectar al servidor remoto.

testhost.c - main() - aadido cdigo para funcionar con la opcin -d, que
	recupera la descripcin de grupos.
        (envia el comando 'list newsgroups').

?? Nov 97 - suck-3.8.0 released

-- Cambios de Suck-3.6.0 -> Suck-3.7.0

Makefile.in - aadir seccin de configuracin, cambia instalacin para
	que install_lpost instala el programa y la pgina man, y arreglar un
	error en installall

sample\* - varias modificaciones para usar las opciones nuevas -A and -bp

active.c - cre, trata la opcin -A, lee el archivo local active,
	y lo mezcla con el archivo existente sucknewsrc para conseguir
	los identificadores de mensajes.

both.c - sgetline() - aadido un variable global TimeOut, para permitirnos
	definir un alarma para todos los programas.

batch.c - cre, movi todas las subrutinas "batch" aqu.
	- do_localpost(), post_one_msg() - cre, pasan los artculos
	al servidor local con IHAVE (opcin -bp)

killfile.c - chk_msg_kill() - aadido un NL entre los artculos en killfile log
	cuando est en el modo "long".
	- get_one_article_kill() - aadido cdigo para BATCH_LIHAVE
	- aadido <limits.h> para arreglar un bug de compilacin en sistemas
	que usan glibc.

rpost.c - scan_args() - aadido cdigo para tratar la opin -T (temporizador).

suck.c - get_message_index() - escribi de nuevo.  Mucho de este cdigo ha
	sido movido a do_one_group(), para que se le puede llamar desde
	active.c.
	Trata correctamente un maxread de 0 y no bajar artculos.
	- do_one_group() - cre.
	- get_articles() - re-escribi cdigo para imprimir BPS para usar
	la funcin GET_BPS nueva de cdigo de temporizador, para que
	se puede formatear correctamente la informacin.  Aadi cdigo
	para tratar BATCH_LIHAVE con un archivo abierto.
	- get_one_article(), main(), aadido cdigo para BATCH_LIHAVE
	- do_rnewsbatch(), do_innbatch, do_lmovebatch() - traslad a batch.c
	- scan_args() - re-escribi para tratar argumentos largos y cortos
        - parse_args() - cre, contiene mucho del antiguo scan_args().
	Aadio cdigo para tratar las opciones -A, -bp, -hl, y -T
	(temporizador). 
	- main() - aadido cdigo para comprobar los argumentos.
	- get_one_article(), do_authenticate() - arregl un error al no
	tratar la autenticacin, por el cdigo de pedir un artculo por
	adelantado.

testhost.c - main() - aadido cdigo para tratar la opcin -T (temporizador).

timer.c - TimerFunc() - aadido la opcin GET_BPS para devolver los BPS y
	presentar en pantalla.

19 Oct 97 - suck-3.7.0 released

NOTA:
-----
para informacin de los cambios anteriores, ver el CHANGELOG in ingls
