38 lines
1.9 KiB
Diff
38 lines
1.9 KiB
Diff
diff -up system-config-printer-1.1.16/cupshelpers/ppds.py.foomatic-recommended system-config-printer-1.1.16/cupshelpers/ppds.py
|
|
--- system-config-printer-1.1.16/cupshelpers/ppds.py.foomatic-recommended 2009-12-22 14:27:37.000000000 +0000
|
|
+++ system-config-printer-1.1.16/cupshelpers/ppds.py 2009-12-23 16:13:13.234214808 +0000
|
|
@@ -248,14 +248,25 @@ def _getDriverType (ppdname, ppds=None):
|
|
# Foomatic (generated) -- but which driver?
|
|
if ppdname.find ("Generic")!= -1:
|
|
return DRIVER_TYPE_FOOMATIC_GENERIC
|
|
- if (ppds != None and
|
|
- ppds.getInfoFromPPDName (ppdname).\
|
|
- get ('ppd-make-and-model', '').find ("(recommended)") != -1):
|
|
- if ppds.getInfoFromPPDName (ppdname).\
|
|
- get ('ppd-make-and-model', '').find ("Postscript") != -1:
|
|
- return DRIVER_TYPE_FOOMATIC_RECOMMENDED_POSTSCRIPT
|
|
- else:
|
|
- return DRIVER_TYPE_FOOMATIC_RECOMMENDED_NON_POSTSCRIPT
|
|
+ if ppds != None:
|
|
+ info = ppds.getInfoFromPPDName (ppdname)
|
|
+ device_id = info.get ('ppd-device-id', '')
|
|
+ id_dict = parseDeviceID (device_id)
|
|
+ drv = id_dict.get ('DRV', '')
|
|
+ drvfields = dict()
|
|
+ for field in drv.split (','):
|
|
+ if len (field) == 0:
|
|
+ continue
|
|
+ key = field[0]
|
|
+ drvfields[key] = field[1:]
|
|
+
|
|
+ ppd_make_and_model = info.get ('ppd-make-and-model', '')
|
|
+ if (drvfields.get ('R', '0') == '1' or
|
|
+ ppd_make_and_model.find ("(recommended)") != -1):
|
|
+ if ppd_make_and_model.find ("Postscript") != -1:
|
|
+ return DRIVER_TYPE_FOOMATIC_RECOMMENDED_POSTSCRIPT
|
|
+ else:
|
|
+ return DRIVER_TYPE_FOOMATIC_RECOMMENDED_NON_POSTSCRIPT
|
|
if ppdname.find ("-Postscript")!= -1:
|
|
return DRIVER_TYPE_FOOMATIC_PS
|
|
if ppdname.find ("-hpijs") != -1:
|