2007-12-06 [colin] 3.1.0cvs61
authorColin Leroy <colin@colino.net>
Thu, 6 Dec 2007 07:48:28 +0000 (07:48 +0000)
committerColin Leroy <colin@colino.net>
Thu, 6 Dec 2007 07:48:28 +0000 (07:48 +0000)
* src/news.c
* src/common/utils.c
* src/common/utils.h
Fix posting, and fix UTF-8 being sent when encoding
is 8bit

ChangeLog
PATCHSETS
configure.ac
src/common/utils.c
src/common/utils.h
src/news.c

index d2abf82e7bc3b181285202d1c3c09826bfb5820c..9549dc5413abffdbabf3c4d790bcc7984b8a7d7a 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2007-12-06 [colin]     3.1.0cvs61
+
+       * src/news.c
+       * src/common/utils.c
+       * src/common/utils.h
+               Fix posting, and fix UTF-8 being sent when encoding
+               is 8bit
+
 2007-12-05 [colin]     3.1.0cvs60
 
        * src/news.c
index 6002406fb3991cb315dd5a5282085f6e00b6707d..c33027705093635ac56c3be93762f597552afbd9 100644 (file)
--- a/PATCHSETS
+++ b/PATCHSETS
 ( cvs diff -u -r 1.1.2.26 -r 1.1.2.27 src/prefs_other.c;  cvs diff -u -r 1.1.4.11 -r 1.1.4.12 src/gtk/gtksctree.h;  ) > 3.1.0cvs58.patchset
 ( cvs diff -u -r 1.94.2.166 -r 1.94.2.167 src/messageview.c;  cvs diff -u -r 1.1.2.6 -r 1.1.2.7 src/uri_opener.c;  ) > 3.1.0cvs59.patchset
 ( cvs diff -u -r 1.101.2.47 -r 1.101.2.48 src/news.c;  ) > 3.1.0cvs60.patchset
+( cvs diff -u -r 1.101.2.48 -r 1.101.2.49 src/news.c;  cvs diff -u -r 1.36.2.127 -r 1.36.2.128 src/common/utils.c;  cvs diff -u -r 1.20.2.56 -r 1.20.2.57 src/common/utils.h;  ) > 3.1.0cvs61.patchset
index 46665ce857b4df021db3cd358d615688ae0a3aec..736cf806046a76659fe4ae0089545984e73a50a8 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=1
 MICRO_VERSION=0
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=60
+EXTRA_VERSION=61
 EXTRA_RELEASE=
 EXTRA_GTK2_VERSION=
 
index 3d822c4327f63ed235cb3de60a41e2492070b218..2915498e108e359860e70060a399b3d9426ecd92 100644 (file)
@@ -3023,26 +3023,7 @@ gint str_write_to_file(const gchar *str, const gchar *file)
        return 0;
 }
 
-gchar *file_read_to_str(const gchar *file)
-{
-       FILE *fp;
-       gchar *str;
-
-       g_return_val_if_fail(file != NULL, NULL);
-
-       if ((fp = g_fopen(file, "rb")) == NULL) {
-               FILE_OP_ERROR(file, "fopen");
-               return NULL;
-       }
-
-       str = file_read_stream_to_str(fp);
-
-       fclose(fp);
-
-       return str;
-}
-
-gchar *file_read_stream_to_str(FILE *fp)
+static gchar *file_read_stream_to_str_full(FILE *fp, gboolean recode)
 {
        GByteArray *array;
        guchar buf[BUFSIZ];
@@ -3070,7 +3051,7 @@ gchar *file_read_stream_to_str(FILE *fp)
        str = (gchar *)array->data;
        g_byte_array_free(array, FALSE);
 
-       if (!g_utf8_validate(str, -1, NULL)) {
+       if (recode && !g_utf8_validate(str, -1, NULL)) {
                const gchar *src_codeset, *dest_codeset;
                gchar *tmp = NULL;
                src_codeset = conv_get_locale_charset_str();
@@ -3083,6 +3064,42 @@ gchar *file_read_stream_to_str(FILE *fp)
        return str;
 }
 
+static gchar *file_read_to_str_full(const gchar *file, gboolean recode)
+{
+       FILE *fp;
+       gchar *str;
+
+       g_return_val_if_fail(file != NULL, NULL);
+
+       if ((fp = g_fopen(file, "rb")) == NULL) {
+               FILE_OP_ERROR(file, "fopen");
+               return NULL;
+       }
+
+       str = file_read_stream_to_str_full(fp, recode);
+
+       fclose(fp);
+
+       return str;
+}
+
+gchar *file_read_to_str(const gchar *file)
+{
+       file_read_to_str_full(file, TRUE);
+}
+gchar *file_read_stream_to_str(FILE *fp)
+{
+       file_read_stream_to_str_full(fp, TRUE);
+}
+
+gchar *file_read_to_str_no_recode(const gchar *file)
+{
+       file_read_to_str_full(file, FALSE);
+}
+gchar *file_read_stream_to_str_no_recode(FILE *fp)
+{
+       file_read_stream_to_str_full(fp, FALSE);
+}
 
 char *fgets_crlf(char *buf, int size, FILE *stream)
 {
index 7e0094d011eef51e8dd749e480cbf64c9cf4f06a..8d4b2c97ff0d4c37cddc370e8fa585600e622949 100644 (file)
@@ -434,6 +434,8 @@ gint str_write_to_file              (const gchar    *str,
                                 const gchar    *file);
 gchar *file_read_to_str                (const gchar    *file);
 gchar *file_read_stream_to_str (FILE           *fp);
+gchar *file_read_to_str_no_recode(const gchar *file);
+gchar *file_read_stream_to_str_no_recode(FILE *fp);
 
 char *fgets_crlf(char *buf, int size, FILE *stream);
 
index 505111d69bd74510c2e25f4375fab68426f0c2ba..4d906e8e822788076063e60170c521cf11d6c1d2 100644 (file)
@@ -668,7 +668,7 @@ void news_remove_group_list_cache(Folder *folder)
 gint news_post(Folder *folder, const gchar *file)
 {
        gint ok;
-       char *contents = file_read_to_str(file);
+       char *contents = file_read_to_str_no_recode(file);
        NewsSession *session;
 
        g_return_val_if_fail(folder != NULL, -1);
@@ -695,7 +695,7 @@ gint news_post(Folder *folder, const gchar *file)
                REMOTE_FOLDER(folder)->session = NULL;
        }
 
-       return (ok  = NEWSNNTP_NO_ERROR ? 0 : -1);
+       return (ok == NEWSNNTP_NO_ERROR ? 0 : -1);
 }
 
 static gint news_get_article(Folder *folder, gint num, gchar *filename)