diff options
author | Sven Neumann <sven@svenfoo.org> | 2020-09-18 08:09:52 +0200 |
---|---|---|
committer | Sven Neumann <sven@svenfoo.org> | 2020-09-18 09:13:01 +0200 |
commit | 4936d8fb83d83f97cf040b912e3d225e659ba202 (patch) | |
tree | 3f6a8cb501a2983992ea28d6f9e353be6af96119 /librsvg | |
parent | 47a89e0e11c615b01236084fdb61d4d8b65ccd59 (diff) | |
download | librsvg-4936d8fb83d83f97cf040b912e3d225e659ba202.tar.gz |
Port obsolete C stub functions to Rust
Closes #625
Diffstat (limited to 'librsvg')
-rw-r--r-- | librsvg/c_api.rs | 46 | ||||
-rw-r--r-- | librsvg/rsvg-base.c | 8 | ||||
-rw-r--r-- | librsvg/rsvg-handle.c | 30 |
3 files changed, 67 insertions, 17 deletions
diff --git a/librsvg/c_api.rs b/librsvg/c_api.rs index 5985f3c6..2a11a710 100644 --- a/librsvg/c_api.rs +++ b/librsvg/c_api.rs @@ -1927,6 +1927,52 @@ pub unsafe extern "C" fn rsvg_rust_handle_render_element( } } +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_handle_get_desc(handle: *const RsvgHandle) -> *mut libc::c_char { + rsvg_return_val_if_fail! { + rsvg_handle_get_desc => ptr::null_mut(); + + is_rsvg_handle(handle), + } + + ptr::null_mut() +} + +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_handle_get_metadata( + handle: *const RsvgHandle, +) -> *mut libc::c_char { + rsvg_return_val_if_fail! { + rsvg_handle_get_metadata => ptr::null_mut(); + + is_rsvg_handle(handle), + } + + ptr::null_mut() +} + +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_handle_get_title( + handle: *const RsvgHandle, +) -> *mut libc::c_char { + rsvg_return_val_if_fail! { + rsvg_handle_get_title => ptr::null_mut(); + + is_rsvg_handle(handle), + } + + ptr::null_mut() +} + +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_init() {} + +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_term() {} + +#[no_mangle] +pub unsafe extern "C" fn rsvg_rust_cleanup() {} + /// Detects whether a `*const libc::c_char` is a path or a URI /// /// `rsvg_handle_new_from_file()` takes a `filename` argument, and advertises diff --git a/librsvg/rsvg-base.c b/librsvg/rsvg-base.c index 1f7d9208..b2280695 100644 --- a/librsvg/rsvg-base.c +++ b/librsvg/rsvg-base.c @@ -34,6 +34,11 @@ extern void rsvg_rust_set_default_dpi_x_y(double dpi_x, double dpi_y); /* Implemented in rsvg_internals/src/error.rs */ extern GQuark rsvg_rust_error_quark (void); +/* Implemented in librsvg/c_api.rs */ +extern void rsvg_rust_init (void); +extern void rsvg_rust_term (void); +extern void rsvg_rust_cleanup (void); + /** * rsvg_error_quark: * @@ -99,6 +104,7 @@ rsvg_set_default_dpi_x_y (double dpi_x, double dpi_y) void rsvg_init (void) { + rsvg_rust_init (); } /** @@ -112,6 +118,7 @@ rsvg_init (void) void rsvg_term (void) { + rsvg_rust_term (); } /** @@ -124,6 +131,7 @@ rsvg_term (void) void rsvg_cleanup (void) { + rsvg_rust_cleanup (); } /* This is defined like this so that we can export the Rust function... just for diff --git a/librsvg/rsvg-handle.c b/librsvg/rsvg-handle.c index bc06d4a2..95364db3 100644 --- a/librsvg/rsvg-handle.c +++ b/librsvg/rsvg-handle.c @@ -323,12 +323,12 @@ #include "rsvg.h" /* Implemented in rsvg_internals/src/handle.rs */ -extern void rsvg_rust_handle_set_dpi (RsvgHandle *raw_handle, double dpi); -extern void rsvg_rust_handle_set_dpi_x_y (RsvgHandle *raw_handle, double dpi_x, double dpi_y); -extern void rsvg_rust_handle_set_base_url (RsvgHandle *raw_handle, const char *uri); -extern void rsvg_rust_handle_set_base_gfile (RsvgHandle *raw_handle, GFile *file); -extern const char *rsvg_rust_handle_get_base_url (RsvgHandle *raw_handle); -extern guint rsvg_rust_handle_set_testing (RsvgHandle *raw_handle, gboolean testing); +extern void rsvg_rust_handle_set_dpi (RsvgHandle *handle, double dpi); +extern void rsvg_rust_handle_set_dpi_x_y (RsvgHandle *handle, double dpi_x, double dpi_y); +extern void rsvg_rust_handle_set_base_url (RsvgHandle *handle, const char *uri); +extern void rsvg_rust_handle_set_base_gfile (RsvgHandle *handle, GFile *file); +extern const char *rsvg_rust_handle_get_base_url (RsvgHandle *handle); +extern guint rsvg_rust_handle_set_testing (RsvgHandle *handle, gboolean testing); extern gboolean rsvg_rust_handle_read_stream_sync (RsvgHandle *handle, GInputStream *stream, GCancellable *cancellable, @@ -350,7 +350,7 @@ extern gboolean rsvg_rust_handle_get_dimensions_sub (RsvgHandle *handle, extern gboolean rsvg_rust_handle_get_position_sub (RsvgHandle *handle, RsvgPositionData *dimension_data, const char *id); -extern void rsvg_rust_handle_set_size_callback (RsvgHandle *raw_handle, +extern void rsvg_rust_handle_set_size_callback (RsvgHandle *handle, RsvgSizeFunc size_func, gpointer user_data, GDestroyNotify destroy_notify); @@ -408,7 +408,9 @@ extern gboolean rsvg_rust_handle_render_element (RsvgHandle *handle, const char *id, const RsvgRectangle *element_viewport, GError **error); - +extern const char *rsvg_rust_handle_get_desc (RsvgHandle *handle); +extern const char *rsvg_rust_handle_get_metadata (RsvgHandle *handle); +extern const char *rsvg_rust_handle_get_title (RsvgHandle *handle); /* Implemented in librsvg/c_api.rs */ @@ -777,9 +779,7 @@ rsvg_handle_set_stylesheet (RsvgHandle *handle, const char * rsvg_handle_get_metadata (RsvgHandle * handle) { - g_return_val_if_fail (handle, NULL); - - return NULL; + return rsvg_rust_handle_get_metadata (handle); } /** @@ -796,9 +796,7 @@ rsvg_handle_get_metadata (RsvgHandle * handle) const char * rsvg_handle_get_title (RsvgHandle *handle) { - g_return_val_if_fail (handle, NULL); - - return NULL; + return rsvg_rust_handle_get_title (handle); } /** @@ -815,9 +813,7 @@ rsvg_handle_get_title (RsvgHandle *handle) const char * rsvg_handle_get_desc (RsvgHandle *handle) { - g_return_val_if_fail (handle, NULL); - - return NULL; + return rsvg_rust_handle_get_desc (handle); } /** |