Merge lp:~dbusmenu-team/libdbusmenu/ubuntu into lp:~ubuntu-desktop/libdbusmenu/ubuntu

Proposed by Ted Gould
Status: Merged
Merged at revision: not available
Proposed branch: lp:~dbusmenu-team/libdbusmenu/ubuntu
Merge into: lp:~ubuntu-desktop/libdbusmenu/ubuntu
Diff against target: 641 lines
9 files modified
configure.ac (+3/-3)
debian/changelog (+34/-0)
libdbusmenu-glib/client.c (+58/-20)
libdbusmenu-glib/dbus-menu.xml (+1/-0)
libdbusmenu-glib/menuitem.c (+6/-4)
libdbusmenu-glib/menuitem.h (+1/-1)
libdbusmenu-glib/server.c (+27/-7)
libdbusmenu-glib/server.h (+1/-1)
po/Makefile.in.in (+0/-217)
To merge this branch: bzr merge lp:~dbusmenu-team/libdbusmenu/ubuntu
Reviewer Review Type Date Requested Status
DBus Menu Team Pending
Review via email: mp+12385@code.launchpad.net
To post a comment you must log in.
Revision history for this message
Ted Gould (ted) wrote :

0.1.5

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'configure.ac'
2--- configure.ac 2009-09-17 16:23:56 +0000
3+++ configure.ac 2009-09-24 21:15:19 +0000
4@@ -1,11 +1,11 @@
5
6-AC_INIT(libdbusmenu, 0.1.4, ted@canonical.com)
7+AC_INIT(libdbusmenu, 0.1.5, ted@canonical.com)
8 AC_COPYRIGHT([Copyright 2009 Canonical])
9
10 AC_PREREQ(2.53)
11
12 AM_CONFIG_HEADER(config.h)
13-AM_INIT_AUTOMAKE(libdbusmenu, 0.1.4)
14+AM_INIT_AUTOMAKE(libdbusmenu, 0.1.5)
15
16 AM_MAINTAINER_MODE
17
18@@ -66,7 +66,7 @@
19 ###########################
20
21 LIBDBUSMENU_CURRENT=0
22-LIBDBUSMENU_REVISION=4
23+LIBDBUSMENU_REVISION=5
24 LIBDBUSMENU_AGE=0
25
26 AC_SUBST(LIBDBUSMENU_CURRENT)
27
28=== modified file 'debian/changelog'
29--- debian/changelog 2009-09-17 20:08:02 +0000
30+++ debian/changelog 2009-09-24 21:15:19 +0000
31@@ -1,4 +1,38 @@
32+<<<<<<< TREE
33 libdbusmenu (0.1.4-0ubuntu1) karmic; urgency=low
34+=======
35+libdbusmenu (0.1.5-0ubuntu1~ppa1) karmic; urgency=low
36+
37+ * Upstream release 0.1.5
38+
39+ -- Ted Gould <ted@ubuntu.com> Thu, 24 Sep 2009 16:11:42 -0500
40+
41+libdbusmenu (0.1.4-0ubuntu2~ppa4) karmic; urgency=low
42+
43+ * Hooking up with trunk.
44+
45+ -- Ted Gould <ted@ubuntu.com> Thu, 24 Sep 2009 15:57:34 -0500
46+
47+libdbusmenu (0.1.4-0ubuntu2~ppa3) karmic; urgency=low
48+
49+ * Trying a revision ID
50+
51+ -- Ted Gould <ted@ubuntu.com> Mon, 21 Sep 2009 15:40:48 -0500
52+
53+libdbusmenu (0.1.4-0ubuntu2~ppa2) karmic; urgency=low
54+
55+ * Trying to double check the layout
56+
57+ -- Ted Gould <ted@ubuntu.com> Thu, 17 Sep 2009 16:14:16 -0500
58+
59+libdbusmenu (0.1.4-0ubuntu2~ppa1) karmic; urgency=low
60+
61+ * Signaling layout update on child moved
62+
63+ -- Ted Gould <ted@ubuntu.com> Thu, 17 Sep 2009 13:52:13 -0500
64+
65+libdbusmenu (0.1.4-0ubuntu1) UNRELEASED; urgency=low
66+>>>>>>> MERGE-SOURCE
67
68 * Upstream release (LP: #432003)
69 - Applying a fix by not blocking if we're calling for the root. Everyone
70
71=== modified file 'libdbusmenu-glib/client.c'
72--- libdbusmenu-glib/client.c 2009-09-11 16:56:07 +0000
73+++ libdbusmenu-glib/client.c 2009-09-24 21:15:19 +0000
74@@ -67,6 +67,9 @@
75 DBusGProxy * propproxy;
76 DBusGProxyCall * layoutcall;
77
78+ gint current_revision;
79+ gint my_revision;
80+
81 DBusGProxy * dbusproxy;
82
83 GHashTable * type_handlers;
84@@ -91,13 +94,13 @@
85 static void set_property (GObject * obj, guint id, const GValue * value, GParamSpec * pspec);
86 static void get_property (GObject * obj, guint id, GValue * value, GParamSpec * pspec);
87 /* Private Funcs */
88-static void layout_update (DBusGProxy * proxy, DbusmenuClient * client);
89+static void layout_update (DBusGProxy * proxy, gint revision, DbusmenuClient * client);
90 static void id_prop_update (DBusGProxy * proxy, guint id, gchar * property, gchar * value, DbusmenuClient * client);
91 static void id_update (DBusGProxy * proxy, guint id, DbusmenuClient * client);
92 static void build_proxies (DbusmenuClient * client);
93 static guint parse_node_get_id (xmlNodePtr node);
94 static DbusmenuMenuitem * parse_layout_xml(DbusmenuClient * client, xmlNodePtr node, DbusmenuMenuitem * item, DbusmenuMenuitem * parent, DBusGProxy * proxy);
95-static void parse_layout (DbusmenuClient * client, const gchar * layout);
96+static gint parse_layout (DbusmenuClient * client, const gchar * layout);
97 static void update_layout_cb (DBusGProxy * proxy, DBusGProxyCall * call, void * data);
98 static void update_layout (DbusmenuClient * client);
99 static void menuitem_get_properties_cb (DBusGProxy * proxy, GHashTable * properties, GError * error, gpointer data);
100@@ -195,6 +198,9 @@
101 priv->propproxy = NULL;
102 priv->layoutcall = NULL;
103
104+ priv->current_revision = 0;
105+ priv->my_revision = 0;
106+
107 priv->dbusproxy = NULL;
108
109 priv->type_handlers = g_hash_table_new_full(g_str_hash, g_str_equal,
110@@ -301,9 +307,13 @@
111
112 /* Annoying little wrapper to make the right function update */
113 static void
114-layout_update (DBusGProxy * proxy, DbusmenuClient * client)
115+layout_update (DBusGProxy * proxy, gint revision, DbusmenuClient * client)
116 {
117- update_layout(client);
118+ DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
119+ priv->current_revision = revision;
120+ if (priv->current_revision > priv->my_revision) {
121+ update_layout(client);
122+ }
123 return;
124 }
125
126@@ -467,7 +477,7 @@
127 priv->dbusproxy = NULL;
128 }
129
130- dbus_g_proxy_add_signal(priv->menuproxy, "LayoutUpdate", G_TYPE_INVALID);
131+ dbus_g_proxy_add_signal(priv->menuproxy, "LayoutUpdate", G_TYPE_INT, G_TYPE_INVALID);
132 dbus_g_proxy_connect_signal(priv->menuproxy, "LayoutUpdate", G_CALLBACK(layout_update), client, NULL);
133
134 dbus_g_object_register_marshaller(_dbusmenu_server_marshal_VOID__UINT_STRING_STRING, G_TYPE_NONE, G_TYPE_UINT, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INVALID);
135@@ -482,6 +492,34 @@
136 return;
137 }
138
139+/* Get the "revision" attribute of the node, parse it and
140+ return it. Also we're checking to ensure the node
141+ is a 'menu' here. */
142+static gint
143+parse_node_get_revision (xmlNodePtr node)
144+{
145+ if (g_strcmp0((gchar *)node->name, "menu") != 0) {
146+ /* This kills some nodes early */
147+ g_warning("XML Node is not 'menu' it is '%s'", node->name);
148+ return 0;
149+ }
150+
151+ xmlAttrPtr attrib;
152+ for (attrib = node->properties; attrib != NULL; attrib = attrib->next) {
153+ if (g_strcmp0((gchar *)attrib->name, "revision") == 0) {
154+ if (attrib->children != NULL) {
155+ guint revision = (guint)g_ascii_strtoull((gchar *)attrib->children->content, NULL, 10);
156+ /* g_debug ("Found ID: %d", id); */
157+ return revision;
158+ }
159+ break;
160+ }
161+ }
162+
163+ g_warning("Unable to find a revision on the node");
164+ return 0;
165+}
166+
167 /* Get the ID attribute of the node, parse it and
168 return it. Also we're checking to ensure the node
169 is a 'menu' here. */
170@@ -671,7 +709,7 @@
171
172 /* Take the layout passed to us over DBus and turn it into
173 a set of beautiful objects */
174-static void
175+static gint
176 parse_layout (DbusmenuClient * client, const gchar * layout)
177 {
178 DbusmenuClientPrivate * priv = DBUSMENU_CLIENT_GET_PRIVATE(client);
179@@ -681,6 +719,7 @@
180 xmldoc = xmlReadMemory(layout, g_utf8_strlen(layout, 16*1024), "dbusmenu.xml", NULL, 0);
181
182 xmlNodePtr root = xmlDocGetRootElement(xmldoc);
183+ gint revision = parse_node_get_revision(root);
184
185 DbusmenuMenuitem * oldroot = priv->root;
186 priv->root = parse_layout_xml(client, root, priv->root, NULL, priv->menuproxy);
187@@ -694,7 +733,7 @@
188 g_signal_emit(G_OBJECT(client), signals[ROOT_CHANGED], 0, priv->root, TRUE);
189 }
190
191- return;
192+ return revision;
193 }
194
195 /* When the layout property returns, here's where we take care of that. */
196@@ -716,11 +755,21 @@
197
198 const gchar * xml = g_value_get_string(&value);
199 /* g_debug("Got layout string: %s", xml); */
200- parse_layout(client, xml);
201-
202+ gint rev = parse_layout(client, xml);
203+
204+ if (rev == 0) {
205+ g_warning("Unable to parse layout!");
206+ return;
207+ }
208+
209+ priv->my_revision = rev;
210 /* g_debug("Root is now: 0x%X", (unsigned int)priv->root); */
211 g_signal_emit(G_OBJECT(client), signals[LAYOUT_UPDATED], 0, TRUE);
212
213+ if (priv->my_revision < priv->current_revision) {
214+ update_layout(client);
215+ }
216+
217 return;
218 }
219
220@@ -803,17 +852,6 @@
221 return NULL;
222 }
223
224-#if 0
225-/* Seems to be a bug in dbus-glib that assert here, I think because
226- multiple people try and grab it. We're going to comment this out
227- for now as everyone should be listening to the root changed signal
228- anyway. */
229- if (priv->layoutcall != NULL) {
230- /* Will end the current call and block on it's completion */
231- update_layout_cb(priv->propproxy, priv->layoutcall, client);
232- }
233-#endif
234-
235 return priv->root;
236 }
237
238
239=== modified file 'libdbusmenu-glib/dbus-menu.xml'
240--- libdbusmenu-glib/dbus-menu.xml 2009-05-15 20:03:35 +0000
241+++ libdbusmenu-glib/dbus-menu.xml 2009-09-24 21:15:19 +0000
242@@ -57,6 +57,7 @@
243 <arg type="u" name="id" direction="out" />
244 </signal>
245 <signal name="LayoutUpdate">
246+ <arg type="i" name="revision" direction="out" />
247 </signal>
248
249 <!-- End of interesting stuff -->
250
251=== modified file 'libdbusmenu-glib/menuitem.c'
252--- libdbusmenu-glib/menuitem.c 2009-08-25 16:16:26 +0000
253+++ libdbusmenu-glib/menuitem.c 2009-09-24 21:15:19 +0000
254@@ -806,6 +806,7 @@
255 dbusmenu_menuitem_buildxml:
256 @mi: #DbusmenuMenuitem to represent in XML
257 @array: A list of string that will be turned into an XML file
258+ @revision: The revision of the layout to embed in the XML
259
260 This function will add strings to the array @array. It will put
261 at least one entry if this menu item has no children. If it has
262@@ -814,17 +815,18 @@
263 children to place their own tags in the array in between those two.
264 */
265 void
266-dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array)
267+dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision)
268 {
269 g_return_if_fail(DBUSMENU_IS_MENUITEM(mi));
270
271 GList * children = dbusmenu_menuitem_get_children(mi);
272+ /* TODO: Only put revision info in the root node. Save some bandwidth. */
273 if (children == NULL) {
274- g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" />", dbusmenu_menuitem_get_id(mi)));
275+ g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\" />", dbusmenu_menuitem_get_id(mi), revision));
276 } else {
277- g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\">", dbusmenu_menuitem_get_id(mi)));
278+ g_ptr_array_add(array, g_strdup_printf("<menu id=\"%d\" revision=\"%d\">", dbusmenu_menuitem_get_id(mi), revision));
279 for ( ; children != NULL; children = children->next) {
280- dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array);
281+ dbusmenu_menuitem_buildxml(DBUSMENU_MENUITEM(children->data), array, revision);
282 }
283 g_ptr_array_add(array, g_strdup("</menu>"));
284 }
285
286=== modified file 'libdbusmenu-glib/menuitem.h'
287--- libdbusmenu-glib/menuitem.h 2009-09-02 14:48:52 +0000
288+++ libdbusmenu-glib/menuitem.h 2009-09-24 21:15:19 +0000
289@@ -136,7 +136,7 @@
290 void dbusmenu_menuitem_set_root (DbusmenuMenuitem * mi, gboolean root);
291 gboolean dbusmenu_menuitem_get_root (DbusmenuMenuitem * mi);
292
293-void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array);
294+void dbusmenu_menuitem_buildxml (DbusmenuMenuitem * mi, GPtrArray * array, gint revision);
295 void dbusmenu_menuitem_foreach (DbusmenuMenuitem * mi, void (*func) (DbusmenuMenuitem * mi, gpointer data), gpointer data);
296 void dbusmenu_menuitem_activate (DbusmenuMenuitem * mi);
297
298
299=== modified file 'libdbusmenu-glib/server.c'
300--- libdbusmenu-glib/server.c 2009-07-01 05:36:24 +0000
301+++ libdbusmenu-glib/server.c 2009-09-24 21:15:19 +0000
302@@ -47,6 +47,7 @@
303 {
304 DbusmenuMenuitem * root;
305 gchar * dbusobject;
306+ gint layout_revision;
307 };
308
309 #define DBUSMENU_SERVER_GET_PRIVATE(o) \
310@@ -142,6 +143,8 @@
311 /**
312 DbusmenuServer::layout-update:
313 @arg0: The #DbusmenuServer emitting the signal.
314+ @arg1: A revision number representing which revision the update
315+ represents itself as.
316
317 This signal is emitted any time the layout of the
318 menuitems under this server is changed.
319@@ -151,8 +154,8 @@
320 G_SIGNAL_RUN_LAST,
321 G_STRUCT_OFFSET(DbusmenuServerClass, layout_update),
322 NULL, NULL,
323- g_cclosure_marshal_VOID__VOID,
324- G_TYPE_NONE, 0);
325+ g_cclosure_marshal_VOID__INT,
326+ G_TYPE_NONE, 1, G_TYPE_INT);
327
328
329 g_object_class_install_property (object_class, PROP_DBUS_OBJECT,
330@@ -183,6 +186,7 @@
331
332 priv->root = NULL;
333 priv->dbusobject = NULL;
334+ priv->layout_revision = 1;
335
336 return;
337 }
338@@ -235,7 +239,8 @@
339 } else {
340 g_debug("Setting root node to NULL");
341 }
342- g_signal_emit(obj, signals[LAYOUT_UPDATE], 0, TRUE);
343+ priv->layout_revision++;
344+ g_signal_emit(obj, signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
345 break;
346 case PROP_LAYOUT:
347 /* Can't set this, fall through to error */
348@@ -275,9 +280,9 @@
349 GPtrArray * xmlarray = g_ptr_array_new();
350 if (priv->root == NULL) {
351 /* g_debug("Getting layout without root node!"); */
352- g_ptr_array_add(xmlarray, g_strdup("<menu />"));
353+ g_ptr_array_add(xmlarray, g_strdup_printf("<menu revision=\"%d\" />", priv->layout_revision));
354 } else {
355- dbusmenu_menuitem_buildxml(priv->root, xmlarray);
356+ dbusmenu_menuitem_buildxml(priv->root, xmlarray, priv->layout_revision);
357 }
358 g_ptr_array_add(xmlarray, NULL);
359
360@@ -310,7 +315,9 @@
361 {
362 menuitem_signals_create(child, server);
363 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */
364- g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, TRUE);
365+ DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
366+ priv->layout_revision++;
367+ g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
368 return;
369 }
370
371@@ -319,7 +326,18 @@
372 {
373 menuitem_signals_remove(child, server);
374 /* TODO: We probably need to group the layout update signals to make the number more reasonble. */
375- g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, TRUE);
376+ DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
377+ priv->layout_revision++;
378+ g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
379+ return;
380+}
381+
382+static void
383+menuitem_child_moved (DbusmenuMenuitem * parent, DbusmenuMenuitem * child, guint newpos, guint oldpos, DbusmenuServer * server)
384+{
385+ DbusmenuServerPrivate * priv = DBUSMENU_SERVER_GET_PRIVATE(server);
386+ priv->layout_revision++;
387+ g_signal_emit(G_OBJECT(server), signals[LAYOUT_UPDATE], 0, priv->layout_revision, TRUE);
388 return;
389 }
390
391@@ -330,6 +348,7 @@
392 {
393 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_ADDED, G_CALLBACK(menuitem_child_added), data);
394 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_REMOVED, G_CALLBACK(menuitem_child_removed), data);
395+ g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_CHILD_MOVED, G_CALLBACK(menuitem_child_moved), data);
396 g_signal_connect(G_OBJECT(mi), DBUSMENU_MENUITEM_SIGNAL_PROPERTY_CHANGED, G_CALLBACK(menuitem_property_changed), data);
397 return;
398 }
399@@ -341,6 +360,7 @@
400 {
401 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_added), data);
402 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_removed), data);
403+ g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_child_moved), data);
404 g_signal_handlers_disconnect_by_func(G_OBJECT(mi), G_CALLBACK(menuitem_property_changed), data);
405 return;
406 }
407
408=== modified file 'libdbusmenu-glib/server.h'
409--- libdbusmenu-glib/server.h 2009-05-12 15:31:59 +0000
410+++ libdbusmenu-glib/server.h 2009-09-24 21:15:19 +0000
411@@ -71,7 +71,7 @@
412 /* Signals */
413 void (*id_prop_update)(guint id, gchar * property, gchar * value);
414 void (*id_update)(guint id);
415- void (*layout_update)(void);
416+ void (*layout_update)(gint revision);
417
418 /* Reserved */
419 void (*dbusmenu_server_reserved1)(void);
420
421=== removed file 'po/Makefile.in.in'
422--- po/Makefile.in.in 2009-08-20 17:55:36 +0000
423+++ po/Makefile.in.in 1970-01-01 00:00:00 +0000
424@@ -1,217 +0,0 @@
425-# Makefile for program source directory in GNU NLS utilities package.
426-# Copyright (C) 1995, 1996, 1997 by Ulrich Drepper <drepper@gnu.ai.mit.edu>
427-# Copyright (C) 2004-2008 Rodney Dawes <dobey.pwns@gmail.com>
428-#
429-# This file may be copied and used freely without restrictions. It may
430-# be used in projects which are not available under a GNU Public License,
431-# but which still want to provide support for the GNU gettext functionality.
432-#
433-# - Modified by Owen Taylor <otaylor@redhat.com> to use GETTEXT_PACKAGE
434-# instead of PACKAGE and to look for po2tbl in ./ not in intl/
435-#
436-# - Modified by jacob berkman <jacob@ximian.com> to install
437-# Makefile.in.in and po2tbl.sed.in for use with glib-gettextize
438-#
439-# - Modified by Rodney Dawes <dobey.pwns@gmail.com> for use with intltool
440-#
441-# We have the following line for use by intltoolize:
442-# INTLTOOL_MAKEFILE
443-
444-GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
445-PACKAGE = @PACKAGE@
446-VERSION = @VERSION@
447-
448-SHELL = @SHELL@
449-
450-srcdir = @srcdir@
451-top_srcdir = @top_srcdir@
452-top_builddir = @top_builddir@
453-VPATH = @srcdir@
454-
455-prefix = @prefix@
456-exec_prefix = @exec_prefix@
457-datadir = @datadir@
458-datarootdir = @datarootdir@
459-libdir = @libdir@
460-DATADIRNAME = @DATADIRNAME@
461-itlocaledir = $(prefix)/$(DATADIRNAME)/locale
462-subdir = po
463-install_sh = @install_sh@
464-# Automake >= 1.8 provides @mkdir_p@.
465-# Until it can be supposed, use the safe fallback:
466-mkdir_p = $(install_sh) -d
467-
468-INSTALL = @INSTALL@
469-INSTALL_DATA = @INSTALL_DATA@
470-
471-GMSGFMT = @GMSGFMT@
472-MSGFMT = @MSGFMT@
473-XGETTEXT = @XGETTEXT@
474-INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
475-INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
476-MSGMERGE = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --dist
477-GENPOT = INTLTOOL_EXTRACT=$(INTLTOOL_EXTRACT) srcdir=$(srcdir) $(INTLTOOL_UPDATE) --gettext-package $(GETTEXT_PACKAGE) --pot
478-
479-ALL_LINGUAS = @ALL_LINGUAS@
480-
481-PO_LINGUAS=$(shell if test -r $(srcdir)/LINGUAS; then grep -v "^\#" $(srcdir)/LINGUAS; else echo "$(ALL_LINGUAS)"; fi)
482-
483-USER_LINGUAS=$(shell if test -n "$(LINGUAS)"; then LLINGUAS="$(LINGUAS)"; ALINGUAS="$(ALL_LINGUAS)"; for lang in $$LLINGUAS; do if test -n "`grep \^$$lang$$ $(srcdir)/LINGUAS 2>/dev/null`" -o -n "`echo $$ALINGUAS|tr ' ' '\n'|grep \^$$lang$$`"; then printf "$$lang "; fi; done; fi)
484-
485-USE_LINGUAS=$(shell if test -n "$(USER_LINGUAS)" -o -n "$(LINGUAS)"; then LLINGUAS="$(USER_LINGUAS)"; else if test -n "$(PO_LINGUAS)"; then LLINGUAS="$(PO_LINGUAS)"; else LLINGUAS="$(ALL_LINGUAS)"; fi; fi; for lang in $$LLINGUAS; do printf "$$lang "; done)
486-
487-POFILES=$(shell LINGUAS="$(PO_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.po "; done)
488-
489-DISTFILES = Makefile.in.in POTFILES.in $(POFILES)
490-EXTRA_DISTFILES = ChangeLog POTFILES.skip Makevars LINGUAS
491-
492-POTFILES = \
493-# This comment gets stripped out
494-
495-CATALOGS=$(shell LINGUAS="$(USE_LINGUAS)"; for lang in $$LINGUAS; do printf "$$lang.gmo "; done)
496-
497-.SUFFIXES:
498-.SUFFIXES: .po .pox .gmo .mo .msg .cat
499-
500-.po.pox:
501- $(MAKE) $(GETTEXT_PACKAGE).pot
502- $(MSGMERGE) $< $(GETTEXT_PACKAGE).pot -o $*.pox
503-
504-.po.mo:
505- $(MSGFMT) -o $@ $<
506-
507-.po.gmo:
508- file=`echo $* | sed 's,.*/,,'`.gmo \
509- && rm -f $$file && $(GMSGFMT) -o $$file $<
510-
511-.po.cat:
512- sed -f ../intl/po2msg.sed < $< > $*.msg \
513- && rm -f $@ && gencat $@ $*.msg
514-
515-
516-all: all-@USE_NLS@
517-
518-all-yes: $(CATALOGS)
519-all-no:
520-
521-$(GETTEXT_PACKAGE).pot: $(POTFILES)
522- $(GENPOT)
523-
524-install: install-data
525-install-data: install-data-@USE_NLS@
526-install-data-no: all
527-install-data-yes: all
528- linguas="$(USE_LINGUAS)"; \
529- for lang in $$linguas; do \
530- dir=$(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES; \
531- $(mkdir_p) $$dir; \
532- if test -r $$lang.gmo; then \
533- $(INSTALL_DATA) $$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
534- echo "installing $$lang.gmo as $$dir/$(GETTEXT_PACKAGE).mo"; \
535- else \
536- $(INSTALL_DATA) $(srcdir)/$$lang.gmo $$dir/$(GETTEXT_PACKAGE).mo; \
537- echo "installing $(srcdir)/$$lang.gmo as" \
538- "$$dir/$(GETTEXT_PACKAGE).mo"; \
539- fi; \
540- if test -r $$lang.gmo.m; then \
541- $(INSTALL_DATA) $$lang.gmo.m $$dir/$(GETTEXT_PACKAGE).mo.m; \
542- echo "installing $$lang.gmo.m as $$dir/$(GETTEXT_PACKAGE).mo.m"; \
543- else \
544- if test -r $(srcdir)/$$lang.gmo.m ; then \
545- $(INSTALL_DATA) $(srcdir)/$$lang.gmo.m \
546- $$dir/$(GETTEXT_PACKAGE).mo.m; \
547- echo "installing $(srcdir)/$$lang.gmo.m as" \
548- "$$dir/$(GETTEXT_PACKAGE).mo.m"; \
549- else \
550- true; \
551- fi; \
552- fi; \
553- done
554-
555-# Empty stubs to satisfy archaic automake needs
556-dvi info tags TAGS ID:
557-
558-# Define this as empty until I found a useful application.
559-install-exec installcheck:
560-
561-uninstall:
562- linguas="$(USE_LINGUAS)"; \
563- for lang in $$linguas; do \
564- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo; \
565- rm -f $(DESTDIR)$(itlocaledir)/$$lang/LC_MESSAGES/$(GETTEXT_PACKAGE).mo.m; \
566- done
567-
568-check: all $(GETTEXT_PACKAGE).pot
569- rm -f missing notexist
570- srcdir=$(srcdir) $(INTLTOOL_UPDATE) -m
571- if [ -r missing -o -r notexist ]; then \
572- exit 1; \
573- fi
574-
575-mostlyclean:
576- rm -f *.pox $(GETTEXT_PACKAGE).pot *.old.po cat-id-tbl.tmp
577- rm -f .intltool-merge-cache
578-
579-clean: mostlyclean
580-
581-distclean: clean
582- rm -f Makefile Makefile.in POTFILES stamp-it
583- rm -f *.mo *.msg *.cat *.cat.m *.gmo
584-
585-maintainer-clean: distclean
586- @echo "This command is intended for maintainers to use;"
587- @echo "it deletes files that may require special tools to rebuild."
588- rm -f Makefile.in.in
589-
590-distdir = ../$(PACKAGE)-$(VERSION)/$(subdir)
591-dist distdir: $(DISTFILES)
592- dists="$(DISTFILES)"; \
593- extra_dists="$(EXTRA_DISTFILES)"; \
594- for file in $$extra_dists; do \
595- test -f $(srcdir)/$$file && dists="$$dists $(srcdir)/$$file"; \
596- done; \
597- for file in $$dists; do \
598- test -f $$file || file="$(srcdir)/$$file"; \
599- ln $$file $(distdir) 2> /dev/null \
600- || cp -p $$file $(distdir); \
601- done
602-
603-update-po: Makefile
604- $(MAKE) $(GETTEXT_PACKAGE).pot
605- tmpdir=`pwd`; \
606- linguas="$(USE_LINGUAS)"; \
607- for lang in $$linguas; do \
608- echo "$$lang:"; \
609- result="`$(MSGMERGE) -o $$tmpdir/$$lang.new.po $$lang`"; \
610- if $$result; then \
611- if cmp $(srcdir)/$$lang.po $$tmpdir/$$lang.new.po >/dev/null 2>&1; then \
612- rm -f $$tmpdir/$$lang.new.po; \
613- else \
614- if mv -f $$tmpdir/$$lang.new.po $$lang.po; then \
615- :; \
616- else \
617- echo "msgmerge for $$lang.po failed: cannot move $$tmpdir/$$lang.new.po to $$lang.po" 1>&2; \
618- rm -f $$tmpdir/$$lang.new.po; \
619- exit 1; \
620- fi; \
621- fi; \
622- else \
623- echo "msgmerge for $$lang.gmo failed!"; \
624- rm -f $$tmpdir/$$lang.new.po; \
625- fi; \
626- done
627-
628-Makefile POTFILES: stamp-it
629- @if test ! -f $@; then \
630- rm -f stamp-it; \
631- $(MAKE) stamp-it; \
632- fi
633-
634-stamp-it: Makefile.in.in $(top_builddir)/config.status POTFILES.in
635- cd $(top_builddir) \
636- && CONFIG_FILES=$(subdir)/Makefile.in CONFIG_HEADERS= CONFIG_LINKS= \
637- $(SHELL) ./config.status
638-
639-# Tell versions [3.59,3.63) of GNU make not to export all variables.
640-# Otherwise a system limit (for SysV at least) may be exceeded.
641-.NOEXPORT:

Subscribers

People subscribed via source and target branches

to all changes: