diff options
author | Xavier Claessens <xclaesse@src.gnome.org> | 2009-03-17 02:34:54 +0800 |
---|---|---|
committer | Xavier Claessens <xclaesse@src.gnome.org> | 2009-03-17 02:34:54 +0800 |
commit | 2baaa7ae3c3ac983a8019cd93a73426c7e081735 (patch) | |
tree | 482c49b5b4f5b3d6b4427642ba8609114503fade /gnome-2-26/tools/glib-errors-enum-header-gen.py | |
parent | bbacde3ff32a1983e7f37eea2986ccfe8f660f3f (diff) | |
download | gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar.gz gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar.bz2 gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar.lz gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar.xz gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.tar.zst gsoc2013-empathy-2baaa7ae3c3ac983a8019cd93a73426c7e081735.zip |
Tagged for release 2.26.0.
svn path=/tags/EMPATHY_2_26_0/; revision=2700
Diffstat (limited to 'gnome-2-26/tools/glib-errors-enum-header-gen.py')
-rw-r--r-- | gnome-2-26/tools/glib-errors-enum-header-gen.py | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/gnome-2-26/tools/glib-errors-enum-header-gen.py b/gnome-2-26/tools/glib-errors-enum-header-gen.py new file mode 100644 index 000000000..64939b414 --- /dev/null +++ b/gnome-2-26/tools/glib-errors-enum-header-gen.py @@ -0,0 +1,75 @@ +#!/usr/bin/python + +import sys +import xml.dom.minidom + +from libglibcodegen import NS_TP, camelcase_to_upper, get_docstring, \ + get_descendant_text + +class Generator(object): + def __init__(self, dom): + self.dom = dom + self.errors = self.dom.getElementsByTagNameNS(NS_TP, 'errors')[0] + + def do_header(self): + print '/* Generated from the Telepathy spec\n' + copyrights = self.errors.getElementsByTagNameNS(NS_TP, 'copyright') + for copyright in copyrights: + print get_descendant_text(copyright) + license = self.errors.getElementsByTagNameNS(NS_TP, 'license')[0] + print '\n' + get_descendant_text(license) + '\n*/' + + def do_gtkdoc(self): + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + ns = error.parentNode.getAttribute('namespace') + nick = error.getAttribute('name').replace(' ', '') + enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', '')) + print ' * @' + enum + ': ' + ns + '.' + nick + ':' + print ' * ' + get_docstring(error) + ' ' + + def do_enumnames(self): + for error in self.errors.getElementsByTagNameNS(NS_TP, 'error'): + nick = error.getAttribute('name').replace(' ', '') + enum = 'TP_ERROR_' + camelcase_to_upper(nick.replace('.', '')) + print ' ' + enum + ',' + + def do_get_type(self): + print """ +#include <glib-object.h> + +G_BEGIN_DECLS + +GType tp_error_get_type (void); + +/** + * TP_TYPE_ERROR: + * + * The GType of the Telepathy error enumeration. + */ +#define TP_TYPE_ERROR (tp_error_get_type()) +""" + + def do_enum(self): + print """\ +/** + * TpError:""" + self.do_gtkdoc() + print """\ + * + * Enumerated type representing the Telepathy D-Bus errors. + */ +typedef enum {""" + self.do_enumnames() + print """\ +} TpError; + +G_END_DECLS""" + + def __call__(self): + self.do_header() + self.do_get_type() + self.do_enum() + +if __name__ == '__main__': + argv = sys.argv[1:] + Generator(xml.dom.minidom.parse(argv[0]))() |