[gcab] Do not return translated errors from libraries
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gcab] Do not return translated errors from libraries
- Date: Thu, 14 Dec 2017 22:08:40 +0000 (UTC)
commit 85ef2a366b22d93f6108a23087496ec8287de63a
Author: Richard Hughes <richard hughsie com>
Date: Thu Dec 14 20:08:03 2017 +0000
Do not return translated errors from libraries
Instead, use a unique error code to handle the error.
libgcab/cabinet.c | 11 +++++------
libgcab/gcab-cabinet.c | 6 +++---
libgcab/gcab-cabinet.h | 8 ++++++--
tests/gcab-self-test.c | 4 ++--
4 files changed, 16 insertions(+), 13 deletions(-)
---
diff --git a/libgcab/cabinet.c b/libgcab/cabinet.c
index eca63b0..d008b32 100644
--- a/libgcab/cabinet.c
+++ b/libgcab/cabinet.c
@@ -22,7 +22,6 @@
#include "config.h"
#include "gcab-priv.h"
-#include <glib/gi18n-lib.h>
static voidpf
zalloc (voidpf opaque, uInt items, uInt size)
@@ -39,7 +38,7 @@ static gboolean
cdata_set (cdata_t *cd, int type, guint8 *data, size_t size)
{
if (type > GCAB_COMPRESSION_MSZIP) {
- g_critical (_("unsupported compression method %d"), type);
+ g_critical ("unsupported compression method %d", type);
return FALSE;
}
@@ -542,8 +541,8 @@ cdata_read (cdata_t *cd, guint8 res_data, gint comptype,
if (compression > GCAB_COMPRESSION_MSZIP &&
compression != GCAB_COMPRESSION_LZX) {
- g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED,
- _("unsupported compression method %d"), compression);
+ g_set_error (error, GCAB_ERROR, GCAB_ERROR_NOT_SUPPORTED,
+ "unsupported compression method %d", compression);
return FALSE;
}
@@ -560,8 +559,8 @@ cdata_read (cdata_t *cd, guint8 res_data, gint comptype,
nbytes_le = GUINT16_TO_LE (cd->nubytes);
memcpy (&sizecsum[2], &nbytes_le, 2);
if (_enforce_checksum () && cd->checksum != compute_checksum (sizecsum, sizeof(sizecsum), datacsum)) {
- g_set_error_literal (error, GCAB_ERROR, GCAB_ERROR_FAILED,
- _("incorrect checksum detected"));
+ g_set_error_literal (error, GCAB_ERROR, GCAB_ERROR_INVALID_DATA,
+ "incorrect checksum detected");
return FALSE;
}
diff --git a/libgcab/gcab-cabinet.c b/libgcab/gcab-cabinet.c
index d877399..9960184 100644
--- a/libgcab/gcab-cabinet.c
+++ b/libgcab/gcab-cabinet.c
@@ -245,7 +245,7 @@ gcab_cabinet_write (GCabCabinet *self,
/* unsupported */
if (self->folders->len > 1) {
- g_set_error_literal (error, GCAB_ERROR, GCAB_ERROR_FAILED,
+ g_set_error_literal (error, GCAB_ERROR, GCAB_ERROR_NOT_SUPPORTED,
"Cabinet has more than one added folder");
return FALSE;
}
@@ -589,7 +589,7 @@ gcab_cabinet_get_signature (GCabCabinet *self,
return self->signature;
if (!G_IS_SEEKABLE (self->stream)) {
- g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED,
+ g_set_error (error, GCAB_ERROR, GCAB_ERROR_NOT_SUPPORTED,
"Cabinet stream is not seekable");
return NULL;
}
@@ -616,7 +616,7 @@ gcab_cabinet_get_signature (GCabCabinet *self,
g_byte_array_set_size (self->signature, size);
if (!g_seekable_seek (G_SEEKABLE (self->stream), offset, G_SEEK_SET, cancellable, error)) {
- g_set_error (error, GCAB_ERROR, GCAB_ERROR_FAILED,
+ g_set_error (error, GCAB_ERROR, GCAB_ERROR_INVALID_DATA,
"Cannot seek to reserved area");
return NULL;
}
diff --git a/libgcab/gcab-cabinet.h b/libgcab/gcab-cabinet.h
index a880aa0..57893ee 100644
--- a/libgcab/gcab-cabinet.h
+++ b/libgcab/gcab-cabinet.h
@@ -48,8 +48,10 @@ GQuark gcab_error_quark (void);
/**
* GCabError:
- * @GCAB_ERROR_FORMAT: The given file is not of Cabinet format.
- * @GCAB_ERROR_FAILED: General function failure.
+ * @GCAB_ERROR_FORMAT: The given file is not of Cabinet format.
+ * @GCAB_ERROR_FAILED: General function failure.
+ * @GCAB_ERROR_NOT_SUPPORTED: Action or format is not supported
+ * @GCAB_ERROR_INVALID_DATA: Data stream was invalid
*
* The various errors triggered by the GCab functions.
**/
@@ -57,6 +59,8 @@ typedef enum GCabError
{
GCAB_ERROR_FORMAT,
GCAB_ERROR_FAILED,
+ GCAB_ERROR_NOT_SUPPORTED, /* Since: 1.0 */
+ GCAB_ERROR_INVALID_DATA, /* Since: 1.0 */
} GCabError;
GCabCabinet * gcab_cabinet_new (void);
diff --git a/tests/gcab-self-test.c b/tests/gcab-self-test.c
index dce0aae..b44a800 100644
--- a/tests/gcab-self-test.c
+++ b/tests/gcab-self-test.c
@@ -229,7 +229,7 @@ gcab_test_cabinet_error_not_seekable_func (void)
/* verify it has no signature */
cabinet = gcab_cabinet_new ();
signature = gcab_cabinet_get_signature (cabinet, NULL, &error);
- g_assert_error (error, GCAB_ERROR, GCAB_ERROR_FAILED);
+ g_assert_error (error, GCAB_ERROR, GCAB_ERROR_NOT_SUPPORTED);
g_assert (signature == NULL);
}
@@ -348,7 +348,7 @@ gcab_test_cabinet_error_cves_func (void)
g_assert (ret);
file_tmpdir = g_file_new_for_path ("/tmp");
ret = gcab_cabinet_extract_simple (cabinet, file_tmpdir, NULL, NULL, NULL, &error);
- g_assert_error (error, GCAB_ERROR, GCAB_ERROR_FAILED);
+ g_assert (error != NULL);
g_assert (!ret);
}
g_unsetenv ("GCAB_SKIP_CHECKSUM");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]