]> git.pld-linux.org Git - packages/gnome-vfs2.git/blob - gnome-vfs2-onlyshowin.patch
- up to version 2.6.2
[packages/gnome-vfs2.git] / gnome-vfs2-onlyshowin.patch
1 diff -Nuard gnome-vfs-2.4.1.orig/modules/vfolder/vfolder-common.c gnome-vfs-2.4.1/modules/vfolder/vfolder-common.c
2 --- gnome-vfs-2.4.1.orig/modules/vfolder/vfolder-common.c       2003-09-27 17:42:52.000000000 +0200
3 +++ gnome-vfs-2.4.1/modules/vfolder/vfolder-common.c    2003-12-15 00:06:59.046969168 +0100
4 @@ -50,12 +50,40 @@
5            gushort      weight)
6  {
7         Entry *entry;
8 +       gchar *onlyshowin;
9  
10         entry = g_new0 (Entry, 1);
11 +       entry->filename = g_strdup (filename);
12 +
13 +       entry_quick_read_keys (entry, 
14 +                              "OnlyShowIn",
15 +                              &onlyshowin,
16 +                              NULL,
17 +                              NULL);
18 +
19 +       if (onlyshowin) {
20 +               char **parsed = g_strsplit (onlyshowin, ";", -1);
21 +               gboolean show = FALSE;
22 +               int i;
23 +               
24 +               for (i = 0; parsed[i] != NULL; i++) {
25 +                       if (!g_ascii_strcasecmp(parsed[i],"GNOME"))
26 +                               show=TRUE;
27 +               }
28 +               
29 +               g_free (onlyshowin);
30 +               g_strfreev (parsed);
31 +               
32 +               if (!show) {
33 +                       g_free (entry->filename);
34 +                       g_free (entry);
35 +                       return NULL;
36 +               }
37 +       }
38 +
39         entry->refcnt = 1;
40         entry->allocs = 0;
41         entry->info = info;
42 -       entry->filename = g_strdup (filename);
43         entry->displayname = g_strdup (displayname);
44         entry->user_private = user_private;
45         entry->weight = weight;
46 @@ -81,6 +109,8 @@
47  void 
48  entry_unref (Entry *entry)
49  {
50 +       if (entry == NULL) return;
51 +       
52         entry->refcnt--;
53  
54         if (entry->refcnt == 0) {
55 @@ -734,11 +764,10 @@
56                 }
57         }
58  
59 -       if (entry) {
60 +       if (entry)
61                 folder_add_entry (folder, entry);
62 -               entry_unref (entry);
63 -       }
64  
65 +       entry_unref (entry);
66         return entry != NULL;
67  }
68  
69 @@ -785,9 +814,12 @@
70                                    basename, 
71                                    TRUE,
72                                    1000 /*weight*/);
73 -               folder_add_entry (folder, entry);
74 +                                  
75 +               if (entry) {
76 +                       folder_add_entry (folder, entry);
77 +                       entry_unref (entry);
78 +               }
79  
80 -               entry_unref (entry);
81                 gnome_vfs_uri_unref (uri);
82                 g_free (basename);
83  
84 @@ -866,7 +898,7 @@
85                                    900   /*weight*/);
86  
87                 /* Include unless specifically excluded by query */
88 -               if (!query || query_try_match (query, folder, entry)) {
89 +               if (entry && (!query || query_try_match (query, folder, entry))) {
90                         D (g_print ("ADDING EXTENDED ENTRY: "
91                                     "%s, %s, #%d!\n",
92                                     folder_get_name (folder),
This page took 0.041031 seconds and 3 git commands to generate.