Add shell_write_string_to_stream()

Add a helper function to write a string as UTF-8 to a GOutputStream.
The signature of GOutputStream:

 gboolean g_output_stream_write_all (GOutputStream *stream,
                                     const void *buffer,
                                     gsize count,
                                     gsize *bytes_written,
                                     GCancellable *cancellable,
                                     GError **error);

Can't currently be handled by GJS.

https://bugzilla.gnome.org/show_bug.cgi?id=618189
This commit is contained in:
Owen W. Taylor 2010-05-12 17:19:20 -04:00
parent 023a274e41
commit e4e92a2b38
2 changed files with 24 additions and 0 deletions

View File

@ -1303,6 +1303,26 @@ shell_popup_menu (GtkMenu *menu, int button, guint32 time,
button, time); button, time);
} }
/**
* shell_write_string_to_stream:
* @stream: a #GOutputStream
* @str: a UTF-8 string to write to @stream
* @error: location to store GError
*
* Write a string to a GOutputStream as UTF-8. This is a workaround
* for not having binary buffers in GJS.
*
* Return value: %TRUE if write succeeded
*/
gboolean
shell_write_string_to_stream (GOutputStream *stream,
const char *str,
GError **error)
{
return g_output_stream_write_all (stream, str, strlen (str),
NULL, NULL, error);
}
/** /**
* shell_global_get_current_time: * shell_global_get_current_time:
* @global: A #ShellGlobal * @global: A #ShellGlobal

View File

@ -92,6 +92,10 @@ ClutterModifierType shell_get_event_state (ClutterEvent *event);
void shell_popup_menu (GtkMenu *menu, int button, guint32 time, void shell_popup_menu (GtkMenu *menu, int button, guint32 time,
int menu_x, int menu_y); int menu_x, int menu_y);
gboolean shell_write_string_to_stream (GOutputStream *stream,
const char *str,
GError **error);
guint32 shell_global_get_current_time (ShellGlobal *global); guint32 shell_global_get_current_time (ShellGlobal *global);
GAppLaunchContext *shell_global_create_app_launch_context (ShellGlobal *global); GAppLaunchContext *shell_global_create_app_launch_context (ShellGlobal *global);