[dia] general: bunch of warning fixes



commit e3b64068127d44bd097536187a635396423c995b
Author: Zander Brown <zbrown gnome org>
Date:   Fri Mar 27 18:56:59 2020 +0000

    general: bunch of warning fixes

 app/app_procs.c                           |  18 +-
 app/defaults.c                            |  31 +-
 app/dia-colour-area.c                     |  85 ++--
 app/dia-line-width-area.c                 |  56 ++-
 app/diagram.c                             |  35 +-
 app/diapagelayout.c                       |  17 +-
 app/disp_callbacks.c                      | 715 ++++++++++++++++--------------
 app/interface.c                           |  39 +-
 app/layer-editor/layer_dialog.c           |  68 +--
 app/load_save.c                           |   9 +-
 app/modify_tool.c                         |  63 +--
 app/object_ops.c                          | 176 ++++----
 app/properties-dialog.c                   |   8 +-
 app/tool.c                                |  39 +-
 lib/arrows.c                              |  55 ++-
 lib/autoroute.c                           |  38 +-
 lib/boundingbox.c                         |  57 +--
 lib/dia_image.c                           |   2 +-
 lib/dia_svg.c                             | 556 ++++++++++++-----------
 lib/dia_xml.c                             |  34 +-
 lib/dialinechooser.c                      |  62 +--
 lib/diapathrenderer.c                     |  10 +-
 lib/font.c                                |  46 +-
 lib/geometry.c                            | 124 +++---
 lib/group.c                               | 115 +++--
 lib/orth_conn.c                           | 450 +++++++++++--------
 lib/path-math.c                           |  95 ++--
 lib/poly_conn.c                           | 123 +++--
 lib/polyshape.c                           |  56 ++-
 lib/prop_sdarray_widget.c                 |  38 +-
 lib/propdialogs.c                         |   8 +-
 lib/renderer/diacairo-interactive.c       |   5 +-
 lib/renderer/diacairo.c                   |  18 +-
 lib/sheet.c                               |   6 +-
 lib/text.c                                | 137 +++---
 lib/textline.c                            |  29 +-
 objects/AADL/aadlbox.c                    |  90 ++--
 objects/Database/reference.c              |  26 +-
 objects/FS/flow-ortho.c                   |  34 +-
 objects/FS/flow.c                         |  24 +-
 objects/GRAFCET/action_text_draw.c        |  35 +-
 objects/Istar/link.c                      |   2 +
 objects/KAOS/metaandorrel.c               |  34 +-
 objects/KAOS/metabinrel.c                 |  41 +-
 objects/Misc/tree.c                       |  48 +-
 objects/SADT/arrow.c                      |  43 +-
 objects/UML/classicon.c                   |   2 +
 objects/UML/dependency.c                  |  40 +-
 objects/UML/generalization.c              |  22 +-
 objects/UML/lifeline.c                    |  13 +-
 objects/UML/realizes.c                    |  34 +-
 objects/UML/state.c                       |  56 ++-
 objects/UML/umloperation.c                |  42 +-
 objects/UML/umlparameter.c                |   4 +
 objects/custom/shape_info.c               | 352 ++++++++-------
 objects/flowchart/diamond.c               | 164 ++++---
 objects/flowchart/parallelogram.c         | 158 ++++---
 objects/network/bus.c                     |  50 ++-
 objects/standard/box.c                    |  81 ++--
 objects/standard/ellipse.c                | 135 +++---
 objects/standard/line.c                   |  27 +-
 plug-ins/cgm/cgm.c                        | 167 +++----
 plug-ins/drs/dia-render-script-renderer.c | 279 +++++++-----
 plug-ins/dxf/dxf-export.c                 |  37 +-
 plug-ins/hpgl/hpgl.c                      |  45 +-
 plug-ins/metapost/render_metapost.c       | 423 +++++++++---------
 plug-ins/pgf/render_pgf.c                 | 489 +++++++++++---------
 plug-ins/postscript/diapsrenderer.c       | 293 ++++++------
 plug-ins/python/pydia-render.c            |  14 +-
 plug-ins/svg/render_svg.c                 |  36 +-
 plug-ins/svg/svg-import.c                 |  53 ++-
 plug-ins/vdx/vdx-export.c                 | 102 +++--
 72 files changed, 3880 insertions(+), 3038 deletions(-)
---
diff --git a/app/app_procs.c b/app/app_procs.c
index 8842b88c..0e55c8b2 100644
--- a/app/app_procs.c
+++ b/app/app_procs.c
@@ -896,15 +896,15 @@ app_exit (void)
       GtkWidget                *dialog;
       int                       result;
       exit_dialog_item_array_t *items  = NULL;
-      GList *                   list;
+      GList *                   diagrams;
       Diagram *                 diagram;
 
       dialog = exit_dialog_make (GTK_WINDOW (interface_get_toolbox_shell ()),
                                  _("Exiting Dia"));
 
-      list = dia_open_diagrams ();
-      while (list) {
-        diagram = list->data;
+      diagrams = dia_open_diagrams ();
+      while (diagrams) {
+        diagram = diagrams->data;
 
         if (diagram_is_modified (diagram)) {
           const gchar * name = diagram_get_name (diagram);
@@ -912,7 +912,7 @@ app_exit (void)
           exit_dialog_add_item (dialog, name, path, diagram);
         }
 
-        list = g_list_next (list);
+        diagrams = g_list_next (diagrams);
       }
 
       result = exit_dialog_run (dialog, &items);
@@ -943,14 +943,14 @@ app_exit (void)
         dia_context_release (ctx);
         exit_dialog_free_items (items);
       } else if (result == EXIT_DIALOG_EXIT_NO_SAVE) {
-        list = dia_open_diagrams ();
-        while (list) {
-          diagram = list->data;
+        diagrams = dia_open_diagrams ();
+        while (diagrams) {
+          diagram = diagrams->data;
 
           /* slight hack: don't ask again */
           diagram_set_modified (diagram, FALSE);
           undo_clear (diagram->undo);
-          list = g_list_next (list);
+          diagrams = g_list_next (diagrams);
         }
       }
     } else {
diff --git a/app/defaults.c b/app/defaults.c
index c7d6fc94..8a5e1a58 100644
--- a/app/defaults.c
+++ b/app/defaults.c
@@ -36,16 +36,18 @@ static DiaObject *current_object = NULL;
 
 static GtkWidget *no_defaults_dialog = NULL;
 
-static gint defaults_respond(GtkWidget *widget, gint response_id, gpointer data);
+static gint defaults_respond (GtkWidget *widget, gint response_id, gpointer data);
 
-static void create_dialog()
+
+static void
+create_dialog (void)
 {
-  dialog = gtk_dialog_new_with_buttons(_("Object defaults"),
-                                       NULL, 0,
-                                       _("_Close"), GTK_RESPONSE_CLOSE,
-                                       _("_Apply"), GTK_RESPONSE_APPLY,
-                                       _("_OK"), GTK_RESPONSE_OK,
-                                       NULL);
+  dialog = gtk_dialog_new_with_buttons (_("Object defaults"),
+                                        NULL, 0,
+                                        _("_Close"), GTK_RESPONSE_CLOSE,
+                                        _("_Apply"), GTK_RESPONSE_APPLY,
+                                        _("_OK"), GTK_RESPONSE_OK,
+                                        NULL);
 
   gtk_dialog_set_default_response (GTK_DIALOG(dialog), GTK_RESPONSE_OK);
 
@@ -53,17 +55,18 @@ static void create_dialog()
 
   gtk_window_set_role (GTK_WINDOW (dialog), "defaults_window");
 
-  g_signal_connect(G_OBJECT (dialog), "response",
-                  G_CALLBACK(defaults_respond), NULL);
-  g_signal_connect(G_OBJECT(dialog), "delete_event",
-                  G_CALLBACK(gtk_widget_hide), NULL);
+  g_signal_connect (G_OBJECT (dialog), "response",
+                    G_CALLBACK (defaults_respond), NULL);
+  g_signal_connect (G_OBJECT (dialog), "delete_event",
+                    G_CALLBACK (gtk_widget_hide), NULL);
 
-  no_defaults_dialog = gtk_label_new(_("This object has no defaults."));
+  no_defaults_dialog = gtk_label_new (_("This object has no defaults."));
   gtk_widget_show (no_defaults_dialog);
 
-  g_object_ref_sink(G_OBJECT(no_defaults_dialog));
+  g_object_ref_sink (G_OBJECT (no_defaults_dialog));
 }
 
+
 static gint
 defaults_dialog_destroyed(GtkWidget *widget, gpointer data)
 {
diff --git a/app/dia-colour-area.c b/app/dia-colour-area.c
index 1f6683ff..e7d2b439 100644
--- a/app/dia-colour-area.c
+++ b/app/dia-colour-area.c
@@ -205,62 +205,63 @@ dia_colour_area_edit (DiaColourArea *self)
     gtk_widget_show (self->color_select);
   }
 
-  selection = gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG 
(self->color_select));
+  selection =
+    gtk_color_selection_dialog_get_color_selection (GTK_COLOR_SELECTION_DIALOG (self->color_select));
 
-  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (selection), &gdk_color);
+  gtk_color_selection_set_current_color (GTK_COLOR_SELECTION (selection),
+                                         &gdk_color);
   gtk_color_selection_set_current_alpha (GTK_COLOR_SELECTION (selection),
                                          (guint) (color.alpha * 65535.0));
   //gtk_color_chooser_set_rgba (GTK_COLOR_CHOOSER (self->color_select), &color);
 }
 
-static gint
-dia_colour_area_event (GtkWidget *widget,
-                       GdkEvent  *event)
+
+static gboolean
+dia_colour_area_button_press_event (GtkWidget      *widget,
+                                    GdkEventButton *event)
 {
   DiaColourArea *self = DIA_COLOUR_AREA (widget);
-  GdkEventButton *bevent;
   int target;
 
-  switch (event->type) {
-    case GDK_BUTTON_PRESS:
-      bevent = (GdkEventButton *) event;
-
-      if (bevent->button == 1) {
-        switch ((target = dia_colour_area_target (self, bevent->x, bevent->y))) {
-          case FORE_AREA:
-          case BACK_AREA:
-            if (target == self->active_color) {
-              dia_colour_area_edit (self);
-            } else {
-              self->active_color = target;
-              /* Trigger redraw */
-              gtk_widget_queue_draw (GTK_WIDGET (self));
-            }
-            break;
-          case SWAP_AREA:
-            attributes_swap_fgbg();
-            /* Trigger redraw */
-            gtk_widget_queue_draw (GTK_WIDGET (self));
-            break;
-          case DEF_AREA:
-            attributes_default_fgbg();
-            /* Trigger redraw */
-            gtk_widget_queue_draw (GTK_WIDGET (self));
-            break;
-        }
-      }
-      break;
+  if (event->type != GDK_BUTTON_PRESS) {
+    return FALSE;
+  }
 
-    default:
-      break;
+  if (event->button == 1) {
+    switch ((target = dia_colour_area_target (self, event->x, event->y))) {
+      case FORE_AREA:
+      case BACK_AREA:
+        if (target == self->active_color) {
+          dia_colour_area_edit (self);
+        } else {
+          self->active_color = target;
+          /* Trigger redraw */
+          gtk_widget_queue_draw (GTK_WIDGET (self));
+        }
+        break;
+      case SWAP_AREA:
+        attributes_swap_fgbg ();
+        /* Trigger redraw */
+        gtk_widget_queue_draw (GTK_WIDGET (self));
+        break;
+      case DEF_AREA:
+        attributes_default_fgbg ();
+        /* Trigger redraw */
+        gtk_widget_queue_draw (GTK_WIDGET (self));
+        break;
+      default:
+        g_return_val_if_reached (FALSE);
+    }
   }
 
   return FALSE;
 }
 
+
 #include "pixmaps/swap.xpm"
 #include "pixmaps/default.xpm"
 
+
 static void
 dia_colour_area_class_init (DiaColourAreaClass *class)
 {
@@ -268,12 +269,15 @@ dia_colour_area_class_init (DiaColourAreaClass *class)
 
   widget_class = GTK_WIDGET_CLASS (class);
   widget_class->expose_event = dia_colour_area_draw;
-  widget_class->event = dia_colour_area_event;
+  widget_class->button_press_event = dia_colour_area_button_press_event;
 
-  attributes_set_foreground (persistence_register_color ("fg_color", &color_black));
-  attributes_set_background (persistence_register_color ("bg_color", &color_white));
+  attributes_set_foreground (persistence_register_color ("fg_color",
+                                                         &color_black));
+  attributes_set_background (persistence_register_color ("bg_color",
+                                                         &color_white));
 }
 
+
 static void
 dia_colour_area_init (DiaColourArea *self)
 {
@@ -288,6 +292,7 @@ dia_colour_area_init (DiaColourArea *self)
   gtk_widget_set_events (GTK_WIDGET (self), GDK_BUTTON_PRESS_MASK);
 }
 
+
 GtkWidget *
 dia_colour_area_new (int width,
                      int height)
diff --git a/app/dia-line-width-area.c b/app/dia-line-width-area.c
index 27e1ef87..1f8b154e 100644
--- a/app/dia-line-width-area.c
+++ b/app/dia-line-width-area.c
@@ -184,46 +184,39 @@ dia_line_width_area_draw (GtkWidget      *self, /*cairo_t *ctx*/
   return FALSE;
 }
 
-static gint
-dia_line_width_area_event (GtkWidget *self,
-                           GdkEvent  *event)
+
+static gboolean
+dia_line_width_area_button_press_event (GtkWidget      *self,
+                                        GdkEventButton *event)
 {
-  GdkEventButton *bevent;
   int target;
   DiaLineWidthArea *priv = DIA_LINE_WIDTH_AREA (self);
 
-  switch (event->type)
-    {
-    case GDK_BUTTON_PRESS:
-      bevent = (GdkEventButton *) event;
-      if (bevent->button == 1) {
-        target = linewidth_area_target (bevent->x, bevent->y);
-        if (target != 0) {
-          priv->active = target;
-          /* Trigger redraw */
-          gtk_widget_queue_draw (self);
-          attributes_set_default_linewidth(BASE_WIDTH*(target-1));
-        }
-      }
-      break;
-
-    case GDK_2BUTTON_PRESS:
-      if (priv->dialog == NULL)
+  if (event->type == GDK_2BUTTON_PRESS) {
+    if (priv->dialog == NULL) {
         dia_line_width_area_create_dialog (priv, GTK_WINDOW (gtk_widget_get_toplevel (self)));
-      else
-        gtk_widget_grab_focus (priv->button);
-      gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->button), attributes_get_default_linewidth ());
-
-      gtk_widget_show (priv->dialog);
-      break;
-
-    default:
-      break;
+    } else {
+      gtk_widget_grab_focus (priv->button);
     }
+    gtk_spin_button_set_value (GTK_SPIN_BUTTON (priv->button), attributes_get_default_linewidth ());
+
+    gtk_widget_show (priv->dialog);
+  } else if (event->type == GDK_BUTTON_PRESS) {
+    if (event->button == 1) {
+      target = linewidth_area_target (event->x, event->y);
+      if (target != 0) {
+        priv->active = target;
+        /* Trigger redraw */
+        gtk_widget_queue_draw (self);
+        attributes_set_default_linewidth (BASE_WIDTH * (target-1));
+      }
+    }
+  }
 
   return FALSE;
 }
 
+
 static void
 dia_line_width_area_class_init (DiaLineWidthAreaClass *class)
 {
@@ -231,11 +224,12 @@ dia_line_width_area_class_init (DiaLineWidthAreaClass *class)
 
   widget_class = GTK_WIDGET_CLASS (class);
   widget_class->expose_event = dia_line_width_area_draw;
-  widget_class->event = dia_line_width_area_event;
+  widget_class->button_press_event = dia_line_width_area_button_press_event;
 
   attributes_set_default_linewidth (persistence_register_real ("linewidth", 0.1));
 }
 
+
 static void
 dia_line_width_area_init (DiaLineWidthArea *self)
 {
diff --git a/app/diagram.c b/app/diagram.c
index b870beaa..a8d75af1 100644
--- a/app/diagram.c
+++ b/app/diagram.c
@@ -850,7 +850,7 @@ diagram_select(Diagram *diagram, DiaObject *obj)
 }
 
 void
-diagram_select_list(Diagram *dia, GList *list)
+diagram_select_list (Diagram *dia, GList *list)
 {
   g_return_if_fail (dia && list);
   /* otherwise we would signal objects step by step */
@@ -858,25 +858,27 @@ diagram_select_list(Diagram *dia, GList *list)
   while (list != NULL) {
     DiaObject *obj = (DiaObject *)list->data;
 
-    diagram_select(dia, obj);
+    diagram_select (dia, obj);
 
-    list = g_list_next(list);
+    list = g_list_next (list);
   }
-  if (get_active_focus((DiagramData*) dia) == NULL) {
-    textedit_activate_first(ddisplay_active());
+  if (get_active_focus ((DiagramData*) dia) == NULL) {
+    textedit_activate_first (ddisplay_active ());
   }
   g_signal_handlers_unblock_by_func (dia, DIA_DIAGRAM_DATA_GET_CLASS (dia)->selection_changed, NULL);
   g_signal_emit_by_name (dia, "selection_changed", g_list_length (dia->data->selected));
 }
 
+
 int
-diagram_is_selected(Diagram *diagram, DiaObject *obj)
+diagram_is_selected (Diagram *diagram, DiaObject *obj)
 {
-  return g_list_find(diagram->data->selected, obj) != NULL;
+  return g_list_find (diagram->data->selected, obj) != NULL;
 }
 
+
 void
-diagram_redraw_all()
+diagram_redraw_all (void)
 {
   GList *list;
   Diagram *dia;
@@ -886,16 +888,18 @@ diagram_redraw_all()
   while (list != NULL) {
     dia = (Diagram *) list->data;
 
-    diagram_add_update_all(dia);
-    diagram_flush(dia);
+    diagram_add_update_all (dia);
+    diagram_flush (dia);
 
-    list = g_list_next(list);
+    list = g_list_next (list);
   }
+
   return;
 }
 
+
 void
-diagram_add_update_all(Diagram *dia)
+diagram_add_update_all (Diagram *dia)
 {
   GSList *l;
   DDisplay *ddisp;
@@ -904,12 +908,13 @@ diagram_add_update_all(Diagram *dia)
   while (l!=NULL) {
     ddisp = (DDisplay *) l->data;
 
-    ddisplay_add_update_all(ddisp);
+    ddisplay_add_update_all (ddisp);
 
-    l = g_slist_next(l);
+    l = g_slist_next (l);
   }
 }
 
+
 void
 diagram_add_update (Diagram *dia, const DiaRectangle *update)
 {
@@ -1751,6 +1756,7 @@ dia_diagram_pick_guide_h (Diagram *dia,
         }
         break;
 
+      case GTK_ORIENTATION_VERTICAL:
       default:
         continue;
       }
@@ -1804,6 +1810,7 @@ dia_diagram_pick_guide_v (Diagram *dia,
         }
         break;
 
+      case GTK_ORIENTATION_HORIZONTAL:
       default:
         continue;
     }
diff --git a/app/diapagelayout.c b/app/diapagelayout.c
index 5b35e40d..c0610510 100644
--- a/app/diapagelayout.c
+++ b/app/diapagelayout.c
@@ -433,14 +433,15 @@ dia_page_layout_set_orientation(DiaPageLayout *self,
                                DiaPageOrientation orient)
 {
   switch (orient) {
-  case DIA_PAGE_ORIENT_PORTRAIT:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->orient_portrait),
-                                TRUE);
-    break;
-  case DIA_PAGE_ORIENT_LANDSCAPE:
-    gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(self->orient_landscape),
-                                TRUE);
-    break;
+    case DIA_PAGE_ORIENT_PORTRAIT:
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->orient_portrait),
+                                    TRUE);
+      break;
+    case DIA_PAGE_ORIENT_LANDSCAPE:
+    default:
+      gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (self->orient_landscape),
+                                    TRUE);
+      break;
   }
 }
 
diff --git a/app/disp_callbacks.c b/app/disp_callbacks.c
index 41206cf3..f1dbb7d4 100644
--- a/app/disp_callbacks.c
+++ b/app/disp_callbacks.c
@@ -605,29 +605,33 @@ ddisplay_im_context_preedit_changed(GtkIMContext *context,
   }
 }
 
+
 static void
 _scroll_page (DDisplay *ddisp, Direction dir)
 {
   Point delta = {0, 0};
 
   switch (dir) {
-  case DIR_LEFT :
-    delta.x = ddisp->diagram->data->paper.width * ddisp->diagram->data->paper.scaling;
-    break;
-  case DIR_RIGHT :
-    delta.x = -ddisp->diagram->data->paper.width * ddisp->diagram->data->paper.scaling;
-    break;
-  case DIR_UP :
-    delta.y = -ddisp->diagram->data->paper.height * ddisp->diagram->data->paper.scaling;
-    break;
-  case DIR_DOWN :
-    delta.y = ddisp->diagram->data->paper.height * ddisp->diagram->data->paper.scaling;
-    break;
+    case DIR_LEFT:
+      delta.x = ddisp->diagram->data->paper.width * ddisp->diagram->data->paper.scaling;
+      break;
+    case DIR_RIGHT:
+      delta.x = -ddisp->diagram->data->paper.width * ddisp->diagram->data->paper.scaling;
+      break;
+    case DIR_UP:
+      delta.y = -ddisp->diagram->data->paper.height * ddisp->diagram->data->paper.scaling;
+      break;
+    case DIR_DOWN:
+      delta.y = ddisp->diagram->data->paper.height * ddisp->diagram->data->paper.scaling;
+      break;
+    default:
+      g_return_if_reached ();
   }
-  ddisplay_scroll(ddisp, &delta);
-  ddisplay_flush(ddisp);
+  ddisplay_scroll (ddisp, &delta);
+  ddisplay_flush (ddisp);
 }
 
+
 static void
 _scroll_step (DDisplay *ddisp, guint keyval)
 {
@@ -681,12 +685,15 @@ hold_timeout_handler(gpointer data)
 }
 
 
-/** Main input handler for a diagram canvas.
+/**
+ * ddisplay_canvas_events:
+ *
+ * Main input handler for a diagram canvas.
  */
 gint
 ddisplay_canvas_events (GtkWidget *canvas,
-                       GdkEvent  *event,
-                       DDisplay *ddisp)
+                        GdkEvent  *event,
+                        DDisplay  *ddisp)
 {
   GdkEventMotion *mevent;
   GdkEventButton *bevent;
@@ -706,356 +713,394 @@ ddisplay_canvas_events (GtkWidget *canvas,
 
   return_val = FALSE;
 
-  if (!gtk_widget_get_window(canvas))
+  if (!gtk_widget_get_window (canvas)) {
     return FALSE;
+  }
 
-  switch (event->type)
-  {
-      case GDK_SCROLL:
-        sevent = (GdkEventScroll *) event;
-
-        switch (sevent->direction)
-        {
-            case GDK_SCROLL_UP:
-              if (sevent->state & GDK_SHIFT_MASK)
-                  ddisplay_scroll_left(ddisp);
-              else if (sevent->state & GDK_CONTROL_MASK) {
-                  ddisplay_untransform_coords(ddisp, (int)sevent->x, (int)sevent->y, &middle.x, &middle.y);
-                 /* zooming with the wheel in small steps 1^(1/8) */
-                  ddisplay_zoom_centered(ddisp, &middle, 1.090508);
-              }
-              else
-                  ddisplay_scroll_up(ddisp);
-              break;
-            case GDK_SCROLL_DOWN:
-              if (sevent->state & GDK_SHIFT_MASK)
-                  ddisplay_scroll_right(ddisp);
-              else if (sevent->state & GDK_CONTROL_MASK) {
-                  ddisplay_untransform_coords(ddisp, (int)sevent->x, (int)sevent->y, &middle.x, &middle.y);
-                 /* zooming with the wheel in small steps 1/(1^(1/8)) */
-                  ddisplay_zoom_centered(ddisp, &middle, 0.917004);
-              }
-              else
-                  ddisplay_scroll_down(ddisp);
-              break;
-            case GDK_SCROLL_LEFT:
-              ddisplay_scroll_left(ddisp);
-              break;
-            case GDK_SCROLL_RIGHT:
-              ddisplay_scroll_right(ddisp);
-              break;
-            default:
-              break;
-        }
-        ddisplay_flush (ddisp);
-        break;
+  switch (event->type) {
+    case GDK_SCROLL:
+      sevent = (GdkEventScroll *) event;
+
+      switch (sevent->direction) {
+        case GDK_SCROLL_UP:
+          if (sevent->state & GDK_SHIFT_MASK) {
+            ddisplay_scroll_left(ddisp);
+          } else if (sevent->state & GDK_CONTROL_MASK) {
+            ddisplay_untransform_coords(ddisp, (int)sevent->x, (int)sevent->y, &middle.x, &middle.y);
+            /* zooming with the wheel in small steps 1^(1/8) */
+            ddisplay_zoom_centered(ddisp, &middle, 1.090508);
+          } else {
+            ddisplay_scroll_up (ddisp);
+          }
+          break;
+        case GDK_SCROLL_DOWN:
+          if (sevent->state & GDK_SHIFT_MASK) {
+            ddisplay_scroll_right (ddisp);
+          } else if (sevent->state & GDK_CONTROL_MASK) {
+            ddisplay_untransform_coords (ddisp,
+                                         (int) sevent->x,
+                                         (int) sevent->y,
+                                         &middle.x,
+                                         &middle.y);
+            /* zooming with the wheel in small steps 1/(1^(1/8)) */
+            ddisplay_zoom_centered (ddisp, &middle, 0.917004);
+          } else {
+            ddisplay_scroll_down (ddisp);
+          }
+          break;
+        case GDK_SCROLL_LEFT:
+          ddisplay_scroll_left (ddisp);
+          break;
+        case GDK_SCROLL_RIGHT:
+          ddisplay_scroll_right (ddisp);
+          break;
+        default:
+          break;
+      }
+      ddisplay_flush (ddisp);
+      break;
 
-      case GDK_FOCUS_CHANGE: {
-        GdkEventFocus *focus = (GdkEventFocus*) event;
+    case GDK_FOCUS_CHANGE: {
+        GdkEventFocus *focus_evt = (GdkEventFocus*) event;
         hold_remove_handler ();
-        if (focus->in) {
+        if (focus_evt->in) {
           display_set_active (ddisp);
           ddisplay_do_update_menu_sensitivity (ddisp);
         }
         break;
       }
+    case GDK_2BUTTON_PRESS:
+      display_set_active (ddisp);
+      hold_remove_handler ();
+      bevent = (GdkEventButton *) event;
+
+      switch (bevent->button) {
+        case 1:
+          if (transient_tool) {
+            break;
+          }
+          if (active_tool->double_click_func) {
+            (*active_tool->double_click_func) (active_tool, bevent, ddisp);
+          }
+          break;
+        case 2:
+        case 3:
+        default:
+          break;
+      }
+      break;
 
-      case GDK_2BUTTON_PRESS:
-        display_set_active(ddisp);
-       hold_remove_handler();
-        bevent = (GdkEventButton *) event;
+    case GDK_BUTTON_PRESS:
+      display_set_active (ddisp);
+      bevent = (GdkEventButton *) event;
 
-        switch (bevent->button)
-        {
-            case 1:
-              if (transient_tool)
-                break;
-              if (active_tool->double_click_func)
-                (*active_tool->double_click_func) (active_tool, bevent, ddisp);
-              break;
+      ddisplay_set_clicked_point (ddisp, bevent->x, bevent->y);
 
-            case 2:
-              break;
+      switch (bevent->button) {
+        case 1:
+          if (transient_tool) {
+            break;
+          }
+          /* get the focus again, may be lost by zoom combo */
+          moving = TRUE;
+          gtk_widget_grab_focus (canvas);
+          if (active_tool->button_press_func) {
+            (*active_tool->button_press_func) (active_tool, bevent, ddisp);
+          }
 
-            case 3:
-              break;
+          /* Detect user holding down the button.
+          * Set timeout for 1sec. If timeout is called, user must still
+          * be holding. If user releases button, remove timeout. */
+          hold_data.event = gdk_event_copy (event); /* need to free later */
+          hold_data.ddisp = ddisp;
+          hold_data.tag = g_timeout_add (1000, hold_timeout_handler, NULL);
+          break;
+        case 2:
+          if (ddisp->menu_bar == NULL && !is_integrated_ui ()) {
+            popup_object_menu (ddisp, event);
+          } else if (!transient_tool) {
+            tool_reset ();
+            gtk_widget_grab_focus (canvas);
+            transient_tool = create_scroll_tool ();
+            (*transient_tool->button_press_func) (transient_tool, bevent, ddisp);
+          }
+          break;
 
-            default:
+        case 3:
+          if (transient_tool) {
+            break;
+          }
+          if (ddisp->menu_bar == NULL) {
+            if (bevent->state & GDK_CONTROL_MASK || is_integrated_ui ()) {
+                  /* for two button mouse users ... */
+              popup_object_menu (ddisp, event);
               break;
-        }
-        break;
-
-      case GDK_BUTTON_PRESS:
-        display_set_active (ddisp);
-        bevent = (GdkEventButton *) event;
+            }
+            ddisplay_popup_menu (ddisp, bevent);
+            break;
+          } else {
+            popup_object_menu (ddisp, event);
+            break;
+          }
+        default:
+          break;
+      }
+      break;
 
-        ddisplay_set_clicked_point (ddisp, bevent->x, bevent->y);
+    case GDK_BUTTON_RELEASE:
+      display_set_active (ddisp);
+      bevent = (GdkEventButton *) event;
 
-        switch (bevent->button) {
-            case 1:
-              if (transient_tool) {
-                break;
-              }
-              /* get the focus again, may be lost by zoom combo */
-              moving = TRUE;
-              gtk_widget_grab_focus (canvas);
-              if (active_tool->button_press_func) {
-                (*active_tool->button_press_func) (active_tool, bevent, ddisp);
-              }
-
-              /* Detect user holding down the button.
-              * Set timeout for 1sec. If timeout is called, user must still
-              * be holding. If user releases button, remove timeout. */
-              hold_data.event = gdk_event_copy (event); /* need to free later */
-              hold_data.ddisp = ddisp;
-              hold_data.tag = g_timeout_add (1000, hold_timeout_handler, NULL);
-              break;
-            case 2:
-              if (ddisp->menu_bar == NULL && !is_integrated_ui ()) {
-                popup_object_menu (ddisp, event);
-              } else if (!transient_tool) {
-                tool_reset ();
-                gtk_widget_grab_focus (canvas);
-                transient_tool = create_scroll_tool ();
-                (*transient_tool->button_press_func) (transient_tool, bevent, ddisp);
-              }
-              break;
-
-            case 3:
-              if (transient_tool) {
-                break;
-              }
-              if (ddisp->menu_bar == NULL) {
-                if (bevent->state & GDK_CONTROL_MASK || is_integrated_ui ()) {
-                      /* for two button mouse users ... */
-                  popup_object_menu (ddisp, event);
-                  break;
-                }
-                ddisplay_popup_menu (ddisp, bevent);
-                break;
-              } else {
-                popup_object_menu (ddisp, event);
-                break;
-              }
-            default:
-              break;
-        }
-        break;
+      switch (bevent->button) {
+        case 1:
+          if (moving) {
+            moving = FALSE;
+          }
+          if (active_tool->button_release_func) {
+            (*active_tool->button_release_func) (active_tool,
+                                                 bevent, ddisp);
+          }
+          /* Button Press and Hold - remove handler then deallocate memory */
+          hold_remove_handler ();
+          break;
+        case 2:
+          if (transient_tool) {
+            (*transient_tool->button_release_func) (transient_tool,
+                                                    bevent,
+                                                    ddisp);
+
+            tool_free (transient_tool);
+            transient_tool = NULL;
+          }
+          break;
+        case 3:
+          break;
+        default:
+          break;
+      }
+      break;
 
-      case GDK_BUTTON_RELEASE:
-        display_set_active(ddisp);
-        bevent = (GdkEventButton *) event;
-
-        switch (bevent->button) {
-            case 1:
-              if (moving) {
-                moving = FALSE;
-              }
-              if (active_tool->button_release_func) {
-                (*active_tool->button_release_func) (active_tool,
-                                                     bevent, ddisp);
-              }
-              /* Button Press and Hold - remove handler then deallocate memory */
-              hold_remove_handler ();
-              break;
-            case 2:
-              if (transient_tool) {
-                (*transient_tool->button_release_func) (transient_tool,
-                                                        bevent,
-                                                        ddisp);
-
-                tool_free (transient_tool);
-                transient_tool = NULL;
-              }
-              break;
-            case 3:
-              break;
-            default:
-              break;
-        }
-        break;
+    case GDK_MOTION_NOTIFY:
+      /*  get the pointer position  */
+      gdk_window_get_pointer (gtk_widget_get_window(canvas), &tx, &ty, &tmask);
+      hold_remove_handler();
 
-      case GDK_MOTION_NOTIFY:
-       /*  get the pointer position  */
-       gdk_window_get_pointer (gtk_widget_get_window(canvas), &tx, &ty, &tmask);
-       hold_remove_handler();
+      mevent = (GdkEventMotion *) event;
 
-        mevent = (GdkEventMotion *) event;
+      if (mevent->is_hint) {
+        mevent->x = tx;
+        mevent->y = ty;
+        mevent->state = tmask;
+        mevent->is_hint = FALSE;
+      }
+      if (transient_tool && (*transient_tool->motion_func)) {
+        (*transient_tool->motion_func) (transient_tool, mevent, ddisp);
+      } else if (active_tool->motion_func) {
+        (*active_tool->motion_func) (active_tool, mevent, ddisp);
+      }
+      break;
 
-        if (mevent->is_hint) {
-          mevent->x = tx;
-          mevent->y = ty;
-          mevent->state = tmask;
-          mevent->is_hint = FALSE;
-        }
-        if (transient_tool && (*transient_tool->motion_func))
-          (*transient_tool->motion_func) (transient_tool, mevent, ddisp);
-        else if (active_tool->motion_func)
-          (*active_tool->motion_func) (active_tool, mevent, ddisp);
+    case GDK_KEY_PRESS:
+      if (moving) {
+        /*Disable Keyboard accels whilst draggin an object*/
         break;
-
-      case GDK_KEY_PRESS:
-       if (moving)     /*Disable Keyboard accels whilst draggin an object*/
-               break;
-        display_set_active(ddisp);
-        kevent = (GdkEventKey *)event;
-        state = kevent->state;
-        key_handled = FALSE;
-        im_context_used = FALSE;
-#if 0
-       printf("Key input %d in state %d\n", kevent->keyval, textedit_mode(ddisp));
-#endif
-        focus = get_active_focus((DiagramData *) ddisp->diagram);
-        if (focus != NULL) {
-         /* Keys goes to the active focus. */
-         obj = focus_get_object(focus);
-         if (diagram_is_selected(ddisp->diagram, obj)) {
-
-           if (!gtk_im_context_filter_keypress(
-                 GTK_IM_CONTEXT(ddisp->im_context), kevent)) {
-
-             switch (kevent->keyval) {
-                 case GDK_Tab:
-                   focus = textedit_move_focus(ddisp, focus,
-                                               (state & GDK_SHIFT_MASK) == 0);
-                   obj = focus_get_object(focus);
-                   break;
-                 case GDK_Escape:
-                   textedit_deactivate_focus();
-                   tool_reset ();
-                   ddisplay_do_update_menu_sensitivity(ddisp);
-                   break;
-                 default:
-                   /*! key event not swallowed by the input method ? */
-                   handle_key_event(ddisp, focus, kevent->state, kevent->keyval,
-                                    kevent->string, kevent->length);
-
-                   diagram_flush(ddisp->diagram);
-             }
-           }
-           return_val = key_handled = im_context_used = TRUE;
-         }
-       }
-
-#if 0 /* modifier requirment added 2004-07-17, IMO reenabling unmodified keys here
-               * shouldn't break im_context handling. How to test?    --hb
-               */
-        if (!key_handled && (state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))) {
-#else
-        if (!key_handled) {
-#endif
-              /* IM doesn't need receive keys, take care of it ourselves. */
-          return_val = TRUE;
-
-          switch(kevent->keyval) {
-             case GDK_Home :
-             case GDK_KP_Home :
-               /* match upper left corner of the diagram with it's view */
-               ddisplay_set_origo(ddisp, ddisp->diagram->data->extents.left, 
ddisp->diagram->data->extents.top);
-               ddisplay_update_scrollbars(ddisp);
-               ddisplay_add_update_all(ddisp);
-               break;
-             case GDK_End :
-             case GDK_KP_End :
-               /* match lower right corner of the diagram with it's view */
-               visible = &ddisp->visible;
-               ddisplay_set_origo(ddisp,
-                                  ddisp->diagram->data->extents.right - (visible->right - visible->left),
-                                  ddisp->diagram->data->extents.bottom - (visible->bottom - visible->top));
-               ddisplay_update_scrollbars(ddisp);
-               ddisplay_add_update_all(ddisp);
-               break;
-             case GDK_Page_Up :
-             case GDK_KP_Page_Up :
-               _scroll_page (ddisp, !(state & GDK_CONTROL_MASK) ? DIR_UP : DIR_LEFT);
-               break;
-             case GDK_Page_Down :
-             case GDK_KP_Page_Down :
-               _scroll_page (ddisp, !(state & GDK_CONTROL_MASK) ? DIR_DOWN : DIR_RIGHT);
-               break;
-              case GDK_Up:
-              case GDK_Down:
-              case GDK_Left:
-              case GDK_Right:
-               if (g_list_length (ddisp->diagram->data->selected) > 0) {
-                 Diagram *dia = ddisp->diagram;
-                 GList *objects = dia->data->selected;
-                 Direction dir = GDK_Up == kevent->keyval ? DIR_UP :
-                                 GDK_Down == kevent->keyval ? DIR_DOWN :
-                                 GDK_Right == kevent->keyval ? DIR_RIGHT : DIR_LEFT;
-                 object_add_updates_list(objects, dia);
-                 object_list_nudge(objects, dia, dir,
-                                   /* step one pixel or more with <ctrl> */
-                                   ddisplay_untransform_length (ddisp, (state & GDK_SHIFT_MASK) ? 10 : 1));
-                 diagram_update_connections_selection(dia);
-                 object_add_updates_list(objects, dia);
-                 diagram_modified(dia);
-                 diagram_flush(dia);
-
-                 undo_set_transactionpoint(dia->undo);
-               } else {
-                 _scroll_step (ddisp, kevent->keyval);
-               }
-               break;
-              case GDK_KP_Add:
-              case GDK_plus:
-              case GDK_equal:
-                ddisplay_zoom_middle(ddisp, M_SQRT2);
-                break;
-              case GDK_KP_Subtract:
-              case GDK_minus:
-                ddisplay_zoom_middle(ddisp, M_SQRT1_2);
-                break;
-              case GDK_Shift_L:
-              case GDK_Shift_R:
-                if (active_tool->type == MAGNIFY_TOOL)
-                  set_zoom_out(active_tool);
+      }
+      display_set_active (ddisp);
+      kevent = (GdkEventKey *) event;
+      state = kevent->state;
+      key_handled = FALSE;
+      im_context_used = FALSE;
+      #if 0
+      printf("Key input %d in state %d\n", kevent->keyval, textedit_mode(ddisp));
+      #endif
+      focus = get_active_focus ((DiagramData *) ddisp->diagram);
+      if (focus != NULL) {
+        /* Keys goes to the active focus. */
+        obj = focus_get_object (focus);
+        if (diagram_is_selected (ddisp->diagram, obj)) {
+
+          if (!gtk_im_context_filter_keypress (
+              GTK_IM_CONTEXT (ddisp->im_context), kevent)) {
+
+            switch (kevent->keyval) {
+              case GDK_Tab:
+                focus = textedit_move_focus (ddisp, focus,
+                                             (state & GDK_SHIFT_MASK) == 0);
+                obj = focus_get_object (focus);
                 break;
               case GDK_Escape:
-                view_unfullscreen();
+                textedit_deactivate_focus ();
+                tool_reset ();
+                ddisplay_do_update_menu_sensitivity (ddisp);
                 break;
-             case GDK_F2:
-             case GDK_Return:
-               gtk_action_activate (menus_get_action ("ToolsTextedit"));
-               break;
-             case GDK_Menu:
-               popup_object_menu (ddisp, event);
-               break;
               default:
-                if (kevent->string && kevent->keyval == ' ') {
-                  tool_select_former();
-                } else if ((kevent->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) == 0 &&
-                          kevent->length != 0) {
-                 /* Find first editable? */
-                }
+                /*! key event not swallowed by the input method ? */
+                handle_key_event (ddisp, focus,
+                                  kevent->state, kevent->keyval,
+                                  kevent->string, kevent->length);
+
+                diagram_flush(ddisp->diagram);
+            }
           }
+          return_val = key_handled = im_context_used = TRUE;
         }
+      }
 
-        if (!im_context_used)
-          gtk_im_context_reset(GTK_IM_CONTEXT(ddisp->im_context));
+      #if 0
+      /* modifier requirment added 2004-07-17, IMO reenabling unmodified keys here
+       * shouldn't break im_context handling. How to test?    --hb
+       */
+      if (!key_handled && (state & (GDK_CONTROL_MASK | GDK_MOD1_MASK))) {
+      #else
+      if (!key_handled) {
+      #endif
+        /* IM doesn't need receive keys, take care of it ourselves. */
+        return_val = TRUE;
+
+        switch (kevent->keyval) {
+          case GDK_Home:
+          case GDK_KP_Home:
+            /* match upper left corner of the diagram with it's view */
+            ddisplay_set_origo (ddisp,
+                                ddisp->diagram->data->extents.left,
+                                ddisp->diagram->data->extents.top);
+            ddisplay_update_scrollbars (ddisp);
+            ddisplay_add_update_all (ddisp);
+            break;
+          case GDK_End:
+          case GDK_KP_End:
+            /* match lower right corner of the diagram with it's view */
+            visible = &ddisp->visible;
+            ddisplay_set_origo (ddisp,
+                                ddisp->diagram->data->extents.right - (visible->right - visible->left),
+                                ddisp->diagram->data->extents.bottom - (visible->bottom - visible->top));
+            ddisplay_update_scrollbars (ddisp);
+            ddisplay_add_update_all (ddisp);
+            break;
+          case GDK_Page_Up:
+          case GDK_KP_Page_Up:
+            _scroll_page (ddisp, !(state & GDK_CONTROL_MASK) ? DIR_UP : DIR_LEFT);
+            break;
+          case GDK_Page_Down :
+          case GDK_KP_Page_Down:
+            _scroll_page (ddisp, !(state & GDK_CONTROL_MASK) ? DIR_DOWN : DIR_RIGHT);
+            break;
+          case GDK_Up:
+          case GDK_Down:
+          case GDK_Left:
+          case GDK_Right:
+            if (g_list_length (ddisp->diagram->data->selected) > 0) {
+              Diagram *dia = ddisp->diagram;
+              GList *objects = dia->data->selected;
+              Direction dir = GDK_Up == kevent->keyval ? DIR_UP :
+                  GDK_Down == kevent->keyval ? DIR_DOWN :
+                  GDK_Right == kevent->keyval ? DIR_RIGHT : DIR_LEFT;
+              object_add_updates_list (objects, dia);
+              object_list_nudge (objects, dia, dir,
+                                  /* step one pixel or more with <ctrl> */
+                                  ddisplay_untransform_length (ddisp, (state & GDK_SHIFT_MASK) ? 10 : 1));
+              diagram_update_connections_selection (dia);
+              object_add_updates_list (objects, dia);
+              diagram_modified (dia);
+              diagram_flush (dia);
+
+              undo_set_transactionpoint (dia->undo);
+            } else {
+              _scroll_step (ddisp, kevent->keyval);
+            }
+            break;
+          case GDK_KP_Add:
+          case GDK_plus:
+          case GDK_equal:
+            ddisplay_zoom_middle (ddisp, M_SQRT2);
+            break;
+          case GDK_KP_Subtract:
+          case GDK_minus:
+            ddisplay_zoom_middle (ddisp, M_SQRT1_2);
+            break;
+          case GDK_Shift_L:
+          case GDK_Shift_R:
+            if (active_tool->type == MAGNIFY_TOOL)
+              set_zoom_out (active_tool);
+            break;
+          case GDK_Escape:
+            view_unfullscreen ();
+            break;
+          case GDK_F2:
+          case GDK_Return:
+            gtk_action_activate (menus_get_action ("ToolsTextedit"));
+            break;
+          case GDK_Menu:
+            popup_object_menu (ddisp, event);
+            break;
+          default:
+            if (kevent->string && kevent->keyval == ' ') {
+              tool_select_former();
+            } else if ((kevent->state & (GDK_MOD1_MASK|GDK_CONTROL_MASK)) == 0 &&
+              kevent->length != 0) {
+              /* Find first editable? */
+            }
+        }
+      }
 
-        break;
+      if (!im_context_used) {
+        gtk_im_context_reset (GTK_IM_CONTEXT (ddisp->im_context));
+      }
 
-      case GDK_KEY_RELEASE:
-        kevent = (GdkEventKey *) event;
-        if (gtk_im_context_filter_keypress(GTK_IM_CONTEXT(ddisp->im_context),
-                                           kevent)) {
-          return_val = TRUE;
-        } else {
-          switch(kevent->keyval) {
-              case GDK_Shift_L:
-              case GDK_Shift_R:
-                if (active_tool->type == MAGNIFY_TOOL)
-                  set_zoom_in(active_tool);
-                break;
-              default:
-                break;
-          }
+      break;
+
+    case GDK_KEY_RELEASE:
+      kevent = (GdkEventKey *) event;
+      if (gtk_im_context_filter_keypress (GTK_IM_CONTEXT (ddisp->im_context),
+                                          kevent)) {
+        return_val = TRUE;
+      } else {
+        switch (kevent->keyval) {
+          case GDK_Shift_L:
+          case GDK_Shift_R:
+            if (active_tool->type == MAGNIFY_TOOL) {
+              set_zoom_in (active_tool);
+            }
+            break;
+          default:
+            break;
         }
-        break;
-
-      default:
-        break;
+      }
+      break;
+
+    case GDK_NOTHING:
+    case GDK_DELETE:
+    case GDK_DESTROY:
+    case GDK_EXPOSE:
+    case GDK_3BUTTON_PRESS:
+    case GDK_ENTER_NOTIFY:
+    case GDK_LEAVE_NOTIFY:
+    case GDK_CONFIGURE:
+    case GDK_MAP:
+    case GDK_UNMAP:
+    case GDK_PROPERTY_NOTIFY:
+    case GDK_SELECTION_CLEAR:
+    case GDK_SELECTION_REQUEST:
+    case GDK_SELECTION_NOTIFY:
+    case GDK_PROXIMITY_IN:
+    case GDK_PROXIMITY_OUT:
+    case GDK_DRAG_ENTER:
+    case GDK_DRAG_LEAVE:
+    case GDK_DRAG_MOTION:
+    case GDK_DRAG_STATUS:
+    case GDK_DROP_START:
+    case GDK_DROP_FINISHED:
+    case GDK_CLIENT_EVENT:
+    case GDK_VISIBILITY_NOTIFY:
+    case GDK_NO_EXPOSE:
+    case GDK_WINDOW_STATE:
+    case GDK_SETTING:
+    case GDK_OWNER_CHANGE:
+    case GDK_GRAB_BROKEN:
+    case GDK_DAMAGE:
+    case GDK_EVENT_LAST:
+    default:
+      break;
   }
 
   return return_val;
diff --git a/app/interface.c b/app/interface.c
index 661c4654..2ba87e85 100644
--- a/app/interface.c
+++ b/app/interface.c
@@ -79,6 +79,7 @@ static gboolean _ddisplay_vruler_motion_notify (GtkWidget *widget,
         GdkEventMotion *event,
         DDisplay *ddisp);
 
+
 static void
 dia_dnd_file_drag_data_received (GtkWidget        *widget,
                                  GdkDragContext   *context,
@@ -89,60 +90,60 @@ dia_dnd_file_drag_data_received (GtkWidget        *widget,
                                  guint             time,
                                  DDisplay         *ddisp)
 {
-  switch (gdk_drag_context_get_selected_action(context))
-    {
+  switch (gdk_drag_context_get_selected_action (context)) {
     case GDK_ACTION_DEFAULT:
     case GDK_ACTION_COPY:
     case GDK_ACTION_MOVE:
     case GDK_ACTION_LINK:
     case GDK_ACTION_ASK:
+    case GDK_ACTION_PRIVATE:
     default:
       {
         Diagram *diagram = NULL;
         gchar *sPath = NULL, *pFrom, *pTo;
 
-        pFrom = strstr((gchar *) gtk_selection_data_get_data(data), "file:");
+        pFrom = strstr ((gchar *) gtk_selection_data_get_data (data), "file:");
         while (pFrom) {
           GError *error = NULL;
 
           pTo = pFrom;
           while (*pTo != 0 && *pTo != 0xd && *pTo != 0xa) pTo ++;
-          sPath = g_strndup(pFrom, pTo - pFrom);
+          sPath = g_strndup (pFrom, pTo - pFrom);
 
           /* format changed with Gtk+2.0, use conversion */
           pFrom = g_filename_from_uri (sPath, NULL, &error);
-         if (!ddisp)
+          if (!ddisp) {
             diagram = diagram_load (pFrom, NULL);
-         else {
-           diagram = ddisp->diagram;
-           if (!diagram_load_into (diagram, pFrom, NULL)) {
-             /* the import filter is supposed to show the error message */
+          } else {
+            diagram = ddisp->diagram;
+            if (!diagram_load_into (diagram, pFrom, NULL)) {
+              /* the import filter is supposed to show the error message */
               gtk_drag_finish (context, TRUE, FALSE, time);
-             break;
-           }
-         }
+              break;
+            }
+          }
 
           g_free (pFrom);
-          g_free(sPath);
+          g_free (sPath);
 
           if (diagram != NULL) {
             diagram_update_extents(diagram);
             layer_dialog_set_diagram(diagram);
 
-           if (diagram->displays == NULL) {
-             new_display(diagram);
-           }
+            if (diagram->displays == NULL) {
+              new_display (diagram);
+            }
           }
 
-          pFrom = strstr(pTo, "file:");
+          pFrom = strstr (pTo, "file:");
         } /* while */
         gtk_drag_finish (context, TRUE, FALSE, time);
       }
       break;
-    }
-  return;
+  }
 }
 
+
 static GtkWidget *toolbox_shell = NULL;
 
 static struct
diff --git a/app/layer-editor/layer_dialog.c b/app/layer-editor/layer_dialog.c
index e98a25e5..152ebe38 100644
--- a/app/layer-editor/layer_dialog.c
+++ b/app/layer-editor/layer_dialog.c
@@ -108,14 +108,14 @@ layer_dialog_create (void)
 
 
 void
-layer_dialog_show()
+layer_dialog_show (void)
 {
-  if (is_integrated_ui () == FALSE)
-  {
-  if (layer_dialog == NULL || layer_dialog->dialog == NULL)
-    layer_dialog_create();
-  g_assert(layer_dialog != NULL); /* must be valid now */
-  gtk_window_present(GTK_WINDOW(layer_dialog->dialog));
+  if (is_integrated_ui () == FALSE) {
+    if (layer_dialog == NULL || layer_dialog->dialog == NULL) {
+      layer_dialog_create();
+    }
+    g_assert (layer_dialog != NULL); /* must be valid now */
+    gtk_window_present (GTK_WINDOW (layer_dialog->dialog));
   }
 }
 
@@ -159,18 +159,20 @@ dia_layer_change_apply (DiaChange *self, Diagram *dia)
   change->applied = 1;
 
   switch (change->type) {
-  case TYPE_DELETE_LAYER:
-    data_remove_layer(dia->data, change->layer);
-    break;
-  case TYPE_ADD_LAYER:
-    data_add_layer_at(dia->data, change->layer, change->index);
-    break;
-  case TYPE_RAISE_LAYER:
-    data_raise_layer(dia->data, change->layer);
-    break;
-  case TYPE_LOWER_LAYER:
-    data_lower_layer(dia->data, change->layer);
-    break;
+    case TYPE_DELETE_LAYER:
+      data_remove_layer(dia->data, change->layer);
+      break;
+    case TYPE_ADD_LAYER:
+      data_add_layer_at(dia->data, change->layer, change->index);
+      break;
+    case TYPE_RAISE_LAYER:
+      data_raise_layer(dia->data, change->layer);
+      break;
+    case TYPE_LOWER_LAYER:
+      data_lower_layer(dia->data, change->layer);
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   diagram_add_update_all(dia);
@@ -183,18 +185,20 @@ dia_layer_change_revert (DiaChange *self, Diagram *dia)
   DiaLayerChange *change = DIA_LAYER_CHANGE (self);
 
   switch (change->type) {
-  case TYPE_DELETE_LAYER:
-    data_add_layer_at(dia->data, change->layer, change->index);
-    break;
-  case TYPE_ADD_LAYER:
-    data_remove_layer(dia->data, change->layer);
-    break;
-  case TYPE_RAISE_LAYER:
-    data_lower_layer(dia->data, change->layer);
-    break;
-  case TYPE_LOWER_LAYER:
-    data_raise_layer(dia->data, change->layer);
-    break;
+    case TYPE_DELETE_LAYER:
+      data_add_layer_at(dia->data, change->layer, change->index);
+      break;
+    case TYPE_ADD_LAYER:
+      data_remove_layer(dia->data, change->layer);
+      break;
+    case TYPE_RAISE_LAYER:
+      data_lower_layer(dia->data, change->layer);
+      break;
+    case TYPE_LOWER_LAYER:
+      data_raise_layer(dia->data, change->layer);
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   diagram_add_update_all(dia);
@@ -220,8 +224,8 @@ dia_layer_change_free (DiaChange *self)
       }
       break;
     case TYPE_RAISE_LAYER:
-      break;
     case TYPE_LOWER_LAYER:
+    default:
       break;
   }
 }
diff --git a/app/load_save.c b/app/load_save.c
index e27a7783..973582f5 100644
--- a/app/load_save.c
+++ b/app/load_save.c
@@ -1313,7 +1313,7 @@ diagram_autosave(Diagram *dia)
 
       dia->autosavefilename = save_filename;
 #ifdef G_THREADS_ENABLED
-      if (g_thread_supported ()) {
+      {
         AutoSaveInfo *asi = g_new (AutoSaveInfo, 1);
         GError *error = NULL;
 
@@ -1327,13 +1327,6 @@ diagram_autosave(Diagram *dia)
         }
         /* FIXME: need better synchronization */
         dia->autosaved = TRUE;
-      } else {
-        /* no extra threads supported, stay in this one */
-        DiaContext *ctx = dia_context_new (_("Auto save"));
-        dia_context_set_filename (ctx, save_filename);
-        diagram_data_raw_save (dia->data, save_filename, ctx);
-        dia->autosaved = TRUE;
-        dia_context_release (ctx);
       }
 #else
       {
diff --git a/app/modify_tool.c b/app/modify_tool.c
index 2cd0d36d..815ea8d4 100644
--- a/app/modify_tool.c
+++ b/app/modify_tool.c
@@ -227,15 +227,17 @@ click_select_object(DDisplay *ddisp, Point *clickedpoint,
   return NULL;
 }
 
+
 static glong
-time_micro()
+time_micro (void)
 {
   GTimeVal tv;
 
-  g_get_current_time(&tv);
+  g_get_current_time (&tv);
   return tv.tv_sec*G_USEC_PER_SEC+tv.tv_usec;
 }
 
+
 static int do_if_clicked_handle(DDisplay *ddisp, ModifyTool *tool,
                                Point *clickedpoint, GdkEventButton *event)
 {
@@ -819,65 +821,64 @@ modify_button_release(ModifyTool *tool, GdkEventButton *event,
                                             FALSE, 0, 0, 0, 0);
 
     {
-      GList *list, *list_to_free;
+      GList *selected, *list_to_free;
 
-      list = list_to_free = find_selected_objects(ddisp, tool);
+      selected = list_to_free = find_selected_objects (ddisp, tool);
 
       if (selection_style == SELECT_REPLACE &&
           !(event->state & GDK_SHIFT_MASK)) {
         /* Not Multi-select => Remove all selected */
-        diagram_remove_all_selected(ddisp->diagram, TRUE);
+        diagram_remove_all_selected (ddisp->diagram, TRUE);
       }
 
       if (selection_style == SELECT_INTERSECTION) {
         GList *intersection = NULL;
 
-        while (list != NULL) {
-          DiaObject *obj = (DiaObject *)list->data;
+        while (selected != NULL) {
+          DiaObject *obj = DIA_OBJECT (selected->data);
 
-          if (diagram_is_selected(ddisp->diagram, obj)) {
-            intersection = g_list_append(intersection, obj);
+          if (diagram_is_selected (ddisp->diagram, obj)) {
+            intersection = g_list_append (intersection, obj);
           }
 
-          list = g_list_next(list);
+          selected = g_list_next (selected);
         }
-        list = intersection;
-        diagram_remove_all_selected(ddisp->diagram, TRUE);
-        while (list != NULL) {
-          DiaObject *obj = (DiaObject *)list->data;
+        selected = intersection;
+        diagram_remove_all_selected (ddisp->diagram, TRUE);
+        while (selected != NULL) {
+          DiaObject *obj = DIA_OBJECT (selected->data);
 
-          diagram_select(ddisp->diagram, obj);
+          diagram_select (ddisp->diagram, obj);
 
-          list = g_list_next(list);
+          selected = g_list_next (selected);
         }
-        g_list_free(intersection);
+        g_list_free (intersection);
       } else {
-        while (list != NULL) {
-          DiaObject *obj = (DiaObject *)list->data;
+        while (selected != NULL) {
+          DiaObject *obj = DIA_OBJECT (selected->data);
 
           if (selection_style == SELECT_REMOVE) {
-            if (diagram_is_selected(ddisp->diagram, obj))
-              diagram_unselect_object(ddisp->diagram, obj);
+            if (diagram_is_selected (ddisp->diagram, obj))
+              diagram_unselect_object (ddisp->diagram, obj);
           } else if (selection_style == SELECT_INVERT) {
-            if (diagram_is_selected(ddisp->diagram, obj))
-              diagram_unselect_object(ddisp->diagram, obj);
+            if (diagram_is_selected (ddisp->diagram, obj))
+              diagram_unselect_object (ddisp->diagram, obj);
             else
-              diagram_select(ddisp->diagram, obj);
+              diagram_select (ddisp->diagram, obj);
           } else {
-            if (!diagram_is_selected(ddisp->diagram, obj))
-              diagram_select(ddisp->diagram, obj);
+            if (!diagram_is_selected (ddisp->diagram, obj))
+              diagram_select (ddisp->diagram, obj);
           }
 
-          list = g_list_next(list);
+          selected = g_list_next (selected);
         }
       }
 
-      g_list_free(list_to_free);
-
+      g_list_free (list_to_free);
     }
 
-    ddisplay_do_update_menu_sensitivity(ddisp);
-    ddisplay_flush(ddisp);
+    ddisplay_do_update_menu_sensitivity (ddisp);
+    ddisplay_flush (ddisp);
 
     tool->state = STATE_NONE;
     break;
diff --git a/app/object_ops.c b/app/object_ops.c
index 21812416..db0af861 100644
--- a/app/object_ops.c
+++ b/app/object_ops.c
@@ -275,82 +275,86 @@ object_list_align_v(GList *objects, Diagram *dia, int align)
    * to sort them out by position.
    */
   if (align == DIA_ALIGN_EQUAL || align == DIA_ALIGN_ADJACENT) {
-      DiaObject **object_array = (DiaObject **)g_malloc(sizeof(DiaObject*)*nobjs);
-      int i = 0;
-
-      list = objects;
-      while (list != NULL) {
-         obj = (DiaObject *) list->data;
-         object_array[i] = obj;
-         i++;
-         list = g_list_next(list);
-      }
-      qsort(object_array, nobjs, sizeof(DiaObject*), object_list_sort_vertical);
-      list = NULL;
-      for (i = 0; i < nobjs; i++) {
-         list = g_list_append(list, object_array[i]);
-      }
-      g_assert (objects == unconnected);
-      g_list_free (unconnected);
-      objects = unconnected = list;
-      g_free(object_array);
-  }
-
-  switch (align) {
-  case DIA_ALIGN_TOP: /* TOP */
-    y_pos = top;
-    break;
-  case DIA_ALIGN_CENTER: /* CENTER */
-    y_pos = (top + bottom)/2.0;
-    break;
-  case DIA_ALIGN_BOTTOM: /* BOTTOM */
-    y_pos = bottom;
-    break;
-  case DIA_ALIGN_POSITION: /* OBJECT POSITION */
-    y_pos = (top + bottom)/2.0;
-    break;
-  case DIA_ALIGN_EQUAL: /* EQUAL DISTANCE */
-    freespc = (bottom - top - freespc)/(double)(nobjs - 1);
-    y_pos = top;
-    break;
-  case DIA_ALIGN_ADJACENT: /* ADJACENT */
-    y_pos = top;
-    break;
-  default:
-    message_warning("Wrong argument to object_list_align_v()\n");
-  }
+    DiaObject **object_array = (DiaObject **) g_malloc (sizeof (DiaObject *) * nobjs);
+    int j = 0;
 
-  dest_pos = g_new(Point, nobjs);
-  orig_pos = g_new(Point, nobjs);
+    list = objects;
+    while (list != NULL) {
+      obj = (DiaObject *) list->data;
+      object_array[j] = obj;
+      j++;
+      list = g_list_next (list);
+    }
+    qsort (object_array, nobjs, sizeof (DiaObject*), object_list_sort_vertical);
+    list = NULL;
+    for (int k = 0; k < nobjs; k++) {
+      list = g_list_append (list, object_array[k]);
+    }
 
-  i = 0;
-  list = objects;
-  while (list != NULL) {
-    obj = (DiaObject *) list->data;
+    g_return_if_fail (objects == unconnected);
 
-    pos.x = obj->position.x;
+    g_list_free (unconnected);
+    objects = unconnected = list;
+    g_free (object_array);
+  }
 
-    switch (align) {
+  switch (align) {
     case DIA_ALIGN_TOP: /* TOP */
-      pos.y = y_pos + obj->position.y - obj->bounding_box.top;
+      y_pos = top;
       break;
     case DIA_ALIGN_CENTER: /* CENTER */
-      pos.y = y_pos + obj->position.y - (obj->bounding_box.top + obj->bounding_box.bottom)/2.0;
+      y_pos = (top + bottom)/2.0;
       break;
     case DIA_ALIGN_BOTTOM: /* BOTTOM */
-      pos.y = y_pos - (obj->bounding_box.bottom - obj->position.y);
+      y_pos = bottom;
       break;
     case DIA_ALIGN_POSITION: /* OBJECT POSITION */
-      pos.y = y_pos;
+      y_pos = (top + bottom)/2.0;
       break;
     case DIA_ALIGN_EQUAL: /* EQUAL DISTANCE */
-      pos.y = y_pos + obj->position.y - obj->bounding_box.top;
-      y_pos += obj->bounding_box.bottom - obj->bounding_box.top + freespc;
+      freespc = (bottom - top - freespc)/(double)(nobjs - 1);
+      y_pos = top;
       break;
     case DIA_ALIGN_ADJACENT: /* ADJACENT */
-      pos.y = y_pos + obj->position.y - obj->bounding_box.top;
-      y_pos += obj->bounding_box.bottom - obj->bounding_box.top;
+      y_pos = top;
       break;
+    default:
+      message_warning("Wrong argument to object_list_align_v()\n");
+  }
+
+  dest_pos = g_new(Point, nobjs);
+  orig_pos = g_new(Point, nobjs);
+
+  i = 0;
+  list = objects;
+  while (list != NULL) {
+    obj = (DiaObject *) list->data;
+
+    pos.x = obj->position.x;
+
+    switch (align) {
+      case DIA_ALIGN_TOP: /* TOP */
+        pos.y = y_pos + obj->position.y - obj->bounding_box.top;
+        break;
+      case DIA_ALIGN_CENTER: /* CENTER */
+        pos.y = y_pos + obj->position.y - (obj->bounding_box.top + obj->bounding_box.bottom)/2.0;
+        break;
+      case DIA_ALIGN_BOTTOM: /* BOTTOM */
+        pos.y = y_pos - (obj->bounding_box.bottom - obj->position.y);
+        break;
+      case DIA_ALIGN_POSITION: /* OBJECT POSITION */
+        pos.y = y_pos;
+        break;
+      case DIA_ALIGN_EQUAL: /* EQUAL DISTANCE */
+        pos.y = y_pos + obj->position.y - obj->bounding_box.top;
+        y_pos += obj->bounding_box.bottom - obj->bounding_box.top + freespc;
+        break;
+      case DIA_ALIGN_ADJACENT: /* ADJACENT */
+        pos.y = y_pos + obj->position.y - obj->bounding_box.top;
+        y_pos += obj->bounding_box.bottom - obj->bounding_box.top;
+        break;
+      default:
+        g_return_if_reached ();
     }
 
     pos.x = obj->position.x;
@@ -435,19 +439,19 @@ object_list_align_h(GList *objects, Diagram *dia, int align)
    */
   if (align == DIA_ALIGN_EQUAL || align == DIA_ALIGN_ADJACENT) {
     DiaObject **object_array = (DiaObject **)g_malloc(sizeof(DiaObject*)*nobjs);
-    int i = 0;
+    int j = 0;
 
     list = objects;
     while (list != NULL) {
       obj = (DiaObject *) list->data;
-      object_array[i] = obj;
-      i++;
+      object_array[j] = obj;
+      j++;
       list = g_list_next(list);
     }
     qsort(object_array, nobjs, sizeof(DiaObject*), object_list_sort_horizontal);
     list = NULL;
-    for (i = 0; i < nobjs; i++) {
-      list = g_list_append(list, object_array[i]);
+    for (j = 0; j < nobjs; j++) {
+      list = g_list_append(list, object_array[j]);
     }
     g_assert (objects == unconnected);
     g_list_free (unconnected);
@@ -488,26 +492,28 @@ object_list_align_h(GList *objects, Diagram *dia, int align)
     obj = (DiaObject *) list->data;
 
     switch (align) {
-    case DIA_ALIGN_LEFT:
-      pos.x = x_pos + obj->position.x - obj->bounding_box.left;
-      break;
-    case DIA_ALIGN_CENTER:
-      pos.x = x_pos + obj->position.x - (obj->bounding_box.left + obj->bounding_box.right)/2.0;
-      break;
-    case DIA_ALIGN_RIGHT:
-      pos.x = x_pos - (obj->bounding_box.right - obj->position.x);
-      break;
-    case DIA_ALIGN_POSITION:
-      pos.x = x_pos;
-      break;
-    case DIA_ALIGN_EQUAL:
-      pos.x = x_pos + obj->position.x - obj->bounding_box.left;
-      x_pos += obj->bounding_box.right - obj->bounding_box.left + freespc;
-      break;
-    case DIA_ALIGN_ADJACENT:
-      pos.x = x_pos + obj->position.x - obj->bounding_box.left;
-      x_pos += obj->bounding_box.right - obj->bounding_box.left;
-      break;
+      case DIA_ALIGN_LEFT:
+        pos.x = x_pos + obj->position.x - obj->bounding_box.left;
+        break;
+      case DIA_ALIGN_CENTER:
+        pos.x = x_pos + obj->position.x - (obj->bounding_box.left + obj->bounding_box.right)/2.0;
+        break;
+      case DIA_ALIGN_RIGHT:
+        pos.x = x_pos - (obj->bounding_box.right - obj->position.x);
+        break;
+      case DIA_ALIGN_POSITION:
+        pos.x = x_pos;
+        break;
+      case DIA_ALIGN_EQUAL:
+        pos.x = x_pos + obj->position.x - obj->bounding_box.left;
+        x_pos += obj->bounding_box.right - obj->bounding_box.left + freespc;
+        break;
+      case DIA_ALIGN_ADJACENT:
+        pos.x = x_pos + obj->position.x - obj->bounding_box.left;
+        x_pos += obj->bounding_box.right - obj->bounding_box.left;
+        break;
+      default:
+        break;
     }
 
     pos.y = obj->position.y;
diff --git a/app/properties-dialog.c b/app/properties-dialog.c
index a1fd87b2..4ad95592 100644
--- a/app/properties-dialog.c
+++ b/app/properties-dialog.c
@@ -188,18 +188,20 @@ properties_give_focus(GtkWidget *widget, gpointer data)
   }
 }
 
+
 static void
-clear_dialog_globals()
+clear_dialog_globals (void)
 {
   if (object_part != NULL) {
-    gtk_container_remove(GTK_CONTAINER(dialog_vbox), object_part);
+    gtk_container_remove (GTK_CONTAINER (dialog_vbox), object_part);
     object_part = NULL;
   }
-  g_list_free(current_objects);
+  g_list_free (current_objects);
   current_objects = NULL;
   current_dia = NULL;
 }
 
+
 void
 object_properties_show(Diagram *dia, DiaObject *obj)
 {
diff --git a/app/tool.c b/app/tool.c
index dd432a36..a8c26b33 100644
--- a/app/tool.c
+++ b/app/tool.c
@@ -140,30 +140,31 @@ tool_select(ToolType type, gpointer extra_data,
     active_button = button;
 }
 
+
 void
-tool_options_dialog_show(ToolType type, gpointer extra_data,
-                        gpointer user_data, GtkWidget *button,
-                         int invert_persistence)
+tool_options_dialog_show (ToolType   type,
+                          gpointer   extra_data,
+                          gpointer   user_data,
+                          GtkWidget *button,
+                          int        invert_persistence)
 {
   DiaObjectType *objtype;
 
-  if (active_tool->type != type)
-    tool_select(type,extra_data,user_data,button,invert_persistence);
+  if (active_tool->type != type) {
+    tool_select (type, extra_data, user_data, button, invert_persistence);
+  }
 
-  switch(type) {
-  case MODIFY_TOOL:
+  switch (type) {
+    case CREATE_OBJECT_TOOL:
+      objtype = object_get_type ((char *) extra_data);
+      defaults_show (objtype, user_data);
+      break;
+    case MODIFY_TOOL:
+    case MAGNIFY_TOOL:
+    case SCROLL_TOOL:
+    case TEXTEDIT_TOOL:
+    case GUIDE_TOOL:
+    default:
       break;
-  case CREATE_OBJECT_TOOL:
-    objtype = object_get_type((char *)extra_data);
-    defaults_show(objtype, user_data);
-    break;
-  case MAGNIFY_TOOL:
-    break;
-  case SCROLL_TOOL:
-    break;
-  case TEXTEDIT_TOOL :
-    break;
-  case GUIDE_TOOL :
-    break;
   }
 }
diff --git a/lib/arrows.c b/lib/arrows.c
index 9171c834..53bf3599 100644
--- a/lib/arrows.c
+++ b/lib/arrows.c
@@ -230,6 +230,24 @@ calculate_arrow_point (const Arrow *arrow,
     case ARROW_ONE_OR_NONE:
     case ARROW_ONE_OR_MANY:
     case ARROW_NONE_OR_MANY:
+    case ARROW_NONE:
+    case ARROW_HOLLOW_DIAMOND:
+    case ARROW_FILLED_DIAMOND:
+    case ARROW_SLASHED_CROSS:
+    case ARROW_FILLED_ELLIPSE:
+    case ARROW_DOUBLE_FILLED_TRIANGLE:
+    case ARROW_FILLED_DOT:
+    case ARROW_FILLED_BOX:
+    case ARROW_SLASH_ARROW:
+    case ARROW_INTEGRAL_SYMBOL:
+    case ARROW_CROW_FOOT:
+    case ARROW_CROSS:
+    case ARROW_HALF_DIAMOND:
+    case ARROW_OPEN_ROUNDED:
+    case ARROW_FILLED_DOT_N_TRIANGLE:
+    case ARROW_BACKSLASH:
+    case ARROW_THREE_DOTS:
+    case MAX_ARROW_TYPE:
     default:
       move_arrow->x = 0.0;
       move_arrow->y = 0.0;
@@ -339,6 +357,12 @@ calculate_arrow_point (const Arrow *arrow,
     case ARROW_ONE_OR_NONE:
     case ARROW_ONE_OR_MANY:
     case ARROW_NONE_OR_MANY:
+    case ARROW_NONE:
+    case ARROW_SLASHED_CROSS:
+    case ARROW_CROW_FOOT:
+    case ARROW_CROSS:
+    case ARROW_BACKSLASH:
+    case MAX_ARROW_TYPE:
     default:
       move_arrow->x = 0.0;
       move_arrow->y = 0.0;
@@ -2396,11 +2420,38 @@ arrow_draw (DiaRenderer *renderer,
       break;
     case MAX_ARROW_TYPE:
       break;
-    default :
+    case ARROW_LINES:
+    case ARROW_HOLLOW_TRIANGLE:
+    case ARROW_FILLED_TRIANGLE:
+    case ARROW_HOLLOW_DIAMOND:
+    case ARROW_FILLED_DIAMOND:
+    case ARROW_HALF_HEAD:
+    case ARROW_SLASHED_CROSS:
+    case ARROW_FILLED_ELLIPSE:
+    case ARROW_HOLLOW_ELLIPSE:
+    case ARROW_DOUBLE_HOLLOW_TRIANGLE:
+    case ARROW_DOUBLE_FILLED_TRIANGLE:
+    case ARROW_UNFILLED_TRIANGLE:
+    case ARROW_FILLED_DOT:
+    case ARROW_BLANKED_DOT:
+    case ARROW_FILLED_BOX:
+    case ARROW_BLANKED_BOX:
+    case ARROW_SLASH_ARROW:
+    case ARROW_CROW_FOOT:
+    case ARROW_CROSS:
+    case ARROW_FILLED_CONCAVE:
+    case ARROW_BLANKED_CONCAVE:
+    case ARROW_HALF_DIAMOND:
+    case ARROW_BACKSLASH:
+    default:
       {
         int idx = arrow_index_from_type (type);
         g_return_if_fail (arrow_types[idx].draw != NULL);
-        arrow_types[idx].draw (renderer,to,from,length,width,linewidth,fg_color,bg_color);
+        arrow_types[idx].draw (renderer,
+                               to, from,
+                               length, width,
+                               linewidth,
+                               fg_color, bg_color);
         break;
       }
   }
diff --git a/lib/autoroute.c b/lib/autoroute.c
index c3e08266..c6cbdfcf 100644
--- a/lib/autoroute.c
+++ b/lib/autoroute.c
@@ -296,35 +296,39 @@ autolayout_adjust_for_gap(Point *pos, int dir, ConnectionPoint *cp)
   return calculate_object_edge(pos, &dir_other, object);
 }
 
-/*!
- * \brief Adjust the original position to move away from a potential arrow
+
+/**
+ * autolayout_adjust_for_arrow
+ *
+ * Adjust the original position to move away from a potential arrow
  *
  * We could do some similar by making MIN_DIST depend on the arrow size,
  * but this one is much more easy, not touchun the autolayout algorithm at
  * all. Needs to be called twice - second time with negative adjust - to
  * move the point back to where it was.
- *
- * \ingroup Autorouting
  */
 static void
-autolayout_adjust_for_arrow(Point *pos, int dir, real adjust)
+autolayout_adjust_for_arrow (Point *pos, int dir, real adjust)
 {
   switch (dir) {
-  case DIR_NORTH:
-    pos->y -= adjust;
-    break;
-  case DIR_EAST:
-    pos->x += adjust;
-    break;
-  case DIR_SOUTH:
-    pos->y += adjust;
-    break;
-  case DIR_WEST:
-    pos->x -= adjust;
-    break;
+    case DIR_NORTH:
+      pos->y -= adjust;
+      break;
+    case DIR_EAST:
+      pos->x += adjust;
+      break;
+    case DIR_SOUTH:
+      pos->y += adjust;
+      break;
+    case DIR_WEST:
+      pos->x -= adjust;
+      break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 /*!
  * \brief Parallel layout
  *
diff --git a/lib/boundingbox.c b/lib/boundingbox.c
index 4a437122..bc8582b4 100644
--- a/lib/boundingbox.c
+++ b/lib/boundingbox.c
@@ -402,38 +402,43 @@ polybezier_bbox(const BezPoint *pts, int numpoints,
       continue;
     }
 
-    switch(pts[i].type) {
-    case BEZ_MOVE_TO:
-      g_assert_not_reached();
-      break;
-    case BEZ_LINE_TO:
-      point_copy(&vx,&pts[i].p1);
-      switch(pts[prev].type) {
-      case BEZ_MOVE_TO:
+    switch (pts[i].type) {
       case BEZ_LINE_TO:
-        point_copy(&vsc,&pts[prev].p1);
-        point_copy(&vp,&pts[prev].p1);
+        point_copy(&vx,&pts[i].p1);
+        switch(pts[prev].type) {
+          case BEZ_MOVE_TO:
+          case BEZ_LINE_TO:
+            point_copy(&vsc,&pts[prev].p1);
+            point_copy(&vp,&pts[prev].p1);
+            break;
+          case BEZ_CURVE_TO:
+            point_copy(&vsc,&pts[prev].p3);
+            point_copy(&vp,&pts[prev].p3);
+            break;
+          default:
+            g_return_if_reached ();
+        }
         break;
       case BEZ_CURVE_TO:
-        point_copy(&vsc,&pts[prev].p3);
-        point_copy(&vp,&pts[prev].p3);
+        point_copy (&vx,&pts[i].p3);
+        point_copy (&vp,&pts[i].p2);
+        switch (pts[prev].type) {
+          case BEZ_MOVE_TO:
+          case BEZ_LINE_TO:
+            point_copy (&vsc,&pts[prev].p1);
+            break;
+          case BEZ_CURVE_TO:
+            point_copy (&vsc,&pts[prev].p3);
+            break;
+          default:
+            g_return_if_reached ();
+        } /* vsc is the start of the curve. */
+
         break;
-      }
-      break;
-    case BEZ_CURVE_TO:
-      point_copy(&vx,&pts[i].p3);
-      point_copy(&vp,&pts[i].p2);
-      switch(pts[prev].type) {
       case BEZ_MOVE_TO:
-      case BEZ_LINE_TO:
-        point_copy(&vsc,&pts[prev].p1);
-        break;
-      case BEZ_CURVE_TO:
-        point_copy(&vsc,&pts[prev].p3);
+      default:
+        g_return_if_reached ();
         break;
-      } /* vsc is the start of the curve. */
-
-      break;
     }
     start = (pts[prev].type == BEZ_MOVE_TO);
     end = (pts[next].type == BEZ_MOVE_TO);
diff --git a/lib/dia_image.c b/lib/dia_image.c
index 06949c0f..1f769294 100644
--- a/lib/dia_image.c
+++ b/lib/dia_image.c
@@ -457,7 +457,7 @@ dia_image_rgb_data (const DiaImage *image)
   } else {
     guint8 *pixels = gdk_pixbuf_get_pixels (image->image);
 
-    g_memmove (rgb_pixels, pixels, height*rowstride);
+    memmove (rgb_pixels, pixels, height*rowstride);
 
     return rgb_pixels;
   }
diff --git a/lib/dia_svg.c b/lib/dia_svg.c
index 1ccc6200..ea90652a 100644
--- a/lib/dia_svg.c
+++ b/lib/dia_svg.c
@@ -1247,282 +1247,292 @@ dia_svg_parse_path(GArray *points, const gchar *path_str, gchar **unparsed,
 
     /* actually parse the path component */
     switch (last_type) {
-    case PATH_MOVE:
-      if (points->len - points_at_start > 1)
-       g_warning ("Only first point should be 'move'");
-      bez.type = BEZ_MOVE_TO;
-      bez.p1.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p1.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      if (last_relative) {
-       bez.p1.x += last_point.x;
-       bez.p1.y += last_point.y;
-      }
-      last_point = bez.p1;
-      last_control = bez.p1;
-      last_open = bez.p1;
-      if (points->len - points_at_start == 1) /* stupid svg, but we can handle it */
-       g_array_index(points,BezPoint,0) = bez;
-      else
-        g_array_append_val(points, bez);
-      /* [SVG11 8.3.2] If a moveto is followed by multiple pairs of coordinates,
-       * the subsequent pairs are treated as implicit lineto commands
-       */
-      last_type = PATH_LINE;
-      break;
-    case PATH_LINE:
-      bez.type = BEZ_LINE_TO;
-      bez.p1.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p1.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      if (last_relative) {
-       bez.p1.x += last_point.x;
-       bez.p1.y += last_point.y;
-      }
-      /* Strictly speeaking it should not be necessary to assign the other
-       * two points. But it helps hiding a serious limitation with the
-       * standard bezier serialization, namely only saving one move-to
-       * and the rest as curve-to */
+      case PATH_MOVE:
+        if (points->len - points_at_start > 1) {
+          g_warning ("Only first point should be 'move'");
+        }
+        bez.type = BEZ_MOVE_TO;
+        bez.p1.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p1.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        if (last_relative) {
+          bez.p1.x += last_point.x;
+          bez.p1.y += last_point.y;
+        }
+        last_point = bez.p1;
+        last_control = bez.p1;
+        last_open = bez.p1;
+        if (points->len - points_at_start == 1) {
+          /* stupid svg, but we can handle it */
+          g_array_index (points, BezPoint, 0) = bez;
+        } else {
+          g_array_append_val (points, bez);
+        }
+        /* [SVG11 8.3.2] If a moveto is followed by multiple pairs of coordinates,
+        * the subsequent pairs are treated as implicit lineto commands
+        */
+        last_type = PATH_LINE;
+        break;
+      case PATH_LINE:
+        bez.type = BEZ_LINE_TO;
+        bez.p1.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p1.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        if (last_relative) {
+          bez.p1.x += last_point.x;
+          bez.p1.y += last_point.y;
+        }
+        /* Strictly speeaking it should not be necessary to assign the other
+         * two points. But it helps hiding a serious limitation with the
+         * standard bezier serialization, namely only saving one move-to
+         * and the rest as curve-to */
 #define INIT_LINE_TO_AS_CURVE_TO bez.p3 = bez.p1; bez.p2 = last_point
 
-      INIT_LINE_TO_AS_CURVE_TO;
-
-      last_point = bez.p1;
-      last_control = bez.p1;
-
-      g_array_append_val(points, bez);
-      break;
-    case PATH_HLINE:
-      bez.type = BEZ_LINE_TO;
-      bez.p1.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p1.y = last_point.y;
-      if (last_relative)
-       bez.p1.x += last_point.x;
-
-      INIT_LINE_TO_AS_CURVE_TO;
-
-      last_point = bez.p1;
-      last_control = bez.p1;
-
-      g_array_append_val(points, bez);
-      break;
-    case PATH_VLINE:
-      bez.type = BEZ_LINE_TO;
-      bez.p1.x = last_point.x;
-      bez.p1.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      if (last_relative)
-       bez.p1.y += last_point.y;
-
-      INIT_LINE_TO_AS_CURVE_TO;
-
-#undef INIT_LINE_TO_AS_CURVE_TO
-
-      last_point = bez.p1;
-      last_control = bez.p1;
-
-      g_array_append_val(points, bez);
-      break;
-    case PATH_CURVE:
-      bez.type = BEZ_CURVE_TO;
-      bez.p1.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p1.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p2.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p2.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p3.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p3.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      if (last_relative) {
-       bez.p1.x += last_point.x;
-       bez.p1.y += last_point.y;
-       bez.p2.x += last_point.x;
-       bez.p2.y += last_point.y;
-       bez.p3.x += last_point.x;
-       bez.p3.y += last_point.y;
-      }
-      last_point = bez.p3;
-      last_control = bez.p2;
-
-      g_array_append_val(points, bez);
-      break;
-    case PATH_SMOOTHCURVE:
-      bez.type = BEZ_CURVE_TO;
-      bez.p1.x = 2 * last_point.x - last_control.x;
-      bez.p1.y = 2 * last_point.y - last_control.y;
-      bez.p2.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p2.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p3.x = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      bez.p3.y = g_ascii_strtod(path, &path);
-      path_chomp(path);
-      if (last_relative) {
-       bez.p2.x += last_point.x;
-       bez.p2.y += last_point.y;
-       bez.p3.x += last_point.x;
-       bez.p3.y += last_point.y;
-      }
-      last_point = bez.p3;
-      last_control = bez.p2;
-
-      g_array_append_val(points, bez);
-      break;
-    case PATH_QUBICCURVE: {
-       /* raise quadratic bezier to cubic (copied from librsvg) */
-       real x1, y1;
-       x1 = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       y1 = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       if (last_relative) {
-         x1 += last_point.x;
-         y1 += last_point.y;
-       }
-       bez.type = BEZ_CURVE_TO;
-       bez.p1.x = (last_point.x + 2 * x1) * (1.0 / 3.0);
-       bez.p1.y = (last_point.y + 2 * y1) * (1.0 / 3.0);
-       bez.p3.x = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       bez.p3.y = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       if (last_relative) {
-         bez.p3.x += last_point.x;
-         bez.p3.y += last_point.y;
-       }
-       bez.p2.x = (bez.p3.x + 2 * x1) * (1.0 / 3.0);
-       bez.p2.y = (bez.p3.y + 2 * y1) * (1.0 / 3.0);
-       last_point = bez.p3;
-       last_control.x = x1;
-       last_control.y = y1;
-        g_array_append_val(points, bez);
-      }
-      break;
-    case PATH_TTQCURVE:
-      {
-       /* Truetype quadratic bezier curveto */
-       double xc, yc; /* quadratic control point */
-
-       xc = 2 * last_point.x - last_control.x;
-       yc = 2 * last_point.y - last_control.y;
-       /* generate a quadratic bezier with control point = xc, yc */
-       bez.type = BEZ_CURVE_TO;
-       bez.p1.x = (last_point.x + 2 * xc) * (1.0 / 3.0);
-       bez.p1.y = (last_point.y + 2 * yc) * (1.0 / 3.0);
-       bez.p3.x = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       bez.p3.y = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       if (last_relative) {
-         bez.p3.x += last_point.x;
-         bez.p3.y += last_point.y;
-       }
-       bez.p2.x = (bez.p3.x + 2 * xc) * (1.0 / 3.0);
-       bez.p2.y = (bez.p3.y + 2 * yc) * (1.0 / 3.0);
-       last_point = bez.p3;
-       last_control.x = xc;
-       last_control.y = yc;
-        g_array_append_val(points, bez);
-      }
-      break;
-    case PATH_ARC :
-      {
-       real  rx, ry;
-       real  xrot;
-       int   largearc, sweep;
-       Point dest, dest_c;
-       dest_c.x=0;
-       dest_c.y=0;
-
-       rx = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       ry = g_ascii_strtod(path, &path);
-       path_chomp(path);
-#if 1 /* ok if it is all properly separated */
-       xrot = g_ascii_strtod(path, &path);
-       path_chomp(path);
-
-       largearc = (int)g_ascii_strtod(path, &path);
-       path_chomp(path);
-       sweep = (int)g_ascii_strtod(path, &path);
-       path_chomp(path);
-#else
-       /* Actually three flags, which might not be properly separated,
-        * but even with this paths-data-20-f.svg does not work. IMHO the
-        * test case is seriously borked and can only pass if parsing
-        * the arc is tweaked against the test. In other words that test
-        * looks like it is built against one specific implementation.
-        * Inkscape and librsvg fail, Firefox pass.
-        */
-       xrot = path[0] == '0' ? 0.0 : 1.0; ++path;
-       path_chomp(path);
-
-       largearc = path[0] == '0' ? 0 : 1; ++path;
-       path_chomp(path);
-       sweep =  path[0] == '0' ? 0 : 1; ++path;
-       path_chomp(path);
-#endif
-
-       dest.x = g_ascii_strtod(path, &path);
-       path_chomp(path);
-       dest.y = g_ascii_strtod(path, &path);
-       path_chomp(path);
-
-       if (last_relative) {
-         dest.x += last_point.x;
-         dest.y += last_point.y;
-       }
-
-       /* avoid matherr with bogus values - just ignore them
-        * does happen e.g. with 'Chem-Widgets - clamp-large'
-        */
-       if (last_point.x != dest.x || last_point.y != dest.y)
-         _path_arc (points, last_point.x, last_point.y,
-                    rx, ry, xrot, largearc, sweep, dest.x, dest.y,
-                    &dest_c);
-       last_point = dest;
-       last_control = dest_c;
-      }
-      break;
-    case PATH_CLOSE:
-      /* close the path with a line - second condition to ignore single close */
-      if (!*closed && (points->len != points_at_start)) {
-       const BezPoint *bpe = &g_array_index(points, BezPoint, points->len-1);
-       /* if the last point already meets the first point dont add it again */
-       const Point pte = bpe->type == BEZ_CURVE_TO ? bpe->p3 : bpe->p1;
-       if (pte.x != last_open.x || pte.y != last_open.y) {
-         bez.type = BEZ_LINE_TO;
-         bez.p1 = last_open;
-         g_array_append_val(points, bez);
-       }
-       last_point = last_open;
-      }
-      *closed = TRUE;
-      need_next_element = TRUE;
-      break;
-    case PATH_END:
-      while (*path != '\0')
-       path++;
-      need_next_element = FALSE;
-      break;
+        INIT_LINE_TO_AS_CURVE_TO;
+
+        last_point = bez.p1;
+        last_control = bez.p1;
+
+        g_array_append_val (points, bez);
+        break;
+      case PATH_HLINE:
+        bez.type = BEZ_LINE_TO;
+        bez.p1.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p1.y = last_point.y;
+        if (last_relative) {
+          bez.p1.x += last_point.x;
+        }
+
+        INIT_LINE_TO_AS_CURVE_TO;
+
+        last_point = bez.p1;
+        last_control = bez.p1;
+
+        g_array_append_val (points, bez);
+        break;
+      case PATH_VLINE:
+        bez.type = BEZ_LINE_TO;
+        bez.p1.x = last_point.x;
+        bez.p1.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        if (last_relative) {
+          bez.p1.y += last_point.y;
+        }
+
+        INIT_LINE_TO_AS_CURVE_TO;
+
+  #undef INIT_LINE_TO_AS_CURVE_TO
+
+        last_point = bez.p1;
+        last_control = bez.p1;
+
+        g_array_append_val (points, bez);
+        break;
+      case PATH_CURVE:
+        bez.type = BEZ_CURVE_TO;
+        bez.p1.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p1.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p2.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p2.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p3.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p3.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        if (last_relative) {
+          bez.p1.x += last_point.x;
+          bez.p1.y += last_point.y;
+          bez.p2.x += last_point.x;
+          bez.p2.y += last_point.y;
+          bez.p3.x += last_point.x;
+          bez.p3.y += last_point.y;
+        }
+        last_point = bez.p3;
+        last_control = bez.p2;
+
+        g_array_append_val (points, bez);
+        break;
+      case PATH_SMOOTHCURVE:
+        bez.type = BEZ_CURVE_TO;
+        bez.p1.x = 2 * last_point.x - last_control.x;
+        bez.p1.y = 2 * last_point.y - last_control.y;
+        bez.p2.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p2.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p3.x = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        bez.p3.y = g_ascii_strtod (path, &path);
+        path_chomp (path);
+        if (last_relative) {
+          bez.p2.x += last_point.x;
+          bez.p2.y += last_point.y;
+          bez.p3.x += last_point.x;
+          bez.p3.y += last_point.y;
+        }
+        last_point = bez.p3;
+        last_control = bez.p2;
+
+        g_array_append_val (points, bez);
+        break;
+      case PATH_QUBICCURVE: {
+          /* raise quadratic bezier to cubic (copied from librsvg) */
+          real x1, y1;
+          x1 = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          y1 = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          if (last_relative) {
+            x1 += last_point.x;
+            y1 += last_point.y;
+          }
+          bez.type = BEZ_CURVE_TO;
+          bez.p1.x = (last_point.x + 2 * x1) * (1.0 / 3.0);
+          bez.p1.y = (last_point.y + 2 * y1) * (1.0 / 3.0);
+          bez.p3.x = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          bez.p3.y = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          if (last_relative) {
+            bez.p3.x += last_point.x;
+            bez.p3.y += last_point.y;
+          }
+          bez.p2.x = (bez.p3.x + 2 * x1) * (1.0 / 3.0);
+          bez.p2.y = (bez.p3.y + 2 * y1) * (1.0 / 3.0);
+          last_point = bez.p3;
+          last_control.x = x1;
+          last_control.y = y1;
+          g_array_append_val (points, bez);
+        }
+        break;
+      case PATH_TTQCURVE:
+        {
+          /* Truetype quadratic bezier curveto */
+          double xc, yc; /* quadratic control point */
+
+          xc = 2 * last_point.x - last_control.x;
+          yc = 2 * last_point.y - last_control.y;
+          /* generate a quadratic bezier with control point = xc, yc */
+          bez.type = BEZ_CURVE_TO;
+          bez.p1.x = (last_point.x + 2 * xc) * (1.0 / 3.0);
+          bez.p1.y = (last_point.y + 2 * yc) * (1.0 / 3.0);
+          bez.p3.x = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          bez.p3.y = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          if (last_relative) {
+            bez.p3.x += last_point.x;
+            bez.p3.y += last_point.y;
+          }
+          bez.p2.x = (bez.p3.x + 2 * xc) * (1.0 / 3.0);
+          bez.p2.y = (bez.p3.y + 2 * yc) * (1.0 / 3.0);
+          last_point = bez.p3;
+          last_control.x = xc;
+          last_control.y = yc;
+          g_array_append_val (points, bez);
+        }
+        break;
+      case PATH_ARC:
+        {
+          real  rx, ry;
+          real  xrot;
+          int   largearc, sweep;
+          Point dest, dest_c;
+          dest_c.x=0;
+          dest_c.y=0;
+
+          rx = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          ry = g_ascii_strtod (path, &path);
+          path_chomp (path);
+        #if 1 /* ok if it is all properly separated */
+          xrot = g_ascii_strtod (path, &path);
+          path_chomp (path);
+
+          largearc = (int) g_ascii_strtod (path, &path);
+          path_chomp (path);
+          sweep = (int) g_ascii_strtod (path, &path);
+          path_chomp (path);
+        #else
+          /* Actually three flags, which might not be properly separated,
+          * but even with this paths-data-20-f.svg does not work. IMHO the
+          * test case is seriously borked and can only pass if parsing
+          * the arc is tweaked against the test. In other words that test
+          * looks like it is built against one specific implementation.
+          * Inkscape and librsvg fail, Firefox pass.
+          */
+          xrot = path[0] == '0' ? 0.0 : 1.0; ++path;
+          path_chomp(path);
+
+          largearc = path[0] == '0' ? 0 : 1; ++path;
+          path_chomp(path);
+          sweep =  path[0] == '0' ? 0 : 1; ++path;
+          path_chomp(path);
+        #endif
+
+          dest.x = g_ascii_strtod (path, &path);
+          path_chomp (path);
+          dest.y = g_ascii_strtod (path, &path);
+          path_chomp (path);
+
+          if (last_relative) {
+            dest.x += last_point.x;
+            dest.y += last_point.y;
+          }
+
+          /* avoid matherr with bogus values - just ignore them
+          * does happen e.g. with 'Chem-Widgets - clamp-large'
+          */
+          if (last_point.x != dest.x || last_point.y != dest.y) {
+            _path_arc (points, last_point.x, last_point.y,
+                      rx, ry, xrot, largearc, sweep, dest.x, dest.y,
+                      &dest_c);
+          }
+          last_point = dest;
+          last_control = dest_c;
+        }
+        break;
+      case PATH_CLOSE:
+        /* close the path with a line - second condition to ignore single close */
+        if (!*closed && (points->len != points_at_start)) {
+          const BezPoint *bpe = &g_array_index (points, BezPoint, points->len-1);
+          /* if the last point already meets the first point dont add it again */
+          const Point pte = bpe->type == BEZ_CURVE_TO ? bpe->p3 : bpe->p1;
+          if (pte.x != last_open.x || pte.y != last_open.y) {
+            bez.type = BEZ_LINE_TO;
+            bez.p1 = last_open;
+            g_array_append_val (points, bez);
+          }
+          last_point = last_open;
+        }
+        *closed = TRUE;
+        need_next_element = TRUE;
+        break;
+      case PATH_END:
+        while (*path != '\0') {
+          path++;
+        }
+        need_next_element = FALSE;
+        break;
+      default:
+        g_return_val_if_reached (FALSE);
     }
     /* get rid of any ignorable characters */
-    path_chomp(path);
+    path_chomp (path);
 MORETOPARSE:
     if (need_next_element) {
       /* check if there really is more to be parsed */
-      if (path[0] != 0)
-       *unparsed = path;
-      else
-       *unparsed = NULL;
+      if (path[0] != 0) {
+        *unparsed = path;
+      } else {
+        *unparsed = NULL;
+      }
       break; /* while */
     }
   }
@@ -1532,13 +1542,17 @@ MORETOPARSE:
    * would crash on it.
    */
   if (points->len < 2) {
-    g_array_set_size(points, 0);
+    g_array_set_size (points, 0);
   }
-  if (current_point)
+
+  if (current_point) {
     *current_point = last_point;
+  }
+
   return (points->len > 1);
 }
 
+
 static gboolean
 _parse_transform (const gchar *trans, DiaMatrix *m, real scale)
 {
diff --git a/lib/dia_xml.c b/lib/dia_xml.c
index bf7cd86b..faaa68a2 100644
--- a/lib/dia_xml.c
+++ b/lib/dia_xml.c
@@ -896,23 +896,23 @@ data_string(DataNode data, DiaContext *ctx)
     p = str;
     while (*val) {
       if (*val == '\\') {
-       val++;
-       switch (*val) {
-       case '0':
-         /* Just skip this. \0 means nothing */
-         break;
-       case 'n':
-         *p++ = '\n';
-         break;
-       case 't':
-         *p++ = '\t';
-         break;
-       case '\\':
-         *p++ = '\\';
-         break;
-       default:
-         dia_context_add_message (ctx, _("Error in string tag."));
-       }
+        val++;
+        switch (*val) {
+          case '0':
+            /* Just skip this. \0 means nothing */
+            break;
+          case 'n':
+            *p++ = '\n';
+            break;
+          case 't':
+            *p++ = '\t';
+            break;
+          case '\\':
+            *p++ = '\\';
+            break;
+          default:
+            dia_context_add_message (ctx, _("Error in string tag."));
+        }
       } else {
        *p++ = *val;
       }
diff --git a/lib/dialinechooser.c b/lib/dialinechooser.c
index 5e104a03..88b316aa 100644
--- a/lib/dialinechooser.c
+++ b/lib/dialinechooser.c
@@ -142,36 +142,38 @@ dia_line_preview_expose(GtkWidget *widget, GdkEventExpose *event)
     cairo_set_line_join (ctx, CAIRO_LINE_JOIN_MITER);
 
     switch (line->lstyle) {
-    case LINESTYLE_DEFAULT:
-    case LINESTYLE_SOLID:
-      cairo_set_dash (ctx, dash_list, 0, 0);
-      break;
-    case LINESTYLE_DASHED:
-      dash_list[0] = 10;
-      dash_list[1] = 10;
-      cairo_set_dash (ctx, dash_list, 2, 0);
-      break;
-    case LINESTYLE_DASH_DOT:
-      dash_list[0] = 10;
-      dash_list[1] = 4;
-      dash_list[2] = 2;
-      dash_list[3] = 4;
-      cairo_set_dash (ctx, dash_list, 4, 0);
-      break;
-    case LINESTYLE_DASH_DOT_DOT:
-      dash_list[0] = 10;
-      dash_list[1] = 2;
-      dash_list[2] = 2;
-      dash_list[3] = 2;
-      dash_list[4] = 2;
-      dash_list[5] = 2;
-      cairo_set_dash (ctx, dash_list, 6, 0);
-      break;
-    case LINESTYLE_DOTTED:
-      dash_list[0] = 2;
-      dash_list[1] = 2;
-      cairo_set_dash (ctx, dash_list, 2, 0);
-      break;
+      case LINESTYLE_DEFAULT:
+      case LINESTYLE_SOLID:
+        cairo_set_dash (ctx, dash_list, 0, 0);
+        break;
+      case LINESTYLE_DASHED:
+        dash_list[0] = 10;
+        dash_list[1] = 10;
+        cairo_set_dash (ctx, dash_list, 2, 0);
+        break;
+      case LINESTYLE_DASH_DOT:
+        dash_list[0] = 10;
+        dash_list[1] = 4;
+        dash_list[2] = 2;
+        dash_list[3] = 4;
+        cairo_set_dash (ctx, dash_list, 4, 0);
+        break;
+      case LINESTYLE_DASH_DOT_DOT:
+        dash_list[0] = 10;
+        dash_list[1] = 2;
+        dash_list[2] = 2;
+        dash_list[3] = 2;
+        dash_list[4] = 2;
+        dash_list[5] = 2;
+        cairo_set_dash (ctx, dash_list, 6, 0);
+        break;
+      case LINESTYLE_DOTTED:
+        dash_list[0] = 2;
+        dash_list[1] = 2;
+        cairo_set_dash (ctx, dash_list, 2, 0);
+        break;
+      default:
+        g_return_val_if_reached (FALSE);
     }
     cairo_move_to (ctx, x, y + height / 2);
     cairo_line_to (ctx, x + width, y + height / 2);
diff --git a/lib/diapathrenderer.c b/lib/diapathrenderer.c
index a476939a..cf8e2038 100644
--- a/lib/diapathrenderer.c
+++ b/lib/diapathrenderer.c
@@ -824,13 +824,13 @@ create_standard_path_from_object (DiaObject *obj)
 
     for (i = 0; i < pr->pathes->len; ++i) {
       GArray *points = g_ptr_array_index (pr->pathes, i);
-      DiaObject *obj;
+      DiaObject *path_obj;
       if (points->len < 2)
-       obj = NULL;
+        path_obj = NULL;
       else
-        obj = create_standard_path (points->len, &g_array_index (points, BezPoint, 0));
-      if (obj)
-        list = g_list_append (list, obj);
+        path_obj = create_standard_path (points->len, &g_array_index (points, BezPoint, 0));
+      if (path_obj)
+        list = g_list_append (list, path_obj);
     }
     if (!list) {
       path = NULL;
diff --git a/lib/font.c b/lib/font.c
index 3b827749..624f435d 100644
--- a/lib/font.c
+++ b/lib/font.c
@@ -101,7 +101,7 @@ static GList *pango_contexts = NULL;
 
 /*! DEPRECATED: there should be only one "measure context" */
 void
-dia_font_push_context(PangoContext *pcontext)
+dia_font_push_context (PangoContext *pcontext)
 {
   pango_contexts = g_list_prepend(pango_contexts, pango_context);
   pango_context = pcontext;
@@ -109,17 +109,20 @@ dia_font_push_context(PangoContext *pcontext)
   g_object_ref(pcontext);
 }
 
+
 /*! DEPRECATED: there should be only one "measure context" */
 void
-dia_font_pop_context() {
-  g_object_unref(pango_context);
-  pango_context = (PangoContext*)pango_contexts->data;
+dia_font_pop_context (void)
+{
+  g_object_unref (pango_context);
+  pango_context = (PangoContext*) pango_contexts->data;
   pango_context_set_language (pango_context, gtk_get_default_language ());
-  pango_contexts = g_list_next(pango_contexts);
+  pango_contexts = g_list_next (pango_contexts);
 }
 
+
 PangoContext *
-dia_font_get_context()
+dia_font_get_context (void)
 {
   if (pango_context == NULL) {
 /* Maybe this one with pangocairo
@@ -255,26 +258,29 @@ dia_font_new(const char *family, DiaFontStyle style, real height)
   return font;
 }
 
+
 static void
-dia_pfd_set_family(PangoFontDescription* pfd, DiaFontFamily fam)
+dia_pfd_set_family (PangoFontDescription* pfd, DiaFontFamily fam)
 {
   switch (fam) {
-  case DIA_FONT_SANS :
-    pango_font_description_set_family(pfd, "sans");
-    break;
-  case DIA_FONT_SERIF :
-    pango_font_description_set_family(pfd, "serif");
-    break;
-  case DIA_FONT_MONOSPACE :
-    pango_font_description_set_family(pfd, "monospace");
-    break;
-  default :
-    /* Pango does _not_ allow fonts without a name (or at least they are not useful) */
-    pango_font_description_set_family(pfd, "sans");
-    break;
+    case DIA_FONT_SANS :
+      pango_font_description_set_family (pfd, "sans");
+      break;
+    case DIA_FONT_SERIF :
+      pango_font_description_set_family (pfd, "serif");
+      break;
+    case DIA_FONT_MONOSPACE :
+      pango_font_description_set_family (pfd, "monospace");
+      break;
+    case DIA_FONT_FAMILY_ANY:
+    default :
+      /* Pango does _not_ allow fonts without a name (or at least they are not useful) */
+      pango_font_description_set_family (pfd, "sans");
+      break;
   }
 }
 
+
 static void
 dia_pfd_set_weight(PangoFontDescription* pfd, DiaFontWeight fw)
 {
diff --git a/lib/geometry.c b/lib/geometry.c
index 4f636d36..e2246e7c 100644
--- a/lib/geometry.c
+++ b/lib/geometry.c
@@ -297,99 +297,115 @@ distance_bez_seg_point(const Point *b1, const BezPoint *b2,
     return distance_line_point(b1, &b2->p1, line_width, point);
 }
 
-real
-distance_bez_line_point(const BezPoint *b, guint npoints,
-                       real line_width, const Point *point)
+
+double
+distance_bez_line_point (const BezPoint *b,
+                         guint           npoints,
+                         double          line_width,
+                         const Point    *point)
 {
   Point last;
   guint i;
-  real line_dist = G_MAXFLOAT;
+  double line_dist = G_MAXFLOAT;
 
-  g_return_val_if_fail(b[0].type == BEZ_MOVE_TO, -1);
+  g_return_val_if_fail (b[0].type == BEZ_MOVE_TO, -1);
 
   last = b[0].p1;
 
   for (i = 1; i < npoints; i++) {
-    real dist;
+    double dist;
 
     switch (b[i].type) {
-    case BEZ_MOVE_TO:
-      last = b[i].p1;
-      break;
-    case BEZ_LINE_TO:
-      dist = distance_line_point(&last, &b[i].p1, line_width, point);
-      line_dist = MIN(line_dist, dist);
-      last = b[i].p1;
-      break;
-    case BEZ_CURVE_TO:
-      dist = bez_point_distance_and_ray_crosses(&last, &b[i].p1, &b[i].p2,
-                                               &b[i].p3, line_width, point,
-                                               NULL);
-      line_dist = MIN(line_dist, dist);
-      last = b[i].p3;
-      break;
+      case BEZ_MOVE_TO:
+        last = b[i].p1;
+        break;
+      case BEZ_LINE_TO:
+        dist = distance_line_point (&last, &b[i].p1, line_width, point);
+        line_dist = MIN (line_dist, dist);
+        last = b[i].p1;
+        break;
+      case BEZ_CURVE_TO:
+        dist = bez_point_distance_and_ray_crosses (&last,
+                                                   &b[i].p1, &b[i].p2,
+                                                   &b[i].p3, line_width,
+                                                   point,
+                                                   NULL);
+        line_dist = MIN(line_dist, dist);
+        last = b[i].p3;
+        break;
+      default:
+        g_return_val_if_reached (G_MAXDOUBLE);
     }
   }
   return line_dist;
 }
 
-real
-distance_bez_shape_point(const BezPoint *b, guint npoints,
-                         real line_width, const Point *point)
+
+double
+distance_bez_shape_point (const BezPoint *b,
+                          guint           npoints,
+                          double          line_width,
+                          const Point    *point)
 {
   Point last;
   const Point *close_to; /* path must be closed to calculate distance */
   guint i;
-  real line_dist = G_MAXFLOAT;
+  double line_dist = G_MAXFLOAT;
   guint crossings = 0;
 
-  g_return_val_if_fail(b[0].type == BEZ_MOVE_TO, -1);
+  g_return_val_if_fail (b[0].type == BEZ_MOVE_TO, -1);
 
   last = b[0].p1;
   close_to = &b[0].p1;
 
   for (i = 1; i < npoints; i++) {
-    real dist;
+    double dist;
 
     switch (b[i].type) {
-    case BEZ_MOVE_TO:
-      /* no complains, there are renderers capable to handle this */
-      last = b[i].p1;
-      close_to = &b[i].p1;
-      break;
-    case BEZ_LINE_TO:
-      dist = distance_line_point(&last, &b[i].p1, line_width, point);
-      crossings += line_crosses_ray(&last, &b[i].p1, point);
-      line_dist = MIN(line_dist, dist);
-      last = b[i].p1;
-      if (close_to && close_to->x == last.x && close_to->y == last.y)
-        close_to = NULL;
-      break;
-    case BEZ_CURVE_TO:
-      dist = bez_point_distance_and_ray_crosses(&last, &b[i].p1, &b[i].p2,
-                                               &b[i].p3, line_width, point,
-                                               &crossings);
-      line_dist = MIN(line_dist, dist);
-      last = b[i].p3;
-      if (close_to && close_to->x == last.x && close_to->y == last.y)
-        close_to = NULL;
-      break;
+      case BEZ_MOVE_TO:
+        /* no complains, there are renderers capable to handle this */
+        last = b[i].p1;
+        close_to = &b[i].p1;
+        break;
+      case BEZ_LINE_TO:
+        dist = distance_line_point (&last, &b[i].p1, line_width, point);
+        crossings += line_crosses_ray (&last, &b[i].p1, point);
+        line_dist = MIN (line_dist, dist);
+        last = b[i].p1;
+        if (close_to && close_to->x == last.x && close_to->y == last.y) {
+          close_to = NULL;
+        }
+        break;
+      case BEZ_CURVE_TO:
+        dist = bez_point_distance_and_ray_crosses (&last, &b[i].p1, &b[i].p2,
+                                                   &b[i].p3, line_width,
+                                                   point, &crossings);
+        line_dist = MIN(line_dist, dist);
+        last = b[i].p3;
+        if (close_to && close_to->x == last.x && close_to->y == last.y) {
+          close_to = NULL;
+        }
+        break;
+      default:
+        g_return_val_if_reached (0.0);
     }
   }
   if (close_to) {
     /* final, implicit line-to */
-    real dist = distance_line_point(&last, close_to, line_width, point);
-    crossings += line_crosses_ray(&last, close_to, point);
-    line_dist = MIN(line_dist, dist);
+    real dist = distance_line_point (&last, close_to, line_width, point);
+    crossings += line_crosses_ray (&last, close_to, point);
+    line_dist = MIN (line_dist, dist);
   }
   /* If there is an odd number of ray crossings, we are inside the polygon.
    * Otherwise, return the minimum distance from a line segment */
-  if (crossings % 2 == 1)
+  if (crossings % 2 == 1) {
     return 0.0;
-  else
+  } else {
     return line_dist;
+  }
 }
 
+
 real
 distance_ellipse_point(const Point *centre, real width, real height,
                       real line_width, const Point *point)
diff --git a/lib/group.c b/lib/group.c
index 9da27927..90a880dc 100644
--- a/lib/group.c
+++ b/lib/group.c
@@ -212,9 +212,14 @@ group_objects_move_delta (Group *group, const Point *delta)
   }
 }
 
+
 static ObjectChange*
-group_move_handle(Group *group, Handle *handle, Point *to, ConnectionPoint *cp,
-                 HandleMoveReason reason, ModifierKeys modifiers)
+group_move_handle (Group            *group,
+                   Handle           *handle,
+                   Point            *to,
+                   ConnectionPoint  *cp,
+                   HandleMoveReason  reason,
+                   ModifierKeys      modifiers)
 {
   DiaObject *obj = &group->object;
   DiaRectangle *bb = &obj->bounding_box;
@@ -234,53 +239,65 @@ group_move_handle(Group *group, Handle *handle, Point *to, ConnectionPoint *cp,
    * For rotated group we should either translate the handle positions
    * or we might rotate the horizontal and vertical scale ...
    */
-  switch(handle->id) {
-  case HANDLE_RESIZE_NW:
-    g_assert(group->handles[7].id == HANDLE_RESIZE_SE);
-    fixed = group->handles[7].pos;
-    w1 = w0 - (to->x - top_left.x);
-    h1 = h0 - (to->y - top_left.y);
-    break;
-  case HANDLE_RESIZE_N:
-    g_assert(group->handles[6].id == HANDLE_RESIZE_S);
-    fixed = group->handles[6].pos;
-    h1 = h0 - (to->y - top_left.y);
-    break;
-  case HANDLE_RESIZE_NE:
-    g_assert(group->handles[5].id == HANDLE_RESIZE_SW);
-    fixed = group->handles[5].pos;
-    w1 = to->x - top_left.x;
-    h1 = h0 - (to->y - top_left.y);
-    break;
-  case HANDLE_RESIZE_W:
-    g_assert(group->handles[4].id == HANDLE_RESIZE_E);
-    fixed = group->handles[4].pos;
-    w1 = w0 - (to->x - top_left.x);
-    break;
-  case HANDLE_RESIZE_E:
-    g_assert(group->handles[3].id == HANDLE_RESIZE_W);
-    fixed = group->handles[3].pos;
-    w1 = to->x - top_left.x;
-    break;
-  case HANDLE_RESIZE_SW:
-    g_assert(group->handles[2].id == HANDLE_RESIZE_NE);
-    fixed = group->handles[2].pos;
-    w1 = w0 - (to->x - top_left.x);
-    h1 = to->y - top_left.y;
-    break;
-  case HANDLE_RESIZE_S:
-    g_assert(group->handles[1].id == HANDLE_RESIZE_N);
-    fixed = group->handles[1].pos;
-    h1 = to->y - top_left.y;
-    break;
-  case HANDLE_RESIZE_SE:
-    g_assert(group->handles[0].id == HANDLE_RESIZE_NW);
-    fixed = group->handles[0].pos;
-    w1 = to->x - top_left.x;
-    h1 = to->y - top_left.y;
-    break;
-  default:
-    g_warning("group_move_handle() called with wrong handle-id %d", handle->id);
+  switch (handle->id) {
+    case HANDLE_RESIZE_NW:
+      g_return_val_if_fail (group->handles[7].id == HANDLE_RESIZE_SE, NULL);
+      fixed = group->handles[7].pos;
+      w1 = w0 - (to->x - top_left.x);
+      h1 = h0 - (to->y - top_left.y);
+      break;
+    case HANDLE_RESIZE_N:
+      g_return_val_if_fail (group->handles[6].id == HANDLE_RESIZE_S, NULL);
+      fixed = group->handles[6].pos;
+      h1 = h0 - (to->y - top_left.y);
+      break;
+    case HANDLE_RESIZE_NE:
+      g_return_val_if_fail (group->handles[5].id == HANDLE_RESIZE_SW, NULL);
+      fixed = group->handles[5].pos;
+      w1 = to->x - top_left.x;
+      h1 = h0 - (to->y - top_left.y);
+      break;
+    case HANDLE_RESIZE_W:
+      g_return_val_if_fail (group->handles[4].id == HANDLE_RESIZE_E, NULL);
+      fixed = group->handles[4].pos;
+      w1 = w0 - (to->x - top_left.x);
+      break;
+    case HANDLE_RESIZE_E:
+      g_return_val_if_fail (group->handles[3].id == HANDLE_RESIZE_W, NULL);
+      fixed = group->handles[3].pos;
+      w1 = to->x - top_left.x;
+      break;
+    case HANDLE_RESIZE_SW:
+      g_return_val_if_fail (group->handles[2].id == HANDLE_RESIZE_NE, NULL);
+      fixed = group->handles[2].pos;
+      w1 = w0 - (to->x - top_left.x);
+      h1 = to->y - top_left.y;
+      break;
+    case HANDLE_RESIZE_S:
+      g_return_val_if_fail (group->handles[1].id == HANDLE_RESIZE_N, NULL);
+      fixed = group->handles[1].pos;
+      h1 = to->y - top_left.y;
+      break;
+    case HANDLE_RESIZE_SE:
+      g_return_val_if_fail (group->handles[0].id == HANDLE_RESIZE_NW, NULL);
+      fixed = group->handles[0].pos;
+      w1 = to->x - top_left.x;
+      h1 = to->y - top_left.y;
+      break;
+    case HANDLE_MOVE_STARTPOINT:
+    case HANDLE_MOVE_ENDPOINT:
+    case HANDLE_CUSTOM1:
+    case HANDLE_CUSTOM2:
+    case HANDLE_CUSTOM3:
+    case HANDLE_CUSTOM4:
+    case HANDLE_CUSTOM5:
+    case HANDLE_CUSTOM6:
+    case HANDLE_CUSTOM7:
+    case HANDLE_CUSTOM8:
+    case HANDLE_CUSTOM9:
+    default:
+      g_warning ("group_move_handle() called with wrong handle-id %d",
+                 handle->id);
   }
 
   if (!group->matrix) {
diff --git a/lib/orth_conn.c b/lib/orth_conn.c
index 8040b684..c0fcf0d9 100644
--- a/lib/orth_conn.c
+++ b/lib/orth_conn.c
@@ -168,102 +168,136 @@ static int get_segment_nr(OrthConn *orth, Point *point, real max_dist)
 
 
 ObjectChange *
-orthconn_move_handle(OrthConn *orth, Handle *handle,
-                    Point *to, ConnectionPoint *cp,
-                    HandleMoveReason reason, ModifierKeys modifiers)
+orthconn_move_handle (OrthConn         *orth,
+                      Handle           *handle,
+                      Point            *to,
+                      ConnectionPoint  *cp,
+                      HandleMoveReason  reason,
+                      ModifierKeys      modifiers)
 {
   int n;
   int handle_nr;
-  DiaObject *obj = (DiaObject *)orth;
+  DiaObject *obj = (DiaObject *) orth;
   ObjectChange *change = NULL;
 
-  switch(handle->id) {
-  case HANDLE_MOVE_STARTPOINT:
-    orth->points[0] = *to;
-    if (orth->autorouting &&
-       autoroute_layout_orthconn(orth, cp,
-                                 obj->handles[1]->connected_to))
-      break;
-    switch (orth->orientation[0]) {
-    case HORIZONTAL:
-      orth->points[1].y = to->y;
-      break;
-    case VERTICAL:
-      orth->points[1].x = to->x;
+  switch (handle->id) {
+    case HANDLE_MOVE_STARTPOINT:
+      orth->points[0] = *to;
+      if (orth->autorouting &&
+          autoroute_layout_orthconn (orth, cp,
+                                     obj->handles[1]->connected_to)) {
+        break;
+      }
+      switch (orth->orientation[0]) {
+        case HORIZONTAL:
+          orth->points[1].y = to->y;
+          break;
+        case VERTICAL:
+          orth->points[1].x = to->x;
+          break;
+        default:
+          g_return_val_if_reached (NULL);
+      }
       break;
-    }
-    break;
-  case HANDLE_MOVE_ENDPOINT:
-    n = orth->numpoints - 1;
-    orth->points[n] = *to;
-    if (orth->autorouting &&
-       autoroute_layout_orthconn(orth, obj->handles[0]->connected_to,
-                                 cp))
-      break;
-    switch (orth->orientation[n-1]) {
-    case HORIZONTAL:
-      orth->points[n-1].y = to->y;
+    case HANDLE_MOVE_ENDPOINT:
+      n = orth->numpoints - 1;
+      orth->points[n] = *to;
+      if (orth->autorouting &&
+          autoroute_layout_orthconn (orth, obj->handles[0]->connected_to,
+                                     cp)) {
+        break;
+      }
+      switch (orth->orientation[n-1]) {
+        case HORIZONTAL:
+          orth->points[n-1].y = to->y;
+          break;
+        case VERTICAL:
+          orth->points[n-1].x = to->x;
+          break;
+        default:
+          g_return_val_if_reached (NULL);
+      }
       break;
-    case VERTICAL:
-      orth->points[n-1].x = to->x;
+    case HANDLE_MIDPOINT:
+      handle_nr = get_handle_nr (orth, handle);
+      if (orth->autorouting) {
+        change = orthconn_set_autorouting (orth, FALSE);
+      }
+      switch (orth->orientation[handle_nr]) {
+        case HORIZONTAL:
+          orth->points[handle_nr].y = to->y;
+          orth->points[handle_nr+1].y = to->y;
+          break;
+        case VERTICAL:
+          orth->points[handle_nr].x = to->x;
+          orth->points[handle_nr+1].x = to->x;
+          break;
+        default:
+          g_return_val_if_reached (NULL);
+      }
       break;
-    }
-    break;
-  case HANDLE_MIDPOINT:
-    handle_nr = get_handle_nr(orth, handle);
-    if (orth->autorouting)
-      change = orthconn_set_autorouting(orth, FALSE);
-    switch (orth->orientation[handle_nr]) {
-    case HORIZONTAL:
-      orth->points[handle_nr].y = to->y;
-      orth->points[handle_nr+1].y = to->y;
+    case HANDLE_RESIZE_NW:
+    case HANDLE_RESIZE_N:
+    case HANDLE_RESIZE_NE:
+    case HANDLE_RESIZE_W:
+    case HANDLE_RESIZE_E:
+    case HANDLE_RESIZE_SW:
+    case HANDLE_RESIZE_S:
+    case HANDLE_RESIZE_SE:
+    case HANDLE_CUSTOM2:
+    case HANDLE_CUSTOM3:
+    case HANDLE_CUSTOM4:
+    case HANDLE_CUSTOM5:
+    case HANDLE_CUSTOM6:
+    case HANDLE_CUSTOM7:
+    case HANDLE_CUSTOM8:
+    case HANDLE_CUSTOM9:
+    default:
+      g_warning ("Internal error in orthconn_move_handle.\n");
       break;
-    case VERTICAL:
-      orth->points[handle_nr].x = to->x;
-      orth->points[handle_nr+1].x = to->x;
-      break;
-    }
-    break;
-  default:
-    g_warning("Internal error in orthconn_move_handle.\n");
-    break;
   }
 
   return change;
 }
 
+
 ObjectChange *
-orthconn_move(OrthConn *orth, Point *to)
+orthconn_move (OrthConn *orth, Point *to)
 {
   Point p;
   int i;
 
   p = *to;
-  point_sub(&p, &orth->points[0]);
+  point_sub (&p, &orth->points[0]);
 
   orth->points[0] = *to;
-  for (i=1;i<orth->numpoints;i++) {
-    point_add(&orth->points[i], &p);
+  for (i = 1; i < orth->numpoints; i++) {
+    point_add (&orth->points[i], &p);
   }
+
   return NULL;
 }
 
+
 real
-orthconn_distance_from(OrthConn *orth, Point *point, real line_width)
+orthconn_distance_from (OrthConn *orth, Point *point, real line_width)
 {
   int i;
   real dist;
 
-  dist = distance_line_point( &orth->points[0], &orth->points[1],
-                             line_width, point);
-  for (i=1;i<orth->numpoints-1;i++) {
-    dist = MIN(dist,
-              distance_line_point( &orth->points[i], &orth->points[i+1],
-                                   line_width, point));
+  dist = distance_line_point (&orth->points[0], &orth->points[1],
+                              line_width, point);
+
+  for (i = 1; i < orth->numpoints - 1; i++) {
+    dist = MIN (dist,
+                distance_line_point (&orth->points[i], &orth->points[i+1],
+                                     line_width, point));
   }
+
   return dist;
 }
 
+
 static void
 neworthconn_update_midpoints(OrthConn *orth)
 {
@@ -913,116 +947,133 @@ insert_handle(OrthConn *orth, int segment,
   orth->numhandles = orth->numpoints-1;
 }
 
+
 static void
-endsegment_change_free(struct EndSegmentChange *change)
+endsegment_change_free (struct EndSegmentChange *change)
 {
   if ( (change->type==TYPE_ADD_SEGMENT && !change->applied) ||
        (change->type==TYPE_REMOVE_SEGMENT && change->applied) ){
-    if (change->handle)
-      g_free(change->handle);
+    if (change->handle) {
+      g_free (change->handle);
+    }
     change->handle = NULL;
   }
   if (change->cplchange) {
-    if (change->cplchange->free) change->cplchange->free(change->cplchange);
-    g_free(change->cplchange);
+    if (change->cplchange->free) {
+      change->cplchange->free (change->cplchange);
+    }
+    g_free (change->cplchange);
     change->cplchange = NULL;
   }
 }
 
+
 static void
-endsegment_change_apply(struct EndSegmentChange *change, DiaObject *obj)
+endsegment_change_apply (struct EndSegmentChange *change, DiaObject *obj)
 {
   OrthConn *orth = (OrthConn *)obj;
 
   change->applied = 1;
 
   switch (change->type) {
-  case TYPE_ADD_SEGMENT:
-    object_unconnect(obj, change->old_end_handle);
-    if (change->segment==0) { /* first */
-      add_point(orth, 0, &change->point);
-      insert_handle(orth, change->segment,
-                   change->handle, FLIP_ORIENT(orth->orientation[0]) );
-      setup_midpoint_handle(orth->handles[1]);
-      obj->position = orth->points[0];
-      change->cplchange = connpointline_add_point(orth->midpoints,
-                                                 &change->point);
-    } else { /* last */
-      add_point(orth, orth->numpoints, &change->point);
-      insert_handle(orth, change->segment, change->handle,
-                   FLIP_ORIENT(orth->orientation[orth->numpoints-3]) );
-      setup_midpoint_handle(orth->handles[orth->numpoints-3]);
-      change->cplchange = connpointline_add_point(orth->midpoints,
-                                                 &orth->midpoints->end);
-    }
-    if (change->cp)
-      object_connect(obj, change->handle, change->cp);
-    break;
-  case TYPE_REMOVE_SEGMENT:
-    object_unconnect(obj, change->old_end_handle);
-    change->cplchange =
-      connpointline_remove_point(orth->midpoints,
-                                &orth->points[change->segment]);
-    if (change->segment==0) { /* first */
-      delete_point(orth, 0);
-      remove_handle(orth, 0);
-      setup_endpoint_handle(orth->handles[0], HANDLE_MOVE_STARTPOINT);
-      obj->position = orth->points[0];
-   } else { /* last */
-      delete_point(orth, orth->numpoints-1);
-      remove_handle(orth, change->segment);
-      setup_endpoint_handle(orth->handles[orth->numpoints-2],
-                           HANDLE_MOVE_ENDPOINT);
-    }
-    break;
+    case TYPE_ADD_SEGMENT:
+      object_unconnect (obj, change->old_end_handle);
+      if (change->segment==0) { /* first */
+        add_point (orth, 0, &change->point);
+        insert_handle (orth, change->segment,
+                       change->handle, FLIP_ORIENT(orth->orientation[0]) );
+        setup_midpoint_handle (orth->handles[1]);
+        obj->position = orth->points[0];
+        change->cplchange = connpointline_add_point (orth->midpoints,
+                                                     &change->point);
+      } else { /* last */
+        add_point (orth, orth->numpoints, &change->point);
+        insert_handle (orth, change->segment, change->handle,
+                       FLIP_ORIENT(orth->orientation[orth->numpoints-3]) );
+        setup_midpoint_handle (orth->handles[orth->numpoints-3]);
+        change->cplchange = connpointline_add_point (orth->midpoints,
+                                                     &orth->midpoints->end);
+      }
+      if (change->cp) {
+        object_connect (obj, change->handle, change->cp);
+      }
+      break;
+    case TYPE_REMOVE_SEGMENT:
+      object_unconnect (obj, change->old_end_handle);
+      change->cplchange =
+        connpointline_remove_point (orth->midpoints,
+                                    &orth->points[change->segment]);
+      if (change->segment==0) { /* first */
+        delete_point (orth, 0);
+        remove_handle (orth, 0);
+        setup_endpoint_handle (orth->handles[0], HANDLE_MOVE_STARTPOINT);
+        obj->position = orth->points[0];
+      } else { /* last */
+        delete_point (orth, orth->numpoints-1);
+        remove_handle (orth, change->segment);
+        setup_endpoint_handle (orth->handles[orth->numpoints-2],
+                               HANDLE_MOVE_ENDPOINT);
+      }
+      break;
+    default:
+      g_return_if_reached ();
   }
-  neworthconn_update_midpoints(orth); /* useless ? */
+  neworthconn_update_midpoints (orth); /* useless ? */
 }
 
+
 static void
-endsegment_change_revert(struct EndSegmentChange *change, DiaObject *obj)
+endsegment_change_revert (struct EndSegmentChange *change, DiaObject *obj)
 {
-  OrthConn *orth = (OrthConn *)obj;
+  OrthConn *orth = (OrthConn *) obj;
+
+  change->cplchange->revert (change->cplchange, obj);
 
-  change->cplchange->revert(change->cplchange,obj);
   switch (change->type) {
-  case TYPE_ADD_SEGMENT:
-    object_unconnect(obj, change->handle);
-    if (change->segment==0) { /* first */
-      delete_point(orth, 0);
-      remove_handle(orth, 0);
-      setup_endpoint_handle(orth->handles[0], HANDLE_MOVE_STARTPOINT);
-      obj->position = orth->points[0];
-   } else { /* last */
-      delete_point(orth, orth->numpoints-1);
-      remove_handle(orth, change->segment);
-      setup_endpoint_handle(orth->handles[orth->numpoints-2],
-                           HANDLE_MOVE_ENDPOINT);
-    }
-    if (change->cp)
-      object_connect(obj, change->old_end_handle, change->cp);
-    break;
-  case TYPE_REMOVE_SEGMENT:
-    if (change->segment==0) { /* first */
-      add_point(orth, 0, &change->point);
-      insert_handle(orth, change->segment,
-                   change->handle, FLIP_ORIENT(orth->orientation[0]) );
-      setup_midpoint_handle(orth->handles[1]);
-      obj->position = orth->points[0];
-    } else { /* last */
-      add_point(orth, orth->numpoints, &change->point);
-      insert_handle(orth, change->segment, change->handle,
-                   FLIP_ORIENT(orth->orientation[orth->numpoints-3]) );
-      setup_midpoint_handle(orth->handles[orth->numpoints-3]);
-    }
-    if (change->cp)
-      object_connect(obj, change->old_end_handle, change->cp);
-    break;
+    case TYPE_ADD_SEGMENT:
+      object_unconnect(obj, change->handle);
+      if (change->segment==0) { /* first */
+        delete_point (orth, 0);
+        remove_handle (orth, 0);
+        setup_endpoint_handle (orth->handles[0], HANDLE_MOVE_STARTPOINT);
+        obj->position = orth->points[0];
+      } else { /* last */
+        delete_point (orth, orth->numpoints-1);
+        remove_handle (orth, change->segment);
+        setup_endpoint_handle (orth->handles[orth->numpoints-2],
+                               HANDLE_MOVE_ENDPOINT);
+      }
+      if (change->cp) {
+        object_connect (obj, change->old_end_handle, change->cp);
+      }
+      break;
+    case TYPE_REMOVE_SEGMENT:
+      if (change->segment==0) { /* first */
+        add_point (orth, 0, &change->point);
+        insert_handle (orth, change->segment,
+                       change->handle, FLIP_ORIENT (orth->orientation[0]) );
+        setup_midpoint_handle (orth->handles[1]);
+        obj->position = orth->points[0];
+      } else { /* last */
+        add_point (orth, orth->numpoints, &change->point);
+        insert_handle (orth, change->segment, change->handle,
+                       FLIP_ORIENT (orth->orientation[orth->numpoints-3]) );
+        setup_midpoint_handle (orth->handles[orth->numpoints-3]);
+      }
+      if (change->cp) {
+        object_connect (obj, change->old_end_handle, change->cp);
+      }
+      break;
+    default:
+      g_return_if_reached ();
   }
+
   change->applied = 0;
-  neworthconn_update_midpoints(orth); /* useless ? */
+
+  neworthconn_update_midpoints (orth); /* useless ? */
 }
 
+
 static ObjectChange *
 endsegment_create_change(OrthConn *orth, enum change_type type,
                         int segment, Point *point,
@@ -1078,8 +1129,9 @@ midsegment_change_free(struct MidSegmentChange *change)
   }
 }
 
+
 static void
-midsegment_change_apply(struct MidSegmentChange *change, DiaObject *obj)
+midsegment_change_apply (struct MidSegmentChange *change, DiaObject *obj)
 {
   OrthConn *orth = (OrthConn *)obj;
   int seg;
@@ -1087,72 +1139,78 @@ midsegment_change_apply(struct MidSegmentChange *change, DiaObject *obj)
   change->applied = 1;
 
   switch (change->type) {
-  case TYPE_ADD_SEGMENT:
-    add_point(orth, change->segment+1, &change->points[1]);
-    add_point(orth, change->segment+1, &change->points[0]);
-    insert_handle(orth, change->segment+1, change->handles[1],
-                 orth->orientation[change->segment] );
-    insert_handle(orth, change->segment+1, change->handles[0],
-                 FLIP_ORIENT(orth->orientation[change->segment]) );
-    change->cplchange[0] =
-      connpointline_add_point(orth->midpoints,&change->points[0]);
-    change->cplchange[1] =
-      connpointline_add_point(orth->midpoints,&change->points[1]);
-    break;
-  case TYPE_REMOVE_SEGMENT:
-    seg = change->segment?change->segment:1;
-    change->cplchange[0] =
-      connpointline_remove_point(orth->midpoints,
-                                &orth->points[seg-1]);
-    change->cplchange[1] =
-      connpointline_remove_point(orth->midpoints,
-                                &orth->points[seg]);
-    delete_point(orth, change->segment);
-    remove_handle(orth, change->segment);
-    delete_point(orth, change->segment);
-    remove_handle(orth, change->segment);
-    if (orth->orientation[change->segment]==HORIZONTAL) {
-      orth->points[change->segment].x = change->points[0].x;
-    } else {
-      orth->points[change->segment].y = change->points[0].y;
-    }
-    break;
+    case TYPE_ADD_SEGMENT:
+      add_point (orth, change->segment+1, &change->points[1]);
+      add_point (orth, change->segment+1, &change->points[0]);
+      insert_handle (orth, change->segment+1, change->handles[1],
+                     orth->orientation[change->segment] );
+      insert_handle (orth, change->segment+1, change->handles[0],
+                     FLIP_ORIENT (orth->orientation[change->segment]) );
+      change->cplchange[0] =
+        connpointline_add_point (orth->midpoints, &change->points[0]);
+      change->cplchange[1] =
+        connpointline_add_point (orth->midpoints, &change->points[1]);
+      break;
+    case TYPE_REMOVE_SEGMENT:
+      seg = change->segment?change->segment:1;
+      change->cplchange[0] =
+        connpointline_remove_point (orth->midpoints,
+          &orth->points[seg-1]);
+      change->cplchange[1] =
+        connpointline_remove_point (orth->midpoints,
+          &orth->points[seg]);
+      delete_point (orth, change->segment);
+      remove_handle (orth, change->segment);
+      delete_point (orth, change->segment);
+      remove_handle (orth, change->segment);
+      if (orth->orientation[change->segment]==HORIZONTAL) {
+        orth->points[change->segment].x = change->points[0].x;
+      } else {
+        orth->points[change->segment].y = change->points[0].y;
+      }
+      break;
+    default:
+     g_return_if_reached ();
   }
-  neworthconn_update_midpoints(orth); /* useless ? */
+  neworthconn_update_midpoints (orth); /* useless ? */
 }
 
+
 static void
-midsegment_change_revert(struct MidSegmentChange *change, DiaObject *obj)
+midsegment_change_revert (struct MidSegmentChange *change, DiaObject *obj)
 {
   OrthConn *orth = (OrthConn *)obj;
 
-  change->cplchange[0]->revert(change->cplchange[0],obj);
-  change->cplchange[1]->revert(change->cplchange[1],obj);
+  change->cplchange[0]->revert (change->cplchange[0], obj);
+  change->cplchange[1]->revert (change->cplchange[1], obj);
 
   switch (change->type) {
-  case TYPE_ADD_SEGMENT:
-    delete_point(orth, change->segment+1);
-    remove_handle(orth, change->segment+1);
-    delete_point(orth, change->segment+1);
-    remove_handle(orth, change->segment+1);
-    break;
-  case TYPE_REMOVE_SEGMENT:
-    if (orth->orientation[change->segment]==HORIZONTAL) {
-      orth->points[change->segment].x = change->points[1].x;
-    } else {
-      orth->points[change->segment].y = change->points[1].y;
-    }
-    add_point(orth, change->segment, &change->points[1]);
-    add_point(orth, change->segment, &change->points[0]);
-    insert_handle(orth, change->segment, change->handles[1],
-                 orth->orientation[change->segment-1] );
-    insert_handle(orth, change->segment, change->handles[0],
-                 FLIP_ORIENT(orth->orientation[change->segment-1]) );
-    break;
+    case TYPE_ADD_SEGMENT:
+      delete_point (orth, change->segment+1);
+      remove_handle (orth, change->segment+1);
+      delete_point (orth, change->segment+1);
+      remove_handle (orth, change->segment+1);
+      break;
+    case TYPE_REMOVE_SEGMENT:
+      if (orth->orientation[change->segment]==HORIZONTAL) {
+        orth->points[change->segment].x = change->points[1].x;
+      } else {
+        orth->points[change->segment].y = change->points[1].y;
+      }
+      add_point (orth, change->segment, &change->points[1]);
+      add_point (orth, change->segment, &change->points[0]);
+      insert_handle (orth, change->segment, change->handles[1],
+                     orth->orientation[change->segment-1] );
+      insert_handle (orth, change->segment, change->handles[0],
+                     FLIP_ORIENT (orth->orientation[change->segment-1]) );
+      break;
+    default:
+      g_return_if_reached ();
   }
   change->applied = 0;
 }
 
+
 static ObjectChange *
 midsegment_create_change(OrthConn *orth, enum change_type type,
                         int segment,
diff --git a/lib/path-math.c b/lib/path-math.c
index 9473cbfd..356fd84b 100644
--- a/lib/path-math.c
+++ b/lib/path-math.c
@@ -247,28 +247,35 @@ bezier_bezier_intersection (GArray              *crossing,
   }
 }
 
+
 static gboolean
 _segment_from_path (BezierSegment *a, const GArray *p1, int i)
 {
   const BezPoint *abp0 = &g_array_index (p1, BezPoint, i-1);
   const BezPoint *abp1 = &g_array_index (p1, BezPoint, i);
+
   a->p0 = abp0->type == BEZ_CURVE_TO ? abp0->p3 : abp0->p1;
+
   switch (abp1->type) {
-  case BEZ_CURVE_TO :
-    a->p1 = abp1->p1; a->p2 = abp1->p2; a->p3 = abp1->p3;
-    break;
-  case BEZ_LINE_TO :
-    if (distance_point_point (&a->p0, &abp1->p1) < EPSILON)
-      return FALSE; /* avoid a zero length line-to for confusion with move-to */
-    a->p1 = a->p2 = a->p3 = abp1->p1;
-    break;
-  case BEZ_MOVE_TO :
-    a->p0 = a->p1 = a->p2 = a->p3 = abp1->p1;
-    break;
+    case BEZ_CURVE_TO :
+      a->p1 = abp1->p1; a->p2 = abp1->p2; a->p3 = abp1->p3;
+      break;
+    case BEZ_LINE_TO :
+      if (distance_point_point (&a->p0, &abp1->p1) < EPSILON)
+        return FALSE; /* avoid a zero length line-to for confusion with move-to */
+      a->p1 = a->p2 = a->p3 = abp1->p1;
+      break;
+    case BEZ_MOVE_TO :
+      a->p0 = a->p1 = a->p2 = a->p3 = abp1->p1;
+      break;
+    default:
+      g_return_val_if_reached (FALSE);
   }
+
   return TRUE;
 }
 
+
 static void
 _curve_from_segment (BezPoint *bp, const BezierSegment *a, gboolean flip)
 {
@@ -806,38 +813,40 @@ path_combine (const GArray   *p1,
                                    0 /* line width */, &g_array_index (p1, BezPoint, 0).p1) == 0;
 
     switch (mode) {
-    case PATH_UNION: /* Union and Exclusion just join the pathes */
-      if (two_in_one)
-       result = _path_copy (p1);
-      else if (one_in_two) /* the bigger one */
-       result = _path_copy (p2);
-      else
-       result = _make_path0 (one, NULL, two, NULL);
-      break;
-    case PATH_DIFFERENCE: /* Difference does it too, if p2 is inside p1 */
-      if (two_in_one)
-       result = _make_path0 (one, NULL, two, NULL);
-      else if (one_in_two)
-       result = NULL;
-      else
-       result = _path_copy (p1);
-      break;
-    case PATH_INTERSECTION:
-      if (two_in_one)
-       result = _path_copy (p2);
-      else if (one_in_two)
-       result = _path_copy (p1);
-      else
-       result = NULL; /* Intersection is just emtpy w/o crossing */
-      break;
-    case PATH_EXCLUSION:
-      if (two_in_one)/* with two_in_one this is like difference */
-       result = _make_path0 (one, NULL, two, NULL);
-      else if (one_in_two)
-       result = _make_path0 (two, NULL, one, NULL);
-      else /* join */
-       result = _make_path0 (one, NULL, two, NULL);
-      break;
+      case PATH_UNION: /* Union and Exclusion just join the pathes */
+        if (two_in_one)
+          result = _path_copy (p1);
+        else if (one_in_two) /* the bigger one */
+          result = _path_copy (p2);
+        else
+          result = _make_path0 (one, NULL, two, NULL);
+        break;
+      case PATH_DIFFERENCE: /* Difference does it too, if p2 is inside p1 */
+        if (two_in_one)
+          result = _make_path0 (one, NULL, two, NULL);
+        else if (one_in_two)
+          result = NULL;
+        else
+          result = _path_copy (p1);
+        break;
+      case PATH_INTERSECTION:
+        if (two_in_one)
+          result = _path_copy (p2);
+        else if (one_in_two)
+          result = _path_copy (p1);
+        else
+          result = NULL; /* Intersection is just emtpy w/o crossing */
+        break;
+      case PATH_EXCLUSION:
+        if (two_in_one)/* with two_in_one this is like difference */
+          result = _make_path0 (one, NULL, two, NULL);
+        else if (one_in_two)
+          result = _make_path0 (two, NULL, one, NULL);
+        else /* join */
+          result = _make_path0 (one, NULL, two, NULL);
+        break;
+      default:
+        g_return_val_if_reached (NULL);
     }
   }
   g_array_free (one, TRUE);
diff --git a/lib/poly_conn.c b/lib/poly_conn.c
index b640c949..9d002555 100644
--- a/lib/poly_conn.c
+++ b/lib/poly_conn.c
@@ -27,11 +27,13 @@
 #include "poly_conn.h"
 #include "diarenderer.h"
 
+
 enum change_type {
   TYPE_ADD_POINT,
   TYPE_REMOVE_POINT
 };
 
+
 struct PointChange {
   ObjectChange obj_change;
 
@@ -42,10 +44,11 @@ struct PointChange {
   int pos;
 
   Handle *handle; /* owning ref when not applied for ADD_POINT
-                    owning ref when applied for REMOVE_POINT */
+                     owning ref when applied for REMOVE_POINT */
   ConnectionPoint *connected_to; /* NULL if not connected */
 };
 
+
 static ObjectChange *
 polyconn_create_change(PolyConn *poly, enum change_type type,
                       Point *point, int segment, Handle *handle,
@@ -80,32 +83,53 @@ static int get_handle_nr(PolyConn *poly, Handle *handle)
   return -1;
 }
 
+
 ObjectChange *
-polyconn_move_handle(PolyConn *poly, Handle *handle,
-                    Point *to, ConnectionPoint *cp,
-                    HandleMoveReason reason, ModifierKeys modifiers)
+polyconn_move_handle (PolyConn         *poly,
+                      Handle           *handle,
+                      Point            *to,
+                      ConnectionPoint  *cp,
+                      HandleMoveReason  reason,
+                      ModifierKeys      modifiers)
 {
   int handle_nr;
 
-  handle_nr = get_handle_nr(poly, handle);
-  switch(handle->id) {
-  case HANDLE_MOVE_STARTPOINT:
-    poly->points[0] = *to;
-    break;
-  case HANDLE_MOVE_ENDPOINT:
-    poly->points[poly->numpoints-1] = *to;
-    break;
-  case HANDLE_CORNER:
-    poly->points[handle_nr] = *to;
-    break;
-  default:
-    g_warning("Internal error in polyconn_move_handle.\n");
-    break;
+  handle_nr = get_handle_nr (poly, handle);
+  switch (handle->id) {
+    case HANDLE_MOVE_STARTPOINT:
+      poly->points[0] = *to;
+      break;
+    case HANDLE_MOVE_ENDPOINT:
+      poly->points[poly->numpoints-1] = *to;
+      break;
+    case HANDLE_CORNER:
+      poly->points[handle_nr] = *to;
+      break;
+    case HANDLE_RESIZE_N:
+    case HANDLE_RESIZE_NE:
+    case HANDLE_RESIZE_W:
+    case HANDLE_RESIZE_NW:
+    case HANDLE_RESIZE_E:
+    case HANDLE_RESIZE_SW:
+    case HANDLE_RESIZE_S:
+    case HANDLE_RESIZE_SE:
+    case HANDLE_CUSTOM2:
+    case HANDLE_CUSTOM3:
+    case HANDLE_CUSTOM4:
+    case HANDLE_CUSTOM5:
+    case HANDLE_CUSTOM6:
+    case HANDLE_CUSTOM7:
+    case HANDLE_CUSTOM8:
+    case HANDLE_CUSTOM9:
+    default:
+      g_warning ("Internal error in polyconn_move_handle.\n");
+      break;
   }
 
   return NULL;
 }
 
+
 ObjectChange*
 polyconn_move(PolyConn *poly, Point *to)
 {
@@ -493,49 +517,60 @@ polyconn_change_free(struct PointChange *change)
   }
 }
 
+
 static void
-polyconn_change_apply(struct PointChange *change, DiaObject *obj)
+polyconn_change_apply (struct PointChange *change, DiaObject *obj)
 {
   change->applied = 1;
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    add_handle((PolyConn *)obj, change->pos, &change->point,
-              change->handle);
-    break;
-  case TYPE_REMOVE_POINT:
-    object_unconnect(obj, change->handle);
-    remove_handle((PolyConn *)obj, change->pos);
-    break;
+    case TYPE_ADD_POINT:
+      add_handle ((PolyConn *) obj, change->pos, &change->point,
+                  change->handle);
+      break;
+    case TYPE_REMOVE_POINT:
+      object_unconnect (obj, change->handle);
+      remove_handle ((PolyConn *) obj, change->pos);
+      break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 static void
-polyconn_change_revert(struct PointChange *change, DiaObject *obj)
+polyconn_change_revert (struct PointChange *change, DiaObject *obj)
 {
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    remove_handle((PolyConn *)obj, change->pos);
-    break;
-  case TYPE_REMOVE_POINT:
-    add_handle((PolyConn *)obj, change->pos, &change->point,
-              change->handle);
-    if (change->connected_to) {
-      object_connect(obj, change->handle, change->connected_to);
-    }
-
-    break;
+    case TYPE_ADD_POINT:
+      remove_handle ((PolyConn *) obj, change->pos);
+      break;
+    case TYPE_REMOVE_POINT:
+      add_handle ((PolyConn *) obj, change->pos, &change->point,
+                  change->handle);
+
+      if (change->connected_to) {
+        object_connect (obj, change->handle, change->connected_to);
+      }
+
+      break;
+    default:
+      g_return_if_reached ();
   }
   change->applied = 0;
 }
 
+
 static ObjectChange *
-polyconn_create_change(PolyConn *poly, enum change_type type,
-                      Point *point, int pos, Handle *handle,
-                      ConnectionPoint *connected_to)
+polyconn_create_change (PolyConn         *poly,
+                        enum change_type  type,
+                        Point            *point,
+                        int               pos,
+                        Handle           *handle,
+                        ConnectionPoint  *connected_to)
 {
   struct PointChange *change;
 
-  change = g_new(struct PointChange, 1);
+  change = g_new0 (struct PointChange, 1);
 
   change->obj_change.apply = (ObjectChangeApplyFunc) polyconn_change_apply;
   change->obj_change.revert = (ObjectChangeRevertFunc) polyconn_change_revert;
@@ -548,5 +583,5 @@ polyconn_create_change(PolyConn *poly, enum change_type type,
   change->handle = handle;
   change->connected_to = connected_to;
 
-  return (ObjectChange *)change;
+  return (ObjectChange *) change;
 }
diff --git a/lib/polyshape.c b/lib/polyshape.c
index acaea5ca..158dc83d 100644
--- a/lib/polyshape.c
+++ b/lib/polyshape.c
@@ -564,46 +564,56 @@ polyshape_change_free(struct PointChange *change)
   }
 }
 
+
 static void
-polyshape_change_apply(struct PointChange *change, DiaObject *obj)
+polyshape_change_apply (struct PointChange *change, DiaObject *obj)
 {
   change->applied = 1;
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    add_handle((PolyShape *)obj, change->pos, &change->point,
-              change->handle, change->cp1, change->cp2);
-    break;
-  case TYPE_REMOVE_POINT:
-    object_unconnect(obj, change->handle);
-    remove_handle((PolyShape *)obj, change->pos);
-    break;
+    case TYPE_ADD_POINT:
+      add_handle ((PolyShape *) obj, change->pos, &change->point,
+                  change->handle, change->cp1, change->cp2);
+      break;
+    case TYPE_REMOVE_POINT:
+      object_unconnect (obj, change->handle);
+      remove_handle ((PolyShape *) obj, change->pos);
+      break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 static void
-polyshape_change_revert(struct PointChange *change, DiaObject *obj)
+polyshape_change_revert (struct PointChange *change, DiaObject *obj)
 {
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    remove_handle((PolyShape *)obj, change->pos);
-    break;
-  case TYPE_REMOVE_POINT:
-    add_handle((PolyShape *)obj, change->pos, &change->point,
-              change->handle, change->cp1, change->cp2);
-
-    break;
+    case TYPE_ADD_POINT:
+      remove_handle ((PolyShape *)obj, change->pos);
+      break;
+    case TYPE_REMOVE_POINT:
+      add_handle ((PolyShape *) obj, change->pos, &change->point,
+                  change->handle, change->cp1, change->cp2);
+      break;
+    default:
+      g_return_if_reached ();
   }
   change->applied = 0;
 }
 
+
 static ObjectChange *
-polyshape_create_change(PolyShape *poly, enum change_type type,
-                      Point *point, int pos, Handle *handle,
-                      ConnectionPoint *cp1, ConnectionPoint *cp2)
+polyshape_create_change (PolyShape        *poly,
+                         enum change_type  type,
+                         Point            *point,
+                         int               pos,
+                         Handle           *handle,
+                         ConnectionPoint  *cp1,
+                         ConnectionPoint  *cp2)
 {
   struct PointChange *change;
 
-  change = g_new(struct PointChange, 1);
+  change = g_new0 (struct PointChange, 1);
 
   change->obj_change.apply = (ObjectChangeApplyFunc) polyshape_change_apply;
   change->obj_change.revert = (ObjectChangeRevertFunc) polyshape_change_revert;
@@ -617,5 +627,5 @@ polyshape_create_change(PolyShape *poly, enum change_type type,
   change->cp1 = cp1;
   change->cp2 = cp2;
 
-  return (ObjectChange *)change;
+  return (ObjectChange *) change;
 }
diff --git a/lib/prop_sdarray_widget.c b/lib/prop_sdarray_widget.c
index b6d34240..d66532da 100644
--- a/lib/prop_sdarray_widget.c
+++ b/lib/prop_sdarray_widget.c
@@ -645,38 +645,46 @@ _arrayprop_reset_widget(ArrayProperty *prop, WIDGET *widget)
   }
 }
 
+
 static gboolean
 _array_prop_adjust_len (ArrayProperty *prop, guint len)
 {
-  guint i, j;
+  guint i;
   guint num_props = prop->ex_props->len;
 
-  if (prop->records->len == len)
+  if (prop->records->len == len) {
     return FALSE;
+  }
+
   /* see also: pydia-property.c */
   for (i = len; i < prop->records->len; ++i) {
-    GPtrArray *record = g_ptr_array_index(prop->records, i);
-    guint j;
-    for (j = 0; j < num_props; j++) {
-      Property *inner =g_ptr_array_index(record, j);
-      inner->ops->free(inner);
+    GPtrArray *record = g_ptr_array_index (prop->records, i);
+
+    for (guint j = 0; j < num_props; j++) {
+      Property *inner = g_ptr_array_index (record, j);
+
+      inner->ops->free (inner);
     }
-    g_ptr_array_free(record, TRUE);
+    g_ptr_array_free (record, TRUE);
   }
   for (i = prop->records->len; i < len; ++i) {
-    GPtrArray *record = g_ptr_array_new();
+    GPtrArray *record = g_ptr_array_new ();
 
-    for (j = 0; j < num_props; j++) {
-      Property *ex = g_ptr_array_index(prop->ex_props, j);
-      Property *inner = ex->ops->copy(ex);
+    for (guint j = 0; j < num_props; j++) {
+      Property *ex = g_ptr_array_index (prop->ex_props, j);
+      Property *inner = ex->ops->copy (ex);
 
-      g_ptr_array_add(record, inner);
+      g_ptr_array_add (record, inner);
     }
-    g_ptr_array_add(prop->records, record);
+
+    g_ptr_array_add (prop->records, record);
   }
-  g_ptr_array_set_size(prop->records, len);
+  g_ptr_array_set_size (prop->records, len);
+
   return TRUE;
 }
+
+
 /*!
  * \brief Transfer from the view model to the property
  */
diff --git a/lib/propdialogs.c b/lib/propdialogs.c
index bcc3f528..566b7dc2 100644
--- a/lib/propdialogs.c
+++ b/lib/propdialogs.c
@@ -189,10 +189,10 @@ property_signal_handler(GObject *obj,
     prop_get_data_from_widgets(dialog);
 
     for (tmp = list; tmp != NULL; tmp = tmp->next) {
-      DiaObject *obj = (DiaObject*) tmp->data;
-      dia_object_set_properties (obj, dialog->props);
-      prop->event_handler (obj, prop);
-      dia_object_get_properties (obj, dialog->props);
+      DiaObject *item = (DiaObject*) tmp->data;
+      dia_object_set_properties (item, dialog->props);
+      prop->event_handler (item, prop);
+      dia_object_get_properties (item, dialog->props);
     }
 
     for (j = 0; j < dialog->prop_widgets->len; j++) {
diff --git a/lib/renderer/diacairo-interactive.c b/lib/renderer/diacairo-interactive.c
index 0efd294f..22726432 100644
--- a/lib/renderer/diacairo-interactive.c
+++ b/lib/renderer/diacairo-interactive.c
@@ -550,6 +550,8 @@ dia_cairo_interactive_renderer_draw_object_highlighted (DiaInteractiveRenderer *
     case DIA_HIGHLIGHT_NONE:
       interactive->highlight_color = NULL;
       break;
+    default:
+      g_return_if_reached ();
   }
 
   /* usually this method would need to draw the object twice,
@@ -593,8 +595,9 @@ dia_cairo_interactive_renderer_iface_init (DiaInteractiveRendererInterface* ifac
   iface->set_selection           = dia_cairo_interactive_renderer_set_selection;
 }
 
+
 DiaRenderer *
-dia_cairo_interactive_renderer_new ()
+dia_cairo_interactive_renderer_new (void)
 {
   return g_object_new (DIA_CAIRO_TYPE_INTERACTIVE_RENDERER, NULL);
 }
diff --git a/lib/renderer/diacairo.c b/lib/renderer/diacairo.c
index c3093c83..25a4c531 100644
--- a/lib/renderer/diacairo.c
+++ b/lib/renderer/diacairo.c
@@ -64,21 +64,24 @@
 #pragma message ("DiaCairo can EMF;)")
 #endif
 
+
 /* dia export funtion */
 gboolean
-cairo_export_data(DiagramData *data, DiaContext *ctx,
-           const gchar *filename, const gchar *diafilename,
-            void* user_data)
+cairo_export_data (DiagramData *data,
+                   DiaContext  *ctx,
+                   const gchar *filename,
+                   const gchar *diafilename,
+                   void        *user_data)
 {
   DiaCairoRenderer *renderer;
   FILE *file;
   real width, height;
-  OutputKind kind = (OutputKind)user_data;
+  OutputKind kind = (OutputKind) user_data;
   /* the passed in filename is in GLib's filename encoding. On Linux everything
    * should be fine in passing it to the C-runtime (or cairo). On win32 GLib's
    * filename encdong is always utf-8, so another conversion is needed.
    */
-  gchar *filename_crt = (gchar *)filename;
+  gchar *filename_crt = (gchar *) filename;
 #if DIA_CAIRO_CAN_EMF
   HDC hFileDC = NULL;
 #endif
@@ -228,6 +231,11 @@ cairo_export_data(DiagramData *data, DiaContext *ctx,
        renderer->scale *= 0.72; /* Works w/o for XP, but not on Vista/Win7 */
     }
     break;
+#else
+  case OUTPUT_EMF:
+  case OUTPUT_WMF:
+  case OUTPUT_CLIPBOARD:
+    g_return_val_if_reached (FALSE);
 #endif
   default :
     /* quite arbitrary, but consistent with ../pixbuf ;-) */
diff --git a/lib/sheet.c b/lib/sheet.c
index 8859033d..494a91b4 100644
--- a/lib/sheet.c
+++ b/lib/sheet.c
@@ -350,7 +350,7 @@ load_register_sheet (const gchar *dirname,
       g_assert (!stat_ret);
 
       if (this_file.st_mtime > first_file.st_mtime) {
-        gchar *tmp = g_strdup_printf ("%s [Copy of system]", name);
+        gchar *tmp2 = g_strdup_printf ("%s [Copy of system]", name);
         message_notice (_("The system sheet '%s' appears to be more recent"
                           " than your custom\n"
                           "version and has been loaded as '%s' for this session."
@@ -358,9 +358,9 @@ load_register_sheet (const gchar *dirname,
                           "Move new objects (if any) from '%s' into your custom"
                           " sheet\n"
                           "or remove '%s', using the 'Sheets and Objects' dialog."),
-                          name, tmp, tmp, tmp);
+                          name, tmp2, tmp2, tmp2);
         xmlFree (name);
-        name = tmp;
+        name = tmp2;
         name_is_gmalloced = TRUE;
         shadowing = sheetp->data;  /* This copy-of-system sheet shadows
                                       a user sheet */
diff --git a/lib/text.c b/lib/text.c
index fd2f493f..a60f74c7 100644
--- a/lib/text.c
+++ b/lib/text.c
@@ -433,30 +433,38 @@ text_set_color(Text *text, Color *col)
   text->color = *col;
 }
 
+
 void
-text_set_alignment(Text *text, Alignment align)
+text_set_alignment (Text *text, Alignment align)
 {
   text->alignment = align;
 }
 
+
 void
-text_calc_boundingbox(Text *text, DiaRectangle *box)
+text_calc_boundingbox (Text *text, DiaRectangle *box)
 {
-  calc_width(text);
-  calc_ascent_descent(text);
+  calc_width (text);
+  calc_ascent_descent (text);
+
+  if (box == NULL) {
+    return; /* For those who just want the text info
+               updated */
+  }
 
-  if (box == NULL) return; /* For those who just want the text info
-                             updated */
   box->left = text->position.x;
+
   switch (text->alignment) {
-  case ALIGN_LEFT:
-    break;
-  case ALIGN_CENTER:
-    box->left -= text->max_width / 2.0;
-    break;
-  case ALIGN_RIGHT:
-    box->left -= text->max_width;
-    break;
+    case ALIGN_LEFT:
+      break;
+    case ALIGN_CENTER:
+      box->left -= text->max_width / 2.0;
+      break;
+    case ALIGN_RIGHT:
+      box->left -= text->max_width;
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   box->right = box->left + text->max_width;
@@ -469,7 +477,7 @@ text_calc_boundingbox(Text *text, DiaRectangle *box)
   box->bottom = box->top + (text->ascent+text->descent+text->height*(text->numlines-1));
 #endif
   if (text->focus.has_focus) {
-    real height = text->ascent + text->descent;
+    double height = text->ascent + text->descent;
     if (text->cursor_pos == 0) {
       /* Half the cursor width */
       box->left -= height/(CURSOR_HEIGHT_RATIO*2);
@@ -486,6 +494,7 @@ text_calc_boundingbox(Text *text, DiaRectangle *box)
   }
 }
 
+
 char *
 text_get_string_copy(const Text *text)
 {
@@ -535,16 +544,18 @@ text_distance_from(Text *text, Point *point)
 
   left = text->position.x;
   switch (text->alignment) {
-  case ALIGN_LEFT:
-    break;
-  case ALIGN_CENTER:
-    left -= text_get_line_width(text, line) / 2.0;
-    break;
-  case ALIGN_RIGHT:
-    left -= text_get_line_width(text, line);
-    break;
+    case ALIGN_LEFT:
+      break;
+    case ALIGN_CENTER:
+      left -= text_get_line_width (text, line) / 2.0;
+      break;
+    case ALIGN_RIGHT:
+      left -= text_get_line_width (text, line);
+      break;
+    default:
+      g_return_val_if_reached (0.0);
   }
-  right = left + text_get_line_width(text, line);
+  right = left + text_get_line_width (text, line);
 
   if (point->x <= left) {
     dx = left - point->x;
@@ -589,6 +600,8 @@ text_draw (Text *text, DiaRenderer *renderer)
       case ALIGN_RIGHT:
         curs_x -= str_width_whole;
         break;
+      default:
+        g_return_if_reached ();
     }
 
     p1.x = curs_x;
@@ -712,6 +725,8 @@ text_set_cursor (Text        *text,
       case ALIGN_RIGHT:
         start_x -= str_width_whole;
         break;
+      default:
+        g_return_if_reached ();
     }
 
     /* Do an ugly linear search for the cursor index:
@@ -1176,6 +1191,7 @@ text_set_attributes(Text *text, TextAttributes *attr)
   text->alignment = attr->alignment;
 }
 
+
 static void
 text_change_apply (struct TextObjectChange *change, DiaObject *obj)
 {
@@ -1212,56 +1228,63 @@ text_change_apply (struct TextObjectChange *change, DiaObject *obj)
       text->cursor_pos = 0;
       text->cursor_row = 0;
       break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 static void
 text_change_revert(struct TextObjectChange *change, DiaObject *obj)
 {
   Text *text = change->text;
   switch (change->type) {
-  case TYPE_INSERT_CHAR:
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    text_delete_forward(text);
-    break;
-  case TYPE_DELETE_BACKWARD:
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    text_insert_char(text, change->ch);
-    break;
-  case TYPE_DELETE_FORWARD:
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    text_insert_char(text, change->ch);
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    break;
-  case TYPE_SPLIT_ROW:
-    text_join_lines(text, change->row);
-    break;
-  case TYPE_JOIN_ROW:
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    text_split_line(text);
-    break;
-  case TYPE_DELETE_ALL:
-    set_string(text, change->str);
-    text->cursor_pos = change->pos;
-    text->cursor_row = change->row;
-    break;
+    case TYPE_INSERT_CHAR:
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      text_delete_forward(text);
+      break;
+    case TYPE_DELETE_BACKWARD:
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      text_insert_char(text, change->ch);
+      break;
+    case TYPE_DELETE_FORWARD:
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      text_insert_char(text, change->ch);
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      break;
+    case TYPE_SPLIT_ROW:
+      text_join_lines(text, change->row);
+      break;
+    case TYPE_JOIN_ROW:
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      text_split_line(text);
+      break;
+    case TYPE_DELETE_ALL:
+      set_string(text, change->str);
+      text->cursor_pos = change->pos;
+      text->cursor_row = change->row;
+      break;
+    default:
+      g_return_if_reached ();
   }
   /* restore previous position/size */
   dia_object_set_properties (change->obj, change->props);
 }
 
+
 static void
-text_change_free(struct TextObjectChange *change)
+text_change_free (struct TextObjectChange *change)
 {
-  g_free(change->str);
-  prop_list_free(change->props);
+  g_free (change->str);
+  prop_list_free (change->props);
 }
 
+
 /* If some object does not properly resize when undoing
  * text changes consider adding some additional properties.
  *
diff --git a/lib/textline.c b/lib/textline.c
index 5273daea..f94febdd 100644
--- a/lib/textline.c
+++ b/lib/textline.c
@@ -191,28 +191,33 @@ text_line_get_descent(const TextLine *text_line)
   return text_line->descent;
 }
 
-/*!
- * \brief Calculate TextLine adjustment for Alignment
+
+/**
+ * text_line_get_alignment_adjustment:
+ * @text_line: a line of text
+ * @alignment: how to align it.
+ *
+ * Calculate #TextLine adjustment for #Alignment
  *
  * Return the amount this text line would need to be shifted in order to
  * implement the given alignment.
- * @param text_line a line of text
- * @param alignment how to align it.
- * @return The amount (in diagram lengths) to shift the x positiion of
+ *
+ * Returns: The amount (in diagram lengths) to shift the x positiion of
  * rendering this such that it looks aligned when printed with x at the left.
  * Always a positive number.
  */
 real
-text_line_get_alignment_adjustment(TextLine *text_line, Alignment alignment)
+text_line_get_alignment_adjustment (TextLine *text_line, Alignment alignment)
 {
   text_line_cache_values(text_line);
   switch (alignment) {
-      case ALIGN_CENTER:
-       return text_line->width / 2;
-      case ALIGN_RIGHT:
-       return text_line->width;
-      default:
-       return 0.0;
+    case ALIGN_CENTER:
+     return text_line->width / 2;
+    case ALIGN_RIGHT:
+       return text_line->width;
+    case ALIGN_LEFT:
+    default:
+     return 0.0;
    }
 }
 
diff --git a/objects/AADL/aadlbox.c b/objects/AADL/aadlbox.c
index d6492e68..c507a230 100644
--- a/objects/AADL/aadlbox.c
+++ b/objects/AADL/aadlbox.c
@@ -254,60 +254,68 @@ aadlbox_change_free(struct PointChange *change)
 
 
 static void
-aadlbox_change_apply(struct PointChange *change, DiaObject *obj)
+aadlbox_change_apply (struct PointChange *change, DiaObject *obj)
 {
   change->applied = 1;
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    aadlbox_add_port((Aadlbox *)obj, &change->point, change->port);
-    break;
-  case TYPE_REMOVE_POINT:
-    aadlbox_remove_port((Aadlbox *)obj, change->port);
-    break;
-  case TYPE_ADD_CONNECTION:
-    aadlbox_add_connection((Aadlbox *)obj, &change->point, change->connection);
-    break;
-  case TYPE_REMOVE_CONNECTION:
-    aadlbox_remove_connection((Aadlbox *)obj, change->connection);
-    break;
+    case TYPE_ADD_POINT:
+      aadlbox_add_port ((Aadlbox *) obj, &change->point, change->port);
+      break;
+    case TYPE_REMOVE_POINT:
+      aadlbox_remove_port ((Aadlbox *) obj, change->port);
+      break;
+    case TYPE_ADD_CONNECTION:
+      aadlbox_add_connection ((Aadlbox *) obj,
+                              &change->point, change->connection);
+      break;
+    case TYPE_REMOVE_CONNECTION:
+      aadlbox_remove_connection ((Aadlbox *) obj, change->connection);
+      break;
+    default:
+      g_return_if_reached ();
   }
-  aadlbox_update_data((Aadlbox *)obj);
+  aadlbox_update_data ((Aadlbox *) obj);
 }
 
+
 static void
-aadlbox_change_revert(struct PointChange *change, DiaObject *obj)
+aadlbox_change_revert (struct PointChange *change, DiaObject *obj)
 {
-
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    aadlbox_remove_port((Aadlbox *)obj, change->port);
-    break;
+    case TYPE_ADD_POINT:
+      aadlbox_remove_port((Aadlbox *)obj, change->port);
+      break;
 
-  case TYPE_REMOVE_POINT:
-    aadlbox_add_port((Aadlbox *)obj, &change->point, change->port);
-    break;
+    case TYPE_REMOVE_POINT:
+      aadlbox_add_port((Aadlbox *)obj, &change->point, change->port);
+      break;
+
+    case TYPE_ADD_CONNECTION:
+      aadlbox_remove_connection((Aadlbox *)obj, change->connection);
+      break;
 
-  case TYPE_ADD_CONNECTION:
-    aadlbox_remove_connection((Aadlbox *)obj, change->connection);
-    break;
+    case TYPE_REMOVE_CONNECTION: ;
+      aadlbox_add_connection((Aadlbox *)obj, &change->point, change->connection);
+      break;
 
-  case TYPE_REMOVE_CONNECTION: ;
-    aadlbox_add_connection((Aadlbox *)obj, &change->point, change->connection);
-    break;
+    default:
+      g_return_if_reached ();
   }
 
-  aadlbox_update_data((Aadlbox *)obj);
+  aadlbox_update_data ((Aadlbox *) obj);
   change->applied = 0;
 }
 
 
 static ObjectChange *
-aadlbox_create_change(Aadlbox *aadlbox, enum change_type type,
-                 Point *point, void *data)
+aadlbox_create_change (Aadlbox          *aadlbox,
+                       enum change_type  type,
+                       Point            *point,
+                       void             *data)
 {
   struct PointChange *change;
 
-  change = g_new0(struct PointChange, 1);
+  change = g_new0 (struct PointChange, 1);
 
   change->obj_change.apply = (ObjectChangeApplyFunc) aadlbox_change_apply;
   change->obj_change.revert = (ObjectChangeRevertFunc) aadlbox_change_revert;
@@ -318,17 +326,21 @@ aadlbox_create_change(Aadlbox *aadlbox, enum change_type type,
   change->point = *point;
 
   switch (type) {
+    case TYPE_ADD_POINT:
+    case TYPE_REMOVE_POINT:
+      change->port = (Aadlport *) data;
+      break;
 
-  case TYPE_ADD_POINT:  case TYPE_REMOVE_POINT:
-    change->port = (Aadlport *) data;
-    break;
+    case TYPE_ADD_CONNECTION:
+    case TYPE_REMOVE_CONNECTION:
+      change->connection = (ConnectionPoint *) data;
+      break;
 
-  case TYPE_ADD_CONNECTION:  case TYPE_REMOVE_CONNECTION:
-    change->connection = (ConnectionPoint *) data;
-    break;
+    default:
+      g_return_val_if_reached (NULL);
   }
 
-  return (ObjectChange *)change;
+  return (ObjectChange *) change;
 }
 
 
diff --git a/objects/Database/reference.c b/objects/Database/reference.c
index 5ba1b926..7fc02966 100644
--- a/objects/Database/reference.c
+++ b/objects/Database/reference.c
@@ -437,21 +437,18 @@ update_desc_data (Point * desc_pos, Alignment * desc_align,
   real dist = font_height/4.0 + line_width/2.0;
 
   *desc_pos = *end_point;
-  switch (orientation)
-    {
+
+  switch (orientation) {
     case HORIZONTAL:
       /* for horizontal lines the label is above the line */
       desc_pos->y -= dist;
-      if (end_point->x <= nearest_point->x)
-        {
-          desc_pos->x += dist;
-          *desc_align = ALIGN_LEFT;
-        }
-      else
-        {
-          desc_pos->x -= dist;
-          *desc_align = ALIGN_RIGHT;
-        }
+      if (end_point->x <= nearest_point->x) {
+        desc_pos->x += dist;
+        *desc_align = ALIGN_LEFT;
+      } else {
+        desc_pos->x -= dist;
+        *desc_align = ALIGN_RIGHT;
+      }
       break;
 
     case VERTICAL:
@@ -463,7 +460,10 @@ update_desc_data (Point * desc_pos, Alignment * desc_align,
       else
         desc_pos->y -= dist;
       break;
-    }
+
+    default:
+      g_return_if_reached ();
+  }
 }
 
 static void
diff --git a/objects/FS/flow-ortho.c b/objects/FS/flow-ortho.c
index 1dad63b3..d9fc7a8b 100644
--- a/objects/FS/flow-ortho.c
+++ b/objects/FS/flow-ortho.c
@@ -497,7 +497,7 @@ orthflow_copy(Orthflow *orthflow)
 
 
 static void
-orthflow_update_data(Orthflow *orthflow)
+orthflow_update_data (Orthflow *orthflow)
 {
   OrthConn *orth = &orthflow->orth ;
   DiaObject *obj = &orth->object;
@@ -505,30 +505,32 @@ orthflow_update_data(Orthflow *orthflow)
   Color* color = &orthflow_color_signal;
 
   switch (orthflow->type) {
-  case ORTHFLOW_ENERGY:
-    color = &orthflow_color_energy ;
-    break ;
-  case ORTHFLOW_MATERIAL:
-    color = &orthflow_color_material ;
-    break ;
-  case ORTHFLOW_SIGNAL:
-    color = &orthflow_color_signal ;
-    break ;
+    case ORTHFLOW_ENERGY:
+      color = &orthflow_color_energy ;
+      break;
+    case ORTHFLOW_MATERIAL:
+      color = &orthflow_color_material ;
+      break;
+    case ORTHFLOW_SIGNAL:
+      color = &orthflow_color_signal ;
+      break;
+    default:
+      g_return_if_reached ();
   }
-  text_set_color( orthflow->text, color ) ;
+  text_set_color (orthflow->text, color) ;
 
-  text_set_position( orthflow->text, &orthflow->textpos ) ;
+  text_set_position (orthflow->text, &orthflow->textpos) ;
   orthflow->text_handle.pos = orthflow->textpos;
 
-  orthconn_update_data(orth);
+  orthconn_update_data (orth);
   obj->position = orth->points[0];
 
   /* Boundingbox: */
-  orthconn_update_boundingbox(orth);
+  orthconn_update_boundingbox (orth);
 
   /* Add boundingbox for text: */
-  text_calc_boundingbox(orthflow->text, &rect) ;
-  rectangle_union(&obj->bounding_box, &rect);
+  text_calc_boundingbox (orthflow->text, &rect) ;
+  rectangle_union (&obj->bounding_box, &rect);
 }
 
 
diff --git a/objects/FS/flow.c b/objects/FS/flow.c
index dae6c3fe..8deefbc2 100644
--- a/objects/FS/flow.c
+++ b/objects/FS/flow.c
@@ -337,6 +337,8 @@ flow_draw (Flow *flow, DiaRenderer *renderer)
     case FLOW_ENERGY:
       render_color = &flow_color_energy;
       dia_renderer_set_linestyle (renderer, LINESTYLE_SOLID, 0.0);
+    default:
+      g_return_if_reached ();
   }
 
   p1 = endpoints[n1];
@@ -472,17 +474,19 @@ flow_update_data(Flow *flow)
   obj->position = conn->endpoints[0];
 
   switch (flow->type) {
-  case FLOW_ENERGY:
-    color = &flow_color_energy ;
-    break ;
-  case FLOW_MATERIAL:
-    color = &flow_color_material ;
-    break ;
-  case FLOW_SIGNAL:
-    color = &flow_color_signal ;
-    break ;
+    case FLOW_ENERGY:
+      color = &flow_color_energy ;
+      break;
+    case FLOW_MATERIAL:
+      color = &flow_color_material ;
+      break;
+    case FLOW_SIGNAL:
+      color = &flow_color_signal ;
+      break;
+    default:
+      g_return_if_reached ();
   }
-  text_set_color( flow->text, color ) ;
+  text_set_color (flow->text, color);
 
   flow->text->position = flow->textpos;
   flow->text_handle.pos = flow->textpos;
diff --git a/objects/GRAFCET/action_text_draw.c b/objects/GRAFCET/action_text_draw.c
index a295f5cd..71e4afb4 100644
--- a/objects/GRAFCET/action_text_draw.c
+++ b/objects/GRAFCET/action_text_draw.c
@@ -89,6 +89,8 @@ action_text_draw (Text *text, DiaRenderer *renderer)
       case ALIGN_RIGHT:
         curs_x -= str_width_whole; /* undefined behaviour ! */
         break;
+      default:
+        g_return_if_reached ();
     }
 
     p1.x = curs_x;
@@ -102,29 +104,33 @@ action_text_draw (Text *text, DiaRenderer *renderer)
   }
 }
 
+
 void
-action_text_calc_boundingbox(Text *text, DiaRectangle *box)
+action_text_calc_boundingbox (Text *text, DiaRectangle *box)
 {
   real width;
   int i;
 
   box->left = text->position.x;
   switch (text->alignment) {
-  case ALIGN_LEFT:
-    break;
-  case ALIGN_CENTER:
-    box->left -= text->max_width / 2.0;
-    break;
-  case ALIGN_RIGHT:
-    box->left -= text->max_width;
-    break;
+    case ALIGN_LEFT:
+      break;
+    case ALIGN_CENTER:
+      box->left -= text->max_width / 2.0;
+      break;
+    case ALIGN_RIGHT:
+      box->left -= text->max_width;
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   width = 0;
-  for (i=0; i<text->numlines; i++)
-    width += text_get_line_width(text, i);
+  for (i = 0; i < text->numlines; i++) {
+    width += text_get_line_width (text, i);
+  }
 
-  width += text->numlines * 2.0 * action_text_spacewidth(text);
+  width += text->numlines * 2.0 * action_text_spacewidth (text);
 
   box->right = box->left + width;
 
@@ -133,10 +139,9 @@ action_text_calc_boundingbox(Text *text, DiaRectangle *box)
   box->bottom = box->top + text->height;
 }
 
+
 real
-action_text_spacewidth(Text *text)
+action_text_spacewidth (Text *text)
 {
   return .2 * text->height;
 }
-
-
diff --git a/objects/Istar/link.c b/objects/Istar/link.c
index edffbaef..4f1b5936 100644
--- a/objects/Istar/link.c
+++ b/objects/Istar/link.c
@@ -499,6 +499,8 @@ link_draw (Link *link, DiaRenderer *renderer)
     case UNSPECIFIED: /* use above defaults */
       annot = g_strdup("");
       break;
+    default:
+      g_return_if_reached ();
   }
 
   /** drawing line **/
diff --git a/objects/KAOS/metaandorrel.c b/objects/KAOS/metaandorrel.c
index 113ba6a8..905fc6ad 100644
--- a/objects/KAOS/metaandorrel.c
+++ b/objects/KAOS/metaandorrel.c
@@ -417,6 +417,7 @@ draw_agent_icon (Maor        *maor,
   dia_renderer_draw_line (renderer,&p1,&p2,&MAOR_FG_COLOR);
 }
 
+
 /* drawing here -- TBD inverse flow ??  */
 static void
 maor_draw (Maor *maor, DiaRenderer *renderer)
@@ -476,23 +477,34 @@ maor_draw (Maor *maor, DiaRenderer *renderer)
       dia_renderer_draw_polygon (renderer,pl,7,&MAOR_BG_COLOR,&MAOR_FG_COLOR);
       draw_agent_icon (maor,MAOR_REF_WIDTH,MAOR_REF_HEIGHT,renderer);
       break;
+
+    default:
+      g_return_if_reached ();
   }
 
   /** writing text on arrow (maybe not a good idea) **/
-  dia_renderer_set_font (renderer,maor_font,MAOR_FONTHEIGHT);
-
-  if (mname && strlen (mname) != 0)
-    dia_renderer_draw_string (renderer,mname,&maor->text_pos, ALIGN_CENTER,&color_black);
+  dia_renderer_set_font (renderer, maor_font, MAOR_FONTHEIGHT);
+
+  if (mname && strlen (mname) != 0) {
+    dia_renderer_draw_string (renderer,
+                              mname,
+                              &maor->text_pos,
+                              ALIGN_CENTER,
+                              &color_black);
+  }
 
-  if (mname) g_free(mname);
+  if (mname) {
+    g_free (mname);
+  }
 }
 
+
 /* creation here */
 static DiaObject *
-maor_create(Point *startpoint,
-                 void *user_data,
-                 Handle **handle1,
-                 Handle **handle2)
+maor_create (Point   *startpoint,
+             void    *user_data,
+             Handle **handle1,
+             Handle **handle2)
 {
   Maor *maor;
   Connection *conn;
@@ -501,10 +513,10 @@ maor_create(Point *startpoint,
 
   if (maor_font == NULL) {
     maor_font =
-      dia_font_new_from_style(DIA_FONT_SANS, MAOR_FONTHEIGHT);
+      dia_font_new_from_style (DIA_FONT_SANS, MAOR_FONTHEIGHT);
   }
 
-  maor = g_malloc0(sizeof(Maor));
+  maor = g_malloc0 (sizeof (Maor));
 
   conn = &maor->connection;
   conn->endpoints[0] = *startpoint;
diff --git a/objects/KAOS/metabinrel.c b/objects/KAOS/metabinrel.c
index 13d46d77..f396f291 100644
--- a/objects/KAOS/metabinrel.c
+++ b/objects/KAOS/metabinrel.c
@@ -331,17 +331,40 @@ compute_line(Point* p1, Point* p2, Point *pm, BezPoint* line) {
   line[2].p2.y=p2->y-dy2*OFF;
 }
 
-static gchar* compute_text(Mbr *mbr) {
+
+static gchar *
+compute_text (Mbr *mbr)
+{
   gchar* annot;
   switch (mbr->type) {
-    case MBR_RESP:      annot = g_strdup("Resp"); break;
-    case MBR_MONITORS:  annot = g_strdup("Mon"); break;
-    case MBR_CONTROLS:  annot = g_strdup("Ctrl"); break;
-    case MBR_CAPABLEOF: annot = g_strdup("CapOf"); break;
-    case MBR_PERFORMS:  annot = g_strdup("Perf"); break;
-    case MBR_INPUT:     annot = g_strdup("In"); break;
-    case MBR_OUTPUT:    annot = g_strdup("Out"); break;
-    default:            annot = g_strdup("");
+    case MBR_RESP:
+      annot = g_strdup ("Resp");
+      break;
+    case MBR_MONITORS:
+      annot = g_strdup ("Mon");
+      break;
+    case MBR_CONTROLS:
+      annot = g_strdup ("Ctrl");
+      break;
+    case MBR_CAPABLEOF:
+      annot = g_strdup ("CapOf");
+      break;
+    case MBR_PERFORMS:
+      annot = g_strdup ("Perf");
+      break;
+    case MBR_INPUT:
+      annot = g_strdup ("In");
+      break;
+    case MBR_OUTPUT:
+      annot = g_strdup ("Out");
+      break;
+    // TODO: Are we sure these are ""
+    case MBR_CONTRIBUTES:
+    case MBR_OBSTRUCTS:
+    case MBR_CONFLICTS:
+    default:
+      annot = g_strdup ("");
+      break;
   }
   return annot;
 }
diff --git a/objects/Misc/tree.c b/objects/Misc/tree.c
index bb9a91bc..1c144de3 100644
--- a/objects/Misc/tree.c
+++ b/objects/Misc/tree.c
@@ -701,40 +701,48 @@ tree_change_free(struct PointChange *change)
   }
 }
 
+
 static void
-tree_change_apply(struct PointChange *change, DiaObject *obj)
+tree_change_apply (struct PointChange *change, DiaObject *obj)
 {
   change->applied = 1;
+
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    tree_add_handle((Tree *)obj, &change->point, change->handle);
-    break;
-  case TYPE_REMOVE_POINT:
-    object_unconnect(obj, change->handle);
-    tree_remove_handle((Tree *)obj, change->handle);
-    break;
+    case TYPE_ADD_POINT:
+      tree_add_handle ((Tree *) obj, &change->point, change->handle);
+      break;
+    case TYPE_REMOVE_POINT:
+      object_unconnect (obj, change->handle);
+      tree_remove_handle ((Tree *) obj, change->handle);
+      break;
+    default:
+      g_return_if_reached ();
   }
-  tree_update_data((Tree *)obj);
+  tree_update_data ((Tree *) obj);
 }
 
+
 static void
-tree_change_revert(struct PointChange *change, DiaObject *obj)
+tree_change_revert (struct PointChange *change, DiaObject *obj)
 {
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    tree_remove_handle((Tree *)obj, change->handle);
-    break;
-  case TYPE_REMOVE_POINT:
-    tree_add_handle((Tree *)obj, &change->point, change->handle);
-    if (change->connected_to) {
-      object_connect(obj, change->handle, change->connected_to);
-    }
-    break;
+    case TYPE_ADD_POINT:
+      tree_remove_handle ((Tree *) obj, change->handle);
+      break;
+    case TYPE_REMOVE_POINT:
+      tree_add_handle ((Tree *) obj, &change->point, change->handle);
+      if (change->connected_to) {
+        object_connect (obj, change->handle, change->connected_to);
+      }
+      break;
+    default:
+      g_return_if_reached ();
   }
-  tree_update_data((Tree *)obj);
+  tree_update_data ((Tree *) obj);
   change->applied = 0;
 }
 
+
 static ObjectChange *
 tree_create_change(Tree *tree, enum change_type type,
                  Point *point, Handle *handle,
diff --git a/objects/SADT/arrow.c b/objects/SADT/arrow.c
index 30b9ed1c..57d4ccd9 100644
--- a/objects/SADT/arrow.c
+++ b/objects/SADT/arrow.c
@@ -234,6 +234,7 @@ static void draw_tunnel(DiaRenderer *renderer,
 #define GBASE .45
 #define GMULT .55
 
+
 static void
 sadtarrow_draw (Sadtarrow *sadtarrow, DiaRenderer *renderer)
 {
@@ -286,10 +287,12 @@ sadtarrow_draw (Sadtarrow *sadtarrow, DiaRenderer *renderer)
       break;
     case SADT_ARROW_NORMAL:
     case SADT_ARROW_DISABLED:
+    default:
       break;
   }
 }
 
+
 static void
 draw_dot (DiaRenderer *renderer,
           Point       *end,
@@ -425,26 +428,28 @@ sadtarrow_update_data(Sadtarrow *sadtarrow)
   extra->end_trans = MAX(ARROW_LINE_WIDTH/2.0,ARROW_HEAD_WIDTH/2.0);
 
   switch(sadtarrow->style) {
-  case SADT_ARROW_IMPORTED:
-    extra->start_trans = MAX(ARROW_LINE_WIDTH/2.0,
-                             ARROW_PARENS_WOFFSET + ARROW_PARENS_LENGTH/3);
-    break;
-  case SADT_ARROW_IMPLIED:
-    extra->end_trans = MAX(ARROW_LINE_WIDTH/2.0,
-                             MAX(ARROW_PARENS_WOFFSET + ARROW_PARENS_LENGTH/3,
-                                 ARROW_HEAD_WIDTH/2.0));
-    break;
-  case SADT_ARROW_DOTTED:
-    extra->start_long = extra->end_long;
-    extra->end_trans =
-      extra->start_trans = MAX(MAX(MAX(ARROW_HEAD_WIDTH,ARROW_HEAD_LENGTH),
-                                   ARROW_LINE_WIDTH/2.0),
-                               ARROW_DOT_WOFFSET+ARROW_DOT_RADIUS);
-    break;
-  default:
-    break;
+    case SADT_ARROW_IMPORTED:
+      extra->start_trans = MAX(ARROW_LINE_WIDTH/2.0,
+                              ARROW_PARENS_WOFFSET + ARROW_PARENS_LENGTH/3);
+      break;
+    case SADT_ARROW_IMPLIED:
+      extra->end_trans = MAX(ARROW_LINE_WIDTH/2.0,
+                              MAX(ARROW_PARENS_WOFFSET + ARROW_PARENS_LENGTH/3,
+                                  ARROW_HEAD_WIDTH/2.0));
+      break;
+    case SADT_ARROW_DOTTED:
+      extra->start_long = extra->end_long;
+      extra->end_trans =
+        extra->start_trans = MAX(MAX(MAX(ARROW_HEAD_WIDTH,ARROW_HEAD_LENGTH),
+                                    ARROW_LINE_WIDTH/2.0),
+                                ARROW_DOT_WOFFSET+ARROW_DOT_RADIUS);
+      break;
+    case SADT_ARROW_NORMAL:
+    case SADT_ARROW_DISABLED:
+    default:
+      break;
   }
-  orthconn_update_boundingbox(orth);
+  orthconn_update_boundingbox (orth);
 }
 
 static ObjectChange *
diff --git a/objects/UML/classicon.c b/objects/UML/classicon.c
index 5ae0e812..6d837598 100644
--- a/objects/UML/classicon.c
+++ b/objects/UML/classicon.c
@@ -310,6 +310,8 @@ classicon_draw (Classicon *icon, DiaRenderer *renderer)
                               &p1, &p2,
                               &icon->line_color);
       break;
+    default:
+      g_return_if_reached ();
   }
 
   text_draw (icon->text, renderer);
diff --git a/objects/UML/dependency.c b/objects/UML/dependency.c
index 0745f6f3..6534c505 100644
--- a/objects/UML/dependency.c
+++ b/objects/UML/dependency.c
@@ -318,25 +318,27 @@ dependency_update_data(Dependency *dep)
   }
 
   switch (dep->orth.orientation[i]) {
-  case HORIZONTAL:
-    dep->text_align = ALIGN_CENTER;
-    dep->text_pos.x = 0.5*(points[i].x+points[i+1].x);
-    dep->text_pos.y = points[i].y;
-    if (dep->name)
-      dep->text_pos.y -= dia_font_descent(dep->name,
-                                         dep->font,
-                                         dep->font_height);
-    break;
-  case VERTICAL:
-    dep->text_align = ALIGN_LEFT;
-    dep->text_pos.x = points[i].x + 0.1;
-    dep->text_pos.y =
-      0.5*(points[i].y+points[i+1].y);
-    if (dep->name)
-      dep->text_pos.y -= dia_font_descent(dep->name,
-                                         dep->font,
-                                         dep->font_height);
-    break;
+    case HORIZONTAL:
+      dep->text_align = ALIGN_CENTER;
+      dep->text_pos.x = 0.5*(points[i].x+points[i+1].x);
+      dep->text_pos.y = points[i].y;
+      if (dep->name)
+        dep->text_pos.y -= dia_font_descent (dep->name,
+                                             dep->font,
+                                             dep->font_height);
+      break;
+    case VERTICAL:
+      dep->text_align = ALIGN_LEFT;
+      dep->text_pos.x = points[i].x + 0.1;
+      dep->text_pos.y =
+        0.5*(points[i].y+points[i+1].y);
+      if (dep->name)
+        dep->text_pos.y -= dia_font_descent (dep->name,
+                                             dep->font,
+                                             dep->font_height);
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   /* Add the text recangle to the bounding box: */
diff --git a/objects/UML/generalization.c b/objects/UML/generalization.c
index 51f6ccec..31193ec0 100644
--- a/objects/UML/generalization.c
+++ b/objects/UML/generalization.c
@@ -330,16 +330,18 @@ generalization_update_data(Generalization *genlz)
   }
 
   switch (genlz->orth.orientation[i]) {
-  case HORIZONTAL:
-    genlz->text_align = ALIGN_CENTER;
-    genlz->text_pos.x = 0.5*(points[i].x+points[i+1].x);
-    genlz->text_pos.y = points[i].y - descent;
-    break;
-  case VERTICAL:
-    genlz->text_align = ALIGN_LEFT;
-    genlz->text_pos.x = points[i].x + 0.1;
-    genlz->text_pos.y = 0.5*(points[i].y+points[i+1].y) - descent;
-    break;
+    case HORIZONTAL:
+      genlz->text_align = ALIGN_CENTER;
+      genlz->text_pos.x = 0.5*(points[i].x+points[i+1].x);
+      genlz->text_pos.y = points[i].y - descent;
+      break;
+    case VERTICAL:
+      genlz->text_align = ALIGN_LEFT;
+      genlz->text_pos.x = points[i].x + 0.1;
+      genlz->text_pos.y = 0.5*(points[i].y+points[i+1].y) - descent;
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   /* Add the text recangle to the bounding box: */
diff --git a/objects/UML/lifeline.c b/objects/UML/lifeline.c
index be2d9078..9f73e0d6 100644
--- a/objects/UML/lifeline.c
+++ b/objects/UML/lifeline.c
@@ -470,8 +470,9 @@ lifeline_change_free(LifelineChange *change)
   }
 }
 
+
 static ObjectChange *
-lifeline_create_change(Lifeline *lifeline, LifelineChangeType changetype, Point *clicked)
+lifeline_create_change (Lifeline *lifeline, LifelineChangeType changetype, Point *clicked)
 {
   LifelineChange *vc;
 
@@ -481,8 +482,7 @@ lifeline_create_change(Lifeline *lifeline, LifelineChangeType changetype, Point
   vc->obj_change.free = (ObjectChangeFreeFunc)lifeline_change_free;
   vc->type = changetype;
 
-  switch( vc->type )
-  {
+  switch (vc->type) {
     case LIFELINE_CHANGE_ADD:
       if (lifeline_point_above_mid (lifeline, clicked)) {
         vc->east = connpointline_add_point(lifeline->northeast,clicked);
@@ -513,11 +513,14 @@ lifeline_create_change(Lifeline *lifeline, LifelineChangeType changetype, Point
       vc->cp_distance_change = LIFELINE_CP_DEFAULT_DISTANCE*2 - lifeline->cp_distance;
       lifeline->cp_distance += vc->cp_distance_change;
       break;
+    default:
+      g_return_val_if_reached (NULL);
   }
-  lifeline_update_data(lifeline);
-  return (ObjectChange *)vc;
+  lifeline_update_data (lifeline);
+  return (ObjectChange *) vc;
 }
 
+
 static ObjectChange *
 lifeline_cp_callback(DiaObject *obj, Point *clicked, gpointer data)
 {
diff --git a/objects/UML/realizes.c b/objects/UML/realizes.c
index e584ee9c..3703605e 100644
--- a/objects/UML/realizes.c
+++ b/objects/UML/realizes.c
@@ -313,22 +313,24 @@ realizes_update_data(Realizes *realize)
   }
 
   switch (realize->orth.orientation[i]) {
-  case HORIZONTAL:
-    realize->text_align = ALIGN_CENTER;
-    realize->text_pos.x = 0.5*(points[i].x+points[i+1].x);
-    realize->text_pos.y = points[i].y;
-    if (realize->name)
-      realize->text_pos.y -=
-        dia_font_descent(realize->name,realize->font, realize->font_height);
-    break;
-  case VERTICAL:
-    realize->text_align = ALIGN_LEFT;
-    realize->text_pos.x = points[i].x + 0.1;
-    realize->text_pos.y = 0.5*(points[i].y+points[i+1].y);
-    if (realize->name)
-      realize->text_pos.y -=
-        dia_font_descent(realize->name, realize->font, realize->font_height);
-    break;
+    case HORIZONTAL:
+      realize->text_align = ALIGN_CENTER;
+      realize->text_pos.x = 0.5*(points[i].x+points[i+1].x);
+      realize->text_pos.y = points[i].y;
+      if (realize->name)
+        realize->text_pos.y -=
+          dia_font_descent (realize->name,realize->font, realize->font_height);
+      break;
+    case VERTICAL:
+      realize->text_align = ALIGN_LEFT;
+      realize->text_pos.x = points[i].x + 0.1;
+      realize->text_pos.y = 0.5*(points[i].y+points[i+1].y);
+      if (realize->name)
+        realize->text_pos.y -=
+          dia_font_descent (realize->name, realize->font, realize->font_height);
+      break;
+    default:
+      g_return_if_reached ();
   }
 
   /* Add the text recangle to the bounding box: */
diff --git a/objects/UML/state.c b/objects/UML/state.c
index 7ca103fc..c886003f 100644
--- a/objects/UML/state.c
+++ b/objects/UML/state.c
@@ -464,44 +464,54 @@ state_create(Point *startpoint,
   return &state->element.object;
 }
 
+
 static void
-state_destroy(State *state)
+state_destroy (State *state)
 {
   g_free (state->entry_action);
   g_free (state->do_action);
   g_free (state->exit_action);
 
-  text_destroy(state->text);
+  text_destroy (state->text);
 
-  element_destroy(&state->element);
+  element_destroy (&state->element);
 }
 
+
 static DiaObject *
-state_load(ObjectNode obj_node, int version,DiaContext *ctx)
+state_load (ObjectNode obj_node, int version, DiaContext *ctx)
 {
-  State *obj = (State*)object_load_using_properties(&state_type,
-                                            obj_node,version,ctx);
+  State *obj = (State*) object_load_using_properties (&state_type,
+                                                      obj_node,
+                                                      version,
+                                                      ctx);
   if (obj->state_type != STATE_NORMAL) {
     /* Would like to create a state_term instead, but making the connections
      * is a pain */
-    message_warning(_("This diagram uses the State object for initial/final states.\nThis option will go 
away in future versions.\nPlease use the Initial/Final State object instead.\n"));
+    message_warning (_("This diagram uses the State object for initial/final "
+                       "states.\nThis option will go away in future versions."
+                       "\nPlease use the Initial/Final State object "
+                       "instead.\n"));
   }
-  return (DiaObject *)obj;
+
+  return (DiaObject *) obj;
 }
 
+
 static void
-state_calc_action_text_pos(State* state, StateAction action, Point* pos)
+state_calc_action_text_pos (State* state, StateAction action, Point* pos)
 {
-  int entry_action_valid = state->entry_action && strlen(state->entry_action) != 0;
-  int do_action_valid = state->do_action && strlen(state->do_action) != 0;
+  int entry_action_valid = state->entry_action &&
+                           strlen (state->entry_action) != 0;
+  int do_action_valid = state->do_action &&
+                        strlen (state->do_action) != 0;
 
   real first_action_y = state->text->numlines*state->text->height +
                         state->text->position.y;
 
   pos->x = state->element.corner.x + STATE_MARGIN_X;
 
-  switch (action)
-  {
+  switch (action) {
     case ENTRY_ACTION:
       pos->y = first_action_y;
       break;
@@ -516,28 +526,32 @@ state_calc_action_text_pos(State* state, StateAction action, Point* pos)
       if (entry_action_valid) pos->y += state->text->height;
       if (do_action_valid) pos->y += state->text->height;
       break;
+
+    default:
+      g_return_if_reached ();
   }
 }
 
 
 static gchar*
-state_get_action_text(State* state, StateAction action)
+state_get_action_text (State* state, StateAction action)
 {
-  switch (action)
-  {
+  switch (action) {
     case ENTRY_ACTION:
-      return g_strdup_printf("entry/ %s", state->entry_action);
+      return g_strdup_printf ("entry/ %s", state->entry_action);
       break;
 
     case DO_ACTION:
-      return g_strdup_printf("do/ %s", state->do_action);
+      return g_strdup_printf ("do/ %s", state->do_action);
       break;
 
     case EXIT_ACTION:
-      return g_strdup_printf("exit/ %s", state->exit_action);
+      return g_strdup_printf ("exit/ %s", state->exit_action);
       break;
+
+    default:
+      g_return_val_if_reached (NULL);
   }
+
   return NULL;
 }
-
-
diff --git a/objects/UML/umloperation.c b/objects/UML/umloperation.c
index b643199c..39782435 100644
--- a/objects/UML/umloperation.c
+++ b/objects/UML/umloperation.c
@@ -322,19 +322,19 @@ uml_get_operation_string (UMLOperation *operation)
     param = (UMLParameter  *) list->data;
     list = g_list_next (list);
 
-    switch(param->kind)
-      {
-      case UML_UNDEF_KIND:
-       break;
+    switch (param->kind) {
       case UML_IN:
-       len += 3;
-       break;
+        len += 3;
+        break;
       case UML_OUT:
-       len += 4;
-       break;
+        len += 4;
+        break;
       case UML_INOUT:
-       len += 6;
-       break;
+        len += 6;
+        break;
+      case UML_UNDEF_KIND:
+      default:
+        break;
       }
     len += (param->name ? strlen (param->name) : 0);
     if (param->type != NULL) {
@@ -381,20 +381,20 @@ uml_get_operation_string (UMLOperation *operation)
     param = (UMLParameter  *) list->data;
     list = g_list_next (list);
 
-    switch(param->kind)
-      {
-      case UML_UNDEF_KIND:
-       break;
+    switch (param->kind) {
       case UML_IN:
-       strcat (str, "in ");
-       break;
+        strcat (str, "in ");
+        break;
       case UML_OUT:
-       strcat (str, "out ");
-       break;
+        strcat (str, "out ");
+        break;
       case UML_INOUT:
-       strcat (str, "inout ");
-       break;
-      }
+        strcat (str, "inout ");
+        break;
+      case UML_UNDEF_KIND:
+      default:
+        break;
+    }
     strcat (str, param->name ? param->name : "");
 
     if (param->type != NULL) {
diff --git a/objects/UML/umlparameter.c b/objects/UML/umlparameter.c
index a65bdfa1..f9e7a2f2 100644
--- a/objects/UML/umlparameter.c
+++ b/objects/UML/umlparameter.c
@@ -165,6 +165,8 @@ uml_parameter_get_string (UMLParameter *param)
     case UML_INOUT:
       len += 6;
       break;
+    default:
+      g_return_val_if_reached (NULL);
   }
 
   /* Generate string: */
@@ -184,6 +186,8 @@ uml_parameter_get_string (UMLParameter *param)
     case UML_INOUT:
       strcat (str, "inout ");
       break;
+    default:
+      g_return_val_if_reached (NULL);
   }
 
   strcat (str, param->name);
diff --git a/objects/custom/shape_info.c b/objects/custom/shape_info.c
index ca7e3eb3..da46eca1 100644
--- a/objects/custom/shape_info.c
+++ b/objects/custom/shape_info.c
@@ -596,8 +596,9 @@ check_point(ShapeInfo *info, Point *pt)
     info->shape_bounds.bottom = pt->y;
 }
 
+
 static void
-update_bounds(ShapeInfo *info)
+update_bounds (ShapeInfo *info)
 {
   GList *tmp;
   Point pt;
@@ -606,67 +607,72 @@ update_bounds(ShapeInfo *info)
     int i;
 
     switch (el->type) {
-    case GE_SUBSHAPE:
-      /* subshapes are not supposed to have an influence on bounds */
-      break;
-    case GE_LINE:
-      check_point(info, &(el->line.p1));
-      check_point(info, &(el->line.p2));
-      break;
-    case GE_POLYLINE:
-      for (i = 0; i < el->polyline.npoints; i++)
-       check_point(info, &(el->polyline.points[i]));
-      break;
-    case GE_POLYGON:
-      for (i = 0; i < el->polygon.npoints; i++)
-       check_point(info, &(el->polygon.points[i]));
-      break;
-    case GE_RECT:
-      check_point(info, &(el->rect.corner1));
-      check_point(info, &(el->rect.corner2));
-      /* el->rect.corner_radius has no infulence on the bounding rectangle */
-      break;
-    case GE_TEXT:
-      check_point(info, &(el->text.anchor));
-      break;
-    case GE_ELLIPSE:
-      pt = el->ellipse.center;
-      pt.x -= el->ellipse.width / 2.0;
-      pt.y -= el->ellipse.height / 2.0;
-      check_point(info, &pt);
-      pt.x += el->ellipse.width;
-      pt.y += el->ellipse.height;
-      check_point(info, &pt);
-      break;
-    case GE_PATH:
-    case GE_SHAPE:
+      case GE_SUBSHAPE:
+        /* subshapes are not supposed to have an influence on bounds */
+        break;
+      case GE_LINE:
+        check_point (info, &(el->line.p1));
+        check_point (info, &(el->line.p2));
+        break;
+      case GE_POLYLINE:
+        for (i = 0; i < el->polyline.npoints; i++) {
+          check_point (info, &(el->polyline.points[i]));
+        }
+        break;
+      case GE_POLYGON:
+        for (i = 0; i < el->polygon.npoints; i++) {
+          check_point (info, &(el->polygon.points[i]));
+        }
+        break;
+      case GE_RECT:
+        check_point (info, &(el->rect.corner1));
+        check_point (info, &(el->rect.corner2));
+        /* el->rect.corner_radius has no infulence on the bounding rectangle */
+        break;
+      case GE_TEXT:
+        check_point (info, &(el->text.anchor));
+        break;
+      case GE_ELLIPSE:
+        pt = el->ellipse.center;
+        pt.x -= el->ellipse.width / 2.0;
+        pt.y -= el->ellipse.height / 2.0;
+        check_point (info, &pt);
+        pt.x += el->ellipse.width;
+        pt.y += el->ellipse.height;
+        check_point (info, &pt);
+        break;
+      case GE_PATH:
+      case GE_SHAPE:
 #if 1
-      {
-        DiaRectangle bbox;
-        PolyBBExtras extra = { 0, };
+        {
+          DiaRectangle bbox;
+          PolyBBExtras extra = { 0, };
 
-        polybezier_bbox (&el->path.points[0],el->path.npoints,
-                         &extra,el->type == GE_SHAPE,&bbox);
-        rectangle_union (&info->shape_bounds, &bbox);
-      }
+          polybezier_bbox (&el->path.points[0],el->path.npoints,
+                           &extra,el->type == GE_SHAPE,&bbox);
+          rectangle_union (&info->shape_bounds, &bbox);
+        }
 #else
-      for (i = 0; i < el->path.npoints; i++)
-       switch (el->path.points[i].type) {
-       case BEZ_CURVE_TO:
-         check_point(info, &el->path.points[i].p3);
-         check_point(info, &el->path.points[i].p2);
-       case BEZ_MOVE_TO:
-       case BEZ_LINE_TO:
-         check_point(info, &el->path.points[i].p1);
-       }
+        for (i = 0; i < el->path.npoints; i++) {
+          switch (el->path.points[i].type) {
+            case BEZ_CURVE_TO:
+              check_point(info, &el->path.points[i].p3);
+              check_point(info, &el->path.points[i].p2);
+            case BEZ_MOVE_TO:
+            case BEZ_LINE_TO:
+              check_point(info, &el->path.points[i].p1);
+          }
+        }
 #endif
-      break;
-    case GE_IMAGE:
-      check_point(info, &(el->image.topleft));
-      pt.x = el->image.topleft.x + el->image.width;
-      pt.y = el->image.topleft.y + el->image.height;
-      check_point(info, &pt);
-      break;
+        break;
+      case GE_IMAGE:
+        check_point (info, &(el->image.topleft));
+        pt.x = el->image.topleft.x + el->image.width;
+        pt.y = el->image.topleft.y + el->image.height;
+        check_point (info, &pt);
+        break;
+      default:
+        g_return_if_reached ();
     }
   }
 
@@ -682,16 +688,17 @@ update_bounds(ShapeInfo *info)
   }
 }
 
-/*!
- * \brief Contructor for ShapeInfo from file
+
+/**
+ * load_shape_info:
+ *
+ * Contructor for ShapeInfo from file
  *
  * Load the full shape info from file potentially reusing the preloaded
  * ShapeInfo loaded by shape_typeinfo_load()
- *
- * \extends _ShapeInfo
  */
 static ShapeInfo *
-load_shape_info(const gchar *filename, ShapeInfo *preload)
+load_shape_info (const gchar *filename, ShapeInfo *preload)
 {
   xmlErrorPtr error_xml = NULL;
   xmlDocPtr doc = xmlDoParseFile(filename, &error_xml);
@@ -932,117 +939,138 @@ load_shape_info(const gchar *filename, ShapeInfo *preload)
   return info;
 }
 
+
 void
-shape_info_print(ShapeInfo *info)
+shape_info_print (ShapeInfo *info)
 {
   GList *tmp;
   int i;
 
-  g_print("Name        : %s\n", info->name);
-  g_print("Connections :\n");
-  for (i = 0; i < info->nconnections; i++)
+  g_print ("Name        : %s\n", info->name);
+  g_print ("Connections :\n");
+  for (i = 0; i < info->nconnections; i++) {
     g_print("  (%g, %g)\n", info->connections[i].x, info->connections[i].y);
-  g_print("Shape bounds: (%g, %g) - (%g, %g)\n",
-         info->shape_bounds.left, info->shape_bounds.top,
-         info->shape_bounds.right, info->shape_bounds.bottom);
-  if (info->has_text)
-    g_print("Text bounds : (%g, %g) - (%g, %g)\n",
-           info->text_bounds.left, info->text_bounds.top,
-           info->text_bounds.right, info->text_bounds.bottom);
-  g_print("Aspect ratio: ");
+  }
+  g_print ("Shape bounds: (%g, %g) - (%g, %g)\n",
+           info->shape_bounds.left, info->shape_bounds.top,
+           info->shape_bounds.right, info->shape_bounds.bottom);
+  if (info->has_text) {
+    g_print ("Text bounds : (%g, %g) - (%g, %g)\n",
+             info->text_bounds.left, info->text_bounds.top,
+             info->text_bounds.right, info->text_bounds.bottom);
+  }
+  g_print ("Aspect ratio: ");
   switch (info->aspect_type) {
-  case SHAPE_ASPECT_FREE: g_print("free\n"); break;
-  case SHAPE_ASPECT_FIXED: g_print("fixed\n"); break;
-  case SHAPE_ASPECT_RANGE:
-    g_print("range %g - %g\n", info->aspect_min, info->aspect_max); break;
+    case SHAPE_ASPECT_FREE:
+      g_print ("free\n");
+      break;
+    case SHAPE_ASPECT_FIXED:
+      g_print ("fixed\n");
+      break;
+    case SHAPE_ASPECT_RANGE:
+      g_print ("range %g - %g\n", info->aspect_min, info->aspect_max);
+      break;
+    default:
+      g_return_if_reached ();
   }
-  g_print("Display list:\n");
+  g_print ("Display list:\n");
   for (tmp = info->display_list; tmp; tmp = tmp->next) {
     GraphicElement *el = tmp->data;
-    int i;
+    int j;
 
     switch (el->type) {
-    case GE_LINE:
-      g_print("  line: (%g, %g) (%g, %g)\n", el->line.p1.x, el->line.p1.y,
-             el->line.p2.x, el->line.p2.y);
-      break;
-    case GE_POLYLINE:
-      g_print("  polyline:");
-      for (i = 0; i < el->polyline.npoints; i++)
-       g_print(" (%g, %g)", el->polyline.points[i].x,
-               el->polyline.points[i].y);
-      g_print("\n");
-      break;
-    case GE_POLYGON:
-      g_print("  polygon:");
-      for (i = 0; i < el->polygon.npoints; i++)
-       g_print(" (%g, %g)", el->polygon.points[i].x,
-               el->polygon.points[i].y);
-      g_print("\n");
-      break;
-    case GE_RECT:
-      g_print("  rect: (%g, %g) (%g, %g)\n",
-             el->rect.corner1.x, el->rect.corner1.y,
-             el->rect.corner2.x, el->rect.corner2.y);
-      break;
-    case GE_TEXT:
-      g_print("  text: (%g, %g)\n",
-             el->text.anchor.x, el->text.anchor.y);
-      break;
-    case GE_ELLIPSE:
-      g_print("  ellipse: center=(%g, %g) width=%g height=%g\n",
-             el->ellipse.center.x, el->ellipse.center.y,
-             el->ellipse.width, el->ellipse.height);
-      break;
-    case GE_PATH:
-      g_print("  path:");
-      for (i = 0; i < el->path.npoints; i++)
-       switch (el->path.points[i].type) {
-       case BEZ_MOVE_TO:
-         g_print(" M (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y);
-         break;
-       case BEZ_LINE_TO:
-         g_print(" L (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y);
-         break;
-       case BEZ_CURVE_TO:
-         g_print(" C (%g, %g) (%g, %g) (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y, el->path.points[i].p2.x,
-                 el->path.points[i].p2.y, el->path.points[i].p3.x,
-                 el->path.points[i].p3.y);
-         break;
-       }
-      break;
-    case GE_SHAPE:
-      g_print("  shape:");
-      for (i = 0; i < el->path.npoints; i++)
-       switch (el->path.points[i].type) {
-       case BEZ_MOVE_TO:
-         g_print(" M (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y);
-         break;
-       case BEZ_LINE_TO:
-         g_print(" L (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y);
-         break;
-       case BEZ_CURVE_TO:
-         g_print(" C (%g, %g) (%g, %g) (%g, %g)", el->path.points[i].p1.x,
-                 el->path.points[i].p1.y, el->path.points[i].p2.x,
-                 el->path.points[i].p2.y, el->path.points[i].p3.x,
-                 el->path.points[i].p3.y);
-         break;
-       }
-      break;
-    case GE_IMAGE :
-      g_print("  image topleft=(%g, %g) width=%g height=%g file=%s\n",
-              el->image.topleft.x, el->image.topleft.y,
-              el->image.width, el->image.height,
-              el->image.image ? dia_image_filename(el->image.image) : "(nil)");
-      break;
-    default:
-      break;
+      case GE_LINE:
+        g_print ("  line: (%g, %g) (%g, %g)\n", el->line.p1.x, el->line.p1.y,
+                 el->line.p2.x, el->line.p2.y);
+        break;
+      case GE_POLYLINE:
+        g_print ("  polyline:");
+        for (j = 0; j < el->polyline.npoints; j++) {
+          g_print (" (%g, %g)", el->polyline.points[j].x,
+                   el->polyline.points[j].y);
+        }
+        g_print ("\n");
+        break;
+      case GE_POLYGON:
+        g_print ("  polygon:");
+        for (j = 0; j < el->polygon.npoints; j++) {
+          g_print (" (%g, %g)", el->polygon.points[j].x,
+                   el->polygon.points[j].y);
+        }
+        g_print ("\n");
+        break;
+      case GE_RECT:
+        g_print ("  rect: (%g, %g) (%g, %g)\n",
+                 el->rect.corner1.x, el->rect.corner1.y,
+                 el->rect.corner2.x, el->rect.corner2.y);
+        break;
+      case GE_TEXT:
+        g_print ("  text: (%g, %g)\n",
+                 el->text.anchor.x, el->text.anchor.y);
+        break;
+      case GE_ELLIPSE:
+        g_print ("  ellipse: center=(%g, %g) width=%g height=%g\n",
+                 el->ellipse.center.x, el->ellipse.center.y,
+                 el->ellipse.width, el->ellipse.height);
+        break;
+      case GE_PATH:
+        g_print ("  path:");
+        for (j = 0; j < el->path.npoints; j++) {
+          switch (el->path.points[j].type) {
+            case BEZ_MOVE_TO:
+              g_print (" M (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y);
+              break;
+            case BEZ_LINE_TO:
+              g_print (" L (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y);
+              break;
+            case BEZ_CURVE_TO:
+              g_print (" C (%g, %g) (%g, %g) (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y, el->path.points[j].p2.x,
+                       el->path.points[j].p2.y, el->path.points[j].p3.x,
+                       el->path.points[j].p3.y);
+              break;
+            default:
+              g_return_if_reached ();
+          }
+        }
+        break;
+      case GE_SHAPE:
+        g_print("  shape:");
+        for (j = 0; j < el->path.npoints; j++) {
+          switch (el->path.points[j].type) {
+            case BEZ_MOVE_TO:
+              g_print (" M (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y);
+              break;
+            case BEZ_LINE_TO:
+              g_print (" L (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y);
+              break;
+            case BEZ_CURVE_TO:
+              g_print (" C (%g, %g) (%g, %g) (%g, %g)", el->path.points[j].p1.x,
+                       el->path.points[j].p1.y, el->path.points[j].p2.x,
+                       el->path.points[j].p2.y, el->path.points[j].p3.x,
+                       el->path.points[j].p3.y);
+              break;
+            default:
+              g_return_if_reached ();
+          }
+        }
+        break;
+      case GE_IMAGE:
+        g_print ("  image topleft=(%g, %g) width=%g height=%g file=%s\n",
+                 el->image.topleft.x, el->image.topleft.y,
+                 el->image.width, el->image.height,
+                 el->image.image ? dia_image_filename(el->image.image) : "(nil)");
+        break;
+      case GE_SUBSHAPE:
+        g_print ("   subshape\n");
+        break;
+      default:
+        break;
     }
   }
-  g_print("\n");
+  g_print ("\n");
 }
diff --git a/objects/flowchart/diamond.c b/objects/flowchart/diamond.c
index 493a8858..fdc17bbf 100644
--- a/objects/flowchart/diamond.c
+++ b/objects/flowchart/diamond.c
@@ -197,8 +197,10 @@ diamond_set_props(Diamond *diamond, GPtrArray *props)
   diamond_update_data(diamond,ANCHOR_MIDDLE,ANCHOR_MIDDLE);
 }
 
+
 static void
-init_default_values() {
+init_default_values (void)
+{
   static int defaults_initialized = 0;
 
   if (!defaults_initialized) {
@@ -208,8 +210,9 @@ init_default_values() {
   }
 }
 
+
 static real
-diamond_distance_from(Diamond *diamond, Point *point)
+diamond_distance_from (Diamond *diamond, Point *point)
 {
   Element *elem = &diamond->element;
   DiaRectangle rect;
@@ -219,49 +222,56 @@ diamond_distance_from(Diamond *diamond, Point *point)
   rect.top = elem->corner.y - diamond->border_width/2;
   rect.bottom = elem->corner.y + elem->height + diamond->border_width/2;
 
-  if (rect.top > point->y)
+  if (rect.top > point->y) {
     return rect.top - point->y +
       fabs(point->x - elem->corner.x + elem->width / 2.0);
-  else if (point->y > rect.bottom)
+  } else if (point->y > rect.bottom) {
     return point->y - rect.bottom +
       fabs(point->x - elem->corner.x + elem->width / 2.0);
-  else if (rect.left > point->x)
+  } else if (rect.left > point->x) {
     return rect.left - point->x +
       fabs(point->y - elem->corner.y + elem->height / 2.0);
-  else if (point->x > rect.right)
+  } else if (point->x > rect.right) {
     return point->x - rect.right +
       fabs(point->y - elem->corner.y + elem->height / 2.0);
-  else {
+  } else {
     /* inside the bounding box of diamond ... this is where it gets harder */
     real x = point->x, y = point->y;
     real dx, dy;
 
     /* reflect point into upper left quadrant of diamond */
-    if (x > elem->corner.x + elem->width / 2.0)
+    if (x > elem->corner.x + elem->width / 2.0) {
       x = 2 * (elem->corner.x + elem->width / 2.0) - x;
-    if (y > elem->corner.y + elem->height / 2.0)
+    }
+    if (y > elem->corner.y + elem->height / 2.0) {
       y = 2 * (elem->corner.y + elem->height / 2.0) - y;
+    }
 
     dx = -x + elem->corner.x + elem->width / 2.0 -
       elem->width/elem->height * (y-elem->corner.y) - diamond->border_width/2;
     dy = -y + elem->corner.y + elem->height / 2.0 -
       elem->height/elem->width * (x-elem->corner.x) - diamond->border_width/2;
+
     if (dx <= 0 || dy <= 0)
       return 0;
-    return MIN(dx, dy);
+
+    return MIN (dx, dy);
   }
 }
 
+
 static void
-diamond_select(Diamond *diamond, Point *clicked_point,
-          DiaRenderer *interactive_renderer)
+diamond_select (Diamond     *diamond,
+                Point       *clicked_point,
+                DiaRenderer *interactive_renderer)
 {
-  text_set_cursor(diamond->text, clicked_point, interactive_renderer);
-  text_grab_focus(diamond->text, &diamond->element.object);
+  text_set_cursor (diamond->text, clicked_point, interactive_renderer);
+  text_grab_focus (diamond->text, &diamond->element.object);
 
-  element_update_handles(&diamond->element);
+  element_update_handles (&diamond->element);
 }
 
+
 static ObjectChange*
 diamond_move_handle(Diamond *diamond, Handle *handle,
                    Point *to, ConnectionPoint *cp,
@@ -271,42 +281,66 @@ diamond_move_handle(Diamond *diamond, Handle *handle,
   Point corner;
   real width, height;
 
-  assert(diamond!=NULL);
-  assert(handle!=NULL);
-  assert(to!=NULL);
+  g_return_val_if_fail (diamond != NULL, NULL);
+  g_return_val_if_fail (handle != NULL, NULL);
+  g_return_val_if_fail (to != NULL, NULL);
 
   /* remember ... */
   corner = diamond->element.corner;
   width = diamond->element.width;
   height = diamond->element.height;
 
-  element_move_handle(&diamond->element, handle->id, to, cp,
-                     reason, modifiers);
+  element_move_handle (&diamond->element, handle->id, to, cp,
+                       reason, modifiers);
 
   switch (handle->id) {
-  case HANDLE_RESIZE_NW:
-    horiz = ANCHOR_END; vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_N:
-    vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_NE:
-    horiz = ANCHOR_START; vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_E:
-    horiz = ANCHOR_START; break;
-  case HANDLE_RESIZE_SE:
-    horiz = ANCHOR_START; vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_S:
-    vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_SW:
-    horiz = ANCHOR_END; vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_W:
-    horiz = ANCHOR_END; break;
-  default:
-    break;
+    case HANDLE_RESIZE_NW:
+      horiz = ANCHOR_END;
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_N:
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_NE:
+      horiz = ANCHOR_START;
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_E:
+      horiz = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_SE:
+      horiz = ANCHOR_START;
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_S:
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_SW:
+      horiz = ANCHOR_END;
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_W:
+      horiz = ANCHOR_END;
+      break;
+    case HANDLE_MOVE_STARTPOINT:
+    case HANDLE_MOVE_ENDPOINT:
+    case HANDLE_CUSTOM1:
+    case HANDLE_CUSTOM2:
+    case HANDLE_CUSTOM3:
+    case HANDLE_CUSTOM4:
+    case HANDLE_CUSTOM5:
+    case HANDLE_CUSTOM6:
+    case HANDLE_CUSTOM7:
+    case HANDLE_CUSTOM8:
+    case HANDLE_CUSTOM9:
+    default:
+      break;
   }
-  diamond_update_data(diamond, horiz, vert);
+  diamond_update_data (diamond, horiz, vert);
 
-  if (width != diamond->element.width && height != diamond->element.height)
+  if (width != diamond->element.width && height != diamond->element.height) {
     return element_change_new (&corner, width, height, &diamond->element);
+  }
 
   return NULL;
 }
@@ -399,20 +433,27 @@ diamond_update_data(Diamond *diamond, AnchorShape horiz, AnchorShape vert)
 
   /* move shape if necessary ... */
   switch (horiz) {
-  case ANCHOR_MIDDLE:
-    elem->corner.x = center.x - elem->width/2; break;
-  case ANCHOR_END:
-    elem->corner.x = bottom_right.x - elem->width; break;
-  default:
-    break;
+    case ANCHOR_MIDDLE:
+      elem->corner.x = center.x - elem->width/2;
+      break;
+    case ANCHOR_END:
+      elem->corner.x = bottom_right.x - elem->width;
+      break;
+    case ANCHOR_START:
+    default:
+      break;
   }
+
   switch (vert) {
-  case ANCHOR_MIDDLE:
-    elem->corner.y = center.y - elem->height/2; break;
-  case ANCHOR_END:
-    elem->corner.y = bottom_right.y - elem->height; break;
-  default:
-    break;
+    case ANCHOR_MIDDLE:
+      elem->corner.y = center.y - elem->height/2;
+      break;
+    case ANCHOR_END:
+      elem->corner.y = bottom_right.y - elem->height;
+      break;
+    case ANCHOR_START:
+    default:
+      break;
   }
 
   p = elem->corner;
@@ -420,16 +461,17 @@ diamond_update_data(Diamond *diamond, AnchorShape horiz, AnchorShape vert)
   p.y += elem->height / 2.0 - diamond->text->height*diamond->text->numlines/2 +
       diamond->text->ascent;
   switch (diamond->text->alignment) {
-  case ALIGN_LEFT:
-    p.x -= width/2;
-    break;
-  case ALIGN_RIGHT:
-    p.x += width/2;
-    break;
-  case ALIGN_CENTER:
-    break;
+    case ALIGN_LEFT:
+      p.x -= width/2;
+      break;
+    case ALIGN_RIGHT:
+      p.x += width/2;
+      break;
+    case ALIGN_CENTER:
+    default:
+      break;
   }
-  text_set_position(diamond->text, &p);
+  text_set_position (diamond->text, &p);
 
   dw = elem->width / 8.0;
   dh = elem->height / 8.0;
diff --git a/objects/flowchart/parallelogram.c b/objects/flowchart/parallelogram.c
index 3fd77929..68c764d9 100644
--- a/objects/flowchart/parallelogram.c
+++ b/objects/flowchart/parallelogram.c
@@ -187,23 +187,27 @@ static PropOffset pgram_offsets[] = {
   { NULL, 0, 0 },
 };
 
+
 static void
-pgram_get_props(Pgram *pgram, GPtrArray *props)
+pgram_get_props (Pgram *pgram, GPtrArray *props)
 {
-  object_get_props_from_offsets(&pgram->element.object,
-                                pgram_offsets,props);
+  object_get_props_from_offsets (DIA_OBJECT (pgram),
+                                 pgram_offsets,props);
 }
 
+
 static void
-pgram_set_props(Pgram *pgram, GPtrArray *props)
+pgram_set_props (Pgram *pgram, GPtrArray *props)
 {
-  object_set_props_from_offsets(&pgram->element.object,
-                                pgram_offsets,props);
-  pgram_update_data(pgram, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
+  object_set_props_from_offsets (DIA_OBJECT (pgram),
+                                 pgram_offsets, props);
+  pgram_update_data (pgram, ANCHOR_MIDDLE, ANCHOR_MIDDLE);
 }
 
+
 static void
-init_default_values() {
+init_default_values (void)
+{
   static int defaults_initialized = 0;
 
   if (!defaults_initialized) {
@@ -215,7 +219,7 @@ init_default_values() {
 }
 
 static real
-pgram_distance_from(Pgram *pgram, Point *point)
+pgram_distance_from (Pgram *pgram, Point *point)
 {
   Element *elem = &pgram->element;
   DiaRectangle rect;
@@ -252,7 +256,7 @@ pgram_distance_from(Pgram *pgram, Point *point)
     }
   }
 
-  return distance_rectangle_point(&rect, point);
+  return distance_rectangle_point (&rect, point);
 }
 
 static void
@@ -265,50 +269,78 @@ pgram_select(Pgram *pgram, Point *clicked_point,
   element_update_handles(&pgram->element);
 }
 
+
 static ObjectChange*
-pgram_move_handle(Pgram *pgram, Handle *handle,
-                 Point *to, ConnectionPoint *cp,
-                 HandleMoveReason reason, ModifierKeys modifiers)
+pgram_move_handle (Pgram            *pgram,
+                   Handle           *handle,
+                   Point            *to,
+                   ConnectionPoint  *cp,
+                   HandleMoveReason  reason,
+                   ModifierKeys      modifiers)
 {
   AnchorShape horiz = ANCHOR_MIDDLE, vert = ANCHOR_MIDDLE;
   Point corner;
   real width, height;
 
-  assert(pgram!=NULL);
-  assert(handle!=NULL);
-  assert(to!=NULL);
+  g_return_val_if_fail (pgram != NULL, NULL);
+  g_return_val_if_fail (handle!=NULL, NULL);
+  g_return_val_if_fail (to!=NULL, NULL);
 
   /* remember ... */
   corner = pgram->element.corner;
   width = pgram->element.width;
   height = pgram->element.height;
 
-  element_move_handle(&pgram->element, handle->id, to, cp, reason, modifiers);
+  element_move_handle (&pgram->element, handle->id, to, cp, reason, modifiers);
 
   switch (handle->id) {
-  case HANDLE_RESIZE_NW:
-    horiz = ANCHOR_END; vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_N:
-    vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_NE:
-    horiz = ANCHOR_START; vert = ANCHOR_END; break;
-  case HANDLE_RESIZE_E:
-    horiz = ANCHOR_START; break;
-  case HANDLE_RESIZE_SE:
-    horiz = ANCHOR_START; vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_S:
-    vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_SW:
-    horiz = ANCHOR_END; vert = ANCHOR_START; break;
-  case HANDLE_RESIZE_W:
-    horiz = ANCHOR_END; break;
-  default:
-    break;
+    case HANDLE_RESIZE_NW:
+      horiz = ANCHOR_END;
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_N:
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_NE:
+      horiz = ANCHOR_START;
+      vert = ANCHOR_END;
+      break;
+    case HANDLE_RESIZE_E:
+      horiz = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_SE:
+      horiz = ANCHOR_START;
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_S:
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_SW:
+      horiz = ANCHOR_END;
+      vert = ANCHOR_START;
+      break;
+    case HANDLE_RESIZE_W:
+      horiz = ANCHOR_END;
+      break;
+    case HANDLE_MOVE_STARTPOINT:
+    case HANDLE_MOVE_ENDPOINT:
+    case HANDLE_CUSTOM1:
+    case HANDLE_CUSTOM2:
+    case HANDLE_CUSTOM3:
+    case HANDLE_CUSTOM4:
+    case HANDLE_CUSTOM5:
+    case HANDLE_CUSTOM6:
+    case HANDLE_CUSTOM7:
+    case HANDLE_CUSTOM8:
+    case HANDLE_CUSTOM9:
+    default:
+      break;
   }
-  pgram_update_data(pgram, horiz, vert);
+  pgram_update_data (pgram, horiz, vert);
 
-  if (width != pgram->element.width && height != pgram->element.height)
+  if (width != pgram->element.width && height != pgram->element.height) {
     return element_change_new (&corner, width, height, &pgram->element);
+  }
 
   return NULL;
 }
@@ -417,20 +449,27 @@ pgram_update_data(Pgram *pgram, AnchorShape horiz, AnchorShape vert)
 
   /* move shape if necessary ... */
   switch (horiz) {
-  case ANCHOR_MIDDLE:
-    elem->corner.x = center.x - elem->width/2; break;
-  case ANCHOR_END:
-    elem->corner.x = bottom_right.x - elem->width; break;
-  default:
-    break;
+    case ANCHOR_MIDDLE:
+      elem->corner.x = center.x - elem->width/2;
+      break;
+    case ANCHOR_END:
+      elem->corner.x = bottom_right.x - elem->width;
+      break;
+    case ANCHOR_START:
+    default:
+      break;
   }
+
   switch (vert) {
-  case ANCHOR_MIDDLE:
-    elem->corner.y = center.y - elem->height/2; break;
-  case ANCHOR_END:
-    elem->corner.y = bottom_right.y - elem->height; break;
-  default:
-    break;
+    case ANCHOR_MIDDLE:
+      elem->corner.y = center.y - elem->height/2;
+      break;
+    case ANCHOR_END:
+      elem->corner.y = bottom_right.y - elem->height;
+      break;
+    case ANCHOR_START:
+    default:
+      break;
   }
 
   p = elem->corner;
@@ -438,16 +477,19 @@ pgram_update_data(Pgram *pgram, AnchorShape horiz, AnchorShape vert)
   p.y += elem->height / 2.0 - pgram->text->height * pgram->text->numlines / 2 +
       pgram->text->ascent;
   switch (pgram->text->alignment) {
-  case ALIGN_LEFT:
-    p.x -= avail_width/2;
-    break;
-  case ALIGN_RIGHT:
-    p.x += avail_width/2;
-    break;
-  case ALIGN_CENTER:
-    break;
+    case ALIGN_LEFT:
+      p.x -= avail_width/2;
+      break;
+    case ALIGN_RIGHT:
+      p.x += avail_width/2;
+      break;
+    case ALIGN_CENTER:
+      break;
+    default:
+      g_return_if_reached ();
   }
-  text_set_position(pgram->text, &p);
+
+  text_set_position (pgram->text, &p);
 
   /* 1/4 of how much more to the left the bottom line is */
   offs = -(elem->height / 4.0 * pgram->shear_grad);
diff --git a/objects/network/bus.c b/objects/network/bus.c
index 19258d46..39de9a93 100644
--- a/objects/network/bus.c
+++ b/objects/network/bus.c
@@ -701,40 +701,50 @@ bus_change_free(struct PointChange *change)
   }
 }
 
+
 static void
-bus_change_apply(struct PointChange *change, DiaObject *obj)
+bus_change_apply (struct PointChange *change, DiaObject *obj)
 {
   change->applied = 1;
+
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    bus_add_handle((Bus *)obj, &change->point, change->handle);
-    break;
-  case TYPE_REMOVE_POINT:
-    object_unconnect(obj, change->handle);
-    bus_remove_handle((Bus *)obj, change->handle);
-    break;
+    case TYPE_ADD_POINT:
+      bus_add_handle ((Bus *) obj, &change->point, change->handle);
+      break;
+    case TYPE_REMOVE_POINT:
+      object_unconnect (obj, change->handle);
+      bus_remove_handle ((Bus *) obj, change->handle);
+      break;
+    default:
+      g_return_if_reached ();
   }
-  bus_update_data((Bus *)obj);
+
+  bus_update_data ((Bus *) obj);
 }
 
+
 static void
-bus_change_revert(struct PointChange *change, DiaObject *obj)
+bus_change_revert (struct PointChange *change, DiaObject *obj)
 {
   switch (change->type) {
-  case TYPE_ADD_POINT:
-    bus_remove_handle((Bus *)obj, change->handle);
-    break;
-  case TYPE_REMOVE_POINT:
-    bus_add_handle((Bus *)obj, &change->point, change->handle);
-    if (change->connected_to) {
-      object_connect(obj, change->handle, change->connected_to);
-    }
-    break;
+    case TYPE_ADD_POINT:
+      bus_remove_handle ((Bus *)obj, change->handle);
+      break;
+    case TYPE_REMOVE_POINT:
+      bus_add_handle ((Bus *)obj, &change->point, change->handle);
+      if (change->connected_to) {
+        object_connect (obj, change->handle, change->connected_to);
+      }
+      break;
+    default:
+      g_return_if_reached ();
   }
-  bus_update_data((Bus *)obj);
+
+  bus_update_data ((Bus *) obj);
   change->applied = 0;
 }
 
+
 static ObjectChange *
 bus_create_change(Bus *bus, enum change_type type,
                  Point *point, Handle *handle,
diff --git a/objects/standard/box.c b/objects/standard/box.c
index e8c043ad..abe3e57a 100644
--- a/objects/standard/box.c
+++ b/objects/standard/box.c
@@ -264,16 +264,20 @@ box_select(Box *box, Point *clicked_point,
   }
 }
 
+
 static ObjectChange*
-box_move_handle(Box *box, Handle *handle,
-               Point *to, ConnectionPoint *cp,
-               HandleMoveReason reason, ModifierKeys modifiers)
+box_move_handle (Box              *box,
+                 Handle           *handle,
+                 Point            *to,
+                 ConnectionPoint  *cp,
+                 HandleMoveReason  reason,
+                 ModifierKeys      modifiers)
 {
-  assert(box!=NULL);
-  assert(handle!=NULL);
-  assert(to!=NULL);
+  g_return_val_if_fail (box != NULL, NULL);
+  g_return_val_if_fail (handle != NULL, NULL);
+  g_return_val_if_fail (to != NULL, NULL);
 
-  if (box->aspect != FREE_ASPECT){
+  if (box->aspect != FREE_ASPECT) {
     double width, height;
     double new_width, new_height;
     double to_width, aspect_width;
@@ -283,40 +287,51 @@ box_move_handle(Box *box, Handle *handle,
     width = box->element.width;
     height = box->element.height;
     switch (handle->id) {
-    case HANDLE_RESIZE_N:
-    case HANDLE_RESIZE_S:
-      new_height = fabs(to->y - corner.y);
-      new_width = new_height / height * width;
-      break;
-    case HANDLE_RESIZE_W:
-    case HANDLE_RESIZE_E:
-      new_width = fabs(to->x - corner.x);
-      new_height = new_width / width * height;
-      break;
-    case HANDLE_RESIZE_NW:
-    case HANDLE_RESIZE_NE:
-    case HANDLE_RESIZE_SW:
-    case HANDLE_RESIZE_SE:
-      to_width = fabs(to->x - corner.x);
-      aspect_width = fabs(to->y - corner.y) / height * width;
-      new_width = to_width > aspect_width ? to_width : aspect_width;
-      new_height = new_width / width * height;
-      break;
-    default:
-      new_width = width;
-      new_height = height;
-      break;
+      case HANDLE_RESIZE_N:
+      case HANDLE_RESIZE_S:
+        new_height = fabs(to->y - corner.y);
+        new_width = new_height / height * width;
+        break;
+      case HANDLE_RESIZE_W:
+      case HANDLE_RESIZE_E:
+        new_width = fabs(to->x - corner.x);
+        new_height = new_width / width * height;
+        break;
+      case HANDLE_RESIZE_NW:
+      case HANDLE_RESIZE_NE:
+      case HANDLE_RESIZE_SW:
+      case HANDLE_RESIZE_SE:
+        to_width = fabs(to->x - corner.x);
+        aspect_width = fabs(to->y - corner.y) / height * width;
+        new_width = to_width > aspect_width ? to_width : aspect_width;
+        new_height = new_width / width * height;
+        break;
+      case HANDLE_MOVE_STARTPOINT:
+      case HANDLE_MOVE_ENDPOINT:
+      case HANDLE_CUSTOM1:
+      case HANDLE_CUSTOM2:
+      case HANDLE_CUSTOM3:
+      case HANDLE_CUSTOM4:
+      case HANDLE_CUSTOM5:
+      case HANDLE_CUSTOM6:
+      case HANDLE_CUSTOM7:
+      case HANDLE_CUSTOM8:
+      case HANDLE_CUSTOM9:
+      default:
+        new_width = width;
+        new_height = height;
+        break;
     }
 
     se_to.x = corner.x + new_width;
     se_to.y = corner.y + new_height;
 
-    element_move_handle(&box->element, HANDLE_RESIZE_SE, &se_to, cp, reason, modifiers);
+    element_move_handle (&box->element, HANDLE_RESIZE_SE, &se_to, cp, reason, modifiers);
   } else {
-    element_move_handle(&box->element, handle->id, to, cp, reason, modifiers);
+    element_move_handle (&box->element, handle->id, to, cp, reason, modifiers);
   }
 
-  box_update_data(box);
+  box_update_data (box);
 
   return NULL;
 }
diff --git a/objects/standard/ellipse.c b/objects/standard/ellipse.c
index 1b970610..a29942ca 100644
--- a/objects/standard/ellipse.c
+++ b/objects/standard/ellipse.c
@@ -223,98 +223,117 @@ ellipse_distance_from(Ellipse *ellipse, Point *point)
                                ellipse->border_width, point);
 }
 
+
 static void
-ellipse_select(Ellipse *ellipse, Point *clicked_point,
-              DiaRenderer *interactive_renderer)
+ellipse_select (Ellipse     *ellipse,
+                Point       *clicked_point,
+                DiaRenderer *interactive_renderer)
 {
-  element_update_handles(&ellipse->element);
+  element_update_handles (&ellipse->element);
 }
 
+
 static ObjectChange*
-ellipse_move_handle(Ellipse *ellipse, Handle *handle,
-                   Point *to, ConnectionPoint *cp,
-                   HandleMoveReason reason, ModifierKeys modifiers)
+ellipse_move_handle (Ellipse          *ellipse,
+                     Handle           *handle,
+                     Point            *to,
+                     ConnectionPoint  *cp,
+                     HandleMoveReason  reason,
+                     ModifierKeys      modifiers)
 {
   Element *elem = &ellipse->element;
   Point nw_to, se_to;
 
-  assert(ellipse!=NULL);
-  assert(handle!=NULL);
-  assert(to!=NULL);
+  g_return_val_if_fail (ellipse != NULL, NULL);
+  g_return_val_if_fail (handle != NULL, NULL);
+  g_return_val_if_fail (to != NULL, NULL);
+
+  g_return_val_if_fail (handle->id < 8 || handle->id == HANDLE_CUSTOM1, NULL);
 
-  assert(handle->id < 8 || handle->id == HANDLE_CUSTOM1);
   if (handle->id == HANDLE_CUSTOM1) {
     Point delta, corner_to;
     delta.x = to->x - (elem->corner.x + elem->width/2);
     delta.y = to->y - (elem->corner.y + elem->height/2);
     corner_to.x = elem->corner.x + delta.x;
     corner_to.y = elem->corner.y + delta.y;
-    return ellipse_move(ellipse, &corner_to);
+    return ellipse_move (ellipse, &corner_to);
   } else {
     if (ellipse->aspect != FREE_ASPECT){
-        float width, height;
-        float new_width, new_height;
-        float to_width, aspect_width;
-        Point center;
-
-        width = ellipse->element.width;
-        height = ellipse->element.height;
-        center.x = elem->corner.x + width/2;
-        center.y = elem->corner.y + height/2;
-        switch (handle->id) {
+      float width, height;
+      float new_width, new_height;
+      float to_width, aspect_width;
+      Point center;
+
+      width = ellipse->element.width;
+      height = ellipse->element.height;
+      center.x = elem->corner.x + width/2;
+      center.y = elem->corner.y + height/2;
+      switch (handle->id) {
         case HANDLE_RESIZE_E:
         case HANDLE_RESIZE_W:
-            new_width = 2 * fabs(to->x - center.x);
-            new_height = new_width / width * height;
-            break;
+          new_width = 2 * fabs(to->x - center.x);
+          new_height = new_width / width * height;
+          break;
         case HANDLE_RESIZE_N:
         case HANDLE_RESIZE_S:
-            new_height = 2 * fabs(to->y - center.y);
-            new_width = new_height / height * width;
-            break;
+          new_height = 2 * fabs(to->y - center.y);
+          new_width = new_height / height * width;
+          break;
         case HANDLE_RESIZE_NW:
         case HANDLE_RESIZE_NE:
         case HANDLE_RESIZE_SW:
         case HANDLE_RESIZE_SE:
-            to_width = 2 * fabs(to->x - center.x);
-            aspect_width = 2 * fabs(to->y - center.y) / height * width;
-            new_width = to_width < aspect_width ? to_width : aspect_width;
-            new_height = new_width / width * height;
-            break;
-       default:
-           new_width = width;
-           new_height = height;
-           break;
-        }
-
-        nw_to.x = center.x - new_width/2;
-        nw_to.y = center.y - new_height/2;
-        se_to.x = center.x + new_width/2;
-        se_to.y = center.y + new_height/2;
-
-        element_move_handle(&ellipse->element, HANDLE_RESIZE_NW, &nw_to, cp, reason, modifiers);
-        element_move_handle(&ellipse->element, HANDLE_RESIZE_SE, &se_to, cp, reason, modifiers);
+          to_width = 2 * fabs(to->x - center.x);
+          aspect_width = 2 * fabs(to->y - center.y) / height * width;
+          new_width = to_width < aspect_width ? to_width : aspect_width;
+          new_height = new_width / width * height;
+          break;
+        case HANDLE_MOVE_STARTPOINT:
+        case HANDLE_MOVE_ENDPOINT:
+        case HANDLE_CUSTOM1:
+        case HANDLE_CUSTOM2:
+        case HANDLE_CUSTOM3:
+        case HANDLE_CUSTOM4:
+        case HANDLE_CUSTOM5:
+        case HANDLE_CUSTOM6:
+        case HANDLE_CUSTOM7:
+        case HANDLE_CUSTOM8:
+        case HANDLE_CUSTOM9:
+        default:
+          new_width = width;
+          new_height = height;
+          break;
+      }
+
+      nw_to.x = center.x - new_width/2;
+      nw_to.y = center.y - new_height/2;
+      se_to.x = center.x + new_width/2;
+      se_to.y = center.y + new_height/2;
+
+      element_move_handle (&ellipse->element, HANDLE_RESIZE_NW, &nw_to, cp, reason, modifiers);
+      element_move_handle (&ellipse->element, HANDLE_RESIZE_SE, &se_to, cp, reason, modifiers);
     } else {
-        Point center;
-        Point opposite_to;
-        center.x = elem->corner.x + elem->width/2;
-        center.y = elem->corner.y + elem->height/2;
-        opposite_to.x = center.x - (to->x-center.x);
-        opposite_to.y = center.y - (to->y-center.y);
-
-        element_move_handle(&ellipse->element, handle->id, to, cp, reason, modifiers);
-        /* this second move screws the intended object size, e.g. from dot2dia.py
-        * but without it the 'centered' behaviour during edit is screwed
-        */
-        element_move_handle(&ellipse->element, 7-handle->id, &opposite_to, cp, reason, modifiers);
+      Point center;
+      Point opposite_to;
+      center.x = elem->corner.x + elem->width/2;
+      center.y = elem->corner.y + elem->height/2;
+      opposite_to.x = center.x - (to->x-center.x);
+      opposite_to.y = center.y - (to->y-center.y);
+
+      element_move_handle (&ellipse->element, handle->id, to, cp, reason, modifiers);
+      /* this second move screws the intended object size, e.g. from dot2dia.py
+       * but without it the 'centered' behaviour during edit is screwed
+       */
+      element_move_handle (&ellipse->element, 7-handle->id, &opposite_to, cp, reason, modifiers);
     }
 
-    ellipse_update_data(ellipse);
+    ellipse_update_data (ellipse);
 
     return NULL;
   }
 }
 
+
 static ObjectChange*
 ellipse_move(Ellipse *ellipse, Point *to)
 {
diff --git a/objects/standard/line.c b/objects/standard/line.c
index d7aa7005..90dcd39f 100644
--- a/objects/standard/line.c
+++ b/objects/standard/line.c
@@ -181,16 +181,19 @@ static ObjectOps line_ops = {
   (TransformFunc)       line_transform,
 };
 
+
 static void
-line_set_props(Line *line, GPtrArray *props)
+line_set_props (Line *line, GPtrArray *props)
 {
-  object_set_props_from_offsets(&line->connection.object,
-                                line_offsets, props);
-  line_update_data(line);
+  object_set_props_from_offsets (DIA_OBJECT (line),
+                                 line_offsets, props);
+  line_update_data (line);
 }
 
+
 static void
-line_init_defaults() {
+line_init_defaults (void)
+{
   static int defaults_initialized = 0;
 
   if (!defaults_initialized) {
@@ -200,20 +203,22 @@ line_init_defaults() {
   }
 }
 
-/*!
- * \brief Add a connection point to the line
+
+/**
+ * line_add_connpoint_callback:
  *
- * \memberof Line
+ * Add a connection point to the line
  */
 static ObjectChange *
-line_add_connpoint_callback(DiaObject *obj, Point *clicked, gpointer data)
+line_add_connpoint_callback (DiaObject *obj, Point *clicked, gpointer data)
 {
   ObjectChange *oc;
-  oc = connpointline_add_point(((Line *)obj)->cpl,clicked);
-  line_update_data((Line *)obj);
+  oc = connpointline_add_point (((Line *) obj)->cpl,clicked);
+  line_update_data ((Line *) obj);
   return oc;
 }
 
+
 /*!
  * \brief Remove a connection point from the line
  *
diff --git a/plug-ins/cgm/cgm.c b/plug-ins/cgm/cgm.c
index db2e482a..d897c2ea 100644
--- a/plug-ins/cgm/cgm.c
+++ b/plug-ins/cgm/cgm.c
@@ -861,43 +861,43 @@ write_bezier(CgmRenderer *renderer,
     int     i;
     Point   current;
 
-    if (points[0].type != BEZ_MOVE_TO)
-       g_warning("first BezPoint must be a BEZ_MOVE_TO");
+    if (points[0].type != BEZ_MOVE_TO) {
+      g_warning("first BezPoint must be a BEZ_MOVE_TO");
+    }
 
     current.x = points[0].p1.x;
     current.y = swap_y(renderer, points[0].p1.y);
 
-    for (i = 1; i < numpoints; i++)
-    {
-       switch (points[i].type)
-        {
-       case BEZ_MOVE_TO:
-           g_warning("only first BezPoint can be a BEZ_MOVE_TO");
-           break;
-       case BEZ_LINE_TO:
-            write_elhead(renderer->file, CGM_ELEMENT, CGM_POLYLINE, 4 * REALSIZE);
-            write_real(renderer->file, current.x);
-            write_real(renderer->file, current.y);
-            write_real(renderer->file, points[i].p1.x);
-            write_real(renderer->file, swap_y(renderer, points[i].p1.y));
-            current.x = points[i].p1.x;
-            current.y = swap_y(renderer, points[i].p1.y);
-            break;
-       case BEZ_CURVE_TO:
-            write_elhead(renderer->file, CGM_ELEMENT, CGM_POLYBEZIER, 8 * REALSIZE + 2);
-            write_int16(renderer->file, 1);
-            write_real(renderer->file, current.x);
-            write_real(renderer->file, current.y);
-            write_real(renderer->file, points[i].p1.x);
-            write_real(renderer->file, swap_y(renderer, points[i].p1.y));
-            write_real(renderer->file, points[i].p2.x);
-            write_real(renderer->file, swap_y(renderer, points[i].p2.y));
-            write_real(renderer->file, points[i].p3.x);
-            write_real(renderer->file, swap_y(renderer, points[i].p3.y));
-            current.x = points[i].p3.x;
-            current.y = swap_y(renderer, points[i].p3.y);
-            break;
-        }
+    for (i = 1; i < numpoints; i++) {
+      switch (points[i].type) {
+        case BEZ_LINE_TO:
+          write_elhead(renderer->file, CGM_ELEMENT, CGM_POLYLINE, 4 * REALSIZE);
+          write_real(renderer->file, current.x);
+          write_real(renderer->file, current.y);
+          write_real(renderer->file, points[i].p1.x);
+          write_real(renderer->file, swap_y(renderer, points[i].p1.y));
+          current.x = points[i].p1.x;
+          current.y = swap_y(renderer, points[i].p1.y);
+          break;
+        case BEZ_CURVE_TO:
+          write_elhead(renderer->file, CGM_ELEMENT, CGM_POLYBEZIER, 8 * REALSIZE + 2);
+          write_int16(renderer->file, 1);
+          write_real(renderer->file, current.x);
+          write_real(renderer->file, current.y);
+          write_real(renderer->file, points[i].p1.x);
+          write_real(renderer->file, swap_y(renderer, points[i].p1.y));
+          write_real(renderer->file, points[i].p2.x);
+          write_real(renderer->file, swap_y(renderer, points[i].p2.y));
+          write_real(renderer->file, points[i].p3.x);
+          write_real(renderer->file, swap_y(renderer, points[i].p3.y));
+          current.x = points[i].p3.x;
+          current.y = swap_y(renderer, points[i].p3.y);
+          break;
+        case BEZ_MOVE_TO:
+        default:
+          g_warning ("only first BezPoint can be a BEZ_MOVE_TO");
+          break;
+      }
     }
 }
 
@@ -941,64 +941,69 @@ draw_beziergon (DiaRenderer *self,
 }
 
 
-
 static void
-draw_string(DiaRenderer *self,
-           const char *text,
-           Point *pos, Alignment alignment,
-           Color *colour)
+draw_string (DiaRenderer *self,
+             const char  *text,
+             Point       *pos,
+             Alignment    alignment,
+             Color       *colour)
 {
-    CgmRenderer *renderer = CGM_RENDERER(self);
-    double x = pos->x, y = swap_y(renderer, pos->y);
-    gint len, chunk;
-    const gint maxfirstchunk = 255 - 2 * REALSIZE - 2 - 1;
-    const gint maxappendchunk = 255 - 2 - 1;
-
-    /* check for empty strings */
-    len = strlen(text);
-    if ( len == 0 )
-        return;
+  CgmRenderer *renderer = CGM_RENDERER (self);
+  double x = pos->x, y = swap_y (renderer, pos->y);
+  gint len, chunk;
+  const gint maxfirstchunk = 255 - 2 * REALSIZE - 2 - 1;
+  const gint maxappendchunk = 255 - 2 - 1;
+
+  /* check for empty strings */
+  len = strlen (text);
+  if (len == 0) {
+    return;
+  }
 
-    write_text_attributes(renderer, colour);
+  write_text_attributes (renderer, colour);
 
-    switch (alignment) {
+  switch (alignment) {
     case ALIGN_LEFT:
-        break;
+      break;
     case ALIGN_CENTER:
-        x -= dia_font_string_width(text, renderer->font,
-                                   renderer->tcurrent.font_height)/2;
-        break;
+      x -= dia_font_string_width (text, renderer->font,
+                                  renderer->tcurrent.font_height) / 2;
+      break;
     case ALIGN_RIGHT:
-        x -= dia_font_string_width(text, renderer->font,
-                                   renderer->tcurrent.font_height);
-        break;
-    }
-    /* work out size of first chunk of text */
-    chunk = MIN(maxfirstchunk, len);
-    write_elhead(renderer->file, CGM_ELEMENT, CGM_TEXT, 2 * REALSIZE + 2 + 1 + chunk);
-    write_real(renderer->file, x);
-    write_real(renderer->file, y);
-    write_int16(renderer->file, (len == chunk)); /* last chunk? */
-    putc(chunk, renderer->file);
-    fwrite(text, sizeof(char), chunk, renderer->file);
-    if (!IS_ODD(chunk))
-       putc(0, renderer->file);
+      x -= dia_font_string_width (text, renderer->font,
+                                  renderer->tcurrent.font_height);
+      break;
+    default:
+      g_return_if_reached ();
+  }
+
+  /* work out size of first chunk of text */
+  chunk = MIN (maxfirstchunk, len);
+  write_elhead (renderer->file, CGM_ELEMENT, CGM_TEXT, 2 * REALSIZE + 2 + 1 + chunk);
+  write_real (renderer->file, x);
+  write_real (renderer->file, y);
+  write_int16 (renderer->file, (len == chunk)); /* last chunk? */
+  putc (chunk, renderer->file);
+  fwrite (text, sizeof(char), chunk, renderer->file);
+  if (!IS_ODD (chunk)) {
+    putc (0, renderer->file);
+  }
+
+  len -= chunk;
+  text += chunk;
+  while (len > 0) {
+    /* append text */
+    chunk = MIN (maxappendchunk, len);
+    write_elhead (renderer->file, CGM_ELEMENT, CGM_APPEND_TEXT, 2 + 1 + chunk);
+    write_int16 (renderer->file, (len == chunk));
+    putc (chunk, renderer->file);
+    fwrite (text, sizeof(char), chunk, renderer->file);
+    if (!IS_ODD (chunk))
+        putc (0, renderer->file);
 
     len -= chunk;
     text += chunk;
-    while (len > 0) {
-       /* append text */
-       chunk = MIN(maxappendchunk, len);
-       write_elhead(renderer->file, CGM_ELEMENT, CGM_APPEND_TEXT, 2 + 1 + chunk);
-       write_int16(renderer->file, (len == chunk));
-       putc(chunk, renderer->file);
-       fwrite(text, sizeof(char), chunk, renderer->file);
-       if (!IS_ODD(chunk))
-           putc(0, renderer->file);
-
-       len -= chunk;
-       text += chunk;
-    }
+  }
 }
 
 
diff --git a/plug-ins/drs/dia-render-script-renderer.c b/plug-ins/drs/dia-render-script-renderer.c
index 0d7c008f..684814b5 100644
--- a/plug-ins/drs/dia-render-script-renderer.c
+++ b/plug-ins/drs/dia-render-script-renderer.c
@@ -145,44 +145,55 @@ drs_renderer_finalize (GObject *object)
   G_OBJECT_CLASS (drs_renderer_parent_class)->finalize (object);
 }
 
+
 /*
  * renderer methods
  */
 static void
-draw_object(DiaRenderer *self,
-            DiaObject   *object,
-           DiaMatrix   *matrix)
+draw_object (DiaRenderer *self,
+             DiaObject   *object,
+             DiaMatrix   *matrix)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   DiaMatrix *m = g_queue_peek_tail (renderer->matrices);
   xmlNodePtr node;
 
   g_queue_push_tail (renderer->parents, renderer->root);
-  renderer->root = node = xmlNewChild(renderer->root, NULL, (const xmlChar *)"object", NULL);
-  xmlSetProp(node, (const xmlChar *)"type", (xmlChar *)object->type->name);
+  renderer->root = node = xmlNewChild (renderer->root,
+                                       NULL,
+                                       (const xmlChar *) "object",
+                                       NULL);
+  xmlSetProp (node, (const xmlChar *) "type",
+              (xmlChar *) object->type->name);
   /* if it looks like intdata store it as well */
   if (GPOINTER_TO_INT (object->type->default_user_data) > 0 &&
       GPOINTER_TO_INT (object->type->default_user_data) < 0xFF) {
     gchar buffer[30];
-    g_snprintf(buffer, sizeof(buffer), "%d", GPOINTER_TO_INT (object->type->default_user_data));
-    xmlSetProp(node, (const xmlChar *)"intdata", (xmlChar *)buffer);
+    g_snprintf (buffer, sizeof (buffer), "%d",
+                GPOINTER_TO_INT (object->type->default_user_data));
+    xmlSetProp (node, (const xmlChar *) "intdata", (xmlChar *) buffer);
   }
+
   if (renderer->save_props) {
     xmlNodePtr props_node;
 
-    props_node = xmlNewChild(node, NULL, (const xmlChar *)"properties", NULL);
+    props_node = xmlNewChild (node, NULL,
+                              (const xmlChar *) "properties", NULL);
     object_save_props (object, props_node, renderer->ctx);
   }
+
   if (matrix) {
     DiaMatrix *m2 = g_new0 (DiaMatrix, 1);
-    if (m)
+    if (m) {
       dia_matrix_multiply (m2, matrix, m);
-    else
+    } else {
       *m2 = *matrix;
+    }
     g_queue_push_tail (renderer->matrices, m2);
     /* lazy creation of our transformer */
-    if (!renderer->transformer)
+    if (!renderer->transformer) {
       renderer->transformer = dia_transform_renderer_new (self);
+    }
   }
   /* special handling for group objects:
    *  - for the render branch use DiaTransformRenderer, but not it's draw_object,
@@ -194,9 +205,10 @@ draw_object(DiaRenderer *self,
    */
   {
     g_queue_push_tail (renderer->parents, renderer->root);
-    renderer->root = node = xmlNewChild(renderer->root, NULL, (const xmlChar *)"render", NULL);
+    renderer->root = node = xmlNewChild (renderer->root, NULL,
+                                         (const xmlChar *) "render", NULL);
     if (renderer->transformer) {
-      DiaMatrix *m = g_queue_peek_tail (renderer->matrices);
+      DiaMatrix *cm = g_queue_peek_tail (renderer->matrices);
 
       if (IS_GROUP (object)) {
         /* reimplementation of group_draw to use this draw_object method */
@@ -207,12 +219,12 @@ draw_object(DiaRenderer *self,
         while (list != NULL) {
           obj = (DiaObject *) list->data;
 
-          dia_renderer_draw_object (self, obj, m);
+          dia_renderer_draw_object (self, obj, cm);
           list = g_list_next (list);
         }
       } else {
         /* just the leaf */
-        dia_renderer_draw_object (renderer->transformer, object, m);
+        dia_renderer_draw_object (renderer->transformer, object, cm);
       }
     } else {
       dia_object_draw (object, DIA_RENDERER (renderer));
@@ -293,6 +305,8 @@ _node_set_point (xmlNodePtr node, const char *name, Point *point)
 
   g_string_free(str, TRUE);
 }
+
+
 static void
 _node_set_points (xmlNodePtr node, Point *points, int num_points)
 {
@@ -301,12 +315,15 @@ _node_set_points (xmlNodePtr node, Point *points, int num_points)
 
   str = g_string_new (NULL);
 
-  for (i = 0; i < num_points; ++i)
+  for (i = 0; i < num_points; ++i) {
     _string_append_point (str, &points[i], i == 0);
-  xmlSetProp(node, (const xmlChar *)"points", (xmlChar *) str->str);
+  }
+  xmlSetProp (node, (const xmlChar *) "points", (xmlChar *) str->str);
 
-  g_string_free(str, TRUE);
+  g_string_free (str, TRUE);
 }
+
+
 static void
 _node_set_bezpoints (xmlNodePtr node, BezPoint *points, int num_points)
 {
@@ -317,20 +334,27 @@ _node_set_bezpoints (xmlNodePtr node, BezPoint *points, int num_points)
 
   for (i = 0; i < num_points; ++i) {
     BezPoint *bpt = &points[i];
-    if (i != 0)
+
+    if (i != 0) {
       g_string_append (str, " ");
+    }
+
     switch (bpt->type) {
-    case BEZ_MOVE_TO:
-      g_string_append (str, "M");
-      break;
-    case BEZ_LINE_TO:
-      g_string_append (str, "L");
-      break;
-    case BEZ_CURVE_TO:
-      g_string_append (str, "C");
-      break;
+      case BEZ_MOVE_TO:
+        g_string_append (str, "M");
+        break;
+      case BEZ_LINE_TO:
+        g_string_append (str, "L");
+        break;
+      case BEZ_CURVE_TO:
+        g_string_append (str, "C");
+        break;
+      default:
+        g_return_if_reached ();
     }
+
     _string_append_point (str, &points[i].p1, TRUE);
+
     if (bpt->type == BEZ_CURVE_TO) {
       /* no space between bez-points, simplifies parsing */
       g_string_append (str, ";");
@@ -339,73 +363,83 @@ _node_set_bezpoints (xmlNodePtr node, BezPoint *points, int num_points)
       _string_append_point (str, &points[i].p3, TRUE);
     }
   }
-  xmlSetProp(node, (const xmlChar *)"bezpoints", (xmlChar *) str->str);
+  xmlSetProp (node, (const xmlChar *) "bezpoints", (xmlChar *) str->str);
 
-  g_string_free(str, TRUE);
+  g_string_free (str, TRUE);
 }
 
+
 static void
-set_linewidth(DiaRenderer *self, real width)
+set_linewidth (DiaRenderer *self, real width)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
 
-  node =  xmlNewChild(renderer->root, NULL, (const xmlChar *)"set-linewidth", NULL);
+  node = xmlNewChild (renderer->root, NULL,
+                      (const xmlChar *) "set-linewidth", NULL);
   _node_set_real (node, "width", width);
 }
 
+
 static void
-set_linecaps(DiaRenderer *self, LineCaps mode)
+set_linecaps (DiaRenderer *self, LineCaps mode)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
   gchar *value = NULL;
 
   switch(mode) {
-  case LINECAPS_DEFAULT:
-  case LINECAPS_BUTT:
-    value = "butt";
-    break;
-  case LINECAPS_ROUND:
-    value = "round";
-    break;
-  case LINECAPS_PROJECTING:
-    value = "projecting";
-    break;
-  /* intentionally no default to let 'good' compilers warn about new constants*/
+    case LINECAPS_DEFAULT:
+    case LINECAPS_BUTT:
+      value = "butt";
+      break;
+    case LINECAPS_ROUND:
+      value = "round";
+      break;
+    case LINECAPS_PROJECTING:
+      value = "projecting";
+      break;
+    default:
+      g_return_if_reached ();
   }
-  node =  xmlNewChild(renderer->root, NULL, (const xmlChar *)"set-linecaps", NULL);
-  xmlSetProp(node, (const xmlChar *)"mode",
-             value ? (xmlChar *)value : (xmlChar *)"?");
+
+  node = xmlNewChild (renderer->root, NULL,
+                      (const xmlChar *) "set-linecaps", NULL);
+  xmlSetProp (node, (const xmlChar *) "mode",
+              value ? (xmlChar *) value : (xmlChar *) "?");
 }
 
+
 static void
-set_linejoin(DiaRenderer *self, LineJoin mode)
+set_linejoin (DiaRenderer *self, LineJoin mode)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
   gchar *value = NULL;
 
-  switch(mode) {
-  case LINEJOIN_DEFAULT:
-  case LINEJOIN_MITER:
-    value = "miter";
-    break;
-  case LINEJOIN_ROUND:
-    value = "round";
-    break;
-  case LINEJOIN_BEVEL:
-    value = "bevel";
-    break;
-  /* intentionally no default to let 'good' compilers warn about new constants*/
+  switch (mode) {
+    case LINEJOIN_DEFAULT:
+    case LINEJOIN_MITER:
+      value = "miter";
+      break;
+    case LINEJOIN_ROUND:
+      value = "round";
+      break;
+    case LINEJOIN_BEVEL:
+      value = "bevel";
+      break;
+    default:
+      g_return_if_reached ();
   }
-  node =  xmlNewChild(renderer->root, NULL, (const xmlChar *)"set-linejoin", NULL);
-  xmlSetProp(node, (const xmlChar *)"mode",
-             value ? (xmlChar *)value : (xmlChar *)"?");
+  node = xmlNewChild (renderer->root, NULL,
+                      (const xmlChar *) "set-linejoin", NULL);
+  xmlSetProp (node, (const xmlChar *) "mode",
+              value ? (xmlChar *) value : (xmlChar *) "?");
 }
 
+
 static void
-set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
+set_linestyle (DiaRenderer *self, LineStyle mode, real dash_length)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
@@ -413,58 +447,67 @@ set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
 
   /* line type */
   switch (mode) {
-  case LINESTYLE_DEFAULT:
-  case LINESTYLE_SOLID:
-    value = "solid";
-    break;
-  case LINESTYLE_DASHED:
-    value = "dashed";
-    break;
-  case LINESTYLE_DASH_DOT:
-    value = "dash-dot";
-    break;
-  case LINESTYLE_DASH_DOT_DOT:
-    value = "dash-dot-dot";
-    break;
-  case LINESTYLE_DOTTED:
-    value = "dotted";
-    break;
-  /* intentionally no default to let 'good' compilers warn about new constants*/
+    case LINESTYLE_DEFAULT:
+    case LINESTYLE_SOLID:
+      value = "solid";
+      break;
+    case LINESTYLE_DASHED:
+      value = "dashed";
+      break;
+    case LINESTYLE_DASH_DOT:
+      value = "dash-dot";
+      break;
+    case LINESTYLE_DASH_DOT_DOT:
+      value = "dash-dot-dot";
+      break;
+    case LINESTYLE_DOTTED:
+      value = "dotted";
+      break;
+    default:
+      g_return_if_reached ();
   }
-  node =  xmlNewChild(renderer->root, NULL, (const xmlChar *)"set-linestyle", NULL);
-  xmlSetProp(node, (const xmlChar *)"mode",
-             value ? (xmlChar *)value : (xmlChar *)"?");
-  if (mode != LINESTYLE_SOLID)
+  node = xmlNewChild (renderer->root, NULL,
+                      (const xmlChar *) "set-linestyle", NULL);
+  xmlSetProp (node, (const xmlChar *) "mode",
+              value ? (xmlChar *) value : (xmlChar *) "?");
+  if (mode != LINESTYLE_SOLID) {
     _node_set_real (node, "dash-length", dash_length);
+  }
 }
 
+
 static void
-set_fillstyle(DiaRenderer *self, FillStyle mode)
+set_fillstyle (DiaRenderer *self, FillStyle mode)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
   const gchar *value = NULL;
 
   switch(mode) {
-  case FILLSTYLE_SOLID:
-    value = "solid";
-    break;
-  /* intentionally no default to let 'good' compilers warn about new constants*/
+    case FILLSTYLE_SOLID:
+      value = "solid";
+      break;
+    default:
+      g_return_if_reached ();
   }
-  node =  xmlNewChild(renderer->root, NULL, (const xmlChar *)"set-fillstyle", NULL);
-  xmlSetProp(node, (const xmlChar *)"mode",
-             value ? (xmlChar *)value : (xmlChar *)"?");
+
+  node = xmlNewChild (renderer->root, NULL,
+                      (const xmlChar *) "set-fillstyle", NULL);
+  xmlSetProp (node, (const xmlChar *) "mode",
+              value ? (xmlChar *) value : (xmlChar *) "?");
 }
 
+
 static void
-draw_line(DiaRenderer *self,
-          Point *start, Point *end,
-          Color *color)
+draw_line (DiaRenderer *self,
+           Point       *start,
+           Point       *end,
+           Color       *color)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
 
-  node = xmlNewChild(renderer->root, NULL, (const xmlChar *)"line", NULL);
+  node = xmlNewChild (renderer->root, NULL, (const xmlChar *) "line", NULL);
   _node_set_point (node, "start", start);
   _node_set_point (node, "end", end);
   _node_set_color (node, "stroke", color);
@@ -658,37 +701,43 @@ draw_rounded_polyline (DiaRenderer *self,
   _node_set_real (node, "r", radius);
 }
 
+
 static void
-draw_string(DiaRenderer *self,
-            const char *text,
-            Point *pos, Alignment alignment,
-            Color *color)
+draw_string (DiaRenderer *self,
+             const char  *text,
+             Point       *pos,
+             Alignment    alignment,
+             Color       *color)
 {
   DrsRenderer *renderer = DRS_RENDERER (self);
   xmlNodePtr node;
   gchar *align = NULL;
 
-  node = xmlNewChild(renderer->root, NULL, (const xmlChar *)"string", NULL);
+  node = xmlNewChild (renderer->root, NULL, (const xmlChar *) "string", NULL);
   _node_set_point (node, "pos", pos);
   _node_set_color (node, "fill", color);
   switch (alignment) {
-  case ALIGN_LEFT :
-    align = "left";
-    break;
-  case ALIGN_RIGHT :
-    align = "right";
-    break;
-  case ALIGN_CENTER :
-    align = "center";
-    break;
-  /* intentionally no default */
+    case ALIGN_LEFT :
+      align = "left";
+      break;
+    case ALIGN_RIGHT :
+      align = "right";
+      break;
+    case ALIGN_CENTER :
+      align = "center";
+      break;
+    default:
+      g_return_if_reached ();
   }
-  if (align)
-    xmlSetProp(node, (const xmlChar *)"alignment", (xmlChar *) align);
 
-  xmlNodeSetContent (node, (const xmlChar *)text);
+  if (align) {
+    xmlSetProp (node, (const xmlChar *) "alignment", (xmlChar *) align);
+  }
+
+  xmlNodeSetContent (node, (const xmlChar *) text);
 }
 
+
 static void
 draw_image(DiaRenderer *self,
            Point *point,
diff --git a/plug-ins/dxf/dxf-export.c b/plug-ins/dxf/dxf-export.c
index 523789c3..f1c851ac 100644
--- a/plug-ins/dxf/dxf-export.c
+++ b/plug-ins/dxf/dxf-export.c
@@ -263,39 +263,42 @@ set_linejoin(DiaRenderer *self, LineJoin mode)
 {
 }
 
+
 static void
-set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
+set_linestyle (DiaRenderer *self, LineStyle mode, real dash_length)
 {
-    DxfRenderer *renderer = DXF_RENDERER(self);
-    char   *style;
+  DxfRenderer *renderer = DXF_RENDERER(self);
+  char   *style;
 
-    switch(mode)
-    {
+  switch (mode) {
     case LINESTYLE_DASHED:
-       style = "DASH";
-       break;
+      style = "DASH";
+      break;
     case LINESTYLE_DASH_DOT:
-       style = "DASHDOT";
-       break;
+      style = "DASHDOT";
+      break;
     case LINESTYLE_DASH_DOT_DOT:
-       style = "DASHDOT";
-       break;
+      style = "DASHDOT";
+      break;
     case LINESTYLE_DOTTED:
-       style = "DOT";
-       break;
+      style = "DOT";
+      break;
     case LINESTYLE_SOLID:
+    case LINESTYLE_DEFAULT:
     default:
-       style = "CONTINUOUS";
-       break;
-    }
-    renderer->lcurrent.style = renderer->fcurrent.style = style;
+      style = "CONTINUOUS";
+      break;
+  }
+  renderer->lcurrent.style = renderer->fcurrent.style = style;
 }
 
+
 static void
 set_fillstyle(DiaRenderer *self, FillStyle mode)
 {
 }
 
+
 static int
 dxf_color (const Color *color)
 {
diff --git a/plug-ins/hpgl/hpgl.c b/plug-ins/hpgl/hpgl.c
index 36f227f1..194088ee 100644
--- a/plug-ins/hpgl/hpgl.c
+++ b/plug-ins/hpgl/hpgl.c
@@ -519,34 +519,39 @@ draw_ellipse(DiaRenderer *object,
     }
 }
 
+
 static void
-draw_string(DiaRenderer *object,
-           const char *text,
-           Point *pos, Alignment alignment,
-           Color *colour)
+draw_string (DiaRenderer *object,
+             const char  *text,
+             Point       *pos,
+             Alignment    alignment,
+             Color       *colour)
 {
-    HpglRenderer *renderer = HPGL_RENDERER (object);
-    real width, height;
+  HpglRenderer *renderer = HPGL_RENDERER (object);
+  real width, height;
 
-    DIAG_NOTE(g_message("draw_string %f,%f %s",
-              pos->x, pos->y, text));
+  DIAG_NOTE (g_message ("draw_string %f,%f %s",
+                        pos->x, pos->y, text));
 
-    /* set position */
-    fprintf(renderer->file, "PU%d,%d;",
-            hpgl_scale(renderer, pos->x), hpgl_scale(renderer, -pos->y));
+  /* set position */
+  fprintf (renderer->file, "PU%d,%d;",
+           hpgl_scale (renderer, pos->x), hpgl_scale (renderer, -pos->y));
 
-    switch (alignment) {
+  switch (alignment) {
     case ALIGN_LEFT:
-        fprintf (renderer->file, "LO1;\n");
-       break;
+      fprintf (renderer->file, "LO1;\n");
+      break;
     case ALIGN_CENTER:
-        fprintf (renderer->file, "LO4;\n");
-       break;
+      fprintf (renderer->file, "LO4;\n");
+      break;
     case ALIGN_RIGHT:
-        fprintf (renderer->file, "LO7;\n");
-       break;
-    }
-    hpgl_select_pen(renderer,colour,0.0);
+      fprintf (renderer->file, "LO7;\n");
+      break;
+    default:
+      g_return_if_reached ();
+  }
+
+  hpgl_select_pen (renderer, colour, 0.0);
 
 #if 0
     /*
diff --git a/plug-ins/metapost/render_metapost.c b/plug-ins/metapost/render_metapost.c
index ef1f70d9..b9088f62 100644
--- a/plug-ins/metapost/render_metapost.c
+++ b/plug-ins/metapost/render_metapost.c
@@ -313,71 +313,77 @@ set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
     renderer->dot_length = dash_length * 0.1;
 }
 
+
 static void
-draw_with_linestyle(MetapostRenderer *renderer)
+draw_with_linestyle (MetapostRenderer *renderer)
 {
-    real hole_width;
-    gchar dash_length_buf[DTOSTR_BUF_SIZE];
-    gchar dot_lenght_buf[DTOSTR_BUF_SIZE];
-    gchar hole_width_buf[DTOSTR_BUF_SIZE];
+  real hole_width;
+  gchar dash_length_buf[DTOSTR_BUF_SIZE];
+  gchar dot_lenght_buf[DTOSTR_BUF_SIZE];
+  gchar hole_width_buf[DTOSTR_BUF_SIZE];
 
-    switch(renderer->saved_line_style) {
-    case LINESTYLE_DEFAULT:
-    case LINESTYLE_SOLID:
-       break;
+  switch (renderer->saved_line_style) {
     case LINESTYLE_DASHED:
-       mp_dtostr(dash_length_buf, renderer->dash_length);
-       fprintf(renderer->file, "\n    dashed dashpattern (on %sx off %sx)",
-               dash_length_buf, dash_length_buf);
-       break;
+      mp_dtostr (dash_length_buf, renderer->dash_length);
+      fprintf (renderer->file, "\n    dashed dashpattern (on %sx off %sx)",
+               dash_length_buf, dash_length_buf);
+      break;
     case LINESTYLE_DASH_DOT:
-       hole_width = (renderer->dash_length - renderer->dot_length) / 2.0;
+      hole_width = (renderer->dash_length - renderer->dot_length) / 2.0;
 
-       mp_dtostr(dash_length_buf, renderer->dash_length);
-       mp_dtostr(dot_lenght_buf, renderer->dot_length);
-       mp_dtostr(hole_width_buf, hole_width);
+      mp_dtostr (dash_length_buf, renderer->dash_length);
+      mp_dtostr (dot_lenght_buf, renderer->dot_length);
+      mp_dtostr (hole_width_buf, hole_width);
 
-       fprintf(renderer->file, "\n    dashed dashpattern (on %sx off %sx on %sx off %sx)",
-               dash_length_buf, hole_width_buf,
-               dot_lenght_buf, hole_width_buf);
-       break;
+      fprintf (renderer->file,
+               "\n    dashed dashpattern (on %sx off %sx on %sx off %sx)",
+               dash_length_buf, hole_width_buf,
+               dot_lenght_buf, hole_width_buf);
+      break;
     case LINESTYLE_DASH_DOT_DOT:
-       hole_width = (renderer->dash_length - 2.0*renderer->dot_length) / 3.0;
+      hole_width = (renderer->dash_length - 2.0*renderer->dot_length) / 3.0;
 
-       mp_dtostr(dash_length_buf, renderer->dash_length);
-       mp_dtostr(dot_lenght_buf, renderer->dot_length);
-       mp_dtostr(hole_width_buf, hole_width);
+      mp_dtostr (dash_length_buf, renderer->dash_length);
+      mp_dtostr (dot_lenght_buf, renderer->dot_length);
+      mp_dtostr (hole_width_buf, hole_width);
 
-       fprintf(renderer->file, "\n    dashed dashpattern (on %sx off %sx on %sx off %sx on %sx off %sx)",
-               dash_length_buf, hole_width_buf,
-               dot_lenght_buf, hole_width_buf,
-               dot_lenght_buf, hole_width_buf );
-       break;
+      fprintf (renderer->file,
+               "\n    dashed dashpattern (on %sx off %sx on %sx off %sx on %sx off %sx)",
+               dash_length_buf, hole_width_buf,
+               dot_lenght_buf, hole_width_buf,
+               dot_lenght_buf, hole_width_buf );
+      break;
     case LINESTYLE_DOTTED:
-       hole_width = renderer->dot_length * 5.0;
-       mp_dtostr(dot_lenght_buf, renderer->dot_length);
-       mp_dtostr(hole_width_buf, hole_width);
+      hole_width = renderer->dot_length * 5.0;
+      mp_dtostr (dot_lenght_buf, renderer->dot_length);
+      mp_dtostr (hole_width_buf, hole_width);
 
-       fprintf(renderer->file, "\n    dashed dashpattern (on %sx off %sx)",
-               dot_lenght_buf, hole_width_buf);
-       break;
-    }
+      fprintf (renderer->file, "\n    dashed dashpattern (on %sx off %sx)",
+               dot_lenght_buf, hole_width_buf);
+      break;
+    case LINESTYLE_DEFAULT:
+    case LINESTYLE_SOLID:
+    default:
+      break;
+  }
 }
 
+
 static void
-set_fillstyle(DiaRenderer *self, FillStyle mode)
+set_fillstyle (DiaRenderer *self, FillStyle mode)
 {
-    /*MetapostRenderer *renderer = METAPOST_RENDERER (self);*/
+  /*MetapostRenderer *renderer = METAPOST_RENDERER (self);*/
 
-    switch(mode) {
+  switch(mode) {
     case FILLSTYLE_SOLID:
-       break;
+      break;
     default:
-       g_warning ("%s: Unsupported fill mode specified!",
-                  G_OBJECT_CLASS_NAME (G_OBJECT_GET_CLASS (self)));
+      g_warning ("%s: Unsupported fill mode specified!",
+                 G_OBJECT_CLASS_NAME (G_OBJECT_GET_CLASS (self)));
     }
 }
 
+
 static void
 set_font(DiaRenderer *self, DiaFont *font, real height)
 {
@@ -640,199 +646,218 @@ draw_ellipse(DiaRenderer *self,
     }
 }
 
+
 static void
-draw_bezier(DiaRenderer *self,
-           BezPoint *points,
-           int numpoints, /* numpoints = 4+3*n, n=>0 */
-           Color *color)
+draw_bezier (DiaRenderer *self,
+             BezPoint    *points,
+             int          numpoints, /* numpoints = 4+3*n, n=>0 */
+             Color       *color)
 {
-    MetapostRenderer *renderer = METAPOST_RENDERER (self);
-    gint i;
-    gchar p1x_buf[DTOSTR_BUF_SIZE];
-    gchar p1y_buf[DTOSTR_BUF_SIZE];
-    gchar p2x_buf[DTOSTR_BUF_SIZE];
-    gchar p2y_buf[DTOSTR_BUF_SIZE];
-    gchar p3x_buf[DTOSTR_BUF_SIZE];
-    gchar p3y_buf[DTOSTR_BUF_SIZE];
+  MetapostRenderer *renderer = METAPOST_RENDERER (self);
+  gint i;
+  gchar p1x_buf[DTOSTR_BUF_SIZE];
+  gchar p1y_buf[DTOSTR_BUF_SIZE];
+  gchar p2x_buf[DTOSTR_BUF_SIZE];
+  gchar p2y_buf[DTOSTR_BUF_SIZE];
+  gchar p3x_buf[DTOSTR_BUF_SIZE];
+  gchar p3y_buf[DTOSTR_BUF_SIZE];
+
+  set_line_color (renderer, color);
+
+  if (points[0].type != BEZ_MOVE_TO) {
+    g_warning ("first BezPoint must be a BEZ_MOVE_TO");
+  }
 
-    set_line_color(renderer,color);
+  fprintf (renderer->file, "  draw (%sx,%sy)",
+           mp_dtostr (p1x_buf, (gdouble) points[0].p1.x),
+           mp_dtostr (p1y_buf, (gdouble) points[0].p1.y) );
+
+  for (i = 1; i < numpoints; i++) {
+    switch (points[i].type) {
+      case BEZ_MOVE_TO:
+        g_warning ("only first BezPoint can be a BEZ_MOVE_TO");
+        break;
+      case BEZ_LINE_TO:
+        fprintf (renderer->file, "--(%sx,%sy)",
+                 mp_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                 mp_dtostr (p1y_buf, (gdouble) points[i].p1.y) );
+        break;
+      case BEZ_CURVE_TO:
+        fprintf (renderer->file, "..controls (%sx,%sy) and (%sx,%sy)\n    ..(%sx,%sy)",
+                 mp_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                 mp_dtostr (p1y_buf, (gdouble) points[i].p1.y),
+                 mp_dtostr (p2x_buf, (gdouble) points[i].p2.x),
+                 mp_dtostr (p2y_buf, (gdouble) points[i].p2.y),
+                 mp_dtostr (p3x_buf, (gdouble) points[i].p3.x),
+                 mp_dtostr (p3y_buf, (gdouble) points[i].p3.y) );
+        break;
+      default:
+        g_return_if_reached ();
+    }
+  }
 
-    if (points[0].type != BEZ_MOVE_TO)
-       g_warning("first BezPoint must be a BEZ_MOVE_TO");
-
-    fprintf(renderer->file, "  draw (%sx,%sy)",
-           mp_dtostr(p1x_buf, (gdouble) points[0].p1.x),
-           mp_dtostr(p1y_buf, (gdouble) points[0].p1.y) );
-
-    for (i = 1; i < numpoints; i++)
-       switch (points[i].type) {
-       case BEZ_MOVE_TO:
-           g_warning("only first BezPoint can be a BEZ_MOVE_TO");
-           break;
-       case BEZ_LINE_TO:
-           fprintf(renderer->file, "--(%sx,%sy)",
-                   mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-                   mp_dtostr(p1y_buf, (gdouble) points[i].p1.y) );
-           break;
-       case BEZ_CURVE_TO:
-           fprintf(renderer->file, "..controls (%sx,%sy) and (%sx,%sy)\n    ..(%sx,%sy)",
-                   mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-                   mp_dtostr(p1y_buf, (gdouble) points[i].p1.y),
-                   mp_dtostr(p2x_buf, (gdouble) points[i].p2.x),
-                   mp_dtostr(p2y_buf, (gdouble) points[i].p2.y),
-                   mp_dtostr(p3x_buf, (gdouble) points[i].p3.x),
-                   mp_dtostr(p3y_buf, (gdouble) points[i].p3.y) );
-           break;
-       }
-    end_draw_op(renderer);
+  end_draw_op (renderer);
 }
 
+
 static void
 draw_beziergon (DiaRenderer *self,
-               BezPoint *points,
-               int numpoints,
-               Color *fill,
-               Color *stroke)
+                BezPoint    *points,
+                int          numpoints,
+                Color       *fill,
+                Color       *stroke)
 {
-    MetapostRenderer *renderer = METAPOST_RENDERER (self);
-    gint i;
-    gchar p1x_buf[DTOSTR_BUF_SIZE];
-    gchar p1y_buf[DTOSTR_BUF_SIZE];
-    gchar p2x_buf[DTOSTR_BUF_SIZE];
-    gchar p2y_buf[DTOSTR_BUF_SIZE];
-    gchar p3x_buf[DTOSTR_BUF_SIZE];
-    gchar p3y_buf[DTOSTR_BUF_SIZE];
-    gchar red_buf[DTOSTR_BUF_SIZE];
-    gchar green_buf[DTOSTR_BUF_SIZE];
-    gchar blue_buf[DTOSTR_BUF_SIZE];
-
-    if (points[0].type != BEZ_MOVE_TO)
-       g_warning("first BezPoint must be a BEZ_MOVE_TO");
-
-    if (stroke)
-       set_line_color(renderer,stroke);
-
-    fprintf(renderer->file, "  path p;\n");
-    fprintf(renderer->file, "  p = (%sx,%sy)",
-           mp_dtostr(p1x_buf, (gdouble) points[0].p1.x),
-           mp_dtostr(p1y_buf, (gdouble) points[0].p1.y) );
-
-    for (i = 1; i < numpoints; i++)
-       switch (points[i].type) {
-       case BEZ_MOVE_TO:
-           /* close previous, new move-to - XXX: not working, not used, gives:
-            *   Paths don't touch; `&' will be changed to `..'.
-            */
-           fprintf(renderer->file, "  ..cycle\n  & (%sx,%sy)",
-               mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-               mp_dtostr(p1y_buf, (gdouble) points[i].p1.y) );
-           break;
-       case BEZ_LINE_TO:
-           fprintf(renderer->file, "--(%sx,%sy)",
-                   mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-                   mp_dtostr(p1y_buf, (gdouble) points[i].p1.y) );
-           break;
-       case BEZ_CURVE_TO:
-           fprintf(renderer->file, "..controls (%sx,%sy) and (%sx,%sy)\n    ..(%sx,%sy)",
-                   mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-                   mp_dtostr(p1y_buf, (gdouble) points[i].p1.y),
-                   mp_dtostr(p2x_buf, (gdouble) points[i].p2.x),
-                   mp_dtostr(p2y_buf, (gdouble) points[i].p2.y),
-                   mp_dtostr(p3x_buf, (gdouble) points[i].p3.x),
-                   mp_dtostr(p3y_buf, (gdouble) points[i].p3.y) );
-           break;
-       }
-    fprintf(renderer->file, "\n    ..cycle;\n");
+  MetapostRenderer *renderer = METAPOST_RENDERER (self);
+  gint i;
+  gchar p1x_buf[DTOSTR_BUF_SIZE];
+  gchar p1y_buf[DTOSTR_BUF_SIZE];
+  gchar p2x_buf[DTOSTR_BUF_SIZE];
+  gchar p2y_buf[DTOSTR_BUF_SIZE];
+  gchar p3x_buf[DTOSTR_BUF_SIZE];
+  gchar p3y_buf[DTOSTR_BUF_SIZE];
+  gchar red_buf[DTOSTR_BUF_SIZE];
+  gchar green_buf[DTOSTR_BUF_SIZE];
+  gchar blue_buf[DTOSTR_BUF_SIZE];
+
+  if (points[0].type != BEZ_MOVE_TO) {
+    g_warning ("first BezPoint must be a BEZ_MOVE_TO");
+  }
 
-    if (fill)
-       fprintf(renderer->file,
-               "  fill p withcolor (%s,%s,%s);\n",
-               mp_dtostr(red_buf, (gdouble) fill->red),
-               mp_dtostr(green_buf, (gdouble) fill->green),
-               mp_dtostr(blue_buf, (gdouble) fill->blue) );
+  if (stroke) {
+    set_line_color (renderer,stroke);
+  }
 
-    if (stroke) {
-       fprintf(renderer->file, "  draw p");
-       end_draw_op(renderer);
+  fprintf (renderer->file, "  path p;\n");
+  fprintf (renderer->file, "  p = (%sx,%sy)",
+           mp_dtostr (p1x_buf, (gdouble) points[0].p1.x),
+           mp_dtostr (p1y_buf, (gdouble) points[0].p1.y) );
+
+  for (i = 1; i < numpoints; i++) {
+    switch (points[i].type) {
+      case BEZ_MOVE_TO:
+        /* close previous, new move-to - XXX: not working, not used, gives:
+        *   Paths don't touch; `&' will be changed to `..'.
+        */
+        fprintf (renderer->file, "  ..cycle\n  & (%sx,%sy)",
+                 mp_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                 mp_dtostr (p1y_buf, (gdouble) points[i].p1.y) );
+        break;
+      case BEZ_LINE_TO:
+        fprintf (renderer->file, "--(%sx,%sy)",
+                 mp_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                 mp_dtostr (p1y_buf, (gdouble) points[i].p1.y) );
+        break;
+      case BEZ_CURVE_TO:
+        fprintf (renderer->file, "..controls (%sx,%sy) and (%sx,%sy)\n    ..(%sx,%sy)",
+                 mp_dtostr(p1x_buf, (gdouble) points[i].p1.x),
+                 mp_dtostr(p1y_buf, (gdouble) points[i].p1.y),
+                 mp_dtostr(p2x_buf, (gdouble) points[i].p2.x),
+                 mp_dtostr(p2y_buf, (gdouble) points[i].p2.y),
+                 mp_dtostr(p3x_buf, (gdouble) points[i].p3.x),
+                 mp_dtostr(p3y_buf, (gdouble) points[i].p3.y) );
+        break;
+      default:
+        g_return_if_reached ();
     }
+  }
+  fprintf (renderer->file, "\n    ..cycle;\n");
+
+  if (fill) {
+    fprintf (renderer->file,
+             "  fill p withcolor (%s,%s,%s);\n",
+             mp_dtostr (red_buf, (gdouble) fill->red),
+             mp_dtostr (green_buf, (gdouble) fill->green),
+             mp_dtostr (blue_buf, (gdouble) fill->blue) );
+  }
+
+  if (stroke) {
+    fprintf (renderer->file, "  draw p");
+    end_draw_op (renderer);
+  }
 }
 
+
 static void
-draw_string(DiaRenderer *self,
-           const char *text,
-           Point *pos, Alignment alignment,
-           Color *color)
+draw_string (DiaRenderer *self,
+             const char  *text,
+             Point       *pos,
+             Alignment    alignment,
+             Color       *color)
 {
-    MetapostRenderer *renderer = METAPOST_RENDERER (self);
-    gchar height_buf[DTOSTR_BUF_SIZE];
-    gchar px_buf[DTOSTR_BUF_SIZE];
-    gchar py_buf[DTOSTR_BUF_SIZE];
-    gchar red_buf[DTOSTR_BUF_SIZE];
-    gchar green_buf[DTOSTR_BUF_SIZE];
-    gchar blue_buf[DTOSTR_BUF_SIZE];
-
-    set_line_color(renderer,color);
-
-    /* text position is correct for baseline. Uses macros defined
-     * at top of MetaPost file (see export_metapost) to correctly
-     * align text. See bug # 332554 */
-    switch (alignment) {
+  MetapostRenderer *renderer = METAPOST_RENDERER (self);
+  gchar height_buf[DTOSTR_BUF_SIZE];
+  gchar px_buf[DTOSTR_BUF_SIZE];
+  gchar py_buf[DTOSTR_BUF_SIZE];
+  gchar red_buf[DTOSTR_BUF_SIZE];
+  gchar green_buf[DTOSTR_BUF_SIZE];
+  gchar blue_buf[DTOSTR_BUF_SIZE];
+
+  set_line_color (renderer, color);
+
+  /* text position is correct for baseline. Uses macros defined
+    * at top of MetaPost file (see export_metapost) to correctly
+    * align text. See bug # 332554 */
+  switch (alignment) {
     case ALIGN_LEFT:
-       fprintf(renderer->file,"  draw");
-       break;
+      fprintf (renderer->file,"  draw");
+      break;
     case ALIGN_CENTER:
-       fprintf(renderer->file,"  draw hcentered");
-       break;
+      fprintf (renderer->file,"  draw hcentered");
+      break;
     case ALIGN_RIGHT:
-       fprintf(renderer->file,"  draw rjust");
-       break;
-    }
-
-    /* Ideally, we would be able to use the "infont" macro to print this label
-     * in the proper font.  Unfortunately, though, metapost is in the habit of
-     * converting spaces into visible spaces, which looks rather yucky.  So we
-     * embed some TeX with \usefont commands instead. */
-       /* Scale text by multiplying text by variable t in metapost */
-    fprintf(renderer->file,
-            " btex {\\usefont{OT1}{%s}{%s}{%s} %s} etex scaled %st shifted (%sx,%sy)",
-            renderer->mp_font, renderer->mp_weight, renderer->mp_slant,
-            text,
-           g_ascii_formatd(height_buf, sizeof(height_buf), "%g", renderer->mp_font_height),
-           mp_dtostr(px_buf, pos->x),
-           mp_dtostr(py_buf, pos->y) );
+      fprintf (renderer->file,"  draw rjust");
+      break;
+    default:
+      g_return_if_reached ();
+  }
 
-    if (!color_equals(&renderer->color, &color_black))
-        fprintf(renderer->file, "\n    withcolor (%s, %s, %s)",
-                g_ascii_formatd(red_buf, sizeof(red_buf), "%5.4f", (gdouble) renderer->color.red),
-                g_ascii_formatd(green_buf, sizeof(green_buf), "%5.4f", (gdouble) renderer->color.green),
-                g_ascii_formatd(blue_buf, sizeof(blue_buf), "%5.4f", (gdouble) renderer->color.blue) );
+  /* Ideally, we would be able to use the "infont" macro to print this label
+    * in the proper font.  Unfortunately, though, metapost is in the habit of
+    * converting spaces into visible spaces, which looks rather yucky.  So we
+    * embed some TeX with \usefont commands instead. */
+  /* Scale text by multiplying text by variable t in metapost */
+  fprintf (renderer->file,
+           " btex {\\usefont{OT1}{%s}{%s}{%s} %s} etex scaled %st shifted (%sx,%sy)",
+           renderer->mp_font, renderer->mp_weight, renderer->mp_slant,
+           text,
+           g_ascii_formatd (height_buf, sizeof (height_buf), "%g", renderer->mp_font_height),
+           mp_dtostr (px_buf, pos->x),
+           mp_dtostr (py_buf, pos->y) );
+
+  if (!color_equals(&renderer->color, &color_black)) {
+      fprintf (renderer->file, "\n    withcolor (%s, %s, %s)",
+               g_ascii_formatd (red_buf, sizeof (red_buf), "%5.4f", (gdouble) renderer->color.red),
+               g_ascii_formatd (green_buf, sizeof (green_buf), "%5.4f", (gdouble) renderer->color.green),
+               g_ascii_formatd (blue_buf, sizeof (blue_buf), "%5.4f", (gdouble) renderer->color.blue) );
+  }
 
-    fprintf(renderer->file,";\n");
+  fprintf (renderer->file,";\n");
 }
 
+
 static void
 draw_text (DiaRenderer *self,
-          Text *text)
+           Text        *text)
 {
   Point pos;
   int i;
   pos = text->position;
 
+  set_font (self, text->font, text->height);
 
-  set_font(self, text->font, text->height);
-
-  for (i=0;i<text->numlines;i++) {
+  for (i = 0; i < text->numlines; i++) {
     TextLine *text_line = text->lines[i];
 
-    draw_string(self,
-                               text_line_get_string(text_line),
-                               &pos,
-                               text->alignment,
-                               &text->color);
+    draw_string (self,
+                 text_line_get_string (text_line),
+                 &pos,
+                 text->alignment,
+                 &text->color);
     pos.y += text->height;
   }
 }
 
+
 static void
 draw_image(DiaRenderer *self,
           Point *point,
diff --git a/plug-ins/pgf/render_pgf.c b/plug-ins/pgf/render_pgf.c
index 0fdbee37..a416c435 100644
--- a/plug-ins/pgf/render_pgf.c
+++ b/plug-ins/pgf/render_pgf.c
@@ -390,124 +390,132 @@ begin_render(DiaRenderer *self, const DiaRectangle *update)
 {
 }
 
+
 static void
-end_render(DiaRenderer *self)
+end_render (DiaRenderer *self)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
+  PgfRenderer *renderer = PGF_RENDERER (self);
 
-    fprintf(renderer->file,"\\end{tikzpicture}\n");
-    fclose(renderer->file);
+  fprintf (renderer->file, "\\end{tikzpicture}\n");
+  fclose (renderer->file);
 }
 
+
 static void
-set_linewidth(DiaRenderer *self, real linewidth)
-{  /* 0 == hairline (thinnest possible line on device) **/
-    PgfRenderer *renderer = PGF_RENDERER(self);
-    gchar d_buf[DTOSTR_BUF_SIZE];
+set_linewidth (DiaRenderer *self, real linewidth)
+{
+  /* 0 == hairline (thinnest possible line on device) **/
+  PgfRenderer *renderer = PGF_RENDERER (self);
+  gchar d_buf[DTOSTR_BUF_SIZE];
 
 
-    fprintf(renderer->file, "\\pgfsetlinewidth{%s\\du}\n",
-           pgf_dtostr(d_buf, (gdouble) linewidth) );
+   fprintf (renderer->file, "\\pgfsetlinewidth{%s\\du}\n",
+            pgf_dtostr(d_buf, (gdouble) linewidth) );
 }
 
+
 static void
-set_linecaps(DiaRenderer *self, LineCaps mode)
+set_linecaps (DiaRenderer *self, LineCaps mode)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
+  PgfRenderer *renderer = PGF_RENDERER(self);
 
-    switch(mode) {
+  switch (mode) {
     case LINECAPS_BUTT:
-       fprintf(renderer->file, "\\pgfsetbuttcap\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetbuttcap\n");
+      break;
     case LINECAPS_ROUND:
-       fprintf(renderer->file, "\\pgfsetroundcap\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetroundcap\n");
+      break;
     case LINECAPS_PROJECTING:
-       fprintf(renderer->file, "\\pgfsetrectcap\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetrectcap\n");
+      break;
+    case LINECAPS_DEFAULT:
     default:
-       fprintf(renderer->file, "\\pgfsetbuttcap\n");
-    }
-
+      fprintf (renderer->file, "\\pgfsetbuttcap\n");
+  }
 }
 
+
 static void
-set_linejoin(DiaRenderer *self, LineJoin mode)
+set_linejoin (DiaRenderer *self, LineJoin mode)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
-    /* int ps_mode; */
+  PgfRenderer *renderer = PGF_RENDERER(self);
+  /* int ps_mode; */
 
-    switch(mode) {
+  switch(mode) {
     case LINEJOIN_DEFAULT:
     case LINEJOIN_MITER:
-       fprintf(renderer->file, "\\pgfsetmiterjoin\n");
-       break;
+      fprintf(renderer->file, "\\pgfsetmiterjoin\n");
+      break;
     case LINEJOIN_ROUND:
-       fprintf(renderer->file, "\\pgfsetroundjoin\n");
-       break;
+      fprintf(renderer->file, "\\pgfsetroundjoin\n");
+      break;
     case LINEJOIN_BEVEL:
-       fprintf(renderer->file, "\\pgfsetbeveljoin\n");
-       break;
+      fprintf(renderer->file, "\\pgfsetbeveljoin\n");
+      break;
     default:
-       fprintf(renderer->file, "\\pgfsetmiterjoin\n");
-    }
-
+      fprintf(renderer->file, "\\pgfsetmiterjoin\n");
+  }
 }
 
+
 static void
-set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
+set_linestyle (DiaRenderer *self, LineStyle mode, real dash_length)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
-    real hole_width;
-    gchar dash_length_buf[DTOSTR_BUF_SIZE];
-    gchar dot_length_buf[DTOSTR_BUF_SIZE];
-    gchar hole_width_buf[DTOSTR_BUF_SIZE];
-    real dot_length;
+  PgfRenderer *renderer = PGF_RENDERER(self);
+  real hole_width;
+  gchar dash_length_buf[DTOSTR_BUF_SIZE];
+  gchar dot_length_buf[DTOSTR_BUF_SIZE];
+  gchar hole_width_buf[DTOSTR_BUF_SIZE];
+  real dot_length;
+
+  if (dash_length < 0.001) {
+    dash_length = 0.001;
+  }
 
-    if (dash_length<0.001)
-       dash_length = 0.001;
-    /* dot = 20% of len - elsewhere 10% */
-    dot_length = dash_length * 0.2;
+  /* dot = 20% of len - elsewhere 10% */
+  dot_length = dash_length * 0.2;
 
-    switch(mode) {
+  switch(mode) {
     case LINESTYLE_DEFAULT:
     case LINESTYLE_SOLID:
-       fprintf(renderer->file, "\\pgfsetdash{}{0pt}\n");
-       break;
+    default:
+      fprintf (renderer->file, "\\pgfsetdash{}{0pt}\n");
+      break;
     case LINESTYLE_DASHED:
-       pgf_dtostr(dash_length_buf, dash_length);
-       fprintf(renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}}{0\\du}\n",
-               dash_length_buf,
-               dash_length_buf);
-       break;
+      pgf_dtostr (dash_length_buf, dash_length);
+      fprintf (renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}}{0\\du}\n",
+               dash_length_buf,
+               dash_length_buf);
+      break;
     case LINESTYLE_DASH_DOT:
-       hole_width = ( dash_length -  dot_length) / 2.0;
-       pgf_dtostr(hole_width_buf,hole_width);
-       pgf_dtostr(dot_length_buf, dot_length);
-       pgf_dtostr(dash_length_buf, dash_length);
-       fprintf(renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}{%s\\du}{%s\\du}}{0cm}\n",
-               dash_length_buf,
-               hole_width_buf,
-               dot_length_buf,
-               hole_width_buf );
-       break;
+      hole_width = ( dash_length -  dot_length) / 2.0;
+      pgf_dtostr (hole_width_buf, hole_width);
+      pgf_dtostr (dot_length_buf, dot_length);
+      pgf_dtostr (dash_length_buf, dash_length);
+      fprintf (renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}{%s\\du}{%s\\du}}{0cm}\n",
+               dash_length_buf,
+               hole_width_buf,
+               dot_length_buf,
+               hole_width_buf );
+      break;
     case LINESTYLE_DASH_DOT_DOT:
-       hole_width = ( dash_length - 2.0* dot_length) / 3.0;
-       pgf_dtostr(hole_width_buf,hole_width);
-       pgf_dtostr(dot_length_buf, dot_length);
-       pgf_dtostr(dash_length_buf, dash_length);
-       fprintf(renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}{%s\\du}{%s\\du}{%s\\du}{%s\\du}}{0cm}\n",
-               dash_length_buf,
-               hole_width_buf,
-               dot_length_buf,
-               hole_width_buf,
-               dot_length_buf,
-               hole_width_buf );
-       break;
+      hole_width = ( dash_length - 2.0* dot_length) / 3.0;
+      pgf_dtostr (hole_width_buf, hole_width);
+      pgf_dtostr (dot_length_buf, dot_length);
+      pgf_dtostr (dash_length_buf, dash_length);
+      fprintf (renderer->file, "\\pgfsetdash{{%s\\du}{%s\\du}{%s\\du}{%s\\du}{%s\\du}{%s\\du}}{0cm}\n",
+               dash_length_buf,
+               hole_width_buf,
+               dot_length_buf,
+               hole_width_buf,
+               dot_length_buf,
+               hole_width_buf );
+      break;
     case LINESTYLE_DOTTED:
-       pgf_dtostr(dot_length_buf, dot_length);
-       fprintf(renderer->file, "\\pgfsetdash{{\\pgflinewidth}{%s\\du}}{0cm}\n", dot_length_buf);
-       break;
+      pgf_dtostr(dot_length_buf, dot_length);
+      fprintf(renderer->file, "\\pgfsetdash{{\\pgflinewidth}{%s\\du}}{0cm}\n", dot_length_buf);
+      break;
     }
 }
 
@@ -823,132 +831,213 @@ draw_ellipse(DiaRenderer *self,
        pgf_ellipse(renderer,center,width,height,stroke,FALSE);
 }
 
+
 static void
 pgf_bezier (PgfRenderer *renderer,
-           BezPoint *points,
-           gint numpoints,
-           Color *fill, Color *stroke,
-           gboolean closed)
+            BezPoint    *points,
+            gint         numpoints,
+            Color       *fill,
+            Color       *stroke,
+            gboolean     closed)
 {
-    gint i;
-    gchar p1x_buf[DTOSTR_BUF_SIZE];
-    gchar p1y_buf[DTOSTR_BUF_SIZE];
-    gchar p2x_buf[DTOSTR_BUF_SIZE];
-    gchar p2y_buf[DTOSTR_BUF_SIZE];
-    gchar p3x_buf[DTOSTR_BUF_SIZE];
-    gchar p3y_buf[DTOSTR_BUF_SIZE];
+  gint i;
+  gchar p1x_buf[DTOSTR_BUF_SIZE];
+  gchar p1y_buf[DTOSTR_BUF_SIZE];
+  gchar p2x_buf[DTOSTR_BUF_SIZE];
+  gchar p2y_buf[DTOSTR_BUF_SIZE];
+  gchar p3x_buf[DTOSTR_BUF_SIZE];
+  gchar p3y_buf[DTOSTR_BUF_SIZE];
+
+  if (fill) {
+    set_fill_color (renderer, fill);
+  }
+  if (stroke) {
+    set_line_color (renderer, stroke);
+  }
 
-    if (fill)
-       set_fill_color(renderer,fill);
-    if (stroke)
-       set_line_color(renderer,stroke);
-
-    if (points[0].type != BEZ_MOVE_TO)
-       g_warning("first BezPoint must be a BEZ_MOVE_TO");
-
-    for (i = 0; i < numpoints; i++)
-       switch (points[i].type) {
-       case BEZ_MOVE_TO:
-           fprintf(renderer->file, "\\pgfpathmoveto{\\pgfpoint{%s\\du}{%s\\du}}\n",
-               pgf_dtostr(p1x_buf,points[i].p1.x),
-               pgf_dtostr(p1y_buf,points[i].p1.y) );
-           break;
-       case BEZ_LINE_TO:
-           fprintf(renderer->file, "\\pgfpathlineto{\\pgfpoint{%s\\du}{%s\\du}}\n",
-                   pgf_dtostr(p1x_buf,points[i].p1.x),
-                   pgf_dtostr(p1y_buf,points[i].p1.y) );
-           break;
-       case BEZ_CURVE_TO:
-           fprintf(renderer->file, "\\pgfpathcurveto{\\pgfpoint{%s\\du}{%s\\du}}"
-           "{\\pgfpoint{%s\\du}{%s\\du}}"
-           "{\\pgfpoint{%s\\du}{%s\\du}}\n",
-                   pgf_dtostr(p1x_buf,points[i].p1.x),
-                   pgf_dtostr(p1y_buf,points[i].p1.y),
-                   pgf_dtostr(p2x_buf,points[i].p2.x),
-                   pgf_dtostr(p2y_buf,points[i].p2.y),
-                   pgf_dtostr(p3x_buf,points[i].p3.x),
-                   pgf_dtostr(p3y_buf,points[i].p3.y) );
-           break;
-       }
+  if (points[0].type != BEZ_MOVE_TO) {
+    g_warning("first BezPoint must be a BEZ_MOVE_TO");
+  }
 
-    if (closed)
-       fprintf(renderer->file, "\\pgfpathclose\n");
-    if (fill && stroke)
-       fprintf(renderer->file, "\\pgfusepath{fill,stroke}\n");
-    else if (fill)
-       fprintf(renderer->file, "\\pgfusepath{fill}\n");
-/*     fill[fillstyle=solid,fillcolor=diafillcolor,linecolor=diafillcolor]}\n"); */
-    else if (stroke)
-       fprintf(renderer->file, "\\pgfusepath{stroke}\n");
+  for (i = 0; i < numpoints; i++) {
+    switch (points[i].type) {
+      case BEZ_MOVE_TO:
+        fprintf (renderer->file,
+                 "\\pgfpathmoveto{\\pgfpoint{%s\\du}{%s\\du}}\n",
+                 pgf_dtostr (p1x_buf, points[i].p1.x),
+                 pgf_dtostr (p1y_buf, points[i].p1.y) );
+        break;
+      case BEZ_LINE_TO:
+        fprintf (renderer->file,
+                 "\\pgfpathlineto{\\pgfpoint{%s\\du}{%s\\du}}\n",
+                 pgf_dtostr (p1x_buf,points[i].p1.x),
+                 pgf_dtostr (p1y_buf,points[i].p1.y) );
+        break;
+      case BEZ_CURVE_TO:
+        fprintf (renderer->file,
+                 "\\pgfpathcurveto{\\pgfpoint{%s\\du}{%s\\du}}"
+                 "{\\pgfpoint{%s\\du}{%s\\du}}"
+                 "{\\pgfpoint{%s\\du}{%s\\du}}\n",
+                 pgf_dtostr (p1x_buf, points[i].p1.x),
+                 pgf_dtostr (p1y_buf, points[i].p1.y),
+                 pgf_dtostr (p2x_buf, points[i].p2.x),
+                 pgf_dtostr (p2y_buf, points[i].p2.y),
+                 pgf_dtostr (p3x_buf, points[i].p3.x),
+                 pgf_dtostr (p3y_buf, points[i].p3.y) );
+        break;
+      default:
+        g_return_if_reached ();
+    }
+  }
+
+  if (closed) {
+    fprintf(renderer->file, "\\pgfpathclose\n");
+  }
+
+  if (fill && stroke) {
+    fprintf(renderer->file, "\\pgfusepath{fill,stroke}\n");
+  } else if (fill) {
+    fprintf (renderer->file, "\\pgfusepath{fill}\n");
+    /* fill[fillstyle=solid,fillcolor=diafillcolor,linecolor=diafillcolor]}\n"); */
+  } else if (stroke) {
+    fprintf (renderer->file, "\\pgfusepath{stroke}\n");
+  }
 }
 
+
 static void
-draw_bezier(DiaRenderer *self,
-           BezPoint *points,
-           int numpoints, /* numpoints = 4+3*n, n=>0 */
-           Color *color)
+draw_bezier (DiaRenderer *self,
+             BezPoint    *points,
+             int          numpoints, /* numpoints = 4+3*n, n=>0 */
+             Color       *color)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
+  PgfRenderer *renderer = PGF_RENDERER(self);
 
-    pgf_bezier(renderer,points,numpoints,NULL,color,FALSE);
+  pgf_bezier (renderer, points, numpoints, NULL, color, FALSE);
 }
 
 
-
 static void
 draw_beziergon (DiaRenderer *self,
-               BezPoint *points,
-               int numpoints,
-               Color *fill,
-               Color *stroke)
+                BezPoint    *points,
+                int          numpoints,
+                Color       *fill,
+                Color       *stroke)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
+  PgfRenderer *renderer = PGF_RENDERER (self);
 
-    pgf_bezier(renderer,points,numpoints,fill,stroke,TRUE);
+  pgf_bezier (renderer, points, numpoints, fill, stroke, TRUE);
 }
 
+
 static int
-set_arrows(PgfRenderer *renderer, Arrow *start_arrow, Arrow *end_arrow)
+set_arrows (PgfRenderer *renderer, Arrow *start_arrow, Arrow *end_arrow)
 {
-    int modified = 2|1; /*=3*/
-    fprintf(renderer->file, "%% was here!!!\n");
-    switch (start_arrow->type)
-    {
+  int modified = 2|1; /*=3*/
+  fprintf (renderer->file, "%% was here!!!\n");
+  switch (start_arrow->type) {
     case ARROW_NONE:
-       break;
+      break;
     case ARROW_LINES:
-       fprintf(renderer->file, "\\pgfsetarrowsstart{to}\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetarrowsstart{to}\n");
+      break;
     case ARROW_FILLED_TRIANGLE:
-       fprintf(renderer->file, "\\pgfsetarrowsstart{latex}\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetarrowsstart{latex}\n");
+      break;
     case ARROW_FILLED_CONCAVE:
-       fprintf(renderer->file, "\\pgfsetarrowsstart{stealth}\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetarrowsstart{stealth}\n");
+      break;
+    case ARROW_HOLLOW_TRIANGLE:
+    case ARROW_HOLLOW_DIAMOND:
+    case ARROW_FILLED_DIAMOND:
+    case ARROW_HALF_HEAD:
+    case ARROW_SLASHED_CROSS:
+    case ARROW_FILLED_ELLIPSE:
+    case ARROW_HOLLOW_ELLIPSE:
+    case ARROW_DOUBLE_HOLLOW_TRIANGLE:
+    case ARROW_DOUBLE_FILLED_TRIANGLE:
+    case ARROW_UNFILLED_TRIANGLE:
+    case ARROW_FILLED_DOT:
+    case ARROW_DIMENSION_ORIGIN:
+    case ARROW_BLANKED_DOT:
+    case ARROW_FILLED_BOX:
+    case ARROW_BLANKED_BOX:
+    case ARROW_SLASH_ARROW:
+    case ARROW_INTEGRAL_SYMBOL:
+    case ARROW_CROW_FOOT:
+    case ARROW_CROSS:
+    case ARROW_BLANKED_CONCAVE:
+    case ARROW_ROUNDED:
+    case ARROW_HALF_DIAMOND:
+    case ARROW_OPEN_ROUNDED:
+    case ARROW_FILLED_DOT_N_TRIANGLE:
+    case ARROW_ONE_OR_MANY:
+    case ARROW_NONE_OR_MANY:
+    case ARROW_ONE_OR_NONE:
+    case ARROW_ONE_EXACTLY:
+    case ARROW_BACKSLASH:
+    case ARROW_THREE_DOTS:
+    case MAX_ARROW_TYPE:
     default:
-       modified ^= 2;
-    }
-    if (modified & 2) start_arrow->type = ARROW_NONE;
+      modified ^= 2;
+  }
 
-    switch (end_arrow->type)
-    {
+  if (modified & 2) {
+    start_arrow->type = ARROW_NONE;
+  }
+
+  switch (end_arrow->type) {
     case ARROW_NONE:
-       break;
+      break;
     case ARROW_LINES:
-       fprintf(renderer->file, "\\pgfsetarrowsend{to}\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetarrowsend{to}\n");
+      break;
     case ARROW_FILLED_TRIANGLE:
-       fprintf(renderer->file, "\\pgfsetarrowsend{latex}\n");
-       break;
+      fprintf (renderer->file, "\\pgfsetarrowsend{latex}\n");
+      break;
     case ARROW_FILLED_CONCAVE:
-       fprintf(renderer->file, "\\pgfsetarrowsend{stealth}\n");
-       break;
+      fprintf( renderer->file, "\\pgfsetarrowsend{stealth}\n");
+      break;
+    case ARROW_HOLLOW_TRIANGLE:
+    case ARROW_HOLLOW_DIAMOND:
+    case ARROW_FILLED_DIAMOND:
+    case ARROW_HALF_HEAD:
+    case ARROW_SLASHED_CROSS:
+    case ARROW_FILLED_ELLIPSE:
+    case ARROW_HOLLOW_ELLIPSE:
+    case ARROW_DOUBLE_HOLLOW_TRIANGLE:
+    case ARROW_DOUBLE_FILLED_TRIANGLE:
+    case ARROW_UNFILLED_TRIANGLE:
+    case ARROW_FILLED_DOT:
+    case ARROW_DIMENSION_ORIGIN:
+    case ARROW_BLANKED_DOT:
+    case ARROW_FILLED_BOX:
+    case ARROW_BLANKED_BOX:
+    case ARROW_SLASH_ARROW:
+    case ARROW_INTEGRAL_SYMBOL:
+    case ARROW_CROW_FOOT:
+    case ARROW_CROSS:
+    case ARROW_BLANKED_CONCAVE:
+    case ARROW_ROUNDED:
+    case ARROW_HALF_DIAMOND:
+    case ARROW_OPEN_ROUNDED:
+    case ARROW_FILLED_DOT_N_TRIANGLE:
+    case ARROW_ONE_OR_MANY:
+    case ARROW_NONE_OR_MANY:
+    case ARROW_ONE_OR_NONE:
+    case ARROW_ONE_EXACTLY:
+    case ARROW_BACKSLASH:
+    case ARROW_THREE_DOTS:
+    case MAX_ARROW_TYPE:
     default:
        modified ^= 1;
-    }
-    if (modified & 1) end_arrow->type = ARROW_NONE;
+  }
+
+  if (modified & 1) {
+    end_arrow->type = ARROW_NONE;
+  }
 
-    return modified; /* =0 if no native arrow is used */
+  return modified; /* =0 if no native arrow is used */
 }
 
 static void
@@ -1196,40 +1285,44 @@ tex_escape_string(const gchar *src, DiaContext *ctx)
     return p;
 }
 
+
 static void
-draw_string(DiaRenderer *self,
-           const char *text,
-           Point *pos, Alignment alignment,
-           Color *color)
+draw_string (DiaRenderer *self,
+             const char  *text,
+             Point       *pos,
+             Alignment    alignment,
+             Color       *color)
 {
-    PgfRenderer *renderer = PGF_RENDERER(self);
-    gchar *escaped = tex_escape_string(text, renderer->ctx);
-    gchar px_buf[DTOSTR_BUF_SIZE];
-    gchar py_buf[DTOSTR_BUF_SIZE];
+  PgfRenderer *renderer = PGF_RENDERER(self);
+  gchar *escaped = tex_escape_string (text, renderer->ctx);
+  gchar px_buf[DTOSTR_BUF_SIZE];
+  gchar py_buf[DTOSTR_BUF_SIZE];
 
-    set_line_color(renderer,color);
-    set_fill_color(renderer,color);
+  set_line_color (renderer,color);
+  set_fill_color (renderer,color);
 
-    fprintf(renderer->file,"\\node");
-    switch (alignment) {
+  fprintf (renderer->file,"\\node");
+  switch (alignment) {
     case ALIGN_LEFT:
-       fprintf(renderer->file,
-               "[anchor=base west,inner sep=0pt,outer sep=0pt,color=dialinecolor]");
-       break;
+      fprintf (renderer->file,
+        "[anchor=base west,inner sep=0pt,outer sep=0pt,color=dialinecolor]");
+      break;
     case ALIGN_CENTER:
-       fprintf(renderer->file,
-               "[anchor=base,inner sep=0pt, outer sep=0pt,color=dialinecolor]");
-       break;
+      fprintf (renderer->file,
+        "[anchor=base,inner sep=0pt, outer sep=0pt,color=dialinecolor]");
+      break;
     case ALIGN_RIGHT:
-       fprintf(renderer->file,
-               "[anchor=base east,inner sep=0pt, outer sep=0pt,color=dialinecolor]");
-       break;
-    }
-    fprintf(renderer->file," at (%s\\du,%s\\du){%s};\n",
-           pgf_dtostr(px_buf,pos->x),
-           pgf_dtostr(py_buf,pos->y),
-           escaped);
-    g_free(escaped);
+      fprintf (renderer->file,
+        "[anchor=base east,inner sep=0pt, outer sep=0pt,color=dialinecolor]");
+      break;
+    default:
+      g_return_if_reached ();
+  }
+  fprintf (renderer->file, " at (%s\\du,%s\\du){%s};\n",
+            pgf_dtostr (px_buf,pos->x),
+            pgf_dtostr (py_buf,pos->y),
+            escaped);
+  g_free (escaped);
 }
 
 static void
diff --git a/plug-ins/postscript/diapsrenderer.c b/plug-ins/postscript/diapsrenderer.c
index 1f629ec8..846c8d8f 100644
--- a/plug-ins/postscript/diapsrenderer.c
+++ b/plug-ins/postscript/diapsrenderer.c
@@ -207,8 +207,9 @@ set_linejoin(DiaRenderer *self, LineJoin mode)
   fprintf(renderer->file, "%d slj\n", ps_mode);
 }
 
+
 static void
-set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
+set_linestyle (DiaRenderer *self, LineStyle mode, real dash_length)
 {
   DiaPsRenderer *renderer = DIA_PS_RENDERER(self);
   real hole_width;
@@ -217,63 +218,68 @@ set_linestyle(DiaRenderer *self, LineStyle mode, real dash_length)
   gchar holew_buf[DTOSTR_BUF_SIZE];
   real dot_length;
 
-  if (dash_length<0.001)
-     dash_length = 0.001;
+  if (dash_length < 0.001) {
+    dash_length = 0.001;
+  }
 
   dot_length = dash_length*0.2; /* dot = 20% of len */
 
-  switch(mode) {
-  case LINESTYLE_DEFAULT:
-  case LINESTYLE_SOLID:
-    fprintf(renderer->file, "[] 0 sd\n");
-    break;
-  case LINESTYLE_DASHED:
-    fprintf(renderer->file, "[%s] 0 sd\n",
-           psrenderer_dtostr(dashl_buf, dash_length) );
-    break;
-  case LINESTYLE_DASH_DOT:
-    hole_width = (dash_length - dot_length) / 2.0;
-    psrenderer_dtostr(holew_buf, hole_width);
-    psrenderer_dtostr(dashl_buf, dash_length);
-    psrenderer_dtostr(dotl_buf, dot_length);
-    fprintf(renderer->file, "[%s %s %s %s] 0 sd\n",
-           dashl_buf,
-           holew_buf,
-           dotl_buf,
-           holew_buf );
-    break;
-  case LINESTYLE_DASH_DOT_DOT:
-    hole_width = (dash_length - 2.0*dot_length) / 3.0;
-    psrenderer_dtostr(holew_buf, hole_width);
-    psrenderer_dtostr(dashl_buf, dash_length);
-    psrenderer_dtostr(dotl_buf, dot_length);
-    fprintf(renderer->file, "[%s %s %s %s %s %s] 0 sd\n",
-           dashl_buf,
-           holew_buf,
-           dotl_buf,
-           holew_buf,
-           dotl_buf,
-           holew_buf );
-    break;
-  case LINESTYLE_DOTTED:
-    fprintf(renderer->file, "[%s] 0 sd\n",
-           psrenderer_dtostr(dotl_buf, dot_length) );
-    break;
+  switch (mode) {
+    case LINESTYLE_DEFAULT:
+    case LINESTYLE_SOLID:
+      fprintf (renderer->file, "[] 0 sd\n");
+      break;
+    case LINESTYLE_DASHED:
+      fprintf (renderer->file, "[%s] 0 sd\n",
+               psrenderer_dtostr (dashl_buf, dash_length) );
+      break;
+    case LINESTYLE_DASH_DOT:
+      hole_width = (dash_length - dot_length) / 2.0;
+      psrenderer_dtostr (holew_buf, hole_width);
+      psrenderer_dtostr (dashl_buf, dash_length);
+      psrenderer_dtostr (dotl_buf, dot_length);
+      fprintf (renderer->file, "[%s %s %s %s] 0 sd\n",
+               dashl_buf,
+               holew_buf,
+               dotl_buf,
+               holew_buf );
+      break;
+    case LINESTYLE_DASH_DOT_DOT:
+      hole_width = (dash_length - 2.0*dot_length) / 3.0;
+      psrenderer_dtostr (holew_buf, hole_width);
+      psrenderer_dtostr (dashl_buf, dash_length);
+      psrenderer_dtostr (dotl_buf, dot_length);
+      fprintf (renderer->file, "[%s %s %s %s %s %s] 0 sd\n",
+               dashl_buf,
+               holew_buf,
+               dotl_buf,
+               holew_buf,
+               dotl_buf,
+               holew_buf );
+      break;
+    case LINESTYLE_DOTTED:
+      fprintf (renderer->file, "[%s] 0 sd\n",
+               psrenderer_dtostr (dotl_buf, dot_length) );
+      break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 static void
-set_fillstyle(DiaRenderer *self, FillStyle mode)
+set_fillstyle (DiaRenderer *self, FillStyle mode)
 {
-  switch(mode) {
-  case FILLSTYLE_SOLID:
-    break;
-  default:
-    g_warning ("%s: Unsupported fill mode specified!",
-              G_OBJECT_CLASS_NAME (G_OBJECT_GET_CLASS (self)));
+  switch (mode) {
+    case FILLSTYLE_SOLID:
+      break;
+    default:
+      g_warning ("%s: Unsupported fill mode specified!",
+                 G_OBJECT_CLASS_NAME (G_OBJECT_GET_CLASS (self)));
   }
 }
 
+
 static void
 set_font (DiaRenderer *self, DiaFont *font, real height)
 {
@@ -467,25 +473,33 @@ psrenderer_ellipse(DiaPsRenderer *renderer,
          filled ? "f" : "cp s" );
 }
 
+
 static void
-draw_ellipse(DiaRenderer *self,
-            Point *center,
-            real width, real height,
-            Color *fill, Color *stroke)
+draw_ellipse (DiaRenderer *self,
+              Point       *center,
+              real         width,
+              real         height,
+              Color       *fill,
+              Color       *stroke)
 {
-  DiaPsRenderer *renderer = DIA_PS_RENDERER(self);
-  if (fill)
-    psrenderer_ellipse(renderer, center, width, height, fill, TRUE);
-  if (stroke)
-    psrenderer_ellipse(renderer, center, width, height, stroke, FALSE);
+  DiaPsRenderer *renderer = DIA_PS_RENDERER (self);
+
+  if (fill) {
+    psrenderer_ellipse (renderer, center, width, height, fill, TRUE);
+  }
+
+  if (stroke) {
+    psrenderer_ellipse (renderer, center, width, height, stroke, FALSE);
+  }
 }
 
+
 static void
-psrenderer_bezier(DiaPsRenderer *renderer,
-                 BezPoint *points,
-                 gint numpoints,
-                 Color *color,
-                 gboolean filled)
+psrenderer_bezier (DiaPsRenderer *renderer,
+                   BezPoint      *points,
+                   gint           numpoints,
+                   Color         *color,
+                   gboolean       filled)
 {
   gint  i;
   gchar p1x_buf[DTOSTR_BUF_SIZE];
@@ -495,69 +509,81 @@ psrenderer_bezier(DiaPsRenderer *renderer,
   gchar p3x_buf[DTOSTR_BUF_SIZE];
   gchar p3y_buf[DTOSTR_BUF_SIZE];
 
-  lazy_setcolor(renderer,color);
+  lazy_setcolor (renderer,color);
 
-  if (points[0].type != BEZ_MOVE_TO)
-    g_warning("first BezPoint must be a BEZ_MOVE_TO");
+  if (points[0].type != BEZ_MOVE_TO) {
+    g_warning ("first BezPoint must be a BEZ_MOVE_TO");
+  }
 
-  fprintf(renderer->file, "n %s %s m",
-         psrenderer_dtostr(p1x_buf, (gdouble) points[0].p1.x),
-         psrenderer_dtostr(p1y_buf, (gdouble) points[0].p1.y) );
+  fprintf (renderer->file, "n %s %s m",
+           psrenderer_dtostr (p1x_buf, (gdouble) points[0].p1.x),
+           psrenderer_dtostr (p1y_buf, (gdouble) points[0].p1.y) );
 
-  for (i = 1; i < numpoints; i++)
+  for (i = 1; i < numpoints; i++) {
     switch (points[i].type) {
-    case BEZ_MOVE_TO:
-      g_warning("only first BezPoint can be a BEZ_MOVE_TO");
-      break;
-    case BEZ_LINE_TO:
-      fprintf(renderer->file, " %s %s l",
-             psrenderer_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-             psrenderer_dtostr(p1y_buf, (gdouble) points[i].p1.y) );
-      break;
-    case BEZ_CURVE_TO:
-      fprintf(renderer->file, " %s %s %s %s %s %s c",
-             psrenderer_dtostr(p1x_buf, (gdouble) points[i].p1.x),
-             psrenderer_dtostr(p1y_buf, (gdouble) points[i].p1.y),
-             psrenderer_dtostr(p2x_buf, (gdouble) points[i].p2.x),
-             psrenderer_dtostr(p2y_buf, (gdouble) points[i].p2.y),
-             psrenderer_dtostr(p3x_buf, (gdouble) points[i].p3.x),
-             psrenderer_dtostr(p3y_buf, (gdouble) points[i].p3.y) );
-      break;
+      case BEZ_MOVE_TO:
+        g_warning ("only first BezPoint can be a BEZ_MOVE_TO");
+        break;
+      case BEZ_LINE_TO:
+        fprintf (renderer->file, " %s %s l",
+                psrenderer_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                psrenderer_dtostr (p1y_buf, (gdouble) points[i].p1.y) );
+        break;
+      case BEZ_CURVE_TO:
+        fprintf (renderer->file, " %s %s %s %s %s %s c",
+                psrenderer_dtostr (p1x_buf, (gdouble) points[i].p1.x),
+                psrenderer_dtostr (p1y_buf, (gdouble) points[i].p1.y),
+                psrenderer_dtostr (p2x_buf, (gdouble) points[i].p2.x),
+                psrenderer_dtostr (p2y_buf, (gdouble) points[i].p2.y),
+                psrenderer_dtostr (p3x_buf, (gdouble) points[i].p3.x),
+                psrenderer_dtostr (p3y_buf, (gdouble) points[i].p3.y) );
+        break;
+      default:
+        g_return_if_reached ();
     }
+  }
 
-  if (filled)
-    fprintf(renderer->file, " ef\n");
-  else
-    fprintf(renderer->file, " s\n");
+  if (filled) {
+    fprintf (renderer->file, " ef\n");
+  } else {
+    fprintf (renderer->file, " s\n");
+  }
 }
 
+
 static void
-draw_bezier(DiaRenderer *self,
-           BezPoint *points,
-           int numpoints, /* numpoints = 4+3*n, n=>0 */
-           Color *color)
+draw_bezier (DiaRenderer *self,
+             BezPoint    *points,
+             int          numpoints, /* numpoints = 4+3*n, n=>0 */
+             Color       *color)
 {
-  DiaPsRenderer *renderer = DIA_PS_RENDERER(self);
-  psrenderer_bezier(renderer, points, numpoints, color, FALSE);
+  DiaPsRenderer *renderer = DIA_PS_RENDERER (self);
+
+  psrenderer_bezier (renderer, points, numpoints, color, FALSE);
 }
 
+
 static void
 draw_beziergon (DiaRenderer *self,
-               BezPoint *points, /* Last point must be same as first point */
-               int numpoints,
-               Color *fill,
-               Color *stroke)
+                /* Last point must be same as first point */
+                BezPoint    *points,
+                int          numpoints,
+                Color       *fill,
+                Color       *stroke)
 {
-  DiaPsRenderer *renderer = DIA_PS_RENDERER(self);
-  if (fill)
-    psrenderer_bezier(renderer, points, numpoints, fill, TRUE);
+  DiaPsRenderer *renderer = DIA_PS_RENDERER (self);
+  if (fill) {
+    psrenderer_bezier (renderer, points, numpoints, fill, TRUE);
+  }
   /* XXX: still not closing the path */
-  if (stroke)
-    psrenderer_bezier(renderer, points, numpoints, stroke, FALSE);
+  if (stroke) {
+    psrenderer_bezier (renderer, points, numpoints, stroke, FALSE);
+  }
 }
 
+
 static char*
-ps_convert_string(const char *text, DiaContext *ctx)
+ps_convert_string (const char *text, DiaContext *ctx)
 {
   char *buffer;
   gchar *localestr;
@@ -565,58 +591,63 @@ ps_convert_string(const char *text, DiaContext *ctx)
   gint len;
   GError * error = NULL;
 
-  localestr = g_convert(text, -1, "LATIN1", "UTF-8", NULL, NULL, &error);
+  localestr = g_convert (text, -1, "LATIN1", "UTF-8", NULL, NULL, &error);
 
   if (localestr == NULL) {
-    dia_context_add_message(ctx, "Can't convert string %s: %s\n", text, error->message);
-    localestr = g_strdup(text);
+    dia_context_add_message (ctx, "Can't convert string %s: %s\n",
+                             text, error->message);
+    localestr = g_strdup (text);
   }
 
   /* Escape all '(' and ')':  */
-  buffer = g_malloc(2*strlen(localestr)+1);
+  buffer = g_malloc (2 * strlen (localestr) + 1);
   *buffer = 0;
   str = localestr;
   while (*str != 0) {
-    len = strcspn(str,"()\\");
-    strncat(buffer, str, len);
+    len = strcspn (str,"()\\");
+    strncat (buffer, str, len);
     str += len;
     if (*str != 0) {
-      strcat(buffer,"\\");
-      strncat(buffer, str, 1);
+      strcat (buffer,"\\");
+      strncat (buffer, str, 1);
       str++;
     }
   }
-  g_free(localestr);
+  g_free (localestr);
   return buffer;
 }
 
+
 static void
 put_text_alignment (DiaPsRenderer *renderer,
-                   Alignment alignment,
-                   Point *pos)
+                    Alignment      alignment,
+                    Point         *pos)
 {
   gchar px_buf[DTOSTR_BUF_SIZE];
   gchar py_buf[DTOSTR_BUF_SIZE];
 
   switch (alignment) {
-  case ALIGN_LEFT:
-    fprintf(renderer->file, "%s %s m\n",
-           psrenderer_dtostr(px_buf, pos->x),
-           psrenderer_dtostr(py_buf, pos->y) );
-    break;
-  case ALIGN_CENTER:
-    fprintf(renderer->file, "dup sw 2 div %s ex sub %s m\n",
-           psrenderer_dtostr(px_buf, pos->x),
-           psrenderer_dtostr(py_buf, pos->y) );
-    break;
-  case ALIGN_RIGHT:
-    fprintf(renderer->file, "dup sw %s ex sub %s m\n",
-           psrenderer_dtostr(px_buf, pos->x),
-           psrenderer_dtostr(py_buf, pos->y) );
-    break;
+    case ALIGN_LEFT:
+      fprintf (renderer->file, "%s %s m\n",
+               psrenderer_dtostr (px_buf, pos->x),
+               psrenderer_dtostr (py_buf, pos->y) );
+      break;
+    case ALIGN_CENTER:
+      fprintf (renderer->file, "dup sw 2 div %s ex sub %s m\n",
+               psrenderer_dtostr (px_buf, pos->x),
+               psrenderer_dtostr (py_buf, pos->y) );
+      break;
+    case ALIGN_RIGHT:
+      fprintf (renderer->file, "dup sw %s ex sub %s m\n",
+               psrenderer_dtostr (px_buf, pos->x),
+               psrenderer_dtostr (py_buf, pos->y) );
+      break;
+    default:
+      g_return_if_reached ();
   }
 }
 
+
 static void
 draw_string(DiaRenderer *self,
            const char *text,
diff --git a/plug-ins/python/pydia-render.c b/plug-ins/python/pydia-render.c
index f4efb7e1..7dfa647f 100644
--- a/plug-ins/python/pydia-render.c
+++ b/plug-ins/python/pydia-render.c
@@ -980,12 +980,14 @@ draw_string(DiaRenderer *renderer,
   PyObject *func, *res, *arg, *self = PYDIA_RENDERER (renderer);
 
   switch (alignment) {
-  case ALIGN_LEFT:
-    break;
-  case ALIGN_CENTER:
-    break;
-  case ALIGN_RIGHT:
-    break;
+    case ALIGN_LEFT:
+      break;
+    case ALIGN_CENTER:
+      break;
+    case ALIGN_RIGHT:
+      break;
+    default:
+      break;
   }
 
   func = PyObject_GetAttrString (self, "draw_string");
diff --git a/plug-ins/svg/render_svg.c b/plug-ins/svg/render_svg.c
index fa18f685..2a4e0594 100644
--- a/plug-ins/svg/render_svg.c
+++ b/plug-ins/svg/render_svg.c
@@ -423,15 +423,17 @@ node_set_text_style (xmlNodePtr      node,
    * 'right' for those.
    */
   switch (alignment) {
-  case ALIGN_LEFT:
-    g_string_append (style, ";text-anchor:start");
-    break;
-  case ALIGN_CENTER:
-    g_string_append (style, ";text-anchor:middle");
-    break;
-  case ALIGN_RIGHT:
-    g_string_append (style, ";text-anchor:end");
-    break;
+    case ALIGN_LEFT:
+      g_string_append (style, ";text-anchor:start");
+      break;
+    case ALIGN_CENTER:
+      g_string_append (style, ";text-anchor:middle");
+      break;
+    case ALIGN_RIGHT:
+      g_string_append (style, ";text-anchor:end");
+      break;
+    default:
+      g_return_if_reached ();
   }
 #if 0 /* would need a unit according to https://bugzilla.mozilla.org/show_bug.cgi?id=707071#c4 */
   tmp = g_strdup_printf("%s;font-size:%s", style,
@@ -440,20 +442,22 @@ node_set_text_style (xmlNodePtr      node,
   style = tmp;
 #else
   /* font-size as attribute can work like the other length w/o unit */
-  dia_svg_dtostr(d_buf, font_size);
-  xmlSetProp(node, (const xmlChar *)"font-size", (xmlChar *) d_buf);
+  dia_svg_dtostr (d_buf, font_size);
+  xmlSetProp (node, (const xmlChar *) "font-size", (xmlChar *) d_buf);
 #endif
 
   if (font) {
-     g_string_append_printf (style, ";font-family:%s;font-style:%s;font-weight:%s",
-                            strcmp(family, "sans") == 0 ? "sans-serif" : family,
-                            dia_font_get_slant_string(font),
-                            dia_font_get_weight_string(font));
+     g_string_append_printf (style,
+                             ";font-family:%s;font-style:%s;font-weight:%s",
+                             strcmp (family, "sans") == 0 ? "sans-serif" : family,
+                             dia_font_get_slant_string (font),
+                             dia_font_get_weight_string (font));
   }
-  xmlSetProp(node, (xmlChar *)"style", (xmlChar *)style->str);
+  xmlSetProp (node, (xmlChar *) "style", (xmlChar *) style->str);
   g_string_free (style, TRUE);
 }
 
+
 /*!
  * To minimize impact of this deprecated attribute we set it as locally as
  * possible and only if it is needed at all.
diff --git a/plug-ins/svg/svg-import.c b/plug-ins/svg/svg-import.c
index 56ba4eae..5fc94502 100644
--- a/plug-ins/svg/svg-import.c
+++ b/plug-ins/svg/svg-import.c
@@ -284,6 +284,7 @@ use_position (DiaObject *obj, xmlNodePtr node, DiaContext *ctx)
     }
 }
 
+
 /*!
  * \brief Lookup and apply CSS style
  *
@@ -300,23 +301,26 @@ use_position (DiaObject *obj, xmlNodePtr node, DiaContext *ctx)
  * \ingroup SvgImport
  */
 static void
-_css_parse_style (DiaSvgStyle *s, real user_scale,
-                 gchar *tag, gchar *klass, gchar *id,
-                 GHashTable *style_ht)
+_css_parse_style (DiaSvgStyle *s,
+                  real         user_scale_arg,
+                  gchar       *tag,
+                  gchar       *klass,
+                  gchar       *id,
+                  GHashTable  *style_ht)
 {
   gchar *style = NULL;
 
   /* always try and apply '*' */
   style = g_hash_table_lookup (style_ht, "*");
   if (style) {
-    dia_svg_parse_style_string (s, user_scale, style);
+    dia_svg_parse_style_string (s, user_scale_arg, style);
     style = NULL;
   }
 
   /* also type only style */
   style = g_hash_table_lookup (style_ht, tag);
   if (style) {
-    dia_svg_parse_style_string (s, user_scale, style);
+    dia_svg_parse_style_string (s, user_scale_arg, style);
     style = NULL;
   }
 
@@ -341,7 +345,7 @@ _css_parse_style (DiaSvgStyle *s, real user_scale,
   }
   /* apply most specific style from class lookup */
   if (style) {
-    dia_svg_parse_style_string (s, user_scale, style);
+    dia_svg_parse_style_string (s, user_scale_arg, style);
     style = NULL;
   }
 
@@ -350,51 +354,60 @@ _css_parse_style (DiaSvgStyle *s, real user_scale,
     gchar *key = g_strdup_printf ("#%s", id);
     style = g_hash_table_lookup (style_ht, key);
     if (style) {
-      dia_svg_parse_style_string (s, user_scale, style);
+      dia_svg_parse_style_string (s, user_scale_arg, style);
     }
     g_free (key);
     key = g_strdup_printf ("%s#%s", tag, id);
     style = g_hash_table_lookup (style_ht, key);
     if (style) {
-      dia_svg_parse_style_string (s, user_scale, style);
+      dia_svg_parse_style_string (s, user_scale_arg, style);
     }
     g_free (key);
   }
 }
 
+
 /*!
  * \brief from the given node derive the CSS style if any
  * \ingroup SvgImport
  */
 static void
-_node_css_parse_style (xmlNodePtr node,
-                      DiaSvgStyle *gs,
-                      real user_scale,
-                      GHashTable *style_ht)
+_node_css_parse_style (xmlNodePtr   node,
+                       DiaSvgStyle *gs,
+                       real         user_scale_arg,
+                       GHashTable  *style_ht)
 {
   if (g_hash_table_size (style_ht) > 0) {
     /* only do all these expensive variants if we have some style at all */
-    xmlChar *id = xmlGetProp (node, (xmlChar *)"id");
-    xmlChar *klass = xmlGetProp (node, (xmlChar *)"class");
+    xmlChar *id = xmlGetProp (node, (xmlChar *) "id");
+    xmlChar *klass = xmlGetProp (node, (xmlChar *) "class");
 
     if (klass) {
-      gchar **klasses = g_regex_split_simple ("[\\s,;]+", (gchar *)klass, 0, 0);
+      gchar **klasses = g_regex_split_simple ("[\\s,;]+",
+                                              (gchar *) klass, 0, 0);
       int i = 0;
       while (klasses[i]) {
-       _css_parse_style (gs, user_scale, (gchar *)node->name, klasses[i], (gchar *)id, style_ht);
-       ++i;
+        _css_parse_style (gs, user_scale_arg, (gchar *) node->name,
+                          klasses[i], (gchar *) id, style_ht);
+        ++i;
       }
       g_strfreev (klasses);
     } else {
-      _css_parse_style (gs, user_scale, (gchar *)node->name, (gchar *)klass, (gchar *)id, style_ht);
+      _css_parse_style (gs, user_scale_arg, (gchar *) node->name,
+                        (gchar *) klass, (gchar *) id, style_ht);
     }
-    if (id)
+
+    if (id) {
       xmlFree (id);
-    if (klass)
+    }
+
+    if (klass) {
       xmlFree (klass);
+    }
   }
 }
 
+
 static void
 _set_pattern_from_key (DiaObject *obj, BoolProperty *bprop,
                       GHashTable *pattern_ht, const gchar *key)
diff --git a/plug-ins/vdx/vdx-export.c b/plug-ins/vdx/vdx-export.c
index 05c6bf5d..37fa04fe 100644
--- a/plug-ins/vdx/vdx-export.c
+++ b/plug-ins/vdx/vdx-export.c
@@ -411,50 +411,61 @@ vdxCheckFont(VDXRenderer *renderer)
     return renderer->Fonts->len - 1;
 }
 
-/** Create a Visio line style object
- * @param self a VDXRenderer
- * @param color a colour
- * @param Line a Line object
- * @param start_arrow optional start arrow
- * @param end_arrow optional end arrow
+
+/**
+ * create_Line:
+ * @self: a VDXRenderer
+ * @color: a colour
+ * @Line: a Line object
+ * @start_arrow: optional start arrow
+ * @end_arrow: optional end arrow
+ *
+ * Create a Visio line style object
+ *
  * @todo join, caps, dashlength
  */
 static void
-create_Line(VDXRenderer *renderer, Color *color, struct vdx_Line *Line,
-            Arrow *start_arrow, Arrow *end_arrow)
+create_Line (VDXRenderer     *renderer,
+             Color           *color,
+             struct vdx_Line *Line,
+             Arrow           *start_arrow,
+             Arrow           *end_arrow)
 {
-    /* A Line (colour etc) */
-    memset(Line, 0, sizeof(*Line));
-    Line->any.type = vdx_types_Line;
-    switch (renderer->stylemode)
-    {
+  /* A Line (colour etc) */
+  memset (Line, 0, sizeof (*Line));
+
+  Line->any.type = vdx_types_Line;
+
+  switch (renderer->stylemode) {
     case LINESTYLE_DASHED:
-        Line->LinePattern = 2;
-        break;
+      Line->LinePattern = 2;
+      break;
     case LINESTYLE_DOTTED:
-        Line->LinePattern = 3;
-        break;
+      Line->LinePattern = 3;
+      break;
     case LINESTYLE_DASH_DOT:
-        Line->LinePattern = 4;
-        break;
+      Line->LinePattern = 4;
+      break;
     case LINESTYLE_DASH_DOT_DOT:
-        Line->LinePattern = 5;
-        break;
-    default:
+      Line->LinePattern = 5;
+      break;
+    case LINESTYLE_DEFAULT:
     case LINESTYLE_SOLID:
-        Line->LinePattern = 1;
-        break;
-    }
-    Line->LineColor = *color;
-    Line->LineColorTrans = 1.0 - color->alpha;
-    Line->LineWeight = renderer->linewidth / vdx_Line_Scale;
-    /* VDX only has Rounded (0) or Square (1) ends */
-    if (renderer->capsmode != LINECAPS_ROUND)
-       Line->LineCap = 1; /* Square */
-    if (start_arrow || end_arrow)
-    {
-        g_debug("create_Line (ARROWS)");
-    }
+    default:
+      Line->LinePattern = 1;
+      break;
+  }
+  Line->LineColor = *color;
+  Line->LineColorTrans = 1.0 - color->alpha;
+  Line->LineWeight = renderer->linewidth / vdx_Line_Scale;
+  /* VDX only has Rounded (0) or Square (1) ends */
+  if (renderer->capsmode != LINECAPS_ROUND) {
+    Line->LineCap = 1; /* Square */
+  }
+
+  if (start_arrow || end_arrow) {
+    g_debug("create_Line (ARROWS)");
+  }
 }
 
 
@@ -1293,15 +1304,17 @@ static void draw_string(DiaRenderer *self,
     text_width *= 1.2;
     a.y += dia_font_descent(text, renderer->font, renderer->fontheight);
     switch (alignment) {
-    case ALIGN_LEFT:
-      /* nothing to do this appears to be default */
-      break;
-    case ALIGN_CENTER:
-      a.x -= text_width / 2.0;
-      break;
-    case ALIGN_RIGHT:
-      a.x -= text_width;
-      break;
+      case ALIGN_LEFT:
+        /* nothing to do this appears to be default */
+        break;
+      case ALIGN_CENTER:
+        a.x -= text_width / 2.0;
+        break;
+      case ALIGN_RIGHT:
+        a.x -= text_width;
+        break;
+      default:
+        g_return_if_reached ();
     }
     a = visio_point(a);
     XForm.PinX = a.x;
@@ -1544,7 +1557,6 @@ write_header(DiagramData *data, VDXRenderer *renderer)
     struct vdx_Char Char;
     struct vdx_Para Para;
     struct vdx_Tabs Tabs;
-    static Color color_black = { 0.0, 0.0, 0.0, 1.0 };
 
     g_debug("write_header");
 


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