Estesa libreria curses
Da Wiki di NetBSD Italia.
In questi ultimi giorni sono stati effettuati diversi commit per estendere e migliorare le librerie curses. Ancora oggi ci sono stati alcuni fix (e probabilmente altri seguiranno) per migliorare tali estensioni. In particolare sono state fra l'altro queste funzionalita':
- Supporto per la famiglia di funzioni chgat(3) (e relative pagine di manuale).
- Funzioni vw_printw(3) e vw_scanw(3), derivate dalle xcurses di SUSv2. (aggiunte oggi)
- Il file curses.h utilizza adesso __printflike() e __scanflike().
Quest'ultima modifica rende il codice molto piu' leggibile in quanto al posto di chiamate di questo tipo:
int mvwscanw(WINDOW *, int, int, const char *, ...) __attribute__((__format__(__scanf__, 4, 5)));
Puo' essere utilizzata una semplice macro, in questo modo:
int mvwscanw(WINDOW *, int, int, const char *, ...) __scanflike(4, 5);
Ed in effetti questo aggiornamento consiste proprio in questo. Inoltre nella versione originale della funzione chgat(3) non c'era alcun controllo sulla validita' delle variabili x e y; oggi e' stato aggiunto tale controllo con questa semplice porzione di codice:
if (x < 0 || y < 0) return (ERR); if (x >= win->maxx || y >= win->maxy) return (ERR);
Le funzioni della libreria curses derivate dalle xcurses sono sviluppate in modo quanto piu' rigorosamente compatibile con queste ultime.