Sorry for the italian language, this is the accurate DONE AND TO_DO list :)
----------------------------------------------------------------------------

I files

error.h  error.c
exitfail.h exitfail.c
xalloc-die.c
xalloc.h xmalloc.c

Sono stati presi da GNUlib il 15/7/2007

------------------------------------------

Prossimi passi:

+ * Integrare dummy_main.c in main.c 

+ * Aggiungere in flags.c una funzione (da esportare e dichiarare
    in numdiff.h) che permetta di ottenere un puntatore
    alla INTERNAL_TABLE. Questa dovr poi essere usata
    all' interno di cmp_files().

+ * Modificare la cmp_files() in modo tale che possa usare
+   la INTERNAL_TABLE creata dalla funzione diff_2_files().

+ * Attenzione: la cmp_files() dovr in particolare definire
+               'lineno1' per pf1, 'lineno2' per pf2
+               e passare entrambi alla cmp_lines(),
+               che pertanto dovr essere modificata.
+               Le modifiche dovranno concernere (a cascata)
+               anche le funzioni print_lines() e print_fields().

+ * Dichiarare statiche le funzioni all'interno del codice
    originario del Numdiff che non hanno bisogno di essere esportate. 

+ * Rimuovere files 'basename.c' e 'dirname.h'.

+ * Rimuovere files 'quotesys.c' e 'quotesys.h'

+ * Implementare le opzioni:
    -f (filter only mode), 
    -z (activate filter in normal mode),
    -Z (activate filter in alternative mode), 

+ * La funzione cmp_files() deve saper gestire correttamente il caso in cui
    -f  attiva (la flag table in questo caso non viene costruita).

+ * -Z si comporta come -z al momento. Differenziare.

+ * La funzione diff_2_files() deve visualizzare il suo output
    in modalit solo filtraggio.

+ * Verificare il funzionamento dell' opzione -b.

+ * Aggiungere all'help le voci relative all' uso delle nuove opzioni.

+ * Riorganizzare la funzione compare_files() in modo tale da non dover
    aprire e chiudere i files due volte.

+ * Verificare che, a parte le differenze nel formato di output,
    numdiff passa tutti i test che non richiedono l'uso del filtro.

+ * Aggiornare i suddetti test in modo tale da rispecchiare l'attuale
    formato di output.

+ * Rimuovere l' opzione -L,  obsoleta.

+ * Aggiungere dei test per l'uso del filtro.

+ * Provare a diminuire ancora il numero di variabili globali

+ * Rimuovere la funzione find_change(),  inutile !!!

+ * Spostare in options.c la definizione e l' inizializzazione
    delle variabili globali rimaste

+ * Implementare -Z e -z nella stessa forma di -X .

+ *  possibile rimuovere la variable statica `Files' in main.c
    e sostituirne l'uso con la variabile globale `files' ?

+ * Aggiungere pi informazioni alle statistiche stampate dall' opzione -S

- * Fare in modo che le opzioni -z, -Z e -X accettino le forme senza i prefissi
    "1:" e "2:"

+ * Controllare l' output dei tests delle serie 8 e 14. Credo sia corretto,
    ma la reimplementazione dell' opzione -S richiede un controllo. 

+ * Sostituire EXIT_FAILURE con -1 in "cmpfns.c" e "util.c". 
    Probabilmente la cosa migliore
     sostituire EXIT_FAILURE con EXIT_TROUBLE, dopo aver impostato
    quest' ultima a -1 in "system.h".

*  necessario riavvolgere i file e rileggerne il contenuto
  daccapo dopo aver azionato il filtro? Oppure si pu eliminare un' inutile
  ripetizione della lettura dei loro contenuti ?

+ * Eliminare tutti i restanti messaggi di warning in fase
    di compilazione (I messaggi relativi a set_binary_mode() non possono essere rimossi).

+ * Reintegrare il codice dell' ndselect .

+ * Capire come funziona l'opzione -f quando non sono attivate
    n -z n -Z 

+ * Rivedere il contenuto dei commenti sui messaggi di errore
    al termine dei file 'runtest*.sh'.
