Mercurial > gftp.yaz
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);