diff --git a/ChangeLog b/ChangeLog index f79c4abcc..dbf7a614e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,45 @@ +2003-04-23 Alexander Larsson + + * configure.in: + Look for popt and some aix headers + + * components/hardware/Nautilus_View_hardware.server.in.in: + Fix up LIBEXECDIR reference + + * components/history/nautilus-history-view.c: + * components/notes/nautilus-notes.c: + * components/throbber/nautilus-throbber.c: + * libnautilus-private/nautilus-icon-canvas-item.c: + * libnautilus-private/nautilus-icon-container.c: + * libnautilus-private/nautilus-icon-dnd.c: + * libnautilus-private/nautilus-program-chooser.c: + * libnautilus-private/nautilus-volume-monitor.h: + * src/nautilus-applicable-views.h: + * src/nautilus-property-browser.c: + * src/nautilus-sidebar-title.c: + * src/file-manager/fm-directory-view.c: + * test/test-nautilus-preferences-change.c: (main): + * test/test.c: (test_quit): + Fix c++ comments and commas at end of enums. + Move math.h includes to top. + + * data/Makefile.am: + Remove duplicate definitions + + * libnautilus-adapter/Makefile.am: + * libnautilus-private/Makefile.am: + * libnautilus/Makefile.am: + Add correct libs + + * libnautilus-private/nautilus-file-private.h: + Bitfields can't be enums. + + * libnautilus-private/nautilus-volume-monitor.c: + Implement AIX support. + + * src/Makefile.am: + Add POPT_FLAGS + 2003-04-16 Alexander Larsson * src/nautilus-information-panel.c: (burn_cd_callback), diff --git a/components/hardware/Nautilus_View_hardware.server.in.in b/components/hardware/Nautilus_View_hardware.server.in.in index 813aceca3..db3ad89c3 100644 --- a/components/hardware/Nautilus_View_hardware.server.in.in +++ b/components/hardware/Nautilus_View_hardware.server.in.in @@ -1,7 +1,7 @@ + type="exe" location="@LIBEXECDIR@/nautilus-hardware-view"> diff --git a/components/history/nautilus-history-view.c b/components/history/nautilus-history-view.c index a103f083b..2823c00c7 100644 --- a/components/history/nautilus-history-view.c +++ b/components/history/nautilus-history-view.c @@ -57,7 +57,7 @@ enum { HISTORY_VIEW_COLUMN_ICON, HISTORY_VIEW_COLUMN_NAME, HISTORY_VIEW_COLUMN_BOOKMARK, - HISTORY_VIEW_COLUMN_COUNT, + HISTORY_VIEW_COLUMN_COUNT }; BONOBO_CLASS_BOILERPLATE (NautilusHistoryView, nautilus_history_view, diff --git a/components/notes/nautilus-notes.c b/components/notes/nautilus-notes.c index 30a619301..beaafeeb3 100644 --- a/components/notes/nautilus-notes.c +++ b/components/notes/nautilus-notes.c @@ -59,7 +59,7 @@ /* property bag getting and setting routines */ enum { TAB_IMAGE, - NOTES_URI, + NOTES_URI }; typedef struct { diff --git a/components/throbber/nautilus-throbber.c b/components/throbber/nautilus-throbber.c index cd963e504..8560e3800 100644 --- a/components/throbber/nautilus-throbber.c +++ b/components/throbber/nautilus-throbber.c @@ -26,6 +26,8 @@ */ #include +#include + #include "nautilus-throbber.h" #include @@ -45,7 +47,6 @@ #include #include #include -#include #define THROBBER_DEFAULT_TIMEOUT 100 /* Milliseconds Per Frame */ diff --git a/configure.in b/configure.in index ae2245487..306ee6a70 100644 --- a/configure.in +++ b/configure.in @@ -105,6 +105,15 @@ fi AC_SUBST(ENABLE_PROFILER) AM_CONDITIONAL(ENABLE_PROFILER, test "x$ENABLE_PROFILER" = "x1") +dnl ========================================================================== +dnl Check for popt + +AC_CHECK_LIB(popt, poptGetArg, POPT_LIBS=-lpopt, + [AC_CHECK_HEADER(popt.h, , AC_MSG_ERROR([[ +*** Couldn't find popt. Please download and install from +*** ftp://ftp.rpm.org/pub/rpm/dist/rpm-4.0.x/ and try again.]]))]) +AC_SUBST(POPT_LIBS) + dnl ========================================================================== AC_PATH_PROG(GLIB_GENMARSHAL, glib-genmarshal) @@ -117,8 +126,8 @@ AC_SUBST(ORBIT_IDL) dnl ========================================================================== AC_CHECK_FUNCS(setmntent endmntent hasmntopt getmntinfo) -AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h sys/mount.h) - +AC_CHECK_HEADERS(mntent.h sys/mnttab.h sys/vfstab.h sys/cdio.h sys/mount.h sys/mntctl.h sys/vfs.h sys/vmount.h) + dnl ========================================================================== AC_CHECK_FUNCS(setenv unsetenv putenv) diff --git a/data/Makefile.am b/data/Makefile.am index a2b564a56..29e6cf4f1 100644 --- a/data/Makefile.am +++ b/data/Makefile.am @@ -26,8 +26,6 @@ starthere_DATA= applications.desktop \ serverconfig.desktop \ $(NULL) -DESKTOP_FILES=$(DESKTOP_IN_FILES:.in=) - nautilusdatadir = $(datadir)/nautilus nautilusdata_DATA = \ diff --git a/libnautilus-adapter/Makefile.am b/libnautilus-adapter/Makefile.am index 29234fb96..cf733845f 100644 --- a/libnautilus-adapter/Makefile.am +++ b/libnautilus-adapter/Makefile.am @@ -12,6 +12,8 @@ libnautilus_adapter_la_LDFLAGS= \ -version-info 2:0:0 \ $(NULL) +libnautilus_adapter_la_LIBADD= @ALL_LIBS@ ../libnautilus/libnautilus.la + nautilus_adapter_factory_idl_sources = \ nautilus-adapter-factory-stubs.c \ nautilus-adapter-factory-skels.c \ diff --git a/libnautilus-private/Makefile.am b/libnautilus-private/Makefile.am index 5b1f3881a..3948a04c8 100644 --- a/libnautilus-private/Makefile.am +++ b/libnautilus-private/Makefile.am @@ -2,6 +2,8 @@ include $(top_srcdir)/Makefile.shared lib_LTLIBRARIES=libnautilus-private.la +libnautilus_private_la_LIBADD = ../libnautilus/libnautilus.la + INCLUDES = \ -I$(top_srcdir) \ -I$(top_builddir) \ diff --git a/libnautilus-private/nautilus-file-private.h b/libnautilus-private/nautilus-file-private.h index 5739bd862..47a49d3a6 100644 --- a/libnautilus-private/nautilus-file-private.h +++ b/libnautilus-private/nautilus-file-private.h @@ -111,7 +111,7 @@ struct NautilusFileDetails eel_boolean_bit directory_count_failed : 1; eel_boolean_bit directory_count_is_up_to_date : 1; - NautilusRequestStatus deep_counts_status : 2; + eel_boolean_bit deep_counts_status : 2; /* NautilusRequestStatus */ /* no deep_counts_are_up_to_date field; since we expose intermediate values for this attribute, we do actually forget it rather than invalidating. */ diff --git a/libnautilus-private/nautilus-icon-canvas-item.c b/libnautilus-private/nautilus-icon-canvas-item.c index 57607cbe4..c5778d145 100644 --- a/libnautilus-private/nautilus-icon-canvas-item.c +++ b/libnautilus-private/nautilus-icon-canvas-item.c @@ -23,6 +23,7 @@ */ #include +#include #include "nautilus-icon-canvas-item.h" #include "nautilus-file-utilities.h" @@ -51,7 +52,6 @@ #include #include #include -#include #include #include @@ -118,7 +118,7 @@ enum { PROP_ADDITIONAL_TEXT, PROP_HIGHLIGHTED_FOR_SELECTION, PROP_HIGHLIGHTED_AS_KEYBOARD_FOCUS, - PROP_HIGHLIGHTED_FOR_DROP, + PROP_HIGHLIGHTED_FOR_DROP }; typedef enum { diff --git a/libnautilus-private/nautilus-icon-container.c b/libnautilus-private/nautilus-icon-container.c index 64a7bb16a..b13cc127b 100644 --- a/libnautilus-private/nautilus-icon-container.c +++ b/libnautilus-private/nautilus-icon-container.c @@ -26,6 +26,7 @@ */ #include +#include #include "nautilus-icon-container.h" #include "nautilus-global-preferences.h" @@ -51,7 +52,6 @@ #include #include #include -#include #include #include diff --git a/libnautilus-private/nautilus-icon-dnd.c b/libnautilus-private/nautilus-icon-dnd.c index f4ca11b81..d60b067e1 100644 --- a/libnautilus-private/nautilus-icon-dnd.c +++ b/libnautilus-private/nautilus-icon-dnd.c @@ -28,6 +28,7 @@ #include +#include #include "nautilus-icon-dnd.h" #include "nautilus-file-dnd.h" @@ -56,7 +57,6 @@ #include #include #include -#include #include #include diff --git a/libnautilus-private/nautilus-program-chooser.c b/libnautilus-private/nautilus-program-chooser.c index 5d3c924d1..25a8b251e 100644 --- a/libnautilus-private/nautilus-program-chooser.c +++ b/libnautilus-private/nautilus-program-chooser.c @@ -75,7 +75,7 @@ typedef enum { PROGRAM_IN_PREFERRED_LIST_FOR_FILE, PROGRAM_DEFAULT_FOR_SUPERTYPE, PROGRAM_DEFAULT_FOR_TYPE, - PROGRAM_DEFAULT_FOR_FILE, + PROGRAM_DEFAULT_FOR_FILE } ProgramFileStatus; typedef struct { diff --git a/libnautilus-private/nautilus-volume-monitor.c b/libnautilus-private/nautilus-volume-monitor.c index 1ede44966..128917e89 100644 --- a/libnautilus-private/nautilus-volume-monitor.c +++ b/libnautilus-private/nautilus-volume-monitor.c @@ -65,6 +65,17 @@ #include #endif +#if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H) + +#include +#include +#include +#include + +#define AIX_MNT 1 + +#endif /* HAVE_SYS_MNTCTL_H && HAVE_SYS_VMOUNT_H && HAVE_SYS_VFS_H*/ + #ifdef HAVE_MNTENT_H #include #define MOUNT_TABLE_PATH _PATH_MNTTAB @@ -72,6 +83,8 @@ #define SOLARIS_MNT 1 #include #define MOUNT_TABLE_PATH "/etc/mnttab" +#elif defined (AIX_MNT) +#define MOUNT_TABLE_PATH "/etc/filesystems" #else /* FIXME: How does this help anything? */ #define MOUNT_TABLE_PATH "" @@ -142,6 +155,13 @@ typedef struct mnttab MountTableEntry; #elif defined (HAVE_GETMNTINFO) typedef struct statfs MountTableEntry; #define MOUNT_TABLE_ENTRY_TYPE(ent) ((ent)->f_fstypename) +#elif defined(AIX_MNT) +typedef struct { + char mnt_mount[PATH_MAX]; + char mnt_special[PATH_MAX]; + char mnt_fstype[16]; + char mnt_options[128]; +} MountTableEntry; #else typedef struct mntent MountTableEntry; #define MOUNT_TABLE_ENTRY_TYPE(ent) ((ent)->mnt_type) @@ -513,6 +533,124 @@ has_removable_mntent_options (MountTableEntry *ent) #endif +#if defined(AIX_MNT) + +/* + * functions to parse /etc/filesystems + * + */ + +/* aix_fsprop_getc + * + * read character, ignoring comments (begin with '*', end with '\n' + */ +static int +aix_fs_getc (FILE *fd) +{ + int c; + + while ((c = getc (fd)) == '*') { + while (((c = getc (fd)) != '\n') && (c != EOF)) { + } + } +} + +/* aix_fs_ignorespace + * + * eat all continuous spaces in a file + * + */ + +static int +aix_fs_ignorespace (FILE *fd) +{ + int c; + + while ((c = aix_fs_getc (fd)) != EOF) { + if (!g_ascii_isspace (c)) { + ungetc (c,fd); + return c; + } + } + + return EOF; +} + +/* aix_fs_getword + * + * read one word from file + */ + +static int +aix_fs_getword (FILE *fd, char *word) +{ + int c; + + aix_fs_ignorespace (fd); + + while (((c = aix_fs_getc (fd)) != EOF) && !g_ascii_isspace (c)) { + if (c == '"') { + while (((c = aix_fs_getc (fd)) != EOF) && (c != '"')) { + *word++ = c; + } + } else { + *word++ = c; + } + } + *word = 0; + + return c; +} + +/* aix_fs_get + * + * read mount points properties + */ + +static int +aix_fs_get (FILE *fd, MountTableEntry *prop) +{ + static char word[PATH_MAX] = { 0 }; + char value[PATH_MAX]; + + /* read stanza */ + + if (word[0] == 0) { + if (aix_fs_getword (fd, word) == EOF) + return EOF; + } + + word[strlen(word) - 1] = 0; + strcpy (prop->mnt_mount, word); + + /* read attributes and value */ + + while (aix_fs_getword (fd, word) != EOF) { + /* test if is attribute or new stanza */ + + if (word[strlen(word) - 1] == ':') { + return 0; + } + + /* read "=" */ + aix_fs_getword (fd, value); + + /* read value */ + aix_fs_getword (fd, value); + + if (strcmp (word, "dev") == 0) { + strcpy (prop->mnt_special, value); + } else if (strcmp (word, "vfs") == 0) { + strcpy (prop->mnt_fstype, value); + } else if (strcmp (word, "options") == 0) { + strcpy(prop->mnt_options, value); + } + } + + return 0; +} +#endif + /* get_removable_volumes * * Returns a list a device paths. @@ -527,7 +665,7 @@ get_removable_volumes (NautilusVolumeMonitor *monitor) MountTableEntry *ent; NautilusVolume *volume; char * fs_opt; -#ifdef HAVE_SYS_MNTTAB_H +#if defined(HAVE_SYS_MNTTAB_H) || defined(AIX_MNT) MountTableEntry ent_storage; #endif #ifdef HAVE_GETMNTINFO @@ -556,7 +694,17 @@ get_removable_volumes (NautilusVolumeMonitor *monitor) return NULL; } -#ifdef HAVE_SYS_MNTTAB_H +#if defined(AIX_MNT) + ent = &ent_storage; + while (!aix_fs_get (file, ent)) { + if (strcmp ("cdrfs", ent->mnt_fstype) == 0) { + volume = create_volume (ent->mnt_special, ent->mnt_mount); + volume->is_removable = TRUE; + volumes = finish_creating_volume_and_prepend + (monitor, volume, ent->mnt_fstype, volumes); + } + } +#elif defined(HAVE_SYS_MNTTAB_H) ent = &ent_storage; while (! getmntent (file, ent)) { if (eel_str_has_prefix (ent->mnt_special, noauto_string)) { @@ -963,7 +1111,86 @@ build_volume_list_delta (GList *list_one, GList *list_two) -#ifdef SOLARIS_MNT +#ifdef AIX_MNT + +static GList * +get_mount_list (NautilusVolumeMonitor *monitor) +{ + struct vfs_ent *fs_info; + struct vmount *vmount_info; + int vmount_number; + unsigned int vmount_size; + int current; + char *device; + char *mount; + char* fstype; + int is_removable; + int is_readonly; + + NautilusVolume *volume; + GList *volumes = NULL; + + if (mntctl (MCTL_QUERY, sizeof (vmount_size), &vmount_size) != 0) { + g_warning ("Unable to know the number of mounted volumes\n"); + + return NULL; + } + + vmount_info = (struct vmount*)g_malloc (vmount_size); + if (vmount_info == NULL) { + g_warning ("Unable to allocate memory\n"); + return NULL; + } + + vmount_number = mntctl (MCTL_QUERY, vmount_size, vmount_info); + + if (vmount_info->vmt_revision != VMT_REVISION) { + g_warning ("Bad vmount structure revision number, want %d, got %d\n", VMT_REVISION, vmount_info->vmt_revision); + } + + if (vmount_number < 0) { + g_warning ("Unable to recover mounted volumes information\n"); + + g_free (vmount_info); + return NULL; + } + + while (vmount_number > 0) { + device = vmt2dataptr (vmount_info, VMT_OBJECT); + mount = vmt2dataptr (vmount_info, VMT_STUB); + is_removable = (vmount_info->vmt_flags & MNT_REMOVABLE) ? 1 : 0; + is_readonly = (vmount_info->vmt_flags & MNT_READONLY) ? 1 : 0; + + fs_info = getvfsbytype (vmount_info->vmt_gfstype); + + if (fs_info == NULL) { + g_warning ("Unknown FS type !\n"); + fstype = "???"; + } else { + fstype = fs_info->vfsent_name; + } + + volume = create_volume (device, mount); + volume->is_removable = is_removable; + volume->is_read_only = is_readonly; + + volumes = finish_creating_volume_and_prepend + (monitor, volume, fstype, volumes); + + /* next entry */ + + vmount_info = (struct vmount *)( (char*)vmount_info + + vmount_info->vmt_length); + vmount_number--; + } + + + g_free (vmount_info); + + return volumes; +} + +#elif defined(SOLARIS_MNT) static GList * get_mount_list (NautilusVolumeMonitor *monitor) @@ -992,7 +1219,7 @@ get_mount_list (NautilusVolumeMonitor *monitor) return volumes; } -#else /* !SOLARIS_MNT */ +#else /* !AIX_MNT && !SOLARIS_MNT */ static gboolean option_list_has_option (const char *optlist, @@ -1214,10 +1441,7 @@ mount_volumes_check_status (NautilusVolumeMonitor *monitor) static int get_cdrom_type (const char *vol_dev_path, int* fd) { -#ifndef SOLARIS_MNT - *fd = open (vol_dev_path, O_RDONLY|O_NONBLOCK); - return ioctl (*fd, CDROM_DISC_STATUS, CDSL_CURRENT); -#else +#ifdef SOLARIS_MNT GString *new_dev_path; struct cdrom_tocentry entry; struct cdrom_tochdr header; @@ -1254,6 +1478,11 @@ get_cdrom_type (const char *vol_dev_path, int* fd) } return type; +#elif defined(AIX_MNT) + return CDS_NO_INFO; +#else + *fd = open (vol_dev_path, O_RDONLY|O_NONBLOCK); + return ioctl (*fd, CDROM_DISC_STATUS, CDSL_CURRENT); #endif } @@ -1768,8 +1997,8 @@ load_additional_mount_list_info (GList *volume_list) for (node = volume_list; node != NULL; node = node->next) { volume = node->data; -#ifndef SOLARIS_MNT - /* These are set up by get_current_mount_list for Solaris. */ +#if !defined(SOLARIS_MNT) && !defined(AIX_MNT) + /* These are set up by get_current_mount_list for Solaris&AIX.*/ volume->is_removable = volume_is_removable (volume); #endif if (volume->volume_name == NULL) { diff --git a/libnautilus-private/nautilus-volume-monitor.h b/libnautilus-private/nautilus-volume-monitor.h index 1921e4b51..92c35d3ce 100644 --- a/libnautilus-private/nautilus-volume-monitor.h +++ b/libnautilus-private/nautilus-volume-monitor.h @@ -69,7 +69,7 @@ typedef enum { NAUTILUS_DEVICE_ZIP_DRIVE, NAUTILUS_DEVICE_SMB, NAUTILUS_DEVICE_APPLE, - NAUTILUS_DEVICE_WINDOWS, + NAUTILUS_DEVICE_WINDOWS } NautilusDeviceType; typedef gboolean (* NautilusEachVolumeCallback) (const NautilusVolume *, gpointer callback_data); diff --git a/libnautilus/Makefile.am b/libnautilus/Makefile.am index 0d23d5e2f..6abb27638 100644 --- a/libnautilus/Makefile.am +++ b/libnautilus/Makefile.am @@ -14,6 +14,8 @@ libnautilus_la_LDFLAGS=\ -version-info 2:0:0 \ $(NULL) +libnautilus_la_LIBADD = @ALL_LIBS@ + nautilus_view_component_idl_sources = \ nautilus-view-component-stubs.c \ nautilus-view-component-skels.c \ diff --git a/src/Makefile.am b/src/Makefile.am index 3639b444a..eaf003d10 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -35,6 +35,7 @@ LDADD =\ $(top_builddir)/libnautilus-adapter/libnautilus-adapter.la \ $(top_builddir)/libnautilus-private/libnautilus-private.la \ $(CORE_LIBS) \ + $(POPT_LIBS) \ $(NULL) @INTLTOOL_DESKTOP_RULE@ diff --git a/src/file-manager/fm-directory-view.c b/src/file-manager/fm-directory-view.c index f27a8e140..342302de1 100644 --- a/src/file-manager/fm-directory-view.c +++ b/src/file-manager/fm-directory-view.c @@ -28,6 +28,7 @@ */ #include +#include #include "fm-directory-view.h" #include "fm-error-reporting.h" @@ -83,7 +84,6 @@ #include #include #include -#include #include /* The list view receives files from the directory model in chunks, to diff --git a/src/nautilus-applicable-views.h b/src/nautilus-applicable-views.h index c8b461644..7da954ab4 100644 --- a/src/nautilus-applicable-views.h +++ b/src/nautilus-applicable-views.h @@ -54,7 +54,7 @@ typedef enum { NAUTILUS_DETERMINE_VIEW_ACCESS_DENIED, NAUTILUS_DETERMINE_VIEW_HOST_NOT_FOUND, NAUTILUS_DETERMINE_VIEW_HOST_HAS_NO_ADDRESS, - NAUTILUS_DETERMINE_VIEW_NO_MASTER_BROWSER, + NAUTILUS_DETERMINE_VIEW_NO_MASTER_BROWSER } NautilusDetermineViewResult; typedef void (* NautilusDetermineViewCallback) (NautilusDetermineViewHandle *handle, diff --git a/src/nautilus-property-browser.c b/src/nautilus-property-browser.c index 248f6e9bf..cd3eda3d2 100644 --- a/src/nautilus-property-browser.c +++ b/src/nautilus-property-browser.c @@ -29,6 +29,7 @@ */ #include +#include #include "nautilus-property-browser.h" #include "nautilus-signaller.h" @@ -85,7 +86,6 @@ #include #include #include -#include #include /* property types */ @@ -210,7 +210,7 @@ static void element_clicked_callback (GtkWidget #define ERASE_OBJECT_NAME "erase.png" enum { - PROPERTY_TYPE, + PROPERTY_TYPE }; static GtkTargetEntry drag_types[] = { diff --git a/src/nautilus-sidebar-title.c b/src/nautilus-sidebar-title.c index 9d4685c87..8e6d08a80 100644 --- a/src/nautilus-sidebar-title.c +++ b/src/nautilus-sidebar-title.c @@ -25,6 +25,7 @@ /* This is the sidebar title widget, which is the title part of the sidebar. */ #include +#include #include "nautilus-sidebar-title.h" #include "nautilus-window.h" @@ -53,7 +54,6 @@ #include #include #include -#include #include #include diff --git a/test/test-nautilus-preferences-change.c b/test/test-nautilus-preferences-change.c index 305fc7d7a..b34317751 100644 --- a/test/test-nautilus-preferences-change.c +++ b/test/test-nautilus-preferences-change.c @@ -85,7 +85,7 @@ main (int argc, char *argv[]) eel_preferences_set_emergency_fallback_integer ("fruits/orange", 2); eel_preferences_set_emergency_fallback_integer ("fruits/pear", 3); - //sleep (10); + /* sleep (10); */ window = test_window_new (NULL, 4); test_window_set_title_with_pid (GTK_WINDOW (window), "Preferences Change"); diff --git a/test/test.c b/test/test.c index ce43f9a99..46d9f93b0 100644 --- a/test/test.c +++ b/test/test.c @@ -16,7 +16,7 @@ test_init (int *argc, int test_quit (int exit_code) { - //gnome_vfs_shutdown (); + /* gnome_vfs_shutdown (); */ if (gtk_main_level () > 0) { gtk_main_quit ();