sync with 0.8.9cvs6
authorPaul Mangan <paul@claws-mail.org>
Tue, 4 Feb 2003 08:55:21 +0000 (08:55 +0000)
committerPaul Mangan <paul@claws-mail.org>
Tue, 4 Feb 2003 08:55:21 +0000 (08:55 +0000)
ChangeLog
ChangeLog.claws
ChangeLog.jp
configure.ac
src/codeconv.c
src/codeconv.h
src/textview.c

index b664c79..a39a6ba 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,21 @@
+2003-02-03
+
+       * src/textview.c: textview_write_line(): don't convert if conv is
+         NULL.
+
+2003-02-03
+
+       * src/codeconv.[ch]:
+         renamed conv_guess_encoding() to conv_guess_ja_encoding().
+         conv_localetodisp(): new. It removes unreadable characters from
+         (assumed) current locale string.
+         conv_codeset_strdup(): convert into ISO-8859-1 if dest_code is
+         NULL and current locale encoding is US-ASCII.
+         conv_get_code_conv_func(): return conv_ustodisp if US-ASCII is
+         specified for destination charset.
+       * src/textview.c: textview_write_line(): use conv_localetodisp()
+         instead of strncpy2() if conversion failed.
+
 2003-01-31
 
        * src/codeconv.c: conv_iconv_strdup()
index b3f2cbd..7f7a18e 100644 (file)
@@ -1,3 +1,8 @@
+2003-02-04 [paul]      0.8.9claws36
+
+       * sync with 0.8.9cvs6
+               see ChangeLog 2003-02-03
+
 2003-02-04 [paul]      0.8.9claws35
 
        * po/pt_BR.po
index eee8c2b..00f68fc 100644 (file)
@@ -1,3 +1,21 @@
+2003-02-03
+
+       * src/textview.c: textview_write_line(): conv ¤¬ NULL ¤Î¾ì¹ç¤Ï
+         ÊÑ´¹¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¡£
+
+2003-02-03
+
+       * src/codeconv.[ch]:
+         conv_guess_encoding() ¤ò conv_guess_ja_encoding() ¤ËÊѹ¹¡£
+         conv_localetodisp(): ¿·µ¬¡£(²¾Äꤵ¤ì¤¿)¸½ºß¤Î locale Ê¸»úÎ󤫤é
+         É½¼¨ÉԲĤÊʸ»ú¤òºï½ü¤¹¤ë¡£
+         conv_codeset_strdup(): dest_code ¤¬ NULL ¤Ç¤«¤Ä¸½ºß¤Î locale
+         ¥¨¥ó¥³¡¼¥Ç¥£¥ó¥°¤¬ US-ASCII ¤Ê¤é¤Ð ISO-8859-1 ¤ËÊÑ´¹¤¹¤ë¤è¤¦¤Ë¤·¤¿¡£
+         conv_get_code_conv_func(): ÊÑ´¹Àèʸ»ú¥³¡¼¥É¤Ë US-ASCII ¤¬»ØÄꤵ¤ì
+         ¤Æ¤¤¤ì¤Ð conv_ustodisp ¤òÊÖ¤¹¤è¤¦¤Ë¤·¤¿¡£
+       * src/textview.c: textview_write_line(): ÊÑ´¹¤Ë¼ºÇÔ¤·¤¿¾ì¹ç¤Ï
+         strncpy2() ¤ÎÂå¤ï¤ê¤Ë conv_localetodisp() ¤ò»ÈÍÑ¡£
+
 2003-01-31
 
        * src/codeconv.c: conv_iconv_strdup()
index 9caf012..277f6f4 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=8
 MICRO_VERSION=9
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=claws35
+EXTRA_VERSION=claws36
 VERSION=$MAJOR_VERSION.$MINOR_VERSION.$MICRO_VERSION$EXTRA_VERSION
 
 dnl set $target
index f6b3d41..4d4a0a1 100644 (file)
@@ -285,7 +285,7 @@ void conv_sjistoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
 
 void conv_anytoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
 {
-       switch (conv_guess_encoding(inbuf)) {
+       switch (conv_guess_ja_encoding(inbuf)) {
        case C_ISO_2022_JP:
                conv_jistoeuc(outbuf, outlen, inbuf);
                break;
@@ -300,7 +300,7 @@ void conv_anytoeuc(gchar *outbuf, gint outlen, const gchar *inbuf)
 
 void conv_anytojis(gchar *outbuf, gint outlen, const gchar *inbuf)
 {
-       switch (conv_guess_encoding(inbuf)) {
+       switch (conv_guess_ja_encoding(inbuf)) {
        case C_EUC_JP:
                conv_euctojis(outbuf, outlen, inbuf);
                break;
@@ -528,7 +528,7 @@ void conv_mb_alnum(gchar *str)
        }
 }
 
-CharSet conv_guess_encoding(const gchar *str)
+CharSet conv_guess_ja_encoding(const gchar *str)
 {
        const guchar *p = str;
        CharSet guessed = C_US_ASCII;
@@ -611,6 +611,33 @@ void conv_noconv(gchar *outbuf, gint outlen, const gchar *inbuf)
        strncpy2(outbuf, inbuf, outlen);
 }
 
+void conv_localetodisp(gchar *outbuf, gint outlen, const gchar *inbuf)
+{
+       strncpy2(outbuf, inbuf, outlen);
+
+       switch (conv_get_current_charset()) {
+       case C_US_ASCII:
+       case C_ISO_8859_1:
+       case C_ISO_8859_2:
+       case C_ISO_8859_4:
+       case C_ISO_8859_5:
+       case C_ISO_8859_7:
+       case C_ISO_8859_8:
+       case C_ISO_8859_9:
+       case C_ISO_8859_11:
+       case C_ISO_8859_13:
+       case C_ISO_8859_15:
+               conv_unreadable_latin(outbuf);
+               break;
+       case C_EUC_JP:
+               conv_unreadable_eucjp(outbuf);
+               break;
+       default:
+               conv_unreadable_8bit(outbuf);
+               break;
+       }
+}
+
 CodeConverter *conv_code_converter_new(const gchar *charset)
 {
        CodeConverter *conv;
@@ -673,8 +700,11 @@ gchar *conv_codeset_strdup(const gchar *inbuf,
 #if HAVE_ICONV
        if (!src_code)
                src_code = conv_get_outgoing_charset_str();
-       if (!dest_code)
+       if (!dest_code) {
                dest_code = conv_get_current_charset_str();
+               if (!strcasecmp(dest_code, CS_US_ASCII))
+                       dest_code = CS_ISO_8859_1;
+       }
 
        /* don't convert if current codeset is US-ASCII */
        if (!strcasecmp(dest_code, CS_US_ASCII))
@@ -712,6 +742,9 @@ CodeConvFunc conv_get_code_conv_func(const gchar *src_charset_str,
 
        dest_charset = conv_get_charset_from_str(dest_charset_str);
 
+       if (dest_charset == C_US_ASCII)
+               return conv_ustodisp;
+
        switch (src_charset) {
        case C_ISO_2022_JP:
        case C_ISO_2022_JP_2:
index 892b198..d7c0ee4 100644 (file)
@@ -119,7 +119,7 @@ void conv_unreadable_8bit(gchar *str);
 void conv_unreadable_latin(gchar *str);
 void conv_mb_alnum(gchar *str);
 
-CharSet conv_guess_encoding(const gchar *str);
+CharSet conv_guess_ja_encoding(const gchar *str);
 
 void conv_jistodisp  (gchar *outbuf, gint outlen, const gchar *inbuf);
 void conv_sjistodisp (gchar *outbuf, gint outlen, const gchar *inbuf);
@@ -128,6 +128,8 @@ void conv_ustodisp   (gchar *outbuf, gint outlen, const gchar *inbuf);
 void conv_latintodisp(gchar *outbuf, gint outlen, const gchar *inbuf);
 void conv_noconv     (gchar *outbuf, gint outlen, const gchar *inbuf);
 
+void conv_localetodisp(gchar *outbuf, gint outlen, const gchar *inbuf);
+
 CodeConverter *conv_code_converter_new (const gchar    *charset);
 void conv_code_converter_destroy       (CodeConverter  *conv);
 gint conv_convert                      (CodeConverter  *conv,
index 5489d23..f2ba573 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2002 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2003 Hiroyuki Yamamoto
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
@@ -1186,8 +1186,10 @@ static void textview_write_line(TextView *textview, const gchar *str,
                return;
        }
 #endif
-       if (!conv || conv_convert(conv, buf, sizeof(buf), str) < 0)
+       if (!conv)
                strncpy2(buf, str, sizeof(buf));
+       else if (conv_convert(conv, buf, sizeof(buf), str) < 0)
+               conv_localetodisp(buf, sizeof(buf), str);
 
        strcrchomp(buf);
        if (prefs_common.conv_mb_alnum) conv_mb_alnum(buf);