diff src/gtk/misc-gtk.c @ 499:39e9945288ea

2004-7-13 Brian Masney <masneyb@gftp.org> * lib/gftp.h lib/local.c lib/misc.c lib/protocols.c lib/rfc2068.c lib/rfc959.c lib/sshv2.c src/gtk/chmod_dialog.c src/gtk/delete_dialog.c src/gtk/dnd.c src/gtk/gftp-gtk.c src/gtk/gtkui_transfer.c src/gtk/menu-items.c src/gtk/misc-gtk.c src/gtk/view_dialog.c src/text/textui.c src/uicommon/gftpui.c src/uicommon/gftpuicallbacks.c - represent the file attributes as a mode_t variable instead of a character string
author masneyb
date Tue, 13 Jul 2004 20:17:42 +0000
parents 4376ffeab64e
children ba50a7085d93
line wrap: on
line diff
--- a/src/gtk/misc-gtk.c	Tue Jul 13 02:44:35 2004 +0000
+++ b/src/gtk/misc-gtk.c	Tue Jul 13 20:17:42 2004 +0000
@@ -646,15 +646,15 @@
 void
 add_file_listbox (gftp_window_data * wdata, gftp_file * fle)
 {
-  char *add_data[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL }, *pos;
+  char *add_data[7] = { NULL, NULL, NULL, NULL, NULL, NULL, NULL };
+  char *tempstr, *str, *pos, *attribs;
   gftp_config_list_vars * tmplistvar;
-  int clist_num;
+  gftp_file_extensions * tempext;
   intptr_t show_hidden_files;
-  gftp_file_extensions * tempext;
-  char *tempstr, *str;
   GdkBitmap * bitmap;
   GList * templist;
   GdkPixmap * pix;
+  int clist_num;
   size_t stlen;
 
   gftp_lookup_request_option (wdata->request, "show_hidden_files", 
@@ -689,13 +689,15 @@
   bitmap = NULL;
   if (strcmp (fle->file, "..") == 0)
     gftp_get_pixmap (wdata->listbox, "dotdot.xpm", &pix, &bitmap);
-  else if (fle->islink && fle->isdir)
+  else if (S_ISLNK (fle->st_mode) && S_ISDIR (fle->st_mode))
     gftp_get_pixmap (wdata->listbox, "linkdir.xpm", &pix, &bitmap);
-  else if (fle->islink)
+  else if (S_ISLNK (fle->st_mode))
     gftp_get_pixmap (wdata->listbox, "linkfile.xpm", &pix, &bitmap);
-  else if (fle->isdir)
+  else if (S_ISLNK (fle->st_mode))
     gftp_get_pixmap (wdata->listbox, "dir.xpm", &pix, &bitmap);
-  else if (fle->isexe)
+  else if ((fle->st_mode & S_IXUSR) ||
+           (fle->st_mode & S_IXGRP) ||
+           (fle->st_mode & S_IXOTH))
     gftp_get_pixmap (wdata->listbox, "exe.xpm", &pix, &bitmap); 
   else
     {
@@ -727,7 +729,7 @@
   else if (fle->file)
     gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 1, fle->file);
 
-  if (fle->attribs && (*fle->attribs == 'b' || *fle->attribs == 'c'))
+  if (GFTP_IS_SPECIAL_DEVICE (fle->st_mode))
     tempstr = g_strdup_printf ("%d, %d", major (fle->size),
                                minor (fle->size));
   else
@@ -746,8 +748,10 @@
         *pos = '\0';
       gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 5, str);
     }
-  if (fle->attribs)
-    gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 6, fle->attribs);
+
+  attribs = gftp_convert_attributes_from_mode_t (fle->st_mode);
+  gtk_clist_set_text (GTK_CLIST (wdata->listbox), clist_num, 6, attribs);
+  g_free (attribs);
 
 }