From: Junio C Hamano <gitster@pobox.com>
To: git@vger.kernel.org
Cc: Carlo Arenas <carenas@gmail.com>,
Emily Shaffer <emilyshaffer@google.com>
Subject: [RFC/PATCH] CodingGuidelines: spell out post-C89 rules
Date: Tue, 16 Jul 2019 10:21:20 -0700 [thread overview]
Message-ID: <xmqq4l3l520f.fsf_-_@gitster-ct.c.googlers.com> (raw)
In-Reply-To: <xmqq8ssx53a0.fsf@gitster-ct.c.googlers.com> (Junio C. Hamano's message of "Tue, 16 Jul 2019 09:53:59 -0700")
Even though we have been sticking to C89, there are a few handy
features we borrow from more recent C language in our codebase after
trying them in weather balloons and saw that nobody screamed.
Spell them out.
While at it, extend the existing variable declaration rule a bit to
read better with the newly spelled out rule for the for loop.
Signed-off-by: Junio C Hamano <gitster@pobox.com>
---
Documentation/CodingGuidelines | 20 +++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)
diff --git a/Documentation/CodingGuidelines b/Documentation/CodingGuidelines
index 1169ff6c8e..53903b14c8 100644
--- a/Documentation/CodingGuidelines
+++ b/Documentation/CodingGuidelines
@@ -195,10 +195,24 @@ For C programs:
by e.g. "echo DEVELOPER=1 >>config.mak".
- We try to support a wide range of C compilers to compile Git with,
- including old ones. That means that you should not use C99
- initializers, even if a lot of compilers grok it.
+ including old ones. That means that you should not use certain C99
+ features, even if your compiler groks it. There are a few
+ exceptions:
- - Variables have to be declared at the beginning of the block.
+ . since early 2012 with e1327023ea, we have been using an enum
+ definition whose last element is followed by a comma.
+
+ . since mid 2017 with cbc0f81d and 512f41cf, we have been using
+ designated initializers for struct and array.
+
+ These used to be forbidden, but we have not heard breakage report,
+ so they are assumed to be safe.
+
+ - Variables have to be declared at the beginning of the block, before
+ the first statement (i.e. -Wdeclaration-after-statement).
+
+ - Declaring a variable in the for loop "for (int i = 0; i < 10; i++)"
+ is still not allowed in this codebase.
- NULL pointers shall be written as NULL, not as 0.
next prev parent reply other threads:[~2019-07-16 17:21 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-07-02 0:53 [PATCH] transport-helper: enforce atomic in push_refs_with_push Emily Shaffer
2019-07-02 13:51 ` Johannes Schindelin
2019-07-02 18:27 ` Junio C Hamano
2019-07-03 18:56 ` Emily Shaffer
2019-07-03 19:01 ` Emily Shaffer
2019-07-03 19:41 ` Johannes Schindelin
2019-07-03 20:57 ` Emily Shaffer
2019-07-04 8:29 ` Johannes Schindelin
2019-07-09 20:23 ` Emily Shaffer
2019-07-02 19:06 ` Junio C Hamano
2019-07-02 20:16 ` Junio C Hamano
2019-07-03 0:09 ` Emily Shaffer
2019-07-02 21:37 ` Junio C Hamano
2019-07-03 0:08 ` Emily Shaffer
2019-07-03 9:10 ` SZEDER Gábor
2019-07-03 18:13 ` Junio C Hamano
2019-07-03 18:58 ` Emily Shaffer
2019-07-09 21:10 ` [PATCH v2] " Emily Shaffer
2019-07-10 17:44 ` Junio C Hamano
2019-07-10 17:53 ` Junio C Hamano
2019-07-11 21:14 ` Emily Shaffer
2019-07-11 20:57 ` Emily Shaffer
2019-07-11 21:13 ` Junio C Hamano
2019-07-11 21:19 ` [PATCH v3] " Emily Shaffer
2019-07-12 16:25 ` Junio C Hamano
2019-07-16 7:10 ` [PATCH v2] " Carlo Arenas
2019-07-16 16:53 ` Junio C Hamano
2019-07-16 17:21 ` Junio C Hamano [this message]
2019-07-17 0:55 ` [RFC/PATCH] CodingGuidelines: spell out post-C89 rules Jonathan Nieder
2019-07-17 16:03 ` Junio C Hamano
2019-07-19 1:15 ` Jonathan Nieder
2019-07-17 1:09 ` Bryan Turner
2019-07-17 16:05 ` Junio C Hamano
2019-07-16 18:00 ` [PATCH v2] transport-helper: enforce atomic in push_refs_with_push Carlo Arenas
2019-07-16 20:28 ` [PATCH] transport-helper: avoid var decl in for () loop control Junio C Hamano
2019-07-17 0:42 ` Jonathan Nieder
2019-07-18 15:22 ` [PATCH v2] transport-helper: enforce atomic in push_refs_with_push SZEDER Gábor
2019-07-18 16:12 ` Junio C Hamano
2019-07-18 23:46 ` SZEDER Gábor
2019-07-18 16:29 ` Eric Sunshine
2019-07-19 1:31 ` Jonathan Nieder
2019-07-19 4:49 ` Carlo Arenas
2019-07-19 19:15 ` Junio C Hamano
2019-07-27 8:43 ` SZEDER Gábor
2019-07-27 16:11 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqq4l3l520f.fsf_-_@gitster-ct.c.googlers.com \
--to=gitster@pobox.com \
--cc=carenas@gmail.com \
--cc=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).