changeset 838:57aad6d4b304

2006-10-31 Brian Masney <masneyb@gftp.org> WARNING: The CVS version of gFTP is currently broken, especially for international users. This will be fixed in a few days. * lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc959.c src/gtk/misc-gtk.c src/text/gftp-text.c - added length argument to gftp_string_from_utf8() and gftp_string_to_utf8() * src/uicommon/gftpui.c - warning fixes
author masneyb
date Wed, 01 Nov 2006 02:05:25 +0000
parents 36e0867c4ef9
children 0d9a3d4188c3
files ChangeLog lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc959.c src/gtk/misc-gtk.c src/text/gftp-text.c src/uicommon/gftpui.c
diffstat 9 files changed, 87 insertions(+), 102 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Mon Oct 30 13:49:06 2006 +0000
+++ b/ChangeLog	Wed Nov 01 02:05:25 2006 +0000
@@ -1,7 +1,14 @@
-2006-10-19 Brian Masney <masneyb@gftp.org>
+2006-10-31 Brian Masney <masneyb@gftp.org>
 	WARNING: The CVS version of gFTP is currently broken, especially for
 	international users. This will be fixed in a few days.
 
+	* lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc959.c
+	src/gtk/misc-gtk.c src/text/gftp-text.c - added length argument to
+	gftp_string_from_utf8() and gftp_string_to_utf8()
+
+	* src/uicommon/gftpui.c - warning fixes
+
+2006-10-19 Brian Masney <masneyb@gftp.org>
 	* lib/fsp.c lib/gftp.h lib/local.c lib/protocols.c lib/rfc2068.c
 	lib/rfc959.c lib/sshv2.c - added use_local_encoding variable to the
 	gftp_request structure. This will determine if the filename should
@@ -3656,7 +3663,7 @@
 
 	* cvsclean - added this script
 
-	* *.[ch] - added $Id: ChangeLog,v 1.487 2006/10/19 12:39:43 masneyb Exp $ tags
+	* *.[ch] - added $Id: ChangeLog,v 1.488 2006/11/01 02:05:05 masneyb Exp $ tags
 
 	* debian/* - updated files from Debian maintainer
 
--- a/lib/gftp.h	Mon Oct 30 13:49:06 2006 +0000
+++ b/lib/gftp.h	Wed Nov 01 02:05:25 2006 +0000
@@ -907,10 +907,12 @@
 int gftp_list_files 			( gftp_request * request );
 
 /*@null@*/ char * gftp_string_to_utf8	( gftp_request * request, 
-					  const char *str );
+					  const char *str,
+					  size_t *dest_len );
 
 /*@null@*/ char * gftp_string_from_utf8	( gftp_request * request, 
-					  const char *str );
+					  const char *str,
+					  size_t *dest_len );
 
 int gftp_parse_bookmark 		( gftp_request * request, 
 					  gftp_request * local_request,
--- a/lib/local.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/lib/local.c	Wed Nov 01 02:05:25 2006 +0000
@@ -55,6 +55,7 @@
 local_getcwd (gftp_request * request)
 {
   char tempstr[PATH_MAX], *utf8;
+  size_t destlen;
   
   if (request->directory != NULL)
     g_free (request->directory);
@@ -68,7 +69,7 @@
       return (GFTP_ERETRYABLE);
     }
 
-  utf8 = gftp_string_from_utf8 (request, tempstr);
+  utf8 = gftp_string_from_utf8 (request, tempstr, &destlen);
   if (utf8 != NULL)
     request->directory = utf8;
   else
@@ -81,6 +82,7 @@
 static int
 local_chdir (gftp_request * request, const char *directory)
 {
+  size_t destlen;
   char *utf8;
   int ret;
 
@@ -88,7 +90,7 @@
   g_return_val_if_fail (request->protonum == GFTP_LOCAL_NUM, GFTP_EFATAL);
   g_return_val_if_fail (directory != NULL, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, directory);
+  utf8 = gftp_string_from_utf8 (request, directory, &destlen);
   if (utf8 != NULL)
     {
       ret = chdir (utf8);
@@ -153,6 +155,7 @@
 local_get_file (gftp_request * request, const char *filename, int fd,
                 off_t startsize)
 {
+  size_t destlen;
   char *utf8;
   off_t size;
   int flags;
@@ -168,7 +171,7 @@
       flags |= O_LARGEFILE;
 #endif
 
-      utf8 = gftp_string_from_utf8 (request, filename);
+      utf8 = gftp_string_from_utf8 (request, filename, &destlen);
       if (utf8 != NULL)
         {
           request->datafd = gftp_fd_open (request, utf8, flags, 0);
@@ -210,6 +213,7 @@
                 off_t startsize, off_t totalsize)
 {
   int flags, perms;
+  size_t destlen;
   char *utf8;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -226,7 +230,7 @@
 #endif
 
       perms = S_IRUSR | S_IWUSR | S_IRGRP | S_IROTH;
-      utf8 = gftp_string_from_utf8 (request, filename);
+      utf8 = gftp_string_from_utf8 (request, filename, &destlen);
       if (utf8 != NULL)
         {
           request->datafd = gftp_fd_open (request, utf8, flags, perms);
@@ -293,10 +297,11 @@
                      mode_t * mode, off_t * filesize)
 {
   struct stat st;
+  size_t destlen;
   char *utf8;
   int ret;
 
-  utf8 = gftp_string_from_utf8 (request, filename);
+  utf8 = gftp_string_from_utf8 (request, filename, &destlen);
   if (utf8 != NULL)
     {
       ret = stat (utf8, &st);
@@ -398,6 +403,7 @@
   char *dir, *tempstr, *utf8;
   local_protocol_data *lpd;
   int freeit, ret;
+  size_t destlen;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
   g_return_val_if_fail (request->directory != NULL, GFTP_EFATAL);
@@ -407,7 +413,7 @@
 
   g_return_val_if_fail (lpd != NULL, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, request->directory);
+  utf8 = gftp_string_from_utf8 (request, request->directory, &destlen);
   dir = utf8 != NULL ? utf8 : request->directory;
 
   if (dir[strlen (dir) - 1] != '/')
@@ -445,10 +451,11 @@
 local_get_file_size (gftp_request * request, const char *filename)
 {
   struct stat st;
+  size_t destlen;
   char *utf8;
   int ret;
 
-  utf8 = gftp_string_from_utf8 (request, filename);
+  utf8 = gftp_string_from_utf8 (request, filename, &destlen);
   if (utf8 != NULL)
     {
       ret = stat (utf8, &st);
@@ -467,6 +474,7 @@
 static int
 local_rmdir (gftp_request * request, const char *directory)
 {
+  size_t destlen;
   char *utf8;
   int ret;
 
@@ -474,7 +482,7 @@
   g_return_val_if_fail (request->protonum == GFTP_LOCAL_NUM, GFTP_EFATAL);
   g_return_val_if_fail (directory != NULL, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, directory);
+  utf8 = gftp_string_from_utf8 (request, directory, &destlen);
   if (utf8 != NULL)
     {
       ret = rmdir (utf8);
@@ -502,6 +510,7 @@
 static int
 local_rmfile (gftp_request * request, const char *file)
 {
+  size_t destlen;
   char *utf8;
   int ret;
 
@@ -509,7 +518,7 @@
   g_return_val_if_fail (request->protonum == GFTP_LOCAL_NUM, GFTP_EFATAL);
   g_return_val_if_fail (file != NULL, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, file);
+  utf8 = gftp_string_from_utf8 (request, file, &destlen);
   if (utf8 != NULL)
     {
       ret = unlink (utf8);
@@ -538,6 +547,7 @@
 local_mkdir (gftp_request * request, const char *directory)
 {
   int ret, perms;
+  size_t destlen;
   char *utf8;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -546,7 +556,7 @@
 
   perms = S_IRWXU | S_IRGRP | S_IXGRP | S_IROTH | S_IXOTH;
 
-  utf8 = gftp_string_from_utf8 (request, directory);
+  utf8 = gftp_string_from_utf8 (request, directory, &destlen);
   if (utf8 != NULL)
     {
       ret = mkdir (utf8, perms);
@@ -578,6 +588,7 @@
 {
   const char *conv_oldname, *conv_newname;
   char *old_utf8, *new_utf8;
+  size_t destlen;
   int ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -585,9 +596,9 @@
   g_return_val_if_fail (oldname != NULL, GFTP_EFATAL);
   g_return_val_if_fail (newname != NULL, GFTP_EFATAL);
 
-  old_utf8 = gftp_string_from_utf8 (request, oldname);
+  old_utf8 = gftp_string_from_utf8 (request, oldname, &destlen);
   conv_oldname = old_utf8 != NULL ? old_utf8 : oldname;
-  new_utf8 = gftp_string_from_utf8 (request, newname);
+  new_utf8 = gftp_string_from_utf8 (request, newname, &destlen);
   conv_newname = new_utf8 != NULL ? new_utf8 : newname;
 
   if (rename (conv_oldname, conv_newname) == 0)
@@ -617,6 +628,7 @@
 static int
 local_chmod (gftp_request * request, const char *file, mode_t mode)
 {
+  size_t destlen;
   char *utf8;
   int ret;
 
@@ -624,7 +636,7 @@
   g_return_val_if_fail (request->protonum == GFTP_LOCAL_NUM, GFTP_EFATAL);
   g_return_val_if_fail (file != NULL, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, file);
+  utf8 = gftp_string_from_utf8 (request, file, &destlen);
   if (utf8 != NULL)
     {
       ret = chmod (utf8, mode);
@@ -655,6 +667,7 @@
 		     time_t datetime)
 {
   struct utimbuf time_buf;
+  size_t destlen;
   char *utf8;
   int ret;
 
@@ -665,7 +678,7 @@
   time_buf.modtime = datetime;
   time_buf.actime = datetime;
 
-  utf8 = gftp_string_from_utf8 (request, file);
+  utf8 = gftp_string_from_utf8 (request, file, &destlen);
   if (utf8 != NULL)
     {
       ret = utime (utf8, &time_buf);
--- a/lib/misc.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/lib/misc.c	Wed Nov 01 02:05:25 2006 +0000
@@ -874,6 +874,7 @@
                     char *file_prefixstr, char *file_suffixstr)
 {
   char *tempstr1, *tempstr2, *ret, tstr[50], *attribs, *utf8;
+  size_t destlen;
   struct tm *lt;
   time_t t;
 
@@ -900,7 +901,7 @@
   if (file_suffixstr == NULL)
     file_suffixstr = "";
 
-  utf8 = gftp_string_from_utf8 (request, fle->file);
+  utf8 = gftp_string_from_utf8 (request, fle->file, &destlen);
   ret = g_strdup_printf ("%s %s %s %s%s%s", tempstr1, tempstr2, tstr, 
                          file_prefixstr, 
                          utf8 != NULL ? utf8: fle->file,
--- a/lib/protocols.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/lib/protocols.c	Wed Nov 01 02:05:25 2006 +0000
@@ -432,11 +432,11 @@
 
 
 /*@null@*/ char *
-gftp_string_to_utf8 (gftp_request * request, const char *str)
+gftp_string_to_utf8 (gftp_request * request, const char *str, size_t *dest_len)
 {
   char *ret, *remote_charsets, *stpos, *cur_charset, *tempstr;
   GError * error = NULL;
-  gsize bread, bwrite;
+  gsize bread;
 
   if (request == NULL)
     return (NULL);
@@ -445,7 +445,7 @@
     return (NULL);
   else if (request->iconv_initialized)
     {
-      ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite, 
+      ret = g_convert_with_iconv (str, -1, request->iconv, &bread, dest_len, 
                                   &error);
       if (ret == NULL)
         printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
@@ -458,7 +458,7 @@
   if (*tempstr == '\0')
     {
       error = NULL;
-      if ((ret = g_locale_to_utf8 (str, -1, &bread, &bwrite, &error)) != NULL)
+      if ((ret = g_locale_to_utf8 (str, -1, &bread, dest_len, &error)) != NULL)
         return (ret);
 
       /* Don't use request->logging_function since the strings must be in UTF-8
@@ -477,8 +477,8 @@
         continue;
 
       error = NULL;
-      if ((ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite,
-                                       &error)) == NULL)
+      if ((ret = g_convert_with_iconv (str, -1, request->iconv, &bread,
+                                       dest_len, &error)) == NULL)
         {
           printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
                   str, cur_charset, "UTF-8", error->message);
@@ -501,11 +501,12 @@
 
 
 char *
-gftp_string_from_utf8 (gftp_request * request, const char *str)
+gftp_string_from_utf8 (gftp_request * request, const char *str,
+                       size_t *dest_len)
 {
   char *ret, *remote_charsets, *stpos, *cur_charset, *tempstr;
   GError * error = NULL;
-  gsize bread, bwrite;
+  gsize bread;
 
   if (request == NULL)
     return (NULL);
@@ -518,7 +519,7 @@
     return (NULL);
   else if (request->iconv_initialized)
     {
-      ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite, 
+      ret = g_convert_with_iconv (str, -1, request->iconv, &bread, dest_len, 
                                   &error);
       if (ret == NULL)
         printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
@@ -531,7 +532,8 @@
   if (*tempstr == '\0')
     {
       error = NULL;
-      if ((ret = g_locale_from_utf8 (str, -1, &bread, &bwrite, &error)) != NULL)
+      if ((ret = g_locale_from_utf8 (str, -1, &bread, dest_len,
+                                     &error)) != NULL)
         return (ret);
 
       /* Don't use request->logging_function since the strings must be in UTF-8
@@ -550,8 +552,8 @@
         continue;
 
       error = NULL;
-      if ((ret = g_convert_with_iconv (str, -1, request->iconv, &bread, &bwrite,
-                                       &error)) == NULL)
+      if ((ret = g_convert_with_iconv (str, -1, request->iconv, &bread,
+                                       dest_len, &error)) == NULL)
         {
           printf (_("Error converting string '%s' from character set %s to character set %s: %s\n"),
                   str, "UTF-8", cur_charset, error->message);
@@ -575,14 +577,14 @@
 #else
 
 char *
-gftp_string_to_utf8 (gftp_request * request, const char *str)
+gftp_string_to_utf8 (gftp_request * request, const char *str, size_t dest_len)
 {
   return (NULL);
 }
 
 
 char *
-gftp_string_from_utf8 (gftp_request * request, const char *str)
+gftp_string_from_utf8 (gftp_request * request, const char *str, size_t dest_len)
 {
   return (NULL);
 }
@@ -595,6 +597,7 @@
                     gftp_file * fle)
 {
   char *slashpos, *tmpfile, *utf8;
+  size_t destlen;
   int fd, ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -635,7 +638,7 @@
 
       if (ret >= 0 && fle->file != NULL)
         {
-          utf8 = gftp_string_to_utf8 (request, fle->file);
+          utf8 = gftp_string_to_utf8 (request, fle->file, &destlen);
           if (utf8 != NULL)
             {
               tmpfile = fle->file;
@@ -669,9 +672,10 @@
 {
   gftp_logging_func logging_function;
   gftp_bookmarks_var * tempentry;
-  char *default_protocol, *utf8;
+  char *default_protocol;
   const char *email;
   int i, init_ret;
+  size_t destlen;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
   g_return_val_if_fail (bookmark != NULL, GFTP_EFATAL);
@@ -713,30 +717,13 @@
     gftp_set_account (request, tempentry->acct);
 
   gftp_set_hostname (request, tempentry->hostname);
-
-  utf8 = gftp_string_from_utf8 (request, tempentry->remote_dir);
-  if (utf8 != NULL)
-    {
-      gftp_set_directory (request, utf8);
-      g_free (utf8);
-    }
-  else
-    gftp_set_directory (request, tempentry->remote_dir);
-
+  gftp_set_directory (request, tempentry->remote_dir);
   gftp_set_port (request, tempentry->port);
 
   if (local_request != NULL && tempentry->local_dir != NULL &&
       *tempentry->local_dir != '\0')
     {
-      utf8 = gftp_string_from_utf8 (request, tempentry->local_dir);
-      if (utf8 != NULL)
-        {
-          gftp_set_directory (local_request, utf8);
-          g_free (utf8);
-        }
-      else
-        gftp_set_directory (local_request, tempentry->local_dir);
-
+      gftp_set_directory (local_request, tempentry->local_dir);
       if (refresh_local != NULL)
         *refresh_local = 1;
     }
@@ -1037,7 +1024,6 @@
 int
 gftp_make_directory (gftp_request * request, const char *directory)
 {
-  char *utf8;
   int ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -1045,16 +1031,7 @@
   if (request->mkdir == NULL)
     return (GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, directory);
-  if (utf8 != NULL)
-    {
-      ret = request->mkdir (request, utf8);
-      g_free (utf8);
-    }
-  else
-    ret = request->mkdir (request, directory);
-
-  return (ret);
+  return (request->mkdir (request, directory));
 }
 
 
@@ -1062,7 +1039,6 @@
 gftp_rename_file (gftp_request * request, const char *oldname,
                   const char *newname)
 {
-  char *utf8;
   int ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
@@ -1070,16 +1046,7 @@
   if (request->rename == NULL)
     return (GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, newname);
-  if (utf8 != NULL)
-    {
-      ret = request->rename (request, oldname, utf8);
-      g_free (utf8);
-    }
-  else
-    ret = request->rename (request, oldname, newname);
-
-  return (ret);
+  return (request->rename (request, oldname, newname));
 }
 
 
--- a/lib/rfc959.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/lib/rfc959.c	Wed Nov 01 02:05:25 2006 +0000
@@ -198,11 +198,12 @@
                                   int dont_try_to_reconnect)
 {
   char *tempstr, *utf8;
+  size_t destlen;
   int resp;
 
   if (argument != NULL)
     {
-      utf8 = gftp_string_from_utf8 (request, argument);
+      utf8 = gftp_string_from_utf8 (request, argument, &destlen);
       if (utf8 != NULL)
         {
           tempstr = g_strconcat (command, " ", utf8, "\r\n", NULL);
@@ -225,7 +226,7 @@
 {
   char *startpos, *endpos, *newstr, *newval, tempport[6], *proxy_config, *utf8,
        savechar;
-  size_t len;
+  size_t len, destlen;
   intptr_t tmp;
 
   g_return_val_if_fail (request != NULL, NULL);
@@ -319,7 +320,7 @@
         }
       else
         {
-          utf8 = gftp_string_from_utf8 (request, newval);
+          utf8 = gftp_string_from_utf8 (request, newval, &destlen);
           if (utf8 != NULL)
             len += strlen (utf8);
           else
@@ -350,6 +351,7 @@
 rfc959_getcwd (gftp_request * request)
 {
   char *pos, *dir, *utf8;
+  size_t destlen;
   int ret;
 
   ret = rfc959_send_command (request, "PWD\r\n", 1, 0);
@@ -389,7 +391,7 @@
   if (request->directory)
     g_free (request->directory);
 
-  utf8 = gftp_string_to_utf8 (request, dir);
+  utf8 = gftp_string_to_utf8 (request, dir, &destlen);
   if (utf8 != NULL)
     request->directory = utf8;
   else
@@ -1718,13 +1720,14 @@
 rfc959_chmod (gftp_request * request, const char *file, mode_t mode)
 {
   char *tempstr, *utf8;
+  size_t destlen;
   int ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
   g_return_val_if_fail (file != NULL, GFTP_EFATAL);
   g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, file);
+  utf8 = gftp_string_from_utf8 (request, file, &destlen);
   if (utf8 != NULL)
     {
       tempstr = g_strdup_printf ("SITE CHMOD %o %s\r\n", mode, utf8);
@@ -1749,13 +1752,14 @@
 rfc959_site (gftp_request * request, int specify_site, const char *command)
 {
   char *tempstr, *utf8;
+  size_t destlen;
   int ret;
 
   g_return_val_if_fail (request != NULL, GFTP_EFATAL);
   g_return_val_if_fail (command != NULL, GFTP_EFATAL);
   g_return_val_if_fail (request->datafd > 0, GFTP_EFATAL);
 
-  utf8 = gftp_string_from_utf8 (request, command);
+  utf8 = gftp_string_from_utf8 (request, command, &destlen);
   if (utf8 != NULL)
     {
       if (specify_site)
--- a/src/gtk/misc-gtk.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/src/gtk/misc-gtk.c	Wed Nov 01 02:05:25 2006 +0000
@@ -54,6 +54,7 @@
   GtkTextIter iter, iter2;
   const char *descr;
   char *utf8_str;
+  size_t destlen;
 #endif
 
   va_start (argp, string);
@@ -70,7 +71,7 @@
   va_end (argp);
 
 #if GTK_MAJOR_VERSION > 1
-  if ((utf8_str = gftp_string_to_utf8 (request, logstr)) != NULL)
+  if ((utf8_str = gftp_string_to_utf8 (request, logstr, &destlen)) != NULL)
     {
       if (free_logstr)
         g_free (logstr);
--- a/src/text/gftp-text.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/src/text/gftp-text.c	Wed Nov 01 02:05:25 2006 +0000
@@ -40,10 +40,11 @@
 {
   gchar *stpos, *endpos, *locale_str, savechar;
   unsigned int sw;
+  size_t destlen;
 
   sw = gftp_text_get_win_size ();
 
-  locale_str = gftp_string_from_utf8 (request, string);
+  locale_str = gftp_string_from_utf8 (request, string, &destlen);
   if (locale_str == NULL)
     stpos = string;
   else
@@ -92,7 +93,7 @@
 gftp_text_log (gftp_logging_level level, gftp_request * request, 
                const char *string, ...)
 {
-  char tempstr[512], *utf8_str = NULL, *outstr;
+  char tempstr[512];
   va_list argp;
 
   g_return_if_fail (string != NULL);
@@ -117,19 +118,9 @@
   g_vsnprintf (tempstr, sizeof (tempstr), string, argp);
   va_end (argp);
 
-#if GLIB_MAJOR_VERSION > 1
-  if (!g_utf8_validate (tempstr, -1, NULL))
-    utf8_str = gftp_string_to_utf8 (request, tempstr);
-#endif
-
-  if (utf8_str != NULL)
-    outstr = utf8_str;
-  else
-    outstr = tempstr;
-
   if (gftp_logfd != NULL && level != gftp_logging_misc_nolog)
     {
-      fwrite (outstr, 1, strlen (outstr), gftp_logfd);
+      fwrite (tempstr, 1, strlen (tempstr), gftp_logfd);
       if (ferror (gftp_logfd))
         {
           fclose (gftp_logfd);
@@ -140,14 +131,11 @@
     }
 
   if (level == gftp_logging_misc_nolog)
-    printf ("%s", outstr);
+    printf ("%s", tempstr);
   else
-    gftp_text_write_string (request, outstr);
+    gftp_text_write_string (request, tempstr);
   
   printf ("%s", GFTPUI_COMMON_COLOR_DEFAULT);
-
-  if (utf8_str != NULL)
-    g_free (utf8_str);
 }
 
 
@@ -158,6 +146,7 @@
   gchar *locale_question;
   sigset_t sig, sigsave;
   char *pos, *termname;
+  size_t destlen;
   int singlechar;
   FILE *infd;
 
--- a/src/uicommon/gftpui.c	Mon Oct 30 13:49:06 2006 +0000
+++ b/src/uicommon/gftpui.c	Wed Nov 01 02:05:25 2006 +0000
@@ -1295,6 +1295,7 @@
   memset (&updatetime, 0, sizeof (updatetime));
   gftpui_start_current_file_in_transfer (tdata);
 
+  num_read = 0;
   while (!tdata->cancel &&
          (num_read = gftp_get_next_file_chunk (tdata->fromreq, buf,
                                                trans_blksize)) > 0)
@@ -1402,7 +1403,7 @@
 }
 
 
-static int
+static void
 _gftpui_common_next_file_in_trans (gftp_transfer * tdata)
 {
   gftp_file * curfle;