Re: .desktop parser, and xdg basedir api
- From: Ray Strode <halfline hawaii rr com>
- To: Jonathan Blandford <jrb redhat com>
- Cc: gtk-devel-list gnome org, Havoc Pennington <hp redhat com>
- Subject: Re: .desktop parser, and xdg basedir api
- Date: Mon, 26 Apr 2004 00:06:39 -1000
Hi Jonathan,
* There are two major use cases for desktop files. The first is to
read a file, extract some information, and free it. The second is to
open a desktop file with the intention of editing it. In the latter
case, you need to keep all the translations around so that you can
write them back. We've had performance problems in the past from
storing all the translations of a desktop file when not needed.
It makes sense to provide two different modes of the parser when you
create one.
Interesting points. I think you are right. Those two use cases are
different
enough that it makes sense to me for the parser to have options for
specifying
its behavior.
* There's one already a parser written in gtk/gtkiconthemeparser.c.
You might look there for inspiration.
Thank you. This parser made me realize a number of things that should
be done
differently in my code.
- Conditionally check for LC_MESSAGES and fallback to LC_CTYPE if it
isn't
avaiable.
- get_string and get_locale_string should automatically unescape key
value's
- a new function should be provided to get the escaped key values
- the iconthemeparser has serialization support which my code needs
- its parsing code was written in nice, short functions.
* Loading a file isn't the right API. We need to use this from GNOME
VFS, etc, and will need to feed it data. gmarkup.c has some examples
of code you can look at to see how to do this.
Oh I see. Okay, I'll make it support incremental loading and provide a
_from_file convenience function on top.
I'm also going to rename the data type to GDesktopEntry (as suggested by
James Henstridge) since the code does more than parse.
I had some free time today and I have some free time tomorrow, so
hopefully I'll
have an updated patch soon.
--Ray
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]