changeset 131:c77f85763e28

2003-4-13 Brian Masney <masneyb@gftp.org> * lib/config_file.c - fixed float config type * lib/gftp.h lib/misc.c - added gftp_gen_ls_string() * src/gtk/menu-items.c (dosave_directory_listing) src/text/gftp-text.c (gftp_text_ls) - use gftp_gen_ls_string()
author masneyb
date Mon, 14 Apr 2003 01:07:36 +0000
parents e2712348440d
children 6ed338ad8c35
files ChangeLog lib/config_file.c lib/gftp.h lib/misc.c src/gtk/menu-items.c src/text/gftp-text.c
diffstat 6 files changed, 77 insertions(+), 48 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sun Apr 13 16:39:19 2003 +0000
+++ b/ChangeLog	Mon Apr 14 01:07:36 2003 +0000
@@ -1,3 +1,12 @@
+2003-4-13 Brian Masney <masneyb@gftp.org>
+	* lib/config_file.c - fixed float config type
+
+	* lib/gftp.h lib/misc.c - added gftp_gen_ls_string()
+
+	* src/gtk/menu-items.c (dosave_directory_listing) 
+	src/text/gftp-text.c (gftp_text_ls) - use 
+	gftp_gen_ls_string()
+
 2003-4-13 Brian Masney <masneyb@gftp.org>
 	* lib/config_file.c - implemented gftp_set_global_option()
 
@@ -684,7 +693,7 @@
 
 	* cvsclean - added this script
 
-	* *.[ch] - added $Id: ChangeLog,v 1.69 2003/04/13 15:21:10 masneyb Exp $ tags
+	* *.[ch] - added $Id: ChangeLog,v 1.70 2003/04/14 01:07:34 masneyb Exp $ tags
 
 	* debian/* - updated files from Debian maintainer
 
--- a/lib/config_file.c	Sun Apr 13 16:39:19 2003 +0000
+++ b/lib/config_file.c	Mon Apr 14 01:07:36 2003 +0000
@@ -897,7 +897,10 @@
 static int
 gftp_config_file_read_float (char *str, gftp_config_vars * cv, int line)
 {
-  *(float *) cv->value = strtof (str, NULL);
+  float f;
+
+  f = strtof (str, NULL);
+  memcpy (&cv->value, &f, sizeof (cv->value));
   return (0);
 }
 
@@ -905,7 +908,10 @@
 static int
 gftp_config_file_write_float (gftp_config_vars * cv, FILE * fd, int to_config_file)
 {
-  fprintf (fd, "%.2f", 0.0); /* FIXME */
+  float f;
+
+  memcpy (&f, &cv->value, sizeof (f));
+  fprintf (fd, "%.2f", f);
   return (0);
 }
 
--- a/lib/gftp.h	Sun Apr 13 16:39:19 2003 +0000
+++ b/lib/gftp.h	Mon Apr 14 01:07:36 2003 +0000
@@ -619,6 +619,10 @@
 
 mode_t gftp_parse_attribs 		( char *attribs );
 
+char * gftp_gen_ls_string 		( gftp_file * fle, 
+					  char *file_prefixstr, 
+					  char *file_suffixstr );
+
 /* protocols.c */
 #define GFTP_FTP_NUM				0
 #define GFTP_HTTP_NUM				1
--- a/lib/misc.c	Sun Apr 13 16:39:19 2003 +0000
+++ b/lib/misc.c	Mon Apr 14 01:07:36 2003 +0000
@@ -988,6 +988,51 @@
 }
 
 
+char *
+gftp_gen_ls_string (gftp_file * fle, char *file_prefixstr, char *file_suffixstr)
+{
+  char *tempstr1, *tempstr2, *ret, tstr[50];
+  struct tm *lt;
+  time_t t;
+
+  lt = localtime (&fle->datetime);
+
+  tempstr1 = g_strdup_printf ("%10s %8s %8s", fle->attribs, fle->user,
+                              fle->group);
+
+  if (fle->attribs && (*fle->attribs == 'b' || *fle->attribs == 'c'))
+    tempstr2 = g_strdup_printf ("%d, %d", major (fle->size), minor (fle->size));
+  else
+    {
+#if defined (_LARGEFILE_SOURCE)
+      tempstr2 = g_strdup_printf ("%11lld", fle->size);
+#else
+      tempstr2 = g_strdup_printf ("%11ld", fle->size);
+#endif
+    }
+
+  time (&t);
+
+  if (fle->datetime > t || t - 3600*24*90 > fle->datetime)
+    strftime (tstr, sizeof (tstr), "%b %d  %Y", lt);
+  else
+    strftime (tstr, sizeof (tstr), "%b %d %H:%M", lt);
+
+  if (file_prefixstr == NULL)
+    file_prefixstr = "";
+  if (file_suffixstr == NULL)
+    file_suffixstr = "";
+
+  ret = g_strdup_printf ("%s %s %s %s%s%s", tempstr1, tempstr2, tstr, 
+                         file_prefixstr, fle->file, file_suffixstr);
+
+  g_free (tempstr1);
+  g_free (tempstr2);
+
+  return (ret);
+}
+
+
 #if !defined (HAVE_GETADDRINFO) || !defined (HAVE_GAI_STRERROR)
 
 struct hostent *
--- a/src/gtk/menu-items.c	Sun Apr 13 16:39:19 2003 +0000
+++ b/src/gtk/menu-items.c	Mon Apr 14 01:07:36 2003 +0000
@@ -216,14 +216,12 @@
 static void
 dosave_directory_listing (GtkWidget * widget, gftp_save_dir_struct * str)
 {
-  const char *months[] = { "Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul",
-    "Aug", "Sep", "Oct", "Nov", "Dec" };
   const char *filename;
-  struct tm *lt;
   gftp_file * tempfle;
   GList * templist;
+  char *tempstr;
   FILE * fd;
-  time_t t;
+ 
 
   filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (str->filew));
   if ((fd = fopen (filename, "w")) == NULL)
@@ -234,39 +232,15 @@
       return;
     }
 
-  time (&t);
-
   for (templist = str->wdata->files; 
        templist->next != NULL;
        templist = templist->next)
     {
       tempfle = templist->data;
-      fprintf (fd, "%10s %8s %8s ", tempfle->attribs, tempfle->user, 
-               tempfle->group);
-      if (tempfle->attribs && (*tempfle->attribs == 'b' || 
-                               *tempfle->attribs == 'c'))
-        fprintf (fd, "%5d, %4d", (((unsigned int) tempfle->size) >> 16) & 0xFF,
-                                 ((unsigned int) tempfle->size) & 0xFF);
-      else
-        {
-#if defined (_LARGEFILE_SOURCE)
-          fprintf (fd, "%11lld", tempfle->size);
-#else
-          fprintf (fd, "%11ld", tempfle->size);
-#endif
-        }
 
-      lt = localtime (&tempfle->datetime);
-
-      if (tempfle->datetime > t ||
-          t - 3600*24*90 > tempfle->datetime)
-        fprintf (fd, " %s %2d  %4d", months[lt->tm_mon], lt->tm_mday, 
-                 lt->tm_year + 1900);
-      else
-        fprintf (fd, " %s %2d %02d:%02d", months[lt->tm_mon], lt->tm_mday, 
-                 lt->tm_hour, lt->tm_min);
-
-      fprintf (fd, " %s\n", tempfle->file);
+      tempstr = gftp_gen_ls_string (tempfle, NULL, NULL);
+      fprintf (fd, "%s\n", tempstr);
+      g_free (tempstr);
     }
 
   fclose (fd);
--- a/src/text/gftp-text.c	Sun Apr 13 16:39:19 2003 +0000
+++ b/src/text/gftp-text.c	Mon Apr 14 01:07:36 2003 +0000
@@ -571,7 +571,7 @@
 gftp_text_ls (gftp_request * request, char *command, gpointer *data)
 {
   GList * files, * templist, * delitem;
-  char *color, buf[20], *filespec;
+  char *color, *filespec, *tempstr;
   int sortcol, sortasds;
   gftp_file * fle;
   time_t curtime;
@@ -639,19 +639,10 @@
       else
         color = COLOR_DEFAULT;
 
-      if (curtime > fle->datetime + 6 * 30 * 24 * 60 * 60 ||
-          curtime < fle->datetime - 60 * 60)
-        strftime (buf, sizeof (buf), "%b %d  %Y", localtime (&fle->datetime));
-      else
-        strftime (buf, sizeof (buf), "%b %d %H:%M", localtime (&fle->datetime));
-      
-#if defined (_LARGEFILE_SOURCE)
-      printf ("%s %8s %8s %10lld %s %s%s%s\n", 
-#else
-      printf ("%s %8s %8s %10ld %s %s%s%s\n", 
-#endif
-              fle->attribs, fle->user, fle->group,
-              fle->size, buf, color, fle->file, COLOR_DEFAULT);
+      tempstr = gftp_gen_ls_string (fle, color, COLOR_DEFAULT);
+      printf ("%s\n", tempstr);
+      g_free (tempstr);
+
       delitem = templist;
     }
   gftp_end_transfer (request);