Successivo: Nuovi sistemi, Precedente: Accedere ai sorgenti, Su: Aggiunte [Contenuti][Indice]
Ognuno è libero di aggiungere tutte le nuove funzionalità che vuole a
gawk
. Comunque, se si desidera che tali modifiche siano incorporate
nella distribuzione di gawk
, ci sono parecchi passi da fare per
rendere possibile la loro inclusione:
gawk
,
prendere in considerazione la possibilità di scriverla sotto forma di
estensione (vedi la sezione Scrivere estensioni per gawk
).
Se ciò non è possibile, continuare con i passi rimanenti descritti in questa
lista.
gawk
o, meglio ancora, sull’ultimo codice
sorgente presente nel deposito Git. Se la versione di gawk
è molto
vecchia, potrei non essere affatto in grado di integrare le modifiche.
(Vedi la sezione Ottenere la distribuzione di gawk
,
per informazioni su come ottenere l’ultima versione di gawk
.)
gawk
.
(Gli Standard di codifica GNU sono disponibili nel sito web del
Progetto GNU.
Sono disponibili anche versioni in formato Texinfo, Info, e DVI.)
gawk
.
Il codice sorgente in C di gawk
segue le istruzioni dello
Standard di codifica GNU, con qualche piccola eccezione. Il codice è
formattato usando lo stile tradizionale “K&R”, in particolare per ciò che
riguarda il posizionamento delle parentesi graffe e l’uso del carattere TAB.
In breve, le regole di codifica per gawk
sono le seguenti:
int
,
sulla riga immediatamente sopra quella che contiene il nome e gli argomenti
della funzione.
if
, while
, for
, do
, switch
e return
).
for
, e nel corpo delle macro.
NULL
e '\0'
per le condizioni
contenute nelle istruzioni if
, while
e for
, e anche
nelle varie clausole case
delle istruzioni switch
, invece
del semplice puntatore o il semplice valore del carattere.
true
e false
per le variabili booleane
,
la costante simbolica NULL
per i valori dei puntatori,
e la costante carattere '\0'
quando è il caso, invece dei valori 1
e 0
.
alloca()
per allocare memoria dalla stack.
Il farlo genera dei problemi di portabilità che non giustificano il vantaggio
secondario di non doversi preoccupare di liberare la memoria. Usare invece
malloc()
e free()
.
strcmp()
non è una funzione
booleana!” Usare invece ‘strcmp(a, b) == 0’.
0x001
, 0x002
, 0x004
, etc.) invece che
spostare di un bit a sinistra in incrementi successivi
(‘(1<<0)’, ‘(1<<1)’, etc.).
NOTA: Qualora fossi costretto a riformattare completamente il codice per farlo aderire allo stile di codifica usato in
gawk
, potrei anche decidere di ignorare del tutto le modifiche proposte.
man
.
Si dovrà anche firmare un documento liberatorio relativo alle modifiche apportate alla documentazione.
gawk
con la versione proposta.
Si raccomanda di usare la versione GNU di diff
o, ancora meglio,
‘git diff’ o ‘git format-patch’.
Per inviare le modifiche proposte spedire l’output prodotto da diff
.
(Vedi la sezione Segnalazione di problemi e bug, per l’indirizzo di posta elettronica.)
L’uso di questo formato rende semplice per me l’applicazione delle modifiche
alla versione principale del sorgente di gawk
(usando il programma di
utilità patch
). Se invece tocca a me applicare le modifiche a mano,
con un editor di testo, potrei decidere di non farlo, specialmente
se le modifiche sono molte.
Sebbene questa possa sembrare una richiesta molto esigente, si tenga presente che, anche se il nuovo codice non è opera mia, tocca poi a me manutenerlo e correggere eventuali errori. Se non è possibile per me farlo senza perderci troppo tempo, potrei anche lasciar perdere la modifica.
Successivo: Nuovi sistemi, Precedente: Accedere ai sorgenti, Su: Aggiunte [Contenuti][Indice]