// Bien lier à la libc quand on compile ! const std = @import("std"); const idn2 = @cImport(@cInclude("idn2.h")); pub fn main() !void { var gpa = std.heap.GeneralPurposeAllocator(.{}){}; defer _ = gpa.deinit(); const allocator = gpa.allocator(); const args = try std.process.argsAlloc(allocator); defer std.process.argsFree(allocator, args); if (args.len != 2) { std.debug.print("Usage: to-punycode unicode-string\n", .{}); return error.WrongArgs; } var orig: [*c]u8 = args[1]; var dest: [*:0]u8 = undefined; // std.debug.print("Converting {any} to {any}... ", .{ orig, &dest }); const result: c_int = idn2.idn2_to_ascii_8z(orig, @ptrCast(&dest), idn2.IDN2_NONTRANSITIONAL); std.debug.print("Punycode({s}) = {s} (return code is {d})\n", .{ orig, dest, result }); }