aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNicolas Hillegeer <nicolas@hillegeer.com>2014-12-12 00:48:50 +0100
committerNicolas Hillegeer <nicolas@hillegeer.com>2015-01-16 21:45:00 +0100
commit522a15f1c08c67824d52781ebdf284168678da96 (patch)
tree223916572a14eabc20dde3082b237231c7b99175
parentdd25b2e5aebd43badc346d3cd3d06cdc01a42c9b (diff)
downloadrneovim-522a15f1c08c67824d52781ebdf284168678da96.tar.gz
rneovim-522a15f1c08c67824d52781ebdf284168678da96.tar.bz2
rneovim-522a15f1c08c67824d52781ebdf284168678da96.zip
test: fix formatc.lua oddity on OSX/gcc
The primitive C canonicalizer we use to strip out duplicate header declarations and keep luajit's ffi happy, didn't work properly in this case. What happened is this (in /usr/include/ctype.h): __DARWIN_CTYPE_TOP_inline int isspecial(int _c) { return (__istype(_c, _CTYPE_T)); } Gets preprocessed to something like: __inline int isspecial(int _c) { return (__istype(_c, _CTYPE_T)); } On OSX/gcc. The formatter wasn't recognizing this entire function as something to put on a single line because it naively just checks for "static" or "inline" for that, but not "__inline". This error doesn't occur on OSX/clang. Without looking further into it, I guess that __DARWIN_CTYPE_TOP_inline gets defined to inline on clang, but __inline on gcc, for some reason. This helps issue #1572 along.
-rw-r--r--test/unit/formatc.lua6
1 files changed, 3 insertions, 3 deletions
diff --git a/test/unit/formatc.lua b/test/unit/formatc.lua
index 792894f349..f9397eaec6 100644
--- a/test/unit/formatc.lua
+++ b/test/unit/formatc.lua
@@ -149,8 +149,7 @@ local C_keywords = set {
-- };
--
-- would become:
--- struct mystruct
--- { int a; int b; };
+-- struct mystruct { int a; int b; };
--
-- The first one will have a lot of false positives (the line '{' for
-- example), the second one is more unique.
@@ -179,7 +178,8 @@ local function formatc(str)
-- static and/or inline usually indicate an inline header function,
-- which has no trailing ';', so we have to add a newline after the
-- '}' ourselves.
- if token[1] == 'static' or token[1] == 'inline' then
+ local tok = token[1]
+ if tok == 'static' or tok == 'inline' or tok == '__inline' then
end_at_brace = true
end
elseif typ == 'preprocessor' then