Reduce duplicate code: PrinterJob::writeProlog

Michael Meeks michael.meeks at suse.com
Mon Mar 5 03:41:02 PST 2012


On Fri, 2012-03-02 at 21:03 +0100, Chr. Rossmanith wrote:
> static const sal_Char pProlog[] and static const sal_Char 
> pSO52CompatProlog[] share about 90% of their content (2 out of 84 lines 
> differ).

	Wow - that is really horrible :-)

>  I could split the prolog in three parts: part 1 and 3 identical 
> for both variables and part 2 varies with 
> m_pGraphics->getStrictSO52Compatibility()

	Sounds good to me; I'm trying to think of a way to make that
elegant :-) the prolog for the prolog seems fun :-)

	There is no performance concern here, so making the code look pretty is
the only interesting thing I suppose. Your idea of splitting into
several named variables makes good sense though.

> This is where the prologs are used:
>      WritePS (pFile, m_pGraphics && 
> m_pGraphics->getStrictSO52Compatibility() ? pSO52CompatProlog : pProlog);
> 
> Any arguments against that approach? It would need 3 instead of 1 call 
> to WritePS...

	That's no problem at all :-)

	Thanks for unwinding that cut/paste rat's nest :-)

	Having said all this, I'm not 100% certain that we really need:

	m_pGraphics->getStrictSO52Compatibility()

	is 'strict Star Office 5.2 Compatibility' in postscript generation a
truly useful feature ? :-) I suspect it could only be at all useful for
unit testing / backwards compatibility testing - but ...

	Surely we could update those tests to a new postscript header ?

	git grep -5 StrictSO52Compatibility

	I'd be inclined to deliberately break that method, then run 'make
check' to see if it busts anything.

	Caolan - I notice the option seems to be mentioned in:

	qadevOOo/testdocs/ttt.sda

	Which you touched last :-) is this a feature we need to keep ?

	All the best,

		Michael.

-- 
michael.meeks at suse.com  <><, Pseudo Engineer, itinerant idiot



More information about the LibreOffice mailing list