Author: Armin Rigo <[email protected]>
Branch:
Changeset: r3168:f2522654c2b5
Date: 2018-10-11 11:23 +0200
http://bitbucket.org/cffi/cffi/changeset/f2522654c2b5/
Log: #389
Warn when using string literals in the cdef() source
diff --git a/cffi/cparser.py b/cffi/cparser.py
--- a/cffi/cparser.py
+++ b/cffi/cparser.py
@@ -137,6 +137,14 @@
parts.append(csource)
return ''.join(parts)
+def _warn_for_string_literal(csource):
+ if '"' in csource:
+ import warnings
+ warnings.warn("String literal found in cdef() or type source. "
+ "String literals are ignored here, but you should "
+ "remove them anyway because some character sequences "
+ "confuse pre-parsing.")
+
def _preprocess(csource):
# Remove comments. NOTE: this only work because the cdef() section
# should not contain any string literal!
@@ -148,6 +156,7 @@
macrovalue = macrovalue.replace('\\\n', '').strip()
macros[macroname] = macrovalue
csource = _r_define.sub('', csource)
+ _warn_for_string_literal(csource)
#
if pycparser.__version__ < '2.14':
csource = _workaround_for_old_pycparser(csource)
_______________________________________________
pypy-commit mailing list
[email protected]
https://mail.python.org/mailman/listinfo/pypy-commit