Re: [Gnome-print] Universal binary file format

Hello !

On Wed, Apr 19, 2000 at 11:10:04AM +0200, Lauris Kaplinski wrote:
> On 19 Apr 2000, Miguel de Icaza wrote:
> > > Then we'll start having compatibility problems - what if a program creates
> > > gnome-print-metafile-1.2, but renderer can handle only 1.1? Current format
> > > does not allow it to skip unknown commands, so it has simply give up -
> > > thing I hate with most commercial programs/file formats - they refuse to
> > > open file which contains only one bit information they cannot handle.
> > 
> > Lauris, but this will happen with many many things more.  

Could you elaborate on this one, please ? I don't quite understand.

> > Ie, consider that one such command is "rotate 90 degrees", the output
> > will be completely messed.
> I hope that basic display capabilities will soon be good enough, that we
> does not need to change anything in foreseeable future. And while
> introducing new capabilities, it is usually possible to have nice backdrop
> capability. That problem with current file format is, that ANY new command
> will break completely the ability of older app/lib to render it.
> Just imagine something like:
> Command: set_hint
> Value: "Use envelope feeder for this page"
> It will break DISPLAY compatibility :(

Perhaps we should go the PNG way : 

Command: set_hint
Type: optional
Size: XXX bytes
Value: Use envelope feeder

Command: rotate
Type: mandatory
Size: XXX bytes
Value: 90° CCW

We can either encode the "Type" header in a bitfield, or use a fun hack like
the PNG people to name the chunks in mixed-case.

I think we should design *all* of our file formats such as it would be
possible for Gnumeric 2.0 to open Gnumeric 3.0 files, while dropping 
unknown "features" if they are optional/recommanded but not mandatory. 
Of course, unknown mandatory features could cause the loading to fail, 
but that's life (and most new features in Word 97 vs Word 95 are certainly
not mandatory).

> Lauris


* Pétition contre les brevets logiciels :
Damien Diederen

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]