Estesa libreria curses
Da Wiki di NetBSD Italia.
(Creata pagina con '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 seguir…') |
m |
||
Riga 35: | Riga 35: | ||
* [http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/src/lib/libcurses/curses.h?only_with_tag=MAIN#rev1.96 Introduzione macro __printflike e __scanflike]. | * [http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/src/lib/libcurses/curses.h?only_with_tag=MAIN#rev1.96 Introduzione macro __printflike e __scanflike]. | ||
* [http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/src/lib/libcurses/chgat.c?only_with_tag=MAIN#rev1.3 Fix per il controllo delle variabili x,y in chgat(3)]. | * [http://cvsweb.de.netbsd.org/cgi-bin/cvsweb.cgi/src/lib/libcurses/chgat.c?only_with_tag=MAIN#rev1.3 Fix per il controllo delle variabili x,y in chgat(3)]. | ||
+ | |||
+ | [[Categoria:Notizie]] |
Versione corrente delle 10:44, 10 lug 2009
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.