Thread (5 messages) 5 messages, 2 authors, 2016-08-08

Linux Coding style template

From: Charls D. Chap <hidden>
Date: 2016-08-08 10:14:49

Obviously I didn't mean that. Gmail's plain text had destroyed alignment...
anyway it doesn't matter, it's not even crucial
cheers

On Mon, Aug 8, 2016 at 10:01 AM, Greg KH [off-list ref] wrote:
On Sun, Aug 07, 2016 at 05:53:15PM +0300, Charls D. Chap wrote:
quoted
On Sun, Aug 7, 2016 at 7:39 AM, Greg KH [off-list ref] wrote:
quoted
On Sun, Aug 07, 2016 at 12:22:03AM +0300, Charls D. Chap wrote:
quoted
I want to transform some C source files. following Linux kernel coding style.
My questions are more generic, i am interesting in an automatic way for
identation!
Why?  It's best to do it "by hand" after using a few basic indent rules,
as Lindent provides.
quoted
And also, i am interesting to what kernel developers will
do in the following cases
Why?
quoted
please take a look to this example
width is 90, what a kernel developer will do? spliti in two lines, or
leave it us it is,
cause i think it's more readable, in this way
qq->run = mmap(NULL, mmap_size, PROT_READ | PROT_WRITE, MAP_SHARED,
qq->vcpu, 0);
That doesn't look readable at all, are you sure you ment it to look like
that?
quoted
Also, have you find a way to tell indent not to indent, struct definitions?
In .h, when you have a huge structure definition, it's more readable,
to have it's struct friend one below the other, aligned!
struct kvm_mem_bank {
          struct list_head           list;
         u64                              guest_phys_addr;
         void                              *host_addr;
        u64                               size;
};
That's not aligned at all :(
quoted
This also counts for variables initiliazation
int x = 0
char  *dog         = animal->dog->name;
char  *cat          = animal->cat->name;
char * elephant = animal->elephant->name;

Any ideas?
Don't do the above, it looks horrible.
quoted
- Does script/Lindent STRICTLY follows all linux kernel coding style rules?
No, it gets you close.
quoted
- What scripts/templates do you use/suggest for elegant code style
with the fact that
  we are talking about Linux Kernel Coding?
Use an editor with the proper settings and then fix it up by hand.

Or even better yet, just always write your code using the proper
settings.
quoted
The GNU guys suggest indent with the following parameters:
-nbad -bap -nbc -bbo -hnl -br -brs -c33 -cd33 -ncdb -ce -ci4
-cli0 -d0 -di1 -nfc1 -i8 -ip0 -l80 -lp -npcs -nprs -npsl -sai
-saf -saw -ncs -nsc -sob -nfca -cp33 -ss -ts8 -il1
Where do they say that?
quoted
On the other hand:
Linux/script/Lindent contains:
-npro -kr -i8 -ts8 -sob -l80 -ss -ncs -cp1
And the differnces are what?
quoted
Differences so far:
1)
indent with gnu parameters inserts a space on labels eg.
 err: vs
err:
Don't put a space.
quoted
2)
indent with gnu parameters inserts 26 spaces
#endif                                                          /*
something like this                 */
That doesn't make sense, does it?
quoted
So probably gnu site is outdated?
What gnu site?

You do know _why_ we have a coding style, right?  It's not about being
pedantic, it's about your brain.

thanks,

greg k-h
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help