C FFI: fix line offset in gcc errors on custom header code
[nit.git] / src / ffi / c.nit
index 44841a8..1790f48 100644 (file)
@@ -31,11 +31,13 @@ class CLanguage
        redef fun compile_module_block(block, ecc, mmodule)
        do
                if block.is_c_header then
-                       ecc.header_custom.add( block.location.as_line_pragma )
-                       ecc.header_custom.add( block.code )
+                       ecc.header_custom.add block.location.as_line_pragma
+                       ecc.header_custom.add "\n"
+                       ecc.header_custom.add block.code
                else if block.is_c_body then
-                       ecc.body_custom.add( block.location.as_line_pragma )
-                       ecc.body_impl.add( block.code )
+                       ecc.body_impl.add block.location.as_line_pragma
+                       ecc.body_impl.add "\n"
+                       ecc.body_impl.add block.code
                end
        end
 
@@ -68,12 +70,12 @@ redef class AExternCodeBlock
 end
 
 redef class Location
-       fun as_line_pragma: String do return "#line {line_start} \"{file.filename}\"\n"
+       fun as_line_pragma: String do return "#line {line_start-1} \"{file.filename}\"\n"
 end
 
 redef class MModule
-       var c_compiler_options = "" is writable
-       var c_linker_options = "" is writable
+       var cflags = "" is writable
+       var ldflags = "" is writable
 
        # Additional libraries needed for the compilation
        # Will be used with pkg-config
@@ -84,11 +86,6 @@ class ForeignCType
        super ForeignType
 
        redef var ctype: String
-
-       init(ctype: String)
-       do
-               self.ctype = ctype
-       end
 end
 
 redef class NitniCallback
@@ -118,7 +115,7 @@ end
 class ToCCallContext
        super CallContext
 
-       private init do end
+       # TODO: private init because singleton instance (see `to_c_call_context`)
 
        redef fun name_mtype(mtype)
        do
@@ -131,7 +128,7 @@ end
 class FromCCallContext
        super CallContext
 
-       private init do end
+       # TODO: private init because singleton instance (see `from_c_call_context`)
 
        redef fun name_mtype(mtype) do return mtype.cname
 end