Try to implement my first stub function - AbortPrinter() - (try 3)

Loïc Maury lmaury at gmail.com
Fri Apr 8 11:23:15 CDT 2011


Hello Andrew,
> Hi Loïc,
>
> On 04/08/2011 07:54 AM, Loïc Maury wrote:
>> I try always to implement my first stub function - AbortPrinter.
>
> It's looking good. Before you submit this, you should add some tests. 
> Take a look in <dlls/winspool.drv/tests/>. Demonstrate that 
> AbortPrinter() on Windows behaves the same way as your function does. 
> Make sure to test the value of GetLastError() on failure. You can run 
> your tests through the testbot <https://testbot.winehq.org/> before 
> submitting. Look at other tests for some guidance.
Ok I will see that.
>
> Below are a couple of tiny suggestions.
>
> +        ERR("The handle for the printer is invalid.\n");
> +        TRACE("Document inside for job id : %d\n", 
> printer->doc->job_id);
> +        ERR("No document.\n");
> +            TRACE("(hf : %p, job id : %d)\n", printer->doc->hf, 
> printer->doc->job_id);
> +            TRACE("portname : %s\n", debugstr_w(portname));
> +                TRACE("Remove job from the list.\n");
> +                TRACE("Remove document for the printer : %s.\n", 
> debugstr_w(printer->printername));
>
> You're outputting a lot of debug information. The ERRs aren't really 
> errors, but just invalid values from the application which are handled 
> appropriately. No problem here, so no need to ERR.
>
> The other TRACE statements might be useful for debugging this 
> particular function, but can clutter the output and make future 
> maintenance more difficult. I'd remove them.
Ok I will remove this TRACE and ERR.
>
> +    /* For each jobs, see if we have a job document in the double 
> linked list */
> +            /* Get portname. */
> +            /* Cups Port */
> +                /* The document for the printer is not useful 
> anymore. */
>
> These comments are entirely redundant. The code is perfectly clear, 
> and the comments will just rot if this code is updated later. Don't 
> bother with comments like these unless you're doing something very 
> unclear.
Ok
>
> +                retFromGetPrinter = GetPrinterW(hPrinter, 2, 
> (LPBYTE)pi2, needed, &needed);
> +                if(!retFromGetPrinter)
> +                    goto end;
>
> You can just do "if(!GetPrinterW(...))" and remove the local variable.
Yes the local variable is not necessary

Thank you for your help.

Loïc
>
> Thanks for contributing,
> Andrew
>




More information about the wine-devel mailing list