1 From 0c4a6322906ec5bfe595dda5c06ec06c29876c2c Mon Sep 17 00:00:00 2001
2 From: Andreas Rottmann <a.rottmann@gmx.at>
3 Date: Mon, 26 Apr 2010 19:16:32 +0000
4 Subject: Add gobject-introspection support
6 - Detect gobject-introspection (g-i) in configure, using the M4 macro
7 from the newly-added introspection.m4. This adds
8 gobject-introspection as a new *optional* build dependency.
10 - Integrate the generation of .gir and .typelib files into the build
13 - Add the annotations from gir-repository to the source code.
15 - Include annotation glossary in "Reference Manual" main file.
17 See <https://bugzilla.gnome.org/show_bug.cgi?id=576595>.
19 diff --git a/Makefile.am b/Makefile.am
20 index b845e29..861daff 100644
23 @@ -7,9 +7,10 @@ EXTRA_DIST = \
25 libsoup-gnome-2.4.pc.in \
31 -DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc
32 +DISTCHECK_CONFIGURE_FLAGS = --enable-gtk-doc --enable-introspection
34 pkgconfigdir = $(libdir)/pkgconfig
36 diff --git a/configure.ac b/configure.ac
37 index eb2c95f..4ff39d3 100644
40 @@ -206,6 +206,10 @@ dnl *** gtk-doc ***
44 +dnl *****************************
45 +dnl *** gobject-introspection ***
46 +dnl *****************************
47 +GOBJECT_INTROSPECTION_CHECK([0.6.7])
49 dnl *************************************
50 dnl *** Warnings to show if using GCC ***
51 diff --git a/docs/reference/libsoup-2.4-docs.sgml b/docs/reference/libsoup-2.4-docs.sgml
52 index 3cb3d11..c52208f 100644
53 --- a/docs/reference/libsoup-2.4-docs.sgml
54 +++ b/docs/reference/libsoup-2.4-docs.sgml
59 + <xi:include href="xml/annotation-glossary.xml">
64 diff --git a/libsoup/Makefile.am b/libsoup/Makefile.am
65 index 284d85f..2e7c1fb 100644
66 --- a/libsoup/Makefile.am
67 +++ b/libsoup/Makefile.am
68 @@ -202,7 +202,63 @@ libsoup_gnome_2_4_la_SOURCES = \
73 +# Introspection support
75 +include $(INTROSPECTION_MAKEFILE)
77 +INTROSPECTION_SCANNER_ARGS = --add-include-path=.
78 +INTROSPECTION_COMPILER_ARGS = --includedir=.
80 +if HAVE_INTROSPECTION
84 + $(filter-out soup.h soup-enum-types.% soup-marshal.%,\
85 + $(soup_headers) $(libsoup_2_4_la_SOURCES))
86 +gi_built_soup_files = soup-enum-types.h
88 +Soup-2.4.gir: libsoup-2.4.la
89 +Soup_2_4_gir_INCLUDES = Gio-2.0
90 +Soup_2_4_gir_CFLAGS = $(INCLUDES)
91 +Soup_2_4_gir_LIBS = libsoup-2.4.la
92 +Soup_2_4_gir_FILES = \
93 + $(addprefix $(srcdir)/, $(gi_soup_files)) \
94 + $(foreach f,$(gi_built_soup_files), \
95 + $(if $(shell test -f $(addprefix $(srcdir)/,$(f)) && echo yes), \
96 + $(addprefix $(srcdir)/,$(f)), \
99 +INTROSPECTION_GIRS += Soup-2.4.gir
101 +if BUILD_LIBSOUP_GNOME
104 +gi_soup_gnome_files = $(filter-out soup-gnome.h,\
105 + $(libsoupgnomeinclude_HEADERS) \
106 + $(libsoup_gnome_2_4_la_SOURCES))
107 +SoupGNOME-2.4.gir: libsoup-gnome-2.4.la Soup-2.4.gir
108 +SoupGNOME_2_4_gir_SCANNERFLAGS = --identifier-prefix=Soup --symbol-prefix=soup
109 +SoupGNOME_2_4_gir_INCLUDES = Soup-2.4
110 +SoupGNOME_2_4_gir_CFLAGS = $(INCLUDES)
111 +SoupGNOME_2_4_gir_LIBS = libsoup-gnome-2.4.la
112 +SoupGNOME_2_4_gir_FILES = $(addprefix $(srcdir)/,$(gi_soup_gnome_files))
114 +INTROSPECTION_GIRS += SoupGNOME-2.4.gir
118 +girdir = $(datadir)/gir-1.0
119 +gir_DATA = $(INTROSPECTION_GIRS)
121 +typelibdir = $(libdir)/girepository-1.0
122 +typelib_DATA = $(INTROSPECTION_GIRS:.gir=.typelib)
124 +CLEANFILES += $(dist_gir_DATA) $(typelib_DATA)
130 soup-enum-types.h.tmpl \
131 - soup-enum-types.c.tmpl
132 \ No newline at end of file
133 + soup-enum-types.c.tmpl
134 diff --git a/libsoup/soup-address.c b/libsoup/soup-address.c
135 index 605a51b..d8be7bd 100644
136 --- a/libsoup/soup-address.c
137 +++ b/libsoup/soup-address.c
138 @@ -364,7 +364,7 @@ soup_address_new (const char *name, guint port)
139 * Returns a #SoupAddress equivalent to @sa (or %NULL if @sa's
140 * address family isn't supported)
142 - * Return value: the new #SoupAddress
143 + * Return value: (allow-none): the new #SoupAddress
146 soup_address_new_from_sockaddr (struct sockaddr *sa, int len)
147 @@ -403,7 +403,7 @@ soup_address_new_from_sockaddr (struct sockaddr *sa, int len)
148 * for @family (or %NULL if @family isn't supported), suitable for
149 * passing to soup_socket_server_new().
151 - * Return value: the new #SoupAddress
152 + * Return value: (allow-none): the new #SoupAddress
155 soup_address_new_any (SoupAddressFamily family, guint port)
156 @@ -428,7 +428,7 @@ soup_address_new_any (SoupAddressFamily family, guint port)
157 * soup_address_is_resolved() to safely test whether or not an address
158 * is resolved before fetching its name or address.
160 - * Return value: the hostname, or %NULL if it is not known.
161 + * Return value: (allow-none): the hostname, or %NULL if it is not known.
164 soup_address_get_name (SoupAddress *addr)
165 @@ -451,7 +451,7 @@ soup_address_get_name (SoupAddress *addr)
166 * soup_address_is_resolved() to safely test whether or not an address
167 * is resolved before fetching its name or address.
169 - * Return value: the sockaddr, or %NULL
170 + * Return value: (allow-none): the sockaddr, or %NULL
173 soup_address_get_sockaddr (SoupAddress *addr, int *len)
174 @@ -493,7 +493,7 @@ soup_address_make_inet_address (SoupAddress *addr)
175 * soup_address_is_resolved() to safely test whether or not an address
176 * is resolved before fetching its name or address.
178 - * Return value: the physical address, or %NULL
179 + * Return value: (allow-none): the physical address, or %NULL
182 soup_address_get_physical (SoupAddress *addr)
183 @@ -672,7 +672,7 @@ idle_complete_resolve (gpointer addr)
184 * @addr: a #SoupAddress
185 * @async_context: the #GMainContext to call @callback from
186 * @cancellable: a #GCancellable object, or %NULL
187 - * @callback: callback to call with the result
188 + * @callback: (scope async): callback to call with the result
189 * @user_data: data for @callback
191 * Asynchronously resolves the missing half of @addr (its IP address
192 diff --git a/libsoup/soup-auth.c b/libsoup/soup-auth.c
193 index 774cf2c..41d56b2 100644
194 --- a/libsoup/soup-auth.c
195 +++ b/libsoup/soup-auth.c
196 @@ -518,7 +518,7 @@ soup_auth_get_authorization (SoupAuth *auth, SoupMessage *msg)
197 * of @auth's protection space, unless otherwise discovered not to
200 - * Return value: the list of paths, which must be freed with
201 + * Return value: (element-type utf8): the list of paths, which can be freed with
202 * soup_auth_free_protection_space().
205 @@ -531,7 +531,7 @@ soup_auth_get_protection_space (SoupAuth *auth, SoupURI *source_uri)
209 - * soup_auth_free_protection_space:
210 + * soup_auth_free_protection_space: (skip)
212 * @space: the return value from soup_auth_get_protection_space()
214 diff --git a/libsoup/soup-cookie.c b/libsoup/soup-cookie.c
215 index 7f51496..e31bdd9 100644
216 --- a/libsoup/soup-cookie.c
217 +++ b/libsoup/soup-cookie.c
218 @@ -735,8 +735,8 @@ soup_cookie_free (SoupCookie *cookie)
219 * #SoupCookie<!-- -->s. Cookies that do not specify "path" or
220 * "domain" attributes will have their values defaulted from @msg.
222 - * Return value: a #GSList of #SoupCookie<!-- -->s, which can be freed
223 - * with soup_cookies_free().
224 + * Return value: (element-type SoupCookie): a #GSList of
225 + * #SoupCookie<!-- -->s, which can be freed with soup_cookies_free().
229 @@ -778,8 +778,8 @@ soup_cookies_from_response (SoupMessage *msg)
230 * pass a cookie returned from this method directly to
231 * soup_cookies_to_response().)
233 - * Return value: a #GSList of #SoupCookie<!-- -->s, which can be freed
234 - * with soup_cookies_free().
235 + * Return value: (element-type SoupCookie): a #GSList of
236 + * #SoupCookie<!-- -->s, which can be freed with soup_cookies_free().
240 @@ -813,7 +813,7 @@ soup_cookies_from_request (SoupMessage *msg)
243 * soup_cookies_to_response:
244 - * @cookies: a #GSList of #SoupCookie
245 + * @cookies: (element-type SoupCookie): a #GSList of #SoupCookie
246 * @msg: a #SoupMessage
248 * Appends a "Set-Cookie" response header to @msg for each cookie in
249 @@ -840,7 +840,7 @@ soup_cookies_to_response (GSList *cookies, SoupMessage *msg)
252 * soup_cookies_to_request:
253 - * @cookies: a #GSList of #SoupCookie
254 + * @cookies: (element-type SoupCookie): a #GSList of #SoupCookie
255 * @msg: a #SoupMessage
257 * Adds the name and value of each cookie in @cookies to @msg's
258 @@ -868,8 +868,8 @@ soup_cookies_to_request (GSList *cookies, SoupMessage *msg)
262 - * soup_cookies_free:
263 - * @cookies: a #GSList of #SoupCookie
264 + * soup_cookies_free: (skip)
265 + * @cookies: (element-type SoupCookie): a #GSList of #SoupCookie
269 @@ -887,7 +887,7 @@ soup_cookies_free (GSList *cookies)
272 * soup_cookies_to_cookie_header:
273 - * @cookies: a #GSList of #SoupCookie
274 + * @cookies: (element-type SoupCookie): a #GSList of #SoupCookie
276 * Serializes a #GSList of #SoupCookie into a string suitable for
277 * setting as the value of the "Cookie" header.
278 diff --git a/libsoup/soup-date.c b/libsoup/soup-date.c
279 index 2279786..5509af8 100644
280 --- a/libsoup/soup-date.c
281 +++ b/libsoup/soup-date.c
282 @@ -722,7 +722,7 @@ soup_date_to_time_t (SoupDate *date)
284 * soup_date_to_timeval:
286 - * @time: a #GTimeVal structure in which to store the converted time.
287 + * @time: (out): a #GTimeVal structure in which to store the converted time.
289 * Converts @date to a #GTimeVal.
291 diff --git a/libsoup/soup-form.c b/libsoup/soup-form.c
292 index 278d845..477e0c7 100644
293 --- a/libsoup/soup-form.c
294 +++ b/libsoup/soup-form.c
295 @@ -78,8 +78,9 @@ form_decode (char *part)
296 * Decodes @form, which is an urlencoded dataset as defined in the
299 - * Return value: a hash table containing the name/value pairs from
300 - * @encoded_form, which you can free with g_hash_table_destroy().
301 + * Return value: (element-type utf8 utf8): a hash table containing the
302 + * name/value pairs from @encoded_form, which you can free with
303 + * g_hash_table_destroy().
306 soup_form_decode (const char *encoded_form)
307 @@ -269,7 +270,8 @@ soup_form_encode (const char *first_field, ...)
310 * soup_form_encode_hash:
311 - * @form_data_set: a hash table containing name/value pairs (as strings)
312 + * @form_data_set: (element-type utf8 utf8): a hash table containing
313 + * name/value pairs (as strings)
315 * Encodes @form_data_set into a value of type
316 * "application/x-www-form-urlencoded", as defined in the HTML 4.01
317 @@ -414,7 +416,7 @@ soup_form_request_new (const char *method, const char *uri,
318 * soup_form_request_new_from_hash:
319 * @method: the HTTP method, either "GET" or "POST"
320 * @uri: the URI to send the form data to
321 - * @form_data_set: the data to send to @uri
322 + * @form_data_set: (element-type utf8 utf8): the data to send to @uri
324 * Creates a new %SoupMessage and sets it up to send @form_data_set to
325 * @uri via @method, as with soup_form_request_new().
326 diff --git a/libsoup/soup-headers.c b/libsoup/soup-headers.c
327 index 5e73a3c..9a48e3d 100644
328 --- a/libsoup/soup-headers.c
329 +++ b/libsoup/soup-headers.c
330 @@ -158,9 +158,12 @@ soup_headers_clean_for_10 (SoupMessageHeaders *hdrs)
331 * @str: the header string (including the trailing blank line)
332 * @len: length of @str up to (but not including) the terminating blank line.
333 * @req_headers: #SoupMessageHeaders to store the header values in
334 - * @req_method: if non-%NULL, will be filled in with the request method
335 - * @req_path: if non-%NULL, will be filled in with the request path
336 - * @ver: if non-%NULL, will be filled in with the HTTP version
337 + * @req_method: (out) (allow-none): if non-%NULL, will be filled in with the
339 + * @req_path: (out) (allow-none): if non-%NULL, will be filled in with the
341 + * @ver: (out) (allow-none): if non-%NULL, will be filled in with the HTTP
344 * Parses the headers of an HTTP request in @str and stores the
345 * results in @req_method, @req_path, @ver, and @req_headers.
346 @@ -264,10 +267,12 @@ soup_headers_parse_request (const char *str,
348 * soup_headers_parse_status_line:
349 * @status_line: an HTTP Status-Line
350 - * @ver: if non-%NULL, will be filled in with the HTTP version
351 - * @status_code: if non-%NULL, will be filled in with the status code
352 - * @reason_phrase: if non-%NULL, will be filled in with the reason
354 + * @ver: (out) (allow-none): if non-%NULL, will be filled in with the HTTP
356 + * @status_code: (out) (allow-none): if non-%NULL, will be filled in with
358 + * @reason_phrase: (out) (allow-none): if non-%NULL, will be filled in with
359 + * the reason phrase
361 * Parses the HTTP Status-Line string in @status_line into @ver,
362 * @status_code, and @reason_phrase. @status_line must be terminated by
363 @@ -339,10 +344,12 @@ soup_headers_parse_status_line (const char *status_line,
364 * @str: the header string (including the trailing blank line)
365 * @len: length of @str up to (but not including) the terminating blank line.
366 * @headers: #SoupMessageheaders to store the header values in
367 - * @ver: if non-%NULL, will be filled in with the HTTP version
368 - * @status_code: if non-%NULL, will be filled in with the status code
369 - * @reason_phrase: if non-%NULL, will be filled in with the reason
371 + * @ver: (out) (allow-none): if non-%NULL, will be filled in with the HTTP
373 + * @status_code: (out) (allow-none): if non-%NULL, will be filled in with
375 + * @reason_phrase: (out) (allow-none): if non-%NULL, will be filled in with
376 + * the reason phrase
378 * Parses the headers of an HTTP response in @str and stores the
379 * results in @ver, @status_code, @reason_phrase, and @headers.
380 @@ -504,8 +511,8 @@ sort_by_qval (const void *a, const void *b)
382 * soup_header_parse_quality_list:
383 * @header: a header value
384 - * @unacceptable: on return, will contain a list of unacceptable
386 + * @unacceptable: (out) (allow-none): on return, will contain a list of
387 + * unacceptable values
389 * Parses a header whose content is a list of items with optional
390 * "qvalue"s (eg, Accept, Accept-Charset, Accept-Encoding,
391 diff --git a/libsoup/soup-message-body.c b/libsoup/soup-message-body.c
392 index 77ff906..f723374 100644
393 --- a/libsoup/soup-message-body.c
394 +++ b/libsoup/soup-message-body.c
395 @@ -413,7 +413,7 @@ append_buffer (SoupMessageBody *body, SoupBuffer *buffer)
396 * soup_message_body_append:
397 * @body: a #SoupMessageBody
398 * @use: how to use @data
399 - * @data: data to append
400 + * @data: (array length=length) (element-type uint8): data to append
401 * @length: length of @data
403 * Appends @length bytes from @data to @body according to @use.
404 diff --git a/libsoup/soup-message-headers.c b/libsoup/soup-message-headers.c
405 index 6acca0c..4a72f6a 100644
406 --- a/libsoup/soup-message-headers.c
407 +++ b/libsoup/soup-message-headers.c
408 @@ -408,7 +408,8 @@ typedef struct {
411 * soup_message_headers_iter_init:
412 - * @iter: a pointer to a %SoupMessageHeadersIter structure
413 + * @iter: (out) (transfer none): a pointer to a %SoupMessageHeadersIter
415 * @hdrs: a %SoupMessageHeaders
417 * Initializes @iter for iterating @hdrs.
418 @@ -425,9 +426,11 @@ soup_message_headers_iter_init (SoupMessageHeadersIter *iter,
421 * soup_message_headers_iter_next:
422 - * @iter: a %SoupMessageHeadersIter
423 - * @name: pointer to a variable to return the header name in
424 - * @value: pointer to a variable to return the header value in
425 + * @iter: (inout) (transfer none): a %SoupMessageHeadersIter
426 + * @name: (out) (transfer none): pointer to a variable to return
427 + * the header name in
428 + * @value: (out) (transfer none): pointer to a variable to return
429 + * the header value in
431 * Yields the next name/value pair in the %SoupMessageHeaders being
432 * iterated by @iter. If @iter has already yielded the last header,
433 diff --git a/libsoup/soup-message.c b/libsoup/soup-message.c
434 index 7c0b802..4738c76 100644
435 --- a/libsoup/soup-message.c
436 +++ b/libsoup/soup-message.c
437 @@ -764,9 +764,10 @@ soup_message_set_request (SoupMessage *msg,
439 * soup_message_set_response:
441 - * @content_type: MIME Content-Type of the body
442 + * @content_type: (allow-none): MIME Content-Type of the body
443 * @resp_use: a #SoupMemoryUse describing how to handle @resp_body
444 - * @resp_body: a data buffer containing the body of the message response.
445 + * @resp_body: (array length=resp_length) (element-type uint8): a data buffer
446 + * containing the body of the message response.
447 * @resp_length: the byte length of @resp_body.
449 * Convenience function to set the response body of a #SoupMessage. If
450 diff --git a/libsoup/soup-server.c b/libsoup/soup-server.c
451 index 0506550..788bb59 100644
452 --- a/libsoup/soup-server.c
453 +++ b/libsoup/soup-server.c
454 @@ -652,7 +652,7 @@ soup_server_is_https (SoupServer *server)
455 * read-only; writing to it or modifiying it may cause @server to
458 - * Return value: the listening socket.
459 + * Return value: (transfer none): the listening socket.
462 soup_server_get_listener (SoupServer *server)
463 @@ -996,7 +996,7 @@ soup_server_quit (SoupServer *server)
464 * context, so you will need to ref it yourself if you want it to
465 * outlive its server.
467 - * Return value: @server's #GMainContext, which may be %NULL
468 + * Return value: (transfer none): @server's #GMainContext, which may be %NULL
471 soup_server_get_async_context (SoupServer *server)
472 @@ -1053,7 +1053,8 @@ soup_client_context_get_type (void)
473 * not get fooled when the allocator reuses the memory address of a
474 * previously-destroyed socket to represent a new socket.
476 - * Return value: the #SoupSocket that @client is associated with.
477 + * Return value: (transfer none): the #SoupSocket that @client is
481 soup_client_context_get_socket (SoupClientContext *client)
482 @@ -1070,8 +1071,8 @@ soup_client_context_get_socket (SoupClientContext *client)
483 * Retrieves the #SoupAddress associated with the remote end
486 - * Return value: the #SoupAddress associated with the remote end of a
488 + * Return value: (transfer none): the #SoupAddress associated with the
489 + * remote end of a connection.
492 soup_client_context_get_address (SoupClientContext *client)
493 @@ -1110,8 +1111,8 @@ soup_client_context_get_host (SoupClientContext *client)
494 * authenticated, and if so returns the #SoupAuthDomain that
497 - * Return value: a #SoupAuthDomain, or %NULL if the request was not
499 + * Return value: (transfer none) (allow-none): a #SoupAuthDomain, or
500 + * %NULL if the request was not authenticated.
503 soup_client_context_get_auth_domain (SoupClientContext *client)
504 @@ -1145,7 +1146,8 @@ soup_client_context_get_auth_user (SoupClientContext *client)
505 * @server: the #SoupServer
506 * @msg: the message being processed
507 * @path: the path component of @msg's Request-URI
508 - * @query: the parsed query component of @msg's Request-URI
509 + * @query: (element-type utf8 utf8) (allow-none): the parsed query
510 + * component of @msg's Request-URI
511 * @client: additional contextual information about the client
512 * @user_data: the data passed to @soup_server_add_handler
514 @@ -1200,7 +1202,7 @@ soup_client_context_get_auth_user (SoupClientContext *client)
516 * soup_server_add_handler:
517 * @server: a #SoupServer
518 - * @path: the toplevel path for the handler
519 + * @path: (allow-none): the toplevel path for the handler
520 * @callback: callback to invoke for requests under @path
521 * @user_data: data for @callback
522 * @destroy: destroy notifier to free @user_data
523 diff --git a/libsoup/soup-session.c b/libsoup/soup-session.c
524 index 46dd8ee..4357a84 100644
525 --- a/libsoup/soup-session.c
526 +++ b/libsoup/soup-session.c
527 @@ -1575,10 +1575,10 @@ queue_message (SoupSession *session, SoupMessage *msg,
529 * soup_session_queue_message:
530 * @session: a #SoupSession
531 - * @msg: the message to queue
532 - * @callback: a #SoupSessionCallback which will be called after the
533 - * message completes or when an unrecoverable error occurs.
534 - * @user_data: a pointer passed to @callback.
535 + * @msg: (transfer full): the message to queue
536 + * @callback: (allow-none) (scope async): a #SoupSessionCallback which will
537 + * be called after the message completes or when an unrecoverable error occurs.
538 + * @user_data: (allow-none): a pointer passed to @callback.
540 * Queues the message @msg for sending. All messages are processed
541 * while the glib main loop runs. If @msg has been processed before,
542 diff --git a/libsoup/soup-socket.c b/libsoup/soup-socket.c
543 index 4f570a7..8f961a1 100644
544 --- a/libsoup/soup-socket.c
545 +++ b/libsoup/soup-socket.c
546 @@ -750,7 +750,7 @@ socket_connect_internal (SoupSocket *sock)
547 * soup_socket_connect_async:
548 * @sock: a client #SoupSocket (which must not already be connected)
549 * @cancellable: a #GCancellable, or %NULL
550 - * @callback: callback to call after connecting
551 + * @callback: (scope async): callback to call after connecting
552 * @user_data: data to pass to @callback
554 * Begins asynchronously connecting to @sock's remote address. The
555 @@ -1148,7 +1148,7 @@ soup_socket_is_connected (SoupSocket *sock)
557 * Returns the #SoupAddress corresponding to the local end of @sock.
559 - * Return value: the #SoupAddress
560 + * Return value: (transfer none): the #SoupAddress
563 soup_socket_get_local_address (SoupSocket *sock)
564 @@ -1178,7 +1178,7 @@ soup_socket_get_local_address (SoupSocket *sock)
566 * Returns the #SoupAddress corresponding to the remote end of @sock.
568 - * Return value: the #SoupAddress
569 + * Return value: (transfer none): the #SoupAddress
572 soup_socket_get_remote_address (SoupSocket *sock)
573 diff --git a/libsoup/soup-xmlrpc.c b/libsoup/soup-xmlrpc.c
574 index 63277b8..a3bd34d 100644
575 --- a/libsoup/soup-xmlrpc.c
576 +++ b/libsoup/soup-xmlrpc.c
577 @@ -545,8 +545,8 @@ parse_value (xmlNode *xmlvalue, GValue *value)
578 * soup_xmlrpc_parse_method_call:
579 * @method_call: the XML-RPC methodCall string
580 * @length: the length of @method_call, or -1 if it is NUL-terminated
581 - * @method_name: on return, the methodName from @method_call
582 - * @params: on return, the parameters from @method_call
583 + * @method_name: (out): on return, the methodName from @method_call
584 + * @params: (out): on return, the parameters from @method_call
586 * Parses @method_call to get the name and parameters, and returns the
587 * parameter values in a #GValueArray; see also
588 @@ -612,7 +612,7 @@ fail:
589 * soup_xmlrpc_extract_method_call:
590 * @method_call: the XML-RPC methodCall string
591 * @length: the length of @method_call, or -1 if it is NUL-terminated
592 - * @method_name: on return, the methodName from @method_call
593 + * @method_name: (out): on return, the methodName from @method_call
594 * @...: return types and locations for parameters
596 * Parses @method_call to get the name and parameters, and puts
597 @@ -652,7 +652,7 @@ soup_xmlrpc_extract_method_call (const char *method_call, int length,
598 * soup_xmlrpc_parse_method_response:
599 * @method_response: the XML-RPC methodResponse string
600 * @length: the length of @method_response, or -1 if it is NUL-terminated
601 - * @value: on return, the return value from @method_call
602 + * @value: (out): on return, the return value from @method_call
603 * @error: error return value
605 * Parses @method_response and returns the return value in @value. If
606 diff --git a/m4/introspection.m4 b/m4/introspection.m4
608 index 0000000..589721c
610 +++ b/m4/introspection.m4
612 +dnl -*- mode: autoconf -*-
613 +dnl Copyright 2009 Johan Dahlin
615 +dnl This file is free software; the author(s) gives unlimited
616 +dnl permission to copy and/or distribute it, with or without
617 +dnl modifications, as long as this notice is preserved.
622 +m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
624 + AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
625 + AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
626 + AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
628 + dnl enable/disable introspection
629 + m4_if([$2], [require],
631 + enable_introspection=yes
633 + AC_ARG_ENABLE(introspection,
634 + AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
635 + [Enable introspection for this build]),,
636 + [enable_introspection=auto])
639 + AC_MSG_CHECKING([for gobject-introspection])
641 + dnl presence/version checking
642 + AS_CASE([$enable_introspection],
644 + found_introspection="no (disabled, use --enable-introspection to enable)"
647 + PKG_CHECK_EXISTS([gobject-introspection-1.0],,
648 + AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
649 + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
650 + found_introspection=yes,
651 + AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
654 + PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
657 + AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
660 + AC_MSG_RESULT([$found_introspection])
662 + INTROSPECTION_SCANNER=
663 + INTROSPECTION_COMPILER=
664 + INTROSPECTION_GENERATE=
665 + INTROSPECTION_GIRDIR=
666 + INTROSPECTION_TYPELIBDIR=
667 + if test "x$found_introspection" = "xyes"; then
668 + INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
669 + INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
670 + INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
671 + INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
672 + INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
673 + INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
674 + INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
675 + INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
677 + AC_SUBST(INTROSPECTION_SCANNER)
678 + AC_SUBST(INTROSPECTION_COMPILER)
679 + AC_SUBST(INTROSPECTION_GENERATE)
680 + AC_SUBST(INTROSPECTION_GIRDIR)
681 + AC_SUBST(INTROSPECTION_TYPELIBDIR)
682 + AC_SUBST(INTROSPECTION_CFLAGS)
683 + AC_SUBST(INTROSPECTION_LIBS)
684 + AC_SUBST(INTROSPECTION_MAKEFILE)
686 + AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
691 +dnl GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
693 +AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
695 + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
699 +dnl GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
702 +AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
704 + _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])