[gtkhtml] Add very strict compiler warning flags.



commit 9013f72902df62ef2fd97e27240747a4923623eb
Author: Matthew Barnes <mbarnes redhat com>
Date:   Sun May 24 23:46:24 2009 -0400

    Add very strict compiler warning flags.
    
    And clean up the resulting mess.
---
 acinclude.m4                               |   62 ++++++++++++++
 components/editor/Makefile.am              |    1 -
 components/editor/gtkhtml-editor-signals.c |    2 -
 components/editor/gtkhtml-editor-signals.h |  119 ----------------------------
 components/editor/gtkhtml-face-chooser.c   |    9 ++-
 configure.ac                               |   32 +++++++-
 gtkhtml/Makefile.am                        |    8 +--
 gtkhtml/gtkhtml-stream.h                   |    8 +--
 gtkhtml/gtkhtml.c                          |   52 ++++++------
 gtkhtml/gtkhtml.h                          |    4 +-
 gtkhtml/gtkhtmldebug.c                     |    2 +-
 gtkhtml/htmlclue.c                         |    8 +-
 gtkhtml/htmlclueflow.c                     |   23 +++---
 gtkhtml/htmlcolorset.c                     |    5 +-
 gtkhtml/htmlembedded.c                     |    6 +-
 gtkhtml/htmlembedded.h                     |    4 +-
 gtkhtml/htmlengine-edit-cut-and-paste.c    |    4 +-
 gtkhtml/htmlengine-edit.c                  |    6 +-
 gtkhtml/htmlengine-save.c                  |    2 +-
 gtkhtml/htmlengine.c                       |   44 ++++++-----
 gtkhtml/htmlengine.h                       |    2 +-
 gtkhtml/htmlform.c                         |    6 +-
 gtkhtml/htmlform.h                         |    4 +-
 gtkhtml/htmlframeset.c                     |    5 +-
 gtkhtml/htmlframeset.h                     |    2 +-
 gtkhtml/htmlimage.c                        |    2 +-
 gtkhtml/htmlobject.c                       |    2 +
 gtkhtml/htmlrule.c                         |    8 +-
 gtkhtml/htmlselect.c                       |    4 +-
 gtkhtml/htmlselect.h                       |    4 +-
 gtkhtml/htmlshape.c                        |    6 +-
 gtkhtml/htmlshape.h                        |    2 +-
 gtkhtml/htmlstringtokenizer.c              |    2 +-
 gtkhtml/htmlstringtokenizer.h              |    2 +-
 gtkhtml/htmltablepriv.h                    |    4 -
 gtkhtml/htmltext.c                         |   12 ++--
 gtkhtml/htmltokenizer.c                    |    4 +-
 gtkhtml/test-stress.c                      |    2 +-
 gtkhtml/test-suite.c                       |    4 +-
 gtkhtml/test.c                             |    6 +-
 40 files changed, 229 insertions(+), 255 deletions(-)

diff --git a/acinclude.m4 b/acinclude.m4
index 8c75480..94b2ac8 100644
--- a/acinclude.m4
+++ b/acinclude.m4
@@ -175,3 +175,65 @@ AC_SUBST(LTCOMPILE)
 AC_SUBST(LTCXXCOMPILE)
 # end dolt
 ])
+dnl as-compiler-flag.m4 0.1.0
+
+dnl autostars m4 macro for detection of compiler flags
+
+dnl David Schleef <ds schleef org>
+
+dnl $Id: as-compiler-flag.m4,v 1.1 2005/12/15 23:35:19 ds Exp $
+
+dnl AS_COMPILER_FLAG(CFLAGS, ACTION-IF-ACCEPTED, [ACTION-IF-NOT-ACCEPTED])
+dnl Tries to compile with the given CFLAGS.
+dnl Runs ACTION-IF-ACCEPTED if the compiler can compile with the flags,
+dnl and ACTION-IF-NOT-ACCEPTED otherwise.
+
+AC_DEFUN([AS_COMPILER_FLAG],
+[
+  AC_MSG_CHECKING([to see if compiler understands $1])
+
+  save_CFLAGS="$CFLAGS"
+  CFLAGS="$CFLAGS $1"
+
+  AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+  CFLAGS="$save_CFLAGS"
+
+  if test "X$flag_ok" = Xyes ; then
+    m4_ifvaln([$2],[$2])
+    true
+  else
+    m4_ifvaln([$3],[$3])
+    true
+  fi
+  AC_MSG_RESULT([$flag_ok])
+])
+
+dnl AS_COMPILER_FLAGS(VAR, FLAGS)
+dnl Tries to compile with the given CFLAGS.
+
+AC_DEFUN([AS_COMPILER_FLAGS],
+[
+  list=$2
+  flags_supported=""
+  flags_unsupported=""
+  AC_MSG_CHECKING([for supported compiler flags])
+  for each in $list
+  do
+    save_CFLAGS="$CFLAGS"
+    CFLAGS="$CFLAGS $each"
+    AC_TRY_COMPILE([ ], [], [flag_ok=yes], [flag_ok=no])
+    CFLAGS="$save_CFLAGS"
+
+    if test "X$flag_ok" = Xyes ; then
+      flags_supported="$flags_supported $each"
+    else
+      flags_unsupported="$flags_unsupported $each"
+    fi
+  done
+  AC_MSG_RESULT([$flags_supported])
+  if test "X$flags_unsupported" != X ; then
+    AC_MSG_WARN([unsupported compiler flags: $flags_unsupported])
+  fi
+  $1="$$1 $flags_supported"
+])
+
diff --git a/components/editor/Makefile.am b/components/editor/Makefile.am
index bc696c9..79f7b1c 100644
--- a/components/editor/Makefile.am
+++ b/components/editor/Makefile.am
@@ -41,7 +41,6 @@ libgtkhtml_editor_la_SOURCES = \
 	gtkhtml-editor-private.c		\
 	gtkhtml-editor-private.h		\
 	gtkhtml-editor-signals.c		\
-	gtkhtml-editor-signals.h		\
 	gtkhtml-face.c				\
 	gtkhtml-face.h				\
 	gtkhtml-face-action.c			\
diff --git a/components/editor/gtkhtml-editor-signals.c b/components/editor/gtkhtml-editor-signals.c
index c7f4d69..e192c70 100644
--- a/components/editor/gtkhtml-editor-signals.c
+++ b/components/editor/gtkhtml-editor-signals.c
@@ -22,8 +22,6 @@
  * Most of these handlers will be auto-connected by libglade.  GtkAction
  * callbacks belong in gtkhtml-editor-actions.c. */
 
-#include "gtkhtml-editor-signals.h"
-
 #include <libgnome/gnome-url.h>
 
 #include "gtkhtml-editor-private.h"
diff --git a/components/editor/gtkhtml-editor-signals.h b/components/editor/gtkhtml-editor-signals.h
deleted file mode 100644
index 6db9f02..0000000
--- a/components/editor/gtkhtml-editor-signals.h
+++ /dev/null
@@ -1,119 +0,0 @@
-/* -*- Mode: C; indent-tabs-mode: t; c-basic-offset: 8; tab-width: 8 -*- */
-/* gtkhtml-editor-signals.h
- *
- * Copyright (C) 2008 Novell, Inc.
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of version 2 of the GNU Lesser General Public
- * License as published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this program; if not, write to the
- * Free Software Foundation, Inc., 59 Temple Place - Suite 330,
- * Boston, MA 02111-1307, USA.
- */
-
-/* This file is for widget signal handlers, primarily for property dialogs.
- * Most of these handlers will be auto-connected by libglade.  GtkAction
- * callbacks belong in gtkhtml-editor-actions.c. */
-
-#ifndef GTKHTML_EDITOR_SIGNALS_H
-#define GTKHTML_EDITOR_SIGNALS_H
-
-#include "gtkhtml-editor-common.h"
-
-G_BEGIN_DECLS
-
-/*****************************************************************************
- * Find Window
- *****************************************************************************/
-
-void	gtkhtml_editor_find_backwards_toggled_cb
-						(GtkWidget *window,
-						 GtkToggleButton *button);
-void	gtkhtml_editor_find_case_sensitive_toggled_cb
-						(GtkWidget *window,
-						 GtkToggleButton *button);
-void	gtkhtml_editor_find_entry_activate_cb	(GtkWidget *window,
-						 GtkEntry *entry);
-void	gtkhtml_editor_find_entry_changed_cb	(GtkWidget *window,
-						 GtkEntry *entry);
-void	gtkhtml_editor_find_regular_expression_toggled_cb
-						(GtkWidget *window,
-						 GtkToggleButton *button);
-
-/*****************************************************************************
- * Insert Link Window
- *****************************************************************************/
-
-void	gtkhtml_editor_insert_link_description_changed_cb
-						(GtkWidget *window);
-void	gtkhtml_editor_insert_link_url_changed_cb
-						(GtkWidget *window);
-void	gtkhtml_editor_insert_link_show_window_cb
-						(GtkWidget *window);
-
-/*****************************************************************************
- * Insert Rule Window
- *****************************************************************************/
-
-void	gtkhtml_editor_insert_rule_alignment_changed_cb
-						(GtkWidget *window,
-						 GtkComboBox *combo_box);
-void	gtkhtml_editor_insert_rule_shaded_toggled_cb
-						(GtkWidget *window,
-						 GtkToggleButton *button);
-void	gtkhtml_editor_insert_rule_size_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_rule_show_window_cb
-						(GtkWidget *window);
-void	gtkhtml_editor_insert_rule_width_changed_cb
-						(GtkWidget *window);
-
-/*****************************************************************************
- * Insert Table Window
- *****************************************************************************/
-
-void	gtkhtml_editor_insert_table_alignment_changed_cb
-						(GtkWidget *window,
-						 GtkComboBox *combo_box);
-void	gtkhtml_editor_insert_table_border_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_table_cols_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_table_image_changed_cb
-						(GtkWidget *window,
-						 GtkFileChooser *file_chooser);
-void	gtkhtml_editor_insert_table_padding_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_table_spacing_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_table_rows_changed_cb
-						(GtkWidget *window,
-						 GtkSpinButton *button);
-void	gtkhtml_editor_insert_table_show_window_cb
-						(GtkWidget *window);
-void	gtkhtml_editor_insert_table_width_changed_cb
-						(GtkWidget *window);
-
-/*****************************************************************************
- * Replace Confirmation Window
- *****************************************************************************/
-
-gboolean gtkhtml_editor_replace_confirmation_delete_event_cb
-						(GtkWidget *window,
-						 GdkEvent *event);
-
-G_END_DECLS
-
-#endif /* GTKHTML_EDITOR_SIGNALS_H */
diff --git a/components/editor/gtkhtml-face-chooser.c b/components/editor/gtkhtml-face-chooser.c
index 0a44510..7522e55 100644
--- a/components/editor/gtkhtml-face-chooser.c
+++ b/components/editor/gtkhtml-face-chooser.c
@@ -22,7 +22,14 @@
 
 #include <glib/gi18n-lib.h>
 
-static GtkhtmlFace available_faces[] = {
+/* Constant version of GtkhtmlFace. */
+typedef struct {
+	const gchar *label;
+	const gchar *icon_name;
+	const gchar *text_face;
+} ConstantFace;
+
+static ConstantFace available_faces[] = {
 	/* Translators: :-) */
 	{ N_("_Smile"),		"face-smile",		":-)"	},
 	/* Translators: :-( */
diff --git a/configure.ac b/configure.ac
index 0c8be92..d27a127 100644
--- a/configure.ac
+++ b/configure.ac
@@ -42,6 +42,35 @@ dnl blocks, this macro needs to be right at the beggining.
 dnl
 IT_PROG_INTLTOOL([0.36.3])
 
+# Compiler Warning Flags
+
+AS_COMPILER_FLAGS(WARNING_FLAGS,
+	"-DG_DISABLE_DEPRECATED
+	-DPANGO_DISABLE_DEPRECATED
+	-DGDK_DISABLE_DEPRECATED
+	-DGDK_PIXBUF_DISABLE_DEPRECATED
+	-DGTK_DISABLE_DEPRECATED
+	-DGNOME_DISABLE_DEPRECATED
+	-Wall -Wextra
+	-Wno-missing-field-initializers
+	-Wno-sign-compare
+	-Wno-unused-parameter
+	-Wdeclaration-after-statement
+	-Werror-implicit-function-declaration
+	-Wformat-nonliteral -Wformat-security -Winit-self
+	-Wmissing-declarations -Wmissing-include-dirs
+	-Wmissing-noreturn -Wnested-externs -Wpointer-arith
+	-Wredundant-decls -Wundef -Wwrite-strings")
+AC_SUBST(WARNING_FLAGS)
+
+# Other useful compiler warnings for test builds only.
+# These may produce warnings we have no control over.
+#
+#	-Wmissing-format-attribute
+#	-Wshadow
+
+CFLAGS="$CFLAGS $WARNING_FLAGS"
+
 AC_ISC_POSIX
 AC_PROG_CC
 AC_STDC_HEADERS
@@ -66,9 +95,6 @@ AC_MSG_RESULT([$os_win32])
 AM_CONDITIONAL(OS_WIN32, [test $os_win32 = yes])
 AC_SUBST(SOEXT)
 
-GNOME_COMPILE_WARNINGS(yes)
-CFLAGS="$CFLAGS $warning_flags"
-
 AC_SUBST(CFLAGS)
 AC_SUBST(CPPFLAGS)
 AC_SUBST(LDFLAGS)
diff --git a/gtkhtml/Makefile.am b/gtkhtml/Makefile.am
index 10b6e93..26372cc 100644
--- a/gtkhtml/Makefile.am
+++ b/gtkhtml/Makefile.am
@@ -19,18 +19,14 @@ INCLUDES = 				\
 	-DG_LOG_DOMAIN=\"gtkhtml\"
 
 AM_CFLAGS = 						\
-	-DGDK_DISABLE_DEPRECATED=1			\
-	-DG_DISABLE_DEPRECATED=1			\
-	-DGNOME_DISABLE_DEPRECATED=1			\
 	-DPREFIX=\""$(prefix)"\"			\
 	-DLIBDIR=\""$(datadir)"\"			\
 	-DDATADIR=\""$(datadir)"\"			\
 	-DSYSCONFDIR=\""$(sysconfdir)"\"		\
 	-DICONDIR=\"$(gtkhtml_data)/icons\"		\
-        -DGTKHTML_DATADIR=\""$(gtkhtml_data)"\"		\
+	-DGTKHTML_DATADIR=\""$(gtkhtml_data)"\"		\
 	-DGLADE_DATADIR=\"$(gladedir)\"			\
-        -DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
-#	-DGTK_DISABLE_DEPRECATED=1
+	-DGNOMELOCALEDIR=\""$(prefix)/$(DATADIRNAME)/locale"\"
 
 lib_LTLIBRARIES = libgtkhtml-3.14.la
 
diff --git a/gtkhtml/gtkhtml-stream.h b/gtkhtml/gtkhtml-stream.h
index dc7fb53..a7c2d3e 100644
--- a/gtkhtml/gtkhtml-stream.h
+++ b/gtkhtml/gtkhtml-stream.h
@@ -53,12 +53,6 @@ int            gtk_html_stream_vprintf   (GtkHTMLStream *stream,
 					  va_list ap);
 int            gtk_html_stream_printf    (GtkHTMLStream *stream,
 					  const char *format,
-					  ...);
+					  ...) G_GNUC_PRINTF (2, 3);
 
 #endif /* _GTKHTML_STREAM_H */
-
-
-
-
-
-
diff --git a/gtkhtml/gtkhtml.c b/gtkhtml/gtkhtml.c
index b839e52..7df776d 100644
--- a/gtkhtml/gtkhtml.c
+++ b/gtkhtml/gtkhtml.c
@@ -84,16 +84,16 @@ enum DndTargetType {
 };
 
 static GtkTargetEntry dnd_link_sources [] = {
-	{ "message/rfc822", 0, DND_TARGET_TYPE_MESSAGE_RFC822 },
-	{ "x-uid-list", 0, DND_TARGET_TYPE_X_UID_LIST },
-	{ "text/uri-list", 0, DND_TARGET_TYPE_TEXT_URI_LIST },
-	{ "_NETSCAPE_URL", 0, DND_TARGET_TYPE_MOZILLA_URL },
-	{ "text/x-vcard", 0, DND_TARGET_TYPE_TEXT_VCARD },
-	{ "text/calendar", 0, DND_TARGET_TYPE_TEXT_CALENDAR },
-	{ "text/html", 0, DND_TARGET_TYPE_TEXT_HTML },
-	{ "UTF8_STRING", 0, DND_TARGET_TYPE_UTF8_STRING },
-	{ "text/plain", 0, DND_TARGET_TYPE_TEXT_PLAIN },
-	{ "STRING", 0, DND_TARGET_TYPE_STRING },
+	{ (gchar *) "message/rfc822", 0, DND_TARGET_TYPE_MESSAGE_RFC822 },
+	{ (gchar *) "x-uid-list", 0, DND_TARGET_TYPE_X_UID_LIST },
+	{ (gchar *) "text/uri-list", 0, DND_TARGET_TYPE_TEXT_URI_LIST },
+	{ (gchar *) "_NETSCAPE_URL", 0, DND_TARGET_TYPE_MOZILLA_URL },
+	{ (gchar *) "text/x-vcard", 0, DND_TARGET_TYPE_TEXT_VCARD },
+	{ (gchar *) "text/calendar", 0, DND_TARGET_TYPE_TEXT_CALENDAR },
+	{ (gchar *) "text/html", 0, DND_TARGET_TYPE_TEXT_HTML },
+	{ (gchar *) "UTF8_STRING", 0, DND_TARGET_TYPE_UTF8_STRING },
+	{ (gchar *) "text/plain", 0, DND_TARGET_TYPE_TEXT_PLAIN },
+	{ (gchar *) "STRING", 0, DND_TARGET_TYPE_STRING },
 };
 #define DND_LINK_SOURCES sizeof (dnd_link_sources) / sizeof (GtkTargetEntry)
 
@@ -108,11 +108,11 @@ enum _TargetInfo {
 typedef enum _TargetInfo TargetInfo;
 
 static const GtkTargetEntry selection_targets[] = {
-	{ "text/html", GTK_TARGET_SAME_APP, TARGET_HTML },
-	{ "UTF8_STRING", 0, TARGET_UTF8_STRING },
-	{ "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT },
-	{ "STRING", 0, TARGET_STRING },
-	{ "TEXT",   0, TARGET_TEXT }
+	{ (gchar *) "text/html", GTK_TARGET_SAME_APP, TARGET_HTML },
+	{ (gchar *) "UTF8_STRING", 0, TARGET_UTF8_STRING },
+	{ (gchar *) "COMPOUND_TEXT", 0, TARGET_COMPOUND_TEXT },
+	{ (gchar *) "STRING", 0, TARGET_STRING },
+	{ (gchar *) "TEXT", 0, TARGET_TEXT }
 };
 
 static const guint n_selection_targets = G_N_ELEMENTS (selection_targets);
@@ -2205,7 +2205,7 @@ enter_notify_event (GtkWidget *widget, GdkEventCrossing *event)
 
 /* X11 selection support.  */
 
-static char *
+static const char *
 utf16_order (gboolean swap)
 {
 	gboolean be;
@@ -2294,7 +2294,7 @@ gtk_html_get_selection_plain_text (GtkHTML *html, int *len)
 
 static gchar *
 utf16_to_utf8_with_bom_check (guchar  *data, guint len) {
-	char    *fromcode = NULL;
+	const char *fromcode = NULL;
 	GError  *error = NULL;
 	guint16 c;
 	gsize read_len, written_len;
@@ -2372,7 +2372,7 @@ setup_class_properties (GtkHTML *html)
 		klass->properties = gtk_html_class_properties_new (GTK_WIDGET (html));
 
 		if (!gconf_is_initialized ()) {
-			char *argv[] = { "gtkhtml", NULL };
+			char *argv[] = { (char *) "gtkhtml", NULL };
 
 			g_warning ("gconf is not initialized, please call gconf_init before using GtkHTML library. "
 				   "Meanwhile it's initialized by gtkhtml itself.");
@@ -2564,7 +2564,7 @@ drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *sel
 					char *utf16;
 					char *utf8;
 					gsize written_len;
-					GdkAtom target;
+					GdkAtom atom;
 
 					if (HTML_IS_TEXT (obj)) {
 						Link *link = html_text_get_link_at_offset (HTML_TEXT (obj), offset);
@@ -2577,17 +2577,17 @@ drag_data_get (GtkWidget *widget, GdkDragContext *context, GtkSelectionData *sel
 						utf8 = g_strconcat (complete_url, "\n", complete_url, NULL);
 
 					utf16 = g_convert (utf8, strlen (utf8), "UTF-16", "UTF-8", NULL, &written_len, NULL);
-					target = gtk_selection_data_get_target (selection_data);
-					gtk_selection_data_set (selection_data, target, 8,
+					atom = gtk_selection_data_get_target (selection_data);
+					gtk_selection_data_set (selection_data, atom, 8,
 								(guchar *) utf16, written_len);
 					g_free (utf8);
 					g_free (complete_url);
 					GTK_HTML (widget)->priv->dnd_url = utf16;
 				} else {
-					GdkAtom target;
+					GdkAtom atom;
 
-					target = gtk_selection_data_get_target (selection_data);
-					gtk_selection_data_set (selection_data, target, 8,
+					atom = gtk_selection_data_get_target (selection_data);
+					gtk_selection_data_set (selection_data, atom, 8,
 								(guchar *) complete_url, strlen (complete_url));
 				        /* printf ("complete URL %s\n", complete_url); */
 					GTK_HTML (widget)->priv->dnd_url = complete_url;
@@ -3629,7 +3629,7 @@ gtk_html_allow_selection (GtkHTML *html,
 GtkHTMLStream *
 gtk_html_begin_full (GtkHTML           *html,
 		     char              *target_frame,
-		     char              *content_type,
+		     const char        *content_type,
 		     GtkHTMLBeginFlags flags)
 {
 	GtkHTMLStream *handle;
@@ -3700,7 +3700,7 @@ gtk_html_begin (GtkHTML *html)
  * Returns: a new GtkHTMLStream to store new content.
  **/
 GtkHTMLStream *
-gtk_html_begin_content (GtkHTML *html, gchar *content_type)
+gtk_html_begin_content (GtkHTML *html, const gchar *content_type)
 {
 	g_return_val_if_fail (! gtk_html_get_editable (html), NULL);
 
diff --git a/gtkhtml/gtkhtml.h b/gtkhtml/gtkhtml.h
index 0120c76..9630bbc 100644
--- a/gtkhtml/gtkhtml.h
+++ b/gtkhtml/gtkhtml.h
@@ -158,7 +158,7 @@ void                       gtk_html_select_all                    (GtkHTML
 GtkHTMLStream             *gtk_html_begin                         (GtkHTML                   *html);
 GtkHTMLStream             *gtk_html_begin_full                    (GtkHTML                   *html,
 								   char                      *target_frame,
-								   char                      *content_type,
+								   const char                *content_type,
 								   GtkHTMLBeginFlags         flags);
 
 void                       gtk_html_write                         (GtkHTML                   *html,
@@ -348,7 +348,7 @@ gboolean                   gtk_html_save                          (GtkHTML
 								   GtkHTMLSaveReceiverFn      receiver,
 								   gpointer                   data);
 GtkHTMLStream             *gtk_html_begin_content                 (GtkHTML                   *html,
-								   gchar                     *content_type);
+								   const gchar               *content_type);
 void                       gtk_html_drag_dest_set                 (GtkHTML                   *html);
 
 #endif
diff --git a/gtkhtml/gtkhtmldebug.c b/gtkhtml/gtkhtmldebug.c
index 06b04b2..056985d 100644
--- a/gtkhtml/gtkhtmldebug.c
+++ b/gtkhtml/gtkhtmldebug.c
@@ -100,7 +100,7 @@ clueflow_style_to_string (HTMLClueFlowStyle style)
 	}
 }
 
-static char *
+static const char *
 direction_to_string (HTMLDirection dir)
 {
 	switch (dir) {
diff --git a/gtkhtml/htmlclue.c b/gtkhtml/htmlclue.c
index b9ed3f7..7324989 100644
--- a/gtkhtml/htmlclue.c
+++ b/gtkhtml/htmlclue.c
@@ -586,13 +586,13 @@ append_selection_string (HTMLObject *self,
 }
 
 static HTMLObject *
-head (HTMLObject *self)
+clue_head (HTMLObject *self)
 {
 	return HTML_CLUE (self)->head;
 }
 
 static HTMLObject *
-tail (HTMLObject *self)
+clue_tail (HTMLObject *self)
 {
 	HTMLObject *obj;
 
@@ -642,8 +642,8 @@ html_clue_class_init (HTMLClueClass *klass,
 	object_class->save_plain = save_plain;
 	object_class->search = search;
 	object_class->append_selection_string = append_selection_string;
-	object_class->head = head;
-	object_class->tail = tail;
+	object_class->head = clue_head;
+	object_class->tail = clue_tail;
 	object_class->get_recursive_length = get_recursive_length;
 	object_class->get_n_children = get_n_children;
 	object_class->get_child = get_child;
diff --git a/gtkhtml/htmlclueflow.c b/gtkhtml/htmlclueflow.c
index 4537157..7ede78d 100644
--- a/gtkhtml/htmlclueflow.c
+++ b/gtkhtml/htmlclueflow.c
@@ -1129,7 +1129,8 @@ static gchar *
 get_roman_value (gint value, gboolean lower)
 {
 	GString *str;
-	gchar *rv, *base = "IVXLCDM";
+	const gchar *base = "IVXLCDM";
+	gchar *rv;
 	gint b, r, add = lower ? 'a' - 'A' : 0;
 
 	if (value > 3999)
@@ -1203,7 +1204,7 @@ get_item_marker_str (HTMLClueFlow *flow, gboolean ascii_only)
 }
 
 static void
-draw_cite_line (HTMLObject *cur, HTMLPainter *p, char *cite_str, gint offset, gint x, gint y)
+draw_cite_line (HTMLObject *cur, HTMLPainter *p, const char *cite_str, gint offset, gint x, gint y)
 {
 	gint cy, w, a, d;
 
@@ -1277,7 +1278,7 @@ draw_quotes (HTMLObject *self, HTMLPainter *painter,
 			} else {
 				HTMLObject *cur = HTML_CLUE (self)->head;
 				int x_pos, baseline = 0;
-				char *cite_str = dir == HTML_DIRECTION_RTL ? HTML_BLOCK_CITE_RTL : HTML_BLOCK_CITE_LTR;
+				const char *cite_str = dir == HTML_DIRECTION_RTL ? HTML_BLOCK_CITE_RTL : HTML_BLOCK_CITE_LTR;
 
 				while (cur) {
 					if (cur->y != 0) {
@@ -1520,7 +1521,7 @@ get_list_start_tag (HTMLClueFlow *self)
 }
 
 
-static gchar *
+static const gchar *
 get_start_tag (HTMLClueFlow *self)
 {
 	switch (self->style) {
@@ -1633,10 +1634,10 @@ save_indent_string (HTMLClueFlow *self, HTMLEngineSaveState *state, const char *
 	return retval;
 }
 
-static char *
+static const char *
 get_p_str (HTMLClueFlow *self, HTMLEngineSaveState *state)
 {
-	char *p_str = NULL;
+	const char *p_str = NULL;
 
 	if (self->dir != html_object_get_direction (state->engine->clue)) {
 		switch (self->dir) {
@@ -1661,7 +1662,7 @@ write_flow_tag (HTMLClueFlow *self, HTMLEngineSaveState *state)
 	HTMLClueFlow *next = NULL;
 	HTMLClueFlow *prev = NULL;
 	HTMLHAlignType halign;
-	char *br_str = "<BR>\n";
+	const char *br_str = "<BR>\n";
 
 	if (HTML_IS_CLUEFLOW (HTML_OBJECT (self)->next))
 		next = HTML_CLUEFLOW (HTML_OBJECT (self)->next);
@@ -1684,7 +1685,7 @@ write_flow_tag (HTMLClueFlow *self, HTMLEngineSaveState *state)
 	}
 
 	if (!prev) {
-		char *p_str = get_p_str (self, state);
+		const char *p_str = get_p_str (self, state);
 
 		if (p_str) {
 			if (! html_engine_save_output_string (state, "%s", p_str))
@@ -1703,7 +1704,7 @@ write_flow_tag (HTMLClueFlow *self, HTMLEngineSaveState *state)
 		if (!save_indent_string (self, state, ""))
 			return FALSE;
 	} else {
-		char *start = get_start_tag (self);
+		const char *start = get_start_tag (self);
 
 		if (start) {
 			if (!save_indent_string (self, state, "<%s>\n", start))
@@ -1751,7 +1752,7 @@ write_flow_tag (HTMLClueFlow *self, HTMLEngineSaveState *state)
 				return FALSE;
 		}
 	} else {
-		char *end = get_start_tag (self);
+		const char *end = get_start_tag (self);
 
 		if (self->style != HTML_CLUEFLOW_STYLE_PRE) {
 			if ((!html_clueflow_contains_table (self) && !end && next && self->style == next->style) || html_clueflow_is_empty (self)) {
@@ -1777,7 +1778,7 @@ write_flow_tag (HTMLClueFlow *self, HTMLEngineSaveState *state)
 			HTMLObject *head = HTML_CLUE (HTML_OBJECT (self)->parent)->head;
 
 			if (head && HTML_IS_CLUEFLOW (head)) {
-				char *head_p_str = get_p_str (HTML_CLUEFLOW (head), state);
+				const char *head_p_str = get_p_str (HTML_CLUEFLOW (head), state);
 
 				if (head_p_str) {
 					if (! html_engine_save_output_string (state, "</P>\n"))
diff --git a/gtkhtml/htmlcolorset.c b/gtkhtml/htmlcolorset.c
index 2bfe38a..49a575b 100644
--- a/gtkhtml/htmlcolorset.c
+++ b/gtkhtml/htmlcolorset.c
@@ -136,7 +136,10 @@ html_colorset_set_unchanged (HTMLColorSet *s, HTMLColorSet *o)
 }
 
 static GdkColor *
-get_prop_color  (GtkWidget *w, char *name, char *dv, GdkColor *gdk_color)
+get_prop_color (GtkWidget *w,
+                const char *name,
+                const char *dv,
+                GdkColor *gdk_color)
 {
 	GdkColor c;
 	GdkColor *color = NULL;
diff --git a/gtkhtml/htmlembedded.c b/gtkhtml/htmlembedded.c
index 030fdde..f5b57e2 100644
--- a/gtkhtml/htmlembedded.c
+++ b/gtkhtml/htmlembedded.c
@@ -236,7 +236,7 @@ gchar *
 html_embedded_encode_string (const gchar *before, const gchar *codepage)
 {
 	    const gchar* str = before;
-	    static gchar *safe = "$-._!*(),"; /* RFC 1738 */
+	    static const gchar *safe = "$-._!*(),"; /* RFC 1738 */
         unsigned pos = 0;
         GString *encoded = g_string_new ("");
         gchar buffer[5], *ptr;
@@ -321,8 +321,8 @@ void
 html_embedded_init (HTMLEmbedded *element,
 		   HTMLEmbeddedClass *klass,
 		   GtkWidget *parent,
-		   gchar *name,
-		   gchar *value)
+		   const gchar *name,
+		   const gchar *value)
 {
 	HTMLObject *object;
 
diff --git a/gtkhtml/htmlembedded.h b/gtkhtml/htmlembedded.h
index 259d6e9..724603b 100644
--- a/gtkhtml/htmlembedded.h
+++ b/gtkhtml/htmlembedded.h
@@ -60,8 +60,8 @@ void          html_embedded_class_init     (HTMLEmbeddedClass *klass,
 void          html_embedded_init           (HTMLEmbedded      *element,
 					    HTMLEmbeddedClass *klass,
 					    GtkWidget         *parent,
-					    gchar             *name,
-					    gchar             *value);
+					    const gchar       *name,
+					    const gchar       *value);
 void          html_embedded_set_widget     (HTMLEmbedded      *element,
 					    GtkWidget         *widget);
 GtkWidget    *html_embedded_get_widget     (HTMLEmbedded      *element);
diff --git a/gtkhtml/htmlengine-edit-cut-and-paste.c b/gtkhtml/htmlengine-edit-cut-and-paste.c
index c463447..3cf8318 100644
--- a/gtkhtml/htmlengine-edit-cut-and-paste.c
+++ b/gtkhtml/htmlengine-edit-cut-and-paste.c
@@ -1266,7 +1266,7 @@ html_engine_insert_empty_paragraph (HTMLEngine *e)
 	html_engine_thaw (e);
 }
 
-static char *picto_chars =
+static const char *picto_chars =
 	/*  0 */ "DO)(|/PQ*!"
 	/* 10 */ "S\0:-\0:\0:-\0"
 	/* 20 */ ":\0:;=-\"\0:;"
@@ -1284,7 +1284,7 @@ static gint picto_states [] = {
 	/* 50 */   0, -19,   0, -11,  56,   0, -11,   0, -13,  61,
 	/* 60 */   0, -13,   0,  -6,   0,  68,  -7,   0,  -7,   0,
 	/* 70 */ -16,  73,   0, -16,   0, -21,  78,   0, -21,   0 };
-static gchar *picto_icon_names [] = {
+static const gchar *picto_icon_names [] = {
 	"face-angel",
 	"face-angry",
 	"face-cool",
diff --git a/gtkhtml/htmlengine-edit.c b/gtkhtml/htmlengine-edit.c
index a13c68e..81f3566 100644
--- a/gtkhtml/htmlengine-edit.c
+++ b/gtkhtml/htmlengine-edit.c
@@ -226,15 +226,13 @@ html_engine_spell_check_range (HTMLEngine *e, HTMLCursor *begin, HTMLCursor *end
 
 	cited = FALSE;
 	while (html_selection_spell_word (html_cursor_get_prev_char (begin), &cited) || cited) {
-		if (html_cursor_backward (begin, e))
-			;
+		if (html_cursor_backward (begin, e)) { ; }
 		cited = FALSE;
 	}
 
 	cited = FALSE;
 	while (html_selection_spell_word (html_cursor_get_current_char (end), &cited) || cited) {
-		if (html_cursor_forward (end, e))
-			;
+		if (html_cursor_forward (end, e)) { ; }
 		cited = FALSE;
 	}
 
diff --git a/gtkhtml/htmlengine-save.c b/gtkhtml/htmlengine-save.c
index 142394b..26c5c0b 100644
--- a/gtkhtml/htmlengine-save.c
+++ b/gtkhtml/htmlengine-save.c
@@ -228,7 +228,7 @@ html_engine_save_delims_and_vals (HTMLEngineSaveState *state,
 
 
 static gchar *
-color_to_string (gchar *s, HTMLColor *c)
+color_to_string (const gchar *s, HTMLColor *c)
 {
 	gchar color [20];
 
diff --git a/gtkhtml/htmlengine.c b/gtkhtml/htmlengine.c
index 833f6fe..32f115c 100644
--- a/gtkhtml/htmlengine.c
+++ b/gtkhtml/htmlengine.c
@@ -413,7 +413,7 @@ html_element_free (HTMLElement *element)
 }
 
 static void
-push_element (HTMLEngine *e, char *name, char *class, HTMLStyle *style)
+push_element (HTMLEngine *e, const char *name, const char *class, HTMLStyle *style)
 {
 	HTMLElement *element;
 
@@ -726,7 +726,7 @@ pop_clueflow_style (HTMLEngine *e)
 static void new_flow (HTMLEngine *e, HTMLObject *clue, HTMLObject *first_object, HTMLClearType clear, HTMLDirection dir);
 static void close_flow (HTMLEngine *e, HTMLObject *clue);
 static void finish_flow (HTMLEngine *e, HTMLObject *clue);
-static void pop_element (HTMLEngine *e, char *name);
+static void pop_element (HTMLEngine *e, const char *name);
 
 static HTMLObject *
 text_new (HTMLEngine *e, const gchar *text, GtkHTMLFontStyle style, HTMLColor *color)
@@ -1024,7 +1024,7 @@ html_element_push (HTMLElement *node, HTMLEngine *e, HTMLObject *clue)
 
 static void
 push_block_element (HTMLEngine *e,
-		    char *name,
+		    const char *name,
 		    HTMLStyle *style,
 		    HTMLDisplayType level,
 		    BlockFunc exitFunc,
@@ -1048,7 +1048,7 @@ push_block_element (HTMLEngine *e,
 
 static void
 push_block (HTMLEngine *e,
-	    char *name,
+	    const char *name,
 	    gint level,
 	    BlockFunc exitFunc,
 	    gint miscData1,
@@ -1165,7 +1165,7 @@ pop_element_by_type (HTMLEngine *e, HTMLDisplayType display)
 
 
 static void
-pop_element (HTMLEngine *e, char *name)
+pop_element (HTMLEngine *e, const char *name)
 {
 	HTMLElement *elem = NULL;
 	GList *l;
@@ -2263,7 +2263,11 @@ element_parse_data (HTMLEngine *e, HTMLObject *clue, const char *str)
 
 
 static void
-form_begin (HTMLEngine *e, HTMLObject *clue, gchar *action, gchar *method, gboolean close_paragraph)
+form_begin (HTMLEngine *e,
+            HTMLObject *clue,
+            const gchar *action,
+            const gchar *method,
+            gboolean close_paragraph)
 {
 	g_return_if_fail (HTML_IS_ENGINE (e));
 
@@ -2426,7 +2430,7 @@ static void
 element_parse_form (HTMLEngine *e, HTMLObject *clue, const gchar *str)
 {
 	gchar *action = NULL;
-	gchar *method = "GET";
+	const gchar *method = "GET";
 	gchar *target = NULL;
 
 	g_return_if_fail (HTML_IS_ENGINE (e));
@@ -3848,7 +3852,7 @@ element_parse_font (HTMLEngine *e, HTMLObject *clue, const gchar *str)
 /* Parsing dispatch table.  */
 typedef void (*HTMLParseFunc)(HTMLEngine *p, HTMLObject *clue, const gchar *str);
 typedef struct _HTMLDispatchEntry {
-	char *name;
+	const char *name;
 	HTMLParseFunc func;
 } HTMLDispatchEntry;
 
@@ -3942,7 +3946,8 @@ dispatch_table_new (HTMLDispatchEntry *entry)
 	gint i = 0;
 
 	while (entry[i].name) {
-		g_hash_table_insert (table, entry[i].name, &entry[i]);
+		g_hash_table_insert (
+			table, (gpointer) entry[i].name, &entry[i]);
 		i++;
 	}
 
@@ -4640,7 +4645,7 @@ html_engine_class_data_clear (HTMLEngine *e)
 #define LOG_INPUT 1
 
 GtkHTMLStream *
-html_engine_begin (HTMLEngine *e, char *content_type)
+html_engine_begin (HTMLEngine *e, const char *content_type)
 {
 	GtkHTMLStream *new_stream;
 
@@ -4702,7 +4707,7 @@ html_engine_stop (HTMLEngine *e)
 	html_object_forall (e->clue, e, html_engine_stop_forall, NULL);
 }
 
-static char *engine_content_types[]= {"text/html", NULL};
+static char *engine_content_types[]= { (char *) "text/html", NULL};
 
 static char **
 html_engine_stream_types (GtkHTMLStream *handle,
@@ -6211,7 +6216,7 @@ html_engine_spell_word_is_valid (HTMLEngine *e)
 void
 html_engine_replace_spell_word_with (HTMLEngine *e, const gchar *word)
 {
-	HTMLObject *replace = NULL;
+	HTMLObject *replace_text = NULL;
 	HTMLText   *orig;
 	g_return_if_fail (HTML_IS_ENGINE (e));
 
@@ -6220,19 +6225,20 @@ html_engine_replace_spell_word_with (HTMLEngine *e, const gchar *word)
 	orig = HTML_TEXT (e->mark->object);
 	switch (HTML_OBJECT_TYPE (e->mark->object)) {
 	case HTML_TYPE_TEXT:
-		replace = text_new (e, word, orig->font_style, orig->color);
+		replace_text = text_new (e, word, orig->font_style, orig->color);
 		break;
 		/* FIXME-link case HTML_TYPE_LINKTEXT:
-		replace = html_link_text_new (word, orig->font_style, orig->color,
-					      HTML_LINK_TEXT (orig)->url,
-					      HTML_LINK_TEXT (orig)->target);
-					      break; */
+		replace_text = html_link_text_new (
+			word, orig->font_style, orig->color,
+			HTML_LINK_TEXT (orig)->url,
+			HTML_LINK_TEXT (orig)->target);
+		break; */
 	default:
 		g_assert_not_reached ();
 	}
 	html_text_set_font_face (HTML_TEXT (replace), HTML_TEXT (orig)->face);
 	html_engine_edit_selection_updater_update_now (e->selection_updater);
-	html_engine_paste_object (e, replace, html_object_get_length (replace));
+	html_engine_paste_object (e, replace_text, html_object_get_length (replace_text));
 }
 
 HTMLCursor *
@@ -6503,7 +6509,7 @@ html_engine_set_language (HTMLEngine *e, const gchar *language)
 const gchar *
 html_engine_get_language (HTMLEngine *e)
 {
-	gchar *language;
+	const gchar *language;
 
 	g_return_val_if_fail (HTML_IS_ENGINE (e), NULL);
 
diff --git a/gtkhtml/htmlengine.h b/gtkhtml/htmlengine.h
index 9ef27d9..093f99c 100644
--- a/gtkhtml/htmlengine.h
+++ b/gtkhtml/htmlengine.h
@@ -310,7 +310,7 @@ void html_engine_set_tokenizer (HTMLEngine *engine,
 
 /* Parsing control.  */
 GtkHTMLStream *html_engine_begin            (HTMLEngine  *p,
-					     char        *content_type);
+					     const char  *content_type);
 void           html_engine_parse            (HTMLEngine  *p);
 void           html_engine_stop_parser      (HTMLEngine  *e);
 void           html_engine_stop             (HTMLEngine  *e);
diff --git a/gtkhtml/htmlform.c b/gtkhtml/htmlform.c
index 5d816c9..3c4d61e 100644
--- a/gtkhtml/htmlform.c
+++ b/gtkhtml/htmlform.c
@@ -26,7 +26,7 @@
 
 
 HTMLForm *
-html_form_new (HTMLEngine *engine, gchar *_action, gchar *_method)
+html_form_new (HTMLEngine *engine, const gchar *_action, const gchar *_method)
 {
 	HTMLForm *new;
 
@@ -60,11 +60,11 @@ html_form_add_hidden (HTMLForm *form, HTMLHidden *hidden)
 }
 
 void
-html_form_add_radio (HTMLForm *form, char *name, GtkRadioButton *button)
+html_form_add_radio (HTMLForm *form, const char *name, GtkRadioButton *button)
 {
 	GtkWidget *master;
 	GSList *group;
-	char *key = name;
+	const char *key = name;
 
 	/*
 	 * FIXME a null name makes them all share the same "" group.  I doubt this
diff --git a/gtkhtml/htmlform.h b/gtkhtml/htmlform.h
index 06bcad6..771fc73 100644
--- a/gtkhtml/htmlform.h
+++ b/gtkhtml/htmlform.h
@@ -41,14 +41,14 @@ struct _HTMLForm {
 };
 
 
-HTMLForm *html_form_new (HTMLEngine *engine, gchar *_action, gchar *_method);
+HTMLForm *html_form_new (HTMLEngine *engine, const gchar *_action, const gchar *_method);
 void html_form_add_element (HTMLForm *form, HTMLEmbedded *e);
 void html_form_add_hidden (HTMLForm *form, HTMLHidden *h);
 void html_form_remove_element (HTMLForm *form, HTMLEmbedded *e);
 void html_form_submit (HTMLForm *form);
 void html_form_reset (HTMLForm *form);
 void html_form_destroy (HTMLForm *form);
-void html_form_add_radio (HTMLForm *form, char *name, GtkRadioButton *button);
+void html_form_add_radio (HTMLForm *form, const char *name, GtkRadioButton *button);
 void html_form_set_engine (HTMLForm *form, HTMLEngine *engine);
 
 #endif /* _HTMLFORM_H_ */
diff --git a/gtkhtml/htmlframeset.c b/gtkhtml/htmlframeset.c
index 142010d..cd55bcc 100644
--- a/gtkhtml/htmlframeset.c
+++ b/gtkhtml/htmlframeset.c
@@ -213,7 +213,10 @@ html_frameset_real_calc_size (HTMLObject *o, HTMLPainter *painter, GList **chang
 }
 
 void
-html_frameset_init (HTMLFrameset *set, GtkHTML *parent, char *rows, char *cols)
+html_frameset_init (HTMLFrameset *set,
+                    GtkHTML *parent,
+                    const gchar *rows,
+                    const gchar *cols)
 {
 	html_object_init (HTML_OBJECT (set), HTML_OBJECT_CLASS (&html_frameset_class));
 	set->parent = parent;
diff --git a/gtkhtml/htmlframeset.h b/gtkhtml/htmlframeset.h
index 78d514e..ca7fac1 100644
--- a/gtkhtml/htmlframeset.h
+++ b/gtkhtml/htmlframeset.h
@@ -44,7 +44,7 @@ struct _HTMLFramesetClass {
 
 
 HTMLObject   *html_frameset_new        (GtkHTML *parent, char *rows, char *cols);
-void          html_frameset_init       (HTMLFrameset *set, GtkHTML *parent, char *rows, char *cols);
+void          html_frameset_init       (HTMLFrameset *set, GtkHTML *parent, const char *rows, const char *cols);
 void          html_frameset_class_init (HTMLFramesetClass *klass, HTMLType type, guint object_size);
 gboolean      html_frameset_append     (HTMLFrameset *set, HTMLObject *o);
 void          html_frameset_type_init  (void);
diff --git a/gtkhtml/htmlimage.c b/gtkhtml/htmlimage.c
index 2e105c1..b5ce303 100644
--- a/gtkhtml/htmlimage.c
+++ b/gtkhtml/htmlimage.c
@@ -1009,7 +1009,7 @@ html_image_set_size (HTMLImage *image, gint w, gint h, gboolean pw, gboolean ph)
 	}
 }
 
-static char *fallback_image_content_types[] = {"image/*", NULL};
+static char *fallback_image_content_types[] = { (char *) "image/*", NULL};
 
 static char **
 html_image_factory_types (GtkHTMLStream *stream,
diff --git a/gtkhtml/htmlobject.c b/gtkhtml/htmlobject.c
index 1ded75f..f0085c1 100644
--- a/gtkhtml/htmlobject.c
+++ b/gtkhtml/htmlobject.c
@@ -53,6 +53,8 @@ HTMLObjectClass html_object_class;
 
 #define HO_CLASS(x) HTML_OBJECT_CLASS (HTML_OBJECT (x)->klass)
 
+static void remove_child (HTMLObject *self, HTMLObject *child) G_GNUC_NORETURN;
+
 static void
 destroy (HTMLObject *self)
 {
diff --git a/gtkhtml/htmlrule.c b/gtkhtml/htmlrule.c
index 8a8fe43..cc73709 100644
--- a/gtkhtml/htmlrule.c
+++ b/gtkhtml/htmlrule.c
@@ -206,14 +206,16 @@ static gboolean
 save (HTMLObject *self,
       HTMLEngineSaveState *state)
 {
-	gchar *size, *shade, *length;
+	gchar *size;
+	const gchar *shade;
+	gchar *length;
 	gboolean rv;
 
-	size   = HTML_RULE (self)->size == 2 ? "" : g_strdup_printf (" SIZE=\"%d\"", HTML_RULE (self)->size);
+	size   = HTML_RULE (self)->size == 2 ? g_strdup ("") : g_strdup_printf (" SIZE=\"%d\"", HTML_RULE (self)->size);
 	shade  = HTML_RULE (self)->shade ? "" : " NOSHADE";
 	length = HTML_RULE (self)->length
 		? g_strdup_printf (" LENGTH=\"%d\"", HTML_RULE (self)->length)
-		: (self->percent > 0 && self->percent != 100 ? g_strdup_printf (" LENGTH=\"%d%%\"", self->percent) : "");
+		: (self->percent > 0 && self->percent != 100 ? g_strdup_printf (" LENGTH=\"%d%%\"", self->percent) : g_strdup (""));
 
 	rv = html_engine_save_output_string (state, "\n<HR%s%s%s>\n", shade, size, length);
 
diff --git a/gtkhtml/htmlselect.c b/gtkhtml/htmlselect.c
index 2479193..1872b1f 100644
--- a/gtkhtml/htmlselect.c
+++ b/gtkhtml/htmlselect.c
@@ -271,7 +271,7 @@ html_select_new (GtkWidget *parent,
 }
 
 void
-html_select_add_option (HTMLSelect *select, gchar *value, gboolean selected)
+html_select_add_option (HTMLSelect *select, const gchar *value, gboolean selected)
 {
 	GtkListStore *store;
 	GtkTreeIter iter;
@@ -315,7 +315,7 @@ html_select_add_option (HTMLSelect *select, gchar *value, gboolean selected)
 }
 
 void
-html_select_set_text (HTMLSelect *select, gchar *text)
+html_select_set_text (HTMLSelect *select, const gchar *text)
 {
 	GtkWidget *w = GTK_WIDGET (HTML_EMBEDDED (select)->widget);
 	GtkListStore *store;
diff --git a/gtkhtml/htmlselect.h b/gtkhtml/htmlselect.h
index 2a3237d..5b5b2f5 100644
--- a/gtkhtml/htmlselect.h
+++ b/gtkhtml/htmlselect.h
@@ -61,9 +61,9 @@ HTMLObject *html_select_new         (GtkWidget       *parent,
 				     gint             size,
 				     gboolean         multi);
 void        html_select_add_option  (HTMLSelect      *select,
-				     gchar           *value,
+				     const gchar     *value,
 				     gboolean         selected);
 void        html_select_set_text    (HTMLSelect      *select,
-				     gchar           *text);
+				     const gchar     *text);
 
 #endif /* _HTMLSELECT_H_ */
diff --git a/gtkhtml/htmlshape.c b/gtkhtml/htmlshape.c
index 7cd8ba6..ab33dfd 100644
--- a/gtkhtml/htmlshape.c
+++ b/gtkhtml/htmlshape.c
@@ -35,8 +35,8 @@ struct _HTMLShape {
 };
 
 static HTMLLength *
-parse_length (char **str) {
-	char *cur = *str;
+parse_length (const char **str) {
+	const char *cur = *str;
 	HTMLLength *len = g_new0 (HTMLLength, 1);
 
 	/* g_warning ("begin \"%s\"", *str); */
@@ -78,7 +78,7 @@ parse_length (char **str) {
 }
 
 void
-html_length_array_parse (GPtrArray *array, char *str)
+html_length_array_parse (GPtrArray *array, const char *str)
 {
 	HTMLLength *length;
 
diff --git a/gtkhtml/htmlshape.h b/gtkhtml/htmlshape.h
index 4727f79..c3ac8ab 100644
--- a/gtkhtml/htmlshape.h
+++ b/gtkhtml/htmlshape.h
@@ -31,7 +31,7 @@ typedef enum {
 
 typedef struct _HTMLShape HTMLShape;
 
-void         html_length_array_parse   (GPtrArray *array, char *str);
+void         html_length_array_parse   (GPtrArray *array, const char *str);
 void         html_length_array_destroy (GPtrArray *array);
 
 HTMLShape *  html_shape_new      (char *type, char *coords, char *href, char *target);
diff --git a/gtkhtml/htmlstringtokenizer.c b/gtkhtml/htmlstringtokenizer.c
index 3dd9409..ef35485 100644
--- a/gtkhtml/htmlstringtokenizer.c
+++ b/gtkhtml/htmlstringtokenizer.c
@@ -67,7 +67,7 @@ typedef enum _QuoteType QuoteType;
 void
 html_string_tokenizer_tokenize (HTMLStringTokenizer *t,
 				const gchar *str,
-				gchar *separators)
+				const gchar *separators)
 {
 	const gchar *src, *x;
 	QuoteType quoted;
diff --git a/gtkhtml/htmlstringtokenizer.h b/gtkhtml/htmlstringtokenizer.h
index e20b709..7e24269 100644
--- a/gtkhtml/htmlstringtokenizer.h
+++ b/gtkhtml/htmlstringtokenizer.h
@@ -40,7 +40,7 @@ HTMLStringTokenizer *html_string_tokenizer_new              (void);
 void                 html_string_tokenizer_destroy          (HTMLStringTokenizer *st);
 void                 html_string_tokenizer_tokenize         (HTMLStringTokenizer *t,
 							     const gchar         *str,
-							     gchar               *separators);
+							     const gchar         *separators);
 gboolean             html_string_tokenizer_has_more_tokens  (HTMLStringTokenizer *t);
 gchar               *html_string_tokenizer_next_token       (HTMLStringTokenizer *t);
 
diff --git a/gtkhtml/htmltablepriv.h b/gtkhtml/htmltablepriv.h
index daedef8..8aacfdc 100644
--- a/gtkhtml/htmltablepriv.h
+++ b/gtkhtml/htmltablepriv.h
@@ -28,9 +28,5 @@
 void  html_table_alloc_cell  (HTMLTable     *table,
 			      gint           r,
 			      gint           c);
-void  html_table_set_cell    (HTMLTable     *table,
-			      gint           r,
-			      gint           c,
-			      HTMLTableCell *cell);
 
 #endif
diff --git a/gtkhtml/htmltext.c b/gtkhtml/htmltext.c
index fccb422..43976d0 100644
--- a/gtkhtml/htmltext.c
+++ b/gtkhtml/htmltext.c
@@ -1620,7 +1620,7 @@ save_open_attrs (HTMLEngineSaveState *state, GSList *attrs)
 	for (; attrs; attrs = attrs->next) {
 		PangoAttribute *attr = (PangoAttribute *) attrs->data;
 		HTMLEngine *e = state->engine;
-		gchar *tag = NULL;
+		const gchar *tag = NULL;
 		gboolean free_tag = FALSE;
 
 		switch (attr->klass->type) {
@@ -1669,7 +1669,7 @@ save_open_attrs (HTMLEngineSaveState *state, GSList *attrs)
 			if (!html_engine_save_output_string (state, "%s", tag))
 				rv = FALSE;
 			if (free_tag)
-				g_free (tag);
+				g_free ((gpointer) tag);
 			if (!rv)
 				break;
 		}
@@ -1684,7 +1684,7 @@ save_close_attrs (HTMLEngineSaveState *state, GSList *attrs)
 	for (; attrs; attrs = attrs->next) {
 		PangoAttribute *attr = (PangoAttribute *) attrs->data;
 		HTMLEngine *e = state->engine;
-		gchar *tag = NULL;
+		const gchar *tag = NULL;
 
 		switch (attr->klass->type) {
 		case PANGO_ATTR_WEIGHT:
@@ -3142,9 +3142,9 @@ html_text_get_char (HTMLText *text, guint offset)
 
 struct _HTMLMagicInsertMatch
 {
-	gchar *regex;
+	const gchar *regex;
 	regex_t *preg;
-	gchar *prefix;
+	const gchar *prefix;
 };
 
 typedef struct _HTMLMagicInsertMatch HTMLMagicInsertMatch;
@@ -3178,7 +3178,7 @@ html_engine_init_magic_links (void)
 }
 
 static void
-paste_link (HTMLEngine *engine, HTMLText *text, gint so, gint eo, gchar *prefix)
+paste_link (HTMLEngine *engine, HTMLText *text, gint so, gint eo, const gchar *prefix)
 {
 	gchar *href;
 	gchar *base;
diff --git a/gtkhtml/htmltokenizer.c b/gtkhtml/htmltokenizer.c
index 1b6a993..9a504dc 100644
--- a/gtkhtml/htmltokenizer.c
+++ b/gtkhtml/htmltokenizer.c
@@ -168,7 +168,7 @@ static gchar   *html_tokenizer_converted_token (HTMLTokenizer *t,const gchar* to
 static HTMLTokenizer *html_tokenizer_real_clone     (HTMLTokenizer *);
 
 /* blocking tokens */
-static gchar             *html_tokenizer_blocking_get_name   (HTMLTokenizer  *t);
+static const gchar       *html_tokenizer_blocking_get_name   (HTMLTokenizer  *t);
 static void               html_tokenizer_blocking_pop        (HTMLTokenizer  *t);
 static void               html_tokenizer_blocking_push       (HTMLTokenizer  *t,
 							      HTMLTokenType   tt);
@@ -1429,7 +1429,7 @@ html_tokenizer_real_write (HTMLTokenizer *t, const gchar *string, size_t size)
 		html_tokenizer_tokenize_one_char (t, &src);
 }
 
-static gchar *
+static const gchar *
 html_tokenizer_blocking_get_name (HTMLTokenizer *t)
 {
 	switch (GPOINTER_TO_INT (t->priv->blocking->data)) {
diff --git a/gtkhtml/test-stress.c b/gtkhtml/test-stress.c
index b5b02d7..f871c18 100644
--- a/gtkhtml/test-stress.c
+++ b/gtkhtml/test-stress.c
@@ -21,7 +21,7 @@
 #include "htmltext.h"
 
 typedef struct {
-	char *name;
+	const char *name;
 	int (*test_function) (GtkHTML *html);
 } Test;
 
diff --git a/gtkhtml/test-suite.c b/gtkhtml/test-suite.c
index f24faa3..9a60783 100644
--- a/gtkhtml/test-suite.c
+++ b/gtkhtml/test-suite.c
@@ -18,7 +18,7 @@
 #include "htmltext.h"
 
 typedef struct {
-	char *name;
+	const char *name;
 	int (*test_function) (GtkHTML *html);
 } Test;
 
@@ -66,7 +66,7 @@ static Test tests[] = {
 	{ NULL, NULL }
 };
 
-static void load_editable (GtkHTML *html, char *s)
+static void load_editable (GtkHTML *html, const char *s)
 {
 	gtk_html_set_editable (html, FALSE);
 	gtk_html_load_from_string (html, s, -1);
diff --git a/gtkhtml/test.c b/gtkhtml/test.c
index f39a3e7..eb24449 100644
--- a/gtkhtml/test.c
+++ b/gtkhtml/test.c
@@ -50,7 +50,7 @@ static GPtrArray *examples;
 
 GtkWidget *html;
 
-static gchar *welcome =
+static const gchar *welcome =
 "Czech (&#268;e&#353;tina) &#268;au, Ahoj, Dobr&#253; den<BR>"
 "French (Français) Bonjour, Salut<BR>"
 "Korean (í??ê¸?)   ì??ë??í??ì?¸ì??, ì??ë??í??ì?­ë??ê¹?<BR>"
@@ -60,7 +60,7 @@ static gchar *welcome =
 "Japanese <span lang=\"ja\">å??æ°?	é??ç?º<BR></FONT>";
 
 static void
-url_requested (GtkHTML *html, const char *url, GtkHTMLStream *stream, gpointer data)
+url_requested (GtkHTML *unused, const char *url, GtkHTMLStream *stream, gpointer data)
 {
 	int fd;
 	gchar *filename;
@@ -86,7 +86,7 @@ url_requested (GtkHTML *html, const char *url, GtkHTMLStream *stream, gpointer d
 }
 
 static gchar *
-encode_html (gchar *txt)
+encode_html (const gchar *txt)
 {
 	GString *str;
 	gchar *rv;



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]