Commit 96d94f97 authored by Philip Withnall's avatar Philip Withnall Committed by Philip Withnall

Cleanups to fix a few warnings when building with more gcc warning flags

2009-01-04  Philip Withnall  <philip@tecnocode.co.uk>

	* data/mime-type-include.sh:
	* lib/totem-scrsaver.c:
	* src/backend/bacon-resize.c:
	* src/backend/bvw-test.c (test_bvw_set_mrl):
	* src/backend/video-utils.c (totem_time_to_string):
	* src/plugins/gromit/totem-gromit.c
	(totem_gromit_ensure_config_file):
	* src/plugins/media-player-keys/totem-media-player-keys.c:
	* src/plugins/ontop/totem-ontop.c:
	* src/plugins/properties/bacon-video-widget-properties.c:
	* src/plugins/properties/totem-movie-properties.c:
	* src/plugins/screensaver/totem-screensaver.c:
	* src/plugins/screenshot/totem-gallery-progress.c:
	* src/plugins/screenshot/totem-gallery.c:
	* src/plugins/screenshot/totem-screenshot-plugin.c:
	* src/plugins/screenshot/totem-screenshot.c:
	* src/plugins/sidebar-test/totem-sidebar-test.c:
	* src/plugins/skipto/totem-skipto-plugin.c:
	* src/plugins/skipto/totem-skipto.c:
	* src/plugins/thumbnail/totem-thumbnail.c:
	* src/plugins/totem-module.c:
	* src/plugins/totem-plugin.h:
	* src/plugins/totem-plugins-engine.c (garbage_collect_cb):
	* src/plugins/totem-python-module.c
	(totem_python_module_init_python), (totem_python_garbage_collect),
	(totem_python_shutdown):
	* src/plugins/tracker/totem-tracker-widget.c:
	* src/plugins/tracker/totem-tracker.c:
	* src/totem-fullscreen.c:
	* src/totem-menu.c:
	* src/totem-open-location.c:
	* src/totem-options.c (option_version_cb):
	* src/totem-playlist.c:
	* src/totem-preferences.c (tpw_color_reset_clicked_cb):
	* src/totem-properties-view.c:
	* src/totem-resources.c:
	* src/totem-session.c:
	* src/totem-statusbar.c:
	* src/totem-subtitle-encoding.c:
	* src/totem-time-label.c:
	* src/totem-uri.c (totem_uri_get_subtitle_for_uri):
	* src/totem-video-indexer.c:
	* src/totem.c (main_window_destroy_cb): Cleanups to fix a few
	warnings when building with more gcc warning flags than normal.
	(Closes: #565874)


svn path=/trunk/; revision=5895
parent db1ddcde
2009-01-04 Philip Withnall <philip@tecnocode.co.uk>
* data/mime-type-include.sh:
* lib/totem-scrsaver.c:
* src/backend/bacon-resize.c:
* src/backend/bvw-test.c (test_bvw_set_mrl):
* src/backend/video-utils.c (totem_time_to_string):
* src/plugins/gromit/totem-gromit.c
(totem_gromit_ensure_config_file):
* src/plugins/media-player-keys/totem-media-player-keys.c:
* src/plugins/ontop/totem-ontop.c:
* src/plugins/properties/bacon-video-widget-properties.c:
* src/plugins/properties/totem-movie-properties.c:
* src/plugins/screensaver/totem-screensaver.c:
* src/plugins/screenshot/totem-gallery-progress.c:
* src/plugins/screenshot/totem-gallery.c:
* src/plugins/screenshot/totem-screenshot-plugin.c:
* src/plugins/screenshot/totem-screenshot.c:
* src/plugins/sidebar-test/totem-sidebar-test.c:
* src/plugins/skipto/totem-skipto-plugin.c:
* src/plugins/skipto/totem-skipto.c:
* src/plugins/thumbnail/totem-thumbnail.c:
* src/plugins/totem-module.c:
* src/plugins/totem-plugin.h:
* src/plugins/totem-plugins-engine.c (garbage_collect_cb):
* src/plugins/totem-python-module.c
(totem_python_module_init_python), (totem_python_garbage_collect),
(totem_python_shutdown):
* src/plugins/tracker/totem-tracker-widget.c:
* src/plugins/tracker/totem-tracker.c:
* src/totem-fullscreen.c:
* src/totem-menu.c:
* src/totem-open-location.c:
* src/totem-options.c (option_version_cb):
* src/totem-playlist.c:
* src/totem-preferences.c (tpw_color_reset_clicked_cb):
* src/totem-properties-view.c:
* src/totem-resources.c:
* src/totem-session.c:
* src/totem-statusbar.c:
* src/totem-subtitle-encoding.c:
* src/totem-time-label.c:
* src/totem-uri.c (totem_uri_get_subtitle_for_uri):
* src/totem-video-indexer.c:
* src/totem.c (main_window_destroy_cb): Cleanups to fix a few
warnings when building with more gcc warning flags than normal.
(Closes: #565874)
2009-01-03 Philip Withnall <philip@tecnocode.co.uk>
* src/plugins/opensubtitles/opensubtitles.ui: UI and string cleanups
......
......@@ -12,7 +12,7 @@ if [ x"$1" = "x--nautilus" ] ; then
echo "/* generated with mime-types-include.sh in the totem module, don't edit or "
echo " commit in the nautilus module without filing a bug against totem */"
echo "static char *audio_mime_types[] = {"
echo "static const char *audio_mime_types[] = {"
for i in $MIMETYPES ; do
echo_mime;
done
......@@ -25,7 +25,7 @@ fi
MIMETYPES=`grep -v ^# $1 | grep -v x-content/`
echo "/* generated with mime-types-include.sh, don't edit */"
echo "char *mime_types[] = {"
echo "const char *mime_types[] = {"
for i in $MIMETYPES ; do
echo_mime;
......@@ -35,7 +35,7 @@ echo "};"
get_audio_mimetypes $1;
echo "char *audio_mime_types[] = {"
echo "const char *audio_mime_types[] = {"
for i in $MIMETYPES ; do
echo_mime;
done
......@@ -44,7 +44,7 @@ echo "};"
get_video_mimetypes $1;
echo "char *video_mime_types[] = {"
echo "const char *video_mime_types[] = {"
for i in $MIMETYPES ; do
echo_mime;
done
......
......@@ -50,8 +50,6 @@
#define XSCREENSAVER_MIN_TIMEOUT 60
static GObjectClass *parent_class = NULL;
static void totem_scrsaver_class_init (TotemScrsaverClass *class);
static void totem_scrsaver_init (TotemScrsaver *parser);
static void totem_scrsaver_finalize (GObject *object);
......
......@@ -33,8 +33,6 @@
#include <X11/extensions/Xrender.h>
#endif
static void bacon_resize_class_init (BaconResizeClass *klass);
static void bacon_resize_init (BaconResize *ggo);
static void bacon_resize_set_property (GObject *object,
guint property_id,
const GValue *value,
......
......@@ -13,7 +13,7 @@ static GtkWidget *bvw;
static char *mrl, *argument;
static void
test_bvw_set_mrl (char *path)
test_bvw_set_mrl (const char *path)
{
mrl = g_strdup (path);
bacon_video_widget_open (BACON_VIDEO_WIDGET (bvw), mrl, NULL);
......
......@@ -217,17 +217,15 @@ totem_time_to_string (gint64 msecs)
* of "%d" if your locale uses localized digits.
*/
return g_strdup_printf (C_("long time format", "%d:%02d:%02d"), hour, min, sec);
} else {
/* minutes:seconds */
/* Translators: This is a time format, like "5:02" for 5
* minutes and 2 seconds. You may change ":" to the
* separator that your locale uses or use "%Id" instead of
* "%d" if your locale uses localized digits.
*/
return g_strdup_printf (C_("short time format", "%d:%02d"), min, sec);
}
return NULL;
/* minutes:seconds */
/* Translators: This is a time format, like "5:02" for 5
* minutes and 2 seconds. You may change ":" to the
* separator that your locale uses or use "%Id" instead of
* "%d" if your locale uses localized digits.
*/
return g_strdup_printf (C_("short time format", "%d:%02d"), min, sec);
}
char *
......
......@@ -96,7 +96,6 @@ static const char *visibility_cmd[] = { NULL, "-v", NULL };
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_gromit_plugin_get_type (void) G_GNUC_CONST;
static void totem_gromit_plugin_init (TotemGromitPlugin *plugin);
static void totem_gromit_plugin_finalize (GObject *object);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......@@ -137,7 +136,7 @@ static void
totem_gromit_ensure_config_file (void)
{
char *path;
int fd;
GError *error = NULL;
path = g_build_filename (g_get_home_dir (), ".gromitrc", NULL);
if (g_file_test (path, G_FILE_TEST_EXISTS) != FALSE) {
......@@ -147,14 +146,11 @@ totem_gromit_ensure_config_file (void)
g_message ("%s doesn't exist", path);
fd = creat (path, 0755);
g_free (path);
if (fd < 0) {
return;
if (g_file_set_contents (path, DEFAULT_CONFIG, sizeof (DEFAULT_CONFIG), &error) == FALSE) {
g_warning ("Could not write default config file: %s.", error->message);
g_error_free (error);
}
write (fd, DEFAULT_CONFIG, sizeof (DEFAULT_CONFIG));
close (fd);
g_free (path);
}
static gboolean
......
......@@ -64,7 +64,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_media_player_keys_plugin_get_type (void) G_GNUC_CONST;
static void totem_media_player_keys_plugin_init (TotemMediaPlayerKeysPlugin *plugin);
static void totem_media_player_keys_plugin_finalize (GObject *object);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -66,7 +66,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_ontop_plugin_get_type (void) G_GNUC_CONST;
static void totem_ontop_plugin_init (TotemOntopPlugin *plugin);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -85,11 +85,6 @@ struct BaconVideoWidgetPropertiesPrivate
static GtkWidgetClass *parent_class = NULL;
static void bacon_video_widget_properties_class_init
(BaconVideoWidgetPropertiesClass *class);
static void bacon_video_widget_properties_init
(BaconVideoWidgetProperties *props);
G_DEFINE_TYPE(BaconVideoWidgetProperties, bacon_video_widget_properties, GTK_TYPE_VBOX)
static void
......
......@@ -61,7 +61,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_movie_properties_plugin_get_type (void) G_GNUC_CONST;
static void totem_movie_properties_plugin_init (TotemMoviePropertiesPlugin *plugin);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -66,7 +66,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_screensaver_plugin_get_type (void) G_GNUC_CONST;
static void totem_screensaver_plugin_init (TotemScreensaverPlugin *plugin);
static void totem_screensaver_plugin_finalize (GObject *object);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -36,7 +36,6 @@
#include "totem-gallery-progress.h"
static void totem_gallery_progress_init (TotemGalleryProgress *self);
static void totem_gallery_progress_finalize (GObject *object);
static void dialog_response_callback (GtkDialog *dialog, gint response_id, TotemGalleryProgress *self);
......
......@@ -35,7 +35,6 @@
#include "totem-gallery-progress.h"
#include "totem-screenshot-plugin.h"
static void totem_gallery_init (TotemGallery *self);
static void dialog_response_callback (GtkDialog *dialog, gint response_id, TotemGallery *self);
/* GtkBuilder callbacks */
......
......@@ -58,9 +58,6 @@ struct TotemScreenshotPluginPrivate {
GtkActionGroup *action_group;
};
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
static void totem_screenshot_plugin_init (TotemScreenshotPlugin *plugin);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -50,9 +50,6 @@ struct TotemScreenshotPrivate
char *temp_file;
};
static void totem_screenshot_class_init (TotemScreenshotClass *class);
static void totem_screenshot_init (TotemScreenshot *screenshot);
G_DEFINE_TYPE (TotemScreenshot, totem_screenshot, GTK_TYPE_DIALOG)
static void
......
......@@ -57,7 +57,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_sidebar_test_plugin_get_type (void) G_GNUC_CONST;
static void totem_sidebar_test_plugin_init (TotemSidebarTestPlugin *plugin);
static void totem_sidebar_test_plugin_finalize (GObject *object);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -49,7 +49,6 @@ struct TotemSkiptoPluginPrivate
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
static void totem_skipto_plugin_init (TotemSkiptoPlugin *plugin);
static void totem_skipto_plugin_finalize (GObject *object);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -42,8 +42,6 @@
#include "video-utils.h"
#include "bacon-video-widget.h"
static void totem_skipto_class_init (TotemSkiptoClass *class);
static void totem_skipto_init (TotemSkipto *ggo);
static void totem_skipto_dispose (GObject *object);
/* Callback functions for GtkBuilder */
......
......@@ -65,7 +65,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_thumbnail_plugin_get_type (void) G_GNUC_CONST;
static void totem_thumbnail_plugin_init (TotemThumbnailPlugin *plugin);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -53,9 +53,6 @@ struct _TotemModule
typedef GType (*TotemModuleRegisterFunc) (GTypeModule *);
static void totem_module_init (TotemModule *action);
static void totem_module_class_init (TotemModuleClass *class);
static GObjectClass *parent_class = NULL;
G_DEFINE_TYPE (TotemModule, totem_module, G_TYPE_TYPE_MODULE)
......
......@@ -159,7 +159,8 @@ register_totem_plugin (GTypeModule *module) \
NULL, /* class_data */ \
sizeof (PluginName), \
0, /* n_preallocs */ \
(GInstanceInitFunc) plugin_name##_init \
(GInstanceInitFunc) plugin_name##_init, \
NULL \
}; \
\
/* Initialise the i18n stuff */ \
......
......@@ -349,12 +349,17 @@ totem_plugins_engine_load_all (void)
}
}
#if 0
#ifdef ENABLE_PYTHON
static gboolean
garbage_collect_cb (gpointer data)
{
/* Commented out due to line 387 being commented out. More's commented out in totem-python-module.c. */
totem_plugins_engine_garbage_collect ();
return TRUE;
}
#endif
#endif
gboolean
totem_plugins_engine_init (TotemObject *totem)
......
......@@ -113,7 +113,7 @@ totem_python_module_init_python (void)
PyObject *sys_path;
struct sigaction old_sigint;
gint res;
char *argv[] = { "totem", NULL };
const char *argv[] = { "totem", NULL };
GList *paths;
if (Py_IsInitialized ()) {
......@@ -503,7 +503,7 @@ run_gc (gpointer data)
#endif
void
totem_python_garbage_collect ()
totem_python_garbage_collect (void)
{
#if 0
if (Py_IsInitialized() && idle_garbage_collect_id == 0) {
......@@ -528,7 +528,7 @@ finalise_collect_cb (gpointer data)
#endif
void
totem_python_shutdown ()
totem_python_shutdown (void)
{
#if 0
if (Py_IsInitialized ()) {
......
......@@ -74,8 +74,6 @@ enum {
PROP_TOTEM
};
static void totem_tracker_widget_class_init (TotemTrackerWidgetClass *klass);
static void totem_tracker_widget_init (TotemTrackerWidget *widget);
static void totem_tracker_widget_dispose (GObject *object);
static void totem_tracker_widget_set_property (GObject *object,
guint property_id,
......
......@@ -60,7 +60,6 @@ typedef struct
G_MODULE_EXPORT GType register_totem_plugin (GTypeModule *module);
GType totem_tracker_plugin_get_type (void) G_GNUC_CONST;
static void totem_tracker_plugin_init (TotemTrackerPlugin *plugin);
static gboolean impl_activate (TotemPlugin *plugin, TotemObject *totem, GError **error);
static void impl_deactivate (TotemPlugin *plugin, TotemObject *totem);
......
......@@ -39,8 +39,6 @@
#define FULLSCREEN_POPUP_TIMEOUT 5
static void totem_fullscreen_class_init (TotemFullscreenClass *class);
static void totem_fullscreen_init (TotemFullscreen *parser);
static void totem_fullscreen_dispose (GObject *object);
static void totem_fullscreen_finalize (GObject *object);
static gboolean totem_fullscreen_popup_hide (TotemFullscreen *fs);
......@@ -50,6 +48,7 @@ gboolean totem_fullscreen_vol_slider_pressed_cb (GtkWidget *widget, GdkEventButt
gboolean totem_fullscreen_vol_slider_released_cb (GtkWidget *widget, GdkEventButton *event, TotemFullscreen *fs);
gboolean totem_fullscreen_seek_slider_pressed_cb (GtkWidget *widget, GdkEventButton *event, TotemFullscreen *fs);
gboolean totem_fullscreen_seek_slider_released_cb (GtkWidget *widget, GdkEventButton *event, TotemFullscreen *fs);
gboolean totem_fullscreen_motion_notify (GtkWidget *widget, GdkEventMotion *event, TotemFullscreen *fs);
struct _TotemFullscreenPrivate {
BaconVideoWidget *bvw;
......
......@@ -1010,7 +1010,7 @@ play_action_callback (GtkAction *action, Totem *totem)
totem_action_play_pause (totem);
}
void
G_GNUC_NORETURN void
quit_action_callback (GtkAction *action, Totem *totem)
{
totem_action_exit (totem);
......
......@@ -40,8 +40,6 @@
#include "totem-open-location.h"
#include "totem-interface.h"
static void totem_open_location_class_init (TotemOpenLocationClass *class);
static void totem_open_location_init (TotemOpenLocation *open_location);
static void totem_open_location_dispose (GObject *object);
struct TotemOpenLocationPrivate
......
......@@ -33,7 +33,7 @@
TotemCmdLineOptions optionstate; /* Decoded command line options */
static gboolean
G_GNUC_NORETURN static gboolean
option_version_cb (const gchar *option_name,
const gchar *value,
gpointer data,
......@@ -42,7 +42,6 @@ option_version_cb (const gchar *option_name,
g_print ("%s %s\n", PACKAGE, VERSION);
exit (0);
return FALSE;
}
const GOptionEntry options[] = {
......@@ -98,7 +97,7 @@ totem_options_process_early (Totem *totem, const TotemCmdLineOptions* options)
options->debug, NULL);
}
static void
G_GNUC_NORETURN static void
totem_print_playing_cb (const gchar *msg, gpointer user_data)
{
if (strcmp (msg, SHOW_PLAYING_NO_TRACKS) != 0)
......
......@@ -160,9 +160,6 @@ static const GtkTargetEntry target_table[] = {
{ "_NETSCAPE_URL", 0, 1 }
};
static void totem_playlist_class_init (TotemPlaylistClass *class);
static void totem_playlist_init (TotemPlaylist *playlist);
static void init_treeview (GtkWidget *treeview, TotemPlaylist *playlist);
#define totem_playlist_unset_playing(x) totem_playlist_set_playing(x, TOTEM_PLAYLIST_STATUS_NONE)
......
......@@ -381,7 +381,7 @@ void
tpw_color_reset_clicked_cb (GtkButton *button, Totem *totem)
{
guint i;
char *scales[] = {
const char *scales[] = {
"tpw_bright_scale",
"tpw_contrast_scale",
"tpw_saturation_scale",
......
......@@ -43,8 +43,6 @@ struct TotemPropertiesViewPriv {
};
static GObjectClass *parent_class = NULL;
static void totem_properties_view_init (TotemPropertiesView *self);
static void totem_properties_view_class_init (TotemPropertiesViewClass *class);
static void totem_properties_view_finalize (GObject *object);
G_DEFINE_TYPE (TotemPropertiesView, totem_properties_view, GTK_TYPE_TABLE)
......
......@@ -79,7 +79,7 @@ set_resource_limits (const char *input)
setrlimit (RLIMIT_CPU, &limit);
}
static gpointer
G_GNUC_NORETURN static gpointer
time_monitor (gpointer data)
{
const char *app_name;
......
......@@ -96,7 +96,7 @@ totem_save_state_cb (EggSMClient *client,
g_free (uri);
}
static void
G_GNUC_NORETURN static void
totem_quit_cb (EggSMClient *client,
Totem *totem)
{
......
......@@ -38,8 +38,6 @@
#define NORMAL_CONTEXT "text"
#define BUFFERING_CONTEXT "buffering"
static void totem_statusbar_class_init (TotemStatusbarClass *class);
static void totem_statusbar_init (TotemStatusbar *statusbar);
static void totem_statusbar_dispose (GObject *object);
static void totem_statusbar_sync_description (TotemStatusbar *statusbar);
......
......@@ -146,7 +146,7 @@ typedef enum
typedef struct
{
int index;
char *charset;
const char *charset;
char *name;
} SubtitleEncoding;
......
......@@ -5,9 +5,6 @@
#include <glib/gi18n.h>
#include "video-utils.h"
static void totem_time_label_class_init (TotemTimeLabelClass *class);
static void totem_time_label_init (TotemTimeLabel *label);
struct _TotemTimeLabelPrivate {
gint64 time;
gint64 length;
......
......@@ -293,7 +293,8 @@ static char *
totem_uri_get_subtitle_for_uri (const char *uri)
{
char *subtitle, *subtitle_ext_upper;
guint len, i, suffix;
guint len, i;
gint suffix;
/* Find the filename suffix delimiter */
len = strlen (uri);
......
......@@ -92,7 +92,7 @@ totem_print_int (BaconVideoWidget *bvw, const char *key, BaconVideoWidgetMetadat
g_value_unset (&value);
}
static void
G_GNUC_NORETURN static void
on_got_metadata_event (BaconVideoWidget *bvw, gpointer data)
{
GValue value = { 0, };
......
......@@ -151,7 +151,7 @@ totem_action_error (const char *title, const char *reason, Totem *totem)
GTK_WINDOW (totem->win));
}
static void
G_GNUC_NORETURN static void
totem_action_error_and_exit (const char *title,
const char *reason, Totem *totem)
{
......@@ -216,7 +216,7 @@ totem_action_save_state (Totem *totem, const char *page_id)
g_free (contents);
}
static void
G_GNUC_NORETURN static void
totem_action_wait_force_exit (gpointer user_data)
{
g_usleep (10 * G_USEC_PER_SEC);
......@@ -310,12 +310,10 @@ totem_action_menu_popup (Totem *totem, guint button)
gtk_menu_shell_select_first (GTK_MENU_SHELL (menu), FALSE);
}
gboolean
G_GNUC_NORETURN gboolean
main_window_destroy_cb (GtkWidget *widget, GdkEvent *event, Totem *totem)
{
totem_action_exit (totem);
return FALSE;
}
static void
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment