AIX port from Laurent.Vivier@bull.net (Laurent Vivier)

2003-04-23  Alexander Larsson  <alexl@redhat.com>

        AIX port from Laurent.Vivier@bull.net (Laurent Vivier)

	* 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
This commit is contained in:
Alexander Larsson 2003-04-23 09:50:03 +00:00 committed by Alexander Larsson
parent 83901c8cd9
commit 3e0d21df23
24 changed files with 318 additions and 32 deletions

View file

@ -1,3 +1,45 @@
2003-04-23 Alexander Larsson <alexl@redhat.com>
* 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 <alexl@redhat.com>
* src/nautilus-information-panel.c: (burn_cd_callback),

View file

@ -1,7 +1,7 @@
<oaf_info>
<oaf_server iid="OAFIID:Nautilus_Hardware_View_Factory"
type="exe" location="@LIBEXEC@/nautilus-hardware-view">
type="exe" location="@LIBEXECDIR@/nautilus-hardware-view">
<oaf_attribute name="repo_ids" type="stringv">
<item value="IDL:GNOME/ObjectFactory:1.0"/>
</oaf_attribute>

View file

@ -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,

View file

@ -59,7 +59,7 @@
/* property bag getting and setting routines */
enum {
TAB_IMAGE,
NOTES_URI,
NOTES_URI
};
typedef struct {

View file

@ -26,6 +26,8 @@
*/
#include <config.h>
#include <math.h>
#include "nautilus-throbber.h"
#include <bonobo/bonobo-ui-toolbar-item.h>
@ -45,7 +47,6 @@
#include <libnautilus-private/nautilus-global-preferences.h>
#include <libnautilus-private/nautilus-icon-factory.h>
#include <libnautilus-private/nautilus-theme.h>
#include <math.h>
#define THROBBER_DEFAULT_TIMEOUT 100 /* Milliseconds Per Frame */

View file

@ -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)

View file

@ -26,8 +26,6 @@ starthere_DATA= applications.desktop \
serverconfig.desktop \
$(NULL)
DESKTOP_FILES=$(DESKTOP_IN_FILES:.in=)
nautilusdatadir = $(datadir)/nautilus
nautilusdata_DATA = \

View file

@ -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 \

View file

@ -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) \

View file

@ -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. */

View file

@ -23,6 +23,7 @@
*/
#include <config.h>
#include <math.h>
#include "nautilus-icon-canvas-item.h"
#include "nautilus-file-utilities.h"
@ -51,7 +52,6 @@
#include <atk/atkimage.h>
#include <atk/atkcomponent.h>
#include <atk/atknoopobject.h>
#include <math.h>
#include <stdio.h>
#include <string.h>
@ -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 {

View file

@ -26,6 +26,7 @@
*/
#include <config.h>
#include <math.h>
#include "nautilus-icon-container.h"
#include "nautilus-global-preferences.h"
@ -51,7 +52,6 @@
#include <gtk/gtksignal.h>
#include <libgnome/gnome-i18n.h>
#include <libgnome/gnome-macros.h>
#include <math.h>
#include <stdio.h>
#include <string.h>

View file

@ -28,6 +28,7 @@
#include <config.h>
#include <math.h>
#include "nautilus-icon-dnd.h"
#include "nautilus-file-dnd.h"
@ -56,7 +57,6 @@
#include <libgnomevfs/gnome-vfs-uri.h>
#include <libgnomevfs/gnome-vfs-utils.h>
#include <libgnomevfs/gnome-vfs-mime-utils.h>
#include <math.h>
#include <stdio.h>
#include <string.h>

View file

@ -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 {

View file

@ -65,6 +65,17 @@
#include <fstab.h>
#endif
#if defined(HAVE_SYS_MNTCTL_H) && defined(HAVE_SYS_VMOUNT_H) && defined(HAVE_SYS_VFS_H)
#include <sys/mntctl.h>
#include <sys/vfs.h>
#include <sys/vmount.h>
#include <fshelp.h>
#define AIX_MNT 1
#endif /* HAVE_SYS_MNTCTL_H && HAVE_SYS_VMOUNT_H && HAVE_SYS_VFS_H*/
#ifdef HAVE_MNTENT_H
#include <mntent.h>
#define MOUNT_TABLE_PATH _PATH_MNTTAB
@ -72,6 +83,8 @@
#define SOLARIS_MNT 1
#include <sys/mnttab.h>
#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) {

View file

@ -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);

View file

@ -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 \

View file

@ -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@

View file

@ -28,6 +28,7 @@
*/
#include <config.h>
#include <math.h>
#include "fm-directory-view.h"
#include "fm-error-reporting.h"
@ -83,7 +84,6 @@
#include <libnautilus-private/nautilus-trash-monitor.h>
#include <libnautilus-private/nautilus-view-identifier.h>
#include <libnautilus/nautilus-bonobo-ui.h>
#include <math.h>
#include <unistd.h>
/* The list view receives files from the directory model in chunks, to

View file

@ -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,

View file

@ -29,6 +29,7 @@
*/
#include <config.h>
#include <math.h>
#include "nautilus-property-browser.h"
#include "nautilus-signaller.h"
@ -85,7 +86,6 @@
#include <libnautilus-private/nautilus-global-preferences.h>
#include <libnautilus-private/nautilus-metadata.h>
#include <libnautilus-private/nautilus-theme.h>
#include <math.h>
#include <atk/atkrelationset.h>
/* 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[] = {

View file

@ -25,6 +25,7 @@
/* This is the sidebar title widget, which is the title part of the sidebar. */
#include <config.h>
#include <math.h>
#include "nautilus-sidebar-title.h"
#include "nautilus-window.h"
@ -53,7 +54,6 @@
#include <libnautilus-private/nautilus-metadata.h>
#include <libnautilus-private/nautilus-search-uri.h>
#include <libnautilus-private/nautilus-theme.h>
#include <math.h>
#include <string.h>
#include <stdlib.h>

View file

@ -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");

View file

@ -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 ();