From c09ca8747173a7acdec11983fa20c5d2255f1ea4 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Alexis=20Laferri=C3=A8re?= Date: Thu, 8 Dec 2016 15:12:51 -0500 Subject: [PATCH] rename `NativeString` to `CString` MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Alexis Laferrière --- .../strings/array_to_s_vars/array_to_s_flatstr.nit | 2 +- .../strings/array_to_s_vars/array_to_s_manual.nit | 2 +- contrib/jwrapper/src/model.nit | 2 +- contrib/pep8analysis/src/pep8analysis_web.nit | 6 +- contrib/sort_downloads/src/sort_downloads.nit | 4 +- lib/android/dalvik.nit | 2 +- lib/android/log.nit | 2 +- lib/android/native_app_glue.nit | 6 +- lib/android/sensors.nit | 4 +- lib/base64.nit | 2 +- lib/binary/serialization.nit | 6 +- lib/c.nit | 18 +++--- lib/cocoa/foundation.nit | 6 +- lib/core/bytes.nit | 32 +++++----- lib/core/codecs/codec_base.nit | 10 +-- lib/core/codecs/iso8859_1.nit | 2 +- lib/core/codecs/utf8.nit | 4 +- lib/core/environ.nit | 6 +- lib/core/exec.nit | 4 +- lib/core/file.nit | 26 ++++---- lib/core/fixed_ints.nit | 40 ++++++------ lib/core/posix.nit | 16 ++--- lib/core/re.nit | 12 ++-- lib/core/stream.nit | 10 +-- lib/core/text/abstract_text.nit | 44 ++++++------- lib/core/text/flat.nit | 66 ++++++++++---------- lib/core/text/native.nit | 8 +-- lib/core/text/ropes.nit | 16 ++--- lib/core/time.nit | 10 +-- lib/cpp.nit | 2 +- lib/curl/native_curl.nit | 34 +++++----- lib/egl.nit | 6 +- lib/emscripten/emscripten.nit | 2 +- lib/gettext/gettext.nit | 10 +-- lib/glesv2/glesv2.nit | 20 +++--- lib/gtk/v3_10.nit | 20 +++--- lib/gtk/v3_4/gtk_assistant.nit | 4 +- lib/gtk/v3_4/gtk_core.nit | 30 ++++----- lib/gtk/v3_4/gtk_dialogs.nit | 36 +++++------ lib/gtk/v3_4/gtk_widgets_ext.nit | 6 +- lib/ios/app.nit | 2 +- lib/ios/ios.nit | 2 +- lib/java/ffi_support.nit | 8 +-- lib/json/serialization_read.nit | 2 +- lib/json/serialization_write.nit | 2 +- lib/jvm.nit | 24 +++---- lib/libevent.nit | 16 ++--- lib/md5.nit | 4 +- lib/mnit/android/android_assets.nit | 4 +- lib/mongodb/mongodb.nit | 2 +- lib/mongodb/native_mongodb.nit | 24 +++---- lib/mpi/mpi.nit | 8 +-- lib/pnacl/pnacl.nit | 8 +-- lib/posix_ext.nit | 2 +- lib/postgresql/native_postgres.nit | 16 ++--- lib/readline.nit | 4 +- lib/sdl.nit | 8 +-- lib/sdl2/image.nit | 4 +- lib/sdl2/sdl2_base.nit | 14 ++--- lib/serialization/serialization.nit | 2 +- lib/sha1.nit | 6 +- lib/socket/socket.nit | 8 +-- lib/socket/socket_c.nit | 20 +++--- lib/sqlite3/native_sqlite3.nit | 12 ++-- lib/websocket/websocket.nit | 6 +- lib/xdg_basedir/xdg_basedir.nit | 16 ++--- src/compiler/abstract_compiler.nit | 14 ++--- src/compiler/global_compiler.nit | 4 +- src/compiler/java_compiler.nit | 2 +- src/compiler/separate_compiler.nit | 18 +++--- src/compiler/separate_erasure_compiler.nit | 6 +- .../dynamic_loading_ffi/dynamic_loading_ffi.nit | 18 +++--- src/interpreter/naive_interpreter.nit | 22 +++---- src/interpreter/primitive_types.nit | 4 +- src/model/model.nit | 4 +- src/nitni/nitni_base.nit | 6 +- src/semantize/typing.nit | 2 +- 77 files changed, 431 insertions(+), 431 deletions(-) diff --git a/benchmarks/strings/array_to_s_vars/array_to_s_flatstr.nit b/benchmarks/strings/array_to_s_vars/array_to_s_flatstr.nit index aad68e7..60f4196 100644 --- a/benchmarks/strings/array_to_s_vars/array_to_s_flatstr.nit +++ b/benchmarks/strings/array_to_s_vars/array_to_s_flatstr.nit @@ -19,7 +19,7 @@ redef class FlatString redef fun +(o) do var mlen = length var slen = o.length - var nns = new NativeString(mlen + slen) + var nns = new CString(mlen + slen) items.copy_to(nns, mlen, index_from, 0) if o isa FlatString then o.items.copy_to(nns, slen, o.index_from, mlen) diff --git a/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit b/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit index 8b77400..ba1e084 100644 --- a/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit +++ b/benchmarks/strings/array_to_s_vars/array_to_s_manual.nit @@ -33,7 +33,7 @@ redef class Array[E] na[i] = tmp i += 1 end - var ns = new NativeString(sl + 1) + var ns = new CString(sl + 1) ns[sl] = '\0' i = 0 var off = 0 diff --git a/contrib/jwrapper/src/model.nit b/contrib/jwrapper/src/model.nit index 01600ae..e2c8ac8 100644 --- a/contrib/jwrapper/src/model.nit +++ b/contrib/jwrapper/src/model.nit @@ -93,7 +93,7 @@ class JavaType end else # Use the prefix and the short class name - # e.g. given the prefix Native: java.lang.String -> NativeString + # e.g. given the prefix Native: java.lang.String -> CString name = prefix + id end diff --git a/contrib/pep8analysis/src/pep8analysis_web.nit b/contrib/pep8analysis/src/pep8analysis_web.nit index 8f5c97a..e9a81d8 100644 --- a/contrib/pep8analysis/src/pep8analysis_web.nit +++ b/contrib/pep8analysis/src/pep8analysis_web.nit @@ -40,7 +40,7 @@ in "C++" `{ using namespace emscripten; EMSCRIPTEN_BINDINGS(my_module) { - function("run_analysis", &NativeString_run_analysis, allow_raw_pointers()); + function("run_analysis", &CString_run_analysis, allow_raw_pointers()); } `} @@ -108,11 +108,11 @@ redef class AnalysisManager fun show_graph(content: String) do "show_graph('{content.escape_to_c}');".run_js end -redef class NativeString +redef class CString fun run_analysis do manager.run_web to_s end -fun dummy_set_callbacks import NativeString.run_analysis in "C++" `{ +fun dummy_set_callbacks import CString.run_analysis in "C++" `{ `} dummy_set_callbacks diff --git a/contrib/sort_downloads/src/sort_downloads.nit b/contrib/sort_downloads/src/sort_downloads.nit index 4cfc3a1..9b70e83 100755 --- a/contrib/sort_downloads/src/sort_downloads.nit +++ b/contrib/sort_downloads/src/sort_downloads.nit @@ -64,10 +64,10 @@ redef class String # Returns null on success fun file_rename_to(dest: String): nullable String import String.to_cstring, - NativeString.to_s, String.as nullable `{ + CString.to_s, String.as nullable `{ int res = rename(String_to_cstring(self), String_to_cstring(dest)); if (res == 0) return null_String(); - return String_as_nullable(NativeString_to_s(strerror(errno))); + return String_as_nullable(CString_to_s(strerror(errno))); `} # Replace `~` by the path to the home diretory diff --git a/lib/android/dalvik.nit b/lib/android/dalvik.nit index b1dae81..4777838 100644 --- a/lib/android/dalvik.nit +++ b/lib/android/dalvik.nit @@ -109,7 +109,7 @@ redef class Sys (*env)->DeleteLocalRef(env, class_class_loader); `} - private fun load_jclass_intern(instance_class_loader: JavaObject, class_loader_findClass: JMethodID, name: NativeString): JClass import jni_env `{ + private fun load_jclass_intern(instance_class_loader: JavaObject, class_loader_findClass: JMethodID, name: CString): JClass import jni_env `{ JNIEnv *env = Sys_jni_env(self); jobject class_name = (*env)->NewStringUTF(env, name); diff --git a/lib/android/log.nit b/lib/android/log.nit index b7f7e64..4ee6341 100644 --- a/lib/android/log.nit +++ b/lib/android/log.nit @@ -71,6 +71,6 @@ private fun priority_fatal: Int do return 7 private fun priority_silent: Int do return 8 # Write `text` to Android log at priority `level` with tag `tag` -private fun log_write(level: Int, tag, text: NativeString) `{ +private fun log_write(level: Int, tag, text: CString) `{ __android_log_write(level, tag, text); `} diff --git a/lib/android/native_app_glue.nit b/lib/android/native_app_glue.nit index d99f5a9..f83350e 100644 --- a/lib/android/native_app_glue.nit +++ b/lib/android/native_app_glue.nit @@ -260,10 +260,10 @@ extern class NdkNativeActivity `{ ANativeActivity * `} fun java_native_activity: NativeActivity `{ return self->clazz; `} # Path to this application's internal data directory. - fun internal_data_path: NativeString `{ return (char*)self->internalDataPath; `} + fun internal_data_path: CString `{ return (char*)self->internalDataPath; `} # Path to this application's external (removable/mountable) data directory. - fun external_data_path: NativeString `{ return (char*)self->externalDataPath; `} + fun external_data_path: CString `{ return (char*)self->externalDataPath; `} # The platform's SDK version code. fun sdk_version: Int `{ return self->sdkVersion; `} @@ -285,7 +285,7 @@ extern class NdkNativeActivity `{ ANativeActivity * `} # api? # # TODO activate in a future module at API 11 - #fun obb_path: NativeString `{ return (char*)self->obbPath; `} + #fun obb_path: CString `{ return (char*)self->obbPath; `} end # This is the interface for the standard glue code of a threaded diff --git a/lib/android/sensors.nit b/lib/android/sensors.nit index 0681e4a..f2c4bb4 100644 --- a/lib/android/sensors.nit +++ b/lib/android/sensors.nit @@ -121,8 +121,8 @@ end extern class ASensor `{ASensorRef`} new `{return malloc(sizeof(ASensorRef));`} - fun name: NativeString `{return (char*)ASensor_getName(self);`} - fun vendor: NativeString `{return (char*)ASensor_getVendor(self);`} + fun name: CString `{return (char*)ASensor_getName(self);`} + fun vendor: CString `{return (char*)ASensor_getVendor(self);`} fun sensor_type: ASensorType `{return ASensor_getType(self);`} fun resolution: Float `{return ASensor_getResolution(self);`} fun min_delay: Int `{return ASensor_getMinDelay(self);`} diff --git a/lib/base64.nit b/lib/base64.nit index 9418c95..26e1207 100644 --- a/lib/base64.nit +++ b/lib/base64.nit @@ -57,7 +57,7 @@ redef class Byte end end -redef class NativeString +redef class CString # Alphabet used by the base64 algorithm private fun base64_chars : Bytes do diff --git a/lib/binary/serialization.nit b/lib/binary/serialization.nit index 580639e..34de766 100644 --- a/lib/binary/serialization.nit +++ b/lib/binary/serialization.nit @@ -25,7 +25,7 @@ # | 0x06 utf8 byte sequence # Char # | 0x07 double(64 bits) # Float # | 0x08 block # String -# | 0x09 block # NativeString +# | 0x09 block # CString # | 0x0A flat_array; # Array[nullable Object] # # block = int64 int8*; @@ -129,7 +129,7 @@ class BinaryDeserializer private var unclaimed_attributes = new UnrolledList[HashMap[String, nullable Object]] # Buffer for one char - private var char_buf: NativeString is lazy do return new NativeString(4) + private var char_buf: CString is lazy do return new CString(4) # Read and deserialize the next attribute name and value # @@ -403,7 +403,7 @@ redef class Char end end -redef class NativeString +redef class CString redef fun serialize_to_binary(v) do v.stream.write_byte kind_native_string diff --git a/lib/c.nit b/lib/c.nit index 076ea65..55a89a0 100644 --- a/lib/c.nit +++ b/lib/c.nit @@ -207,9 +207,9 @@ extern class NativeCByteArray `{ unsigned char* `} `} end -# Wrapper around an array of `NativeString` in C (`char**`) with length and destroy state. -class CNativeStringArray - super CArray[NativeString] +# Wrapper around an array of `CString` in C (`char**`) with length and destroy state. +class CCStringArray + super CArray[CString] redef type NATIVE: NativeCStringArray @@ -219,10 +219,10 @@ class CNativeStringArray super size end - # Create from an `SequenceRead[NativeString]` - new from(array: SequenceRead[NativeString]) + # Create from an `SequenceRead[CString]` + new from(array: SequenceRead[CString]) do - var carray = new CNativeStringArray(array.length) + var carray = new CCStringArray(array.length) for i in array.length.times do carray[i] = array[i] end @@ -230,11 +230,11 @@ class CNativeStringArray end end -# An array of `NativeString` in C (`char**`) +# An array of `CString` in C (`char**`) extern class NativeCStringArray `{ char** `} super NativeCArray - redef type E: NativeString + redef type E: CString # Initialize a new NativeCStringArray of `size` elements. new(size: Int) `{ return calloc(size, sizeof(char*)); `} @@ -244,7 +244,7 @@ extern class NativeCStringArray `{ char** `} redef fun +(offset) `{ return self + offset; `} end -redef class NativeString +redef class CString super NativeCArray redef type E: Char diff --git a/lib/cocoa/foundation.nit b/lib/cocoa/foundation.nit index e7c3b17..2e50e39 100644 --- a/lib/cocoa/foundation.nit +++ b/lib/cocoa/foundation.nit @@ -35,12 +35,12 @@ extern class NSString in "ObjC" `{ NSString * `} new nil in "ObjC" `{ return nil; `} # Get an UTF8 encoded `char*` copy of `self` - fun utf8_string: NativeString in "ObjC" `{ return (char *)[self UTF8String]; `} + fun utf8_string: CString in "ObjC" `{ return (char *)[self UTF8String]; `} redef fun to_s do return utf8_string.to_s_with_copy end -redef class NativeString +redef class CString # Get a `NSString` from `self` with the specified `length` fun to_nsstring(length: Int): NSString in "ObjC" `{ return [[NSString alloc] initWithBytes:self @@ -58,7 +58,7 @@ end extern class NSData in "ObjC" `{ NSData * `} # Pointer to contained data - fun bytes: NativeString in "ObjC" `{ return (char*)self.bytes; `} + fun bytes: CString in "ObjC" `{ return (char*)self.bytes; `} # Number of bytes containted in `self` fun length: Int in "ObjC" `{ return self.length; `} diff --git a/lib/core/bytes.nit b/lib/core/bytes.nit index 85b457f..fed8173 100644 --- a/lib/core/bytes.nit +++ b/lib/core/bytes.nit @@ -53,7 +53,7 @@ redef class Byte super BytePattern # Write self as a string into `ns` at position `pos` - private fun add_digest_at(ns: NativeString, pos: Int) do + private fun add_digest_at(ns: CString, pos: Int) do var tmp = (0xF0u8 & self) >> 4 ns[pos] = if tmp >= 0x0Au8 then tmp + 0x37u8 else tmp + 0x30u8 tmp = 0x0Fu8 & self @@ -146,8 +146,8 @@ class Bytes super AbstractArray[Byte] super BytePattern - # A NativeString being a char*, it can be used as underlying representation here. - var items: NativeString + # A CString being a char*, it can be used as underlying representation here. + var items: CString # Number of bytes in the array redef var length @@ -163,13 +163,13 @@ class Bytes # var b = new Bytes.empty # assert b.to_s == "" init empty do - var ns = new NativeString(0) + var ns = new CString(0) init(ns, 0, 0) end # Init a `Bytes` with capacity `cap` init with_capacity(cap: Int) do - var ns = new NativeString(cap) + var ns = new CString(cap) init(ns, 0, cap) end @@ -262,7 +262,7 @@ class Bytes # ~~~ fun hexdigest: String do var elen = length * 2 - var ns = new NativeString(elen) + var ns = new CString(elen) var i = 0 var oi = 0 while i < length do @@ -285,7 +285,7 @@ class Bytes # ~~~ fun chexdigest: String do var elen = length * 4 - var ns = new NativeString(elen) + var ns = new CString(elen) var i = 0 var oi = 0 while i < length do @@ -308,7 +308,7 @@ class Bytes # ~~~ fun binarydigest: String do var elen = length * 8 - var ns = new NativeString(elen) + var ns = new CString(elen) var i = 0 var oi = 0 while i < length do @@ -430,13 +430,13 @@ class Bytes # Regenerates the buffer, necessary when it was persisted private fun regen do - var nns = new NativeString(capacity) + var nns = new CString(capacity) items.copy_to(nns, length, 0, 0) persisted = false end # Appends the `ln` first bytes of `ns` to self - fun append_ns(ns: NativeString, ln: Int) do + fun append_ns(ns: CString, ln: Int) do if persisted then regen var nlen = length + ln if nlen > capacity then enlarge(nlen) @@ -445,7 +445,7 @@ class Bytes end # Appends `ln` bytes from `ns` starting at index `from` to self - fun append_ns_from(ns: NativeString, ln, from: Int) do + fun append_ns_from(ns: CString, ln, from: Int) do if persisted then regen var nlen = length + ln if nlen > capacity then enlarge(nlen) @@ -466,7 +466,7 @@ class Bytes if capacity >= sz then return persisted = false while capacity < sz do capacity = capacity * 2 + 2 - var ns = new NativeString(capacity) + var ns = new CString(capacity) items.copy_to(ns, length, 0, 0) items = ns end @@ -637,7 +637,7 @@ end private class BytesIterator super IndexedIterator[Byte] - var tgt: NativeString + var tgt: CString redef var index @@ -796,7 +796,7 @@ redef class Text # assert "<STRING/&rt;".hexdigest == "266C743B535452494E47262334373B2672743B" fun hexdigest: String do var ln = byte_length - var outns = new NativeString(ln * 2) + var outns = new CString(ln * 2) var oi = 0 for i in [0 .. ln[ do bytes[i].add_digest_at(outns, oi) @@ -934,7 +934,7 @@ redef class FlatText end end -redef class NativeString +redef class CString # Creates a new `Bytes` object from `self` with `len` as length # # If `len` is null, strlen will determine the length of the Bytes @@ -948,7 +948,7 @@ redef class NativeString # If `len` is null, strlen will determine the length of the Bytes fun to_bytes_with_copy(len: nullable Int): Bytes do if len == null then len = cstring_length - var nns = new NativeString(len) + var nns = new CString(len) copy_to(nns, len, 0, 0) return new Bytes(nns, len, len) end diff --git a/lib/core/codecs/codec_base.nit b/lib/core/codecs/codec_base.nit index 0d7af31..a911a29 100644 --- a/lib/core/codecs/codec_base.nit +++ b/lib/core/codecs/codec_base.nit @@ -30,12 +30,12 @@ abstract class Codec fun char_max_size: Int is abstract # Transforms `c` to its representation in the format of `self` - fun encode_char(c: Char): NativeString is abstract + fun encode_char(c: Char): CString is abstract # Adds a char `c` to bytes `s` # # Returns the number of bytes written to `s` - fun add_char_to(c: Char, s: NativeString): Int is abstract + fun add_char_to(c: Char, s: CString): Int is abstract # Transforms `s` to the format of `self` fun encode_string(s: Text): Bytes is abstract @@ -57,11 +57,11 @@ abstract class Codec # * 0 if valid # * 1 if incomplete # * 2 if invalid - fun is_valid_char(ns: NativeString, position: Int): Int is abstract + fun is_valid_char(ns: CString, position: Int): Int is abstract # Decodes a char from `b` to a Unicode code-point - fun decode_char(b: NativeString): Char is abstract + fun decode_char(b: CString): Char is abstract # Decodes a string `b` to UTF-8 - fun decode_string(b: NativeString, len: Int): String is abstract + fun decode_string(b: CString, len: Int): String is abstract end diff --git a/lib/core/codecs/iso8859_1.nit b/lib/core/codecs/iso8859_1.nit index 21ea8a8..005c569 100644 --- a/lib/core/codecs/iso8859_1.nit +++ b/lib/core/codecs/iso8859_1.nit @@ -28,7 +28,7 @@ private class ISO88591Codec redef fun max_lookahead do return 1 redef fun encode_char(c) do - var ns = new NativeString(c.u8char_len) + var ns = new CString(c.u8char_len) add_char_to(c, ns) return ns end diff --git a/lib/core/codecs/utf8.nit b/lib/core/codecs/utf8.nit index c6fc71c..debb3f5 100644 --- a/lib/core/codecs/utf8.nit +++ b/lib/core/codecs/utf8.nit @@ -30,7 +30,7 @@ private class UTF8Codec redef fun max_lookahead do return 4 redef fun encode_char(c) do - var ns = new NativeString(c.u8char_len) + var ns = new CString(c.u8char_len) add_char_to(c, ns) return ns end @@ -71,7 +71,7 @@ private class UTF8Codec var ret = ns.to_s_with_length(len) var rit = ret.as(FlatString).items if rit == ns then - var nns = new NativeString(len) + var nns = new CString(len) rit.copy_to(nns, len, 0, 0) return nns.to_s_full(ret.byte_length, ret.length) end diff --git a/lib/core/environ.nit b/lib/core/environ.nit index 4747a6e..941bd1c 100644 --- a/lib/core/environ.nit +++ b/lib/core/environ.nit @@ -56,9 +56,9 @@ redef class String end end -redef class NativeString - private fun get_environ: NativeString `{ return getenv(self); `} - private fun setenv(value: NativeString) `{ +redef class CString + private fun get_environ: CString `{ return getenv(self); `} + private fun setenv(value: CString) `{ #ifdef _WIN32 _putenv_s(self, value); #else diff --git a/lib/core/exec.nit b/lib/core/exec.nit index 8cee011..97ee3fa 100644 --- a/lib/core/exec.nit +++ b/lib/core/exec.nit @@ -114,7 +114,7 @@ class Process end private var data: NativeProcess - private fun basic_exec_execute(prog, args: NativeString, argc: Int, pipeflag: Int): NativeProcess `{ + private fun basic_exec_execute(prog, args: CString, argc: Int, pipeflag: Int): NativeProcess `{ #ifdef _WIN32 // FIXME use a higher level abstraction to support WIN32 return -1; @@ -338,7 +338,7 @@ redef class Sys fun pid: Int `{ return getpid(); `} end -redef class NativeString +redef class CString # Execute self as a shell command. # # See the posix function system(3). diff --git a/lib/core/file.nit b/lib/core/file.nit index cd35cdc..bfbd8c3 100644 --- a/lib/core/file.nit +++ b/lib/core/file.nit @@ -257,7 +257,7 @@ class FileWriter redef var is_writable = false # Write `len` bytes from `native`. - private fun write_native(native: NativeString, from, len: Int) + private fun write_native(native: CString, from, len: Int) do if last_error != null then return if not _is_writable then @@ -304,20 +304,20 @@ redef class Int # Creates a file stream from a file descriptor `fd` using the file access `mode`. # # NOTE: The `mode` specified must be compatible with the one used in the file descriptor. - private fun fd_to_stream(mode: NativeString): NativeFile `{ + private fun fd_to_stream(mode: CString): NativeFile `{ return fdopen((int)self, mode); `} end # Constant for read-only file streams -private fun read_only: NativeString do return once "r".to_cstring +private fun read_only: CString do return once "r".to_cstring # Constant for write-only file streams # # If a stream is opened on a file with this method, # it will wipe the previous file if any. # Else, it will create the file. -private fun wipe_write: NativeString do return once "w".to_cstring +private fun wipe_write: CString do return once "w".to_cstring ############################################################################### @@ -1383,7 +1383,7 @@ redef class FlatString end end -redef class NativeString +redef class CString private fun file_exists: Bool `{ #ifdef _WIN32 DWORD attribs = GetFileAttributesA(self); @@ -1437,7 +1437,7 @@ redef class NativeString private fun file_chdir: Bool `{ return !chdir(self); `} - private fun file_realpath: NativeString `{ + private fun file_realpath: CString `{ #ifdef _WIN32 DWORD len = GetFullPathName(self, 0, NULL, NULL); char *buf = malloc(len+1); // FIXME don't leak memory @@ -1503,11 +1503,11 @@ end # Instance of this class are standard FILE * pointers private extern class NativeFile `{ FILE* `} - fun io_read(buf: NativeString, len: Int): Int `{ + fun io_read(buf: CString, len: Int): Int `{ return fread(buf, 1, len, self); `} - fun io_write(buf: NativeString, from, len: Int): Int `{ + fun io_write(buf: CString, from, len: Int): Int `{ return fwrite(buf+from, 1, len, self); `} @@ -1540,9 +1540,9 @@ private extern class NativeFile `{ FILE* `} return setvbuf(self, NULL, (int)mode, buf_length); `} - new io_open_read(path: NativeString) `{ return fopen(path, "r"); `} + new io_open_read(path: CString) `{ return fopen(path, "r"); `} - new io_open_write(path: NativeString) `{ return fopen(path, "w"); `} + new io_open_write(path: CString) `{ return fopen(path, "w"); `} new native_stdin `{ return stdin; `} @@ -1555,13 +1555,13 @@ end private extern class NativeDir `{ DIR* `} # Open a directory - new opendir(path: NativeString) `{ return opendir(path); `} + new opendir(path: CString) `{ return opendir(path); `} # Close a directory fun closedir `{ closedir(self); `} # Read the next directory entry - fun readdir: NativeString `{ + fun readdir: CString `{ struct dirent *de; de = readdir(self); if (!de) return NULL; @@ -1706,4 +1706,4 @@ end # Return the working (current) directory fun getcwd: String do return native_getcwd.to_s -private fun native_getcwd: NativeString `{ return getcwd(NULL, 0); `} +private fun native_getcwd: CString `{ return getcwd(NULL, 0); `} diff --git a/lib/core/fixed_ints.nit b/lib/core/fixed_ints.nit index 5e7c774..3fb7468 100644 --- a/lib/core/fixed_ints.nit +++ b/lib/core/fixed_ints.nit @@ -221,13 +221,13 @@ universal Int8 # assert ~0x2Fi8 == 0xD0i8 fun ~: Int8 is intern - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun to_s_len: Int `{ return snprintf(NULL, 0, "%"PRIi8, self); `} - # C function to convert a nit Int to a NativeString (char*) - private fun native_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert a nit Int to a CString (char*) + private fun native_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%"PRIi8, self); `} @@ -237,7 +237,7 @@ universal Int8 # assert (-123i8).to_s == "-123" redef fun to_s do var nslen = to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_to_s(ns, nslen + 1) return ns.to_s_with_length(nslen) @@ -367,13 +367,13 @@ universal Int16 # assert ~0x2Fi16 == 0xFFD0i16 fun ~: Int16 is intern - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun to_s_len: Int `{ return snprintf(NULL, 0, "%"PRIi16, self); `} - # C function to convert a nit Int to a NativeString (char*) - private fun native_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert a nit Int to a CString (char*) + private fun native_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%"PRIi16, self); `} @@ -383,7 +383,7 @@ universal Int16 # assert (-123i16).to_s == "-123" redef fun to_s do var nslen = to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_to_s(ns, nslen + 1) return ns.to_s_with_length(nslen) @@ -513,13 +513,13 @@ universal UInt16 # assert ~0x2Fu16 == 0xFFD0u16 fun ~: UInt16 is intern - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun to_s_len: Int `{ return snprintf(NULL, 0, "%"PRIu16, self); `} - # C function to convert a nit Int to a NativeString (char*) - private fun native_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert a nit Int to a CString (char*) + private fun native_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%"PRIu16, self); `} @@ -529,7 +529,7 @@ universal UInt16 # assert (-123u16).to_s == "65413" redef fun to_s do var nslen = to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_to_s(ns, nslen + 1) return ns.to_s_with_length(nslen) @@ -660,13 +660,13 @@ universal Int32 # assert ~0x2Fi32 == 0xFFFFFFD0i32 fun ~: Int32 is intern - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun to_s_len: Int `{ return snprintf(NULL, 0, "%"PRIi32, self); `} - # C function to convert a nit Int to a NativeString (char*) - private fun native_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert a nit Int to a CString (char*) + private fun native_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%"PRIi32, self); `} @@ -676,7 +676,7 @@ universal Int32 # assert (-123i32).to_s == "-123" redef fun to_s do var nslen = to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_to_s(ns, nslen + 1) return ns.to_s_with_length(nslen) @@ -806,13 +806,13 @@ universal UInt32 # assert ~0x2Fu32 == 0xFFFFFFD0u32 fun ~: UInt32 is intern - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun to_s_len: Int `{ return snprintf(NULL, 0, "%"PRIu32, self); `} - # C function to convert a nit Int to a NativeString (char*) - private fun native_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert a nit Int to a CString (char*) + private fun native_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%"PRIu32, self); `} @@ -822,7 +822,7 @@ universal UInt32 # assert (-123u32).to_s == "4294967173" redef fun to_s do var nslen = to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_to_s(ns, nslen + 1) return ns.to_s_with_length(nslen) diff --git a/lib/core/posix.nit b/lib/core/posix.nit index b7122e6..2969830 100644 --- a/lib/core/posix.nit +++ b/lib/core/posix.nit @@ -61,10 +61,10 @@ extern class Passwd `{struct passwd*`} new from_name(name: String) import String.to_cstring `{ return getpwnam( String_to_cstring(name) ); `} # Username - fun name: String import NativeString.to_s `{ return NativeString_to_s(self->pw_name); `} + fun name: String import CString.to_s `{ return CString_to_s(self->pw_name); `} # User password - fun passwd: String import NativeString.to_s `{ return NativeString_to_s(self->pw_passwd); `} + fun passwd: String import CString.to_s `{ return CString_to_s(self->pw_passwd); `} # User ID fun uid: Int `{ return self->pw_uid; `} @@ -73,10 +73,10 @@ extern class Passwd `{struct passwd*`} fun gid: Int `{ return self->pw_gid; `} # Home directory - fun dir: String import NativeString.to_s `{ return NativeString_to_s(self->pw_dir); `} + fun dir: String import CString.to_s `{ return CString_to_s(self->pw_dir); `} # Shell program - fun shell: String import NativeString.to_s `{ return NativeString_to_s(self->pw_shell); `} + fun shell: String import CString.to_s `{ return CString_to_s(self->pw_shell); `} end # Information on a user group @@ -88,16 +88,16 @@ extern class Group `{struct group*`} new from_name(name: String) import String.to_cstring `{ return getgrnam( String_to_cstring(name) ); `} # Name of this ground - fun name: String import NativeString.to_s `{ return NativeString_to_s(self->gr_name); `} + fun name: String import CString.to_s `{ return CString_to_s(self->gr_name); `} # Encrypted password of this group - fun passwd: String import NativeString.to_s `{ return NativeString_to_s(self->gr_passwd); `} + fun passwd: String import CString.to_s `{ return CString_to_s(self->gr_passwd); `} # Id of this group fun gid: Int `{ return self->gr_gid; `} # List of the members of the group - fun mem: Array[String] import Array[String], Array[String].add, NativeString.to_s `{ + fun mem: Array[String] import Array[String], Array[String].add, CString.to_s `{ char **mem; int m; Array_of_String ret; @@ -106,7 +106,7 @@ extern class Group `{struct group*`} ret = new_Array_of_String(); for (m = 0; mem[m] != NULL; m++) - Array_of_String_add(ret, NativeString_to_s(mem[m])); + Array_of_String_add(ret, CString_to_s(mem[m])); return ret; `} diff --git a/lib/core/re.nit b/lib/core/re.nit index 94672b4..3a3d196 100644 --- a/lib/core/re.nit +++ b/lib/core/re.nit @@ -42,7 +42,7 @@ private extern class NativeRegex `{ regex_t* `} new malloc `{ return malloc(sizeof(regex_t)); `} # Compile the regular expression `regex` into a form that is suitable for subsequent `regexec` searches - fun regcomp(regex: NativeString, cflags: Int): Int `{ + fun regcomp(regex: CString, cflags: Int): Int `{ return regcomp(self, regex, cflags); `} @@ -50,14 +50,14 @@ private extern class NativeRegex `{ regex_t* `} # # `nmatch` and `pmatch` are used to provide information regarding the location of any matches. # `eflags` may be the bitwise-or of one or both of `flag_notbol` and `flag_noteol`. - fun regexec(string: NativeString, nmatch: Int, pmatch: NativeMatchArray, eflags: Int): Int `{ + fun regexec(string: CString, nmatch: Int, pmatch: NativeMatchArray, eflags: Int): Int `{ return regexec(self, string, nmatch, pmatch, eflags); `} # Match `string` against the precompiled pattern buffer of `self`, do not locate matches # # `eflags` may be the bitwise-or of one or both of `flag_notbol` and `flag_noteol`. - fun regexec_match_only(string: NativeString, eflags: Int): Int `{ + fun regexec_match_only(string: CString, eflags: Int): Int `{ return regexec(self, string, 0, NULL, eflags); `} @@ -67,7 +67,7 @@ private extern class NativeRegex `{ regex_t* `} fun regfree `{ regfree(self); `} # Turn the error codes that can be returned by both `regcomp` and `regexec` into error message strings - fun regerror(errcode: Int): NativeString `{ + fun regerror(errcode: Int): CString `{ size_t len = regerror(errcode, self, NULL, 0); char *message = malloc(len); regerror(errcode, self, message, len); @@ -115,8 +115,8 @@ private extern class NativeMatchArray `{ regmatch_t* `} fun [](index: Int): NativeMatchArray `{ return self + index; `} end -redef extern class NativeString - private fun substring_from(index: Int): NativeString `{ return self + index; `} +redef extern class CString + private fun substring_from(index: Int): CString `{ return self + index; `} end redef class Text diff --git a/lib/core/stream.nit b/lib/core/stream.nit index a54c7e8..217e9c8 100644 --- a/lib/core/stream.nit +++ b/lib/core/stream.nit @@ -81,7 +81,7 @@ abstract class Reader fun read_bytes(i: Int): Bytes do if last_error != null then return new Bytes.empty - var s = new NativeString(i) + var s = new CString(i) var buf = new Bytes(s, 0, 0) while i > 0 and not eof do var c = read_byte @@ -521,7 +521,7 @@ abstract class BufferedReader while c < full_len do c = c * 2 + 2 _buffer_capacity = c end - var nns = new NativeString(_buffer_capacity) + var nns = new CString(_buffer_capacity) bf.items.copy_to(nns, bf.length, 0, 0) _buffer.copy_to(nns, remsp, _buffer_pos, bf.length) _buffer = nns @@ -629,7 +629,7 @@ abstract class BufferedReader end # The buffer - private var buffer: NativeString = new NativeString(0) + private var buffer: CString = new CString(0) # The current position in the buffer private var buffer_pos = 0 @@ -649,7 +649,7 @@ abstract class BufferedReader # Allocate a `_buffer` for a given `capacity`. protected fun prepare_buffer(capacity: Int) do - _buffer = new NativeString(capacity) + _buffer = new CString(capacity) _buffer_pos = 0 # need to read _buffer_length = 0 _buffer_capacity = capacity @@ -727,7 +727,7 @@ class StringReader redef fun read_all_bytes do var nslen = source.length - cursor - var nns = new NativeString(nslen) + var nns = new CString(nslen) source.copy_to_native(nns, nslen, cursor, 0) return new Bytes(nns, nslen, nslen) end diff --git a/lib/core/text/abstract_text.nit b/lib/core/text/abstract_text.nit index f95377e..71021ab 100644 --- a/lib/core/text/abstract_text.nit +++ b/lib/core/text/abstract_text.nit @@ -139,7 +139,7 @@ abstract class Text end # Return a null terminated char * - fun to_cstring: NativeString is abstract + fun to_cstring: CString is abstract # The index of the last occurrence of an element starting from pos (in reverse order). # @@ -866,7 +866,7 @@ abstract class Text # If no transformation is needed, return self as a string if not has_percent then return to_s - var buf = new NativeString(len) + var buf = new CString(len) var i = 0 var l = 0 while i < length do @@ -1108,15 +1108,15 @@ abstract class Text # Copies `n` bytes from `self` at `src_offset` into `dest` starting at `dest_offset` # - # Basically a high-level synonym of NativeString::copy_to + # Basically a high-level synonym of CString::copy_to # # REQUIRE: `n` must be large enough to contain `len` bytes # - # var ns = new NativeString(8) + # var ns = new CString(8) # "Text is String".copy_to_native(ns, 8, 2, 0) # assert ns.to_s_unsafe(8) == "xt is St" # - fun copy_to_native(dest: NativeString, n, src_offset, dest_offset: Int) do + fun copy_to_native(dest: CString, n, src_offset, dest_offset: Int) do var mypos = src_offset var itspos = dest_offset while n > 0 do @@ -1272,13 +1272,13 @@ abstract class FlatText # # Warning : Might be void in some subclasses, be sure to check # if set before using it. - var items: NativeString is noinit + var items: CString is noinit # Returns a char* starting at position `first_byte` # # WARNING: If you choose to use this service, be careful of the following. # - # Strings and NativeString are *ideally* always allocated through a Garbage Collector. + # Strings and CString are *ideally* always allocated through a Garbage Collector. # Since the GC tracks the use of the pointer for the beginning of the char*, it may be # deallocated at any moment, rendering the pointer returned by this function invalid. # Any access to freed memory may very likely cause undefined behaviour or a crash. @@ -1289,7 +1289,7 @@ abstract class FlatText # # As always, do not modify the content of the String in C code, if this is what you want # copy locally the char* as Nit Strings are immutable. - fun fast_cstring: NativeString is abstract + fun fast_cstring: CString is abstract redef var length = 0 @@ -1742,8 +1742,8 @@ redef class Object # User readable representation of `self`. fun to_s: String do return inspect - # The class name of the object in NativeString format. - private fun native_class_name: NativeString is intern + # The class name of the object in CString format. + private fun native_class_name: CString is intern # The class name of the object. # @@ -1779,13 +1779,13 @@ redef class Bool end redef class Byte - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun byte_to_s_len: Int `{ return snprintf(NULL, 0, "0x%02x", self); `} - # C function to convert an nit Int to a NativeString (char*) - private fun native_byte_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert an nit Int to a CString (char*) + private fun native_byte_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "0x%02x", self); `} @@ -1795,7 +1795,7 @@ redef class Byte # assert (-123).to_b.to_s == "0x85" redef fun to_s do var nslen = byte_to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_byte_to_s(ns, nslen + 1) return ns.to_s_unsafe(nslen) @@ -1805,7 +1805,7 @@ end redef class Int # Wrapper of strerror C function - private fun strerror_ext: NativeString `{ return strerror((int)self); `} + private fun strerror_ext: CString `{ return strerror((int)self); `} # Returns a string describing error number fun strerror: String do return strerror_ext.to_s @@ -1834,13 +1834,13 @@ redef class Int end end - # C function to calculate the length of the `NativeString` to receive `self` + # C function to calculate the length of the `CString` to receive `self` private fun int_to_s_len: Int `{ return snprintf(NULL, 0, "%ld", self); `} - # C function to convert an nit Int to a NativeString (char*) - private fun native_int_to_s(nstr: NativeString, strlen: Int) `{ + # C function to convert an nit Int to a CString (char*) + private fun native_int_to_s(nstr: CString, strlen: Int) `{ snprintf(nstr, strlen, "%ld", self); `} @@ -1985,7 +1985,7 @@ redef class Char # assert 'x'.to_s == "x" redef fun to_s do var ln = u8char_len - var ns = new NativeString(ln + 1) + var ns = new CString(ln + 1) u8char_tos(ns, ln) return ns.to_s_unsafe(ln) end @@ -2030,7 +2030,7 @@ redef class Char return buf.to_s end - private fun u8char_tos(r: NativeString, len: Int) `{ + private fun u8char_tos(r: CString, len: Int) `{ r[len] = '\0'; switch(len){ case 1: @@ -2234,7 +2234,7 @@ redef class Sys private fun native_argc: Int is intern # Second argument of the main C function. - private fun native_argv(i: Int): NativeString is intern + private fun native_argv(i: Int): CString is intern end # Comparator that efficienlty use `to_s` to compare things @@ -2294,7 +2294,7 @@ do return sys.program_args end -redef class NativeString +redef class CString # Get a `String` from the data at `self` copied into Nit memory # # Require: `self` is a null-terminated string. diff --git a/lib/core/text/flat.nit b/lib/core/text/flat.nit index e070fd4..2c29d90 100644 --- a/lib/core/text/flat.nit +++ b/lib/core/text/flat.nit @@ -36,16 +36,16 @@ end redef class FlatText - # First byte of the NativeString + # First byte of the CString protected fun first_byte: Int do return 0 - # Last byte of the NativeString + # Last byte of the CString protected fun last_byte: Int do return first_byte + _byte_length - 1 # Cache of the latest position (char) explored in the string var position: Int = 0 - # Cached position (bytes) in the NativeString underlying the String + # Cached position (bytes) in the CString underlying the String var bytepos: Int = 0 # Index of the character `index` in `_items` @@ -139,7 +139,7 @@ redef class FlatText var max = last_byte var pos = first_byte var nlen = extra + _byte_length - var nits = new NativeString(nlen) + var nits = new CString(nlen) var outpos = 0 while pos <= max do var c = its[pos] @@ -255,7 +255,7 @@ redef class FlatText var its = _items var max = last_byte var nlen = _byte_length + ln_extra - var nns = new NativeString(nlen) + var nns = new CString(nlen) var pos = first_byte var opos = 0 while pos <= max do @@ -426,7 +426,7 @@ abstract class FlatString redef fun to_cstring do var blen = _byte_length - var new_items = new NativeString(blen + 1) + var new_items = new CString(blen + 1) _items.copy_to(new_items, blen, _first_byte, 0) new_items[blen] = 0u8 return new_items @@ -530,7 +530,7 @@ abstract class FlatString # # `_items` will be used as is, without copy, to retrieve the characters of the string. # Aliasing issues is the responsibility of the caller. - private new with_infos(items: NativeString, byte_length, from: Int) + private new with_infos(items: CString, byte_length, from: Int) do var len = items.utf8_length(from, byte_length) if byte_length == len then return new ASCIIFlatString.full_data(items, byte_length, from, len) @@ -541,7 +541,7 @@ abstract class FlatString # # `_items` will be used as is, without copy, to retrieve the characters of the string. # Aliasing issues is the responsibility of the caller. - private new full(items: NativeString, byte_length, from, length: Int) + private new full(items: CString, byte_length, from, length: Int) do if byte_length == length then return new ASCIIFlatString.full_data(items, byte_length, from, length) return new UnicodeFlatString.full_data(items, byte_length, from, length) @@ -614,7 +614,7 @@ abstract class FlatString if s isa FlatText then var sits = s._items var sifrom = s.first_byte - var ns = new NativeString(nlen + 1) + var ns = new CString(nlen + 1) mits.copy_to(ns, mlen, mifrom, 0) sits.copy_to(ns, slen, sifrom, mlen) return new FlatString.full(ns, nlen, 0, _length + o.length) @@ -630,7 +630,7 @@ abstract class FlatString var newlen = mylen * i var its = _items var fb = _first_byte - var ns = new NativeString(new_byte_length + 1) + var ns = new CString(new_byte_length + 1) ns[new_byte_length] = 0u8 var offset = 0 while i > 0 do @@ -669,7 +669,7 @@ end private class UnicodeFlatString super FlatString - init full_data(items: NativeString, byte_length, from, length: Int) do + init full_data(items: CString, byte_length, from, length: Int) do self._items = items self._length = length self._byte_length = byte_length @@ -693,7 +693,7 @@ end private class ASCIIFlatString super FlatString - init full_data(items: NativeString, byte_length, from, length: Int) do + init full_data(items: CString, byte_length, from, length: Int) do self._items = items self._length = length self._byte_length = byte_length @@ -795,7 +795,7 @@ private class FlatStringByteReverseIterator var target: FlatString - var target_items: NativeString is noautoinit + var target_items: CString is noautoinit var curr_pos: Int @@ -821,7 +821,7 @@ private class FlatStringByteIterator var target: FlatString - var target_items: NativeString is noautoinit + var target_items: CString is noautoinit var curr_pos: Int @@ -884,12 +884,12 @@ class FlatBuffer redef fun substrings do return new FlatSubstringsIter(self) - # Re-copies the `NativeString` into a new one and sets it as the new `Buffer` + # Re-copies the `CString` into a new one and sets it as the new `Buffer` # # This happens when an operation modifies the current `Buffer` and # the Copy-On-Write flag `written` is set at true. private fun reset do - var nns = new NativeString(capacity) + var nns = new CString(capacity) if _byte_length != 0 then _items.copy_to(nns, _byte_length, 0, 0) _items = nns written = false @@ -904,7 +904,7 @@ class FlatBuffer var bt = _byte_length if bt + len > capacity then capacity = capacity * 2 + 2 - nit = new NativeString(capacity) + nit = new CString(capacity) oit.copy_to(nit, 0, 0, from) end oit.copy_to(nit, bt - from, from, from + len) @@ -1005,7 +1005,7 @@ class FlatBuffer # it does a copy of the current `Buffer` written = false var bln = _byte_length - var a = new NativeString(c) + var a = new CString(c) if bln > 0 then var it = _items if bln > 0 then it.copy_to(a, bln, 0, 0) @@ -1018,14 +1018,14 @@ class FlatBuffer do written = true var bln = _byte_length - if bln == 0 then _items = new NativeString(1) + if bln == 0 then _items = new CString(1) return new FlatString.full(_items, bln, 0, _length) end redef fun to_cstring do var bln = _byte_length - var new_native = new NativeString(bln + 1) + var new_native = new CString(bln + 1) new_native[bln] = 0u8 if _length > 0 then _items.copy_to(new_native, bln, 0, 0) return new_native @@ -1041,7 +1041,7 @@ class FlatBuffer # # If `_items` is shared, `written` should be set to true after the creation # so that a modification will do a copy-on-write. - private init with_infos(items: NativeString, capacity, byte_length, length: Int) + private init with_infos(items: CString, capacity, byte_length, length: Int) do self._items = items self.capacity = capacity @@ -1052,7 +1052,7 @@ class FlatBuffer # Create a new string copied from `s`. init from(s: Text) do - _items = new NativeString(s.byte_length) + _items = new CString(s.byte_length) for i in s.substrings do i._items.copy_to(_items, i._byte_length, first_byte, 0) _byte_length = s.byte_length _length = s.length @@ -1063,7 +1063,7 @@ class FlatBuffer init with_capacity(cap: Int) do assert cap >= 0 - _items = new NativeString(cap) + _items = new CString(cap) capacity = cap _byte_length = 0 end @@ -1105,7 +1105,7 @@ class FlatBuffer var byteto = its.char_to_byte_index(count + from - 1) byteto += its.char_at(byteto).u8char_len - 1 var byte_length = byteto - bytefrom + 1 - var r_items = new NativeString(byte_length) + var r_items = new CString(byte_length) its.copy_to(r_items, byte_length, bytefrom, 0) return new FlatBuffer.with_infos(r_items, byte_length, byte_length, count) end @@ -1174,7 +1174,7 @@ private class FlatBufferByteReverseIterator var target: FlatBuffer - var target_items: NativeString is noautoinit + var target_items: CString is noautoinit var curr_pos: Int @@ -1208,7 +1208,7 @@ private class FlatBufferByteIterator var target: FlatBuffer - var target_items: NativeString is noautoinit + var target_items: CString is noautoinit var curr_pos: Int @@ -1307,7 +1307,7 @@ private class FlatBufferCharIterator end -redef class NativeString +redef class CString redef fun to_s do return to_s_with_length(cstring_length) @@ -1335,14 +1335,14 @@ redef class NativeString do var r = clean_utf8(length) if r.items != self then return r - var new_self = new NativeString(length + 1) + var new_self = new CString(length + 1) copy_to(new_self, length, 0, 0) var str = new FlatString.with_infos(new_self, length, 0) new_self[length] = 0u8 return str end - # Cleans a NativeString if necessary + # Cleans a CString if necessary fun clean_utf8(len: Int): FlatString do var replacements: nullable Array[Int] = null var end_length = len @@ -1414,7 +1414,7 @@ redef class NativeString end var ret = self if end_length != len then - ret = new NativeString(end_length) + ret = new CString(end_length) var old_repl = 0 var off = 0 var repls = replacements.as(not null) @@ -1473,7 +1473,7 @@ redef class Int if self == 1 then return "1" var nslen = int_to_s_len - var ns = new NativeString(nslen + 1) + var ns = new CString(nslen + 1) ns[nslen] = 0u8 native_int_to_s(ns, nslen + 1) return new FlatString.full(ns, nslen, 0, nslen) @@ -1506,7 +1506,7 @@ redef class Array[E] i += 1 mypos += 1 end - var ns = new NativeString(sl + 1) + var ns = new CString(sl + 1) ns[sl] = 0u8 i = 0 var off = 0 @@ -1543,7 +1543,7 @@ redef class NativeArray[E] i += 1 mypos += 1 end - var ns = new NativeString(sl + 1) + var ns = new CString(sl + 1) ns[sl] = 0u8 i = 0 var off = 0 diff --git a/lib/core/text/native.nit b/lib/core/text/native.nit index 590cff8..f7c803b 100644 --- a/lib/core/text/native.nit +++ b/lib/core/text/native.nit @@ -84,15 +84,15 @@ redef class Int end # Native strings are simple C char * -extern class NativeString `{ char* `} - # Creates a new NativeString with a capacity of `length` +extern class CString `{ char* `} + # Creates a new CString with a capacity of `length` new(length: Int) is intern # Returns a char* starting at `index`. # # WARNING: Unsafe for extern code, use only for temporary # pointer manipulation purposes (e.g. write to file or such) - fun fast_cstring(index: Int): NativeString is intern + fun fast_cstring(index: Int): CString is intern # Get char at `index`. fun [](index: Int): Byte is intern @@ -101,7 +101,7 @@ extern class NativeString `{ char* `} fun []=(index: Int, item: Byte) is intern # Copy `self` to `dest`. - fun copy_to(dest: NativeString, length: Int, from: Int, to: Int) is intern + fun copy_to(dest: CString, length: Int, from: Int, to: Int) is intern redef fun ==(o) is intern do return is_same_instance(o) diff --git a/lib/core/text/ropes.nit b/lib/core/text/ropes.nit index ac95851..ca846fd 100644 --- a/lib/core/text/ropes.nit +++ b/lib/core/text/ropes.nit @@ -90,7 +90,7 @@ private class Concat redef fun to_cstring do var len = _byte_length - var ns = new NativeString(len + 1) + var ns = new CString(len + 1) ns[len] = 0u8 var off = 0 for i in substrings do @@ -302,7 +302,7 @@ redef class FlatString var sifrom = s._first_byte var mifrom = _first_byte var sits = s._items - var ns = new NativeString(nlen + 1) + var ns = new CString(nlen + 1) mits.copy_to(ns, mlen, mifrom, 0) sits.copy_to(ns, slen, sifrom, mlen) return new FlatString.full(ns, nlen, 0, length + s.length) @@ -333,9 +333,9 @@ end private class RopeByteReverseIterator super IndexedIterator[Byte] - # Current NativeString - var ns: NativeString is noautoinit - # Current position in NativeString + # Current CString + var ns: CString is noautoinit + # Current position in CString var pns: Int is noautoinit # Position in the Rope (0-indexed) var pos: Int is noautoinit @@ -377,7 +377,7 @@ private class RopeByteIterator # Position in current `String` var pns: Int is noautoinit # Current `String` being iterated on - var ns: NativeString is noautoinit + var ns: CString is noautoinit # Substrings of the Rope var subs: IndexedIterator[FlatString] is noautoinit # Maximum position to iterate on (e.g. Rope.byte_length) @@ -416,9 +416,9 @@ end private class RopeCharReverseIterator super IndexedIterator[Char] - # Current NativeString + # Current CString var ns: String is noautoinit - # Current position in NativeString + # Current position in CString var pns: Int is noautoinit # Position in the Rope (0-indexed) var pos: Int is noautoinit diff --git a/lib/core/time.nit b/lib/core/time.nit index 1555183..606ccd8 100644 --- a/lib/core/time.nit +++ b/lib/core/time.nit @@ -55,8 +55,8 @@ extern class TimeT `{time_t`} fun update `{ time(&self); `} # Convert `self` to a human readable String. - fun ctime: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy( ctime(&self) ); + fun ctime: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy( ctime(&self) ); `} # Difference in secondes from start (self if the end time) @@ -132,18 +132,18 @@ extern class Tm `{struct tm *`} fun is_dst: Bool `{ return self->tm_isdst; `} # Convert `self` to a human readable String. - private fun asctime: NativeString `{ return asctime(self); `} + private fun asctime: CString `{ return asctime(self); `} # Convert `self` to a human readable String corresponding to `format`. # TODO document allowed format. - fun strftime(format: String): String import String.to_cstring, NativeString.to_s_with_copy `{ + fun strftime(format: String): String import String.to_cstring, CString.to_s_with_copy `{ char* buf, *c_format; buf = (char*)malloc(100); c_format = String_to_cstring(format); strftime(buf, 100, c_format, self); - String s = NativeString_to_s_with_copy(buf); + String s = CString_to_s_with_copy(buf); free(buf); return s; `} diff --git a/lib/cpp.nit b/lib/cpp.nit index a09d634..f5c1a19 100644 --- a/lib/cpp.nit +++ b/lib/cpp.nit @@ -28,7 +28,7 @@ redef class Text fun to_cpp_string: CppString do return to_cstring.to_cpp_string(length) end -redef class NativeString +redef class CString # Get `self` as a `CppString` fun to_cpp_string(length: Int): CppString in "C++" `{ return new std::string(self, length); diff --git a/lib/curl/native_curl.nit b/lib/curl/native_curl.nit index 8fc9ccb..f802e75 100644 --- a/lib/curl/native_curl.nit +++ b/lib/curl/native_curl.nit @@ -45,7 +45,7 @@ in "C body" `{ } `} -redef extern class NativeString +redef extern class CString private fun native_callback_header(size, count: Int, target: NativeCurlCallbacks): Int do target.header_callback to_s_with_length(size*count) @@ -115,18 +115,18 @@ extern class NativeCurl `{ CURL * `} # Request Chars internal information from the CURL session fun easy_getinfo_chars(opt: CURLInfoChars): nullable String do - var answ = new Ref[NativeString]("".to_cstring) + var answ = new Ref[CString]("".to_cstring) if not native_getinfo_chars(opt, answ).is_ok then return null if answ.item.address_is_null then return null return answ.item.to_s end # Internal method used to get String object information initially knowns as C Chars type - private fun native_getinfo_chars(opt: CURLInfoChars, res: Ref[NativeString]): CURLCode - import Ref[NativeString].item= `{ + private fun native_getinfo_chars(opt: CURLInfoChars, res: Ref[CString]): CURLCode + import Ref[CString].item= `{ char *r; CURLcode c = curl_easy_getinfo( self, opt, &r); - if (c == CURLE_OK) Ref_of_NativeString_item__assign(res, r); + if (c == CURLE_OK) Ref_of_CString_item__assign(res, r); return c; `} @@ -204,11 +204,11 @@ extern class NativeCurl `{ CURL * `} # Register `delegate` to get callbacks about the CURL transfer fun register_callback_header(delegate: NativeCurlCallbacks): CURLCode - import NativeString.native_callback_header `{ + import CString.native_callback_header `{ CURLcode e; NativeCurlCallbacks_incr_ref(delegate); // FIXME deallocated these when download completes? - e = curl_easy_setopt(self, CURLOPT_HEADERFUNCTION, (curl_write_callback)&NativeString_native_callback_header); + e = curl_easy_setopt(self, CURLOPT_HEADERFUNCTION, (curl_write_callback)&CString_native_callback_header); if(e != CURLE_OK) return e; e = curl_easy_setopt(self, CURLOPT_WRITEHEADER, delegate); @@ -217,11 +217,11 @@ extern class NativeCurl `{ CURL * `} # Register `delegate` to get callbacks about the CURL transfer fun register_callback_body(delegate: NativeCurlCallbacks): CURLCode - import NativeString.native_callback_body `{ + import CString.native_callback_body `{ CURLcode e; NativeCurlCallbacks_incr_ref(delegate); - e = curl_easy_setopt(self, CURLOPT_WRITEFUNCTION, (curl_write_callback)&NativeString_native_callback_body); + e = curl_easy_setopt(self, CURLOPT_WRITEFUNCTION, (curl_write_callback)&CString_native_callback_body); if(e != CURLE_OK) return e; e = curl_easy_setopt(self, CURLOPT_WRITEDATA, delegate); @@ -230,11 +230,11 @@ extern class NativeCurl `{ CURL * `} # Register `delegate` to get callbacks about the CURL transfer fun register_callback_stream(delegate: NativeCurlCallbacks): CURLCode - import NativeString.native_callback_stream `{ + import CString.native_callback_stream `{ CURLcode e; NativeCurlCallbacks_incr_ref(delegate); - e = curl_easy_setopt(self, CURLOPT_WRITEFUNCTION, (curl_write_callback)&NativeString_native_callback_stream); + e = curl_easy_setopt(self, CURLOPT_WRITEFUNCTION, (curl_write_callback)&CString_native_callback_stream); if(e != CURLE_OK) return e; e = curl_easy_setopt(self, CURLOPT_WRITEDATA, delegate); @@ -243,18 +243,18 @@ extern class NativeCurl `{ CURL * `} # Register `delegate` to get callbacks about the CURL transfer fun register_callback_read(delegate: NativeCurlCallbacks): CURLCode - import NativeString.native_callback_stream `{ + import CString.native_callback_stream `{ NativeCurlCallbacks_incr_ref(delegate); return curl_easy_setopt(self, CURLOPT_READFUNCTION, (curl_write_callback)&nit_curl_callback_read_func); `} # Convert given string to URL encoded string - fun escape(url: String): String import String.to_cstring, NativeString.to_s_with_copy `{ + fun escape(url: String): String import String.to_cstring, CString.to_s_with_copy `{ char *orig_url, *encoded_url = NULL; orig_url = String_to_cstring(url); encoded_url = curl_easy_escape( self, orig_url, strlen(orig_url)); - String b_url = NativeString_to_s_with_copy(encoded_url); + String b_url = CString_to_s_with_copy(encoded_url); curl_free(encoded_url); return b_url; `} @@ -279,9 +279,9 @@ extern class CURLCode `{ CURLcode `} fun is_valid_protocol: Bool `{ return self == CURLE_UNSUPPORTED_PROTOCOL; `} fun is_valid_init: Bool `{ return self == CURLE_FAILED_INIT; `} fun to_i: Int do return code end - redef fun to_s import NativeString.to_s_with_copy `{ + redef fun to_s import CString.to_s_with_copy `{ char *c = (char*)curl_easy_strerror(self); - return NativeString_to_s_with_copy(c); + return CString_to_s_with_copy(c); `} end @@ -313,7 +313,7 @@ extern class CURLSList `{ struct curl_slist * `} private fun native_next_reachable(c: CURLSList): Bool `{ return (c != NULL && c->next != NULL); `} # Internal method to get current data - private fun native_data(c: CURLSList): String import NativeString.to_s `{ return NativeString_to_s(c->data); `} + private fun native_data(c: CURLSList): String import CString.to_s `{ return CString_to_s(c->data); `} # Internal method to get next element private fun native_next(c: CURLSList): CURLSList `{ return c->next; `} diff --git a/lib/egl.nit b/lib/egl.nit index d188c29..ba15a83 100644 --- a/lib/egl.nit +++ b/lib/egl.nit @@ -103,7 +103,7 @@ extern class EGLDisplay `{ EGLDisplay `} } `} - private fun report_egl_error(cmsg: NativeString) + private fun report_egl_error(cmsg: CString) do var msg = cmsg.to_s print "libEGL error: {msg}" @@ -173,8 +173,8 @@ extern class EGLDisplay `{ EGLDisplay `} end end - private fun query_string(name: Int): String import NativeString.to_s `{ - return NativeString_to_s((char *)eglQueryString(self, name)); + private fun query_string(name: Int): String import CString.to_s `{ + return CString_to_s((char *)eglQueryString(self, name)); `} fun vendor: String do return query_string(0x3053) diff --git a/lib/emscripten/emscripten.nit b/lib/emscripten/emscripten.nit index 3da59cc..bc320d4 100644 --- a/lib/emscripten/emscripten.nit +++ b/lib/emscripten/emscripten.nit @@ -29,7 +29,7 @@ redef class Text # Run `self` as JavaScript code fun run_js do run_js_native(self.escape_to_js.to_cstring) - private fun run_js_native(script: NativeString) `{ emscripten_run_script(script); `} + private fun run_js_native(script: CString) `{ emscripten_run_script(script); `} # Escape the content of `self` to pass to JavaScript code fun escape_to_js: Text do return replace('\n', "\\n") diff --git a/lib/gettext/gettext.nit b/lib/gettext/gettext.nit index 35b13d1..4152db7 100644 --- a/lib/gettext/gettext.nit +++ b/lib/gettext/gettext.nit @@ -29,7 +29,7 @@ redef class Sys end end -redef class NativeString +redef class CString # Sets the locale of the program running # # This can be set at different times in the program, @@ -54,14 +54,14 @@ redef class String # Gettext `gettext`, SEE gettext manual for further info fun gettext: String - import String.to_cstring, NativeString.to_s `{ - return NativeString_to_s(gettext(String_to_cstring(self))); + import String.to_cstring, CString.to_s `{ + return CString_to_s(gettext(String_to_cstring(self))); `} # Gettext `dgettext`, SEE gettext manual for further info fun dgettext(domain: String): String - import String.to_cstring, NativeString.to_s `{ - return NativeString_to_s(dgettext(String_to_cstring(domain), String_to_cstring(self))); + import String.to_cstring, CString.to_s `{ + return CString_to_s(dgettext(String_to_cstring(domain), String_to_cstring(self))); `} end diff --git a/lib/glesv2/glesv2.nit b/lib/glesv2/glesv2.nit index 7ad1e0b..a183c47 100644 --- a/lib/glesv2/glesv2.nit +++ b/lib/glesv2/glesv2.nit @@ -106,12 +106,12 @@ extern class GLProgram `{GLuint`} fun active_attrib_name(index: Int): String do var max_size = active_attribute_max_length - var cname = new NativeString(max_size) + var cname = new CString(max_size) active_attrib_name_native(index, max_size, cname) return cname.to_s end - private fun active_attrib_name_native(index, max_size: Int, name: NativeString) `{ + private fun active_attrib_name_native(index, max_size: Int, name: CString) `{ // We get more values than we need, for compatibility. At least the // NVidia driver tries to fill them even if NULL. @@ -142,12 +142,12 @@ extern class GLProgram `{GLuint`} fun active_uniform_name(index: Int): String do var max_size = active_uniform_max_length - var cname = new NativeString(max_size) + var cname = new CString(max_size) active_uniform_name_native(index, max_size, cname) return cname.to_s end - private fun active_uniform_name_native(index, max_size: Int, name: NativeString) `{ + private fun active_uniform_name_native(index, max_size: Int, name: CString) `{ int size; GLenum type; glGetActiveUniform(self, index, max_size, NULL, &size, &type, name); @@ -207,13 +207,13 @@ fun glGetProgramiv(program: GLProgram, pname: GLGetParameterName): Int `{ fun glGetProgramInfoLog(program: GLProgram): String do var size = glGetProgramiv(program, gl_INFO_LOG_LENGTH) - var buf = new NativeString(size) + var buf = new CString(size) native_glGetProgramInfoLog(program, size, buf) return buf.to_s_with_length(size) end # Return the program information log in `buf` -private fun native_glGetProgramInfoLog(program: GLProgram, buf_size: Int, buf: NativeString): Int `{ +private fun native_glGetProgramInfoLog(program: GLProgram, buf_size: Int, buf: CString): Int `{ int length; glGetProgramInfoLog(program, buf_size, &length, buf); return length; @@ -233,7 +233,7 @@ extern class GLShader `{GLuint`} return source_native(size).to_s end - private fun source_native(size: Int): NativeString `{ + private fun source_native(size: Int): CString `{ GLchar *code = malloc(size); glGetShaderSource(self, size, NULL, code); return code; @@ -277,12 +277,12 @@ fun gl_VALIDATE_STATUS: GLGetParameterName `{ return GL_VALIDATE_STATUS; `} fun glGetShaderInfoLog(shader: GLShader): String do var size = glGetShaderiv(shader, gl_INFO_LOG_LENGTH) - var buf = new NativeString(size) + var buf = new CString(size) native_glGetShaderInfoLog(shader, size, buf) return buf.to_s_with_length(size) end -private fun native_glGetShaderInfoLog(shader: GLShader, buf_size: Int, buffer: NativeString): Int `{ +private fun native_glGetShaderInfoLog(shader: GLShader, buf_size: Int, buffer: CString): Int `{ int length; glGetShaderInfoLog(shader, buf_size, &length, buffer); return length; @@ -302,7 +302,7 @@ fun glCreateShader(shader_type: GLShaderType): GLShader `{ `} # Replace the source code in the `shader` object with `code` -fun glShaderSource(shader: GLShader, code: NativeString) `{ +fun glShaderSource(shader: GLShader, code: CString) `{ glShaderSource(shader, 1, (GLchar const **)&code, NULL); `} diff --git a/lib/gtk/v3_10.nit b/lib/gtk/v3_10.nit index 37b5dd5..ab15c0c 100644 --- a/lib/gtk/v3_10.nit +++ b/lib/gtk/v3_10.nit @@ -90,16 +90,16 @@ extern class GtkHeaderBar `{ GtkHeaderBar* `} new `{ return (GtkHeaderBar*)gtk_header_bar_new(); `} fun title=(title: Text) do native_title = title.to_cstring - private fun native_title=(title: NativeString) `{ gtk_header_bar_set_title(self, title); `} + private fun native_title=(title: CString) `{ gtk_header_bar_set_title(self, title); `} fun title: String do return native_title.to_s - private fun native_title: NativeString `{ return (gchar *)gtk_header_bar_get_title(self); `} + private fun native_title: CString `{ return (gchar *)gtk_header_bar_get_title(self); `} fun subtitle=(subtitle: Text) do native_subtitle = subtitle.to_cstring - fun native_subtitle=(subtitle: NativeString) `{ gtk_header_bar_set_subtitle(self, subtitle); `} + fun native_subtitle=(subtitle: CString) `{ gtk_header_bar_set_subtitle(self, subtitle); `} fun subtitle: String do return native_subtitle.to_s - fun native_subtitle: NativeString `{ return (gchar *)gtk_header_bar_get_subtitle(self); `} + fun native_subtitle: CString `{ return (gchar *)gtk_header_bar_get_subtitle(self); `} fun custom_title=(title_widget: GtkWidget) `{ gtk_header_bar_set_custom_title(self, title_widget); `} @@ -121,23 +121,23 @@ extern class GtkStack `{ GtkStack * `} new `{ return (GtkStack*)gtk_stack_new(); `} fun stack_add(child: GtkWidget, name: String) do native_stack_add(child, name.to_cstring) - private fun native_stack_add(child: GtkWidget, name: NativeString) `{ gtk_stack_add_named(self, child, name); `} + private fun native_stack_add(child: GtkWidget, name: CString) `{ gtk_stack_add_named(self, child, name); `} - fun add_titled(child: GtkWidget, name, title: NativeString) `{ gtk_stack_add_titled(self, child, name, title); `} - fun native_add_titled(child: GtkWidget, name, title: NativeString) `{ gtk_stack_add_titled(self, child, name, title); `} + fun add_titled(child: GtkWidget, name, title: CString) `{ gtk_stack_add_titled(self, child, name, title); `} + fun native_add_titled(child: GtkWidget, name, title: CString) `{ gtk_stack_add_titled(self, child, name, title); `} fun visible_child=(child: GtkWidget) `{ gtk_stack_set_visible_child(self, child); `} fun visible_child: GtkWidget `{ return gtk_stack_get_visible_child(self); `} fun visible_child_name=(name: Text) do native_visible_child_name = name.to_cstring - fun native_visible_child_name=(name: NativeString) `{ gtk_stack_set_visible_child_name(self, name); `} + fun native_visible_child_name=(name: CString) `{ gtk_stack_set_visible_child_name(self, name); `} fun visible_child_name: Text do return native_visible_child_name.to_s - fun native_visible_child_name: NativeString `{ return (gchar *)gtk_stack_get_visible_child_name(self); `} + fun native_visible_child_name: CString `{ return (gchar *)gtk_stack_get_visible_child_name(self); `} fun set_visible_child_full(name: Text, transition: GtkStackTransitionType) do native_set_visible_child_full(name.to_cstring, transition) - fun native_set_visible_child_full(name: NativeString, transition: GtkStackTransitionType) `{ + fun native_set_visible_child_full(name: CString, transition: GtkStackTransitionType) `{ gtk_stack_set_visible_child_full(self, name, transition); `} diff --git a/lib/gtk/v3_4/gtk_assistant.nit b/lib/gtk/v3_4/gtk_assistant.nit index e472143..5838e5c 100644 --- a/lib/gtk/v3_4/gtk_assistant.nit +++ b/lib/gtk/v3_4/gtk_assistant.nit @@ -72,8 +72,8 @@ extern class GtkAssistant `{GtkAssistant *`} gtk_assistant_set_page_type(self, page, t); `} - fun get_page_title(page: GtkWidget): String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_assistant_get_page_title(self, page)); + fun get_page_title(page: GtkWidget): String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_assistant_get_page_title(self, page)); `} fun set_page_title(page: GtkWidget, title: String) import String.to_cstring `{ diff --git a/lib/gtk/v3_4/gtk_core.nit b/lib/gtk/v3_4/gtk_core.nit index b6fec7c..c3617f1 100644 --- a/lib/gtk/v3_4/gtk_core.nit +++ b/lib/gtk/v3_4/gtk_core.nit @@ -331,8 +331,8 @@ extern class GtkFrame `{GtkFrame *`} return (GtkFrame *)gtk_frame_new(String_to_cstring(lbl)); `} - fun frame_label: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_frame_get_label(self)); + fun frame_label: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_frame_get_label(self)); `} fun frame_label=(lbl: String) import String.to_cstring `{ @@ -475,8 +475,8 @@ extern class GtkEntry `{GtkEntry *`} return (GtkEntry *)gtk_entry_new(); `} - fun text: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_entry_get_text(self)); + fun text: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_entry_get_text(self)); `} fun text=(value: String) import String.to_cstring `{ @@ -682,8 +682,8 @@ extern class GtkLabel `{GtkLabel *`} `} # Returns the text of the label - fun text: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char*)gtk_label_get_text(self)); + fun text: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char*)gtk_label_get_text(self)); `} # Sets the angle of rotation for the label. @@ -704,7 +704,7 @@ extern class GtkLabel `{GtkLabel *`} # lbl.set_markup("\%s".to_cstring, # "Italic content") # ~~~ - fun set_markup(format, content: NativeString) `{ + fun set_markup(format, content: CString) `{ char *formatted = g_markup_printf_escaped(format, content); gtk_label_set_markup(self, formatted); g_free(formatted); @@ -803,8 +803,8 @@ extern class GtkButton `{GtkButton *`} return (GtkButton *)gtk_button_new_from_stock(String_to_cstring(stock_id)); `} - fun text: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_button_get_label(self)); + fun text: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_button_get_label(self)); `} fun text=(value: String) import String.to_cstring `{ @@ -876,8 +876,8 @@ extern class GtkExpander `{GtkExpander *`} gtk_expander_set_spacing(self, pixels); `} - fun label_text: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_expander_get_label(self)); + fun label_text: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_expander_get_label(self)); `} fun label_text=(lbl: String) import String.to_cstring `{ @@ -995,8 +995,8 @@ extern class GtkComboBox `{GtkComboBox *`} gtk_combo_box_set_id_column(self, id_column); `} - fun active_id: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_combo_box_get_active_id(self)); + fun active_id: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_combo_box_get_active_id(self)); `} fun active_id=(id_active: String) import String.to_cstring `{ @@ -1019,8 +1019,8 @@ extern class GtkComboBox `{GtkComboBox *`} gtk_combo_box_popdown(self); `} - fun title: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_combo_box_get_title(self)); + fun title: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_combo_box_get_title(self)); `} fun title=(t: String) import String.to_cstring `{ diff --git a/lib/gtk/v3_4/gtk_dialogs.nit b/lib/gtk/v3_4/gtk_dialogs.nit index f28a91b..ade1741 100644 --- a/lib/gtk/v3_4/gtk_dialogs.nit +++ b/lib/gtk/v3_4/gtk_dialogs.nit @@ -52,40 +52,40 @@ extern class GtkAboutDialog `{GtkAboutDialog *`} return (GtkAboutDialog *)gtk_about_dialog_new(); `} - fun program_name: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_program_name(self)); + fun program_name: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_program_name(self)); `} fun program_name=(name: String) import String.to_cstring `{ gtk_about_dialog_set_program_name(self, String_to_cstring(name)); `} - fun version: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_version(self)); + fun version: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_version(self)); `} fun version=(v: String) import String.to_cstring `{ gtk_about_dialog_set_version(self, String_to_cstring(v)); `} - fun copyright: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_copyright(self)); + fun copyright: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_copyright(self)); `} fun copyright=(c: String) import String.to_cstring `{ gtk_about_dialog_set_copyright(self, String_to_cstring(c)); `} - fun comments: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_comments(self)); + fun comments: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_comments(self)); `} fun comments=(com: String) import String.to_cstring `{ gtk_about_dialog_set_comments(self, String_to_cstring(com)); `} - fun license: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_license(self)); + fun license: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_license(self)); `} fun license=(li: String) import String.to_cstring `{ @@ -94,16 +94,16 @@ extern class GtkAboutDialog `{GtkAboutDialog *`} # license_type - fun website: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_about_dialog_get_website(self)); + fun website: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_about_dialog_get_website(self)); `} fun website=(link: String) import String.to_cstring `{ gtk_about_dialog_set_website(self, String_to_cstring(link)); `} - fun website_label: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *) gtk_about_dialog_get_website_label(self)); + fun website_label: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *) gtk_about_dialog_get_website_label(self)); `} fun website_label=(link_label: String) import String.to_cstring `{ @@ -111,8 +111,8 @@ extern class GtkAboutDialog `{GtkAboutDialog *`} `} # TODO - # fun authors: String import NativeString.to_s_with_copy `{ - # return NativeString_to_s_with_copy(gtk_about_dialog_get_authors(self)); + # fun authors: String import CString.to_s_with_copy `{ + # return CString_to_s_with_copy(gtk_about_dialog_get_authors(self)); # `} # TODO @@ -144,8 +144,8 @@ extern class GtkAppChooserDialog `{GtkAppChooserDialog *`} fun widget: GtkWidget `{ return gtk_app_chooser_dialog_get_widget(self); `} - fun heading: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_app_chooser_dialog_get_heading(self)); + fun heading: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_app_chooser_dialog_get_heading(self)); `} fun heading=(text: String) import String.to_cstring `{ diff --git a/lib/gtk/v3_4/gtk_widgets_ext.nit b/lib/gtk/v3_4/gtk_widgets_ext.nit index 1cf98ee..63cdb1e 100644 --- a/lib/gtk/v3_4/gtk_widgets_ext.nit +++ b/lib/gtk/v3_4/gtk_widgets_ext.nit @@ -131,8 +131,8 @@ extern class GtkProgressBar `{GtkProgressBar *`} gtk_progress_bar_set_show_text(self, show); `} - fun text: String import NativeString.to_s_with_copy `{ - return NativeString_to_s_with_copy((char *)gtk_progress_bar_get_text(self)); + fun text: String import CString.to_s_with_copy `{ + return CString_to_s_with_copy((char *)gtk_progress_bar_get_text(self)); `} fun text=(value: String) import String.to_cstring `{ @@ -275,5 +275,5 @@ extern class GtkCheckButton `{ GtkCheckButton * `} new `{ return (GtkCheckButton *)gtk_check_button_new(); `} - new with_label(lbl: NativeString) `{ return (GtkCheckButton *)gtk_check_button_new_with_label((gchar *)lbl); `} + new with_label(lbl: CString) `{ return (GtkCheckButton *)gtk_check_button_new_with_label((gchar *)lbl); `} end diff --git a/lib/ios/app.nit b/lib/ios/app.nit index 3070868..16f4b49 100644 --- a/lib/ios/app.nit +++ b/lib/ios/app.nit @@ -100,7 +100,7 @@ redef class App # # Nit extracts the first arguments from the `args` sequence, # so we need to add it back. That's why Nit's `args` is smaller than in C. - private fun register_args(program_name: NativeString, argc: Int, + private fun register_args(program_name: CString, argc: Int, argv: Sequence[String]) import Sequence[String].[], String.to_cstring in "ObjC" `{ app_nit_ios_argc = (int)(argc+1); diff --git a/lib/ios/ios.nit b/lib/ios/ios.nit index 4fd1d24..b7ad962 100644 --- a/lib/ios/ios.nit +++ b/lib/ios/ios.nit @@ -31,7 +31,7 @@ redef class NSString private fun nslog in "ObjC" `{ NSLog(@"%@", self); `} end -redef class NativeString +redef class CString # FIXME temp workaround for #1945, bypass Unicode checks redef fun char_at(pos) do return self[pos].ascii end diff --git a/lib/java/ffi_support.nit b/lib/java/ffi_support.nit index cadb598..5fafd18 100644 --- a/lib/java/ffi_support.nit +++ b/lib/java/ffi_support.nit @@ -70,7 +70,7 @@ redef class Sys end # Get a Java class by its name from the current `jni_env` - fun load_jclass(name: NativeString): JClass import jni_env `{ + fun load_jclass(name: CString): JClass import jni_env `{ JNIEnv *nit_ffi_jni_env = Sys_jni_env(self); // retrieve the implementation Java class @@ -88,12 +88,12 @@ end # A standard Java string `java.lang.String` # # Converted to a Nit string using `to_s`, or to a C string with `to_cstring`. -# Created using `String::to_java_string` or `NativeString::to_java_string`. +# Created using `String::to_java_string` or `CString::to_java_string`. extern class JavaString in "Java" `{ java.lang.String `} super JavaObject # Get the string from Java and copy it to Nit memory - fun to_cstring: NativeString import sys, Sys.jni_env `{ + fun to_cstring: CString import sys, Sys.jni_env `{ Sys sys = JavaString_sys(self); JNIEnv *env = Sys_jni_env(sys); @@ -118,7 +118,7 @@ extern class JavaString in "Java" `{ java.lang.String `} end end -redef class NativeString +redef class CString # Get a Java string from this C string # # This instance is only valid until the next execution of Java code. diff --git a/lib/json/serialization_read.nit b/lib/json/serialization_read.nit index 91bd914..10d5436 100644 --- a/lib/json/serialization_read.nit +++ b/lib/json/serialization_read.nit @@ -532,7 +532,7 @@ end # Metamodel # Class inheritance graph as a `POSet[String]` serialized to JSON -private fun class_inheritance_metamodel_json: NativeString is intern +private fun class_inheritance_metamodel_json: CString is intern redef class Sys # Class inheritance graph diff --git a/lib/json/serialization_write.nit b/lib/json/serialization_write.nit index 24026b1..43987e8 100644 --- a/lib/json/serialization_write.nit +++ b/lib/json/serialization_write.nit @@ -258,7 +258,7 @@ redef class Char end end -redef class NativeString +redef class CString redef fun accept_json_serializer(v) do to_s.accept_json_serializer(v) end diff --git a/lib/jvm.nit b/lib/jvm.nit index 874510c..692a1c9 100644 --- a/lib/jvm.nit +++ b/lib/jvm.nit @@ -108,15 +108,15 @@ private extern class JavaVMInitArgs `{ JavaVMInitArgs* `} end private extern class JavaVMOption `{ JavaVMOption* `} - fun string: String import NativeString.to_s `{ - return NativeString_to_s((char*)self->optionString); + fun string: String import CString.to_s `{ + return CString_to_s((char*)self->optionString); `} fun string=(v: String) import String.to_cstring `{ self->optionString = String_to_cstring(v); `} - fun extra_info: String import NativeString.to_s `{ - return NativeString_to_s((char*)self->extraInfo); + fun extra_info: String import CString.to_s `{ + return CString_to_s((char*)self->extraInfo); `} fun extra_info=(v: String) import String.to_cstring `{ self->extraInfo = String_to_cstring(v); @@ -157,7 +157,7 @@ extern class JavaVM `{JavaVM *`} return jvm; `} - private fun jni_error(msg: NativeString, v: Int) + private fun jni_error(msg: CString, v: Int) do print "JNI Error: {msg} ({v})" abort @@ -287,8 +287,8 @@ extern class JniEnv `{JNIEnv *`} return res; `} - # Call a method on `obj` designed by `method_id` with an array `args` of arguments returning a NativeString - fun call_string_method(obj: JavaObject, method_id: JMethodID, args: nullable Array[nullable Object]): NativeString import convert_args_to_jni `{ + # Call a method on `obj` designed by `method_id` with an array `args` of arguments returning a CString + fun call_string_method(obj: JavaObject, method_id: JMethodID, args: nullable Array[nullable Object]): CString import convert_args_to_jni `{ jvalue * args_tab = JniEnv_convert_args_to_jni(self, args); jobject jobj = (*self)->CallObjectMethod(self, obj, method_id, args_tab); free(args_tab); @@ -441,16 +441,16 @@ end # Represents a jni JNINNativeMethod extern class JNINativeMethod `{ JNINativeMethod* `} - fun name: String import NativeString.to_s `{ - return NativeString_to_s((void*)self->name); + fun name: String import CString.to_s `{ + return CString_to_s((void*)self->name); `} fun name=(name: String) import String.to_cstring `{ self->name = String_to_cstring(name); `} - fun signature: String import NativeString.to_s `{ - return NativeString_to_s((void*)self->signature); + fun signature: String import CString.to_s `{ + return CString_to_s((void*)self->signature); `} fun signature=(signature: String) import String.to_cstring `{ @@ -530,7 +530,7 @@ redef class Bool `} end -redef class NativeString +redef class CString redef fun to_jvalue(env)`{ jvalue value; value.l = (*env)->NewStringUTF(env, self); diff --git a/lib/libevent.nit b/lib/libevent.nit index 58e8cec..fdd84f8 100644 --- a/lib/libevent.nit +++ b/lib/libevent.nit @@ -184,7 +184,7 @@ class Connection do var evbuffer = bev.input_buffer var len = evbuffer.length - var buf = new NativeString(len) + var buf = new CString(len) evbuffer.remove(buf, len) var str = buf.to_s_with_length(len) read_callback str @@ -299,7 +299,7 @@ fun evutil_socket_error: Int `{ `} # Convert an error code from `evutil_socket_error` to a string -fun evutil_socket_error_to_string(error_code: Int): NativeString `{ +fun evutil_socket_error_to_string(error_code: Int): CString `{ return evutil_socket_error_to_string(error_code); `} @@ -344,7 +344,7 @@ extern class NativeBufferEvent `{ struct bufferevent * `} # Set callbacks to `read_callback_native`, `write_callback` and `event_callback` of `conn` fun setcb(conn: Connection) import Connection.read_callback_native, - Connection.write_callback, Connection.event_callback, NativeString `{ + Connection.write_callback, Connection.event_callback, CString `{ Connection_incr_ref(conn); bufferevent_setcb(self, (bufferevent_data_cb)c_read_cb, @@ -353,7 +353,7 @@ extern class NativeBufferEvent `{ struct bufferevent * `} `} # Write `length` bytes of `line` - fun write(line: NativeString, length: Int): Int `{ + fun write(line: CString, length: Int): Int `{ return bufferevent_write(self, line, length); `} @@ -384,7 +384,7 @@ extern class NativeEvBuffer `{ struct evbuffer * `} fun length: Int `{ return evbuffer_get_length(self); `} # Read data from an evbuffer and drain the bytes read - fun remove(buffer: NativeString, len: Int) `{ + fun remove(buffer: CString, len: Int) `{ evbuffer_remove(self, buffer, len); `} end @@ -410,7 +410,7 @@ end # A listener acting on an interface and port, spawns `Connection` on new connections extern class ConnectionListener `{ struct evconnlistener * `} - private new bind_to(base: NativeEventBase, address: NativeString, port: Int, factory: ConnectionFactory) + private new bind_to(base: NativeEventBase, address: CString, port: Int, factory: ConnectionFactory) import ConnectionFactory.accept_connection, error_callback `{ struct sockaddr_in sin; @@ -465,7 +465,7 @@ class ConnectionFactory # Human representation of remote client address var addr_len = 46 # Longest possible IPv6 address + null byte - var addr_buf = new NativeString(addr_len) + var addr_buf = new CString(addr_len) addr_buf = addrin_to_address(addrin, addr_buf, addr_len) var addr = if addr_buf.address_is_null then "Unknown address" @@ -493,7 +493,7 @@ class ConnectionFactory end # Put string representation of source `address` into `buf` - private fun addrin_to_address(address: Pointer, buf: NativeString, buf_len: Int): NativeString `{ + private fun addrin_to_address(address: Pointer, buf: CString, buf_len: Int): CString `{ struct sockaddr *addrin = (struct sockaddr*)address; if (addrin->sa_family == AF_INET) { diff --git a/lib/md5.nit b/lib/md5.nit index 2b6b85d..037c03d 100644 --- a/lib/md5.nit +++ b/lib/md5.nit @@ -500,8 +500,8 @@ redef class Text fun md5: String do return to_cstring.native_md5.to_s end -redef class NativeString - private fun native_md5: NativeString `{ +redef class CString + private fun native_md5: CString `{ md5_state_t state; md5_byte_t digest[16]; /* result */ char *hex_output = malloc(33*sizeof(char)); diff --git a/lib/mnit/android/android_assets.nit b/lib/mnit/android/android_assets.nit index e30db6d..b82d387 100644 --- a/lib/mnit/android/android_assets.nit +++ b/lib/mnit/android/android_assets.nit @@ -30,7 +30,7 @@ intrude import android::load_image extern class AndroidAsset in "C" `{struct AAsset*`} - fun read(count: Int): nullable String import String.as nullable, NativeString.to_s `{ + fun read(count: Int): nullable String import String.as nullable, CString.to_s `{ char *buffer = malloc(sizeof(char) * (count+1)); int read = AAsset_read(self, buffer, count); if (read != count) @@ -38,7 +38,7 @@ extern class AndroidAsset in "C" `{struct AAsset*`} else { buffer[count] = '\0'; - return String_as_nullable(NativeString_to_s(buffer)); + return String_as_nullable(CString_to_s(buffer)); } `} diff --git a/lib/mongodb/mongodb.nit b/lib/mongodb/mongodb.nit index 17b137f..e7416f8 100644 --- a/lib/mongodb/mongodb.nit +++ b/lib/mongodb/mongodb.nit @@ -93,7 +93,7 @@ private class BSON redef fun to_s do var ns = native.to_native_string var res = ns.to_s_with_copy - ns.free # manual free of gc allocated NativeString + ns.free # manual free of gc allocated CString return res end diff --git a/lib/mongodb/native_mongodb.nit b/lib/mongodb/native_mongodb.nit index ba9b5e3..692d08a 100644 --- a/lib/mongodb/native_mongodb.nit +++ b/lib/mongodb/native_mongodb.nit @@ -48,7 +48,7 @@ extern class NativeBSON `{ bson_t * `} # by parsing the JSON found in `data`. # Only a single JSON object may exist in data or an error will be set and # `NULL` returned. - new from_json_string(data: NativeString) import set_mongoc_error `{ + new from_json_string(data: CString) import set_mongoc_error `{ bson_error_t error; bson_t *bson; bson = bson_new_from_json((uint8_t *)data, -1, &error); @@ -64,7 +64,7 @@ extern class NativeBSON `{ bson_t * `} # The `bson_as_json()` function shall encode bson as a JSON encoded UTF-8 string. # The caller is responsible for freeing the resulting UTF-8 encoded string # by calling `bson_free()` with the result. - fun to_native_string: NativeString `{ return bson_as_json(self, NULL); `} + fun to_native_string: CString `{ return bson_as_json(self, NULL); `} # Wrapper for `bson_destroy()`. # @@ -100,7 +100,7 @@ extern class BSONError `{ bson_error_t * `} # Wrapper for `error.message`. # # The `error.message` field contains a human printable error message. - fun message: NativeString `{ return self->message; `} + fun message: CString `{ return self->message; `} end # Wrapper for `bson_oid_t`. @@ -123,10 +123,10 @@ extern class BSONObjectId `{ bson_oid_t * `} `} # Object id. - fun id: String import NativeString.to_s_with_copy `{ + fun id: String import CString.to_s_with_copy `{ char str[25]; bson_oid_to_string(self, str); - return NativeString_to_s_with_copy(str); + return CString_to_s_with_copy(str); `} # Destroy `self`. @@ -147,7 +147,7 @@ end # Wrapper for `char**`. # -# Used to handle array of NativeString returned by MongoDB. +# Used to handle array of CString returned by MongoDB. redef class NativeCStringArray # Frees `self`. # @@ -167,7 +167,7 @@ extern class NativeMongoClient `{ mongoc_client_t * `} # Wrapper for `mongoc_client_new()`. # # Creates a new `mongoc_client_t` using the `uri` string provided. - new(uri: NativeString) `{ + new(uri: CString) `{ mongoc_init(); return mongoc_client_new(uri); `} @@ -229,7 +229,7 @@ extern class NativeMongoDb `{ mongoc_database_t * `} # Database are automatically created on the MongoDB server upon insertion of # the first document into a collection. # There is no need to create a database manually. - new(client: NativeMongoClient, db_name: NativeString) `{ + new(client: NativeMongoClient, db_name: CString) `{ return mongoc_client_get_database(client, db_name); `} @@ -252,7 +252,7 @@ extern class NativeMongoDb `{ mongoc_database_t * `} # # Allocates a new `mongoc_collection_t` structure for the collection named # `name` in database. - fun collection(name: NativeString): NativeMongoCollection `{ + fun collection(name: CString): NativeMongoCollection `{ return mongoc_database_get_collection(self, name); `} @@ -260,7 +260,7 @@ extern class NativeMongoDb `{ mongoc_database_t * `} # # This function checks to see if a collection exists on the MongoDB server # within database. - fun has_collection(name: NativeString): Bool import set_mongoc_error `{ + fun has_collection(name: CString): Bool import set_mongoc_error `{ bson_error_t error; if(!mongoc_database_has_collection(self, name, &error)) { NativeMongoDb_set_mongoc_error(self, &error); @@ -312,7 +312,7 @@ extern class NativeMongoCollection `{ mongoc_collection_t * `} # Collections are automatically created on the MongoDB server upon insertion # of the first document. # There is no need to create a collection manually. - new(client: NativeMongoClient, db, collection: NativeString) `{ + new(client: NativeMongoClient, db, collection: CString) `{ return mongoc_client_get_collection(client, db, collection); `} @@ -494,7 +494,7 @@ extern class NativeMongoCollection `{ mongoc_collection_t * `} # The name of the collection will also be updated internally so it is safe # to continue using this collection after the rename. # Additional operations will occur on renamed collection. - fun rename(new_database, new_name: NativeString): Bool `{ + fun rename(new_database, new_name: CString): Bool `{ bson_error_t error; if(!mongoc_collection_rename(self, new_database, new_name, false, &error)){ NativeMongoCollection_set_mongoc_error(self, &error); diff --git a/lib/mpi/mpi.nit b/lib/mpi/mpi.nit index 5ea6596..7e6f9f6 100644 --- a/lib/mpi/mpi.nit +++ b/lib/mpi/mpi.nit @@ -50,11 +50,11 @@ class MPI fun finalize `{ MPI_Finalize(); `} # Name of this processor, usually the hostname - fun processor_name: String import NativeString.to_s_with_length `{ + fun processor_name: String import CString.to_s_with_length `{ char *name = malloc(MPI_MAX_PROCESSOR_NAME); int size; MPI_Get_processor_name(name, &size); - return NativeString_to_s_with_length(name, size); + return CString_to_s_with_length(name, size); `} # Send the content of a buffer @@ -338,7 +338,7 @@ extern class SuccessOrError `{ int `} `} redef fun to_s do return native_to_s.to_s - private fun native_to_s: NativeString `{ + private fun native_to_s: CString `{ char *err = malloc(MPI_MAX_ERROR_STRING); MPI_Error_string(self, err, NULL); return err; @@ -348,7 +348,7 @@ end # An MPI error class extern class ErrorClass `{ int `} redef fun to_s do return native_to_s.to_s - private fun native_to_s: NativeString `{ + private fun native_to_s: CString `{ char *err = malloc(MPI_MAX_ERROR_STRING); MPI_Error_string(self, err, NULL); return err; diff --git a/lib/pnacl/pnacl.nit b/lib/pnacl/pnacl.nit index 6d41120..71c87e4 100644 --- a/lib/pnacl/pnacl.nit +++ b/lib/pnacl/pnacl.nit @@ -571,10 +571,10 @@ extern class PepperVar `{ struct PP_Var* `} private fun as_bool: Bool `{ return self->value.as_bool; `} private fun as_int: Int `{ return self->value.as_int; `} private fun as_float: Float `{ return self->value.as_double; `} - private fun as_string: String import NativeString.to_s_with_length `{ + private fun as_string: String import CString.to_s_with_length `{ uint32_t len; char* str = (char*)g_varInterface->VarToUtf8(*self, &len); - return NativeString_to_s_with_length(str, len); + return CString_to_s_with_length(str, len); `} end @@ -646,7 +646,7 @@ class PnaclStream redef fun is_writable: Bool do return true # Checks if there is a message in the queue, and if so the message is handled automatically. - fun check_message: NativeString `{ + fun check_message: CString `{ return NitHandleMessage(); `} @@ -679,7 +679,7 @@ end class PnaclApp # Sets everything up to work, need to be called at first. - fun initialize import PnaclApp.handle_message, PnaclApp.handle_dictionary, NativeString.to_s_with_length `{ + fun initialize import PnaclApp.handle_message, PnaclApp.handle_dictionary, CString.to_s_with_length `{ app = self; `} diff --git a/lib/posix_ext.nit b/lib/posix_ext.nit index fc624a6..8dd83c3 100644 --- a/lib/posix_ext.nit +++ b/lib/posix_ext.nit @@ -19,5 +19,5 @@ module posix_ext redef extern class Passwd # User information - fun gecos: String import NativeString.to_s `{ return NativeString_to_s(self->pw_gecos); `} + fun gecos: String import CString.to_s `{ return CString_to_s(self->pw_gecos); `} end diff --git a/lib/postgresql/native_postgres.nit b/lib/postgresql/native_postgres.nit index d32c908..4fb8d31 100644 --- a/lib/postgresql/native_postgres.nit +++ b/lib/postgresql/native_postgres.nit @@ -35,10 +35,10 @@ extern class ExecStatusType `{int`} return !(self == PGRES_BAD_RESPONSE || self == PGRES_NONFATAL_ERROR || self == PGRES_FATAL_ERROR); `} - redef fun to_s import NativeString.to_s `{ + redef fun to_s import CString.to_s `{ char * err = PQresStatus(self); if(err == NULL) err = ""; - return NativeString_to_s(err); + return CString_to_s(err); `} end @@ -63,8 +63,8 @@ extern class NativePGResult `{PGresult *`} fun status: ExecStatusType `{ return PQresultStatus(self); `} # Returns the field name of a given column_number - fun fname(column_number:Int):String import NativeString.to_s `{ - return NativeString_to_s( PQfname(self, column_number)); + fun fname(column_number:Int):String import CString.to_s `{ + return CString_to_s( PQfname(self, column_number)); `} # Returns the column number associated with the column name @@ -73,8 +73,8 @@ extern class NativePGResult `{PGresult *`} `} # Returns a single field value of one row of the result at row_number, column_number - fun value(row_number:Int, column_number:Int):String import NativeString.to_s `{ - return NativeString_to_s(PQgetvalue(self, row_number, column_number)); + fun value(row_number:Int, column_number:Int):String import CString.to_s `{ + return CString_to_s(PQgetvalue(self, row_number, column_number)); `} # Tests wether a field is a null value @@ -123,9 +123,9 @@ extern class NativePostgres `{PGconn *`} `} # Returns the error message of the last operation on the connection - fun error: String import NativeString.to_s `{ + fun error: String import CString.to_s `{ char * error = PQerrorMessage(self); - return NativeString_to_s(error); + return CString_to_s(error); `} # Returns the status of this connection diff --git a/lib/readline.nit b/lib/readline.nit index 783e4e4..00f920c 100644 --- a/lib/readline.nit +++ b/lib/readline.nit @@ -22,11 +22,11 @@ in "C" `{ #include `} -private fun native_readline(prompt: NativeString): NativeString `{ +private fun native_readline(prompt: CString): CString `{ return readline(prompt); `} -private fun native_add_history(data: NativeString) `{ +private fun native_add_history(data: CString) `{ if (data == NULL) return; add_history(data); `} diff --git a/lib/sdl.nit b/lib/sdl.nit index 023bd53..7eae171 100644 --- a/lib/sdl.nit +++ b/lib/sdl.nit @@ -140,7 +140,7 @@ extern class SDLDisplay `{SDL_Surface *`} return null_SDLInputEvent(); `} - private fun new_key_event(name: NativeString, down: Bool): nullable SDLInputEvent + private fun new_key_event(name: CString, down: Bool): nullable SDLInputEvent do return new SDLKeyEvent(name.to_s, down) private fun new_mouse_motion_event(x, y, xr, yr: Float, down: Bool): nullable SDLInputEvent @@ -484,7 +484,7 @@ extern class SDLFont `{TTF_Font *`} if (fn == NULL) return null_String(); else - return String_as_nullable(NativeString_to_s(fn)); + return String_as_nullable(CString_to_s(fn)); `} # Return the style name of the font @@ -494,11 +494,11 @@ extern class SDLFont `{TTF_Font *`} if (sn == NULL) return null_String(); else - return String_as_nullable(NativeString_to_s(sn)); + return String_as_nullable(CString_to_s(sn)); `} # Return the estimated width of a String if used with the current font - fun width_of(text: String): Int import NativeString.to_s `{ + fun width_of(text: String): Int import CString.to_s `{ char *ctext = String_to_cstring(text); int w; if (TTF_SizeText(self, ctext, &w, NULL)) diff --git a/lib/sdl2/image.nit b/lib/sdl2/image.nit index a1373ec..bdceeac 100644 --- a/lib/sdl2/image.nit +++ b/lib/sdl2/image.nit @@ -51,12 +51,12 @@ class IMG fun quit `{ IMG_Quit(); `} # Get the latest image library error - fun error: NativeString `{ return (char*)IMG_GetError(); `} + fun error: CString `{ return (char*)IMG_GetError(); `} end redef extern class SDLSurface # Load the image at `path` inferring its type from the file extension - new load(path: NativeString) `{ return IMG_Load(path); `} + new load(path: CString) `{ return IMG_Load(path); `} end # Flags from `sys.sdl.img.initialize` diff --git a/lib/sdl2/sdl2_base.nit b/lib/sdl2/sdl2_base.nit index 52b1970..ff98dbb 100644 --- a/lib/sdl2/sdl2_base.nit +++ b/lib/sdl2/sdl2_base.nit @@ -42,7 +42,7 @@ class SDL # Returns the latest SDL error # # After calling this method, you should also call `clear_error`. - fun error: NativeString `{ return (char*)SDL_GetError(); `} + fun error: CString `{ return (char*)SDL_GetError(); `} # Clear the SDL error fun clear_error `{ SDL_ClearError(); `} @@ -65,7 +65,7 @@ class SDL fun system_ram: Int `{ return SDL_GetSystemRAM(); `} # Show a simple message box - fun show_simple_message_box(level: SDLMessageBoxFlags, title, content: NativeString) `{ + fun show_simple_message_box(level: SDLMessageBoxFlags, title, content: CString) `{ SDL_ShowSimpleMessageBox(level, title, content, NULL); `} @@ -120,7 +120,7 @@ end # A window created by SDL extern class SDLWindow `{ SDL_Window * `} # Create a window with the given `title`, `width` and `height`, also apply the `flags` - new (title: NativeString, width, height: Int, flags: SDLWindowFlags) `{ + new (title: CString, width, height: Int, flags: SDLWindowFlags) `{ return SDL_CreateWindow(title, SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, width, height, flags); @@ -138,7 +138,7 @@ extern class SDLWindow `{ SDL_Window * `} # Show a simple message box # # Similar to `sys.sdl.show_simple_message_box` but attached to this window - fun show_simple_message_box(level: SDLMessageBoxFlags, title, content: NativeString) `{ + fun show_simple_message_box(level: SDLMessageBoxFlags, title, content: CString) `{ SDL_ShowSimpleMessageBox(level, title, content, self); `} @@ -379,12 +379,12 @@ end extern class SDLSurface `{ SDL_Surface * `} # Load the BMP file at `path` - new load_bmp(path: NativeString) `{ return SDL_LoadBMP(path); `} + new load_bmp(path: CString) `{ return SDL_LoadBMP(path); `} redef fun free `{ SDL_FreeSurface(self); `} # Save this texture to a BMP file - fun save_bmp(path: NativeString) `{ SDL_SaveBMP(self, path); `} + fun save_bmp(path: CString) `{ SDL_SaveBMP(self, path); `} end # A loaded bitmap texture @@ -526,7 +526,7 @@ extern class SDLRendererInfo `{ SDL_RendererInfo * `} new malloc `{ return malloc(sizeof(SDL_RendererInfo)); `} # Name of the renderer's driver - fun name: NativeString `{ return (char*)self->name; `} + fun name: CString `{ return (char*)self->name; `} # Maximum texture width supported by the renderer fun max_texture_width: Int `{ return self->max_texture_width; `} diff --git a/lib/serialization/serialization.nit b/lib/serialization/serialization.nit index b39c1aa..f94445e 100644 --- a/lib/serialization/serialization.nit +++ b/lib/serialization/serialization.nit @@ -239,7 +239,7 @@ redef class Bool super DirectSerializable end redef class Char super DirectSerializable end redef class Int super DirectSerializable end redef class Float super DirectSerializable end -redef class NativeString super DirectSerializable end +redef class CString super DirectSerializable end redef class Text super DirectSerializable end redef class SimpleCollection[E] super Serializable end redef class Map[K, V] super Serializable end diff --git a/lib/sha1.nit b/lib/sha1.nit index e00745c..24a1fbc 100644 --- a/lib/sha1.nit +++ b/lib/sha1.nit @@ -217,8 +217,8 @@ in "C Header" `{ } `} -redef class NativeString - private fun sha1_intern(len: Int): NativeString `{ +redef class CString + private fun sha1_intern(len: Int): CString `{ sha1nfo s; sha1_init(&s); @@ -239,7 +239,7 @@ redef class String # Computes the SHA1 of the receiver # - # Returns a digest of 20 bytes as a NativeString, + # Returns a digest of 20 bytes as a CString, # note that all the characters are not necessarily ASCII. # If you want the hex string version of the digest, use # sha1_hexdigest. diff --git a/lib/socket/socket.nit b/lib/socket/socket.nit index 6e036b7..2d17656 100644 --- a/lib/socket/socket.nit +++ b/lib/socket/socket.nit @@ -71,7 +71,7 @@ class TCPStream # Creates a socket connection to host `host` on port `port` init connect(host: String, port: Int) do - _buffer = new NativeString(1024) + _buffer = new CString(1024) _buffer_pos = 0 native = new NativeSocket.socket(new NativeSocketAddressFamilies.af_inet, new NativeSocketTypes.sock_stream, new NativeSocketProtocolFamilies.pf_null) @@ -216,7 +216,7 @@ class TCPStream if _buffer_capacity >= len then return _buffer_capacity = len - var ns = new NativeString(_buffer_capacity) + var ns = new CString(_buffer_capacity) _buffer.copy_to(ns, _buffer_length - _buffer_pos, _buffer_pos, 0) _buffer = ns end @@ -401,7 +401,7 @@ class UDPSocket # On error, returns an empty string and sets `error` appropriately. fun recv(length: Int): String do - var buf = new NativeString(length) + var buf = new CString(length) var len = native.recvfrom(buf, length, 0, new NativeSocketAddrIn.nul) if len == -1 then error = new IOError.from_errno @@ -416,7 +416,7 @@ class UDPSocket fun recv_from(length: Int, sender: Ref[nullable SocketAddress]): String do var src = new NativeSocketAddrIn - var buf = new NativeString(length) + var buf = new CString(length) var len = native.recvfrom(buf, length, 0, src) if len == -1 then diff --git a/lib/socket/socket_c.nit b/lib/socket/socket_c.nit index 6842554..1486752 100644 --- a/lib/socket/socket_c.nit +++ b/lib/socket/socket_c.nit @@ -126,7 +126,7 @@ extern class NativeSocket `{ int* `} `} # Write `length` bytes from `buffer` - fun write(buffer: NativeString, length: Int): Int `{ + fun write(buffer: CString, length: Int): Int `{ return write(*self, buffer, length); `} @@ -137,7 +137,7 @@ extern class NativeSocket `{ int* `} `} # Read `length` bytes into `buffer`, returns the number of bytes read - fun read(buffer: NativeString, length: Int): Int `{ + fun read(buffer: CString, length: Int): Int `{ return read(*self, buffer, length); `} @@ -227,17 +227,17 @@ extern class NativeSocket `{ int* `} `} # Send `len` bytes from `buf` to `dest_addr` - fun sendto(buf: NativeString, len: Int, flags: Int, dest_addr: NativeSocketAddrIn): Int `{ + fun sendto(buf: CString, len: Int, flags: Int, dest_addr: NativeSocketAddrIn): Int `{ return sendto(*self, buf, len, flags, (struct sockaddr*)dest_addr, sizeof(struct sockaddr_in)); `} # Receive a message into `buf` of maximum `len` bytes - fun recv(buf: NativeString, len: Int, flags: Int): Int `{ + fun recv(buf: CString, len: Int, flags: Int): Int `{ return recv(*self, buf, len, flags); `} # Receive a message into `buf` of maximum `len` bytes and store sender info into `src_addr` - fun recvfrom(buf: NativeString, len: Int, flags: Int, src_addr: NativeSocketAddrIn): Int `{ + fun recvfrom(buf: CString, len: Int, flags: Int, src_addr: NativeSocketAddrIn): Int `{ socklen_t srclen = sizeof(struct sockaddr_in); return recvfrom(*self, buf, len, flags, (struct sockaddr*)src_addr, &srclen); `} @@ -275,7 +275,7 @@ extern class NativeSocketAddrIn `{ struct sockaddr_in* `} `} # Internet address as then IPV4 numbers-and-dots notation - fun address: NativeString `{ return (char*)inet_ntoa(self->sin_addr); `} + fun address: CString `{ return (char*)inet_ntoa(self->sin_addr); `} # Set `address` to `INADDR_ANY` fun address_any `{ self->sin_addr.s_addr = INADDR_ANY; `} @@ -298,7 +298,7 @@ end # Host entry information, a pointer to a `struct hostent` extern class NativeSocketHostent `{ struct hostent* `} - private fun native_h_aliases(i: Int): NativeString `{ + private fun native_h_aliases(i: Int): CString `{ return self->h_aliases[i]; `} @@ -314,7 +314,7 @@ extern class NativeSocketHostent `{ struct hostent* `} return res end - fun h_addr: NativeString `{ + fun h_addr: CString `{ return (char*)inet_ntoa(*(struct in_addr*)self->h_addr); `} @@ -322,7 +322,7 @@ extern class NativeSocketHostent `{ struct hostent* `} fun h_length: Int `{ return self->h_length; `} - fun h_name: NativeString `{ return self->h_name; `} + fun h_name: CString `{ return self->h_name; `} end extern class NativeTimeval `{ struct timeval* `} @@ -518,7 +518,7 @@ end redef class Sys # Get network host entry - fun gethostbyname(name: NativeString): NativeSocketHostent `{ + fun gethostbyname(name: CString): NativeSocketHostent `{ return gethostbyname(name); `} diff --git a/lib/sqlite3/native_sqlite3.nit b/lib/sqlite3/native_sqlite3.nit index 4b92786..8e49c96 100644 --- a/lib/sqlite3/native_sqlite3.nit +++ b/lib/sqlite3/native_sqlite3.nit @@ -78,7 +78,7 @@ extern class Sqlite3Code `{int`} return err.to_s end - private fun native_to_s: NativeString `{ + private fun native_to_s: CString `{ #if SQLITE_VERSION_NUMBER >= 3007015 return (char *)sqlite3_errstr(self); #else @@ -95,7 +95,7 @@ extern class NativeStatement `{sqlite3_stmt*`} return sqlite3_step(self); `} - fun column_name(i: Int): NativeString `{ + fun column_name(i: Int): CString `{ return (char *)sqlite3_column_name(self, i); `} @@ -112,7 +112,7 @@ extern class NativeStatement `{sqlite3_stmt*`} return sqlite3_column_int(self, i); `} - fun column_text(i: Int): NativeString `{ + fun column_text(i: Int): CString `{ return (char *)sqlite3_column_text(self, i); `} @@ -138,7 +138,7 @@ end extern class NativeSqlite3 `{sqlite3 *`} # Open a connection to a database in UTF-8 - new open(filename: NativeString) `{ + new open(filename: CString) `{ sqlite3 *self = NULL; int err = sqlite3_open(filename, &self); nit_sqlite_open_error = err; @@ -163,12 +163,12 @@ extern class NativeSqlite3 `{sqlite3 *`} `} # Execute a SQL statement - fun exec(sql: NativeString): Sqlite3Code `{ + fun exec(sql: CString): Sqlite3Code `{ return sqlite3_exec(self, sql, NULL, NULL, NULL); `} # Prepare a SQL statement - fun prepare(sql: NativeString): NativeStatement `{ + fun prepare(sql: CString): NativeStatement `{ sqlite3_stmt *stmt; int res = sqlite3_prepare_v2(self, sql, -1, &stmt, 0); if (res == SQLITE_OK) diff --git a/lib/websocket/websocket.nit b/lib/websocket/websocket.nit index 2a3c32f..8a97421 100644 --- a/lib/websocket/websocket.nit +++ b/lib/websocket/websocket.nit @@ -66,7 +66,7 @@ class WebsocketConnection super TCPStream init do - _buffer = new NativeString(1024) + _buffer = new CString(1024) _buffer_pos = 0 _buffer_capacity = 1024 _buffer_length = 0 @@ -236,9 +236,9 @@ class WebsocketConnection end # Unmasks a message sent by a client - private fun unmask_message(key: NativeString, message: NativeString, len: Int): NativeString + private fun unmask_message(key: CString, message: CString, len: Int): CString do - var return_message = new NativeString(len) + var return_message = new CString(len) for i in [0 .. len[ do return_message[i] = message[i] ^ key[i % 4] diff --git a/lib/xdg_basedir/xdg_basedir.nit b/lib/xdg_basedir/xdg_basedir.nit index 6c53124..21f0359 100644 --- a/lib/xdg_basedir/xdg_basedir.nit +++ b/lib/xdg_basedir/xdg_basedir.nit @@ -49,18 +49,18 @@ extern class XdgBasedir `{ xdgHandle* `} fun update: Bool `{ return xdgUpdateData(self); `} # Base directory for user specific data files. - fun data_home: String import NativeString.to_s `{ - return NativeString_to_s((char*)xdgDataHome(self)); + fun data_home: String import CString.to_s `{ + return CString_to_s((char*)xdgDataHome(self)); `} # Base directory for user specific configuration files. - fun config_home: String import NativeString.to_s `{ - return NativeString_to_s((char*)xdgConfigHome(self)); + fun config_home: String import CString.to_s `{ + return CString_to_s((char*)xdgConfigHome(self)); `} # Base directory for user specific non-essential data files. - fun cache_home: String import NativeString.to_s `{ - return NativeString_to_s((char*)xdgCacheHome(self)); + fun cache_home: String import CString.to_s `{ + return CString_to_s((char*)xdgCacheHome(self)); `} # Preference-ordered set of base directories to search for data files @@ -111,13 +111,13 @@ end private extern class ConstPointer `{ const void * `} # Convert a C `char **` to a Nit `Array[String]` fun to_string_array: Array[String] - import Array[String], Array[String].add, NativeString.to_s `{ + import Array[String], Array[String].add, CString.to_s `{ char **strings = (char**)self; Array_of_String aos = new_Array_of_String(); int p = 0; while (strings[p] != NULL) { - Array_of_String_add(aos, NativeString_to_s((char*)strings[p])); + Array_of_String_add(aos, CString_to_s((char*)strings[p])); p ++; } diff --git a/src/compiler/abstract_compiler.nit b/src/compiler/abstract_compiler.nit index 81c640c..9602fa7 100644 --- a/src/compiler/abstract_compiler.nit +++ b/src/compiler/abstract_compiler.nit @@ -1491,7 +1491,7 @@ abstract class AbstractCompilerVisitor end # Return a "const char*" variable associated to the classname of the dynamic type of an object - # NOTE: we do not return a `RuntimeVariable` "NativeString" as the class may not exist in the module/program + # NOTE: we do not return a `RuntimeVariable` "CString" as the class may not exist in the module/program fun class_name_string(value: RuntimeVariable): String is abstract # Variables handling @@ -1684,8 +1684,8 @@ abstract class AbstractCompilerVisitor return res end - # Generates a NativeString instance fully escaped in C-style \xHH fashion - fun native_string_instance(ns: NativeString, len: Int): RuntimeVariable do + # Generates a CString instance fully escaped in C-style \xHH fashion + fun native_string_instance(ns: CString, len: Int): RuntimeVariable do var mtype = mmodule.native_string_type var nat = new_var(mtype) var byte_esc = new Buffer.with_cap(len * 4) @@ -2073,7 +2073,7 @@ redef class MClassType return "int32_t" else if mclass.name == "UInt32" then return "uint32_t" - else if mclass.name == "NativeString" then + else if mclass.name == "CString" then return "char*" else if mclass.name == "NativeArray" then return "val*" @@ -2115,7 +2115,7 @@ redef class MClassType return "i32" else if mclass.name == "UInt32" then return "u32" - else if mclass.name == "NativeString" then + else if mclass.name == "CString" then return "str" else if mclass.name == "NativeArray" then #return "{self.arguments.first.ctype}*" @@ -2584,7 +2584,7 @@ redef class AMethPropdef v.ret(v.new_expr("(uint32_t){arguments[0]}", ret.as(not null))) return true end - else if cname == "NativeString" then + else if cname == "CString" then if pname == "[]" then v.ret(v.new_expr("(unsigned char)((int){arguments[0]}[{arguments[1]}])", ret.as(not null))) return true @@ -2608,7 +2608,7 @@ redef class AMethPropdef v.ret(v.new_expr("!{res}", ret.as(not null))) return true else if pname == "new" then - var alloc = v.nit_alloc(arguments[1].to_s, "NativeString") + var alloc = v.nit_alloc(arguments[1].to_s, "CString") v.ret(v.new_expr("(char*){alloc}", ret.as(not null))) return true else if pname == "fetch_4_chars" then diff --git a/src/compiler/global_compiler.nit b/src/compiler/global_compiler.nit index d050876..7b07847 100644 --- a/src/compiler/global_compiler.nit +++ b/src/compiler/global_compiler.nit @@ -330,7 +330,7 @@ class GlobalCompilerVisitor redef fun unbox_extern(value, mtype) do if mtype isa MClassType and mtype.mclass.kind == extern_kind and - mtype.mclass.name != "NativeString" then + mtype.mclass.name != "CString" then var res = self.new_var_extern(mtype) self.add "{res} = ((struct {mtype.c_name}*){value})->value; /* unboxing {value.mtype} */" return res @@ -342,7 +342,7 @@ class GlobalCompilerVisitor redef fun box_extern(value, mtype) do if not mtype isa MClassType or mtype.mclass.kind != extern_kind or - mtype.mclass.name == "NativeString" then return value + mtype.mclass.name == "CString" then return value var valtype = value.mtype.as(MClassType) var res = self.new_var(mtype) diff --git a/src/compiler/java_compiler.nit b/src/compiler/java_compiler.nit index ec759a2..f871f61 100644 --- a/src/compiler/java_compiler.nit +++ b/src/compiler/java_compiler.nit @@ -1318,7 +1318,7 @@ redef class MClassType return "double" else if mclass.name == "Byte" then return "byte" - else if mclass.name == "NativeString" then + else if mclass.name == "CString" then return "String" else if mclass.name == "NativeArray" then return "Array" diff --git a/src/compiler/separate_compiler.nit b/src/compiler/separate_compiler.nit index 8587f4a..c4defe0 100644 --- a/src/compiler/separate_compiler.nit +++ b/src/compiler/separate_compiler.nit @@ -252,7 +252,7 @@ class SeparateCompiler do # Collect all bas box class # FIXME: this is not completely fine with a separate compilation scheme - for classname in ["Int", "Bool", "Byte", "Char", "Float", "NativeString", + for classname in ["Int", "Bool", "Byte", "Char", "Float", "CString", "Pointer", "Int8", "Int16", "UInt16", "Int32", "UInt32"] do var classes = self.mainmodule.model.get_mclasses_by_name(classname) if classes == null then continue @@ -269,7 +269,7 @@ class SeparateCompiler #if mclass.mclass_type.ctype == "val*" or mclass.mclass_type.is_subtype(self.mainmodule, mclass.mclass_type pointer_type) then if mclass.mclass_type.ctype_extern == "val*" then return 0 - else if mclass.kind == extern_kind and mclass.name != "NativeString" then + else if mclass.kind == extern_kind and mclass.name != "CString" then return self.box_kinds[self.mainmodule.pointer_type.mclass] else return self.box_kinds[mclass] @@ -938,9 +938,9 @@ class SeparateCompiler v.add("return (val*){res};") v.add("\}") return - else if mtype.mclass.kind == extern_kind and mtype.mclass.name != "NativeString" then - # Is an extern class (other than Pointer and NativeString) - # Pointer is caught in a previous `if`, and NativeString is internal + else if mtype.mclass.kind == extern_kind and mtype.mclass.name != "CString" then + # Is an extern class (other than Pointer and CString) + # Pointer is caught in a previous `if`, and CString is internal var pointer_type = mainmodule.pointer_type @@ -1242,7 +1242,7 @@ class SeparateCompilerVisitor return res end var valtype = value.mtype.as(MClassType) - if mtype isa MClassType and mtype.mclass.kind == extern_kind and mtype.mclass.name != "NativeString" then + if mtype isa MClassType and mtype.mclass.kind == extern_kind and mtype.mclass.name != "CString" then valtype = compiler.mainmodule.pointer_type end var res = self.new_var(mtype) @@ -1267,7 +1267,7 @@ class SeparateCompilerVisitor redef fun unbox_extern(value, mtype) do if mtype isa MClassType and mtype.mclass.kind == extern_kind and - mtype.mclass.name != "NativeString" then + mtype.mclass.name != "CString" then var pointer_type = compiler.mainmodule.pointer_type var res = self.new_var_extern(mtype) self.add "{res} = ((struct instance_{pointer_type.c_name}*){value})->value; /* unboxing {value.mtype} */" @@ -1280,7 +1280,7 @@ class SeparateCompilerVisitor redef fun box_extern(value, mtype) do if mtype isa MClassType and mtype.mclass.kind == extern_kind and - mtype.mclass.name != "NativeString" then + mtype.mclass.name != "CString" then var valtype = compiler.mainmodule.pointer_type var res = self.new_var(mtype) compiler.undead_types.add(mtype) @@ -1888,7 +1888,7 @@ class SeparateCompilerVisitor if not value.mtype.is_c_primitive then self.add "{res} = {value} == NULL ? \"null\" : {type_info(value)}->name;" else if value.mtype isa MClassType and value.mtype.as(MClassType).mclass.kind == extern_kind and - value.mtype.as(MClassType).name != "NativeString" then + value.mtype.as(MClassType).name != "CString" then self.add "{res} = \"{value.mtype.as(MClassType).mclass}\";" else self.require_declaration("type_{value.mtype.c_name}") diff --git a/src/compiler/separate_erasure_compiler.nit b/src/compiler/separate_erasure_compiler.nit index c370461..244a9ed 100644 --- a/src/compiler/separate_erasure_compiler.nit +++ b/src/compiler/separate_erasure_compiler.nit @@ -322,7 +322,7 @@ class SeparateErasureCompiler v.add("return (val*){res};") v.add("\}") return - else if mtype.mclass.kind == extern_kind and mtype.mclass.name != "NativeString" then + else if mtype.mclass.kind == extern_kind and mtype.mclass.name != "CString" then var pointer_type = mainmodule.pointer_type self.provide_declaration("NEW_{c_name}", "{mtype.ctype} NEW_{c_name}();") @@ -603,7 +603,7 @@ class SeparateErasureCompilerVisitor redef fun unbox_extern(value, mtype) do if mtype isa MClassType and mtype.mclass.kind == extern_kind and - mtype.mclass.name != "NativeString" then + mtype.mclass.name != "CString" then var pointer_type = compiler.mainmodule.pointer_type var res = self.new_var_extern(mtype) self.add "{res} = ((struct instance_{pointer_type.c_name}*){value})->value; /* unboxing {value.mtype} */" @@ -616,7 +616,7 @@ class SeparateErasureCompilerVisitor redef fun box_extern(value, mtype) do if mtype isa MClassType and mtype.mclass.kind == extern_kind and - mtype.mclass.name != "NativeString" then + mtype.mclass.name != "CString" then var valtype = compiler.mainmodule.pointer_type var res = self.new_var(mtype) if compiler.runtime_type_analysis != null and not compiler.runtime_type_analysis.live_types.has(value.mtype.as(MClassType)) then diff --git a/src/interpreter/dynamic_loading_ffi/dynamic_loading_ffi.nit b/src/interpreter/dynamic_loading_ffi/dynamic_loading_ffi.nit index af848f6..c748ad9 100644 --- a/src/interpreter/dynamic_loading_ffi/dynamic_loading_ffi.nit +++ b/src/interpreter/dynamic_loading_ffi/dynamic_loading_ffi.nit @@ -130,8 +130,8 @@ private extern class CallArg `{ nit_call_arg* `} # The `Instance` held by this cell fun instance=(value: Instance) is light_ffi `{ self->value_Pointer = value; `} - # The `NativeString` held by this cell - fun native_string: NativeString `{ return (char*)self->value_Pointer; `} + # The `CString` held by this cell + fun native_string: CString `{ return (char*)self->value_Pointer; `} # Set the content of this cell according to `static_type` # @@ -168,8 +168,8 @@ private extern class CallArg `{ nit_call_arg* `} else if static_type.name == "Float" then assert value isa PrimitiveInstance[Float] self.float = value.val - else if static_type.name == "NativeString" then - assert value isa PrimitiveInstance[NativeString] + else if static_type.name == "CString" then + assert value isa PrimitiveInstance[CString] self.pointer = value.val else if static_type isa MClassType and static_type.mclass.kind == extern_kind then assert value isa PrimitiveInstance[Pointer] else print value.class_name @@ -207,8 +207,8 @@ private extern class CallArg `{ nit_call_arg* `} return v.uint32_instance(self.uint32) else if name == "Float" then return v.float_instance(self.float) - else if name == "NativeString" then - var instance = new PrimitiveInstance[NativeString](static_type, self.native_string) + else if name == "CString" then + var instance = new PrimitiveInstance[CString](static_type, self.native_string) v.init_instance_primitive instance return instance else if static_type isa MClassType and static_type.mclass.kind == extern_kind then @@ -225,17 +225,17 @@ end # Handle to foreign code library private extern class ForeignCodeLib # Open and load the library at `path` - new dlopen(path: NativeString) `{ + new dlopen(path: CString) `{ return dlopen(path, RTLD_LOCAL | RTLD_NOW); `} # Find the `ForeignCodeEntry` at `symbol_name` - fun dlsym(symbol_name: NativeString): ForeignCodeEntry `{ + fun dlsym(symbol_name: CString): ForeignCodeEntry `{ return dlsym(self, symbol_name); `} end -private fun dlerror: NativeString `{ return dlerror(); `} +private fun dlerror: CString `{ return dlerror(); `} # Handle to an implementation function in a `ForeignCodeLib` private extern class ForeignCodeEntry`{ nit_foreign_lib_entry `} diff --git a/src/interpreter/naive_interpreter.nit b/src/interpreter/naive_interpreter.nit index 62cb4d8..5c9b27f 100644 --- a/src/interpreter/naive_interpreter.nit +++ b/src/interpreter/naive_interpreter.nit @@ -329,7 +329,7 @@ class NaiveInterpreter end # Return a new native string initialized with `txt` - fun native_string_instance_from_ns(txt: NativeString, len: Int): Instance + fun native_string_instance_from_ns(txt: CString, len: Int): Instance do var instance = native_string_instance_len(len) var val = instance.val @@ -339,12 +339,12 @@ class NaiveInterpreter end # Return a new native string initialized of `length` - fun native_string_instance_len(length: Int): PrimitiveInstance[NativeString] + fun native_string_instance_len(length: Int): PrimitiveInstance[CString] do - var val = new NativeString(length) + var val = new CString(length) var t = mainmodule.native_string_type - var instance = new PrimitiveInstance[NativeString](t, val) + var instance = new PrimitiveInstance[CString](t, val) init_instance_primitive(instance) return instance end @@ -1148,11 +1148,11 @@ redef class AMethPropdef else if pname == "round" then return v.float_instance(args[0].to_f.round) end - else if cname == "NativeString" then + else if cname == "CString" then if pname == "new" then return v.native_string_instance_len(args[1].to_i) end - var recvval = args.first.val.as(NativeString) + var recvval = args.first.val.as(CString) if pname == "[]" then var arg1 = args[1].to_i return v.byte_instance(recvval[arg1]) @@ -1161,8 +1161,8 @@ redef class AMethPropdef recvval[arg1] = args[2].val.as(Byte) return null else if pname == "copy_to" then - # sig= copy_to(dest: NativeString, length: Int, from: Int, to: Int) - var destval = args[1].val.as(NativeString) + # sig= copy_to(dest: CString, length: Int, from: Int, to: Int) + var destval = args[1].val.as(CString) var lenval = args[2].to_i var fromval = args[3].to_i var toval = args[4].to_i @@ -1174,11 +1174,11 @@ redef class AMethPropdef var ns = recvval.fast_cstring(args[1].to_i) return v.native_string_instance(ns.to_s) else if pname == "fetch_4_chars" then - return v.int_instance(args[0].val.as(NativeString).fetch_4_chars(args[1].to_i)) + return v.int_instance(args[0].val.as(CString).fetch_4_chars(args[1].to_i)) else if pname == "fetch_4_hchars" then - return v.int_instance(args[0].val.as(NativeString).fetch_4_hchars(args[1].to_i)) + return v.int_instance(args[0].val.as(CString).fetch_4_hchars(args[1].to_i)) else if pname == "utf8_length" then - return v.int_instance(args[0].val.as(NativeString).utf8_length(args[1].to_i, args[2].to_i)) + return v.int_instance(args[0].val.as(CString).utf8_length(args[1].to_i, args[2].to_i)) end else if cname == "NativeArray" then if pname == "new" then diff --git a/src/interpreter/primitive_types.nit b/src/interpreter/primitive_types.nit index 4912404..129d0c6 100644 --- a/src/interpreter/primitive_types.nit +++ b/src/interpreter/primitive_types.nit @@ -47,14 +47,14 @@ class PrimitiveNativeFile return false end - fun io_read(buf: NativeString, len: Int): Int do + fun io_read(buf: CString, len: Int): Int do if file isa FileStream then return file.as(FileStream)._file.io_read(buf, len) var str = file.as(Reader).read(len) str.to_cstring.copy_to(buf, str.length, 0, 0) return str.length end - fun io_write(buf: NativeString, from, len: Int): Int do + fun io_write(buf: CString, from, len: Int): Int do if file isa FileStream then return file.as(FileStream)._file.io_write(buf, from, len) file.as(Writer).write(buf.to_s_with_length(len).substring_from(from)) return len diff --git a/src/model/model.nit b/src/model/model.nit index 3733566..030cca9 100644 --- a/src/model/model.nit +++ b/src/model/model.nit @@ -252,8 +252,8 @@ redef class MModule # The primitive type `String` var string_type: MClassType = self.get_primitive_class("String").mclass_type is lazy - # The primitive type `NativeString` - var native_string_type: MClassType = self.get_primitive_class("NativeString").mclass_type is lazy + # The primitive type `CString` + var native_string_type: MClassType = self.get_primitive_class("CString").mclass_type is lazy # A primitive type of `Array` fun array_type(elt_type: MType): MClassType do return array_class.get_mtype([elt_type]) diff --git a/src/nitni/nitni_base.nit b/src/nitni/nitni_base.nit index d18d2c0..41197ef 100644 --- a/src/nitni/nitni_base.nit +++ b/src/nitni/nitni_base.nit @@ -102,7 +102,7 @@ redef class MClassType if name == "UInt16" then return "uint16_t" if name == "Int32" then return "int32_t" if name == "UInt32" then return "uint32_t" - if name == "NativeString" then return "char*" + if name == "CString" then return "char*" if mclass.kind == extern_kind then var ctype = mclass.ctype assert ctype != null @@ -123,7 +123,7 @@ redef class MClassType if name == "UInt16" then return "uint16_t" if name == "Int32" then return "int32_t" if name == "UInt32" then return "uint32_t" - if name == "NativeString" then return "char*" + if name == "CString" then return "char*" if mclass.kind == extern_kind then return "void*" return super end @@ -131,7 +131,7 @@ redef class MClassType redef fun mangled_cname do return mclass.name redef fun is_cprimitive do return mclass.kind == extern_kind or - (once ["Bool", "Char", "Float", "Int", "NativeString", + (once ["Bool", "Char", "Float", "Int", "CString", "Byte", "Int8", "Int16", "UInt16", "Int32", "UInt32"]).has(mclass.name) end diff --git a/src/semantize/typing.nit b/src/semantize/typing.nit index 9e2d69a..d586881 100644 --- a/src/semantize/typing.nit +++ b/src/semantize/typing.nit @@ -1480,7 +1480,7 @@ redef class AugmentedStringFormExpr var newline: nullable CallSite = null # Regex::extended, used for suffix `b` on `re` var extended: nullable CallSite = null - # NativeString::to_bytes_with_copy, used for prefix `b` + # CString::to_bytes_with_copy, used for prefix `b` var to_bytes_with_copy: nullable CallSite = null redef fun accept_typing(v) do -- 1.7.9.5