diff --git a/src/iconv.cr b/src/iconv.cr index 14d1ddea4b04..f8017969910c 100644 --- a/src/iconv.cr +++ b/src/iconv.cr @@ -1,6 +1,4 @@ -{% if !flag?(:windows) %} - require "c/iconv" -{% end %} +require "c/iconv" # :nodoc: struct Iconv @@ -17,6 +15,8 @@ struct Iconv end {% end %} + @iconv = uninitialized LibC::IconvT + {% if !flag?(:windows) %} @iconv = LibC.iconv_open(to, from) @@ -34,7 +34,6 @@ struct Iconv end end {% end %} - end def self.new(from : String, to : String, invalid : Symbol? = nil) diff --git a/src/io.cr b/src/io.cr index 5b49049f01d0..b1b1920a3883 100644 --- a/src/io.cr +++ b/src/io.cr @@ -1029,5 +1029,6 @@ require "./io/error.cr" require "./io/fd_set.cr" require "./io/file_descriptor.cr" require "./io/hexdump.cr" +require "./io/memory.cr" require "./io/multi_writer.cr" require "./io/sized.cr" diff --git a/src/lib_c/x86_64-windows-gnu/c/iconv.cr b/src/lib_c/x86_64-windows-gnu/c/iconv.cr new file mode 100644 index 000000000000..230d65f69cda --- /dev/null +++ b/src/lib_c/x86_64-windows-gnu/c/iconv.cr @@ -0,0 +1,3 @@ +lib LibC + type IconvT = Void* +end diff --git a/src/prelude.cr b/src/prelude.cr index 414af4627708..4aa5e5954b57 100644 --- a/src/prelude.cr +++ b/src/prelude.cr @@ -28,16 +28,16 @@ require "char/reader" require "class" require "concurrent" require "deque" -# require "dir" +require "dir" require "enum" require "enumerable" require "env" -# require "errno" +require "errno" require "ext" require "file" require "float" require "gc" -# # require "gc/null" +# require "gc/null" require "gc/boehm" require "hash" require "iconv" @@ -47,7 +47,7 @@ require "io" require "kernel" require "main" require "math/math" -# require "mutex" +require "mutex" require "named_tuple" require "nil" require "number" @@ -61,14 +61,14 @@ require "random" require "range" require "reference" require "reflect" -# require "regex" +require "regex" require "set" -# require "signal" +require "signal" require "slice" require "static_array" require "struct" require "symbol" -# require "system" +require "system" require "thread" require "time" require "tuple" diff --git a/src/regex.cr b/src/regex.cr index bd39d12b5fc4..8464c657447a 100644 --- a/src/regex.cr +++ b/src/regex.cr @@ -1,4 +1,6 @@ -require "./regex/*" +{% if !flag?(:windows) %} + require "./regex/*" +{% end %} # A Regex represents a regular expression, a pattern that describes the # contents of strings. A Regex can determine whether or not a string matches diff --git a/windows-prelude.cr b/windows-prelude.cr new file mode 100644 index 000000000000..61db1577a9b8 --- /dev/null +++ b/windows-prelude.cr @@ -0,0 +1,66 @@ +require "lib_c" +require "macros" +require "object" +require "comparable" +require "exception" +require "iterable" +require "iterator" +require "indexable" +require "string" + +require "array" +require "atomic" +require "bool" +require "box" +require "char" +require "char/reader" +require "class" +require "concurrent" +require "deque" +# require "dir" +require "enum" +require "enumerable" +require "env" +# require "errno" +require "ext" +require "file" +require "float" +require "gc" +# # require "gc/null" +require "gc/boehm" +require "hash" +require "iconv" +require "int" +require "intrinsics" +require "io" +require "kernel" +require "main" +require "math/math" +# require "mutex" +require "named_tuple" +require "nil" +require "number" +require "pointer" +require "pretty_print" +require "primitives" +require "proc" +require "process" +require "raise" +require "random" +require "range" +require "reference" +require "reflect" +# require "regex" +require "set" +# require "signal" +require "slice" +require "static_array" +require "struct" +require "symbol" +# require "system" +require "thread" +require "time" +require "tuple" +require "unicode" +require "union" +require "value"