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.

Elenco commit relativi

Strumenti personali