[Clipart] Comma-separated keywords in metadata

Jonadab the Unsightly One jonadab at bright.net
Mon Jul 19 08:35:05 PDT 2004


Bryce Harrington <bryce at bryceharrington.com> writes:

> The jar file format does have a spec somewhere; I don't know where
> it is offhand, but it's used by OpenOffice and was developed for
> Java originally.  

I'll look for it.

> There's also good tools and programmatic utilities for operating on
> them (try hitting CPAN).

I didn't find anything there, but the hard part of it is handled by
Archive::Zip.  I suspect that if I have to create Archive::Jar myself,
I can probably subclass Archive::Zip.

[requiring license metadata]
>> What does Inkscape's collection format do in this regard?
>
> The jar-based format used by inkview doesn't impose any content
> requirements, so it lacks any knowledge of metadata or licenses.
> What we're talking about here would be augmentations to it.

Okay.

> By the way, the code relevant to this is pretty easy to review in
> isolation from Inkscape itself, if you're ok with C++:

My C++ is even worse than my C, which is abysmal enough that I don't
try to use it for anything as nontrivial as handling non-text file
formats.  I can pass for fluent in Perl, elisp, and Inform (and a
small handful of markup languages), and I also know a little Scheme,
and if I draw on distant memories several dialects of BASIC and some
Pascal and a little 8086 assembly language, and I've had just enough
exposure to Python, PHP, and JavaScript to be able to follow the jist
of something, but I know precious little C or C++, really only just
barely enough to cause trouble[1].

> inkscape/src/inkview.cpp and inkscape/src/inkjar/*
> Potentially, some day we could even think about splitting it out into a
> separate utility that could be used both in Inkscape and OCAL.

If there were a spec, I could probably just write a Perl class for it
as a wrapper around Archive::Zip.

--- 

[1] If C code that I download doesn't come with a configure script, I
    have to read the gcc manpage to remind myself how to compile it.
    I can make small changes like commenting out an unwanted if test
    (such as the one in civclient that prevents it from running as
    root, though I no longer bother changing that now that I've
    discovered gdmflexiserver), but much beyond that is a stretch.

-- 
$;=sub{$/};@;=map{my($a,$b)=($_,$;);$;=sub{$a.$b->()}}
split//,"ten.thgirb\@badanoj$/ --";$\=$ ;-> ();print$/




More information about the clipart mailing list