Fri Jan 30 2004 Alexander Larsson <alexl@redhat.com> 2.5.6-1 - update to 2.5.6 Thu Jan 29 2004 Jonathan Blandford <jrb@redhat.com> 2.5.5-5 - re-add the vfolder patch Fri Jan 23 2004 Alexander Larsson <alexl@redhat.com> 2.5.5-4 - Split smb into its own subpackage Wed Jan 21 2004 Alexander Larsson <alexl@redhat.com> 2.5.5-3 - provide gnome-vfs-extras2 Mon Jan 19 2004 Alexander Larsson <alexl@redhat.com> 2.5.5-2 - add shared-mime-info dep - obsolete gnome-vfs2-extras Fri Jan 16 2004 Jonathan Blandford <jrb@redhat.com> 2.5.5-1 - new version for GNOME 2.5f38
parent
d9de10ec61
commit
cb734c1588
@ -1 +1 @@
|
||||
gnome-vfs-2.4.1.tar.bz2
|
||||
gnome-vfs-2.5.6.tar.bz2
|
||||
|
@ -0,0 +1,550 @@
|
||||
--- gnome-vfs-2.5.5/libgnomevfs/Makefile.am.vfolder-hacks 2004-01-08 03:31:06.000000000 -0500
|
||||
+++ gnome-vfs-2.5.5/libgnomevfs/Makefile.am 2004-01-29 18:44:53.000000000 -0500
|
||||
@@ -19,6 +19,7 @@
|
||||
-DGNOMEVFS_LOCALEDIR=\"$(prefix)/@DATADIRNAME@/locale\" \
|
||||
-DSYSCONFDIR=\"$(sysconfdir)\" \
|
||||
-DG_LOG_DOMAIN=\"libgnomevfs\" \
|
||||
+ -I/usr/kerberos/include \
|
||||
$(NULL)
|
||||
|
||||
libgnomevfs_headers_to_scan_for_enums = \
|
||||
--- gnome-vfs-2.5.5/modules/vfolder/vfolder-common.c.vfolder-hacks 2003-04-24 11:46:24.000000000 -0400
|
||||
+++ gnome-vfs-2.5.5/modules/vfolder/vfolder-common.c 2004-01-29 18:44:53.000000000 -0500
|
||||
@@ -61,7 +61,8 @@
|
||||
entry->weight = weight;
|
||||
|
||||
entry->dirty = TRUE;
|
||||
-
|
||||
+ entry->not_shown = FALSE;
|
||||
+
|
||||
/*
|
||||
* Lame-O special case .directory handling, as we don't want them
|
||||
* showing up for all-applications:///.
|
||||
@@ -201,7 +202,7 @@
|
||||
entry_reload_if_needed (Entry *entry)
|
||||
{
|
||||
gboolean changed = FALSE;
|
||||
- gchar *keywords, *deprecates;
|
||||
+ gchar *keywords, *deprecates, *onlyshowin;
|
||||
int i;
|
||||
|
||||
if (!entry->dirty)
|
||||
@@ -211,8 +212,17 @@
|
||||
"Categories",
|
||||
&keywords,
|
||||
"Deprecates",
|
||||
- &deprecates);
|
||||
-
|
||||
+ &deprecates,
|
||||
+ "OnlyShowIn",
|
||||
+ &onlyshowin);
|
||||
+
|
||||
+#if 0
|
||||
+ g_printerr ("Read cats=%s onlyshowin=%s from entry %s\n",
|
||||
+ keywords ? keywords : "none",
|
||||
+ onlyshowin ? onlyshowin : "none",
|
||||
+ entry->filename);
|
||||
+#endif
|
||||
+
|
||||
/*
|
||||
* Clear keywords from file, leaving only ones added from
|
||||
* the directory.
|
||||
@@ -269,8 +279,28 @@
|
||||
g_strfreev (parsed);
|
||||
}
|
||||
|
||||
+ if (onlyshowin) {
|
||||
+ char **parsed = g_strsplit (onlyshowin, ";", -1);
|
||||
+
|
||||
+ /* If OnlyShowIn exists, then the default is
|
||||
+ * that we don't show the entry, unless the
|
||||
+ * value includes "GNOME"
|
||||
+ */
|
||||
+ entry->not_shown = TRUE;
|
||||
+
|
||||
+ for (i = 0; parsed[i] != NULL; i++) {
|
||||
+ if (strcmp (parsed[i], "GNOME") == 0)
|
||||
+ entry->not_shown = FALSE;
|
||||
+ }
|
||||
+
|
||||
+ /* FIXME do we need to emit some kind of notification here? */
|
||||
+
|
||||
+ g_strfreev (parsed);
|
||||
+ }
|
||||
+
|
||||
g_free (keywords);
|
||||
g_free (deprecates);
|
||||
+ g_free (onlyshowin);
|
||||
|
||||
entry->dirty = FALSE;
|
||||
}
|
||||
@@ -380,7 +410,9 @@
|
||||
const gchar *key1,
|
||||
gchar **result1,
|
||||
const gchar *key2,
|
||||
- gchar **result2)
|
||||
+ gchar **result2,
|
||||
+ const gchar *key3,
|
||||
+ gchar **result3)
|
||||
{
|
||||
GnomeVFSHandle *handle;
|
||||
GnomeVFSFileSize readlen;
|
||||
@@ -389,7 +421,9 @@
|
||||
|
||||
*result1 = NULL;
|
||||
if (key2)
|
||||
- *result2 = NULL;
|
||||
+ *result2 = NULL;
|
||||
+ if (key3)
|
||||
+ *result3 = NULL;
|
||||
|
||||
if (gnome_vfs_open (&handle,
|
||||
entry_get_filename (entry),
|
||||
@@ -416,6 +450,9 @@
|
||||
if (key2)
|
||||
entry_key_val_from_string (fullbuf->str, key2, result2);
|
||||
|
||||
+ if (key3)
|
||||
+ entry_key_val_from_string (fullbuf->str, key3, result3);
|
||||
+
|
||||
g_string_free (fullbuf, TRUE);
|
||||
}
|
||||
|
||||
@@ -458,7 +495,7 @@
|
||||
folder->refcnt = 1;
|
||||
|
||||
folder->dirty = TRUE;
|
||||
-
|
||||
+
|
||||
return folder;
|
||||
}
|
||||
|
||||
@@ -832,6 +869,10 @@
|
||||
{
|
||||
Query *query = folder_get_query (folder);
|
||||
|
||||
+#if 0
|
||||
+ g_printerr ("reading one extended entry %s\n", file_uri ? file_uri : "null");
|
||||
+#endif
|
||||
+
|
||||
if (is_excluded (folder, file_uri, file_info->name))
|
||||
return FALSE;
|
||||
|
||||
@@ -897,6 +938,13 @@
|
||||
result = gnome_vfs_directory_open (&handle,
|
||||
extend_uri,
|
||||
GNOME_VFS_FILE_INFO_DEFAULT);
|
||||
+
|
||||
+#if 0
|
||||
+ g_printerr ("reading extended entries from %s result = %s\n"<
|
||||
+ extend_uri ? extend_uri : "null",
|
||||
+ result == GNOME_VFS_OK ? "ok" : "failed");
|
||||
+#endif
|
||||
+
|
||||
if (result != GNOME_VFS_OK)
|
||||
return FALSE;
|
||||
|
||||
@@ -1038,6 +1086,11 @@
|
||||
{
|
||||
gboolean changed = FALSE;
|
||||
|
||||
+#if 0
|
||||
+ g_printerr ("folder maybe reload dirty = %d loading = %d\n",
|
||||
+ folder->dirty, folder->loading);
|
||||
+#endif
|
||||
+
|
||||
if (!folder->dirty || folder->loading)
|
||||
return;
|
||||
|
||||
@@ -1066,6 +1119,11 @@
|
||||
folder_get_extend_uri (folder),
|
||||
folder_extend_monitor_cb,
|
||||
folder);
|
||||
+ } else {
|
||||
+#if 0
|
||||
+ g_printerr ("folder %s has no extend uri, not reading\n",
|
||||
+ folder->name);
|
||||
+#endif
|
||||
}
|
||||
|
||||
if (folder_get_query (folder))
|
||||
@@ -1123,6 +1181,12 @@
|
||||
void
|
||||
folder_set_extend_uri (Folder *folder, const gchar *uri)
|
||||
{
|
||||
+#if 0
|
||||
+ g_printerr ("setting extend URI of %s to %s\n",
|
||||
+ folder->name,
|
||||
+ uri ? uri : "null");
|
||||
+#endif
|
||||
+
|
||||
g_free (folder->extend_uri);
|
||||
folder->extend_uri = g_strdup (uri);
|
||||
|
||||
@@ -1262,6 +1326,9 @@
|
||||
if (query && !query_try_match (query, folder, entry))
|
||||
continue;
|
||||
|
||||
+ if (entry->not_shown)
|
||||
+ continue;
|
||||
+
|
||||
g_hash_table_insert (
|
||||
name_hash,
|
||||
(gchar *) entry_get_displayname (entry),
|
||||
@@ -1276,6 +1343,8 @@
|
||||
"SortOrder",
|
||||
&sortorder,
|
||||
NULL,
|
||||
+ NULL,
|
||||
+ NULL,
|
||||
NULL);
|
||||
if (sortorder) {
|
||||
list = child_list_prepend_sorted (sortorder,
|
||||
@@ -1527,6 +1596,9 @@
|
||||
if (entry_is_allocated (entry))
|
||||
continue;
|
||||
|
||||
+ if (entry->not_shown)
|
||||
+ continue;
|
||||
+
|
||||
if (query && !query_try_match (query, folder, entry))
|
||||
continue;
|
||||
|
||||
@@ -1601,9 +1673,12 @@
|
||||
{
|
||||
GSList *li;
|
||||
|
||||
+ if (efile->not_shown)
|
||||
+ return FALSE;
|
||||
+
|
||||
if (query == NULL)
|
||||
return TRUE;
|
||||
-
|
||||
+
|
||||
switch (query->type) {
|
||||
case QUERY_OR:
|
||||
for (li = query->val.queries; li != NULL; li = li->next) {
|
||||
--- gnome-vfs-2.5.5/modules/vfolder/vfolder-common.h.vfolder-hacks 2002-10-25 01:54:43.000000000 -0400
|
||||
+++ gnome-vfs-2.5.5/modules/vfolder/vfolder-common.h 2004-01-29 18:44:53.000000000 -0500
|
||||
@@ -82,6 +82,7 @@
|
||||
|
||||
guint dirty : 1;
|
||||
guint user_private : 1;
|
||||
+ guint not_shown : 1; /* OnlyShowIn=SomeOtherDesktop */
|
||||
} Entry;
|
||||
|
||||
Entry *entry_new (VFolderInfo *info,
|
||||
@@ -120,7 +121,9 @@
|
||||
const gchar *key1,
|
||||
gchar **value1,
|
||||
const gchar *key2,
|
||||
- gchar **value2);
|
||||
+ gchar **value2,
|
||||
+ const gchar *key3,
|
||||
+ gchar **value3);
|
||||
|
||||
void entry_dump (Entry *entry, int indent);
|
||||
|
||||
--- gnome-vfs-2.5.5/modules/vfolder/vfolder-info.c.vfolder-hacks 2003-10-31 06:17:59.000000000 -0500
|
||||
+++ gnome-vfs-2.5.5/modules/vfolder/vfolder-info.c 2004-01-29 18:52:06.000000000 -0500
|
||||
@@ -193,12 +193,15 @@
|
||||
folder_get_name (folder) /* content */);
|
||||
|
||||
extend_uri = folder_get_extend_uri (folder);
|
||||
+#if 0
|
||||
+ /* this would confuse KDE, just use hardcoded value. */
|
||||
if (extend_uri) {
|
||||
xmlNewChild (folder_node /* parent */,
|
||||
NULL /* ns */,
|
||||
folder->is_link ? "ParentLink" : "Parent",
|
||||
extend_uri /* content */);
|
||||
}
|
||||
+#endif
|
||||
|
||||
if (folder->user_private) {
|
||||
const gchar *desktop_file;
|
||||
@@ -274,12 +277,17 @@
|
||||
NULL /* content */);
|
||||
doc->xmlRootNode = topnode;
|
||||
|
||||
+#if 0
|
||||
+ /* Never write the WriteDir field, it will
|
||||
+ * break KDE menus. Just use the hardcoded one.
|
||||
+ */
|
||||
if (info->write_dir != NULL) {
|
||||
xmlNewChild (topnode /* parent */,
|
||||
NULL /* ns */,
|
||||
"WriteDir" /* name */,
|
||||
info->write_dir /* content */);
|
||||
}
|
||||
+#endif
|
||||
|
||||
/* Deprecated */
|
||||
if (info->desktop_dir != NULL) {
|
||||
@@ -539,8 +547,10 @@
|
||||
gchar *esc_parent;
|
||||
|
||||
esc_parent = vfolder_escape_home (parent);
|
||||
- folder_set_extend_uri (folder, esc_parent);
|
||||
- folder->is_link = FALSE;
|
||||
+ if (*esc_parent != '\0') {
|
||||
+ folder_set_extend_uri (folder, esc_parent);
|
||||
+ folder->is_link = FALSE;
|
||||
+ }
|
||||
|
||||
xmlFree (parent);
|
||||
g_free (esc_parent);
|
||||
@@ -553,8 +563,10 @@
|
||||
gchar *esc_parent;
|
||||
|
||||
esc_parent = vfolder_escape_home (parent);
|
||||
- folder_set_extend_uri (folder, esc_parent);
|
||||
- folder->is_link = TRUE;
|
||||
+ if (*esc_parent != '\0') {
|
||||
+ folder_set_extend_uri (folder, esc_parent);
|
||||
+ folder->is_link = TRUE;
|
||||
+ }
|
||||
|
||||
xmlFree (parent);
|
||||
g_free (esc_parent);
|
||||
@@ -734,6 +746,53 @@
|
||||
g_free (itemdir);
|
||||
}
|
||||
|
||||
+static void
|
||||
+set_hardcoded_extend_uri_recursive (Folder *parent,
|
||||
+ const char *parent_uri)
|
||||
+{
|
||||
+ GSList *subfolders;
|
||||
+ GSList *tmp;
|
||||
+
|
||||
+ /* we set the extend URI unconditionally,
|
||||
+ * ignoring anything in the file
|
||||
+ */
|
||||
+ folder_set_extend_uri (parent, parent_uri);
|
||||
+
|
||||
+ subfolders = (GSList*) folder_list_subfolders (parent);
|
||||
+ tmp = subfolders;
|
||||
+ while (tmp != NULL) {
|
||||
+ Folder *sub = tmp->data;
|
||||
+ char *child_uri;
|
||||
+
|
||||
+ child_uri = g_strconcat (parent_uri, folder_get_name (sub),
|
||||
+ "/", NULL);
|
||||
+
|
||||
+ set_hardcoded_extend_uri_recursive (sub, child_uri);
|
||||
+
|
||||
+ g_free (child_uri);
|
||||
+
|
||||
+ tmp = tmp->next;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+static void
|
||||
+set_hardcoded_extend_uri (VFolderInfo *info)
|
||||
+{
|
||||
+ gchar *all_user_scheme;
|
||||
+
|
||||
+ /*
|
||||
+ * Set the extend uri for the root folder to the -all-users version of
|
||||
+ * the scheme, in case the user doesn't have a private .vfolder-info
|
||||
+ * file yet.
|
||||
+ */
|
||||
+ if (!g_str_has_suffix (info->scheme,
|
||||
+ "-all-users")) {
|
||||
+ all_user_scheme = g_strconcat (info->scheme, "-all-users:///", NULL);
|
||||
+ set_hardcoded_extend_uri_recursive (info->root, all_user_scheme);
|
||||
+ g_free (all_user_scheme);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static gboolean
|
||||
read_vfolder_from_file (VFolderInfo *info,
|
||||
const gchar *filename,
|
||||
@@ -829,6 +888,7 @@
|
||||
folder_unref (info->root);
|
||||
|
||||
info->root = folder;
|
||||
+ set_hardcoded_extend_uri (info);
|
||||
}
|
||||
}
|
||||
else if (g_ascii_strcasecmp (node->name, "ReadOnly") == 0) {
|
||||
@@ -1723,23 +1783,45 @@
|
||||
GnomeVFSURI *file_uri;
|
||||
gboolean exists;
|
||||
|
||||
- /*
|
||||
- * FIXME: load from gconf
|
||||
+ /* Here we're finding the primary XML file
|
||||
+ * that this URI will write changes to.
|
||||
+ * It's the .menu file for -all-users,
|
||||
+ * and the ~/.gnome2/vfolders/scheme.vfolder-info
|
||||
+ * file otherwise.
|
||||
*/
|
||||
+
|
||||
+ if (g_str_has_suffix (info->scheme,
|
||||
+ "-all-users")) {
|
||||
+ /* The all-users scheme uses the
|
||||
+ * .menu files
|
||||
+ */
|
||||
+ const char *suffix;
|
||||
+ char *single_scheme;
|
||||
+
|
||||
+ suffix = g_strrstr (info->scheme, "-all-users");
|
||||
+ g_assert (suffix != NULL);
|
||||
+ single_scheme = g_strndup (info->scheme,
|
||||
+ suffix - info->scheme);
|
||||
+
|
||||
+ info->filename = g_strconcat (SYSCONFDIR,
|
||||
+ "/X11/desktop-menus/",
|
||||
+ single_scheme,
|
||||
+ ".menu",
|
||||
+ NULL);
|
||||
+ g_free (single_scheme);
|
||||
|
||||
- /*
|
||||
- * 1st: Try mandatory system-global file located at
|
||||
- * /etc/gnome-vfs-2.0/vfolders/scheme.vfolder-info. Writability will
|
||||
- * depend on permissions of this file.
|
||||
- */
|
||||
- info->filename = g_strconcat (SYSCONFDIR,
|
||||
- "/gnome-vfs-2.0/vfolders/",
|
||||
- scheme, ".vfolder-info",
|
||||
- NULL);
|
||||
- file_uri = gnome_vfs_uri_new (info->filename);
|
||||
+ file_uri = gnome_vfs_uri_new (info->filename);
|
||||
+
|
||||
+ exists = gnome_vfs_uri_exists (file_uri);
|
||||
+ gnome_vfs_uri_unref (file_uri);
|
||||
|
||||
- exists = gnome_vfs_uri_exists (file_uri);
|
||||
- gnome_vfs_uri_unref (file_uri);
|
||||
+#if 0
|
||||
+ g_printerr ("all-users filename %s exists = %d\n",
|
||||
+ info->filename, exists);
|
||||
+#endif
|
||||
+ } else {
|
||||
+ exists = FALSE;
|
||||
+ }
|
||||
|
||||
if (!exists) {
|
||||
/*
|
||||
@@ -1751,37 +1833,6 @@
|
||||
scheme, ".vfolder-info",
|
||||
NULL);
|
||||
}
|
||||
-
|
||||
- /*
|
||||
- * Special case for applications-all-users where we want to add any
|
||||
- * paths specified in $GNOME2_PATH, for people installing in strange
|
||||
- * places.
|
||||
- */
|
||||
- if (!strcmp (scheme, "applications-all-users")) {
|
||||
- int i;
|
||||
- const char *path;
|
||||
- char *dir, **ppath;
|
||||
- ItemDir *id;
|
||||
- int weight = 800;
|
||||
-
|
||||
- path = g_getenv ("GNOME2_PATH");
|
||||
- if (path) {
|
||||
- ppath = g_strsplit (path, ":", -1);
|
||||
-
|
||||
- for (i = 0; ppath[i] != NULL; i++) {
|
||||
- dir = g_build_filename (ppath[i],
|
||||
- "/share/applications/",
|
||||
- NULL);
|
||||
- id = itemdir_new (info,
|
||||
- dir,
|
||||
- ITEM_DIR,
|
||||
- weight--);
|
||||
- g_free (dir);
|
||||
- }
|
||||
-
|
||||
- g_strfreev (ppath);
|
||||
- }
|
||||
- }
|
||||
}
|
||||
|
||||
static gboolean
|
||||
@@ -1811,25 +1862,16 @@
|
||||
static gboolean
|
||||
vfolder_info_init (VFolderInfo *info)
|
||||
{
|
||||
- gchar *all_user_scheme;
|
||||
-
|
||||
info->loading = TRUE;
|
||||
info->entries_ht = g_hash_table_new (g_str_case_hash, g_str_case_equal);
|
||||
info->root = folder_new (info, "Root", TRUE);
|
||||
|
||||
+ set_hardcoded_extend_uri (info);
|
||||
+
|
||||
/*
|
||||
- * Set the extend uri for the root folder to the -all-users version of
|
||||
- * the scheme, in case the user doesn't have a private .vfolder-info
|
||||
- * file yet.
|
||||
- */
|
||||
- all_user_scheme = g_strconcat (info->scheme, "-all-users:///", NULL);
|
||||
- folder_set_extend_uri (info->root, all_user_scheme);
|
||||
- g_free (all_user_scheme);
|
||||
-
|
||||
- /*
|
||||
- * Set the default writedir, in case there is no .vfolder-info for this
|
||||
- * scheme yet. Otherwise this will be overwritten when we read our
|
||||
- * source.
|
||||
+ * Set the default writedir, in case there is no .vfolder-info
|
||||
+ * for this scheme yet. Otherwise this will be overwritten
|
||||
+ * when we read our source.
|
||||
*/
|
||||
info->write_dir = g_strconcat (g_get_home_dir (),
|
||||
"/" DOT_GNOME "/vfolders/",
|
||||
@@ -1839,29 +1881,6 @@
|
||||
/* Figure out which .vfolder-info to read */
|
||||
vfolder_info_find_filenames (info);
|
||||
|
||||
- if (g_getenv ("GNOME_VFS_VFOLDER_INFODIR")) {
|
||||
- gchar *filename = g_strconcat (info->scheme,
|
||||
- ".vfolder-info",
|
||||
- NULL);
|
||||
-
|
||||
- g_free (info->filename);
|
||||
- info->filename =
|
||||
- vfolder_build_uri (
|
||||
- g_getenv ("GNOME_VFS_VFOLDER_INFODIR"),
|
||||
- filename,
|
||||
- NULL);
|
||||
- g_free (filename);
|
||||
- }
|
||||
-
|
||||
- if (g_getenv ("GNOME_VFS_VFOLDER_WRITEDIR")) {
|
||||
- g_free (info->write_dir);
|
||||
- info->write_dir =
|
||||
- vfolder_build_uri (
|
||||
- g_getenv ("GNOME_VFS_VFOLDER_WRITEDIR"),
|
||||
- info->scheme,
|
||||
- NULL);
|
||||
- }
|
||||
-
|
||||
info->filename_monitor =
|
||||
vfolder_monitor_file_new (info->filename,
|
||||
filename_monitor_cb,
|
||||
--- gnome-vfs-2.5.5/modules/vfolder/vfolder-util.c.vfolder-hacks 2002-10-10 00:46:29.000000000 -0400
|
||||
+++ gnome-vfs-2.5.5/modules/vfolder/vfolder-util.c 2004-01-29 18:44:53.000000000 -0500
|
||||
@@ -207,6 +207,7 @@
|
||||
{
|
||||
GnomeVFSResult result;
|
||||
VFolderMonitor *monitor;
|
||||
+#if 0
|
||||
GnomeVFSFileInfo *info;
|
||||
|
||||
/* Check the file exists so we don't get a bogus DELETED event */
|
||||
@@ -218,7 +219,8 @@
|
||||
|
||||
if (result != GNOME_VFS_OK)
|
||||
return NULL;
|
||||
-
|
||||
+#endif
|
||||
+
|
||||
monitor = g_new0 (VFolderMonitor, 1);
|
||||
monitor->callback = callback;
|
||||
monitor->user_data = user_data;
|
Loading…
Reference in new issue