1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
Commit Graph

542 Commits

Author SHA1 Message Date
Alexander Medvednikov
fe2d2bd2a3 fmt: remove trailing spaces 2019-08-17 22:21:43 +03:00
Alexander Medvednikov
8a1324c141 os: make exec() return ?Result with exit code and output 2019-08-17 21:11:40 +03:00
Alexander Medvednikov
60bf668281 string: fix trim_right 2019-08-17 20:07:40 +03:00
Joe Conigliaro
e5ebb83bd9 add test for writer 2019-08-17 17:43:43 +03:00
joe-conigliaro
547241c13c http: make do() return errors instead of panic 2019-08-17 17:02:01 +03:00
Joe Conigliaro
1274cdf0af path must start with / 2019-08-17 16:37:31 +03:00
Alexander Medvednikov
100bb7c54c os: clean up windows functions 2019-08-17 16:17:43 +03:00
Alexander Medvednikov
7ed0438b04 os: remove PathSeparator hack now that we have v_win.c 2019-08-17 16:02:59 +03:00
joe-conigliaro
1ba701e036 encoding.csv: add write support 2019-08-17 15:51:20 +03:00
joe-conigliaro
56566ba3d0 http: follow redirects (openssl & schannel) + fix url params 2019-08-17 15:50:47 +03:00
Nicolas Sauzede
4760fea489 examples/tetris: use better unique colors, implement game over/pause 2019-08-17 02:56:09 +03:00
unknown-v
49205dcce3 examples: fix maps warnings 2019-08-17 02:55:11 +03:00
Alexander Medvednikov
be141d9c5f os: Windows fixes 2019-08-17 02:09:36 +03:00
Alexander Medvednikov
94b900bd0a map: allow array values 2019-08-16 23:28:47 +03:00
Alexander Medvednikov
b188ecf680 Makefile: re-write make test in V 2019-08-16 16:51:46 +03:00
Alexander Medvednikov
c156cef972 vweb: fix the test 2019-08-16 09:58:27 +03:00
Alexander Medvednikov
dc9cebe26c orm fixes; glfw: remove C code 2019-08-16 09:10:03 +03:00
kambrium
a5af903362 Fixed typo 2019-08-16 09:02:09 +03:00
joe-conigliaro
7b48f7ac9e encoding.csv module 2019-08-14 09:45:56 +03:00
Delyan Angelov
a0c8fa5bbc http openssl: on linux, prefer newer openssl installations when available 2019-08-13 10:49:07 +03:00
Alexander Medvednikov
a11961b0d3 vweb: make mime_types a const 2019-08-13 01:04:26 +03:00
Alexander Medvednikov
bc563930f7 string: remove abs() 2019-08-12 21:16:01 +03:00
Alexander Medvednikov
ef2ab31e88 sql: only accept strings and ints for now 2019-08-12 21:07:03 +03:00
Alexander Medvednikov
15a42f1f35 array.clone() 2019-08-12 14:41:40 +03:00
joe-conigliaro
8a2714b35a fix typo 2019-08-12 11:03:49 +03:00
Henrixounez
872aa536d8 compiler: unsigned number properly printed and converted to string
fix: array accessing now works with unsigned numbers
2019-08-12 09:15:53 +03:00
Alexander Medvednikov
8c3475b902 generate .str() for all arrays 2019-08-11 22:39:45 +03:00
Nick Treleaven
ea30ba4555 map: remove temporary fields _keys, key_i 2019-08-11 19:43:21 +02:00
Carlos Esquerdo Bernat
d526cfc205 vweb: fix V panic: array index out of range: 1/0 2019-08-11 14:07:22 +02:00
Delyan Angelov
2197c210e7 http: remove superfluous new line in stdout, when making a http request. 2019-08-11 13:15:29 +02:00
Alexander Medvednikov
8f8e0dfad7 V ORM 2019-08-10 13:35:29 +02:00
iRedMail
5a76255297 Allow extra http methods with form: PUT, PATCH
- Allow extra http methods with form: PUT, PATCH
- Rename `post_form` to `form`
2019-08-10 11:44:54 +02:00
Julian Schurhammer
1864e92ff4 parser: disallow statements after a return, branch check $if, $else, switch, and loops correctly 2019-08-10 10:26:42 +02:00
joe-conigliaro
a0b59783a2 vlib.http: fix http schannel & follow redirects & cleanup 2019-08-10 10:05:59 +02:00
Alexander Medvednikov
5a80d587d5 makefile: use latest v.c 2019-08-10 08:21:32 +02:00
Alexander Medvednikov
d4441e4353 freetype: clean up new_context() 2019-08-10 07:13:25 +02:00
Delyan Angelov
7d8b296943 freetype,gg: option to pass a custom font_path to freetype.new_context . 2019-08-10 00:10:26 +02:00
Vitaly Takmazov
6f03ed0b13 darwin: fix freetype include path for Homebrew and Macports 2019-08-10 00:09:15 +02:00
Nicolas Sauzede
efa540e883 examples: tetris: draw score 2019-08-09 13:03:29 +02:00
joe-conigliaro
d9a83481a5 http: initial windows schannel http support 2019-08-09 12:52:14 +02:00
Alexander Medvednikov
181a39d752 fix int_test.v 2019-08-09 10:21:21 +02:00
Alexander Medvednikov
ae0e3efb8e scanner: experimental ≠ etc support 2019-08-09 09:32:51 +02:00
Alexander Medvednikov
fbc480fbed ft: rename to freetype 2019-08-08 16:43:11 +02:00
Alexander Medvednikov
865eee2f6b gg: remove draw_text() 2019-08-08 16:09:04 +02:00
Alexander Medvednikov
27fad0f19b ft: clean up 2019-08-08 10:08:44 +02:00
Julian Schurhammer
61983a6799 parser: check that functions return in all if/else branches 2019-08-08 09:49:56 +02:00
Julian Schurhammer
28147c0930 os.exec: return ?string instead of string 2019-08-08 07:30:05 +02:00
dm1try
1c38661ff7 openssl: add Brew openssl path
closes #1509
2019-08-08 06:26:28 +02:00
Emily Hudson
802ff1d012 compiler: scoped defer + build tests with msvc 2019-08-07 17:51:21 +02:00
Marco Böttcher
c924a6cf00 flag: allow to define flags with abbreviation
* flag: allow to check the count of the free args to produce an error

* flag: allow to define flags with abbreviation

flags could be defined to use a single char as abbreviation like
'--output' or '-o'
'--help' or '-h'
2019-08-07 16:52:10 +02:00
Alexander Medvednikov
4b69d43f9f fix examples 2019-08-07 14:16:10 +02:00
Alexander Medvednikov
b5d67f226f openssl: use system headers on non-Windows systems 2019-08-07 14:09:15 +02:00
Joe Conigliaro
25d84f72a9 last mut fixes 2019-08-07 14:07:37 +02:00
Alexander Medvednikov
cebb6cd537 ft: minor fixes 2019-08-07 13:39:54 +02:00
Alexander Medvednikov
ff6e0df0a5 array: minor fixes 2019-08-07 13:39:54 +02:00
joe-conigliaro
511a3d3901 vlib.crypto+other: fix mut args 2019-08-07 13:37:07 +02:00
Alexander Medvednikov
818c4a14e5 compiler: fix a bug with mutable array args 2019-08-07 12:36:45 +02:00
joe-conigliaro
0bcc53c366 vlib: fix mutable args 2019-08-07 09:53:33 +02:00
Alexander Medvednikov
34e0b164eb make function arguments immutable by default 2019-08-07 08:59:00 +02:00
Cody Ley-Han
06b8bd9382 Add a logger interface to the std modules 2019-08-07 08:06:53 +02:00
Alexander Medvednikov
52f473d1c7 all: fix immutable fn args 2019-08-07 05:28:00 +02:00
Vitaly Takmazov
8d35649d90 openssl_backend: add MacPorts libssl path 2019-08-07 04:28:15 +02:00
Delyan Angelov
7607b00952 http: chunked decoding support 2019-08-07 03:57:47 +02:00
Alexander Medvednikov
6bde860043 http test: not today 2019-08-06 17:31:48 +02:00
Alexander Medvednikov
ac335269b3 bring back the http test 2019-08-06 17:06:44 +02:00
Alexander Medvednikov
b7a6c761b3 openssl: make compile on Linux 2019-08-06 16:35:49 +02:00
joe-conigliaro
60d206c29d http: use urllib.parse 2019-08-06 14:43:09 +02:00
Alexander Medvednikov
1b2e49be1c http: disable the test until windows is fixed 2019-08-06 14:28:27 +02:00
Alexander Medvednikov
3316968266 http: only run the get test on linux/macos for now 2019-08-06 14:15:42 +02:00
Alexander Medvednikov
8b75f2125a http: init_module() to init openssl once 2019-08-06 14:03:01 +02:00
Alexander Medvednikov
eece058f18 h1 2019-08-06 14:03:01 +02:00
Alexander Medvednikov
bea8f6d7e5 http: remove libcurl dependency; replace it with a simple OpenSSL backend 2019-08-06 13:32:09 +02:00
joe-conigliaro
69932758db net.urllib: update enum / const style 2019-08-06 13:01:05 +02:00
Alexander Medvednikov
7a7b5040e2 http: fix response headers and status code; clean up ft and gg 2019-08-06 03:06:27 +02:00
Marco Böttcher
ff730b4eb0 flag: allow to check the count of the free args to produce an error 2019-08-06 01:56:42 +02:00
Vitaly Takmazov
43b81688f6 socket: WSACleanup should not be called on socket close 2019-08-06 01:50:45 +02:00
unknown-v
22eaceb17c http_win: set status_code ,remove unused var 2019-08-05 09:59:07 +02:00
Joe Conigliaro
2fab73983b add builtin import pass + use builder in map 2019-08-05 06:01:53 +02:00
Alexander Medvednikov
5ed338dc2e bring back map.str() 2019-08-05 04:34:12 +02:00
Alexander Medvednikov
8d3617b3de fix fn_test.v and urllib.v 2019-08-05 03:31:22 +02:00
Alexander Medvednikov
350e13679c force () in complex bool expressions: (a && b) || c instead of a && b || c 2019-08-05 03:22:28 +02:00
Alexander Medvednikov
4bc1f73fd0 fix gg.v 2019-08-04 09:46:49 +02:00
Alexander Medvednikov
ee437de8d3 type name check fixes 2019-08-04 09:38:46 +02:00
Alexander Medvednikov
8bce5cb810 force snake_case in struct fields 2019-08-04 09:18:16 +02:00
Alexander Medvednikov
576192949d fixed size array with const size: numbers := [N]int 2019-08-04 04:11:16 +02:00
Nicolas Sauzede
f306fbb2f0 net connect: fix error/return type 2019-08-04 01:46:55 +02:00
Alexander Medvednikov
43fb954234 os: fix executable on FreeBSD and older C compilers 2019-08-04 00:16:37 +02:00
Alexander Medvednikov
9eb385d9ee Revert "remove pg from vlib"
This reverts commit 15c5f671f0.
2019-08-04 00:11:56 +02:00
Alvydas Vitkauskas
331d6f98ee string: fix bug and add tests for string.count 2019-08-03 22:24:03 +02:00
Delyan Angelov
93d27b0b9f vweb assets: the assets cache files are now immutable after creation. (#1454) 2019-08-03 22:16:26 +10:00
joe-conigliaro
45e76609b0
vweb.assets: adds AssetManager for combining/minifying/caching css & js assets (#1452)
* start

* more work

* more

* more work

* update comments

* add back mut

* make minify faster

* add mut

* revert option size

* ret bool from public methods not ?bool for now

* update comments etc

* update comment

* dont return option for now

* clean up
2019-08-03 20:09:09 +10:00
Alexander Medvednikov
e446f988f7 clean up map initialization 2019-08-03 10:26:36 +02:00
Alexander Medvednikov
a5f5b52204 map := { 'foo': 'bar' } syntax 2019-08-03 10:20:04 +02:00
Joe Conigliaro
bfddb9a80f make array.hex() use lowercase 2019-08-03 08:23:13 +02:00
Alexander Medvednikov
15c5f671f0 remove pg from vlib 2019-08-03 03:49:17 +02:00
Alvydas Vitkauskas
bfdce806c4 fix string.count 2019-08-03 03:41:15 +02:00
joe-conigliaro
d4c07d9b66 hash.crc32: modify sum methods to take []byte instead of string 2019-08-03 03:40:54 +02:00
Alexander Medvednikov
34a98e3df0 vweb fixes 2019-08-03 02:27:56 +02:00
Alexander Medvednikov
9e380e2886 vweb: clean up 2019-08-02 23:45:36 +02:00
Alexander Medvednikov
b2874f1200 vweb: fix get_cookie() and redirect() 2019-08-02 23:41:02 +02:00
joe-conigliaro
faf2f9920e string.v: string.count(substr) 2019-08-02 23:30:22 +02:00
joe-conigliaro
9e76d8a638 net.urllib: fix values (used for query string/form data) 2019-08-02 23:28:55 +02:00
Vitaly Takmazov
910f350a26 string_test: fix randomly failed test
* memory should be initialized with zeros before creating string
* there is no string([]array) constructor, string(byteptr) does not count length correctly, using string(byteptr, len) to fix
2019-08-02 19:20:36 +02:00
Alexander Medvednikov
ed3f1d315b vweb: remove favicon hack 2019-08-02 10:15:20 +00:00
Alexander Medvednikov
8990eb06ec Revert "remove vlib/glfw (it's a vpm module now)"
This reverts commit cdfc4c8372.
2019-08-02 11:33:49 +02:00
joe-conigliaro
7bf1c7f005 net.urllib: change confusing name of internal method 2019-08-02 08:52:37 +02:00
joe-conigliaro
2bdbc327d9 vlib.crypto: add last commit to help track changes. (#1426) 2019-08-02 06:37:19 +02:00
unknown-v
a27165f07e add []u64.str() 2019-08-02 06:07:16 +02:00
joe-conigliaro
be0796ce14 urllib: fix error message 2019-08-02 06:00:34 +02:00
Alexander Medvednikov
81da1f1ab2 vweb: run app.init() once 2019-08-02 05:54:40 +02:00
Alexander Medvednikov
f81562ee7e vweb: 404 2019-08-02 04:11:42 +02:00
joe-conigliaro
8369525d8a net.urllib: fix unescape 2019-08-02 00:31:47 +02:00
Sylvio Tavares
0e798b4c51 time: fix rand() 2019-08-02 00:31:02 +02:00
Alexander Medvednikov
b57752e67e vweb: parse request headers 2019-08-01 18:51:21 +02:00
Alexander Medvednikov
3580179602 vweb: fix actions with ? 2019-08-01 17:57:06 +02:00
Alexander Medvednikov
cdfc4c8372 remove vlib/glfw (it's a vpm module now) 2019-08-01 17:31:04 +02:00
Alexander Medvednikov
a7e464fee9 user modules + v install from vpm 2019-08-01 17:28:25 +02:00
joe-conigliaro
d3c89273e8 net.urllib module 2019-08-01 15:01:03 +02:00
vitalyster
0197f20d47 make_tests.bat: exit with error on failed test 2019-08-01 13:23:36 +02:00
Alexander Medvednikov
eb313ebb5b
option: increase the temporary limit 2019-08-01 01:19:45 +02:00
Alvydas Vitkauskas
cd49c2103b os: fix read_lines for win/dos files on unix 2019-08-01 00:48:10 +02:00
unknown-v
b124539507 Update download_win.v 2019-07-31 23:22:05 +02:00
Alexander Medvednikov
0243f9b0e9 term: remove enable_term_color_win() 2019-07-31 23:19:27 +02:00
Alexander Medvednikov
2c7e0c0257 http: fix download_win.v 2019-07-31 23:03:38 +02:00
Alexander Medvednikov
8058bf3750 http_nix.v: remove remaining C code 2019-07-31 23:01:06 +02:00
Alexander Medvednikov
448aaa36f2 http: clean up http_win.v and remove all remaining C code 2019-07-31 22:54:55 +02:00
unknown-v
46154c25b5 Update http_win.v 2019-07-31 22:45:29 +02:00
Alexander Medvednikov
54d2f9921f http: Windows fixes + clean up 2019-07-31 22:27:39 +02:00
Alexander Medvednikov
aac8503d83 http: use optionals (finally) 2019-07-31 22:15:24 +02:00
Alexander Medvednikov
d3d4ee6b39 http: replace escape() with escape_url() 2019-07-31 20:57:34 +02:00
Vitaly Takmazov
550e8cd0cb http.escape and http.unescape for windows 2019-07-31 19:23:17 +02:00
Felix Scholz
12ecd0f3dc term: allow more colors to be used (bright styled ansi, rgb and hex)
* introduce bright versions of standard ansi colors

* allow developer to colorize messages with rgb

* allow developer to colorize messages using hex

* fix broken formatting
2019-07-31 19:22:38 +02:00
vitalyster
37a0e6ebef Travis: run tests for Windows (#1403) 2019-07-31 19:01:52 +02:00
Alvydas Vitkauskas
2e1da4b4bc Merge pull request #1050 from avitkauskas/fix-read-lines
os: fix read_lines
2019-07-31 10:56:36 +02:00
Alexander Medvednikov
ddb4f45b02 another map bug fix + fix some warnings 2019-07-31 10:47:58 +02:00
jilio
fa24a0cec5 os: fix is_dir 2019-07-31 10:38:29 +02:00
Alexander Medvednikov
e592485395 map: test the new fix 2019-07-31 09:57:19 +02:00
Alexander Medvednikov
a80f32254e map: fix delete() 2019-07-31 09:56:14 +02:00
vitalyster
375bc1352c f64.eq()
fixes float comparison tests
2019-07-31 09:20:40 +02:00
Alexander Medvednikov
e0b45e33ea string: fix a bug with split() 2019-07-31 07:26:22 +02:00
jilio
6294c7878e vweb: recursive handle_static with mime types 2019-07-31 06:10:53 +02:00
Alexander Medvednikov
27d09ed514 http: make escape public on Windows 2019-07-31 04:00:43 +02:00
Alexander Medvednikov
8a7ddd102e vweb: tmpl fixes 2019-07-31 04:00:43 +02:00
Alexander Medvednikov
95d76993c9 .div hack 2019-07-31 04:00:43 +02:00
Alexander Medvednikov
8bb41d2de5 vweb: print address of the app 2019-07-31 04:00:43 +02:00
joe-conigliaro
1202631fa6 crypto.rand module 2019-07-31 03:24:12 +02:00
Alexander Medvednikov
17e8c1d628 map.delete(key) 2019-07-30 21:27:31 +02:00
Alexander Medvednikov
ad8b105b2c vweb example 2019-07-30 21:15:17 +02:00
Alexander Medvednikov
79be98d2fb Revert "Support for the printf optimisation for windows and wide strings"
This reverts commit acd28fa495.
2019-07-30 18:28:00 +02:00
Alexander Medvednikov
3e458a8801 vweb: small fixes 2019-07-30 18:27:52 +02:00
F1ssi0N
acd28fa495 Support for the printf optimisation for windows and wide strings 2019-07-30 18:04:19 +02:00
Alexander Medvednikov
548611bedc vweb: serve static files and vweb.text() 2019-07-30 15:53:35 +02:00
joe-conigliaro
5e57d099d7 v panic debug information 2019-07-30 15:08:14 +02:00
Richard Warburton
07ed320110 sync: WaitGroup 2019-07-30 15:06:16 +02:00
Alexander Medvednikov
a6df3e51d2 vweb.json() 2019-07-30 05:13:44 +02:00
Vitaly Takmazov
468aac9750 glfw: add MacPorts library path 2019-07-30 03:49:12 +02:00
Vitaly Takmazov
a2d4d38e8a pg: add Darwin flag for MacPorts installation path 2019-07-30 03:48:49 +02:00
Joe Conigliaro
cfe581e2ab fix term 2019-07-30 03:15:46 +02:00
Alexander Medvednikov
69b6e682cb pg: fix GCC compilation error 2019-07-30 00:28:35 +02:00
Alexander Medvednikov
5bb8416baf
update vweb readme 2019-07-29 19:46:26 +02:00
Delyan Angelov
4a1970a322 http: return ?string 2019-07-29 19:18:26 +02:00
Alexander Medvednikov
460b4ee39f
vweb documentation 2019-07-29 18:50:25 +02:00
Alexander Medvednikov
207bab5f79 generics, vweb, comptime codegen, etc 2019-07-29 18:24:48 +02:00
Mike 'Fuzzy' Partin
ff72d9104d log: added timestamps 2019-07-29 16:34:22 +02:00
joe-conigliaro
d87030972e crypto: use new copy & clone 2019-07-29 16:33:35 +02:00
Richard Warburton
6701c3b263 Fixes #1362 2019-07-29 16:32:39 +02:00
Vitalie Ciubotaru
4100cca613 bf: fix a bug in bf.resize() (var name coincides with function name) 2019-07-29 16:31:48 +02:00
Alvydas Vitkauskas
8484de86c7 fix #1353 os.get_line 2019-07-29 04:44:54 +02:00
joe-conigliaro
45029f8c86 term: move enable_term_color_win() to colors_win.v 2019-07-29 04:44:21 +02:00
joe-conigliaro
df06eee5e8 fn copy(dst, src) []byte 2019-07-28 17:19:59 +02:00
joe-conigliaro
c7edeb00a8 term: add better error detection on Windows 2019-07-28 17:19:03 +02:00
Delyan Angelov
9cd2d68505 Fix #1334. Module glfw now imports gl. 2019-07-27 18:36:33 +02:00
joe-conigliaro
920ac3f92e crypto.rc4 module 2019-07-26 16:48:49 +02:00
joe-conigliaro
ebf858b9ae crypto: remove unnecessary casts and comments 2019-07-25 18:41:38 +02:00
Joe Conigliaro
655cad58b2 add note & fix typo 2019-07-25 18:13:29 +02:00
Alexander Medvednikov
20a885ff1d []byte.clone() 2019-07-25 18:07:25 +02:00
Alexander Medvednikov
d8b83bdd00 crypto: add Go's license 2019-07-25 18:07:25 +02:00
joe-conigliaro
61f3982ee8 crypto.aes module 2019-07-25 17:49:57 +02:00
Alexander Medvednikov
2ac579ca0a wrap up the new mut check 2019-07-25 14:13:35 +02:00
Alexander Medvednikov
ceb0139329 fix tests 2019-07-25 14:06:26 +02:00
unknown-v
082098ab67 sync_win.v : Add a Missing Closing Bracket 2019-07-25 12:25:38 +02:00
Alexander Medvednikov
3a8cdadcf5 free strings 2019-07-25 01:22:45 +02:00
Alexander Medvednikov
299d41e3b9 os: fix a memory leak in File.write(string) 2019-07-24 22:47:06 +02:00
0x9ef
a3e9a36553 Fix returned hash sum type 2019-07-24 20:29:11 +02:00
F1ssi0N
ca70d1f8a3 os: Make windows allocations more consistent & LocalFree args_list
if max is 512 then allocate `max * sizeof(wchar_t)`
2019-07-24 19:10:06 +02:00
F1ssi0N
f8bc893972 Re-add the case for msvc now that it is a valid comp-time option 2019-07-24 18:14:44 +02:00
AtjonTV
99355ae8b2 os: Implement a read-all for STDIN 2019-07-24 18:14:13 +02:00
yep84
94a599d630 log: allow file logging 2019-07-24 17:50:29 +02:00
0x9ef
aea6a8075b Windows mutex 2019-07-24 17:36:20 +02:00
Alexander Medvednikov
2306901e6e os.flush_stdout() 2019-07-24 16:15:28 +02:00
Maciej Sopyło
58577f57c6 fix: segfault when using string.ustring_tmp() 2019-07-24 16:06:12 +02:00
Emily Hudson
32aae80a64 Windows: fix some heap corruptions, fix msvc not building with unicode flags, fix os.getwd, fix mscrazy using a less recent installation 2019-07-24 15:00:26 +02:00
Vitaly Takmazov
0bbefca875 Windows: unicode command line 2019-07-24 14:32:36 +02:00
Alexander Medvednikov
7f29928aec examples: fix news_fetcher on Windows 2019-07-24 12:34:25 +02:00
vitalyster
fcb1f211e3 Windows Unicode I/O 2019-07-24 12:16:45 +02:00
Nick Treleaven
6eb8766e59 http.new_request: Don't ignore mutated variables url, data 2019-07-24 00:32:41 +02:00
Justice Suh
d72c859bf9 net: socket error handling 2019-07-24 00:31:39 +02:00
Alexander Medvednikov
2291e9fcfe Revert "Windows Unicode support"
This reverts commit 8462e99bc5.
2019-07-24 00:24:34 +02:00
d2verb
88758082d2 scanner.v: refactoring 2019-07-24 00:06:48 +02:00
vitalyster
8462e99bc5 Windows Unicode support 2019-07-23 23:40:24 +02:00