В wine-pure была переделана система печати: в dlls/wineps.drv/escape.c появилась функция create_job, которая используется вместо OpenJob16 из библиотеки gdi32. Необходимо: 1) Выяснить можно ли переделать патчи с использованием новой функции. 2) Переделать патчи или вернуть старую версию с использованием OpenJob16
Патч, непосредственно вызывающий конфликт: commit e85ba2081f4f6ca15d2997d97d66b64b70d2657a Author: Vitaly Perov <vitperov@etersoft.ru> Date: Mon Mar 2 19:02:34 2009 +0300 print: implement collation (eterbug #2843) Отдельно патч не откатить, надо сначала откатить более поздние патчи Дополняющие патчи: 1)commit 7736a8fa5a79aea8d82a0fdb1c0c01a4643a915f Author: Vitaly Perov <vitperov@etersoft.ru> Date: Mon Jul 6 15:59:31 2009 +0400 wineps.drv: fix passing output parameters in case job.output is not set (fix eterbug #4076) 2)commit e46ec7f72a3ba027ed5dfb29b35d7a767ebc06a4 Author: Vitaly Perov <vitperov@etersoft.ru> Date: Fri Apr 17 16:20:54 2009 +0400 wineps.drv: set duplex value when calling 'lpr' command (fix eterbug 3688) 3)commit fa3d513def018ef6b4c5e7e4f51fd24b82ce5625 Author: Vitaly Perov <vitperov@etersoft.ru> Date: Fri May 22 15:11:56 2009 +0400 wineps.drv: Ignore LPR: destination in Output parameter of a document (fix eterbug #3868) Главный патч, меняющий обработку печати: commit e85ba2081f4f6ca15d2997d97d66b64b70d2657a Author: Vitaly Perov <vitperov@etersoft.ru> Date: Mon Mar 2 19:02:34 2009 +0300 print: implement collation (eterbug #2843)
функции OpenJob16 болше нет. Придётся использовать create_job. Но возможен и другой вариант: можно сделать такую же функцию, но свою, выкинув оттуда всё лишнее
Ещё один коммит, который требуется откатить: commit 2101eafcf074c36a638556d47d6e392dd0b202bc Author: Vitaly Perov <vitperov@etersoft.ru> Date: Fri Apr 24 19:03:09 2009 +0400 wineps.drv: add default print job name
Откатил старые патчи. Сделал новый патч. Необходимо проверить.
Проверил на notepad и OpenOffice. Обнаружил странное поведение: pszOutput вместо ожидаемого 'LPR:' передаётся 'LPT1:'. Добавил обработку 'LPT*'. Дуплекс работает. Collate не работает: всегда выставляет Collate=False.
Проблема была в старых настройках реестра. Для решения проблемы необходимо выполнить: wine --removeprinters
Ещё одна проблема: при печати из блокнота не работает печать в файл. Документ всё-равно отправляется на принтер. Похоже на багу #4117
Проверит в Openoffice. Печать в файл работает. Зато не работает collate. Завёл новую багу #5025
Проверил на реальном принтере - всё работает. Сделал окончательный патч. Приложил в eterwine. Опубликовал
Думаю багу можно считать закрытой
Изменения появились в eterhack. Можно проверять