Commit Graph

9366 Commits (499df9680ceea203602ba1aebc475b047714dbf4)

Author SHA1 Message Date
Veikka Tuominen 499df9680c
Merge pull request #5531 from Vexu/translate-c
Translate-c don't crash on complex switches
2020-06-05 10:41:56 +03:00
Ryan Liptak f839d34baa std.os.windows.OpenFile: Handle FILE_IS_A_DIRECTORY status
Fixes #5533
2020-06-04 22:53:23 -04:00
Ryan Liptak 95a5f6bf2d Windows: Handle ERROR_DIRECTORY in std.fs.deleteDirAbsolute when called on a file path
ERROR_DIRECTORY (267) is returned from kernel32.RemoveDirectoryW if the path is not a directory. Note also that os.DirectDirError already includes NotDir

Before: error.Unexpected: GetLastError(267): The directory name is invalid.
After: error: NotDir
2020-06-04 22:52:53 -04:00
Ryan Liptak f7b6957fb4 Windows: Fix std.fs.Dir.deleteDir() deleting files
Would previously delete files, now correctly returns error.NotDir. Fixes #5536
2020-06-04 22:51:58 -04:00
Vexu c27a8bd6be
translate-c: don't crash on complex switches 2020-06-04 14:22:27 +03:00
Vexu fd067fbe8b
add workaround for #5525 2020-06-04 13:11:23 +03:00
Andrew Kelley 6524a64bda stage2: fix referencing decls which appear later in the file 2020-06-02 17:43:51 -04:00
Andrew Kelley 14d235dd6e Merge branch 'lun-4-resolve-ip6'
closes #4864
2020-06-02 15:31:14 -04:00
Andrew Kelley 7fd937fef4 cleanups
* improve docs
 * add TODO comments for things that don't have open issues
 * remove redundant namespacing of struct fields
 * guard against ioctl returning EINTR
 * remove the general std.os.ioctl function in favor of the specific
   ioctl_SIOCGIFINDEX function. This allows us to have a more precise
   error set, and more type-safe API.
2020-06-02 15:28:46 -04:00
Luna 0d091dc923 Replace os.linux to os.system 2020-06-02 14:56:19 -04:00
Luna 6623efd7d4 Change ioctl's request type to i32 2020-06-02 14:56:19 -04:00
Luna 6d3d1152ea Add declaration for libc ioctl 2020-06-02 14:56:19 -04:00
Luna 7c71054286 Replace syscall3 to os.ioctl 2020-06-02 14:56:19 -04:00
Luna 09c01ea7b9 Use resolveIp when looking up addresses on linux 2020-06-02 14:56:19 -04:00
Luna c8468bed42 Add std.os.ioctl 2020-06-02 14:56:19 -04:00
Luna c7b790ded6 net.test: only call resolveIp6 when os is linux 2020-06-02 14:56:06 -04:00
Luna 15efe03d1f Add tests for overflow 2020-06-02 14:56:06 -04:00
Luna b72c862725 Use IFNAMESIZE for scope id value 2020-06-02 14:56:06 -04:00
Luna aebf28eba3 Make ifru fields sentinel-terminated 2020-06-02 14:56:06 -04:00
Luna c60daa255f Replace C types in declarations 2020-06-02 14:56:06 -04:00
Luna 2fa9cf51ff Plug resolveIp6 into IPv6 tests 2020-06-02 14:56:06 -04:00
Luna 64e55a74de Add validation for scope ids 2020-06-02 14:56:06 -04:00
Luna 10ea2db5cb Replace C shorts by integer types 2020-06-02 14:56:06 -04:00
Luna 11a06d4341 Remove warn() calls 2020-06-02 14:56:06 -04:00
Luna cb649b769c Fix ifreq definition 2020-06-02 14:56:06 -04:00
Luna c50ac9a764 Change Unsupported to InterfaceNotFound 2020-06-02 14:56:06 -04:00
Luna 38109d48a3 Make interface name null-terminated before syscall 2020-06-02 14:56:06 -04:00
Luna 5919831529 Stop using mem.len on array 2020-06-02 14:56:06 -04:00
Luna 901aab8761 Add ioctl errors 2020-06-02 14:56:06 -04:00
Luna 2c641c93da Only resolve scope id when needed 2020-06-02 14:56:06 -04:00
Luna f02f4c0880 Fix typo and add if_nametoindex 2020-06-02 14:56:06 -04:00
Luna 9c200035f3 Add some interface structs to linux bits 2020-06-02 14:56:06 -04:00
Luna b816303122 Add basics of resolveIp6
Instead of streaming the scope id digits to an u32, we keep a [32]u8 in
the stack and fill it up with the characters we get for scope id.
2020-06-02 14:56:05 -04:00
Andrew Kelley bae0c9b554 std.HashMap: allow ensureCapacity with a zero parameter 2020-06-02 14:41:45 -04:00
Veikka Tuominen 40a1cfed53
Merge pull request #5510 from jessrud/arraylist-fix
pass allocator to self.resize() in appendNTimes()
2020-06-02 18:13:55 +03:00
Jesse Rudolph 100aa6fbaf pass allocator to self.resize() in appendNTimes() 2020-06-02 09:59:13 -05:00
Alexandros Naskos aa1a727284 Allow carriare return in comments 2020-06-02 00:56:05 -04:00
Andrew Kelley c6764fd254
Merge pull request #5475 from marler8997/windowsDns
support name resolution on windows
2020-06-01 15:33:05 -04:00
Andrew Kelley 8f4bc77260
Merge pull request #5449 from data-man/more_traits
Add more traits
2020-06-01 14:50:01 -04:00
Andrew Kelley f9b220ec2c Merge branch 'brodeuralexis-zero-init-helper'
closes #5472
2020-06-01 14:47:55 -04:00
Andrew Kelley 109c0b9d96 rename std.mem.defaultInit to std.mem.zeroInit 2020-06-01 14:47:18 -04:00
Alexis Brodeur c0e5eca6f2 Add initialization helper
When using C libraries, C99 designator list initialization is often
times used to initialize data structure.

While `std.mem.zeroes` and manually assigning to each field can
achieve the same result, it is much more verbose then the equivalent
C code:

```zig
usingnamespace @cImport({
    @cInclude("sokol_app.h");
});

// Using `std.mem.zeroes` and manual assignment.
var app_desc = std.mem.zeroes(sapp_desc);
app_desc.init_cb = init;
app_desc.frame_cb = frame;
app_desc.cleanup_cb = cleanup;
app_desc.width = 400;
app_desc.height = 300;
app_desc.window_name = "no default init";

// Using `std.mem.defaultInit`.
var app_desc = std.mem.defaultInit(sapp_desc, .{
    .init_cb = init,
    .frame_cb = frame,
    .cleanup_cb = cleanup,
    .width = 400,
    .height = 300,
    .window_name = "default init"
});
```

The `std.mem.defaultInit` aims to solve this problem by zero
initializing all fields of the given struct to their zero, or default
value if any.  Each field mentionned in the `init` variable is then
assigned to the corresponding field in the struct.

If a field is a struct, and an initializer for it is present, it is
recursively initialized.
2020-06-01 14:45:35 -04:00
Sebastian 937dcad0b3 fixed timestamp() 2020-06-01 14:43:13 -04:00
Alexandros Naskos 215a0d61ab Fix evented builds on windows with runtime safety on 2020-06-01 14:22:45 -04:00
Veikka Tuominen 078e4afdaf
Merge pull request #5500 from Vexu/fix
Fix std.zig rejecting literal tabs in comments
2020-06-01 17:24:30 +03:00
Veikka Tuominen eb687810cf
Merge pull request #4976 from xackus/std-lib-docs
std lib docs: fix null and int values
2020-06-01 14:50:05 +03:00
Veikka Tuominen 8c5c860b00
Merge pull request #5443 from data-man/mem_len_vectors
Support vectors in mem.len
2020-06-01 14:44:38 +03:00
Vexu a47257d9b0
fix std.zig rejecting literal tabs in comments 2020-06-01 14:37:36 +03:00
Jonathan Marler 0d32f4acf7 enable dns test on windows 2020-05-31 11:58:50 -06:00
Veikka Tuominen f5eb31a55a
Merge pull request #5491 from xackus/fix_5487
stage1: fix unresolved inferred error sets
2020-05-31 20:48:04 +03:00