diff --git a/sbom.json b/sbom.json index 7e381df..dd9598c 100644 --- a/sbom.json +++ b/sbom.json @@ -7,7 +7,7 @@ "bom-ref": "pkg:nim/syndicate_utils", "name": "syndicate_utils", "description": "Utilites for Syndicated Actors and Synit", - "version": "20240606", + "version": "20240610", "authors": [ { "name": "Emery Hemingway" diff --git a/src/esc_printer_driver.nim b/src/esc_printer_driver.nim index c7aaf03..5348a5c 100644 --- a/src/esc_printer_driver.nim +++ b/src/esc_printer_driver.nim @@ -30,7 +30,7 @@ proc flush(printer: Printer) {.asyncio.} = while printer.buffer.len > 0: let n = printer.device.write(printer.buffer) if n > 0: - printer.buffer.delete(0, n) + printer.buffer.delete(0.. 1: + quit "too many command line parameters" + paramStr(1) proc openPrinter(turn: Turn): Printer = new result result.facet = turn.facet - let fd = posix.open(devicePath, O_WRONLY or O_NONBLOCK, 0) + let fd = posix.open(devicePath(), O_WRONLY or O_NONBLOCK, 0) if fd < 0: osLastError().osErrorMsg().quit() result.device = newAsyncFile(FD fd) result.write(InitializePrinter) -runActor(devicePath) do (turn: Turn): - let printer = turn.newCap openPrinter(turn) +runActor(devicePath()) do (turn: Turn): + let printer = openPrinter(turn) resolveEnvironment(turn) do (turn: Turn; relay: Cap): - during(turn, relay, grabWithinType(Resolve)) do (step: Value; cont: Cap): - if step.isRecord("printer"): - # Publish for any step. - discard publish(turn, cont, ResolvedAccepted(responderSession: printer)) + let pat = Resolve?:{0: matchRecord("printer"), 1: grab()} + during(turn, relay, pat) do (cont: Cap): + # Publish for any step. + discard publish(turn, cont, ResolvedAccepted( + responderSession: turn.newCap(printer)))