lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1234948770.23768.25.camel@ecld0pohly>
Date:	Wed, 18 Feb 2009 10:19:30 +0100
From:	Patrick Ohly <patrick.ohly@...el.com>
To:	Johannes Weiner <hannes@...urebad.de>
Cc:	Andrew Morton <akpm@...ux-foundation.org>,
	linux-kernel@...r.kernel.org
Subject: Re: [PATCH -mm] documentation: update CodingStyle tips for Emacs
	users

On Fri, 2008-07-04 at 19:52 +0200, Johannes Weiner wrote:
> Describe a setup that integrates better with Emacs' cc-mode and also
> fixes up the alignment of continuation lines to really only use tabs.
[...]
> +(defun c-lineup-arglist-tabs-only (ignored)
> +  "Line up argument lists by tabs, not spaces"
> +  (let* ((anchor (c-langelem-pos c-syntactic-element))
> +	 (column (c-langelem-2nd-pos c-syntactic-element))
> +	 (offset (- (1+ column) anchor))
> +	 (steps (floor offset c-basic-offset)))
> +    (* (max steps 1)
> +       c-basic-offset)))
>+
>+(add-hook 'c-mode-hook
> +          (lambda ()
> +            (let ((filename (buffer-file-name)))
> +              ;; Enable kernel mode for the appropriate files
> +              (when (and file
> +                         (string-match "/usr/src/linux" filename))
> +                (setq indent-tabs-mode t)
> +                (c-set-style "linux")
> +                (c-set-offset 'arglist-cont-nonempty
> +                              '(c-lineup-gcc-asm-reg
> +                                c-lineup-arglist-tabs-only))))))

When starting writing kernel source code last year (the hardware time
stamping patch) I used this macro to format it. I very much liked the
possibility to only switch on Linux style when editing Linux code
(because I work on a variety of code bases with different formatting).

But the macro above did not produce the result expected by some patch
reviewers (John Stultz, Dave Miller). I had to redo the formatting
manually.

The sticky point is continuation after splitting a long parameter list -
in other words, exactly what the "arglist-cont-nonempty" setting above
changes. The macro formats it so that the continuation is aligned at the
tab that is closest to the initial argument in the previous line:

int a_very_long_function_name(int arg1, char *arg2,
			double arg3);

The expected style was tab plus spaces to align with the first argument:

int a_very_long_function_name(int arg1, char *arg2,
			      double arg3);

Is this a bug in the macro? I'm using emacs 22.1.1, in case that
matters. Or are there different opinions in the Linux developer
community about the right formatting?

-- 
Best Regards, Patrick Ohly

The content of this message is my personal opinion only and although
I am an employee of Intel, the statements I make here in no way
represent Intel's position on the issue, nor am I authorized to speak
on behalf of Intel on this matter.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ