1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
#!/bin/sh
# Fetch the GtkPlacesView files but rename the symbols to avoid symbol clashes
# when using the file chooser inside nautilus i.e. when activating the "move to"
# action.
# Also remove/add the neccesary bits to make it work inside nautilus
URL=https://git.gnome.org/browse/gtk+/plain/gtk/
URLUI=https://git.gnome.org/browse/gtk+/plain/gtk/ui/
# Since comments are not allowed inside the sed line, this is what it will do
# by order:
# type substitution
# remove marshalers
# add external localization library after the always there config.h
# and remove the gtk internal P_ and I_ localization, we don't actually
# want localization of this in nautilus
# include gtk.h library after the always there config.h
# and remove all the other types that get included by the general gtk.h
# remove the error when including gtk.h
# load nautilus resources, not gtk resources
update_file () {
_source="$1"
_dest="$2"
curl "${_source}" | sed \
-e 's/gtkplacesview/nautilusgtkplacesview/g' \
-e 's/gtk_places_view/nautilus_gtk_places_view/g' \
-e 's/GtkPlacesView/NautilusGtkPlacesView/g' \
-e 's/GTK_PLACES_VIEW/NAUTILUS_GTK_PLACES_VIEW/g' \
-e 's/GTK_TYPE_PLACES_VIEW/NAUTILUS_TYPE_GTK_PLACES_VIEW/g' \
-e 's/GTK_IS_PLACES_VIEW/NAUTILUS_IS_GTK_PLACES_VIEW/g' \
-e 's/_gtk_marshal_VOID__STRING_STRING/NULL/g' \
-e '/gtkmarshalers.h/d' \
-e '/"config.h"/a #include <glib\/gi18n.h>' \
-e "s/P_(\(.*\))/\1/" \
-e "s/I_(\(.*\))/\1/" \
-e '/"config.h"/a #include <gtk\/gtk.h>' \
-e '/gtktypebuiltins.h/d' \
-e '/gtkplacessidebar.h/d' \
-e '/gtkintl.h/d' \
-e '/gtkbox.h/d' \
-e '/#error/d' \
-e 's/gtk\/libgtk/gnome\/nautilus\/gtk/g' \
> "${_dest}"
}
update_file "${URL}/gtkplacesview.c" "nautilusgtkplacesview.c"
update_file "${URL}/gtkplacesviewprivate.h" "nautilusgtkplacesviewprivate.h"
update_file "${URLUI}/gtkplacesview.ui" "nautilusgtkplacesview.ui"
# Since comments are not allowed inside the sed line, this is what it will do
# by order:
# type substitution
# use the correct prefixes for type definition
# add external localization library after the always there config.h
# and remove the gtk internal P_ and I_ localization, we don't actually
# want localization of this in nautilus
# include gtk.h library after the always there config.h
# and remove all the other types that get included by the general gtk.h
# remove the error when including gtk.h
# load nautilus resources, not gtk resources
update_file () {
_source="$1"
_dest="$2"
curl "${_source}" | sed \
-e 's/gtkplacesviewrow/nautilusgtkplacesviewrow/g' \
-e 's/gtk_places_view_row/nautilus_gtk_places_view_row/g' \
-e 's/GtkPlacesViewRow/NautilusGtkPlacesViewRow/g' \
-e 's/GTK_PLACES_VIEW_ROW/NAUTILUS_GTK_PLACES_VIEW_ROW/g' \
-e 's/GTK_TYPE_PLACES_VIEW_ROW/NAUTILUS_TYPE_GTK_PLACES_VIEW_ROW/g' \
-e 's/GTK_IS_PLACES_VIEW_ROW/NAUTILUS_IS_GTK_PLACES_VIEW_ROW/g' \
-e 's/G_DECLARE_FINAL_TYPE (NautilusGtkPlacesViewRow, nautilus_gtk_places_view_row, GTK, PLACES_VIEW_ROW, GtkListBoxRow/ G_DECLARE_FINAL_TYPE (NautilusGtkPlacesViewRow, nautilus_gtk_places_view_row, NAUTILUS, GTK_PLACES_VIEW_ROW, GtkListBoxRow/g' \
-e '/"config.h"/a #include <glib\/gi18n.h>' \
-e "s/P_(\(.*\))/\1/" \
-e "s/I_(\(.*\))/\1/" \
-e '/"config.h"/a #include <gtk\/gtk.h>' \
-e '/gtksizegroup.h/d' \
-e '/gtkwidget.h/d' \
-e '/gtklistbox.h/d' \
-e '/#error /d' \
-e 's/gtk\/libgtk/gnome\/nautilus\/gtk/g' \
> "${_dest}"
}
update_file "${URL}/gtkplacesviewrow.c" "nautilusgtkplacesviewrow.c"
update_file "${URL}/gtkplacesviewrowprivate.h" "nautilusgtkplacesviewrowprivate.h"
update_file "${URLUI}/gtkplacesviewrow.ui" "nautilusgtkplacesviewrow.ui"
|