Red Hat Bugzilla – Bug 35937
parsePrintcap in qprintdialog.cpp error
Last modified: 2007-04-18 12:32:40 EDT
RedHat: please mark this "non beta only" once seawolf is offical.
This was originally reported against kmail since that was the only
application that appears to use qt's print function.
The problem is that the "simplistic" parsing in the function parsePrintcap
in qprintdialog.cpp considers everything between the beginning of a printer
definition and a '|' character to be the "name" of a print queue, it has
problems with the /etc/printcap created by RedHat's new printconf package.
A Unix printer queue is handled properly but not a JetDirect queue. The
following definition DOES NOT work:
Everything starting with "lp:" and stopping at the '|' after "lp=" is
treated as the print queue "name".
Circumvention: Define the print queue as a remote Unix Printer OR define
another Unix printer (e.g., lp1) pointing to 127.0.0.1 for queue lp OR give
lp an alias (!). All of these seem to work properly (at least for my kmail
test case). Looking at the printcap man page, the use of '|' to indicate
piping the output seems to be proper. However, it is still a problem with
the parsing of /etc/printcap.
Another thing I noticed about the parsePrintcap function is that it does
not seem to handle "include" processing so that if you had everything in an
included file it would not find any printers defined.
*** Bug 31371 has been marked as a duplicate of this bug. ***
Qt is doing the right thing for "normal" printcaps... It just doesn't know
about LPRng extensions. Fixing.
Created attachment 15366 [details]
Fix for lp=/stuff; doesn't handle Include files yet.
Fixed in qt-2.3.0-4.
*** Bug 36841 has been marked as a duplicate of this bug. ***