aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--rng.ha13
1 files changed, 12 insertions, 1 deletions
diff --git a/rng.ha b/rng.ha
index e0f1549..2345766 100644
--- a/rng.ha
+++ b/rng.ha
@@ -12,6 +12,7 @@ export fn main() void = {
"Random Number Generator",
('n', "number", "Number of random numbers to print (default: 6)"),
('m', "max", "Max number than can be generated (default: 110)"),
+ ('S', "separator", "The separator to use when displaying the numbers (default: \\n)"),
('s', "Sort the numbers"),
('d', "Avoid duplicates"));
defer getopt::finish(&cmd);
@@ -20,12 +21,15 @@ export fn main() void = {
let max = 110u32;
let dosort = false;
let nodups = false;
+ let sep = "\n";
for (let opt .. cmd.opts) {
switch (opt.0) {
case 'n' =>
nb = strconv::stoz(opt.1)!;
case 'm' =>
max = strconv::stou32(opt.1)!;
+ case 'S' =>
+ sep = opt.1;
case 's' =>
dosort = true;
case 'd' =>
@@ -54,9 +58,16 @@ export fn main() void = {
sort::sort(rngs: []opaque, size(u32), &cmp::u32s);
};
+ printrngs(rngs, sep);
+};
+
+fn printrngs(rngs: []u32, sep: str) void = {
+ let s = "";
for (let rng .. rngs) {
- fmt::printfln("{}", rng)!;
+ fmt::printf("{}{}", s, rng)!;
+ s = sep;
};
+ fmt::println()!;
};
fn contains(a: []u32, b: u32) bool = {