[FFmpeg-cvslog] doc/developer.texi: move the language feature section higher up

Anton Khirnov git at videolan.org
Wed Nov 23 11:52:22 EET 2022


ffmpeg | branch: master | Anton Khirnov <anton at khirnov.net> | Mon Nov 14 17:55:40 2022 +0100| [256db01851ca4e805cd50205f542fc4602e480b1] | committer: Anton Khirnov

doc/developer.texi: move the language feature section higher up

It makes more sense to first describe the language we are using and only
then document how to format code in it, rather than the reverse.

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=256db01851ca4e805cd50205f542fc4602e480b1
---

 doc/developer.texi | 104 ++++++++++++++++++++++++++---------------------------
 1 file changed, 52 insertions(+), 52 deletions(-)

diff --git a/doc/developer.texi b/doc/developer.texi
index cf918ac6b1..8e6d9d8730 100644
--- a/doc/developer.texi
+++ b/doc/developer.texi
@@ -56,6 +56,58 @@ and should try to fix issues their commit causes.
 @anchor{Coding Rules}
 @chapter Coding Rules
 
+ at section C language features
+
+FFmpeg is programmed in the ISO C90 language with a few additional
+features from ISO C99, namely:
+
+ at itemize @bullet
+ at item
+the @samp{inline} keyword;
+
+ at item
+ at samp{//} comments;
+
+ at item
+designated struct initializers (@samp{struct s x = @{ .i = 17 @};});
+
+ at item
+compound literals (@samp{x = (struct s) @{ 17, 23 @};}).
+
+ at item
+for loops with variable definition (@samp{for (int i = 0; i < 8; i++)});
+
+ at item
+Variadic macros (@samp{#define ARRAY(nb, ...) (int[nb + 1])@{ nb, __VA_ARGS__ @}});
+
+ at item
+Implementation defined behavior for signed integers is assumed to match the
+expected behavior for two's complement. Non representable values in integer
+casts are binary truncated. Shift right of signed values uses sign extension.
+ at end itemize
+
+These features are supported by all compilers we care about, so we will not
+accept patches to remove their use unless they absolutely do not impair
+clarity and performance.
+
+All code must compile with recent versions of GCC and a number of other
+currently supported compilers. To ensure compatibility, please do not use
+additional C99 features or GCC extensions. Especially watch out for:
+
+ at itemize @bullet
+ at item
+mixing statements and declarations;
+
+ at item
+ at samp{long long} (use @samp{int64_t} instead);
+
+ at item
+ at samp{__attribute__} not protected by @samp{#ifdef __GNUC__} or similar;
+
+ at item
+GCC statement expressions (@samp{(x = (@{ int y = 4; y; @})}).
+ at end itemize
+
 @section Code formatting conventions
 
 There are the following guidelines regarding the indentation in files:
@@ -121,58 +173,6 @@ int myfunc(int my_parameter)
 ...
 @end example
 
- at section C language features
-
-FFmpeg is programmed in the ISO C90 language with a few additional
-features from ISO C99, namely:
-
- at itemize @bullet
- at item
-the @samp{inline} keyword;
-
- at item
- at samp{//} comments;
-
- at item
-designated struct initializers (@samp{struct s x = @{ .i = 17 @};});
-
- at item
-compound literals (@samp{x = (struct s) @{ 17, 23 @};}).
-
- at item
-for loops with variable definition (@samp{for (int i = 0; i < 8; i++)});
-
- at item
-Variadic macros (@samp{#define ARRAY(nb, ...) (int[nb + 1])@{ nb, __VA_ARGS__ @}});
-
- at item
-Implementation defined behavior for signed integers is assumed to match the
-expected behavior for two's complement. Non representable values in integer
-casts are binary truncated. Shift right of signed values uses sign extension.
- at end itemize
-
-These features are supported by all compilers we care about, so we will not
-accept patches to remove their use unless they absolutely do not impair
-clarity and performance.
-
-All code must compile with recent versions of GCC and a number of other
-currently supported compilers. To ensure compatibility, please do not use
-additional C99 features or GCC extensions. Especially watch out for:
-
- at itemize @bullet
- at item
-mixing statements and declarations;
-
- at item
- at samp{long long} (use @samp{int64_t} instead);
-
- at item
- at samp{__attribute__} not protected by @samp{#ifdef __GNUC__} or similar;
-
- at item
-GCC statement expressions (@samp{(x = (@{ int y = 4; y; @})}).
- at end itemize
-
 @section Naming conventions
 All names should be composed with underscores (_), not CamelCase. For example,
 @samp{avfilter_get_video_buffer} is an acceptable function name and



More information about the ffmpeg-cvslog mailing list