summaryrefslogtreecommitdiff
path: root/printutils/parse_prt.c
diff options
context:
space:
mode:
Diffstat (limited to 'printutils/parse_prt.c')
-rw-r--r--printutils/parse_prt.c27
1 files changed, 27 insertions, 0 deletions
diff --git a/printutils/parse_prt.c b/printutils/parse_prt.c
new file mode 100644
index 0000000..2de0a92
--- /dev/null
+++ b/printutils/parse_prt.c
@@ -0,0 +1,27 @@
+/* vi: set sw=4 ts=4: */
+/*
+ * Copyright 2008 Walter Harms (WHarms@bfs.de)
+ *
+ * Licensed under the GPL v2, see the file LICENSE in this tarball.
+ */
+#include "libbb.h"
+#include "lpr.h"
+
+void parse_prt(const char *buf, struct netprint *netprint)
+{
+ const char *p;
+
+ if (!buf) {
+ buf = getenv("PRINTER");
+ if (!buf)
+ buf = "lp"; /* "...@localhost:515" is implied */
+ }
+ p = strchrnul(buf, '@');
+ netprint->queue = xstrndup(buf, p - buf);
+ if (!*p) /* just queue? example: "lpq -Pcopie" */
+ p = "localhost";
+ netprint->server = xstrdup(p);
+
+ netprint->lsa = xhost2sockaddr(netprint->server,
+ bb_lookup_port(NULL, "tcp", 515));
+}