From 9a827ead86311933802bbd4c919b8cbd5de62a88 Mon Sep 17 00:00:00 2001 From: Marco Pesenti Gritti Date: Mon, 11 Aug 2008 23:53:28 +0000 Subject: Enable maximum warnings. A bunch of compile fixes. --- diff --git a/configure.ac b/configure.ac index 1c234d3..66c275c 100644 --- a/configure.ac +++ b/configure.ac @@ -10,6 +10,8 @@ AM_INIT_AUTOMAKE([1.9 foreign dist-bzip2 no-dist-gzip]) AC_DISABLE_STATIC AC_PROG_LIBTOOL +GNOME_COMPILE_WARNINGS(maximum) + AC_PATH_PROG([GLIB_GENMARSHAL], [glib-genmarshal]) AM_PATH_PYTHON diff --git a/m4/gnome-compiler-flags.m4 b/m4/gnome-compiler-flags.m4 new file mode 100644 index 0000000..b9db2fd --- /dev/null +++ b/m4/gnome-compiler-flags.m4 @@ -0,0 +1,141 @@ +dnl GNOME_COMPILE_WARNINGS +dnl Turn on many useful compiler warnings +dnl For now, only works on GCC +AC_DEFUN([GNOME_COMPILE_WARNINGS],[ + dnl ****************************** + dnl More compiler warnings + dnl ****************************** + + AC_ARG_ENABLE(compile-warnings, + AC_HELP_STRING([--enable-compile-warnings=@<:@no/minimum/yes/maximum/error@:>@], + [Turn on compiler warnings]),, + [enable_compile_warnings="m4_default([$1],[yes])"]) + + warnCFLAGS= + if test "x$GCC" != xyes; then + enable_compile_warnings=no + fi + + warning_flags= + realsave_CFLAGS="$CFLAGS" + + case "$enable_compile_warnings" in + no) + warning_flags= + ;; + minimum) + warning_flags="-Wall" + ;; + yes) + warning_flags="-Wall -Wmissing-prototypes" + ;; + maximum|error) + warning_flags="-Wall -Wmissing-prototypes -Wnested-externs -Wpointer-arith" + CFLAGS="$warning_flags $CFLAGS" + for option in -Wno-sign-compare; do + SAVE_CFLAGS="$CFLAGS" + CFLAGS="$CFLAGS $option" + AC_MSG_CHECKING([whether gcc understands $option]) + AC_TRY_COMPILE([], [], + has_option=yes, + has_option=no,) + CFLAGS="$SAVE_CFLAGS" + AC_MSG_RESULT($has_option) + if test $has_option = yes; then + warning_flags="$warning_flags $option" + fi + unset has_option + unset SAVE_CFLAGS + done + unset option + if test "$enable_compile_warnings" = "error" ; then + warning_flags="$warning_flags -Werror" + fi + ;; + *) + AC_MSG_ERROR(Unknown argument '$enable_compile_warnings' to --enable-compile-warnings) + ;; + esac + CFLAGS="$realsave_CFLAGS" + AC_MSG_CHECKING(what warning flags to pass to the C compiler) + AC_MSG_RESULT($warning_flags) + + AC_ARG_ENABLE(iso-c, + AC_HELP_STRING([--enable-iso-c], + [Try to warn if code is not ISO C ]),, + [enable_iso_c=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C compiler) + complCFLAGS= + if test "x$enable_iso_c" != "xno"; then + if test "x$GCC" = "xyes"; then + case " $CFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -ansi" ;; + esac + case " $CFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCFLAGS="$complCFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCFLAGS) + + WARN_CFLAGS="$warning_flags $complCFLAGS" + AC_SUBST(WARN_CFLAGS) +]) + +dnl For C++, do basically the same thing. + +AC_DEFUN([GNOME_CXX_WARNINGS],[ + AC_ARG_ENABLE(cxx-warnings, + AC_HELP_STRING([--enable-cxx-warnings=@<:@no/minimum/yes@:>@] + [Turn on compiler warnings.]),, + [enable_cxx_warnings="m4_default([$1],[minimum])"]) + + AC_MSG_CHECKING(what warning flags to pass to the C++ compiler) + warnCXXFLAGS= + if test "x$GXX" != xyes; then + enable_cxx_warnings=no + fi + if test "x$enable_cxx_warnings" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-Wall[\ \ ]*) ;; + *) warnCXXFLAGS="-Wall -Wno-unused" ;; + esac + + ## -W is not all that useful. And it cannot be controlled + ## with individual -Wno-xxx flags, unlike -Wall + if test "x$enable_cxx_warnings" = "xyes"; then + warnCXXFLAGS="$warnCXXFLAGS -Wshadow -Woverloaded-virtual" + fi + fi + fi + AC_MSG_RESULT($warnCXXFLAGS) + + AC_ARG_ENABLE(iso-cxx, + AC_HELP_STRING([--enable-iso-cxx], + [Try to warn if code is not ISO C++ ]),, + [enable_iso_cxx=no]) + + AC_MSG_CHECKING(what language compliance flags to pass to the C++ compiler) + complCXXFLAGS= + if test "x$enable_iso_cxx" != "xno"; then + if test "x$GXX" = "xyes"; then + case " $CXXFLAGS " in + *[\ \ ]-ansi[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -ansi" ;; + esac + + case " $CXXFLAGS " in + *[\ \ ]-pedantic[\ \ ]*) ;; + *) complCXXFLAGS="$complCXXFLAGS -pedantic" ;; + esac + fi + fi + AC_MSG_RESULT($complCXXFLAGS) + + WARN_CXXFLAGS="$CXXFLAGS $warnCXXFLAGS $complCXXFLAGS" + AC_SUBST(WARN_CXXFLAGS) +]) diff --git a/src/sugar/Makefile.am b/src/sugar/Makefile.am index ef91efe..5cc58d1 100644 --- a/src/sugar/Makefile.am +++ b/src/sugar/Makefile.am @@ -14,6 +14,7 @@ pkgpyexecdir = $(pythondir)/sugar pkgpyexec_LTLIBRARIES = _sugarext.la _sugarext_la_CFLAGS = \ + $(WARN_CFLAGS) \ $(EXT_CFLAGS) \ $(PYTHON_INCLUDES) diff --git a/src/sugar/_sugarext.override b/src/sugar/_sugarext.override index db49e27..dc54de0 100644 --- a/src/sugar/_sugarext.override +++ b/src/sugar/_sugarext.override @@ -10,8 +10,8 @@ headers #include "sugar-preview.h" #include "sexy-icon-entry.h" #include "gsm-session.h" +#include "gsm-xsmp.h" -#define EGG_SM_CLIENT_BACKEND_XSMP #include "eggsmclient.h" #include "eggsmclient-private.h" diff --git a/src/sugar/eggsmclient-private.h b/src/sugar/eggsmclient-private.h index 0b4ec40..d2958c9 100644 --- a/src/sugar/eggsmclient-private.h +++ b/src/sugar/eggsmclient-private.h @@ -25,6 +25,8 @@ G_BEGIN_DECLS +#define EGG_SM_CLIENT_BACKEND_XSMP + GKeyFile *egg_sm_client_save_state (EggSMClient *client); void egg_sm_client_quit_requested (EggSMClient *client); void egg_sm_client_quit_cancelled (EggSMClient *client); diff --git a/src/sugar/gsm-session.c b/src/sugar/gsm-session.c index 95dd7cb..3f0714c 100644 --- a/src/sugar/gsm-session.c +++ b/src/sugar/gsm-session.c @@ -151,53 +151,6 @@ end_phase (GsmSession *session) } static void -app_condition_changed (GsmApp *app, gboolean condition, gpointer data) -{ - GsmSession *session; - GsmClient *client = NULL; - GSList *cl = NULL; - - g_return_if_fail (data != NULL); - - session = (GsmSession *) data; - - /* Check for an existing session client for this app */ - for (cl = session->clients; cl; cl = cl->next) - { - GsmClient *c = GSM_CLIENT (cl->data); - - if (!strcmp (app->client_id, gsm_client_get_client_id (c))) - client = c; - } - - if (condition) - { - GError *error = NULL; - - if (app->pid <= 0 && client == NULL) - gsm_app_launch (app, &error); - - if (error != NULL) - { - g_warning ("Not able to launch autostart app from its condition: %s", - error->message); - - g_error_free (error); - } - } - else - { - /* Kill client in case condition if false and make sure it won't - * be automatically restarted by adding the client to - * condition_clients */ - session->condition_clients = - g_slist_prepend (session->condition_clients, client); - gsm_client_die (client); - app->pid = -1; - } -} - -static void app_registered (GsmApp *app, gpointer data) { GsmSession *session = data; @@ -241,10 +194,6 @@ phase_timeout (gpointer data) static void start_phase (GsmSession *session) { - GsmApp *app; - GSList *a; - GError *err = NULL; - g_debug ("starting phase %d\n", session->phase); g_slist_free (session->pending_apps); @@ -359,8 +308,6 @@ client_saved_state (GsmClient *client, gpointer data) void gsm_session_initiate_shutdown (GsmSession *session) { - gboolean logout_prompt; - if (session->phase == GSM_SESSION_PHASE_SHUTDOWN) { /* Already shutting down, nothing more to do */ diff --git a/src/sugar/sugar-menu.h b/src/sugar/sugar-menu.h index 8773a31..74ce891 100644 --- a/src/sugar/sugar-menu.h +++ b/src/sugar/sugar-menu.h @@ -50,6 +50,7 @@ void sugar_menu_set_active (SugarMenu *menu, gboolean active); void sugar_menu_embed (SugarMenu *menu, GtkContainer *parent); +void sugar_menu_unembed (SugarMenu *menu); G_END_DECLS diff --git a/src/sugar/sugar-preview.c b/src/sugar/sugar-preview.c index f54045b..42fb9d3 100644 --- a/src/sugar/sugar-preview.c +++ b/src/sugar/sugar-preview.c @@ -19,6 +19,7 @@ #include #include +#include #include "sugar-preview.h" @@ -37,8 +38,6 @@ sugar_preview_set_size(SugarPreview *preview, int width, int height) GdkPixbuf * sugar_preview_get_pixbuf(SugarPreview *preview) { - GdkPixbuf *pixbuf; - if (preview->pixbuf != NULL) { return preview->pixbuf; } @@ -92,7 +91,7 @@ sugar_preview_take_screenshot(SugarPreview *preview, GdkDrawable *drawable) XShmGetImage(GDK_SCREEN_XDISPLAY(screen), GDK_DRAWABLE_XID(drawable), gdk_x11_image_get_ximage(preview->image), - 0, 0, AllPlanes, ZPixmap); + 0, 0, AllPlanes); } static void -- cgit v0.9.1