summaryrefslogtreecommitdiff
path: root/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2014-05-21 20:06:16 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2014-05-21 20:06:16 +0000
commit0702846b6c581b4676169261f026136d9c33bb1e (patch)
tree0f7c18894eba5225d3d9ecd8f743f81938807416 /java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java
parent- Fix printing services. When CUPS is used, ${LOCALBASE}/bin/lpr must be (diff)
Fix printing services. When CUPS is used, ${LOCALBASE}/bin/lpr must be used
to print a generated PostScript file. When lpd(8) is used, lpr(1) from base must be used. Also, status command for lpc(8) requires a printer name. If no argument is specified, i.e., "/usr/sbin/lpc status", then it displays the command usage, i.e., "usage: status {all | printer ...}". Unfortunately, "usage" is interpreted as a printer name because ":" is included. Add "all" and adjust an expression for grep(1).
Notes
Notes: svn path=/head/; revision=354762
Diffstat (limited to 'java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java')
-rw-r--r--java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java34
1 files changed, 34 insertions, 0 deletions
diff --git a/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java b/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java
new file mode 100644
index 000000000000..b32b1579c72b
--- /dev/null
+++ b/java/openjdk8/files/patch-jdk-src-share-classes-sun-print-PSPrinterJob.java
@@ -0,0 +1,34 @@
+--- jdk/src/share/classes/sun/print/PSPrinterJob.java
++++ jdk/src/share/classes/sun/print/PSPrinterJob.java
+@@ -1588,8 +1588,30 @@
+
+ String osname = System.getProperty("os.name");
+ if (osname.equals("Linux") || osname.endsWith("BSD") || osname.contains("OS X")) {
++ String lprPath = "/usr/bin/lpr";
++ if (osname.endsWith("BSD")) {
++ final PrintService pservice = getPrintService();
++ Boolean isIPPPrinter =
++ (Boolean)java.security.AccessController.doPrivileged(
++ new java.security.PrivilegedAction() {
++ public Object run() {
++ try {
++ Class psClass =
++ Class.forName("sun.print.IPPPrintService");
++ if (psClass.isInstance(pservice)) {
++ return Boolean.TRUE;
++ }
++ } catch (Throwable t) {
++ }
++ return Boolean.FALSE;
++ }
++ });
++ if (isIPPPrinter) {
++ lprPath = "%%LOCALBASE%%/bin/lpr";
++ }
++ }
+ execCmd = new String[ncomps];
+- execCmd[n++] = "/usr/bin/lpr";
++ execCmd[n++] = lprPath;
+ if ((pFlags & PRINTER) != 0) {
+ execCmd[n++] = "-P" + printer;
+ }