Quelltext mit indent formatieren, Problem mit namespace

Developer-Tools, Entwicklungsumgebungen und alles andere, was sich installieren lässt
Antworten
mareb
Beiträge: 11
Registriert: Mi Mai 08, 2013 5:05 am

Quelltext mit indent formatieren, Problem mit namespace

Beitrag von mareb » Fr Mai 31, 2013 6:40 am

Hallo,
ich verwende indent, um meine alten C und C++ Quelltexte für einen neuen Styleguide zu formatieren. Ich verwende folgende Parameter (die Beispiel Sourcedatei ist hier cputils.c):

Code: Alles auswählen

indent -nbad -bap -c33 -cd33 -cp33 -lc86 -bli0 -cdw -cli4 -cbi4 -npcs -cs -saf -sai -saw -nprs -di16 -bc -bls -i4 -ci4 -lp -ip0 -lps -l120 -nbbo -ts4 -nut -nfca -nlp cputils.c -o cputils.ci
Dabei stoße ich auf ein Problem. Der folgende Code:

Code: Alles auswählen

#ifdef __cplusplus
namespace std3000c {
extern "C" {

#endif
wird umgesetzt zu:

Code: Alles auswählen

#ifdef __cplusplus
namespace       std3000c
{
    extern          "C"
    {
#endif
und in der weiteren Datei sind dann alle Funktionen eingerückt. Ich möchte die Einrückungsregeln für "namespace" und "extern C" außer Kraft setzen. Die Parameter -nprs oder -prs haben hierbei keine Auswirkung.
Weiß jemand, wie ich das bewirken kann?

Vielen Dank

Benutzeravatar
cloidnerux
Moderator
Beiträge: 3123
Registriert: Fr Sep 26, 2008 4:37 pm
Wohnort: Ram (Gibts wirklich)

Re: Quelltext mit indent formatieren, Problem mit namespace

Beitrag von cloidnerux » Fr Mai 31, 2013 8:38 am

http://www.gnu.org/software/indent/manual/indent.html
Kapitel 1.12 sagt, dass indent C++ nicht wirklich versteht, was hier der Fall sein kann.
Höchst wahrscheinlich versteht indent "namespace" nicht und denkt sich irgendwas merkwürdiges dabei.

Hast du es schon mal mit astyle probiert(Und auch immer schön Backups gemacht)?
Redundanz macht wiederholen unnötig.
quod erat expectandum

mareb
Beiträge: 11
Registriert: Mi Mai 08, 2013 5:05 am

Re: Quelltext mit indent formatieren, Problem mit namespace

Beitrag von mareb » Fr Mai 31, 2013 3:48 pm

Hallo,
danke für die Antwort. In der Tat hatte ich auch astyle schon gefunden. Aber das kann einige andere Dinge nicht.
Vielleicht muß ich mir den Source von indent holen und etwas hacken...

mareb
Beiträge: 11
Registriert: Mi Mai 08, 2013 5:05 am

Re: Quelltext mit indent formatieren, Problem mit namespace

Beitrag von mareb » Fr Mai 31, 2013 4:15 pm

Hallo,
ach, ich habe eine Lösung gefunden, die besser als garnichts ist:

Code: Alles auswählen

/* *INDENT-OFF* */
#ifdef __cplusplus
namespace std3000c {
extern "C" {
#endif
/* *INDENT-ON* */

...

/* *INDENT-OFF* */
#ifdef __cplusplus
} /* extern "C" */
} /* namespace std3000c */
#endif
/* *INDENT-ON* */


Antworten