# HG changeset patch # User masneyb # Date 1106615460 0 # Node ID 84d38c525f463942f0e1f5bf8e67c95a5e1cde0d # Parent cecd264e1e407f8ee64d704bbfa9a293f9e029a0 2005-1-24 Brian Masney * src/text/gftp-text.c (gftp_text_ask_question, gftp_text_write_string) - convert the string from UTF8 to the users' current locale before it is displayed * src/text/gftp-text.c src/text/gftp-text.h - fixed signed/unsigned mismatch when calculating the window size * src/gtk/transfer.c (update_file_status) - expanded the maximum length of the dlstr variable diff -r cecd264e1e40 -r 84d38c525f46 ChangeLog --- a/ChangeLog Mon Jan 24 00:56:58 2005 +0000 +++ b/ChangeLog Tue Jan 25 01:11:00 2005 +0000 @@ -1,3 +1,14 @@ +2005-1-24 Brian Masney + * src/text/gftp-text.c (gftp_text_ask_question, gftp_text_write_string) + - convert the string from UTF8 to the users' current locale before it is + displayed + + * src/text/gftp-text.c src/text/gftp-text.h - fixed signed/unsigned + mismatch when calculating the window size + + * src/gtk/transfer.c (update_file_status) - expanded the maximum length + of the dlstr variable + 2005-1-23 Brian Masney * po/POTFILES.in - added lib/fsp.c @@ -3236,7 +3247,7 @@ * cvsclean - added this script - * *.[ch] - added $Id: ChangeLog,v 1.396 2005/01/23 14:12:02 masneyb Exp $ tags + * *.[ch] - added $Id: ChangeLog,v 1.397 2005/01/25 01:10:59 masneyb Exp $ tags * debian/* - updated files from Debian maintainer diff -r cecd264e1e40 -r 84d38c525f46 src/gtk/transfer.c --- a/src/gtk/transfer.c Mon Jan 24 00:56:58 2005 +0000 +++ b/src/gtk/transfer.c Tue Jan 25 01:11:00 2005 +0000 @@ -686,7 +686,7 @@ static void update_file_status (gftp_transfer * tdata) { - char totstr[150], dlstr[100], winstr[150], gotstr[50], ofstr[50]; + char totstr[150], dlstr[150], winstr[150], gotstr[50], ofstr[50]; unsigned long remaining_secs, lkbs; int hours, mins, secs, pcent, st; intptr_t show_trans_in_title; diff -r cecd264e1e40 -r 84d38c525f46 src/text/gftp-text.c --- a/src/text/gftp-text.c Mon Jan 24 00:56:58 2005 +0000 +++ b/src/text/gftp-text.c Tue Jan 25 01:11:00 2005 +0000 @@ -20,11 +20,11 @@ #include "gftp-text.h" static const char cvsid[] = "$Id$"; -int +unsigned int gftp_text_get_win_size (void) { struct winsize size; - int ret; + unsigned int ret; if (ioctl (0, TIOCGWINSZ, (char *) &size) < 0) ret = 80; @@ -36,14 +36,19 @@ static void -gftp_text_write_string (char *string) +gftp_text_write_string (gftp_request * request, char *string) { - char *stpos, *endpos, savechar; - int sw; + gchar *stpos, *endpos, *locale_str, savechar; + unsigned int sw; sw = gftp_text_get_win_size (); - stpos = string; + locale_str = gftp_string_from_utf8 (request, string); + if (locale_str == NULL) + stpos = string; + else + stpos = locale_str; + do { if ((endpos = strchr (stpos, '\n')) == NULL) @@ -77,6 +82,9 @@ sw = sw; } while (stpos != endpos); + + if (locale_str != NULL) + g_free (locale_str); } @@ -134,7 +142,7 @@ if (level == gftp_logging_misc_nolog) printf ("%s", outstr); else - gftp_text_write_string (outstr); + gftp_text_write_string (request, outstr); printf ("%s", GFTPUI_COMMON_COLOR_DEFAULT); @@ -147,6 +155,7 @@ gftp_text_ask_question (const char *question, int echo, char *buf, size_t size) { struct termios term, oldterm; + gchar *locale_question; sigset_t sig, sigsave; char *pos, *termname; int singlechar; @@ -176,7 +185,16 @@ else infd = stdin; - printf ("%s%s%s ", GFTPUI_COMMON_COLOR_BLUE, question, GFTPUI_COMMON_COLOR_DEFAULT); + locale_question = g_locale_from_utf8 (question, -1, NULL, NULL, NULL); + if (locale_question != NULL) + { + printf ("%s%s%s ", GFTPUI_COMMON_COLOR_BLUE, locale_question, + GFTPUI_COMMON_COLOR_DEFAULT); + g_free (locale_question); + } + else + printf ("%s%s%s ", GFTPUI_COMMON_COLOR_BLUE, question, + GFTPUI_COMMON_COLOR_DEFAULT); if (size == 1) { diff -r cecd264e1e40 -r 84d38c525f46 src/text/gftp-text.h --- a/src/text/gftp-text.h Mon Jan 24 00:56:58 2005 +0000 +++ b/src/text/gftp-text.h Tue Jan 25 01:11:00 2005 +0000 @@ -30,7 +30,7 @@ #include #endif -int gftp_text_get_win_size ( void ); +unsigned int gftp_text_get_win_size ( void ); char * gftp_text_ask_question ( const char *question, int echo,