[Wine-devel] [Wine-patches] [eter-2.0.0] [2/2] winspool.drv: Get default DEVMODEW. (eterbug #8821)[resend]
Tatyana Fokina
tatyana на etersoft.ru
Вт Янв 8 11:12:58 MSK 2013
здравствуйте, Дмитрий!
Dmitry Timoshkov писал 05.01.2013 09:34:
> Tatyana Fokina <tatyana на etersoft.ru> wrote:
>
>> - if(!pDeviceName) {
>> + if(!pDeviceName || !strcmp(pDeviceName,"")) {
>
> strcmp() здесь не нужен, обычно делают так:
>
> if(!pDeviceName || !*pDeviceName)
>
> Похоже, что эта часть патча должна быть отправлена отдельно.
Спасибо, это исправила.
>> + DWORD size;
>> + DWORD buflen = sizeof(DEVMODEW);
>> + LPBYTE ptr = HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY,
>> buflen);
>> +
>> + if(!(fMode&DM_IN_BUFFER))
>> + {
>> + WINSPOOL_GetDefaultDevMode(ptr, buflen, &size);
>> + if(!pDevModeInput)
>> + pDevModeInput = HeapAlloc(GetProcessHeap(),
>> HEAP_ZERO_MEMORY, size);
>> + memcpy(pDevModeInput, ptr, size);
>> + }
>
> Столько ненужного кода, только для того. чтобы избежать вызова
> DEVMODEdupWtoA()
> если DM_IN_BUFFER не установлен?
>
> pDevModeInputA = (fMode & DM_IN_BUFFER) ?
> DEVMODEdupWtoA(pDevModeInput) : NULL;
>
> выглядит гораздо проще и понятнее.
А вот здесь буду снова отстаивать свою точку зрения :)
Весь смысл как раз в том, чтобы вызвать DEVMODEdupWtoA(), но перед этим
получив в pDevModeInput значения по умолчанию. Возможно реализация не
слишком изящна. Впрочем, если Вам кажется, что лучше оставть NULL, то
спорить не буду больше.
Подробная информация о списке рассылки Wine-devel