edit:
Argh, er mist een woord in de titel.
. Moet "coding style (indent) en functienamen script-based veranderen" zijn.
.
Argh, er mist een woord in de titel.
edit:
gef1x0rt! Dankje, wilke!
gef1x0rt! Dankje, wilke!
Ik zit nu al een avondje te pruts0ren met indent, ik wil een soort standaard coding style meekrijgen voor bepaalde C source bestandjes. Okee, welke stijl wil ik: grotendeels kernel-standard (K&R), dus 8-space tabs, 1-tab indent, cuddled braces, etc. Een standaard stukje code ziet er dan zo uit:
code:
1
2
3
4
5
| if (bla) {
..
} else {
..
} |
Daarnaast wil ik spaties na if/else/while statements, boolean operators voor line break:
code:
1
2
3
4
| if (bla1 &&
bla2) {
..
} |
Bij switch/case wil ik zo weinig mogelijk ruimte verspillen, en dus zoveel mogelijk op dezelfde indent:
code:
1
2
3
4
5
6
7
8
9
10
| switch (bla) {
case BLA:
{
..
}
break;
default:
..
break;
} |
Voor dit totaal gebruik ik de volgende indent regel:
code:
1
| indent -kr -i8 -psl -bfda -lp -cli0 -cbi0 -npcs -sc -nhnl -nbbo |
Enkele dingen gaan nog niet zoals ik wil. Een functie declaratie wil ik bijvoorbeeld met een spatie, maar functie calls zonder spatie. En de parameters in een functie declaratie wil ik lined-up hebben, dus iets a la:
code:
1
2
3
4
5
6
| static void
bla_functie (const char *blaat,
int blaat2)
{
bla_functie2(blaat, blaat);
} |
Ik hoopte dat -pcs dit zou doen, maar die zet ook spaties bij de functie calls, en niet alleen bij de functie declaraties. Oftewel, zuig!
code:
1
2
3
4
5
6
| static void
bla_functie(const char *blaat,
int blaat2)
{
bla_functie2(blaat, blaat);
} |
Dat wil ik dus niet. Vraag 1 dus: hoe krijg ik spaties tussen functie-naam en parameters in de functie declaratie, maar niet in de call? En hoe kan ik de parameters in de declaratie line-up'en?
Okee, dan nog wat anders, sommige stukjes code gebruiken nog oude macro's, die ik in andere stukken code al gestandaardiseerd heb naar andere macro's. Het is dus nu een zootje aan enerzijds DEBUGX(printk("...")); macro's, en anderzijds dprintk(X, "..."); macro's. Ik wil alleen dprintk() gebruiken. Is er ergens een manier om dit script-gewijs om te zetten (bv. sed -e s/DEBUG1/dprintk(1,/, maar dan iets slimmer dat ie 1 automatisch snapt en dat haakje aan het eind ook weghaalt)? Ik heb weinig zin om 600kB aan code te doorlopen en dit handmatig te doen.
Thanks in advance!
[ Voor 8% gewijzigd door Verwijderd op 05-01-2003 01:43 ]