mirror of
https://gitlab.gnome.org/GNOME/glib.git
synced 2025-11-06 19:13:19 +01:00
fixup! Add GBase64Encoder and Decoder
Review feedback.
This commit is contained in:
@@ -21,8 +21,8 @@
|
||||
/**
|
||||
* GBase64Decoder:
|
||||
*
|
||||
* `GBase64Decoder` is an implementation of `GConverter` that
|
||||
* converts data from base64 encoding.
|
||||
* `GBase64Decoder` is an implementation of [iface@Gio.Converter]
|
||||
* that converts data from base64 encoding.
|
||||
*
|
||||
* Since: 2.82
|
||||
*/
|
||||
@@ -104,7 +104,7 @@ g_base64_decoder_class_init (GBase64DecoderClass *klass)
|
||||
*
|
||||
* Creates a new `GBase64Decoder`.
|
||||
*
|
||||
* Returns: a new `GBase64Decoder`
|
||||
* Returns: (transfer full): a new `GBase64Decoder`
|
||||
*
|
||||
* Since: 2.82
|
||||
*/
|
||||
|
||||
@@ -20,14 +20,15 @@
|
||||
#include "glibintl.h"
|
||||
|
||||
|
||||
/* See g_base64_encode_step docs in ../glib/gbase64.c */
|
||||
#define BASE64_ENCODING_OUTPUT_SIZE(len, break_lines) \
|
||||
(((len) / 3 + 1) * 4 + 4 + ((break_lines) ? ((((len) / 3 + 1) * 4 + 4) / 72 + 1) : 0))
|
||||
|
||||
/**
|
||||
* GBase64Encoder:
|
||||
*
|
||||
* GBase64Encoder is an implementation of `GConverter` that
|
||||
* converts data to base64 encoding.
|
||||
* `GBase64Encoder` is an implementation of [iface@Gio.Converter]
|
||||
* that converts data to base64 encoding.
|
||||
*
|
||||
* Since: 2.82
|
||||
*/
|
||||
@@ -40,11 +41,10 @@ struct _GBase64Encoder
|
||||
int state[2];
|
||||
};
|
||||
|
||||
enum
|
||||
typedef enum
|
||||
{
|
||||
PROP_0,
|
||||
PROP_BREAK_LINES
|
||||
};
|
||||
PROP_BREAK_LINES = 1,
|
||||
} GBase64EncoderProperty;
|
||||
|
||||
static void
|
||||
g_base64_encoder_reset (GConverter *converter)
|
||||
@@ -134,7 +134,7 @@ g_base64_encoder_set_property (GObject *object,
|
||||
{
|
||||
GBase64Encoder *encoder = G_BASE64_ENCODER (object);
|
||||
|
||||
switch (prop_id)
|
||||
switch ((GBase64EncoderProperty) prop_id)
|
||||
{
|
||||
case PROP_BREAK_LINES:
|
||||
encoder->break_lines = g_value_get_boolean (value);
|
||||
@@ -154,7 +154,7 @@ g_base64_encoder_get_property (GObject *object,
|
||||
{
|
||||
GBase64Encoder *encoder = G_BASE64_ENCODER (object);
|
||||
|
||||
switch (prop_id)
|
||||
switch ((GBase64EncoderProperty) prop_id)
|
||||
{
|
||||
case PROP_BREAK_LINES:
|
||||
g_value_set_boolean (value, encoder->break_lines);
|
||||
@@ -182,6 +182,8 @@ g_base64_encoder_class_init (GBase64EncoderClass *klass)
|
||||
* This is typically used when putting base64-encoded data in emails.
|
||||
* It breaks the lines at 72 columns instead of putting all of the text on
|
||||
* the same line. This avoids problems with long lines in the email system.
|
||||
*
|
||||
* Since: 2.82
|
||||
*/
|
||||
g_object_class_install_property (gobject_class,
|
||||
PROP_BREAK_LINES,
|
||||
@@ -203,7 +205,7 @@ g_base64_encoder_class_init (GBase64EncoderClass *klass)
|
||||
* instead of putting all of the text on the same line. This avoids
|
||||
* problems with long lines in the email system.
|
||||
*
|
||||
* Returns: a new `GBase64Encoder`
|
||||
* Returns: (transfer full): a new `GBase64Encoder`
|
||||
*
|
||||
* Since: 2.82
|
||||
*/
|
||||
|
||||
@@ -640,6 +640,8 @@ gio_headers = files(
|
||||
'gappinfo.h',
|
||||
'gasyncinitable.h',
|
||||
'gasyncresult.h',
|
||||
'gbase64decoder.h',
|
||||
'gbase64encoder.h',
|
||||
'gbufferedinputstream.h',
|
||||
'gbufferedoutputstream.h',
|
||||
'gbytesicon.h',
|
||||
|
||||
@@ -1217,8 +1217,8 @@ test_converter_base64 (void)
|
||||
|
||||
flags = G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET;
|
||||
size = g_output_stream_splice (converter, input, flags, NULL, &error);
|
||||
g_assert_true (size != -1);
|
||||
g_assert_no_error (error);
|
||||
g_assert_cmpint (size, !=, -1);
|
||||
|
||||
result = g_memory_output_stream_steal_data (G_MEMORY_OUTPUT_STREAM (output));
|
||||
g_assert_cmpstr (encoded, ==, result);
|
||||
@@ -1237,8 +1237,8 @@ test_converter_base64 (void)
|
||||
|
||||
flags = G_OUTPUT_STREAM_SPLICE_CLOSE_SOURCE | G_OUTPUT_STREAM_SPLICE_CLOSE_TARGET;
|
||||
size = g_output_stream_splice (output, converter2, flags, NULL, &error);
|
||||
g_assert_true (size != -1);
|
||||
g_assert_no_error (error);
|
||||
g_assert_cmpint (size, !=, -1);
|
||||
|
||||
result = g_memory_output_stream_steal_data (G_MEMORY_OUTPUT_STREAM (output));
|
||||
|
||||
|
||||
Reference in New Issue
Block a user