mirror of
https://github.com/jetzig-framework/jetzig.git
synced 2025-05-14 14:06:08 +00:00
Merge pull request #131 from z1fire/wip
New custom print function to handle windows unicode
This commit is contained in:
commit
31f8a4a93c
@ -3,7 +3,6 @@ const args = @import("args");
|
|||||||
|
|
||||||
const util = @import("../util.zig");
|
const util = @import("../util.zig");
|
||||||
const cli = @import("../cli.zig");
|
const cli = @import("../cli.zig");
|
||||||
|
|
||||||
const init_data = @import("init_data").init_data;
|
const init_data = @import("init_data").init_data;
|
||||||
|
|
||||||
/// Command line options for the `init` command.
|
/// Command line options for the `init` command.
|
||||||
@ -209,7 +208,7 @@ pub fn run(
|
|||||||
// const git_setup = false;
|
// const git_setup = false;
|
||||||
// if (git_setup) try gitSetup(allocator, install_dir);
|
// if (git_setup) try gitSetup(allocator, install_dir);
|
||||||
|
|
||||||
std.debug.print(
|
try util.unicodePrint(
|
||||||
\\
|
\\
|
||||||
\\Setup complete! ✈️ 🦎
|
\\Setup complete! ✈️ 🦎
|
||||||
\\
|
\\
|
||||||
@ -217,7 +216,7 @@ pub fn run(
|
|||||||
\\
|
\\
|
||||||
\\ $ cd {s}
|
\\ $ cd {s}
|
||||||
\\
|
\\
|
||||||
\\ $ zig build run
|
\\ $ zig build run or jetzig server
|
||||||
\\
|
\\
|
||||||
\\And then browse to http://localhost:8080/
|
\\And then browse to http://localhost:8080/
|
||||||
\\
|
\\
|
||||||
|
34
cli/util.zig
34
cli/util.zig
@ -289,3 +289,37 @@ pub fn environmentBuildOption(environment: cli.Environment) []const u8 {
|
|||||||
inline else => |tag| "-Denvironment=" ++ @tagName(tag),
|
inline else => |tag| "-Denvironment=" ++ @tagName(tag),
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
pub fn unicodePrint(comptime fmt: []const u8, args: anytype) !void {
|
||||||
|
if (builtin.os.tag == .windows) {
|
||||||
|
// Windows-specific code
|
||||||
|
const cp_out = try UTF8ConsoleOutput.init();
|
||||||
|
defer cp_out.deinit();
|
||||||
|
|
||||||
|
std.debug.print(comptime fmt, args);
|
||||||
|
} else {
|
||||||
|
// Non-Windows platforms just print normally
|
||||||
|
std.debug.print(fmt, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
const UTF8ConsoleOutput = struct {
|
||||||
|
original: c_uint,
|
||||||
|
|
||||||
|
fn init() !UTF8ConsoleOutput {
|
||||||
|
const original = std.os.windows.kernel32.GetConsoleOutputCP();
|
||||||
|
if (original == 0) {
|
||||||
|
return error.FailedToGetConsoleOutputCP;
|
||||||
|
}
|
||||||
|
const result = std.os.windows.kernel32.SetConsoleOutputCP(65001); // UTF-8 code page
|
||||||
|
if (result == 0) {
|
||||||
|
return error.FailedToSetConsoleOutputCP;
|
||||||
|
}
|
||||||
|
return .{ .original = original };
|
||||||
|
}
|
||||||
|
|
||||||
|
fn deinit(self: UTF8ConsoleOutput) void {
|
||||||
|
_ = std.os.windows.kernel32.SetConsoleOutputCP(self.original);
|
||||||
|
}
|
||||||
|
};
|
Loading…
x
Reference in New Issue
Block a user