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

gEDA-cvs: branch: master updated (1.1.2.20070818-18-g4a24abe)



The branch, master has been updated
       via  4a24abed55b95bd50cb0351ca25c37f6758e8e89 (commit)
      from  f58bf186da0f4c19356ee4b04a839f4d6d802e74 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.


=========
 Summary
=========

 libgeda/include/prototype.h   |  504 ++++++++++++++++++++--------------------
 libgeda/src/a_basic.c         |  102 ++++----
 libgeda/src/f_basic.c         |   82 ++++----
 libgeda/src/f_print.c         |  174 +++++++-------
 libgeda/src/g_rc.c            |   50 ++--
 libgeda/src/g_smob.c          |   30 ++--
 libgeda/src/i_vars.c          |   54 +++---
 libgeda/src/m_basic.c         |  228 +++++++++---------
 libgeda/src/o_arc_basic.c     |  112 +++++-----
 libgeda/src/o_attrib.c        |  152 ++++++------
 libgeda/src/o_basic.c         |   56 +++---
 libgeda/src/o_box_basic.c     |  166 +++++++-------
 libgeda/src/o_bus_basic.c     |   64 +++---
 libgeda/src/o_circle_basic.c  |  126 +++++-----
 libgeda/src/o_complex_basic.c |  254 +++++++++++-----------
 libgeda/src/o_embed.c         |   12 +-
 libgeda/src/o_line_basic.c    |  126 +++++-----
 libgeda/src/o_list.c          |  110 +++++-----
 libgeda/src/o_net_basic.c     |   94 ++++----
 libgeda/src/o_picture.c       |  100 ++++----
 libgeda/src/o_pin_basic.c     |   68 +++---
 libgeda/src/o_selection.c     |    6 +-
 libgeda/src/o_text_basic.c    |  196 ++++++++--------
 libgeda/src/s_basic.c         |   36 ++--
 libgeda/src/s_clib.c          |    8 +-
 libgeda/src/s_conn.c          |   18 +-
 libgeda/src/s_cue.c           |   42 ++--
 libgeda/src/s_hierarchy.c     |   84 ++++----
 libgeda/src/s_page.c          |    4 +-
 libgeda/src/s_stretch.c       |    2 +-
 libgeda/src/s_tile.c          |   34 ++--
 libgeda/src/s_undo.c          |   28 ++--
 32 files changed, 1561 insertions(+), 1561 deletions(-)


=================
 Commit Messages
=================

commit 4a24abed55b95bd50cb0351ca25c37f6758e8e89
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Mon Sep 3 16:38:53 2007 +0100

    libgeda: Rename all w_current variables to toplevel

:100644 100644 1fcb129... 1e897a0... M	libgeda/include/prototype.h
:100644 100644 06c3149... 5ba85a7... M	libgeda/src/a_basic.c
:100644 100644 c6d8569... 331fd4a... M	libgeda/src/f_basic.c
:100644 100644 7c6e061... 2660ddd... M	libgeda/src/f_print.c
:100644 100644 c8ace1d... 17d3321... M	libgeda/src/g_rc.c
:100644 100644 fdbfeaf... cbda446... M	libgeda/src/g_smob.c
:100644 100644 839fc40... e767656... M	libgeda/src/i_vars.c
:100644 100644 fc11a7e... b9a3ff6... M	libgeda/src/m_basic.c
:100644 100644 f750cb5... b21acce... M	libgeda/src/o_arc_basic.c
:100644 100644 c8934c9... 63dab21... M	libgeda/src/o_attrib.c
:100644 100644 0226853... 0ea20ef... M	libgeda/src/o_basic.c
:100644 100644 d700aab... 4a40615... M	libgeda/src/o_box_basic.c
:100644 100644 83e97e4... 752a03b... M	libgeda/src/o_bus_basic.c
:100644 100644 a2c0891... e2fe1d1... M	libgeda/src/o_circle_basic.c
:100644 100644 03fa010... ef34ace... M	libgeda/src/o_complex_basic.c
:100644 100644 2a3ab25... 0681477... M	libgeda/src/o_embed.c
:100644 100644 3ec08a8... 71b6c1b... M	libgeda/src/o_line_basic.c
:100644 100644 bb1d7db... 49e0b63... M	libgeda/src/o_list.c
:100644 100644 89e34cf... 0b98bb8... M	libgeda/src/o_net_basic.c
:100644 100644 6edff47... ffea11c... M	libgeda/src/o_picture.c
:100644 100644 64c8278... a5e9a43... M	libgeda/src/o_pin_basic.c
:100644 100644 ee7f59d... 25fd075... M	libgeda/src/o_selection.c
:100644 100644 c98ad83... 268357f... M	libgeda/src/o_text_basic.c
:100644 100644 bb5971c... 7f4c35c... M	libgeda/src/s_basic.c
:100644 100644 5a9a57a... 543dd23... M	libgeda/src/s_clib.c
:100644 100644 b18da40... 669c704... M	libgeda/src/s_conn.c
:100644 100644 a2650cb... 9f77e96... M	libgeda/src/s_cue.c
:100644 100644 305bc2a... c2f8363... M	libgeda/src/s_hierarchy.c
:100644 100644 1556c0d... 2ed64e4... M	libgeda/src/s_page.c
:100644 100644 e3dee66... 2e781ac... M	libgeda/src/s_stretch.c
:100644 100644 4b5e618... 270e775... M	libgeda/src/s_tile.c
:100644 100644 0af0f50... 617c33d... M	libgeda/src/s_undo.c

=========
 Changes
=========

commit 4a24abed55b95bd50cb0351ca25c37f6758e8e89
Author: Peter Clifton <pcjc2@xxxxxxxxx>
Date:   Mon Sep 3 16:38:53 2007 +0100

    libgeda: Rename all w_current variables to toplevel

diff --git a/libgeda/include/prototype.h b/libgeda/include/prototype.h
index 1fcb129..1e897a0 100644
--- a/libgeda/include/prototype.h
+++ b/libgeda/include/prototype.h
@@ -1,31 +1,31 @@
 /* a_basic.c */
-void o_save_embedded(TOPLEVEL *w_current, OBJECT *object_list, FILE *fp);
+void o_save_embedded(TOPLEVEL *toplevel, OBJECT *object_list, FILE *fp);
 void o_save_write_header(FILE *fp);
-int o_save(TOPLEVEL *w_current, const char *filename);
-OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list, char *buffer, const int size, const char *name);
-OBJECT *o_read(TOPLEVEL *w_current, OBJECT *object_list, char *filename);
-void o_scale(TOPLEVEL *w_current, OBJECT *list, int x_scale, int y_scale);
+int o_save(TOPLEVEL *toplevel, const char *filename);
+OBJECT *o_read_buffer(TOPLEVEL *toplevel, OBJECT *object_list, char *buffer, const int size, const char *name);
+OBJECT *o_read(TOPLEVEL *toplevel, OBJECT *object_list, char *filename);
+void o_scale(TOPLEVEL *toplevel, OBJECT *list, int x_scale, int y_scale);
 
 /* f_basic.c */
-int f_open(TOPLEVEL *w_current, const gchar *filename);
-int f_open_flags(TOPLEVEL *w_current, const gchar *filename, 
+int f_open(TOPLEVEL *toplevel, const gchar *filename);
+int f_open_flags(TOPLEVEL *toplevel, const gchar *filename,
                  const gint flags);
-void f_close(TOPLEVEL *w_current);
-void f_save_close(TOPLEVEL *w_current, char *filename);
-int f_save(TOPLEVEL *w_current, const char *filename);
+void f_close(TOPLEVEL *toplevel);
+void f_save_close(TOPLEVEL *toplevel, char *filename);
+int f_save(TOPLEVEL *toplevel, const char *filename);
 char* f_normalize_filename(const gchar *filename);
 char *follow_symlinks (const gchar *filename, GError **error);
 
 /* f_print.c */
 void f_print_set_line_width(FILE *fp, int width);
 void f_print_set_color(FILE *fp, int color);
-int f_print_header(TOPLEVEL *w_current, FILE *fp, int paper_size_x, int paper_size_y, int eps);
+int f_print_header(TOPLEVEL *toplevel, FILE *fp, int paper_size_x, int paper_size_y, int eps);
 void f_print_footer(FILE *fp);
-void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head, int start_x, int start_y, float scale, int unicode_count, gunichar *unicode_table);
-int f_print_file (TOPLEVEL *w_current, const char *filename);
-int f_print_command (TOPLEVEL *w_current, const char *command);
-int f_print_stream(TOPLEVEL *w_current, FILE *fp);
-void f_print_set_type(TOPLEVEL *w_current, int type);
+void f_print_objects(TOPLEVEL *toplevel, FILE *fp, OBJECT *head, int start_x, int start_y, float scale, int unicode_count, gunichar *unicode_table);
+int f_print_file (TOPLEVEL *toplevel, const char *filename);
+int f_print_command (TOPLEVEL *toplevel, const char *command);
+int f_print_stream(TOPLEVEL *toplevel, FILE *fp);
+void f_print_set_type(TOPLEVEL *toplevel, int type);
 int f_print_initialize_glyph_table(void);
 
 /* g_basic.c */
@@ -36,16 +36,16 @@ int vstbl_lookup_str(const vstbl_entry *table, int size, const char *str);
 int vstbl_get_val(const vstbl_entry *table, int index);
 SCM g_rc_mode_general(SCM scmmode, const char *rc_name, int *mode_var, 
                       const vstbl_entry *table, int table_size);
-gint g_rc_parse_general(TOPLEVEL *w_current,
+gint g_rc_parse_general(TOPLEVEL *toplevel,
                         const gchar *fname, 
                         const gchar *ok_msg, const gchar *err_msg);
 const char *g_rc_parse_path(void);
-gint g_rc_parse_system_rc(TOPLEVEL *w_current, const gchar *rcname);
-gint g_rc_parse_home_rc(TOPLEVEL *w_current, const gchar *rcname);
-gint g_rc_parse_local_rc(TOPLEVEL *w_current, const gchar *rcname);
-void g_rc_parse(TOPLEVEL *w_current, const gchar* rcname, 
+gint g_rc_parse_system_rc(TOPLEVEL *toplevel, const gchar *rcname);
+gint g_rc_parse_home_rc(TOPLEVEL *toplevel, const gchar *rcname);
+gint g_rc_parse_local_rc(TOPLEVEL *toplevel, const gchar *rcname);
+void g_rc_parse(TOPLEVEL *toplevel, const gchar* rcname,
                 const gchar* specified_rc_filename);
-gint g_rc_parse_specified_rc(TOPLEVEL *w_current, const gchar *rcfilename);
+gint g_rc_parse_specified_rc(TOPLEVEL *toplevel, const gchar *rcfilename);
 SCM g_rc_component_library(SCM path, SCM name);
 SCM g_rc_component_library_command (SCM listcmd, SCM getcmd, SCM name);
 SCM g_rc_component_library_funcs (SCM listfunc, SCM getfunc, SCM name);
@@ -97,8 +97,8 @@ gboolean g_get_data_from_page_smob(SCM object_smob, TOPLEVEL **toplevel,
 SCM g_get_page_filename(SCM page_smob);
 
 /* i_vars.c */
-void i_vars_libgeda_set(TOPLEVEL *w_current);
-void i_vars_setnames(TOPLEVEL *w_current);
+void i_vars_libgeda_set(TOPLEVEL *toplevel);
+void i_vars_setnames(TOPLEVEL *toplevel);
 void i_vars_freenames();
 
 /* gdk-pixbuf-hacks.c */
@@ -110,79 +110,79 @@ GdkPixbuf *gdk_pixbuf_mirror_flip(GdkPixbuf *src, gint mirror, gint flip);
 void libgeda_init(void);
 
 /* m_basic.c */
-int mil_x(TOPLEVEL *w_current, int val);
-int mil_y(TOPLEVEL *w_current, int val);
-int pix_x(TOPLEVEL *w_current, int val);
-int pix_y(TOPLEVEL *w_current, int val);
-void WORLDtoSCREEN(TOPLEVEL *w_current, int x, int y, int *mil_x, int *mil_y);
-void SCREENtoWORLD(TOPLEVEL *w_current, int mx, int my, int *x, int *y);
-int snap_grid(TOPLEVEL *w_current, int input);
-int SCREENabs(TOPLEVEL *w_current, int val);
-int WORLDabs(TOPLEVEL *w_current, int val);
-void set_window(TOPLEVEL *w_current, PAGE *page, int xmin, int xmax, int ymin, int ymax);
-int fix_x(TOPLEVEL *w_current, int in);
-int fix_y(TOPLEVEL *w_current, int in);
+int mil_x(TOPLEVEL *toplevel, int val);
+int mil_y(TOPLEVEL *toplevel, int val);
+int pix_x(TOPLEVEL *toplevel, int val);
+int pix_y(TOPLEVEL *toplevel, int val);
+void WORLDtoSCREEN(TOPLEVEL *toplevel, int x, int y, int *mil_x, int *mil_y);
+void SCREENtoWORLD(TOPLEVEL *toplevel, int mx, int my, int *x, int *y);
+int snap_grid(TOPLEVEL *toplevel, int input);
+int SCREENabs(TOPLEVEL *toplevel, int val);
+int WORLDabs(TOPLEVEL *toplevel, int val);
+void set_window(TOPLEVEL *toplevel, PAGE *page, int xmin, int xmax, int ymin, int ymax);
+int fix_x(TOPLEVEL *toplevel, int in);
+int fix_y(TOPLEVEL *toplevel, int in);
 int on_snap(int val);
-int SCREENclip_change(TOPLEVEL *w_current, int *x1, int *y1, int *x2, int *y2);
-int clip_nochange(TOPLEVEL *w_current, int x1, int y1, int x2, int y2);
-int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom);
+int SCREENclip_change(TOPLEVEL *toplevel, int *x1, int *y1, int *x2, int *y2);
+int clip_nochange(TOPLEVEL *toplevel, int x1, int y1, int x2, int y2);
+int visible(TOPLEVEL *toplevel, int wleft, int wtop, int wright, int wbottom);
 void rotate_point(int x, int y, int angle, int *newx, int *newy);
 void rotate_point_90(int x, int y, int angle, int *newx, int *newy);
 void PAPERSIZEtoWORLD(int width, int height, int border, int *right, int *bottom);
 double round_5_2_1(double unrounded);
 
 /* o_arc_basic.c */
-OBJECT *o_arc_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
-OBJECT *o_arc_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_arc_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-OBJECT *o_arc_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+OBJECT *o_arc_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int radius, int start_angle, int end_angle);
+OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+OBJECT *o_arc_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_arc_save(OBJECT *object);
-void o_arc_translate_world(TOPLEVEL *w_current, int dx, int dy, OBJECT *object);
-void o_arc_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_arc_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_arc_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-void world_get_arc_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_arc_print_solid(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
-void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
-void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
-void o_arc_print_center(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
-void o_arc_print_phantom(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
+void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy, OBJECT *object);
+void o_arc_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_arc_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_arc_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+void world_get_arc_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+void o_arc_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_arc_print_solid(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
+void o_arc_print_dotted(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
+void o_arc_print_dashed(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
+void o_arc_print_center(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
+void o_arc_print_phantom(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int angle1, int angle2, int color, int arc_width, int length, int space, int origin_x, int origin_y);
 
 /* o_attrib.c */
-void o_attrib_update_urefBM(TOPLEVEL *w_current, OBJECT *o_current);
+void o_attrib_update_urefBM(TOPLEVEL *toplevel, OBJECT *o_current);
 ATTRIB *o_attrib_search(ATTRIB *list, OBJECT *item);
 ATTRIB *o_attrib_return_tail(ATTRIB *head);
 ATTRIB *add_attrib_head(OBJECT *parent);
-ATTRIB *o_attrib_add(TOPLEVEL *w_current, ATTRIB *list_head, OBJECT *item);
-void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current);
-void o_attrib_attach(TOPLEVEL *w_current, OBJECT *parent_list, OBJECT *text_object, OBJECT *object);
-void o_attrib_detach_test(TOPLEVEL *w_current, OBJECT *list, OBJECT *items);
+ATTRIB *o_attrib_add(TOPLEVEL *toplevel, ATTRIB *list_head, OBJECT *item);
+void o_attrib_free(TOPLEVEL *toplevel, ATTRIB *current);
+void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *parent_list, OBJECT *text_object, OBJECT *object);
+void o_attrib_detach_test(TOPLEVEL *toplevel, OBJECT *list, OBJECT *items);
 void o_attrib_edit(OBJECT *list, OBJECT *item);
 void o_attrib_select_draw(ATTRIB *list);
 void o_attrib_unselect_draw(ATTRIB *list);
-void o_attrib_free_all(TOPLEVEL *w_current, ATTRIB *list);
+void o_attrib_free_all(TOPLEVEL *toplevel, ATTRIB *list);
 void o_attrib_print(ATTRIB *attributes);
 void o_attrib_print_reverse(ATTRIB *attributes);
 ATTRIB *o_attrib_copy(ATTRIB *list);
 void o_attrib_delete(ATTRIB *a_current);
 void o_attrib_remove(ATTRIB *list, ATTRIB *remove);
-void o_attrib_detach_all(TOPLEVEL *w_current, OBJECT *object_list, OBJECT *main_head);
-OBJECT *o_read_attribs(TOPLEVEL *w_current, 
+void o_attrib_detach_all(TOPLEVEL *toplevel, OBJECT *object_list, OBJECT *main_head);
+OBJECT *o_read_attribs(TOPLEVEL *toplevel,
 		       OBJECT *object_to_get_attribs, 
 		       TextBuffer *tb,
 		       unsigned int release_ver, 
 		       unsigned int fileformat_ver);
 void o_save_attribs(FILE *fp, ATTRIB *attribs);
 int o_attrib_get_name_value(char *string, char **name, char **value);
-void o_attrib_free_current(TOPLEVEL *w_current);
-void o_attrib_set_show(TOPLEVEL *w_current, int flag);
-void o_attrib_set_visible(TOPLEVEL *w_current, int flag);
-void o_attrib_set_string(TOPLEVEL *w_current, char *string);
+void o_attrib_free_current(TOPLEVEL *toplevel);
+void o_attrib_set_show(TOPLEVEL *toplevel, int flag);
+void o_attrib_set_visible(TOPLEVEL *toplevel, int flag);
+void o_attrib_set_string(TOPLEVEL *toplevel, char *string);
 OBJECT *o_attrib_return_parent(ATTRIB *attribute);
-ATTRIB *o_attrib_copy_all(TOPLEVEL *w_current, OBJECT *attached_to, ATTRIB *attributes);
+ATTRIB *o_attrib_copy_all(TOPLEVEL *toplevel, OBJECT *attached_to, ATTRIB *attributes);
 void o_attrib_reattach(ATTRIB *attributes);
-void o_attrib_set_color(TOPLEVEL *w_current, ATTRIB *attributes);
+void o_attrib_set_color(TOPLEVEL *toplevel, ATTRIB *attributes);
 char *o_attrib_search_name(OBJECT *list, char *name, int counter);
 OBJECT *o_attrib_search_string_list(OBJECT *list, char *string);
 char *o_attrib_search_string_partial(OBJECT *object, char *search_for, int counter);
@@ -199,111 +199,111 @@ char *o_attrib_search_default_slot(OBJECT *object);
 OBJECT *o_attrib_search_pinseq(OBJECT *list, int pin_number);
 char *o_attrib_search_slotdef(OBJECT *object, int slotnumber);
 char *o_attrib_search_component(OBJECT *object, char *name);
-void o_attrib_slot_update(TOPLEVEL *w_current, OBJECT *object);
-void o_attrib_slot_copy(TOPLEVEL *w_current, OBJECT *original, OBJECT *target);
-int o_attrib_count_toplevel(TOPLEVEL *w_current, char *name);
+void o_attrib_slot_update(TOPLEVEL *toplevel, OBJECT *object);
+void o_attrib_slot_copy(TOPLEVEL *toplevel, OBJECT *original, OBJECT *target);
+int o_attrib_count_toplevel(TOPLEVEL *toplevel, char *name);
 char *o_attrib_search_toplevel_all(GedaPageList *page_list, char *name);
 OBJECT **o_attrib_return_attribs(OBJECT *object_list, OBJECT *sel_object);
 void o_attrib_free_returned(OBJECT **found_objects);
 
 /* o_basic.c */
 int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y);
-void o_redraw_single(TOPLEVEL *w_current, OBJECT *o_current);
-void o_recalc_single_object(TOPLEVEL *w_current, OBJECT *o_current);
-void o_recalc_object_list(TOPLEVEL *w_current, OBJECT *object_list);
-void o_recalc_object_glist(TOPLEVEL *w_current, GList *object_glist);
-void o_set_line_options(TOPLEVEL *w_current, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
-void o_set_fill_options(TOPLEVEL *w_current, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
+void o_redraw_single(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_recalc_object_list(TOPLEVEL *toplevel, OBJECT *object_list);
+void o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist);
+void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_END end, OBJECT_TYPE type, int width, int length, int space);
+void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current, OBJECT_FILLING type, int width, int pitch1, int angle1, int pitch2, int angle2);
 
 /* o_box_basic.c */
-OBJECT *o_box_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
-OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_box_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-OBJECT *o_box_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+OBJECT *o_box_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
+OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_box_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+OBJECT *o_box_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_box_save(OBJECT *object);
-void o_box_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-void o_box_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_box_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_box_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-void world_get_box_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_box_print_solid(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_box_print_dotted(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_box_print_center(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_box_print_phantom(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_box_print_filled(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
-void o_box_print_mesh(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
-void o_box_print_hatch(TOPLEVEL *w_current, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_box_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+void o_box_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_box_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_box_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+void world_get_box_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+void o_box_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_box_print_solid(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_box_print_dotted(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_box_print_dashed(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_box_print_center(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_box_print_phantom(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_box_print_filled(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_box_print_mesh(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_box_print_hatch(TOPLEVEL *toplevel, FILE *fp, int x, int y, int width, int height, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
 
 /* o_bus_basic.c */
-void world_get_bus_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-OBJECT *o_bus_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
-void o_bus_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-OBJECT *o_bus_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+void world_get_bus_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+OBJECT *o_bus_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int bus_ripper_direction);
+void o_bus_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_bus_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_bus_save(OBJECT *object);
-void o_bus_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-OBJECT *o_bus_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_bus_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_bus_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_bus_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
+void o_bus_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_bus_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_bus_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_bus_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
 int o_bus_orientation(OBJECT *object);
 void o_bus_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
-int o_bus_consolidate_segments(TOPLEVEL *w_current, OBJECT *object);
-void o_bus_consolidate(TOPLEVEL *w_current);
-void o_bus_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
+int o_bus_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
+void o_bus_consolidate(TOPLEVEL *toplevel);
+void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
 
 /* o_circle_basic.c */
 int dist(int x1, int y1, int x2, int y2);
-OBJECT *o_circle_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x, int y, int radius);
-OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_circle_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-OBJECT *o_circle_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+OBJECT *o_circle_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int radius);
+OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+OBJECT *o_circle_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_circle_save(OBJECT *object);
-void o_circle_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-void o_circle_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_circle_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_circle_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-void world_get_circle_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_circle_print_solid(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
-void o_circle_print_dotted(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
-void o_circle_print_dashed(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
-void o_circle_print_center(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
-void o_circle_print_phantom(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
-void o_circle_print_filled(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
-void o_circle_print_mesh(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
-void o_circle_print_hatch(TOPLEVEL *w_current, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_circle_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+void o_circle_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_circle_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_circle_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+void world_get_circle_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+void o_circle_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_circle_print_solid(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
+void o_circle_print_dotted(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
+void o_circle_print_dashed(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
+void o_circle_print_center(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
+void o_circle_print_phantom(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int circle_width, int length, int space, int origin_x, int origin_y);
+void o_circle_print_filled(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_circle_print_mesh(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
+void o_circle_print_hatch(TOPLEVEL *toplevel, FILE *fp, int x, int y, int radius, int color, int fill_width, int angle1, int pitch1, int angle2, int pitch2, int origin_x, int origin_y);
 
 /* o_complex_basic.c */
-int world_get_single_object_bounds(TOPLEVEL *w_current, OBJECT *o_current, 
+int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
 			      int *rleft, int *rtop, 
 			      int *rright, int *rbottom);
-int world_get_object_list_bounds(TOPLEVEL *w_current, OBJECT *complex, 
+int world_get_object_list_bounds(TOPLEVEL *toplevel, OBJECT *complex,
 			    int *left, int *top, int *right, int *bottom);
-int world_get_object_glist_bounds(TOPLEVEL *w_current, GList *o_list, 
+int world_get_object_glist_bounds(TOPLEVEL *toplevel, GList *o_list,
 			     int *left, int *top, 
 			     int *right, int *bottom);
-void world_get_complex_bounds(TOPLEVEL *w_current, OBJECT *complex, int *left, int *top, int *right, int *bottom);
+void world_get_complex_bounds(TOPLEVEL *toplevel, OBJECT *complex, int *left, int *top, int *right, int *bottom);
 OBJECT *add_head(void);
-int o_complex_is_eligible_attribute(TOPLEVEL *w_current, OBJECT *object, int promote_invisible);
+int o_complex_is_eligible_attribute(TOPLEVEL *toplevel, OBJECT *object, int promote_invisible);
 int o_complex_is_embedded(OBJECT *o_current);
-OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list, 
+OBJECT *o_complex_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		      GList **object_glist, char type, int color, 
 		      int x, int y, int angle, int mirror, 
 		      const CLibSymbol *clib_sym, const gchar *basename,
 		      int selectable, int attribute_promotion);
-OBJECT *o_complex_add_embedded(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x, int y, int angle, const gchar *basename, int selectable);
-void o_complex_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-OBJECT *o_complex_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int angle, const gchar *basename, int selectable);
+void o_complex_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_complex_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_complex_save(OBJECT *object);
-void o_complex_set_filename(TOPLEVEL *w_current, const char *basename);
-void o_complex_free_filename(TOPLEVEL *w_current);
-void o_complex_world_translate(TOPLEVEL *w_current, int x1, int y1, OBJECT *prim_objs);
-void o_complex_world_translate_toplevel(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-OBJECT *o_complex_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-OBJECT *o_complex_copy_embedded(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_complex_delete(TOPLEVEL *w_current, OBJECT *delete);
+void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename);
+void o_complex_free_filename(TOPLEVEL *toplevel);
+void o_complex_world_translate(TOPLEVEL *toplevel, int x1, int y1, OBJECT *prim_objs);
+void o_complex_world_translate_toplevel(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_complex_delete(TOPLEVEL *toplevel, OBJECT *delete);
 void o_complex_set_color(OBJECT *prim_objs, int color);
 void o_complex_set_color_single(OBJECT *o_current, int color);
 void o_complex_set_color_save(OBJECT *complex, int color);
@@ -311,125 +311,125 @@ void o_complex_unset_color(OBJECT *complex);
 void o_complex_unset_color_single(OBJECT *o_current);
 void o_complex_set_saved_color_only(OBJECT *complex, int color);
 OBJECT *o_complex_return_nth_pin(OBJECT *o_list, int counter);
-void o_complex_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, int angle_change, OBJECT *object);
-void o_complex_mirror_lowlevel(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
+void o_complex_rotate_lowlevel(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, int angle_change, OBJECT *object);
+void o_complex_mirror_lowlevel(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
 OBJECT *o_complex_return_pin_object(OBJECT *object, char *pin);
 int  o_complex_count_pins(OBJECT *object);
-void o_complex_check_symversion(TOPLEVEL* w_current, OBJECT* object);
+void o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object);
 
 /* o_embed.c */
-void o_embed(TOPLEVEL *w_current, OBJECT *o_current);
-void o_unembed(TOPLEVEL *w_current, OBJECT *o_current);
+void o_embed(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current);
 
 /* o_line_basic.c */
-OBJECT *o_line_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
-OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_line_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-OBJECT *o_line_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+OBJECT *o_line_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
+OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_line_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+OBJECT *o_line_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_line_save(OBJECT *object);
-void o_line_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-void o_line_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_line_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_line_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-void world_get_line_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_line_print_solid(TOPLEVEL *w_current, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_line_print_dotted(TOPLEVEL *w_current, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_line_print_dashed(TOPLEVEL *w_current, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_line_print_center(TOPLEVEL *w_current, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_line_print_phantom(TOPLEVEL *w_current, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
-void o_line_scale_world(TOPLEVEL *w_current, int x_scale, int y_scale, OBJECT *object);
-int o_line_visible(TOPLEVEL *w_current, LINE *line, int *x1, int *y1, int *x2, int *y2);
+void o_line_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+void o_line_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_line_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+void world_get_line_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+void o_line_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_line_print_solid(TOPLEVEL *toplevel, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_line_print_dotted(TOPLEVEL *toplevel, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_line_print_dashed(TOPLEVEL *toplevel, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_line_print_center(TOPLEVEL *toplevel, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_line_print_phantom(TOPLEVEL *toplevel, FILE *fp, int x1, int y1, int x2, int y2, int color, int line_width, int length, int space, int origin_x, int origin_y);
+void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale, OBJECT *object);
+int o_line_visible(TOPLEVEL *toplevel, LINE *line, int *x1, int *y1, int *x2, int *y2);
 double o_line_length(OBJECT *object);
 
 /* o_list.c */
-OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head, OBJECT *selected, int flag, OBJECT **return_end);
-OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head, OBJECT *dest_list_head, int flag);
-OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current, GList *src_list_head, OBJECT *dest_list_head, int flag);
+OBJECT *o_list_copy_to(TOPLEVEL *toplevel, OBJECT *list_head, OBJECT *selected, int flag, OBJECT **return_end);
+OBJECT *o_list_copy_all(TOPLEVEL *toplevel, OBJECT *src_list_head, OBJECT *dest_list_head, int flag);
+OBJECT *o_list_copy_all_selection2(TOPLEVEL *toplevel, GList *src_list_head, OBJECT *dest_list_head, int flag);
 OBJECT *o_list_search(OBJECT *list, OBJECT *current);
-void o_list_delete(TOPLEVEL *w_current, OBJECT *list, OBJECT *delete);
-void o_list_delete_rest(TOPLEVEL *w_current, OBJECT *list);
+void o_list_delete(TOPLEVEL *toplevel, OBJECT *list, OBJECT *delete);
+void o_list_delete_rest(TOPLEVEL *toplevel, OBJECT *list);
 
 /* o_net_basic.c */
-void world_get_net_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-OBJECT *o_net_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
-void o_net_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-OBJECT *o_net_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+void world_get_net_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+OBJECT *o_net_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2);
+void o_net_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_net_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_net_save(OBJECT *object);
-void o_net_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-OBJECT *o_net_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_net_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_net_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_net_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
+void o_net_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_net_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_net_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
 int o_net_orientation(OBJECT *object);
 void o_net_consolidate_lowlevel(OBJECT *object, OBJECT *del_object, int orient);
 int o_net_consolidate_nomidpoint(OBJECT *object, int x, int y);
-int o_net_consolidate_segments(TOPLEVEL *w_current, OBJECT *object);
-void o_net_consolidate(TOPLEVEL *w_current);
-void o_net_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
+int o_net_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object);
+void o_net_consolidate(TOPLEVEL *toplevel);
+void o_net_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
 
 /* o_picture.c */
-OBJECT *o_picture_read(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_picture_read(TOPLEVEL *toplevel, OBJECT *object_list,
 		       const char *first_line,
 		       TextBuffer *tb,
 		       unsigned int release_ver,
 		       unsigned int fileformat_ver);
 char *o_picture_save(OBJECT *object);
-void o_picture_set_pixbuf(TOPLEVEL *w_current, GdkPixbuf *pixbuf, char *filename);
-OBJECT *o_picture_add(TOPLEVEL *w_current, OBJECT *object_list,
+void o_picture_set_pixbuf(TOPLEVEL *toplevel, GdkPixbuf *pixbuf, char *filename);
+OBJECT *o_picture_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		      GdkPixbuf * pixbuf, char *filename, double ratio,
 		      char type, 
 		      int x1, int y1, int x2, int y2, int angle, char mirrored,
 		      char embedded);
-void o_picture_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-void world_get_picture_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-void o_picture_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-void o_picture_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle,OBJECT *object);
-void o_picture_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_picture_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-OBJECT *o_picture_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
+void o_picture_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+void world_get_picture_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_picture_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle,OBJECT *object);
+void o_picture_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_picture_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
 guint8 *o_picture_rgb_data(GdkPixbuf *image);
 guint8 *o_picture_mask_data(GdkPixbuf *image);
-void o_picture_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_picture_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		     int origin_x, int origin_y);
 
 /* o_pin_basic.c */
-void world_get_pin_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top, int *right, int *bottom);
-OBJECT *o_pin_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
-void o_pin_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-OBJECT *o_pin_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
+void world_get_pin_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top, int *right, int *bottom);
+OBJECT *o_pin_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x1, int y1, int x2, int y2, int pin_type, int whichend);
+void o_pin_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_pin_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[], unsigned int release_ver, unsigned int fileformat_ver);
 char *o_pin_save(OBJECT *object);
-void o_pin_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object);
-OBJECT *o_pin_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_pin_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
-void o_pin_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_pin_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
-void o_pin_modify(TOPLEVEL *w_current, OBJECT *object, int x, int y, int whichone);
-void o_pin_update_whichend(TOPLEVEL *w_current, OBJECT *object_list, int num_pins);
+void o_pin_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object);
+OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_pin_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y);
+void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_pin_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
+void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object, int x, int y, int whichone);
+void o_pin_update_whichend(TOPLEVEL *toplevel, OBJECT *object_list, int num_pins);
 
 /* o_selection.c */
 SELECTION *o_selection_new( void );
 void o_selection_add(SELECTION *selection, OBJECT *o_selected);
 void o_selection_print_all(const SELECTION *selection);
 void o_selection_remove(SELECTION *selection, OBJECT *o_selected);
-void o_selection_unselect_list(TOPLEVEL *w_current, SELECTION *selection);
+void o_selection_unselect_list(TOPLEVEL *toplevel, SELECTION *selection);
 
 void o_selection_select(OBJECT *object, int color); /* DEPRECATED */
 void o_selection_unselect(OBJECT *object);          /* DEPRECATED */
 
 /* o_text_basic.c */
-int world_get_text_bounds(TOPLEVEL *w_current, OBJECT *o_current, int *left, int *top, int *right, int *bottom);
+int world_get_text_bounds(TOPLEVEL *toplevel, OBJECT *o_current, int *left, int *top, int *right, int *bottom);
 OBJECT *o_text_add_head(void);
 void o_text_init(void);
 void o_text_print_set(void);
-OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char);
+OBJECT *o_text_load_font(TOPLEVEL *toplevel, gunichar needed_char);
 int o_text_num_lines(char *string);
 int o_text_height(char *string, int size);
-int o_text_width(TOPLEVEL *w_current, char *string, int size);
-OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list, char *string, int size, int color, int x, int y, int alignment, int angle);
-OBJECT *o_text_add(TOPLEVEL *w_current, OBJECT *object_list, char type, int color, int x, int y, int alignment, int angle, char *string, int size, int visibility, int show_name_value);
-void o_text_recalc(TOPLEVEL *w_current, OBJECT *o_current);
-OBJECT *o_text_read(TOPLEVEL *w_current, 
+int o_text_width(TOPLEVEL *toplevel, char *string, int size);
+OBJECT *o_text_create_string(TOPLEVEL *toplevel, OBJECT *object_list, char *string, int size, int color, int x, int y, int alignment, int angle);
+OBJECT *o_text_add(TOPLEVEL *toplevel, OBJECT *object_list, char type, int color, int x, int y, int alignment, int angle, char *string, int size, int visibility, int show_name_value);
+void o_text_recalc(TOPLEVEL *toplevel, OBJECT *o_current);
+OBJECT *o_text_read(TOPLEVEL *toplevel,
 		    OBJECT *object_list, 
 		    const char *first_line,
 		    TextBuffer *tb,
@@ -437,18 +437,18 @@ OBJECT *o_text_read(TOPLEVEL *w_current,
 		    unsigned int fileformat_ver);
 void o_text_set_info_font(char buf[]);
 char *o_text_save(OBJECT *object);
-void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current);
-void o_text_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *o_current);
-OBJECT *o_text_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current);
-void o_text_freeallfonts(TOPLEVEL *w_current);
+void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current);
+void o_text_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *o_current);
+OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current);
+void o_text_freeallfonts(TOPLEVEL *toplevel);
 void o_text_print_text_width(FILE *fp, char *output_string);
 void o_text_print_text_height(FILE *fp, int size);
 void o_text_print_text_height_full(FILE *fp, char *string, int size);
 void o_text_print_text_string(FILE *fp, char *string, int unicode_count, gunichar *unicode_table);
-void o_text_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, int origin_x, int origin_y, int unicode_count, gunichar *unicode_table);
-void o_text_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, OBJECT *object);
-void o_text_rotate_world(TOPLEVEL *w_current, int world_centerx, int world_centery, int angle, int angle_change, OBJECT *object);
-void o_text_mirror_world(TOPLEVEL *w_current, int world_centerx, int world_centery, OBJECT *object);
+void o_text_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current, int origin_x, int origin_y, int unicode_count, gunichar *unicode_table);
+void o_text_rotate_lowlevel(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, OBJECT *object);
+void o_text_rotate_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, int angle, int angle_change, OBJECT *object);
+void o_text_mirror_world(TOPLEVEL *toplevel, int world_centerx, int world_centery, OBJECT *object);
 
 /* s_attrib.c */
 int s_attrib_add_entry(char *new_attrib);
@@ -468,11 +468,11 @@ OBJECT *s_basic_link_object(OBJECT *new_node, OBJECT *ptr);
 void print_struct_forw(OBJECT *ptr);
 void print_struct_back(OBJECT *ptr);
 void print_struct(OBJECT *ptr);
-void s_delete_object(TOPLEVEL *w_current, OBJECT *o_current);
-void s_delete(TOPLEVEL *w_current, OBJECT *o_current);
-void s_delete_list_fromstart(TOPLEVEL *w_current, OBJECT *start);
-void s_delete_object_glist(TOPLEVEL *w_current, GList *list);
-OBJECT *s_remove(TOPLEVEL *w_current, OBJECT *object);
+void s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current);
+void s_delete(TOPLEVEL *toplevel, OBJECT *o_current);
+void s_delete_list_fromstart(TOPLEVEL *toplevel, OBJECT *start);
+void s_delete_object_glist(TOPLEVEL *toplevel, GList *list);
+OBJECT *s_remove(TOPLEVEL *toplevel, OBJECT *object);
 void string_toupper(char *in, char *out);
 void string_tolower(char *in, char *out);
 int colornametovalue(char *string);
@@ -505,7 +505,7 @@ GList *s_clib_search (const gchar *pattern, const CLibSearchMode mode);
 void s_clib_flush_cache ();
 const CLibSymbol *s_clib_get_symbol_by_name (const gchar *name);
 gchar *s_clib_symbol_get_data_by_name (const gchar *name);
-GList *s_toplevel_get_symbols (const TOPLEVEL *w_current);
+GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel);
 
 /* s_color.c */
 void s_color_init(void);
@@ -519,35 +519,35 @@ int s_color_get_index(char *string);
 /* s_conn.c */
 CONN *s_conn_return_new(OBJECT *other_object, int type, int x, int y, int whichone, int other_whichone);
 int s_conn_uniq(GList *conn_list, CONN *input_conn);
-int s_conn_remove_other(TOPLEVEL *w_current, OBJECT *other_object, OBJECT *to_remove);
-void s_conn_remove(TOPLEVEL *w_current, OBJECT *to_remove);
-void s_conn_remove_complex(TOPLEVEL *w_current, OBJECT *to_remove);
+int s_conn_remove_other(TOPLEVEL *toplevel, OBJECT *other_object, OBJECT *to_remove);
+void s_conn_remove(TOPLEVEL *toplevel, OBJECT *to_remove);
+void s_conn_remove_complex(TOPLEVEL *toplevel, OBJECT *to_remove);
 OBJECT *s_conn_check_midpoint(OBJECT *o_current, int x, int y);
-void s_conn_update_object(TOPLEVEL *w_current, OBJECT *object);
-void s_conn_update_complex(TOPLEVEL *w_current, OBJECT *complex);
+void s_conn_update_object(TOPLEVEL *toplevel, OBJECT *object);
+void s_conn_update_complex(TOPLEVEL *toplevel, OBJECT *complex);
 void s_conn_print(GList *conn_list);
 int s_conn_net_search(OBJECT* new_net, int whichone, GList * conn_list);
 GList *s_conn_return_others(GList *input_list, OBJECT *object);
 GList *s_conn_return_complex_others(GList *input_list, OBJECT *object);
 
 /* s_cue.c */
-void s_cue_postscript_fillbox(TOPLEVEL *w_current, FILE *fp, int x, int y);
-void s_cue_postscript_fillcircle(TOPLEVEL *w_current, FILE *fp, int x, int y, int size_flag);
-void s_cue_output_all(TOPLEVEL *w_current, OBJECT *head, FILE *fp, int type);
-void s_cue_output_lowlevel(TOPLEVEL *w_current, OBJECT *object, int whichone, FILE *fp, int output_type);
-void s_cue_output_lowlevel_midpoints(TOPLEVEL *w_current, OBJECT *object, FILE *fp, int output_type);
-void s_cue_output_single(TOPLEVEL *w_current, OBJECT *object, FILE *fp, int type);
+void s_cue_postscript_fillbox(TOPLEVEL *toplevel, FILE *fp, int x, int y);
+void s_cue_postscript_fillcircle(TOPLEVEL *toplevel, FILE *fp, int x, int y, int size_flag);
+void s_cue_output_all(TOPLEVEL *toplevel, OBJECT *head, FILE *fp, int type);
+void s_cue_output_lowlevel(TOPLEVEL *toplevel, OBJECT *object, int whichone, FILE *fp, int output_type);
+void s_cue_output_lowlevel_midpoints(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int output_type);
+void s_cue_output_single(TOPLEVEL *toplevel, OBJECT *object, FILE *fp, int type);
 
 /* s_encoding.c */
 gchar* s_encoding_base64_encode (gchar* src, guint srclen, guint* dstlenp, gboolean strict);
 gchar* s_encoding_base64_decode (gchar* src, guint srclen, guint* dstlenp);
 
 /* s_hierarchy.c */
-int s_hierarchy_down_schematic_single(TOPLEVEL *w_current, const gchar *filename, PAGE *parent, int page_control, int flag);
-void s_hierarchy_down_schematic_multiple (TOPLEVEL *w_current, const gchar *filename, PAGE *parent);
-void s_hierarchy_down_symbol (TOPLEVEL *w_current, const CLibSymbol *symbol, PAGE *parent);
-void s_hierarchy_up(TOPLEVEL *w_current, int pid);
-GList* s_hierarchy_traversepages(TOPLEVEL *w_current, gint flags);
+int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel, const gchar *filename, PAGE *parent, int page_control, int flag);
+void s_hierarchy_down_schematic_multiple (TOPLEVEL *toplevel, const gchar *filename, PAGE *parent);
+void s_hierarchy_down_symbol (TOPLEVEL *toplevel, const CLibSymbol *symbol, PAGE *parent);
+void s_hierarchy_up(TOPLEVEL *toplevel, int pid);
+GList* s_hierarchy_traversepages(TOPLEVEL *toplevel, gint flags);
 gint s_hierarchy_print_page(PAGE *p_current, void * data);
 PAGE *s_hierarchy_find_prev_page(GedaPageList *page_list, PAGE *current_page, int page_control);
 PAGE *s_hierarchy_find_next_page(GedaPageList *page_list, PAGE *current_page, int page_control);
@@ -577,7 +577,7 @@ gint s_page_save_all (TOPLEVEL *toplevel);
 gboolean s_page_check_changed (GedaPageList *list);
 void s_page_clear_changed (GedaPageList *list);
 void s_page_autosave_init(TOPLEVEL *toplevel);
-gint s_page_autosave (TOPLEVEL *w_current);
+gint s_page_autosave (TOPLEVEL *toplevel);
 
 /* s_papersizes.c */
 int s_papersizes_add_entry(char *new_papersize, int width, int height);
@@ -616,18 +616,18 @@ STRETCH *s_stretch_new_head(void);
 void s_stretch_destroy_head(STRETCH *s_head);
 STRETCH *s_stretch_add(STRETCH *head, OBJECT *object, CONN *connection, int whichone);
 void s_stretch_remove(STRETCH *head, OBJECT *object);
-void s_stretch_remove_most(TOPLEVEL *w_current, STRETCH *head);
+void s_stretch_remove_most(TOPLEVEL *toplevel, STRETCH *head);
 void s_stretch_print_all(STRETCH *head);
 void s_stretch_destroy_all(STRETCH *head);
 
 /* s_tile.c */
-void s_tile_init(TOPLEVEL *w_current, PAGE *p_current);
+void s_tile_init(TOPLEVEL *toplevel, PAGE *p_current);
 TILE_LOC *s_tile_new_loc(int i, int j);
-void s_tile_add_object(TOPLEVEL *w_current, OBJECT *object, int world_x1, int world_y1, int world_x2, int world_y2);
-void s_tile_remove_object_all_crude(TOPLEVEL *w_current, OBJECT *object);
-void s_tile_remove_object_all(TOPLEVEL *w_current, PAGE *p_current, OBJECT *object);
-void s_tile_update_object(TOPLEVEL *w_current, OBJECT *object);
-void s_tile_print(TOPLEVEL *w_current);
+void s_tile_add_object(TOPLEVEL *toplevel, OBJECT *object, int world_x1, int world_y1, int world_x2, int world_y2);
+void s_tile_remove_object_all_crude(TOPLEVEL *toplevel, OBJECT *object);
+void s_tile_remove_object_all(TOPLEVEL *toplevel, PAGE *p_current, OBJECT *object);
+void s_tile_update_object(TOPLEVEL *toplevel, OBJECT *object);
+void s_tile_print(TOPLEVEL *toplevel);
 void s_tile_free_all(PAGE *p_current);
 
 /* s_undo.c */
@@ -637,12 +637,12 @@ UNDO *s_undo_new_head(void);
 void s_undo_destroy_head(UNDO *u_head);
 UNDO *s_undo_add(UNDO *head, int type, char *filename, OBJECT *object_head, int left, int top, int right, int bottom, int page_control, int up);
 void s_undo_print_all(UNDO *head);
-void s_undo_destroy_all(TOPLEVEL *w_current, UNDO *head);
-void s_undo_remove(TOPLEVEL *w_current, UNDO *head, UNDO *u_tos);
-void s_undo_remove_rest(TOPLEVEL *w_current, UNDO *head);
+void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head);
+void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos);
+void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head);
 int s_undo_levels(UNDO *head);
 void s_undo_init(PAGE *p_current);
-void s_undo_free_all(TOPLEVEL *w_current, PAGE *p_current);
+void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current);
 
 /* u_basic.c */
 char *u_basic_breakup_string(char *string, char delimiter, int count);
diff --git a/libgeda/src/a_basic.c b/libgeda/src/a_basic.c
index 06c3149..5ba85a7 100644
--- a/libgeda/src/a_basic.c
+++ b/libgeda/src/a_basic.c
@@ -46,19 +46,19 @@
  *  \par Function Description
  *  This function will save all embedded attributes to a file.
  *
- *  \param [in,out] w_current
+ *  \param [in,out] toplevel
  *  \param [in]     object_list  The list of attributes to write to file
  *  \param [in]     fp           The file to write to.
  */
-void o_save_embedded(TOPLEVEL *w_current, OBJECT *object_list, FILE *fp)
+void o_save_embedded(TOPLEVEL *toplevel, OBJECT *object_list, FILE *fp)
 {
   OBJECT *o_current=NULL;
   char *out;
 
   /* make sure you init net_consolide to false (default) in all */
   /* programs */
-  if (w_current->net_consolidate == TRUE) {
-    o_net_consolidate(w_current);
+  if (toplevel->net_consolidate == TRUE) {
+    o_net_consolidate(toplevel);
   }
 	
   o_current = object_list;
@@ -97,7 +97,7 @@ void o_save_embedded(TOPLEVEL *w_current, OBJECT *object_list, FILE *fp)
               fprintf(fp, "[\n");
 								
               o_save_embedded(
-                              w_current,
+                              toplevel,
                               o_current->
                               complex->prim_objs,
                               fp);
@@ -164,11 +164,11 @@ void o_save_write_header(FILE *fp)
 /*! \brief Save a file
  *  \par Function Description
  *  This function saves the data in a libgeda format to a file
- *  \param [in] w_current  The data to save to file.
+ *  \param [in] toplevel  The data to save to file.
  *  \param [in] filename   The filename to save the data to.
  *  \return 1 on success, 0 on failure.
  */
-int o_save(TOPLEVEL *w_current, const char *filename)
+int o_save(TOPLEVEL *toplevel, const char *filename)
 {
   OBJECT *o_current=NULL;
   FILE *fp;
@@ -183,12 +183,12 @@ int o_save(TOPLEVEL *w_current, const char *filename)
   }
 
 
-  o_current = w_current->page_current->object_head;
+  o_current = toplevel->page_current->object_head;
 
   /* make sure you init net_consolide to false (default) in all */
   /* programs */
-  if (w_current->net_consolidate == TRUE) {
-    o_net_consolidate(w_current);
+  if (toplevel->net_consolidate == TRUE) {
+    o_net_consolidate(toplevel);
   }
 
   o_save_write_header(fp);
@@ -230,7 +230,7 @@ int o_save(TOPLEVEL *w_current, const char *filename)
               fprintf(fp, "[\n");
 								
               o_save_embedded(
-                              w_current,
+                              toplevel,
                               o_current->
                               complex->prim_objs,
                               fp);
@@ -299,14 +299,14 @@ int o_save(TOPLEVEL *w_current, const char *filename)
  *  The name argument is used for debugging, and should be set to a
  *  meaningful string (e.g. the name of the file the data is from).
  *
- *  \param [in,out] w_current    The current TOPLEVEL structure.
+ *  \param [in,out] toplevel    The current TOPLEVEL structure.
  *  \param [in]     object_list  The object_list to read data to.
  *  \param [in]     buffer       The memory buffer to read from.
  *  \param [in]     size         The size of the buffer.
  *  \param [in]     name         The name to describe the data with.
  *  \return object_list if successful read, or NULL on error.
  */
-OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list, 
+OBJECT *o_read_buffer(TOPLEVEL *toplevel, OBJECT *object_list,
 		      char *buffer, const int size, 
 		      const char *name)
 {
@@ -356,49 +356,49 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
     {
         /* yes */
         /* verify symbol version (not file format but rather contents) */
-        o_complex_check_symversion(w_current, last_complex);
+        o_complex_check_symversion(toplevel, last_complex);
         last_complex = NULL;  /* no longer need to check */
     }
 
     switch (objtype) {
 
       case(OBJ_LINE):
-        object_list = (OBJECT *) o_line_read(w_current, object_list, line, 
+        object_list = (OBJECT *) o_line_read(toplevel, object_list, line,
 	                                     release_ver, fileformat_ver);
         break;
 
 
       case(OBJ_NET):
-        object_list = (OBJECT *) o_net_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_net_read(toplevel, object_list, line,
                                             release_ver, fileformat_ver);
         break;
 
       case(OBJ_BUS):
-        object_list = (OBJECT *) o_bus_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_bus_read(toplevel, object_list, line,
                                             release_ver, fileformat_ver);
         break;
 
       case(OBJ_BOX):
-        object_list = (OBJECT *) o_box_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_box_read(toplevel, object_list, line,
                                             release_ver, fileformat_ver);
         break;
 		
       case(OBJ_PICTURE):
 	line = g_strdup(line);
-        object_list = (OBJECT *) o_picture_read(w_current, object_list, 
+        object_list = (OBJECT *) o_picture_read(toplevel, object_list,
 						line, tb,
 						release_ver, fileformat_ver);
 	g_free (line);
         break;
 		
       case(OBJ_CIRCLE):
-        object_list = (OBJECT *) o_circle_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_circle_read(toplevel, object_list, line,
                                                release_ver, fileformat_ver);
         break;
 
       case(OBJ_COMPLEX):
       case(OBJ_PLACEHOLDER):
-        object_list = (OBJECT *) o_complex_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_complex_read(toplevel, object_list, line,
                                                 release_ver, fileformat_ver);
 
         /* this is necessary because complex may add attributes which float */
@@ -411,20 +411,20 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
 
       case(OBJ_TEXT):
 	line = g_strdup(line);
-        object_list = (OBJECT *) o_text_read(w_current, object_list, 
+        object_list = (OBJECT *) o_text_read(toplevel, object_list,
 					     line, tb,
                                              release_ver, fileformat_ver);
 	g_free(line);
         break;
 
       case(OBJ_PIN):
-        object_list = (OBJECT *) o_pin_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_pin_read(toplevel, object_list, line,
                                             release_ver, fileformat_ver);
         found_pin++;
         break;
 
       case(OBJ_ARC):
-        object_list = (OBJECT *) o_arc_read(w_current, object_list, line,
+        object_list = (OBJECT *) o_arc_read(toplevel, object_list, line,
                                             release_ver, fileformat_ver);
         break;
 
@@ -432,7 +432,7 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
         object_before_attr = object_list;
 	/* first is the fp */
 	/* 2nd is the object to get the attributes */ 
-        object_list = (OBJECT *) o_read_attribs(w_current, object_list,
+        object_list = (OBJECT *) o_read_attribs(toplevel, object_list,
 						tb,
                                                 release_ver, fileformat_ver);
 
@@ -442,14 +442,14 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
         {
           /* yes */
           /* verify symbol version (not file format but rather contents) */
-          o_complex_check_symversion(w_current, last_complex);
+          o_complex_check_symversion(toplevel, last_complex);
           last_complex = NULL;
         }
         
 	/* slots only apply to complex objects */
         if (object_before_attr->type == OBJ_COMPLEX || 
 	    object_before_attr->type == OBJ_PLACEHOLDER) {
-          o_attrib_slot_update(w_current, object_before_attr);	
+          o_attrib_slot_update(toplevel, object_before_attr);
         }
 
 	/* need this? nope */
@@ -465,9 +465,9 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
         	object_list_save = object_list;
         	object_list = object_list_save->complex->prim_objs;
 				
-        	temp_tail = w_current->page_current->object_tail;
-        	temp_parent = w_current->page_current->object_parent;
-        	w_current->page_current->object_parent = object_list;
+        	temp_tail = toplevel->page_current->object_tail;
+        	temp_parent = toplevel->page_current->object_parent;
+        	toplevel->page_current->object_parent = object_list;
 
 		embedded_level++;
 	} else {
@@ -482,13 +482,13 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
         	object_list = object_list_save;
 		/* don't do this since objects are already
 		 * stored/read translated 
-	         * o_complex_world_translate(w_current, object_list->x,
+	         * o_complex_world_translate(toplevel, object_list->x,
                  *                   object_list->y, object_list->complex);
 		 */
-	        w_current->page_current->object_tail = temp_tail;
-	        w_current->page_current->object_parent = temp_parent;
+	        toplevel->page_current->object_tail = temp_tail;
+	        toplevel->page_current->object_parent = temp_parent;
 
-          o_complex_recalc( w_current, object_list );
+          o_complex_recalc( toplevel, object_list );
 		embedded_level--;
 	} else {
         	fprintf(stderr, "Read unexpected embedded "
@@ -541,13 +541,13 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
   /* and had no attached attributes */
   if (last_complex)
   {
-        o_complex_check_symversion(w_current, last_complex);
+        o_complex_check_symversion(toplevel, last_complex);
         last_complex = NULL;  /* no longer need to check */
   }
 
   if (found_pin) {
     if (release_ver <= VERSION_20020825) {
-      o_pin_update_whichend(w_current, return_head(object_list), found_pin);
+      o_pin_update_whichend(toplevel, return_head(object_list), found_pin);
     }
   }
 
@@ -561,12 +561,12 @@ OBJECT *o_read_buffer(TOPLEVEL *w_current, OBJECT *object_list,
  *  \par Function Description
  *  This function reads a file in libgeda format.
  *
- *  \param [in,out] w_current    The current TOPLEVEL structure.
+ *  \param [in,out] toplevel    The current TOPLEVEL structure.
  *  \param [in]     object_list  The object_list to read data to.
  *  \param [in]     filename     The filename to read from.
  *  \return object_list if successful read, or NULL on error.
  */
-OBJECT *o_read(TOPLEVEL *w_current, OBJECT *object_list, char *filename)
+OBJECT *o_read(TOPLEVEL *toplevel, OBJECT *object_list, char *filename)
 {
   GError *err = NULL;
   char *buffer = NULL;
@@ -589,7 +589,7 @@ OBJECT *o_read(TOPLEVEL *w_current, OBJECT *object_list, char *filename)
 
   /* Parse file contents */
   g_assert (buffer != NULL);
-  result = o_read_buffer (w_current, object_list, buffer, size, filename);
+  result = o_read_buffer (toplevel, object_list, buffer, size, filename);
   g_free (buffer);
   return result;
 }
@@ -599,7 +599,7 @@ OBJECT *o_read(TOPLEVEL *w_current, OBJECT *object_list, char *filename)
  *  This function takes a list of lines and scales them
  *  by the values of x_scale and y_scale.
  *
- *  \param [in] w_current  The current TOPLEVEL object.
+ *  \param [in] toplevel  The current TOPLEVEL object.
  *  \param [in,out]  list  The list with lines to scale.
  *  \param [in]   x_scale  The x scale value for the lines.
  *  \param [in]   y_scale  The y scale value for the lines.
@@ -609,15 +609,15 @@ OBJECT *o_read(TOPLEVEL *w_current, OBJECT *object_list, char *filename)
  *        stuff
  *        move it to o_complex_scale
  */
-void o_scale(TOPLEVEL *w_current, OBJECT *list, int x_scale, int y_scale)
+void o_scale(TOPLEVEL *toplevel, OBJECT *list, int x_scale, int y_scale)
 {
   OBJECT *o_current;
 
   /* this is okay if you just hit scale and have nothing selected */
   if (list == NULL) { 
-    /* w_current->event_state = SELECT;*/
-    /* i_update_status(w_current, "Select Mode"); not here */
-    /*		w_current->inside_action = 0;*/
+    /* toplevel->event_state = SELECT;*/
+    /* i_update_status(toplevel, "Select Mode"); not here */
+    /*		toplevel->inside_action = 0;*/
     return;
   }
 
@@ -631,13 +631,13 @@ void o_scale(TOPLEVEL *w_current, OBJECT *list, int x_scale, int y_scale)
 
       case(OBJ_LINE):
 				/* erase the current selection */
-        w_current->override_color =
-          w_current->background_color;
-        o_redraw_single(w_current, o_current);
-                                /* o_line_draw(w_current, o_current);*/
-        w_current->override_color = -1;
+        toplevel->override_color =
+          toplevel->background_color;
+        o_redraw_single(toplevel, o_current);
+                                /* o_line_draw(toplevel, o_current);*/
+        toplevel->override_color = -1;
 
-        o_line_scale_world(w_current, 
+        o_line_scale_world(toplevel,
                            x_scale, y_scale, o_current);
         break;
     }
@@ -646,7 +646,7 @@ void o_scale(TOPLEVEL *w_current, OBJECT *list, int x_scale, int y_scale)
   }
 
   /* don't do this at this level */
-  /* w_current->page_current->CHANGED=1;*/
+  /* toplevel->page_current->CHANGED=1;*/
 }
 
 
diff --git a/libgeda/src/f_basic.c b/libgeda/src/f_basic.c
index c6d8569..331fd4a 100644
--- a/libgeda/src/f_basic.c
+++ b/libgeda/src/f_basic.c
@@ -53,14 +53,14 @@
  *  Opens the schematic file by calling f_open_flags() with the
  *  F_OPEN_RC and F_OPEN_CHECK_BACKUP flags.
  *
- *  \param [in,out] w_current  The TOPLEVEL object to load the schematic into.
+ *  \param [in,out] toplevel  The TOPLEVEL object to load the schematic into.
  *  \param [in]      filename  A character string containing the file name
  *                             to open.
  *  \return 0 on failure, 1 on success.
  */
-int f_open(TOPLEVEL *w_current, const gchar *filename)
+int f_open(TOPLEVEL *toplevel, const gchar *filename)
 {
-  return f_open_flags (w_current, filename, 
+  return f_open_flags (toplevel, filename,
                        F_OPEN_RC | F_OPEN_CHECK_BACKUP);
 }
 
@@ -74,13 +74,13 @@ int f_open(TOPLEVEL *w_current, const gchar *filename)
  *  load the backup instead.  If #F_OPEN_RESTORE_CWD is set, does not
  *  change the working directory to that of the file being loaded.
  *
- *  \param [in,out] w_current  The TOPLEVEL object to load the schematic into.
+ *  \param [in,out] toplevel  The TOPLEVEL object to load the schematic into.
  *  \param [in]     filename   A character string containing the file name
  *                             to open.
  *  \param [in]     flags      Combination of #FOpenFlags values.
  *  \return 0 on failure, 1 on success.
  */
-int f_open_flags(TOPLEVEL *w_current, const gchar *filename, 
+int f_open_flags(TOPLEVEL *toplevel, const gchar *filename,
                  const gint flags)
 {
   int opened=FALSE;
@@ -94,9 +94,9 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
   /* has the head been freed yet? */
   /* probably not hack PAGE */
 
-  set_window(w_current, w_current->page_current,
-             w_current->init_left, w_current->init_right,
-             w_current->init_top,  w_current->init_bottom);
+  set_window(toplevel, toplevel->page_current,
+             toplevel->init_left, toplevel->init_right,
+             toplevel->init_top,  toplevel->init_bottom);
 
 
   /* Cache the cwd so we can restore it later. */
@@ -109,10 +109,10 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
   full_filename = f_normalize_filename(filename); 
 
   /* write full, absolute filename into page_current->page_filename */
-  if (w_current->page_current->page_filename) {
-    g_free(w_current->page_current->page_filename);
+  if (toplevel->page_current->page_filename) {
+    g_free(toplevel->page_current->page_filename);
   }
-  w_current->page_current->page_filename = g_strdup(full_filename);
+  toplevel->page_current->page_filename = g_strdup(full_filename);
 
   /* Before we open the page, let's load the corresponding gafrc. */
   /* First cd into file's directory. */
@@ -129,7 +129,7 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
                                    G_DIR_SEPARATOR_S, 
                                    "gafrc",
                                    NULL);
-    g_rc_parse_specified_rc(w_current, full_rcfilename);
+    g_rc_parse_specified_rc(toplevel, full_rcfilename);
   }
 
   if (flags & F_OPEN_CHECK_BACKUP) {
@@ -173,7 +173,7 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
             g_string_append(message, "The backup copy is newer than the schematic, so it seems you should load it instead of the original file.\n");
           }
           g_string_append (message, "Gschem usually makes backup copies automatically, and this situation happens when it crashed or it was forced to exit abruptly.\n");
-          if (w_current->page_current->load_newer_backup_func == NULL) {
+          if (toplevel->page_current->load_newer_backup_func == NULL) {
             s_log_message(message->str);
             s_log_message("\nRun gschem and correct the situation.\n\n");
             fprintf(stderr, message->str);
@@ -181,8 +181,8 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
           }
           else {
             /* Ask the user if load the backup or the original file */
-            if (w_current->page_current->load_newer_backup_func 
-                (w_current, message)) {
+            if (toplevel->page_current->load_newer_backup_func
+                (toplevel, message)) {
               /* Load the backup file */
               load_backup_file = 1;
             }
@@ -196,17 +196,17 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
    * the RC file, it's time to read in the file. */
   if (load_backup_file == 1) {
     /* Load the backup file */
-    w_current->page_current->object_tail = (OBJECT *) 
-    o_read(w_current, w_current->page_current->object_tail, 
+    toplevel->page_current->object_tail = (OBJECT *)
+    o_read(toplevel, toplevel->page_current->object_tail,
 	   backup_filename);
   } else if (g_file_test (full_filename, G_FILE_TEST_EXISTS)) {
     /* Load the original file */
-    w_current->page_current->object_tail = (OBJECT *) 
-    o_read(w_current, w_current->page_current->object_tail, 
+    toplevel->page_current->object_tail = (OBJECT *)
+    o_read(toplevel, toplevel->page_current->object_tail,
 	   full_filename);
   }
 
-  if (w_current->page_current->object_tail != NULL) {
+  if (toplevel->page_current->object_tail != NULL) {
     s_log_message("Opened file [%s]\n", full_filename);
     opened = TRUE;
   } else {
@@ -214,23 +214,23 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
     opened = FALSE;	 
   }
 
-  w_current->page_current->object_tail 
-    = (OBJECT *) return_tail(w_current->page_current->object_head); 
+  toplevel->page_current->object_tail
+    = (OBJECT *) return_tail(toplevel->page_current->object_head);
 
   /* make sure you init net_consolide to false (default) in all */
   /* programs */
-  if (w_current->net_consolidate == TRUE) {	
-    o_net_consolidate(w_current);
+  if (toplevel->net_consolidate == TRUE) {
+    o_net_consolidate(toplevel);
   }
 
   if (load_backup_file == 0) {
     /* If it's not the backup file */
-    w_current->page_current->CHANGED=0; /* added 4/7/98 */
+    toplevel->page_current->CHANGED=0; /* added 4/7/98 */
   }
   else {
     /* We are loading the backup file, so gschem should ask
        the user if save it or not when closing the page. */
-    w_current->page_current->CHANGED=1;
+    toplevel->page_current->CHANGED=1;
   }
 
   g_free(full_filename);
@@ -255,9 +255,9 @@ int f_open_flags(TOPLEVEL *w_current, const gchar *filename,
  *  \par Function Description
  *  Does nothing
  *
- *  \param [in,out] w_current  The TOPLEVEL object with schematic to be closed.
+ *  \param [in,out] toplevel  The TOPLEVEL object with schematic to be closed.
  */
-void f_close(TOPLEVEL *w_current)
+void f_close(TOPLEVEL *toplevel)
 {
 
 }
@@ -267,24 +267,24 @@ void f_close(TOPLEVEL *w_current)
  *  This function will save the current schematic file before closing it.
  *  It also deletes the page_current item in the TOPLEVEL structure.
  *
- *  \param [in,out] w_current  The TOPLEVEL object containing the schematic.
+ *  \param [in,out] toplevel  The TOPLEVEL object containing the schematic.
  *  \param [in]      filename  The file name to save the schematic to.
  */
-void f_save_close(TOPLEVEL *w_current, char *filename)
+void f_save_close(TOPLEVEL *toplevel, char *filename)
 {
-  o_save(w_current, filename);
-  s_page_delete (w_current, w_current->page_current);
+  o_save(toplevel, filename);
+  s_page_delete (toplevel, toplevel->page_current);
 }
 
 /*! \brief Save the schematic file
  *  \par Function Description
- *  This function saves the current schematic file in the w_current object.
+ *  This function saves the current schematic file in the toplevel object.
  *
- *  \param [in,out] w_current  The TOPLEVEL object containing the schematic.
+ *  \param [in,out] toplevel  The TOPLEVEL object containing the schematic.
  *  \param [in]      filename  The file name to save the schematic to.
  *  \return 1 on success, 0 on failure.
  */
-int f_save(TOPLEVEL *w_current, const char *filename)
+int f_save(TOPLEVEL *toplevel, const char *filename)
 {
   gchar *backup_filename;
   gchar *real_filename;
@@ -307,7 +307,7 @@ int f_save(TOPLEVEL *w_current, const char *filename)
   only_filename = g_path_get_basename(real_filename);  
 
   /* Do a backup if it's not an undo file backup and it was never saved. */
-  if (w_current->page_current->saved_since_first_loaded == 0) {    
+  if (toplevel->page_current->saved_since_first_loaded == 0) {
     if ( (g_file_test (real_filename, G_FILE_TEST_EXISTS)) && 
 	 (!g_file_test(real_filename, G_FILE_TEST_IS_DIR)) )
     {
@@ -371,14 +371,14 @@ int f_save(TOPLEVEL *w_current, const char *filename)
   g_free (dirname);
   g_free (only_filename);
   
-  if (o_save(w_current, real_filename)) {
+  if (o_save(toplevel, real_filename)) {
 
-    w_current->page_current->saved_since_first_loaded = 1;
+    toplevel->page_current->saved_since_first_loaded = 1;
 
     /* Reset the last saved timer */
-    g_get_current_time (&w_current->page_current->last_load_or_save_time);
-    w_current->page_current->ops_since_last_backup = 0;
-    w_current->page_current->do_autosave_backup = 0;
+    g_get_current_time (&toplevel->page_current->last_load_or_save_time);
+    toplevel->page_current->ops_since_last_backup = 0;
+    toplevel->page_current->do_autosave_backup = 0;
 
     /* Restore permissions. */
     chmod (real_filename, st.st_mode);
diff --git a/libgeda/src/f_print.c b/libgeda/src/f_print.c
index 7c6e061..2660ddd 100644
--- a/libgeda/src/f_print.c
+++ b/libgeda/src/f_print.c
@@ -41,7 +41,7 @@
  */
 GHashTable *unicode_char_to_glyph = NULL;
 
-static int f_print_get_unicode_chars(TOPLEVEL * w_current, OBJECT * head,
+static int f_print_get_unicode_chars(TOPLEVEL * toplevel, OBJECT * head,
 				     int count, gunichar * table);
 static void f_print_unicode_map(FILE * fp, int count, gunichar * table);
 
@@ -88,13 +88,13 @@ void f_print_set_color(FILE *fp, int color)
  *  This function will print a document preamble and header
  *  for a postscript document.
  *
- *  \param [in] w_current     The TOPLEVEL object to create document for.
+ *  \param [in] toplevel     The TOPLEVEL object to create document for.
  *  \param [in] fp            The postscript document to write to.
  *  \param [in] paper_size_x  The width of the document on paper in inches.
  *  \param [in] paper_size_y  The height of the document on paper in inches.
  *  \return 0 on success, -1 on failure.
  */
-int f_print_header(TOPLEVEL *w_current, FILE *fp, 
+int f_print_header(TOPLEVEL *toplevel, FILE *fp,
 		   int paper_size_x, int paper_size_y, int eps) 
 {
   char *buf;
@@ -132,10 +132,10 @@ int f_print_header(TOPLEVEL *w_current, FILE *fp,
 	  "%%%%BeginProlog\n",
 	  DATE_VERSION,
 	  ctime(&current_time),
-	  w_current->page_current->page_filename,
+	  toplevel->page_current->page_filename,
 	  getlogin(),
 	  llx, lly, urx, ury,
-	  ((w_current->print_orientation == LANDSCAPE) 
+	  ((toplevel->print_orientation == LANDSCAPE)
 	   ? "Landscape" : "Portrait")
 	  );
 
@@ -150,11 +150,11 @@ int f_print_header(TOPLEVEL *w_current, FILE *fp,
     return -1;
   }
   /* Open the prolog file */
-  prolog = fopen(w_current->postscript_prolog,"r");
+  prolog = fopen(toplevel->postscript_prolog,"r");
   if(prolog == NULL) {
     s_log_message("Unable to open the prolog file `%s' for reading "
 		  "in f_print_header()\n"
-		  "Giving up on printing\n", w_current->postscript_prolog);
+		  "Giving up on printing\n", toplevel->postscript_prolog);
     g_free(buf);  /* If we got to here, the buffer was allocated. */
     return -1;
   }
@@ -170,7 +170,7 @@ int f_print_header(TOPLEVEL *w_current, FILE *fp,
   if(ferror(prolog)) {
     s_log_message("Error during reading of the prolog file `%s' "
 		  "in f_print_header()\n"
-		  "Giving up on printing\n", w_current->postscript_prolog);
+		  "Giving up on printing\n", toplevel->postscript_prolog);
     g_free(buf);  /* If we got to here, the buffer was allocated. */
     return -1;
   }
@@ -207,12 +207,12 @@ void f_print_footer(FILE *fp)
 	  "%%%%End\n");
 }
 
-/*! \brief Print all objects from the w_current TOPLEVEL object.
+/*! \brief Print all objects from the toplevel TOPLEVEL object.
  *  \par Function Description
  *  This function will parse the head parameter for all objects
  *  and write the to the postscript document.
  *
- *  \param [in] w_current      The current TOPLEVEL object.
+ *  \param [in] toplevel      The current TOPLEVEL object.
  *  \param [in] fp             The postscript document to print to.
  *  \param [in] head           Container for objects to be printed.
  *  \param [in] start_x        X origin on page to start printing objects.
@@ -224,7 +224,7 @@ void f_print_footer(FILE *fp)
  *
  *  \todo  what happens if snap is off? hack deal with this !!!!!!!!
  */
-void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head, 
+void f_print_objects(TOPLEVEL *toplevel, FILE *fp, OBJECT *head,
 		     int start_x, int start_y, float scale, 
 		     int unicode_count, gunichar *unicode_table)
 {
@@ -257,27 +257,27 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
 
       switch (o_current->type) {
         case(OBJ_LINE):
-          o_line_print(w_current, fp, o_current,
+          o_line_print(toplevel, fp, o_current,
                        origin_x, origin_y);
           break;
 	
         case(OBJ_NET):
-          o_net_print(w_current, fp, o_current,
+          o_net_print(toplevel, fp, o_current,
                       origin_x, origin_y);
           break;
 
         case(OBJ_BUS):
-          o_bus_print(w_current, fp, o_current,
+          o_bus_print(toplevel, fp, o_current,
                       origin_x, origin_y);
           break;
 	
         case(OBJ_BOX):
-          o_box_print(w_current, fp, o_current,
+          o_box_print(toplevel, fp, o_current,
                       origin_x, origin_y);
           break;
 			
         case(OBJ_CIRCLE):
-          o_circle_print(w_current, fp, o_current,
+          o_circle_print(toplevel, fp, o_current,
                          origin_x, origin_y);
           break;
 
@@ -285,7 +285,7 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
         case(OBJ_PLACEHOLDER): /* new object -- 1.20.2005 SDB */
           fprintf(fp, "gsave\n");
 
-          f_print_objects(w_current, fp, 
+          f_print_objects(toplevel, fp,
                           o_current->complex->prim_objs,
                           origin_x, origin_y, scale,
 			  unicode_count, unicode_table);
@@ -299,11 +299,11 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
 	    /* Look at flags and determine if vector text should
 	     * be used for output.
 	     */
-	    if(w_current->text_output == VECTOR_FONTS) {
+	    if(toplevel->text_output == VECTOR_FONTS) {
 	      vectors = 1;
-	    } else if( (w_current->print_vector_threshold > 0)
+	    } else if( (toplevel->print_vector_threshold > 0)
 			&& ( o_text_num_lines(o_current->text->string) > 
-			     w_current->print_vector_threshold)) {
+			     toplevel->print_vector_threshold)) {
 	      vectors = 1;
 	    }
             
@@ -312,7 +312,7 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
             if (vectors)
             {	
 	      /* Output vectors */
-              f_print_objects(w_current, 
+              f_print_objects(toplevel,
                               fp, 
                               o_current->text->
                               prim_objs,
@@ -320,7 +320,7 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
                               scale, unicode_count, unicode_table);
             } else {
 	      /* Output text */
-              o_text_print(w_current, fp, 
+              o_text_print(toplevel, fp,
                            o_current,
                            origin_x, origin_y, unicode_count, unicode_table);
             }
@@ -331,17 +331,17 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
 
 
         case(OBJ_PIN):
-          o_pin_print(w_current, fp, o_current,
+          o_pin_print(toplevel, fp, o_current,
                       origin_x, origin_y);
           break;
 	
         case(OBJ_ARC):
-          o_arc_print(w_current, fp, o_current,
+          o_arc_print(toplevel, fp, o_current,
                       origin_x, origin_y);
           break;
 
   	case(OBJ_PICTURE):
-          o_picture_print(w_current, fp, o_current,
+          o_picture_print(toplevel, fp, o_current,
 			  origin_x, origin_y);
 	  break;
 
@@ -355,7 +355,7 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
     o_current = o_current->next;
   }
 
-  s_cue_output_all(w_current, head, fp, POSTSCRIPT);
+  s_cue_output_all(toplevel, head, fp, POSTSCRIPT);
   return;
 }
 
@@ -364,11 +364,11 @@ void f_print_objects(TOPLEVEL *w_current, FILE *fp, OBJECT *head,
  *
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object to print.
+ *  \param [in] toplevel  The TOPLEVEL object to print.
  *  \param [in] filename   The file name of the output postscript document.
  *  \return 0 on success, -1 on failure.
  */
-int f_print_file (TOPLEVEL *w_current, const char *filename)
+int f_print_file (TOPLEVEL *toplevel, const char *filename)
 {
   FILE *fp;
   int result;
@@ -382,7 +382,7 @@ int f_print_file (TOPLEVEL *w_current, const char *filename)
     return -1;
   }
 
-  result = f_print_stream(w_current, fp);
+  result = f_print_stream(toplevel, fp);
   
   if (result != 0) {
     /* If there was an error in f_print_stream, then unlink the output file. */
@@ -397,11 +397,11 @@ int f_print_file (TOPLEVEL *w_current, const char *filename)
  *
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object to print.
+ *  \param [in] toplevel  The TOPLEVEL object to print.
  *  \param [in] command    The command to print to.
  *  \return 0 on success, -1 on failure.
  */
-int f_print_command (TOPLEVEL *w_current, const char *command)
+int f_print_command (TOPLEVEL *toplevel, const char *command)
 {
   FILE *fp;
   int result;
@@ -415,7 +415,7 @@ int f_print_command (TOPLEVEL *w_current, const char *command)
       return -1;
     }
 
-  result = f_print_stream (w_current, fp);
+  result = f_print_stream (toplevel, fp);
   pclose (fp);
   return result;
 }
@@ -424,12 +424,12 @@ int f_print_command (TOPLEVEL *w_current, const char *command)
  *  postscript document.  
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object to print.
+ *  \param [in] toplevel  The TOPLEVEL object to print.
  *  \param [in] fp         A pointer to an open IO stream
  *  \return 0 on success, -1 on failure.
  */
 
-int f_print_stream(TOPLEVEL *w_current, FILE *fp)
+int f_print_stream(TOPLEVEL *toplevel, FILE *fp)
 {
   int origin_x, origin_y, bottom, right;
   int margin_x, margin_y;
@@ -445,21 +445,21 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
   f_print_initialize_glyph_table();  /* Fill up unicode map */
 
   /* Find all the unicode characters */
-  unicode_count = f_print_get_unicode_chars(w_current,
-			 w_current->page_current->object_head, 
+  unicode_count = f_print_get_unicode_chars(toplevel,
+			 toplevel->page_current->object_head,
 			 0, unicode_table);
 
-  /*	printf("%d %d\n", w_current->paper_width, w_current->paper_height);*/
+  /*	printf("%d %d\n", toplevel->paper_width, toplevel->paper_height);*/
 
-  world_get_object_list_bounds(w_current,
-                               w_current->page_current->object_head,
+  world_get_object_list_bounds(toplevel,
+                               toplevel->page_current->object_head,
                                &origin_x, &origin_y,
                                &right, &bottom);
 
   /* Calculate scale factor that will make the image fit on the page */
   dx = 0; dy = 0;
   margin_x = 0; margin_y = 0;
-  switch (w_current->print_output_type) {
+  switch (toplevel->print_output_type) {
   case EXTENTS:
     dx = right  - origin_x;
     dy = bottom - origin_y;
@@ -472,12 +472,12 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
     break;
 
   case WINDOW:
-    dx = w_current->page_current->right - w_current->page_current->left;
-    dy = w_current->page_current->bottom - w_current->page_current->top;
-    origin_x = w_current->page_current->left;
-    origin_y = w_current->page_current->top;
-    right = w_current->page_current->right;
-    bottom = w_current->page_current->bottom;
+    dx = toplevel->page_current->right - toplevel->page_current->left;
+    dy = toplevel->page_current->bottom - toplevel->page_current->top;
+    origin_x = toplevel->page_current->left;
+    origin_y = toplevel->page_current->top;
+    right = toplevel->page_current->right;
+    bottom = toplevel->page_current->bottom;
     break;
 
   case EXTENTS_NOMARGINS:
@@ -490,32 +490,32 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
 
   }
 
-  if(w_current->paper_width == 0) {
+  if(toplevel->paper_width == 0) {
     eps = 1;
-    if(w_current->print_orientation == LANDSCAPE) {
-      w_current->paper_width = dx;
-      w_current->paper_height = dy;
+    if(toplevel->print_orientation == LANDSCAPE) {
+      toplevel->paper_width = dx;
+      toplevel->paper_height = dy;
     } else { /* portrait */
-      w_current->paper_width = dy;
-      w_current->paper_height = dx;
+      toplevel->paper_width = dy;
+      toplevel->paper_height = dx;
     }
   } else
     eps = 0;
   
   scale = 0.0;
-  if(w_current->print_orientation == LANDSCAPE) {
+  if(toplevel->print_orientation == LANDSCAPE) {
     /* First attempt to fit in x direction. */
-    scale = w_current->paper_width / (float)dx;
-    if((w_current->paper_height / (float)dy) < scale ) {
+    scale = toplevel->paper_width / (float)dx;
+    if((toplevel->paper_height / (float)dy) < scale ) {
       /* Else fit with y direction */
-      scale = (w_current->paper_height / (float)dy);
+      scale = (toplevel->paper_height / (float)dy);
     }
   } else { /* portrait */
     /* First attempt to fit in y direction. */
-    scale = w_current->paper_width / (float) dy;
-    if((w_current->paper_height / (float)dx) < scale ) {
+    scale = toplevel->paper_width / (float) dy;
+    if((toplevel->paper_height / (float)dx) < scale ) {
       /* Else fit with x direction */
-      scale = (w_current->paper_height / (float)dx);
+      scale = (toplevel->paper_height / (float)dx);
     }
   }
 
@@ -527,9 +527,9 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
 #endif  
 
   /* Output the header */
-  if (f_print_header(w_current, fp, 
-		     w_current->paper_width, 
-		     w_current->paper_height,
+  if (f_print_header(toplevel, fp,
+		     toplevel->paper_width,
+		     toplevel->paper_height,
 		     eps) != 0) {
 
     /* There was an error in f_print_header */
@@ -549,8 +549,8 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
 
   /* XXX - Do page orientation selection */
 
-/*   if (w_current->setpagedevice_orientation) { */
-/*     if (w_current->print_orientation == LANDSCAPE) { */
+/*   if (toplevel->setpagedevice_orientation) { */
+/*     if (toplevel->print_orientation == LANDSCAPE) { */
 /*       fprintf(fp, "%c%c /Orientation 1 %c%c setpagedevice\n\n", '<', '<', */
 /*               '>', '>'); */
 /*     } else { */
@@ -562,19 +562,19 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
   /* the height and width are in the right order here, since they were
    * specified in landscape order in the system-gschemrc file.
    * \074 is '<', \076 is '>' */
-  if (w_current->setpagedevice_pagesize) {
+  if (toplevel->setpagedevice_pagesize) {
     fprintf(fp, "\074\074 /PageSize [%d %d] \076\076 setpagedevice\n",
-            (w_current->paper_height * 72) / MILS_PER_INCH,
-            (w_current->paper_width * 72) / MILS_PER_INCH);
+            (toplevel->paper_height * 72) / MILS_PER_INCH,
+            (toplevel->paper_width * 72) / MILS_PER_INCH);
   }
 
 
   /* Set line end style */
-  if (w_current->print_output_capstyle == BUTT_CAP) {
+  if (toplevel->print_output_capstyle == BUTT_CAP) {
     fprintf(fp, "0 setlinecap\n");
-  } else if (w_current->print_output_capstyle == SQUARE_CAP) {
+  } else if (toplevel->print_output_capstyle == SQUARE_CAP) {
     fprintf(fp, "2 setlinecap\n");
-  } else if (w_current->print_output_capstyle == ROUND_CAP) {
+  } else if (toplevel->print_output_capstyle == ROUND_CAP) {
     fprintf(fp, "1 setlinecap\n");
   }
 
@@ -584,24 +584,24 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
 
   /* Now the output is defined in terms of mils */
   /* Draw a box with the background colour covering the whole page */
-  if (w_current->print_color) {
-    f_print_set_color(fp, w_current->print_color_background);
+  if (toplevel->print_color) {
+    f_print_set_color(fp, toplevel->print_color_background);
     fprintf(fp,"%d %d 0 0 fbox\n",
-	    w_current->paper_height,
-	    w_current->paper_width);
+	    toplevel->paper_height,
+	    toplevel->paper_width);
   }
 
   /* Now rotate and translate the graphics to fit onto the desired
    * page with the orientation we want. Center it too */
-  if(w_current->print_orientation == LANDSCAPE) {
+  if(toplevel->print_orientation == LANDSCAPE) {
     fprintf(fp,
 	    "%d %d translate 90 rotate\n",
-	    (int)((w_current->paper_height + ( dy-margin_y) * scale)/2.0),
-	    (int)((w_current->paper_width  + (-dx+margin_x) * scale)/2.0));
+	    (int)((toplevel->paper_height + ( dy-margin_y) * scale)/2.0),
+	    (int)((toplevel->paper_width  + (-dx+margin_x) * scale)/2.0));
   } else { /* portrait */
     fprintf(fp,"%d %d translate\n",
-	    (int)((w_current->paper_height + (-dx + margin_x) * scale)/2.0),
-	    (int)((w_current->paper_width  + (-dy + margin_y) * scale)/2.0));
+	    (int)((toplevel->paper_height + (-dx + margin_x) * scale)/2.0),
+	    (int)((toplevel->paper_width  + (-dy + margin_y) * scale)/2.0));
 
   }
 
@@ -610,8 +610,8 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
 	  scale, scale);
 
   /* Print the objects */
-  f_print_objects(w_current, fp, 
-		  w_current->page_current->object_head,
+  f_print_objects(toplevel, fp,
+		  toplevel->page_current->object_head,
 		  origin_x, origin_y, scale, unicode_count, unicode_table);
 
   f_print_footer(fp);
@@ -623,26 +623,26 @@ int f_print_stream(TOPLEVEL *w_current, FILE *fp)
  *  \par Function Description
  *  Sets the current TOPLEVEL object output type.
  *
- *  \param [in,out] w_current  The TOPLEVEL object to set output type in.
+ *  \param [in,out] toplevel  The TOPLEVEL object to set output type in.
  *  \param [in]     type       The print type to set.
  */
-void f_print_set_type(TOPLEVEL *w_current, int type)
+void f_print_set_type(TOPLEVEL *toplevel, int type)
 {
-  w_current->print_output_type = type;
+  toplevel->print_output_type = type;
 }
 
 /*! \brief Converts all text strings to unicode format.
  *  \par Function Description
  *  Converts all text strings to unicode format.
  *
- *  \param [in,out] w_current  The output TOPLEVEL element to store converted
+ *  \param [in,out] toplevel  The output TOPLEVEL element to store converted
  *                             strings in.
  *  \param [in]     head       The object containing strings for conversion.
  *  \param [in]     count      The number of elements in the unicode table.
  *  \param [in]     table      The unicode table.
  *  \return count on success, 0 otherwise.
  */
-static int f_print_get_unicode_chars(TOPLEVEL *w_current, OBJECT *head,
+static int f_print_get_unicode_chars(TOPLEVEL *toplevel, OBJECT *head,
 				     int count, gunichar *table)
 {
   OBJECT *o_current = NULL;
@@ -665,7 +665,7 @@ static int f_print_get_unicode_chars(TOPLEVEL *w_current, OBJECT *head,
       case (OBJ_COMPLEX):
       case (OBJ_PLACEHOLDER):	/* new object -- 1.20.2005 SDB */
 
-	count = f_print_get_unicode_chars(w_current, 
+	count = f_print_get_unicode_chars(toplevel,
                                           o_current->complex->prim_objs, 
                                           count, table);
 	break;
diff --git a/libgeda/src/g_rc.c b/libgeda/src/g_rc.c
index c8ace1d..17d3321 100644
--- a/libgeda/src/g_rc.c
+++ b/libgeda/src/g_rc.c
@@ -125,13 +125,13 @@ extern GHashTable *font_char_to_file;
  *  already been read, it just says OK.  After reading the file, it places
  *  the filename in the list of read files.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fname      RC file name to read.
  *  \param [in] ok_msg     Message to print if file is read ok.
  *  \param [in] err_msg    Message to print if file read error occurs
  *  \return 1 on success, 0 otherwise.
  */
-gint g_rc_parse_general(TOPLEVEL *w_current,
+gint g_rc_parse_general(TOPLEVEL *toplevel,
 			const gchar *fname, 
 			const gchar *ok_msg, const gchar *err_msg)
 {
@@ -139,7 +139,7 @@ gint g_rc_parse_general(TOPLEVEL *w_current,
   GList *found_rc_filename_element;
 
   /* First see if fname is in list of previously read RC files. */
-  found_rc_filename_element = g_list_find_custom(w_current->RC_list, 
+  found_rc_filename_element = g_list_find_custom(toplevel->RC_list,
                                                  (gconstpointer) fname,
                                                  (GCompareFunc) strcmp);
   if (found_rc_filename_element != NULL) {
@@ -153,7 +153,7 @@ gint g_rc_parse_general(TOPLEVEL *w_current,
     g_read_file (fname);
     found_rc = 1;
     /* Everything was OK.  Now add this file to list of read RC files. */
-    w_current->RC_list = g_list_append (w_current->RC_list,
+    toplevel->RC_list = g_list_append (toplevel->RC_list,
                                         g_strdup (fname));
     s_log_message (ok_msg, fname);
   } else {
@@ -193,11 +193,11 @@ const gchar* g_rc_parse_path(void)
  *  \par Function Description
  *  This function wil open and parse a system rc file.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] rcname     System RC file name to parse.
  *  \return 1 on success, 0 on failure.
  */
-gint g_rc_parse_system_rc(TOPLEVEL *w_current, const gchar *rcname)
+gint g_rc_parse_system_rc(TOPLEVEL *toplevel, const gchar *rcname)
 {
   const gchar *geda_data = g_getenv ("GEDADATA");
   gint found_rc;
@@ -223,7 +223,7 @@ gint g_rc_parse_system_rc(TOPLEVEL *w_current, const gchar *rcname)
                              rcname);
   err_msg = g_strdup_printf ("Did not find required system-%s file [%%s]\n",
                              rcname);  
-  found_rc = g_rc_parse_general(w_current, filename, ok_msg, err_msg);
+  found_rc = g_rc_parse_general(toplevel, filename, ok_msg, err_msg);
 
   g_free(ok_msg);
   g_free(err_msg);  
@@ -237,11 +237,11 @@ gint g_rc_parse_system_rc(TOPLEVEL *w_current, const gchar *rcname)
  *  \par Function Description
  *  This function will open and parse a RC file in the users home directory.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] rcname     User's RC file name.
  *  \return 1 on success, 0 on failure.
  */
-gint g_rc_parse_home_rc(TOPLEVEL *w_current, const gchar *rcname)
+gint g_rc_parse_home_rc(TOPLEVEL *toplevel, const gchar *rcname)
 {
   const gchar *home = g_getenv ("HOME");
   gint found_rc;
@@ -268,7 +268,7 @@ gint g_rc_parse_home_rc(TOPLEVEL *w_current, const gchar *rcname)
                              rcname);
   err_msg = g_strdup_printf ("Did not find optional ~/.gEDA/%s file [%%s]\n",
                              rcname);  
-  found_rc = g_rc_parse_general(w_current, filename, ok_msg, err_msg);
+  found_rc = g_rc_parse_general(toplevel, filename, ok_msg, err_msg);
   
   g_free(ok_msg);
   g_free(err_msg);
@@ -282,11 +282,11 @@ gint g_rc_parse_home_rc(TOPLEVEL *w_current, const gchar *rcname)
  *  \par Function Description
  *  This function will open and parse a RC file in the current working directory.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] rcname     Local directory RC file name.
  *  \return 1 on success, 0 on failure.
  */
-gint g_rc_parse_local_rc(TOPLEVEL *w_current, const gchar *rcname)
+gint g_rc_parse_local_rc(TOPLEVEL *toplevel, const gchar *rcname)
 {
   gint found_rc;
   gchar *tmp;
@@ -304,7 +304,7 @@ gint g_rc_parse_local_rc(TOPLEVEL *w_current, const gchar *rcname)
                              rcname);
   err_msg = g_strdup_printf ("Did not find optional local %s file [%%s]\n",
                              rcname);  
-  found_rc = g_rc_parse_general(w_current, filename, ok_msg, err_msg);
+  found_rc = g_rc_parse_general(toplevel, filename, ok_msg, err_msg);
 
   g_free(ok_msg);
   g_free(err_msg);
@@ -318,11 +318,11 @@ gint g_rc_parse_local_rc(TOPLEVEL *w_current, const gchar *rcname)
  *  \par Function Description
  *  This function will open and parse a RC file from a specified location.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] rcname     Specified location RC file name.
  *  \return 1 on success, 0 on failure.
  */
-gint g_rc_parse_specified_rc(TOPLEVEL *w_current, const gchar *rcname)
+gint g_rc_parse_specified_rc(TOPLEVEL *toplevel, const gchar *rcname)
 {
   gint found_rc = 0;
   char *filename;
@@ -339,7 +339,7 @@ gint g_rc_parse_specified_rc(TOPLEVEL *w_current, const gchar *rcname)
                              rcname);
   err_msg = g_strdup_printf ("Did not find specified %s file [%%s]\n",
                              rcname);  
-  found_rc = g_rc_parse_general(w_current, filename, ok_msg, err_msg);
+  found_rc = g_rc_parse_general(toplevel, filename, ok_msg, err_msg);
   
   g_free(ok_msg);
   g_free(err_msg);
@@ -355,13 +355,13 @@ gint g_rc_parse_specified_rc(TOPLEVEL *w_current, const gchar *rcname)
  *  search for the specified_rc_filename.  When none are found it will
  *  call exit(-1) to terminate the program.
  *
- *  \param [in] w_current              The TOPLEVEL object.
+ *  \param [in] toplevel              The TOPLEVEL object.
  *  \param [in] rcname                 RC file name.
  *  \param [in] specified_rc_filename  Specific location RC file name.
  *  \return calls exit(-1) when no RC file matching either rcname or
  *          specified_rc_filename is found.
  */
-void g_rc_parse(TOPLEVEL *w_current,
+void g_rc_parse(TOPLEVEL *toplevel,
 		const gchar *rcname, const gchar *specified_rc_filename)
 {
   gint found_rc = 0;
@@ -380,17 +380,17 @@ void g_rc_parse(TOPLEVEL *w_current,
   /* visit rc files in order */
   /* Changed by SDB 1.2.2005 in response to Peter Kaiser's bug report.
    * Read gafrc files first */
-  found_rc |= g_rc_parse_system_rc(w_current, "gafrc");
-  found_rc |= g_rc_parse_home_rc(w_current, "gafrc");
-  found_rc |= g_rc_parse_local_rc(w_current, "gafrc");
+  found_rc |= g_rc_parse_system_rc(toplevel, "gafrc");
+  found_rc |= g_rc_parse_home_rc(toplevel, "gafrc");
+  found_rc |= g_rc_parse_local_rc(toplevel, "gafrc");
   /* continue support for individual rc files for each program.  */
-  found_rc |= g_rc_parse_system_rc(w_current, rcname);
-  found_rc |= g_rc_parse_home_rc(w_current, rcname);
-  found_rc |= g_rc_parse_local_rc(w_current, rcname);
+  found_rc |= g_rc_parse_system_rc(toplevel, rcname);
+  found_rc |= g_rc_parse_home_rc(toplevel, rcname);
+  found_rc |= g_rc_parse_local_rc(toplevel, rcname);
 
   /* New fcn introduced by SDB to consolidate this & make it available 
    * for other programs */
-  found_rc |= g_rc_parse_specified_rc(w_current, specified_rc_filename);
+  found_rc |= g_rc_parse_specified_rc(toplevel, specified_rc_filename);
 
   /* Oh well, I couldn't find any rcfile, exit! */
   if (!found_rc) {
diff --git a/libgeda/src/g_smob.c b/libgeda/src/g_smob.c
index fdbfeaf..cbda446 100644
--- a/libgeda/src/g_smob.c
+++ b/libgeda/src/g_smob.c
@@ -235,7 +235,7 @@ SCM g_set_attrib_value_internal(SCM attrib_smob, SCM scm_value,
 SCM g_calcule_new_attrib_bounds (SCM attrib_smob, SCM scm_alignment,
 				 SCM scm_angle, SCM scm_x, SCM scm_y) {
 
-  TOPLEVEL *w_current = NULL;
+  TOPLEVEL *toplevel = NULL;
   OBJECT *object = NULL;
   struct st_attrib_smob *attribute;
   char *alignment_string;
@@ -300,7 +300,7 @@ SCM g_calcule_new_attrib_bounds (SCM attrib_smob, SCM scm_alignment,
   }
 
   attribute = (struct st_attrib_smob *)SCM_CDR(attrib_smob);
-  w_current = attribute->world;
+  toplevel = attribute->world;
   
   SCM_ASSERT ( attribute &&
 	       attribute->attribute &&
@@ -327,10 +327,10 @@ SCM g_calcule_new_attrib_bounds (SCM attrib_smob, SCM scm_alignment,
   if (y != -1)
 	object->text->y = y;
   
-  o_text_recreate(w_current, object);
+  o_text_recreate(toplevel, object);
 
   /* Get the new bounds */
-  world_get_text_bounds (w_current, object, 
+  world_get_text_bounds (toplevel, object,
 			 &left, &top, &right, &bottom);
   
   /* Restore the original attributes */
@@ -339,7 +339,7 @@ SCM g_calcule_new_attrib_bounds (SCM attrib_smob, SCM scm_alignment,
   object->text->x = old_x;
   object->text->y = old_y;
   
-  o_text_recreate(w_current, object);
+  o_text_recreate(toplevel, object);
 
   /* Construct the return value */
   horizontal = scm_cons (scm_from_int(left), scm_from_int(right));
@@ -388,7 +388,7 @@ void g_init_attrib_smob(void)
  */
 SCM g_get_attrib_bounds(SCM attrib_smob)
 {
-  TOPLEVEL *w_current;
+  TOPLEVEL *toplevel;
   struct st_attrib_smob *attribute;
   SCM vertical = SCM_EOL;
   SCM horizontal = SCM_EOL;
@@ -400,14 +400,14 @@ SCM g_get_attrib_bounds(SCM attrib_smob)
                attrib_smob, SCM_ARG1, "get-attribute-bounds");
   
   attribute = (struct st_attrib_smob *)SCM_CDR(attrib_smob);
-  w_current = attribute->world;
+  toplevel = attribute->world;
 
   if (attribute &&
       attribute->attribute &&
       attribute->attribute->object &&
       attribute->attribute->object->text->string ) {
 
-    world_get_text_bounds (w_current, attribute->attribute->object,
+    world_get_text_bounds (toplevel, attribute->attribute->object,
                            &left, &top, &right, &bottom);
 
     horizontal = scm_cons (scm_from_int(left), scm_from_int(right));
@@ -426,7 +426,7 @@ SCM g_get_attrib_bounds(SCM attrib_smob)
  */
 SCM g_get_attrib_angle(SCM attrib_smob)
 {
-  TOPLEVEL *w_current;
+  TOPLEVEL *toplevel;
   struct st_attrib_smob *attribute;
 
   SCM_ASSERT ( SCM_NIMP(attrib_smob) && 
@@ -434,7 +434,7 @@ SCM g_get_attrib_angle(SCM attrib_smob)
                attrib_smob, SCM_ARG1, "get-attribute-angle");
   
   attribute = (struct st_attrib_smob *)SCM_CDR(attrib_smob);
-  w_current = attribute->world;
+  toplevel = attribute->world;
 
   SCM_ASSERT ( attribute && 
                attribute->attribute &&
@@ -523,7 +523,7 @@ SCM g_make_object_smob(TOPLEVEL *curr_w, OBJECT *object)
  */
 SCM g_get_object_attributes(SCM object_smob)
 {
-  TOPLEVEL *w_current;
+  TOPLEVEL *toplevel;
   struct st_object_smob *object;
   SCM returned = SCM_EOL;
 
@@ -538,11 +538,11 @@ SCM g_get_object_attributes(SCM object_smob)
     ATTRIB *pointer;
     
     pointer = object->object->attribs;
-    w_current = object->world;
+    toplevel = object->world;
     while (pointer != NULL) {
       if (pointer->object &&
 	  pointer->object->text) {
-	returned = scm_cons (g_make_attrib_smob (w_current, pointer), returned);
+	returned = scm_cons (g_make_attrib_smob (toplevel, pointer), returned);
       }
       pointer = pointer->next;
     }     
@@ -563,7 +563,7 @@ SCM g_get_object_attributes(SCM object_smob)
  */
 SCM g_get_attrib_value_by_attrib_name(SCM object_smob, SCM scm_attrib_name)
 {
-  TOPLEVEL *w_current;
+  TOPLEVEL *toplevel;
   struct st_object_smob *object;
   gchar *attrib_name=NULL;
   SCM returned = SCM_EOL;
@@ -585,7 +585,7 @@ SCM g_get_attrib_value_by_attrib_name(SCM object_smob, SCM scm_attrib_name)
     ATTRIB *pointer;
     
     pointer = object->object->attribs;
-    w_current = object->world;
+    toplevel = object->world;
     while (pointer != NULL) {
       if (pointer->object &&
 	  pointer->object->text) {
diff --git a/libgeda/src/i_vars.c b/libgeda/src/i_vars.c
index 839fc40..e767656 100644
--- a/libgeda/src/i_vars.c
+++ b/libgeda/src/i_vars.c
@@ -80,50 +80,50 @@ int   default_keep_invisible = FALSE;
  *  \par Function Description
  *  This function will initialize variables to default values.
  *
- *  \param [out] w_current  The TOPLEVEL object to be updated.
+ *  \param [out] toplevel  The TOPLEVEL object to be updated.
  *
  */
-void i_vars_libgeda_set(TOPLEVEL *w_current)
+void i_vars_libgeda_set(TOPLEVEL *toplevel)
 {
-  w_current->init_right   = default_init_right;
-  w_current->init_bottom  = default_init_bottom;
+  toplevel->init_right   = default_init_right;
+  toplevel->init_bottom  = default_init_bottom;
 
-  w_current->attribute_promotion = default_attribute_promotion;
-  w_current->promote_invisible = default_promote_invisible;
-  w_current->keep_invisible = default_keep_invisible;
+  toplevel->attribute_promotion = default_attribute_promotion;
+  toplevel->promote_invisible = default_promote_invisible;
+  toplevel->keep_invisible = default_keep_invisible;
 
   /* you cannot free the default* strings here since new windows */
   /* need them */
-  INIT_STR(w_current, series_name     , DEFAULT_SERIES_NAME     );
-  INIT_STR(w_current, untitled_name   , DEFAULT_UNTITLED_NAME   );
-  INIT_STR(w_current, font_directory  , DEFAULT_FONT_DIRECTORY  );
-  INIT_STR(w_current, scheme_directory, DEFAULT_SCHEME_DIRECTORY);
-  INIT_STR(w_current, bitmap_directory, DEFAULT_BITMAP_DIRECTORY);
-  INIT_STR(w_current, bus_ripper_symname, DEFAULT_BUS_RIPPER_SYMNAME);
-  INIT_STR(w_current, postscript_prolog,  DEFAULT_POSTSCRIPT_PROLOG);
-  INIT_STR(w_current, always_promote_attributes, DEFAULT_ALWAYS_PROMOTE_ATTRIBUTES);
-  INIT_STR(w_current, print_command, DEFAULT_PRINT_COMMAND);
+  INIT_STR(toplevel, series_name     , DEFAULT_SERIES_NAME     );
+  INIT_STR(toplevel, untitled_name   , DEFAULT_UNTITLED_NAME   );
+  INIT_STR(toplevel, font_directory  , DEFAULT_FONT_DIRECTORY  );
+  INIT_STR(toplevel, scheme_directory, DEFAULT_SCHEME_DIRECTORY);
+  INIT_STR(toplevel, bitmap_directory, DEFAULT_BITMAP_DIRECTORY);
+  INIT_STR(toplevel, bus_ripper_symname, DEFAULT_BUS_RIPPER_SYMNAME);
+  INIT_STR(toplevel, postscript_prolog,  DEFAULT_POSTSCRIPT_PROLOG);
+  INIT_STR(toplevel, always_promote_attributes, DEFAULT_ALWAYS_PROMOTE_ATTRIBUTES);
+  INIT_STR(toplevel, print_command, DEFAULT_PRINT_COMMAND);
 
 }
 
 /*! \brief Set all names in TOPLEVEL object to default.
  *  \par Function Description
- *  This function will set all of the names in the TOPLEVEL w_current variable
+ *  This function will set all of the names in the TOPLEVEL toplevel variable
  *  to their default.
  *
- *  \param [out] w_current  The TOPLEVEL object to set to defaults.
+ *  \param [out] toplevel  The TOPLEVEL object to set to defaults.
  *
  */
-void i_vars_setnames(TOPLEVEL *w_current)
+void i_vars_setnames(TOPLEVEL *toplevel)
 {
-  w_current->series_name        = g_strdup (DEFAULT_SERIES_NAME     );
-  w_current->untitled_name      = g_strdup (DEFAULT_UNTITLED_NAME   );
-  w_current->font_directory     = g_strdup (DEFAULT_FONT_DIRECTORY  );
-  w_current->scheme_directory   = g_strdup (DEFAULT_SCHEME_DIRECTORY);
-  w_current->bitmap_directory   = g_strdup (DEFAULT_BITMAP_DIRECTORY);
-  w_current->bus_ripper_symname = g_strdup (DEFAULT_BUS_RIPPER_SYMNAME);
-  w_current->always_promote_attributes = g_strdup (DEFAULT_ALWAYS_PROMOTE_ATTRIBUTES);
-  w_current->print_command = g_strdup (DEFAULT_PRINT_COMMAND);
+  toplevel->series_name        = g_strdup (DEFAULT_SERIES_NAME     );
+  toplevel->untitled_name      = g_strdup (DEFAULT_UNTITLED_NAME   );
+  toplevel->font_directory     = g_strdup (DEFAULT_FONT_DIRECTORY  );
+  toplevel->scheme_directory   = g_strdup (DEFAULT_SCHEME_DIRECTORY);
+  toplevel->bitmap_directory   = g_strdup (DEFAULT_BITMAP_DIRECTORY);
+  toplevel->bus_ripper_symname = g_strdup (DEFAULT_BUS_RIPPER_SYMNAME);
+  toplevel->always_promote_attributes = g_strdup (DEFAULT_ALWAYS_PROMOTE_ATTRIBUTES);
+  toplevel->print_command = g_strdup (DEFAULT_PRINT_COMMAND);
 }
 
 /*! \brief Free default names
diff --git a/libgeda/src/m_basic.c b/libgeda/src/m_basic.c
index fc11a7e..b9a3ff6 100644
--- a/libgeda/src/m_basic.c
+++ b/libgeda/src/m_basic.c
@@ -39,11 +39,11 @@
  *  \par Function Description
  *  Convert a x coordinate to mils.
  *
- *  \param [in] w_current  The TOPLEVEL object
+ *  \param [in] toplevel  The TOPLEVEL object
  *  \param [in] val        The x coordinate to convert
  *  \return The coordinate value in mils.
  */
-int mil_x(TOPLEVEL *w_current, int val)
+int mil_x(TOPLEVEL *toplevel, int val)
 {
   double i;
   double fval;
@@ -51,14 +51,14 @@ int mil_x(TOPLEVEL *w_current, int val)
 
 #if 0 /* removed for speed improvements */
   double fw0,fw1,fw,fval;
-  fw1 = w_current->page_current->right;
-  fw0 = w_current->page_current->left;
-  fw  = w_current->width;
+  fw1 = toplevel->page_current->right;
+  fw0 = toplevel->page_current->left;
+  fw  = toplevel->width;
 #endif
 
   fval = val;
-  i = fval * w_current->page_current->to_world_x_constant + 
-  w_current->page_current->left;
+  i = fval * toplevel->page_current->to_world_x_constant +
+  toplevel->page_current->left;
 
   /* i -= mil_x_tw2;
      i = ((i) / 100 ) * 100; I don't think we need this 
@@ -78,11 +78,11 @@ int mil_x(TOPLEVEL *w_current, int val)
  *  \par Function Description
  *  Convert a y coordinate to mils
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] val        The y coordinate to convert.
  *  \return The coordinate value in mils.
  */
-int mil_y(TOPLEVEL *w_current, int val)
+int mil_y(TOPLEVEL *toplevel, int val)
 {
   double i;
   double fval;
@@ -90,14 +90,14 @@ int mil_y(TOPLEVEL *w_current, int val)
 
 #if 0 /* removed for speed improvements */
   double fw0,fw1,fw,fval;
-  fw1 = w_current->page_current->bottom;
-  fw0 = w_current->page_current->top;
-  fw  = w_current->height;
+  fw1 = toplevel->page_current->bottom;
+  fw0 = toplevel->page_current->top;
+  fw  = toplevel->height;
 #endif
 
-  fval = w_current->height - val; 
-  i = fval * w_current->page_current->to_world_y_constant +
-  w_current->page_current->top;
+  fval = toplevel->height - val;
+  i = fval * toplevel->page_current->to_world_y_constant +
+  toplevel->page_current->top;
 
   /* i = ((i) / 100 ) * 100; I don't think we need this */
   /* i += mil_y_tw1; or this*/
@@ -115,11 +115,11 @@ int mil_y(TOPLEVEL *w_current, int val)
  *  \par Function Description
  *  Convert a x coordinate to pixels.
  *
- *  \param [in] w_current  The TOPLEVEL object
+ *  \param [in] toplevel  The TOPLEVEL object
  *  \param [in] val        The x coordinate to convert
  *  \return The coordinate value in pixels.
  */
-int pix_x(TOPLEVEL *w_current, int val)
+int pix_x(TOPLEVEL *toplevel, int val)
 {
 
   double i;
@@ -127,15 +127,15 @@ int pix_x(TOPLEVEL *w_current, int val)
 
 #if 0 /* removed for speed */
   double fs,f0,f1,f;
-  f0 = w_current->page_current->left;
-  f1 = w_current->page_current->right;
-  fs = w_current->width;
-  f = w_current->width / (f1 - f0);
+  f0 = toplevel->page_current->left;
+  f1 = toplevel->page_current->right;
+  fs = toplevel->width;
+  f = toplevel->width / (f1 - f0);
 #endif
 
 
-  i = w_current->page_current->to_screen_x_constant * 
-  (double)(val - w_current->page_current->left);
+  i = toplevel->page_current->to_screen_x_constant *
+  (double)(val - toplevel->page_current->left);
 
 #ifdef HAS_RINT
   j = rint(i);
@@ -159,25 +159,25 @@ int pix_x(TOPLEVEL *w_current, int val)
  *  \par Function Description
  *  Convert a y coordinate to pixels.
  *
- *  \param [in] w_current  The TOPLEVEL object
+ *  \param [in] toplevel  The TOPLEVEL object
  *  \param [in] val        The y coordinate to convert
  *  \return The coordinate value in pixels.
  */
-int pix_y(TOPLEVEL *w_current, int val)
+int pix_y(TOPLEVEL *toplevel, int val)
 {
   double i;
   int j;
 
 #if 0 /* removed for speed */
   double fs,f0,f1,f;
-  f0 = w_current->page_current->top;
-  f1 = w_current->page_current->bottom;
-  fs = w_current->height;
-  f = fs / (f1 - f0); /* fs was w_current->height */
+  f0 = toplevel->page_current->top;
+  f1 = toplevel->page_current->bottom;
+  fs = toplevel->height;
+  f = fs / (f1 - f0); /* fs was toplevel->height */
 #endif
-  i = w_current->height - (
-                           w_current->page_current->to_screen_y_constant * 
-                           (double)(val - w_current->page_current->top)); 
+  i = toplevel->height - (
+                           toplevel->page_current->to_screen_y_constant *
+                           (double)(val - toplevel->page_current->top));
 
 #ifdef HAS_RINT
   j = rint(i);
@@ -202,7 +202,7 @@ int pix_y(TOPLEVEL *w_current, int val)
  *  This function takes in WORLD x/y coordinates and
  *  transforms them to SCREEN x/y coordinates.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  x          The x coordinate in WORLD units.
  *  \param [in]  y          The y coordinate in WORLD units.
  *  \param [out] mil_x      The x coordinate in SCREEN units.
@@ -211,10 +211,10 @@ int pix_y(TOPLEVEL *w_current, int val)
  *                  if this is WORLD to SCREEN shouldn't SCREEN
  *                  coordinates be returned in x and y?
  */
-void WORLDtoSCREEN(TOPLEVEL *w_current, int x, int y, int *mil_x, int *mil_y)
+void WORLDtoSCREEN(TOPLEVEL *toplevel, int x, int y, int *mil_x, int *mil_y)
 {
-  *mil_x = pix_x(w_current, x);
-  *mil_y = pix_y(w_current, y);
+  *mil_x = pix_x(toplevel, x);
+  *mil_y = pix_y(toplevel, y);
 }
 
 /*! \brief Transform WORLD coordinates to WORLD coordinates
@@ -222,7 +222,7 @@ void WORLDtoSCREEN(TOPLEVEL *w_current, int x, int y, int *mil_x, int *mil_y)
  *  This function takes in SCREEN x/y coordinates and
  *  transforms them to WORLD x/y coordinates.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  mx         The x coordinate in SCREEN units.
  *  \param [in]  my         The y coordinate in SCREEN units.
  *  \param [out] x          The x coordinate in WORLD units.
@@ -231,10 +231,10 @@ void WORLDtoSCREEN(TOPLEVEL *w_current, int x, int y, int *mil_x, int *mil_y)
  *                  if this is SCREEN to WORLD shouldn't WORLD
  *                  coordinates be returned in mx and my?
  */
-void SCREENtoWORLD(TOPLEVEL *w_current, int mx, int my, int *x, int *y)      
+void SCREENtoWORLD(TOPLEVEL *toplevel, int mx, int my, int *x, int *y)
 {
-  *x = mil_x(w_current, mx);
-  *y = mil_y(w_current, my);
+  *x = mil_x(toplevel, mx);
+  *y = mil_y(toplevel, my);
 }
 
 /*! \brief Find the closest grid coordinate.
@@ -242,21 +242,21 @@ void SCREENtoWORLD(TOPLEVEL *w_current, int mx, int my, int *x, int *y)
  *  This function snaps the current input coordinate to the
  *  closest grid coordinate.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] input      The coordinate to snap.
  *  \return The closest grid coordinate to the input.
  */
-int snap_grid(TOPLEVEL *w_current, int input)
+int snap_grid(TOPLEVEL *toplevel, int input)
 {
   int p, m, n;
   int sign, value, snap_grid;
 	
-  if (!w_current->snap) {
+  if (!toplevel->snap) {
     return(input);
   }
 
 		
-  snap_grid = w_current->snap_size;
+  snap_grid = toplevel->snap_size;
 
   /* this code was inspired from killustrator, it's much simpler than mine */
   sign = ( input < 0 ? -1 : 1 );
@@ -309,21 +309,21 @@ int snap_grid(TOPLEVEL *w_current, int input)
  *  \par Function Description
  *  Get absolute SCREEN coordinate.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] val        The coordinate to convert.
  *  \return The converted SCREEN coordinate.
  */
-int SCREENabs(TOPLEVEL *w_current, int val)
+int SCREENabs(TOPLEVEL *toplevel, int val)
 {
   double fs,f0,f1,f;
 
   double i;
   int j;
 
-  f0 = w_current->page_current->left;
-  f1 = w_current->page_current->right;
-  fs = w_current->width;
-  f = w_current->width / (f1 - f0);
+  f0 = toplevel->page_current->left;
+  f1 = toplevel->page_current->right;
+  fs = toplevel->width;
+  f = toplevel->width / (f1 - f0);
   i = f * (double)(val);
 
 #ifdef HAS_RINT
@@ -340,20 +340,20 @@ int SCREENabs(TOPLEVEL *w_current, int val)
  *  \par Function Description
  *  Get absolute WORLD coordinate.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] val        The coordinate to convert.
  *  \return The converted WORLD coordinate.
  */
-int WORLDabs(TOPLEVEL *w_current, int val)
+int WORLDabs(TOPLEVEL *toplevel, int val)
 {
   double fw0,fw1,fw,fval;
 
   double i;
   int j;
 
-  fw1 = w_current->page_current->right;
-  fw0 = w_current->page_current->left;
-  fw  = w_current->width;
+  fw1 = toplevel->page_current->right;
+  fw0 = toplevel->page_current->left;
+  fw  = toplevel->width;
   fval = val;
   i = fval * (fw1 - fw0) / fw;
 
@@ -375,14 +375,14 @@ int WORLDabs(TOPLEVEL *w_current, int val)
  *  \par Function Description
  *  This function will set the current page constraints.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] page       The PAGE object to set constraints on.
  *  \param [in]     xmin       The minimum x coordinate for the page.
  *  \param [in]     xmax       The maximum x coordinate for the page.
  *  \param [in]     ymin       The minimum y coordinate for the page.
  *  \param [in]     ymax       The maximum y coordinate for the page.
  */
-void set_window(TOPLEVEL *w_current, PAGE *page,
+void set_window(TOPLEVEL *toplevel, PAGE *page,
                 int xmin, int xmax, int ymin, int ymax)
 {
   double fs,f0,f1;
@@ -398,25 +398,25 @@ void set_window(TOPLEVEL *w_current, PAGE *page,
   /* pix_x */
   f0 = page->left;
   f1 = page->right;
-  fs = w_current->width;
+  fs = toplevel->width;
   page->to_screen_x_constant = fs / (f1 - f0);
 
   /* pix_y */
   f0 = page->top;
   f1 = page->bottom;
-  fs = w_current->height;
+  fs = toplevel->height;
   page->to_screen_y_constant = fs / (f1 - f0); 
 
   /* mil_x */
   fw1 = page->right;
   fw0 = page->left;
-  fw  = w_current->width;
+  fw  = toplevel->width;
   page->to_world_x_constant = (fw1 - fw0) / fw;
 
   /* mil_y */
   fw1 = page->bottom;
   fw0 = page->top;
-  fw  = w_current->height;
+  fw  = toplevel->height;
   page->to_world_y_constant = (fw1 - fw0) / fw;
 }
 
@@ -425,25 +425,25 @@ void set_window(TOPLEVEL *w_current, PAGE *page,
  *  \par Function Description
  *  Get the grid x coordinate for snap.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] in         The x coordinate.
  *  \return The closest grid coordinate to in.
  */
-int fix_x(TOPLEVEL *w_current, int in)
+int fix_x(TOPLEVEL *toplevel, int in)
 {
   int value;
   int ret;
 
-  if (in > w_current->width) { 
-    in = w_current->width;
+  if (in > toplevel->width) {
+    in = toplevel->width;
   }
 	
-  if (!w_current->snap)
+  if (!toplevel->snap)
   return(in);
 
-  value = mil_x(w_current, in);	
+  value = mil_x(toplevel, in);
 
-  ret = pix_x(w_current, snap_grid(w_current, value));
+  ret = pix_x(toplevel, snap_grid(toplevel, value));
   return(ret);
 }
 
@@ -451,25 +451,25 @@ int fix_x(TOPLEVEL *w_current, int in)
  *  \par Function Description
  *  Get the grid y coordinate for snap.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] in         The y coordinate.
  *  \return The closest grid coordinate to in.
  */
-int fix_y(TOPLEVEL *w_current, int in)
+int fix_y(TOPLEVEL *toplevel, int in)
 {
   int value;
   int ret;
 
-  if (in > w_current->height) { 
-    in = w_current->height;
+  if (in > toplevel->height) {
+    in = toplevel->height;
   }
 
-  if (!w_current->snap)
+  if (!toplevel->snap)
   return(in);
 
 
-  value = mil_y(w_current, in);	
-  ret = pix_y(w_current, snap_grid(w_current, value));
+  value = mil_y(toplevel, in);
+  ret = pix_y(toplevel, snap_grid(toplevel, value));
   return(ret);
 }
 
@@ -515,17 +515,17 @@ struct st_point {
  *  of the current TOPLEVEL object's page coordinates. It
  *  handles points with SCREEN coordinates.
  *  
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  point      The point in SCREEN coordinates to be checked.
  *  \param [out] halfspace  The created HALFSPACE structure.
  *
  *  \warning halfspace must be allocated before this function is called
  */
-static void SCREENencode_halfspace(TOPLEVEL *w_current, sPOINT *point, HALFSPACE *halfspace)
+static void SCREENencode_halfspace(TOPLEVEL *toplevel, sPOINT *point, HALFSPACE *halfspace)
 {
   halfspace->left = point->x < 0;
-  halfspace->right = point->x > w_current->width;
-  halfspace->bottom = point->y > w_current->height;
+  halfspace->right = point->x > toplevel->width;
+  halfspace->bottom = point->y > toplevel->height;
   halfspace->top = point->y < 0;
 }
 
@@ -535,18 +535,18 @@ static void SCREENencode_halfspace(TOPLEVEL *w_current, sPOINT *point, HALFSPACE
  *  of the current TOPLEVEL object's page coordinates. It
  *  handles points with WORLD coordinates.
  *  
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  point      The point in WORLD coordinates to be checked.
  *  \param [out] halfspace  The created HALFSPACE structure.
  *
  *  \warning halfspace must be allocated before this function is called
  */
-static void WORLDencode_halfspace(TOPLEVEL *w_current, sPOINT *point, HALFSPACE *halfspace)
+static void WORLDencode_halfspace(TOPLEVEL *toplevel, sPOINT *point, HALFSPACE *halfspace)
 {
-  halfspace->left = point->x < w_current->page_current->left;
-  halfspace->right = point->x > w_current->page_current->right;
-  halfspace->bottom = point->y > w_current->page_current->bottom;
-  halfspace->top = point->y < w_current->page_current->top;
+  halfspace->left = point->x < toplevel->page_current->left;
+  halfspace->right = point->x > toplevel->page_current->right;
+  halfspace->bottom = point->y > toplevel->page_current->bottom;
+  halfspace->top = point->y < toplevel->page_current->top;
 }
 
 /*! \brief Calculate the cliping region for a set of coordinates.
@@ -556,14 +556,14 @@ static void WORLDencode_halfspace(TOPLEVEL *w_current, sPOINT *point, HALFSPACE
  *  be changed to reflect only the region no covered by the clipping window.
  *  All coordinates should be in SCREEN units.
  *
- *  \param [in] w_current  The current TOPLEVEL object.
+ *  \param [in] toplevel  The current TOPLEVEL object.
  *  \param [in,out] x1     x coordinate of the first screen point.
  *  \param [in,out] y1     y coordinate of the first screen point.
  *  \param [in,out] x2     x coordinate of the second screen point.
  *  \param [in,out] y2     y coordinate of the second screen point.
  *  \return TRUE if coordinates are now visible, FALSE otherwise.
  */
-int SCREENclip_change(TOPLEVEL *w_current,int *x1, int *y1, int *x2, int *y2)
+int SCREENclip_change(TOPLEVEL *toplevel,int *x1, int *y1, int *x2, int *y2)
 {
   HALFSPACE half1, half2; 
   HALFSPACE tmp_half;
@@ -582,16 +582,16 @@ int SCREENclip_change(TOPLEVEL *w_current,int *x1, int *y1, int *x2, int *y2)
 
   w_l = 0;
   w_t = 0;
-  w_r = w_current->width;
-  w_b = w_current->height;
+  w_r = toplevel->width;
+  w_b = toplevel->height;
 
 
   done = FALSE;
   visible = FALSE;
 
   do {
-    SCREENencode_halfspace(w_current, &point1, &half1);
-    SCREENencode_halfspace(w_current, &point2, &half2);
+    SCREENencode_halfspace(toplevel, &point1, &half1);
+    SCREENencode_halfspace(toplevel, &point2, &half2);
 
 #if DEBUG
     printf("starting loop\n");
@@ -688,14 +688,14 @@ int SCREENclip_change(TOPLEVEL *w_current,int *x1, int *y1, int *x2, int *y2)
  *  are within a clipping region. No action will be taken to change
  *  the coordinates.
  *
- *  \param [in] w_current  The current TOPLEVEL object.
+ *  \param [in] toplevel  The current TOPLEVEL object.
  *  \param [in,out] x1     x coordinate of the first screen point.
  *  \param [in,out] y1     y coordinate of the first screen point.
  *  \param [in,out] x2     x coordinate of the second screen point.
  *  \param [in,out] y2     y coordinate of the second screen point.
  *  \return TRUE if coordinates are now visible, FALSE otherwise.
  */
-int clip_nochange(TOPLEVEL *w_current,int x1, int y1, int x2, int y2)
+int clip_nochange(TOPLEVEL *toplevel,int x1, int y1, int x2, int y2)
 {
   HALFSPACE half1, half2; 
   HALFSPACE tmp_half;
@@ -713,17 +713,17 @@ int clip_nochange(TOPLEVEL *w_current,int x1, int y1, int x2, int y2)
 
   /*printf("before: %d %d %d %d\n", x1, y1, x2, y2);*/
 
-  w_l = w_current->page_current->left;
-  w_t = w_current->page_current->top;
-  w_r = w_current->page_current->right;
-  w_b = w_current->page_current->bottom;
+  w_l = toplevel->page_current->left;
+  w_t = toplevel->page_current->top;
+  w_r = toplevel->page_current->right;
+  w_b = toplevel->page_current->bottom;
 
   done = FALSE;
   visible = FALSE;
 
   do {
-    WORLDencode_halfspace(w_current, &point1, &half1);
-    WORLDencode_halfspace(w_current, &point2, &half2);
+    WORLDencode_halfspace(toplevel, &point1, &half1);
+    WORLDencode_halfspace(toplevel, &point2, &half2);
 
 #if DEBUG
     printf("starting loop\n");
@@ -817,30 +817,30 @@ int clip_nochange(TOPLEVEL *w_current,int x1, int y1, int x2, int y2)
  *  top is the smallest "y" value, and bottom is the largest.
  *  Be careful! This doesn't correspond to what you'd expect.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] wleft      Left coordinate of the bounding box.
  *  \param [in] wtop       Top coordinate of the bounding box.
  *  \param [in] wright     Right coordinate of the bounding box.
  *  \param [in] wbottom    Bottom coordinate of the bounding box.
  *  \return TRUE if bounding box is visible, FALSE otherwise
  */
-int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom)
+int visible(TOPLEVEL *toplevel, int wleft, int wtop, int wright, int wbottom)
 {
   int visible=FALSE;
 
   /* don't do object clipping if this is false */
-  if (!w_current->object_clipping) {
+  if (!toplevel->object_clipping) {
     return(TRUE);
   }
 
-  visible = clip_nochange(w_current, wleft, wtop, wright, wtop);
+  visible = clip_nochange(toplevel, wleft, wtop, wright, wtop);
 
 #if DEBUG 
   printf("vis1 %d\n", visible);
 #endif
 
   if (!visible) {
-    visible = clip_nochange(w_current, wleft, wbottom, wright, wbottom);
+    visible = clip_nochange(toplevel, wleft, wbottom, wright, wbottom);
   } else {
     return(visible);
   } 
@@ -850,7 +850,7 @@ int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom)
 #endif
 
   if (!visible) {
-    visible = clip_nochange(w_current, wleft, wtop, wleft, wbottom);
+    visible = clip_nochange(toplevel, wleft, wtop, wleft, wbottom);
   } else {
     return(visible);
   } 
@@ -860,7 +860,7 @@ int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom)
 #endif
 
   if (!visible) {
-    visible = clip_nochange(w_current, wright, wtop, wright, wbottom);
+    visible = clip_nochange(toplevel, wright, wtop, wright, wbottom);
   } else {
     return(visible);
   } 
@@ -870,10 +870,10 @@ int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom)
 #endif
 
 #if DEBUG
-  printf("%d %d %d\n", wleft, w_current->page_current->top, wright);
-  printf("%d %d %d\n", wtop, w_current->page_current->top, wbottom);
-  printf("%d %d %d\n", wleft, w_current->page_current->right, wright);
-  printf("%d %d %d\n", wtop, w_current->page_current->bottom, wbottom);
+  printf("%d %d %d\n", wleft, toplevel->page_current->top, wright);
+  printf("%d %d %d\n", wtop, toplevel->page_current->top, wbottom);
+  printf("%d %d %d\n", wleft, toplevel->page_current->right, wright);
+  printf("%d %d %d\n", wtop, toplevel->page_current->bottom, wbottom);
 #endif
 
   /*
@@ -881,10 +881,10 @@ int visible(TOPLEVEL *w_current, int wleft, int wtop, int wright, int wbottom)
    * We only need to test if one point on the screen clipping boundary
    * is indide the bounding box of the object.
    */
-  if (w_current->page_current->left >= wleft  &&
-      w_current->page_current->left <= wright &&
-      w_current->page_current->top >= wtop    &&
-      w_current->page_current->top <= wbottom ) {
+  if (toplevel->page_current->left >= wleft  &&
+      toplevel->page_current->left <= wright &&
+      toplevel->page_current->top >= wtop    &&
+      toplevel->page_current->top <= wbottom ) {
     visible = 1;
   }
 
diff --git a/libgeda/src/o_arc_basic.c b/libgeda/src/o_arc_basic.c
index f750cb5..b21acce 100644
--- a/libgeda/src/o_arc_basic.c
+++ b/libgeda/src/o_arc_basic.c
@@ -58,7 +58,7 @@
  *
  *  Now fixed for world coordinates.
  *
- *  \param [in] w_current    The TOPLEVEL object.
+ *  \param [in] toplevel    The TOPLEVEL object.
  *  \param [in] object_list  
  *  \param [in] type
  *  \param [in] color
@@ -69,7 +69,7 @@
  *  \param [in] end_angle
  *  \return
  */
-OBJECT *o_arc_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_arc_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		  char type, int color,
 		  int x, int y, int radius, int start_angle, int end_angle)
 {
@@ -107,12 +107,12 @@ OBJECT *o_arc_add(TOPLEVEL *w_current, OBJECT *object_list,
   new_node->arc->end_angle   = end_angle;
 
   /* Default init */
-  o_set_line_options(w_current, new_node,
+  o_set_line_options(toplevel, new_node,
                      END_NONE, TYPE_SOLID, 0, -1, -1);
-  o_set_fill_options(w_current, new_node,
+  o_set_fill_options(toplevel, new_node,
                      FILLING_HOLLOW, -1, -1, -1, -1, -1);
 	
-  o_arc_recalc(w_current, new_node);
+  o_arc_recalc(toplevel, new_node);
 
   /* new_node->graphical = arc; eventually */
 	
@@ -141,12 +141,12 @@ OBJECT *o_arc_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  The new object is added to the end of the object list given by <B>list_tail</B>.
  *  A pointer on it is returned for update purpose in the calling function.
  *
- *  \param [in] w_current  The TOPLEVEL object
+ *  \param [in] toplevel  The TOPLEVEL object
  *  \param [in] list_tail
  *  \param [in] o_current
  *  \return
  */
-OBJECT *o_arc_copy(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_arc_copy(TOPLEVEL *toplevel, OBJECT *list_tail,
 		   OBJECT *o_current)
 {
   OBJECT *new_obj;
@@ -159,16 +159,16 @@ OBJECT *o_arc_copy(TOPLEVEL *w_current, OBJECT *list_tail,
     color = o_current->saved_color;
   }
 
-  new_obj = o_arc_add(w_current, list_tail, OBJ_ARC, color,
+  new_obj = o_arc_add(toplevel, list_tail, OBJ_ARC, color,
                       o_current->arc->x, o_current->arc->y, 
                       o_current->arc->width / 2,
                       o_current->arc->start_angle,
                       o_current->arc->end_angle);
-  o_set_line_options(w_current, new_obj,
+  o_set_line_options(toplevel, new_obj,
                      o_current->line_end, o_current->line_type,
                      o_current->line_width,
                      o_current->line_length, o_current->line_space);
-  o_set_fill_options(w_current, new_obj,
+  o_set_fill_options(toplevel, new_obj,
                      FILLING_HOLLOW, -1, -1, -1, -1, -1);
 	
   a_current = o_current->attribs;
@@ -205,13 +205,13 @@ OBJECT *o_arc_copy(TOPLEVEL *w_current, OBJECT *list_tail,
  *  If <B>whichone</B> is equal to #ARC_END_ANGLE, the <B>x</B> parameter is the ending angle of the arc.
  *  <B>x</B> is in degrees. <B>y</B> is ignored.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     
  *  \param [in]     x
  *  \param [in]     y
  *  \param [in]     whichone
  */
-void o_arc_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_arc_modify(TOPLEVEL *toplevel, OBJECT *object,
 		  int x, int y, int whichone)
 {
 
@@ -243,7 +243,7 @@ void o_arc_modify(TOPLEVEL *w_current, OBJECT *object,
 	}
 
 	/* update the screen coords and the bounding box */
-	o_arc_recalc(w_current, object);
+	o_arc_recalc(toplevel, object);
 	
 }
 
@@ -267,14 +267,14 @@ void o_arc_modify(TOPLEVEL *w_current, OBJECT *object,
  * 
  *  A negative or null radius is not allowed.
  *
- *  \param [in] w_current    The TOPLEVEL object.
+ *  \param [in] toplevel    The TOPLEVEL object.
  *  \param [in] object_list  
  *  \param [in] buf
  *  \param [in] release_ver
  *  \param [in] fileformat_ver
  *  \return
  */
-OBJECT *o_arc_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_arc_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		   unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -325,12 +325,12 @@ OBJECT *o_arc_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
   }
 
   /* Allocation and initialization */
-  object_list = o_arc_add(w_current, object_list, OBJ_ARC, color,
+  object_list = o_arc_add(toplevel, object_list, OBJ_ARC, color,
                           x1, y1, radius, start_angle, end_angle);
-  o_set_line_options(w_current, object_list,
+  o_set_line_options(toplevel, object_list,
                      arc_end, arc_type, arc_width, arc_length,
                      arc_space);
-  o_set_fill_options(w_current, object_list,
+  o_set_fill_options(toplevel, object_list,
                      FILLING_HOLLOW, -1, -1, -1,
                      -1, -1);
 
@@ -396,12 +396,12 @@ char *o_arc_save(OBJECT *object)
  *  This function applies a translation of (<B>dx</B>,<B>dy</B>)
  *  to the arc described in <B>*object</B>. <B>dx</B> and <B>dy</B> are in world unit.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] dx
  *  \param [in] dy
  *  \param [in] object
  */
-void o_arc_translate_world(TOPLEVEL *w_current, int dx, int dy,
+void o_arc_translate_world(TOPLEVEL *toplevel, int dx, int dy,
 			   OBJECT *object)
 {
   if (object == NULL) {
@@ -414,7 +414,7 @@ void o_arc_translate_world(TOPLEVEL *w_current, int dx, int dy,
 
 
   /* Recalculate screen coords from new world coords */
-  o_arc_recalc(w_current, object);
+  o_arc_recalc(toplevel, object);
 }
 
 /*! \brief
@@ -431,13 +431,13 @@ void o_arc_translate_world(TOPLEVEL *w_current, int dx, int dy,
  *
  *  <B>world_centerx</B> and <B>world_centery</B> are in world units, <B>angle</B> is in degrees.
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in] world_centerx
  *  \param [in] world_centery
  *  \param [in] angle
  *  \param [in] object
  */
-void o_arc_rotate_world(TOPLEVEL *w_current,
+void o_arc_rotate_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, int angle,
 			OBJECT *object)
 {
@@ -468,7 +468,7 @@ void o_arc_rotate_world(TOPLEVEL *w_current,
   object->arc->y += world_centery;
 
   /* update the screen coords and the bounding box */
-  o_arc_recalc(w_current, object);
+  o_arc_recalc(toplevel, object);
   
 }                                   
 
@@ -483,12 +483,12 @@ void o_arc_rotate_world(TOPLEVEL *w_current,
  *
  *  The arc is finally back translated to its previous location on the page.
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in] world_centerx
  *  \param [in] world_centery
  *  \param [in] object
  */
-void o_arc_mirror_world(TOPLEVEL *w_current,
+void o_arc_mirror_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery,
 			OBJECT *object)
 {
@@ -511,7 +511,7 @@ void o_arc_mirror_world(TOPLEVEL *w_current,
   object->arc->y += world_centery;
 
   /* update the screen coords and bounding box */
-  o_arc_recalc(w_current, object);
+  o_arc_recalc(toplevel, object);
 	
 }
 
@@ -519,16 +519,16 @@ void o_arc_mirror_world(TOPLEVEL *w_current,
  *  \par Function Description
  *  This function recalculates internal parameters in screen units
  *  of an object containing an arc. The object is given as parameters <B>o_current</B>.
- *  The calculation is done according to the zoom factor detailed in the <B>w_current</B>
+ *  The calculation is done according to the zoom factor detailed in the <B>toplevel</B>
  *  pointed structure.
  *  It also recalculates the <B>OBJECT</B> specific fields and the bounding box of the arc.
  *  
  *  The bounding box - in world units - is recalculated with the <B>world_get_arc_bounds()</B> function.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] o_current
  */
-void o_arc_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_arc_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 	
@@ -537,7 +537,7 @@ void o_arc_recalc(TOPLEVEL *w_current, OBJECT *o_current)
   }
 
   /* recalculates the bounding box */
-  world_get_arc_bounds(w_current, o_current, &left, &top, &right, &bottom);
+  world_get_arc_bounds(toplevel, o_current, &left, &top, &right, &bottom);
   o_current->w_left   = left;
   o_current->w_top    = top;
   o_current->w_right  = right;
@@ -557,14 +557,14 @@ void o_arc_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  They forms a first rectangle but (depending on the start angle and the
  *  sweep of the arc) not the right.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  object
  *  \param [out] left
  *  \param [out] top
  *  \param [out] right
  *  \param [out] bottom
  */
-void world_get_arc_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
+void world_get_arc_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left,
 			  int *top, int *right, int *bottom)
 {
   int x1, y1, x2, y2, x3, y3;
@@ -626,13 +626,13 @@ void world_get_arc_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
  *  Parameters of the arc are extracted from object pointed by <B>o_current</B>
  *  and formatted to suit future calls to specialized arc printing functions.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         The postscript document to print to.
  *  \param [in] o_current
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_arc_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		 int origin_x, int origin_y)
 {
   int x, y, radius, start_angle, end_angle;
@@ -674,7 +674,7 @@ void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
 #endif
   arc_width = o_current->line_width;	/* Added instead of above */
   if(arc_width <=2) {
-    if(w_current->line_style == THICK) {
+    if(toplevel->line_style == THICK) {
       arc_width=LINE_WIDTH;
     } else {
       arc_width=2;
@@ -719,7 +719,7 @@ void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     outl_func = o_arc_print_solid;
   }
 
-  (*outl_func)(w_current, fp,
+  (*outl_func)(toplevel, fp,
                x - origin_x, y - origin_x, radius,
                start_angle, end_angle,
                color, arc_width, length, space, origin_x, origin_y);
@@ -738,7 +738,7 @@ void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *
  *  All dimensions are in mils, except <B>angle1</B> and <B>angle2</B> in degrees.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to postscript document.
  *  \param [in] x
  *  \param [in] y
@@ -752,14 +752,14 @@ void o_arc_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print_solid(TOPLEVEL *w_current, FILE *fp,
+void o_arc_print_solid(TOPLEVEL *toplevel, FILE *fp,
 		       int x, int y, int radius,
 		       int angle1, int angle2,
 		       int color,
 		       int arc_width, int length, int space,
 		       int origin_x, int origin_y)
 {
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -791,7 +791,7 @@ void o_arc_print_solid(TOPLEVEL *w_current, FILE *fp,
  *
  *  The function sets the color the line will be printed with.
  * 
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to postscript document.
  *  \param [in] x
  *  \param [in] y
@@ -805,7 +805,7 @@ void o_arc_print_solid(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp,
+void o_arc_print_dotted(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y, int radius,
 			int angle1, int angle2,
 			int color,				   
@@ -815,7 +815,7 @@ void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp,
   int da, d;
 
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -842,7 +842,7 @@ void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp,
 	/* If da or db too small for arc to be displayed as dotted,
            draw a solid arc */
   if (da <= 0) {
-    o_arc_print_solid(w_current, fp,
+    o_arc_print_solid(toplevel, fp,
                       x, y, radius,
                       angle1, angle2,
                       color,
@@ -898,7 +898,7 @@ void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *
  *  The function sets the color the line will be printed with.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to postscript document.
  *  \param [in] x
  *  \param [in] y
@@ -912,7 +912,7 @@ void o_arc_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp,
+void o_arc_print_dashed(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y, int radius,
 			int angle1, int angle2,
 			int color,				   
@@ -921,7 +921,7 @@ void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp,
 {
   int da, db, a1, a2, d;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -951,7 +951,7 @@ void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp,
   /* If da or db too small for arc to be displayed as dotted,
            draw a solid arc */
   if ((da <= 0) || (db <= 0)) {
-    o_arc_print_solid(w_current, fp,
+    o_arc_print_solid(toplevel, fp,
                       x, y, radius, 
                       angle1, angle2,
                       color,
@@ -1007,7 +1007,7 @@ void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *
  *  The function sets the color in which the line will be printed with.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to postscript document.
  *  \param [in] x
  *  \param [in] y
@@ -1021,7 +1021,7 @@ void o_arc_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print_center(TOPLEVEL *w_current, FILE *fp,
+void o_arc_print_center(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y, int radius, 
 			int angle1, int angle2,
 			int color,				   
@@ -1030,7 +1030,7 @@ void o_arc_print_center(TOPLEVEL *w_current, FILE *fp,
 {
   int da, db, a1, a2, d;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -1060,7 +1060,7 @@ void o_arc_print_center(TOPLEVEL *w_current, FILE *fp,
 
   /* If da or db too small to be displayed, draw an arc */
   if ((da <= 0) || (db <= 0)) {
-    o_arc_print_solid(w_current, fp,
+    o_arc_print_solid(toplevel, fp,
 		      x, y, radius,
 		      angle1, angle2,
 		      color,
@@ -1139,7 +1139,7 @@ void o_arc_print_center(TOPLEVEL *w_current, FILE *fp,
  *
  * The function sets the color in which the line will be printed with.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to postscript document.
  *  \param [in] x
  *  \param [in] y
@@ -1153,7 +1153,7 @@ void o_arc_print_center(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x
  *  \param [in] origin_y
  */
-void o_arc_print_phantom(TOPLEVEL *w_current, FILE *fp,
+void o_arc_print_phantom(TOPLEVEL *toplevel, FILE *fp,
 			 int x, int y, int radius,
 			 int angle1, int angle2,
 			 int color,
@@ -1162,7 +1162,7 @@ void o_arc_print_phantom(TOPLEVEL *w_current, FILE *fp,
 {
   int da, db, a1, a2, d;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -1192,7 +1192,7 @@ void o_arc_print_phantom(TOPLEVEL *w_current, FILE *fp,
   /* If da or db too small for arc to be displayed as dotted,
      draw a solid arc */
   if ((da <= 0) || (db <= 0)) {
-    o_arc_print_solid(w_current, fp,
+    o_arc_print_solid(toplevel, fp,
 		      x, y, radius,
 		      angle1, angle2,
 		      color,						  
diff --git a/libgeda/src/o_attrib.c b/libgeda/src/o_attrib.c
index c8934c9..63dab21 100644
--- a/libgeda/src/o_attrib.c
+++ b/libgeda/src/o_attrib.c
@@ -65,13 +65,13 @@
  *  \par Function Description
  *  Update an attribute's uref.
  *
- *  \param [in] w_current  The TOPLEVEL object
+ *  \param [in] toplevel  The TOPLEVEL object
  *  \param [in] o_current  The object to update.
  *
  *  \note
  *   Martin Benes' auto uref renumber code
  */
-void o_attrib_update_urefBM (TOPLEVEL *w_current, OBJECT *o_current)
+void o_attrib_update_urefBM (TOPLEVEL *toplevel, OBJECT *o_current)
 {
   OBJECT *list_head,*obj;
   char *uref;
@@ -117,7 +117,7 @@ void o_attrib_update_urefBM (TOPLEVEL *w_current, OBJECT *o_current)
     sprintf(uref+len,"%d", i);
     g_free(o_current->text->string);
     o_current->text->string=uref;
-    o_text_recreate(w_current, o_current);
+    o_text_recreate(toplevel, o_current);
   }
 
   g_free(index_list);
@@ -209,12 +209,12 @@ ATTRIB *add_attrib_head(OBJECT *parent)
  *  \par Function Description
  *  Add an attribute to an existing attribute list.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] list_head  The list where you want to add item to.
  *  \param [in]     item       The item you want to add as an attribute.
  *  \return An ATTRIB pointer to the newly created attribute.
  */
-ATTRIB *o_attrib_add(TOPLEVEL *w_current, ATTRIB *list_head, OBJECT *item)
+ATTRIB *o_attrib_add(TOPLEVEL *toplevel, ATTRIB *list_head, OBJECT *item)
 {
   ATTRIB *end = NULL;
   ATTRIB *new = NULL;
@@ -232,7 +232,7 @@ ATTRIB *o_attrib_add(TOPLEVEL *w_current, ATTRIB *list_head, OBJECT *item)
   new->copied_to = NULL;
   new->object->attribute = 1; /* Set the attribute to true, hack define */
   /* Show that that item is an attribute */
-  new->object->color = w_current->attribute_color; 
+  new->object->color = toplevel->attribute_color;
 
   if (new->object->type == OBJ_TEXT) {
     o_complex_set_color(new->object->text->prim_objs,
@@ -259,14 +259,14 @@ ATTRIB *o_attrib_add(TOPLEVEL *w_current, ATTRIB *list_head, OBJECT *item)
  *  \par Function Description
  *  Free single item in attribute list.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] current    ATTRIB pointer to free.
  *
  *  \note
  *  this routine is not nice to next and prev
  *  this routine is only called from free_all
  */
-void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current)
+void o_attrib_free(TOPLEVEL *toplevel, ATTRIB *current)
 {
   if (current != NULL) {
 
@@ -274,7 +274,7 @@ void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current)
     if (current->object != NULL && current->prev != NULL) {
       current->object->attribute = 0;	
       current->object->attached_to=NULL;
-      current->object->color = w_current->detachedattr_color;	
+      current->object->color = toplevel->detachedattr_color;
 
       if (current->object->type == OBJ_TEXT) {
         o_complex_set_color(current->object->text->prim_objs, 
@@ -288,11 +288,11 @@ void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current)
         if (current->object->type == OBJ_TEXT) {
           o_complex_set_saved_color_only(
                                          current->object->text->prim_objs, 
-                                         w_current->detachedattr_color);
+                                         toplevel->detachedattr_color);
         } else {
           printf("Tried to set the color on a complex!\nlibgeda/src/o_attrib_free 2\n");
         }
-        current->object->saved_color = w_current->
+        current->object->saved_color = toplevel->
         detachedattr_color;
       }
     }
@@ -309,7 +309,7 @@ void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current)
  *  \par Function Description
  *  Attach existing attribute to an object.
  *
- *  \param [in]  w_current    The TOPLEVEL object.
+ *  \param [in]  toplevel    The TOPLEVEL object.
  *  \param [in]  parent_list  List where actual attribute objects live.
  *  \param [in]  text_object  The attribute to be added.
  *  \param [out] object       The object where you want to add item as an attribute.
@@ -322,7 +322,7 @@ void o_attrib_free(TOPLEVEL *w_current, ATTRIB *current)
  *  overridden in o_complex_add so that it points to head node of the complex
  *  
  */
-void o_attrib_attach(TOPLEVEL *w_current, OBJECT *parent_list, 
+void o_attrib_attach(TOPLEVEL *toplevel, OBJECT *parent_list,
 		     OBJECT *text_object, OBJECT *object)
 {
   OBJECT *o_current = NULL;
@@ -357,11 +357,11 @@ void o_attrib_attach(TOPLEVEL *w_current, OBJECT *parent_list,
           fprintf(stderr, "You cannot attach this attribute [%s] to more than one object\n", found2->text->string);
         } else {
 
-          o_attrib_add(w_current, 
+          o_attrib_add(toplevel,
                        object->attribs, 
                        found2);
 
-          o_current->color = w_current->
+          o_current->color = toplevel->
             attribute_color; 
 
           o_complex_set_color(
@@ -377,10 +377,10 @@ void o_attrib_attach(TOPLEVEL *w_current, OBJECT *parent_list,
           }
           /* can't do this here since just selecting something */
           /* will cause this to be set */
-          /* w_current->page_current->CHANGED=1;*/
+          /* toplevel->page_current->CHANGED=1;*/
 
 #ifdef MARTIN_BENES
-          o_attrib_update_urefBM (w_current, o_current);
+          o_attrib_update_urefBM (toplevel, o_current);
 #endif
         }
       } else {
@@ -399,12 +399,12 @@ void o_attrib_attach(TOPLEVEL *w_current, OBJECT *parent_list,
  *  \brief
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] list
  *  \param [in] items
  */
 void
-o_attrib_detach_test(TOPLEVEL *w_current, OBJECT *list, OBJECT *items) 
+o_attrib_detach_test(TOPLEVEL *toplevel, OBJECT *list, OBJECT *items)
 {
 
 /* this all needs to be rethought out */
@@ -468,7 +468,7 @@ void o_attrib_unselect_draw(ATTRIB *list)
  *  \par Function Description
  *  Free all attribute items in a list.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] list       The list to free.
  *
  *  \note
@@ -476,7 +476,7 @@ void o_attrib_unselect_draw(ATTRIB *list)
  *  so it should only be used when an object is being destroyed
  *  goes backwards
  */
-void o_attrib_free_all(TOPLEVEL *w_current, ATTRIB *list)
+void o_attrib_free_all(TOPLEVEL *toplevel, ATTRIB *list)
 {
   ATTRIB *a_current; 
   ATTRIB *a_next;
@@ -485,7 +485,7 @@ void o_attrib_free_all(TOPLEVEL *w_current, ATTRIB *list)
 
   while (a_current != NULL) {
     a_next = a_current->next;
-    o_attrib_free(w_current, a_current);
+    o_attrib_free(toplevel, a_current);
     a_current = a_next;
   }
 }
@@ -623,11 +623,11 @@ void o_attrib_remove(ATTRIB *list, ATTRIB *remove)
  *  \par Function Description
  *  Detach all attributes from a list.
  *
- *  \param [in] w_current    The TOPLEVEL object.
+ *  \param [in] toplevel    The TOPLEVEL object.
  *  \param [in] object_list  Attribute list to delete.
  *  \param [in] main_head    The head of the attribute list.
  */
-void o_attrib_detach_all(TOPLEVEL *w_current, OBJECT *object_list, OBJECT *main_head)
+void o_attrib_detach_all(TOPLEVEL *toplevel, OBJECT *object_list, OBJECT *main_head)
 {
 #if 0 /* not used */
   OBJECT *o_current=NULL;
@@ -640,9 +640,9 @@ void o_attrib_detach_all(TOPLEVEL *w_current, OBJECT *object_list, OBJECT *main_
 
     if (X) {
       if (X->attribs != NULL) {
-        o_attrib_free_all(w_current, X->attribs);
+        o_attrib_free_all(toplevel, X->attribs);
         X->attribs = NULL; /* leak possible? */
-        w_current->page_current->CHANGED=1;
+        toplevel->page_current->CHANGED=1;
       }
     }
     o_current = o_current->next;
@@ -654,14 +654,14 @@ void o_attrib_detach_all(TOPLEVEL *w_current, OBJECT *object_list, OBJECT *main_
  *  \par Function Description
  *  Read attributes from a TextBuffer.
  *
- *  \param [in]  w_current              The TOPLEVEL object.
+ *  \param [in]  toplevel              The TOPLEVEL object.
  *  \param [out] object_to_get_attribs  Storage for attributes.
  *  \param [in]  tb                     The text buffer to read from.
  *  \param [in]  release_ver            libgeda release version number.
  *  \param [in]  fileformat_ver         file format version number.
  *  \return Pointer to object_to_get_attribs.
  */
-OBJECT *o_read_attribs(TOPLEVEL *w_current, 
+OBJECT *o_read_attribs(TOPLEVEL *toplevel,
 		       OBJECT *object_to_get_attribs,
    		       TextBuffer *tb,
 		       unsigned int release_ver, unsigned int fileformat_ver)
@@ -683,7 +683,7 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
     switch (objtype) {
 
       case(OBJ_LINE):
-        object_list = (OBJECT *) o_line_read(w_current, 
+        object_list = (OBJECT *) o_line_read(toplevel,
                                              object_list,
                                              line, 
                                              release_ver, fileformat_ver);
@@ -691,21 +691,21 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
 
 
       case(OBJ_NET):
-        object_list = (OBJECT *) o_net_read(w_current, 
+        object_list = (OBJECT *) o_net_read(toplevel,
                                             object_list, 
                                             line, 
                                             release_ver, fileformat_ver);
         break;
 
       case(OBJ_BUS):
-        object_list = (OBJECT *) o_bus_read(w_current, 
+        object_list = (OBJECT *) o_bus_read(toplevel,
                                             object_list, 
                                             line, 
                                             release_ver, fileformat_ver);
         break;
 
       case(OBJ_BOX):
-        object_list = (OBJECT *) o_box_read(w_current, 
+        object_list = (OBJECT *) o_box_read(toplevel,
                                             object_list, 
                                             line, 
                                             release_ver, fileformat_ver);
@@ -713,7 +713,7 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
 		
       case(OBJ_CIRCLE):
         object_list = (OBJECT *) o_circle_read(
-                                               w_current, 
+                                               toplevel,
                                                object_list, 
                                                line, 
                                                release_ver, fileformat_ver);
@@ -723,7 +723,7 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
       case(OBJ_PLACEHOLDER):
 			
         object_list = (OBJECT *) o_complex_read(
-                                                w_current, 
+                                                toplevel,
                                                 object_list, 
                                                 line, 
                                                 release_ver, fileformat_ver);
@@ -736,14 +736,14 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
         break;
 
       case(OBJ_PIN):
-        object_list = (OBJECT *) o_pin_read(w_current, 
+        object_list = (OBJECT *) o_pin_read(toplevel,
                                             object_list, 
                                             line, 
                                             release_ver, fileformat_ver);
         break;
 
       case(OBJ_ARC):
-        object_list = (OBJECT *) o_arc_read(w_current, 
+        object_list = (OBJECT *) o_arc_read(toplevel,
                                             object_list, 
                                             line, 
                                             release_ver, fileformat_ver);
@@ -751,7 +751,7 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
 
       case(OBJ_TEXT):
 	line = g_strdup (line);
-        object_list = (OBJECT *) o_text_read(w_current,
+        object_list = (OBJECT *) o_text_read(toplevel,
                                              object_list, 
                                              line,
 					     tb,
@@ -769,8 +769,8 @@ OBJECT *o_read_attribs(TOPLEVEL *w_current,
     }
 
     if (ATTACH) {
-      o_attrib_attach(w_current, 
-                      w_current->page_current->object_parent, 
+      o_attrib_attach(toplevel,
+                      toplevel->page_current->object_parent,
                       object_list, object_to_get_attribs);
       /* check color to set it to the right value */
       if (object_list->color != saved_color) {
@@ -961,60 +961,60 @@ int o_attrib_get_name_value(char *string, char **name_ptr, char **value_ptr )
  *  \par Function Description
  *  Free the currently selected attribute.
  *
- *  \param [in] w_current  The TOPLEVEL object containing current attribute.
+ *  \param [in] toplevel  The TOPLEVEL object containing current attribute.
  *
  */
-void o_attrib_free_current(TOPLEVEL *w_current)
+void o_attrib_free_current(TOPLEVEL *toplevel)
 {
-  if (w_current->current_attribute) {
-    g_free(w_current->current_attribute);
+  if (toplevel->current_attribute) {
+    g_free(toplevel->current_attribute);
   }
-  w_current->current_attribute=NULL;
+  toplevel->current_attribute=NULL;
 }
 
 /*! \brief Set current show flag.
  *  \par Function Description
  *  Set current show flag.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] flag       Any value which show_name_value takes.
  *                         #SHOW_NAME_VALUE
  *                         #SHOW_VALUE
  *                         #SHOW_NAME
  */
-void o_attrib_set_show(TOPLEVEL *w_current, int flag)
+void o_attrib_set_show(TOPLEVEL *toplevel, int flag)
 {
-  w_current->current_show = flag;
+  toplevel->current_show = flag;
 }
 
 /*! \brief Set current visibility flag.
  *  \par Function Description
  *  Set current visibility flag.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] flag       Allowed values are:
  *                         #VISIBLE
  *                         #INVISIBLE
  */
 void
-o_attrib_set_visible(TOPLEVEL *w_current, int flag)
+o_attrib_set_visible(TOPLEVEL *toplevel, int flag)
 {
-  w_current->current_visible = flag;
+  toplevel->current_visible = flag;
 }
 
 /*! \brief Set an attribute's string.
  *  \par Function Description
  *  Set an attribute's string.
  *
- *  \param [in] w_current  The TOPLEVEL object that holds the attribute.
+ *  \param [in] toplevel  The TOPLEVEL object that holds the attribute.
  *  \param [in] string     The value to set attribute string to.
  *
  *  \note
  *  The user of this function must g_free the
- *  <B>w_current->current_attribute</B> string after done using it.
+ *  <B>toplevel->current_attribute</B> string after done using it.
  *  They must also free the input string.
  */
-void o_attrib_set_string(TOPLEVEL *w_current, char *string)
+void o_attrib_set_string(TOPLEVEL *toplevel, char *string)
 {
   int len;
 
@@ -1024,16 +1024,16 @@ void o_attrib_set_string(TOPLEVEL *w_current, char *string)
     return;
   }
 
-  if (w_current->current_attribute != NULL) {
-    g_free(w_current->current_attribute);
-    w_current->current_attribute=NULL;
+  if (toplevel->current_attribute != NULL) {
+    g_free(toplevel->current_attribute);
+    toplevel->current_attribute=NULL;
   }
 
   len = strlen(string);
 
-  w_current->current_attribute = (char *) g_malloc(sizeof(char)*len+1);
+  toplevel->current_attribute = (char *) g_malloc(sizeof(char)*len+1);
 
-  strcpy(w_current->current_attribute,string);
+  strcpy(toplevel->current_attribute,string);
 	
   /* be sure to g_free this string somewhere and free the input string */
 }
@@ -1069,12 +1069,12 @@ OBJECT *o_attrib_return_parent(ATTRIB *attribute)
  *  This function will copy all attributes from the provided list
  *  by attaching them to the provided OBJECT list.
  *
- *  \param [in]  w_current    The TOPLEVEL object.
+ *  \param [in]  toplevel    The TOPLEVEL object.
  *  \param [out] attached_to  OBJECT list to copy attributes to.
  *  \param [in]  attributes   ATTRIB list to copy attributes from.
  *  \return new attribute list.
  */
-ATTRIB *o_attrib_copy_all(TOPLEVEL *w_current, OBJECT *attached_to,
+ATTRIB *o_attrib_copy_all(TOPLEVEL *toplevel, OBJECT *attached_to,
 			  ATTRIB *attributes) 
 {
   ATTRIB *a_current=NULL;
@@ -1156,11 +1156,11 @@ void o_attrib_reattach(ATTRIB *attributes)
  *  This function sets all attribute objects to the right
  *  color (attribute_color).
  *
- *  \param [in]     w_current   The TOPLEVEL object.
+ *  \param [in]     toplevel   The TOPLEVEL object.
  *  \param [in,out] attributes  ATTRIB list to set colors on.
  *
  */
-void o_attrib_set_color(TOPLEVEL *w_current, ATTRIB *attributes) 
+void o_attrib_set_color(TOPLEVEL *toplevel, ATTRIB *attributes)
 {
   ATTRIB *a_current;
 
@@ -1191,16 +1191,16 @@ void o_attrib_set_color(TOPLEVEL *w_current, ATTRIB *attributes)
 
           o_complex_set_saved_color_only(
                                          a_current->object->text->prim_objs,
-                                         w_current->attribute_color); 
-          a_current->object->saved_color = w_current->
+                                         toplevel->attribute_color);
+          a_current->object->saved_color = toplevel->
             attribute_color;
 
         } else {
           o_complex_set_color(
                               a_current->object->text->prim_objs,
-                              w_current->attribute_color); 
+                              toplevel->attribute_color);
           a_current->object->color = 
-            w_current->attribute_color;
+            toplevel->attribute_color;
         }
       }	
 
@@ -2128,10 +2128,10 @@ char *o_attrib_search_component(OBJECT *object, char *name)
  *  parts, but on slotted parts, this is what sets the 
  *  pinnumber= attribute on slots 2, 3, 4....
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     The OBJECT to update.
  */
-void o_attrib_slot_update(TOPLEVEL *w_current, OBJECT *object)
+void o_attrib_slot_update(TOPLEVEL *toplevel, OBJECT *object)
 {
   OBJECT *o_current;  /* o_current points to the sch level complex object */
   OBJECT *o_slot_attrib;
@@ -2217,7 +2217,7 @@ void o_attrib_slot_update(TOPLEVEL *w_current, OBJECT *object)
         /* removed _int from current_pin */
         sprintf(o_pinnum_object->text->string, "pinnumber=%s", current_pin);
         
-        o_text_recreate(w_current, o_pinnum_object);
+        o_text_recreate(toplevel, o_pinnum_object);
       }
       if (string) {
       	g_free(string);
@@ -2263,7 +2263,7 @@ void o_attrib_slot_update(TOPLEVEL *w_current, OBJECT *object)
 	printf("new_pinseq attrib = %s \n", o_pinseq_object->text->string);
 #endif
         
-        o_text_recreate(w_current, o_pinseq_object);
+        o_text_recreate(toplevel, o_pinseq_object);
       }
       if (string) {
       	g_free(string);
@@ -2285,11 +2285,11 @@ void o_attrib_slot_update(TOPLEVEL *w_current, OBJECT *object)
  *  This function will perform a slot copy of the <B>original</B> OBJECT
  *  to the <B>target</B> OBJECT.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  original   The original OBJECT to slot copy from.
  *  \param [out] target     The target OBJECT to slot copy to.
  */
-void o_attrib_slot_copy(TOPLEVEL *w_current, OBJECT *original, OBJECT *target)
+void o_attrib_slot_copy(TOPLEVEL *toplevel, OBJECT *original, OBJECT *target)
 {
 
   OBJECT *o_current;
@@ -2366,7 +2366,7 @@ void o_attrib_slot_copy(TOPLEVEL *w_current, OBJECT *original, OBJECT *target)
         /* removed _int from current_pin */
         sprintf(o_pinnum_object->text->string, "pinnumber=%s", current_pin);
         
-        o_text_recreate(w_current, o_pinnum_object);
+        o_text_recreate(toplevel, o_pinnum_object);
       }
       
       pin_counter++;
@@ -2385,12 +2385,12 @@ void o_attrib_slot_copy(TOPLEVEL *w_current, OBJECT *original, OBJECT *target)
  *  This function will return the number of TOPLEVEL attributes
  *  in all loaded pages.
  *
- *  \param [in] w_current  The TOPLEVEL object to search.
+ *  \param [in] toplevel  The TOPLEVEL object to search.
  *  \param [in] name       Attribute name to search for.
  *  \return Count of TOPLEVEL attributes in all loaded pages.
  */
 /* returns the number of toplevel attributes in all loaded pages */
-int o_attrib_count_toplevel(TOPLEVEL *w_current, char *name)
+int o_attrib_count_toplevel(TOPLEVEL *toplevel, char *name)
 {
   const GList *iter;
   int ret_value=0;
@@ -2398,7 +2398,7 @@ int o_attrib_count_toplevel(TOPLEVEL *w_current, char *name)
   PAGE *p_current;
   char *string;
 
-  iter = geda_list_get_glist( w_current->pages );
+  iter = geda_list_get_glist( toplevel->pages );
 
   while( iter != NULL ) {
     p_current = (PAGE *)iter->data;
diff --git a/libgeda/src/o_basic.c b/libgeda/src/o_basic.c
index 0226853..0ea20ef 100644
--- a/libgeda/src/o_basic.c
+++ b/libgeda/src/o_basic.c
@@ -69,22 +69,22 @@ int inside_region(int xmin, int ymin, int xmax, int ymax, int x, int y)
  *  \par Function Description
  *  This function will redraw a single object on the screen.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] o_current  The OBJECT to redraw.
  *
  */
-void o_redraw_single(TOPLEVEL *w_current, OBJECT *o_current)
+void o_redraw_single(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   if (o_current == NULL)
   return;
 	
-  if (w_current->DONT_REDRAW) /* highly experimental */
+  if (toplevel->DONT_REDRAW) /* highly experimental */
   return;
 
   if (o_current->draw_func != NULL && o_current->type != OBJ_HEAD) {
-    w_current->inside_redraw = 1;
-    (*o_current->draw_func)(w_current, o_current);
-    w_current->inside_redraw = 0;
+    toplevel->inside_redraw = 1;
+    (*o_current->draw_func)(toplevel, o_current);
+    toplevel->inside_redraw = 0;
   }
 }
 
@@ -93,50 +93,50 @@ void o_redraw_single(TOPLEVEL *w_current, OBJECT *o_current)
  *  This function will take an object and recalculate its
  *  position on the screen.
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] o_current    OBJECT to recalculate.
  *
  */
-void o_recalc_single_object(TOPLEVEL *w_current, OBJECT *o_current)
+void o_recalc_single_object(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   if (o_current != NULL) {
     switch(o_current->type) {
 
       case(OBJ_LINE):
-        o_line_recalc(w_current, o_current);
+        o_line_recalc(toplevel, o_current);
         break;
 
       case(OBJ_NET):
-        o_net_recalc(w_current, o_current);
+        o_net_recalc(toplevel, o_current);
         break;
 
       case(OBJ_BUS):
-        o_bus_recalc(w_current, o_current);
+        o_bus_recalc(toplevel, o_current);
         break;
 
       case(OBJ_BOX):
-        o_box_recalc(w_current, o_current);
+        o_box_recalc(toplevel, o_current);
         break;
 
       case(OBJ_PICTURE):
-        o_picture_recalc(w_current, o_current);
+        o_picture_recalc(toplevel, o_current);
         break;
 
       case(OBJ_CIRCLE):
-        o_circle_recalc(w_current, o_current);
+        o_circle_recalc(toplevel, o_current);
         break;
 
       case(OBJ_COMPLEX):
       case(OBJ_PLACEHOLDER):
-        o_complex_recalc(w_current, o_current);
+        o_complex_recalc(toplevel, o_current);
         break;
 
       case(OBJ_PIN):
-        o_pin_recalc(w_current, o_current);
+        o_pin_recalc(toplevel, o_current);
         break;
 
       case(OBJ_ARC):
-        o_arc_recalc(w_current, o_current);
+        o_arc_recalc(toplevel, o_current);
         break;
     }
   }
@@ -147,18 +147,18 @@ void o_recalc_single_object(TOPLEVEL *w_current, OBJECT *o_current)
  *  This function will take a list of objects and recalculate their
  *  positions on the screen.
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list  OBJECT list to recalculate.
  *
  */
 void
-o_recalc_object_list(TOPLEVEL *w_current, OBJECT *object_list)
+o_recalc_object_list(TOPLEVEL *toplevel, OBJECT *object_list)
 {
   OBJECT *o_current;
 
   o_current = object_list;
   while (o_current != NULL) {
-    o_recalc_single_object(w_current, o_current);
+    o_recalc_single_object(toplevel, o_current);
     o_current = o_current->next;
   }
 }
@@ -168,19 +168,19 @@ o_recalc_object_list(TOPLEVEL *w_current, OBJECT *object_list)
  *  This function will take a list (GList) of objects and recalculate their
  *  positions on the screen.
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_glist  OBJECT list to recalculate.
  *
  */
 void
-o_recalc_object_glist(TOPLEVEL *w_current, GList *object_glist)
+o_recalc_object_glist(TOPLEVEL *toplevel, GList *object_glist)
 {
   GList *list = object_glist;
   OBJECT *o_current;
 
   while (list != NULL) {
     o_current = (OBJECT *) list->data;
-    o_recalc_single_object(w_current, o_current);
+    o_recalc_single_object(toplevel, o_current);
    list = list->next;
   }
 }
@@ -194,7 +194,7 @@ o_recalc_object_glist(TOPLEVEL *w_current, GList *object_glist)
  *  See #OBJECT_END and #OBJECT_TYPE for information on valid
  *  object end and type values.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] o_current  OBJECT to set line options on.
  *  \param [in]     end        An OBJECT_END.
  *  \param [in]     type       An OBJECT_TYPE.
@@ -205,7 +205,7 @@ o_recalc_object_glist(TOPLEVEL *w_current, GList *object_glist)
  *  \todo Make space an unsigned int and check for a max value instead.
  *        If a max value is not required, then it would simplify the code.
  */
-void o_set_line_options(TOPLEVEL *w_current, OBJECT *o_current,
+void o_set_line_options(TOPLEVEL *toplevel, OBJECT *o_current,
 			OBJECT_END end, OBJECT_TYPE type,
 			int width, int length, int space) 
 {
@@ -246,7 +246,7 @@ void o_set_line_options(TOPLEVEL *w_current, OBJECT *o_current,
   o_current->line_space  = space;
 
   /* Recalculate the object's bounding box */
-  o_recalc_single_object( w_current, o_current );
+  o_recalc_single_object( toplevel, o_current );
 }
 
 /*! \brief Set #OBJECT's fill options.
@@ -254,7 +254,7 @@ void o_set_line_options(TOPLEVEL *w_current, OBJECT *o_current,
  *  This function allows an #OBJECT's fill options to be configured.
  *  See #OBJECT_FILLING for information on valid fill types.
  *
- *  \param [in]      w_current  The TOPLEVEL object.
+ *  \param [in]      toplevel  The TOPLEVEL object.
  *  \param [in,out]  o_current  OBJECT to be updated.
  *  \param [in]      type       OBJECT_FILLING type.
  *  \param [in]      width      fill width.
@@ -264,7 +264,7 @@ void o_set_line_options(TOPLEVEL *w_current, OBJECT *o_current,
  *  \param [in]      angle2     cross hatch???.
  *
  */
-void o_set_fill_options(TOPLEVEL *w_current, OBJECT *o_current,
+void o_set_fill_options(TOPLEVEL *toplevel, OBJECT *o_current,
 			OBJECT_FILLING type, int width,
 			int pitch1, int angle1,
 			int pitch2, int angle2) 
diff --git a/libgeda/src/o_box_basic.c b/libgeda/src/o_box_basic.c
index d700aab..4a40615 100644
--- a/libgeda/src/o_box_basic.c
+++ b/libgeda/src/o_box_basic.c
@@ -79,7 +79,7 @@
  *  The object is added to the end of the list described by the <B>object_list</B>
  *  parameter by the #s_basic_link_object().
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list  OBJECT list to add box to.
  *  \param [in]     type         Box type.
  *  \param [in]     color        Box border color.
@@ -89,7 +89,7 @@
  *  \param [in]     y2           Lower y coordinate.
  *  \return A new pointer on the end of the <B>object_list</B>
  */
-OBJECT *o_box_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_box_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		  char type, int color,
 		  int x1, int y1, int x2, int y2)
 {
@@ -111,16 +111,16 @@ OBJECT *o_box_add(TOPLEVEL *w_current, OBJECT *object_list,
   box->lower_y = y2;
 
   /* line type and filling initialized to default */
-  o_set_line_options(w_current, new_node,
+  o_set_line_options(toplevel, new_node,
 		     END_NONE, TYPE_SOLID, 0, -1, -1);
-  o_set_fill_options(w_current, new_node,
+  o_set_fill_options(toplevel, new_node,
 		     FILLING_HOLLOW, -1, -1, -1, -1, -1);
 
   new_node->draw_func = box_draw_func; 
   new_node->sel_func  = select_func;  
 
   /* compute the bounding box */
-  o_box_recalc(w_current, new_node);
+  o_box_recalc(toplevel, new_node);
 
   /* add the object to the list */
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
@@ -134,12 +134,12 @@ OBJECT *o_box_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  pointed by <B>o_current</B> describing a box. The new object is added at
  *  the end of the list, following the <B>list_tail</B> pointed object.
  *
- *  \param [in]      w_current  The TOPLEVEL object.
+ *  \param [in]      toplevel  The TOPLEVEL object.
  *  \param [in,out]  list_tail  OBJECT list to copy to.
  *  \param [in]      o_current  BOX OBJECT to copy.
  *  \return A new pointer on the end of the OBJECT <B>list_tail</B>.
  */
-OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
+OBJECT *o_box_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current)
 {
   OBJECT *new_obj;
   ATTRIB *a_current;
@@ -158,7 +158,7 @@ OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
    */
 
   /* create and link a new box object */	
-  new_obj = o_box_add(w_current, list_tail,
+  new_obj = o_box_add(toplevel, list_tail,
 		      OBJ_BOX, color,
 		      0, 0, 0, 0);
 
@@ -177,15 +177,15 @@ OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
   new_obj->box->lower_x = o_current->box->lower_x;
   new_obj->box->lower_y = o_current->box->lower_y;
 	
-  o_set_line_options(w_current, new_obj, o_current->line_end,
+  o_set_line_options(toplevel, new_obj, o_current->line_end,
 		     o_current->line_type, o_current->line_width,
 		     o_current->line_length, o_current->line_space);
-  o_set_fill_options(w_current, new_obj,
+  o_set_fill_options(toplevel, new_obj,
 		     o_current->fill_type, o_current->fill_width,
 		     o_current->fill_pitch1, o_current->fill_angle1,
 		     o_current->fill_pitch2, o_current->fill_angle2);
 
-  o_box_recalc(w_current, new_obj);
+  o_box_recalc(toplevel, new_obj);
 
   /* new_obj->attribute = 0;*/
   a_current = o_current->attribs;
@@ -213,7 +213,7 @@ OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *  The coordinates of the corner is modified in the world coordinate system.
  *  Screen coordinates and boundings are then updated.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     BOX OBJECT to be modified.
  *  \param [in]     x          x coordinate.
  *  \param [in]     y          y coordinate.
@@ -232,7 +232,7 @@ OBJECT *o_box_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *  pb20011002 - rewritten : old one did not used <B>x</B>, <B>y</B> and
  *                           <B>whichone</B>
  */
-void o_box_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_box_modify(TOPLEVEL *toplevel, OBJECT *object,
 		  int x, int y, int whichone)
 {
 	int tmp;
@@ -277,7 +277,7 @@ void o_box_modify(TOPLEVEL *w_current, OBJECT *object,
 	}
 	
 	/* recalculate the world coords and the boundings */
-	o_box_recalc(w_current, object);
+	o_box_recalc(toplevel, object);
   
 }
 
@@ -294,14 +294,14 @@ void o_box_modify(TOPLEVEL *w_current, OBJECT *object,
  *    <DT>*</DT><DD>the file format used for the releases after 2000704.
  *  </DL>
  *
- *  \param [in]     w_current       The TOPLEVEL object.
+ *  \param [in]     toplevel       The TOPLEVEL object.
  *  \param [in,out] object_list     BOX OBJECT list to add new BOX to.
  *  \param [in]     buf             Character string with box description.
  *  \param [in]     release_ver     libgeda release version number.
  *  \param [in]     fileformat_ver  libgeda file format version number.
  *  \return The BOX OBJECT that was created.
  */
-OBJECT *o_box_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_box_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		   unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -387,15 +387,15 @@ OBJECT *o_box_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
   d_y2 = y1;
   
   /* create and add the box to the list */
-  object_list = (OBJECT *) o_box_add(w_current, object_list,
+  object_list = (OBJECT *) o_box_add(toplevel, object_list,
 				     type, color,
 				     d_x1, d_y1, d_x2, d_y2);
   /* set its line options */
-  o_set_line_options(w_current, object_list,
+  o_set_line_options(toplevel, object_list,
 		     box_end, box_type, box_width, 
 		     box_length, box_space);
   /* set its fill options */
-  o_set_fill_options(w_current, object_list,
+  o_set_fill_options(toplevel, object_list,
 		     box_filling, fill_width,
 		     pitch1, angle1, pitch2, angle2);
   return(object_list);
@@ -482,12 +482,12 @@ char *o_box_save(OBJECT *object)
  *  This function applies a translation of (<B>x1</B>,<B>y1</B>) to the box
  *  described by <B>*object</B>. <B>x1</B> and <B>y1</B> are in world unit.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in]     x1         x distance to move.
  *  \param [in]     y1         y distance to move.
  *  \param [in,out] object     BOX OBJECT to translate.
  */
-void o_box_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
+void o_box_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object)
 {
   if (object == NULL) printf("btw NO!\n");
 
@@ -498,7 +498,7 @@ void o_box_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
   object->box->lower_y = object->box->lower_y + y1;     
 
   /* recalc the screen coords and the bounding box */
-  o_box_recalc(w_current, object);
+  o_box_recalc(toplevel, object);
 }
 
 /*! \brief Rotate BOX OBJECT using WORLD coordinates. 
@@ -508,14 +508,14 @@ void o_box_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
  *  <B>angle</B> degrees.
  *  The center of rotation is in world unit.
  *
- *  \param [in]      w_current      The TOPLEVEL object.
+ *  \param [in]      toplevel      The TOPLEVEL object.
  *  \param [in]      world_centerx  Rotation center x coordinate in WORLD units.
  *  \param [in]      world_centery  Rotation center y coordinate in WORLD units.
  *  \param [in]      angle          Rotation angle in degrees (See note below).
  *  \param [in,out]  object         BOX OBJECT to rotate.
  *
  */
-void o_box_rotate_world(TOPLEVEL *w_current, 
+void o_box_rotate_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, int angle,
 			OBJECT *object)
 {
@@ -564,7 +564,7 @@ void o_box_rotate_world(TOPLEVEL *w_current,
   object->box->lower_y += world_centery;
   
   /* recalc boundings and world coords */
-  o_box_recalc(w_current, object);
+  o_box_recalc(toplevel, object);
 }
 
 /*! \brief Mirror BOX using WORLD coordinates.
@@ -575,12 +575,12 @@ void o_box_rotate_world(TOPLEVEL *w_current,
  *  The box is first translated to the origin, then mirrored and finally
  *  translated back at its previous position.
  *
- *  \param [in]     w_current      The TOPLEVEL object.
+ *  \param [in]     toplevel      The TOPLEVEL object.
  *  \param [in]     world_centerx  Origin x coordinate in WORLD units.
  *  \param [in]     world_centery  Origin y coordinate in WORLD units.
  *  \param [in,out] object         BOX OBJECT to mirror.
  */
-void o_box_mirror_world(TOPLEVEL *w_current,
+void o_box_mirror_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery,
 			OBJECT *object)
 {
@@ -612,7 +612,7 @@ void o_box_mirror_world(TOPLEVEL *w_current,
   object->box->lower_y += world_centery;
 
   /* recalc boundings and world coords */
-  o_box_recalc(w_current, object);
+  o_box_recalc(toplevel, object);
   
 }
 
@@ -621,10 +621,10 @@ void o_box_mirror_world(TOPLEVEL *w_current,
  *  This function recalculates the box coordinates and its 
  *  bounding are recalculated as well.
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in,out] o_current  BOX OBJECT to be recalculated.
  */
-void o_box_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_box_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, top, right, bottom;
 
@@ -633,7 +633,7 @@ void o_box_recalc(TOPLEVEL *w_current, OBJECT *o_current)
   }
 
   /* update the bounding box - world unit */
-  world_get_box_bounds(w_current, o_current, &left, &top, &right, &bottom);
+  world_get_box_bounds(toplevel, o_current, &left, &top, &right, &bottom);
   o_current->w_left   = left;
   o_current->w_top    = top;
   o_current->w_right  = right;
@@ -647,14 +647,14 @@ void o_box_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  parameters to the boundings of the box object described in <B>*box</B>
  *  in world units.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  object     BOX OBJECT to read coordinates from.
  *  \param [out] left       Left box coordinate in WORLD units.
  *  \param [out] top        Top box coordinate in WORLD units.
  *  \param [out] right      Right box coordinate in WORLD units.
  *  \param [out] bottom     Bottom box coordinate in WORLD units.
  */
-void world_get_box_bounds(TOPLEVEL *w_current, OBJECT *object,
+void world_get_box_bounds(TOPLEVEL *toplevel, OBJECT *object,
                           int *left, int *top, int *right, int *bottom)
 {
   int halfwidth;
@@ -691,13 +691,13 @@ void world_get_box_bounds(TOPLEVEL *w_current, OBJECT *object,
  *  The outline and the inside of the box are successively handled by two
  *  differend sets of functions.
  *  
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to Postscript document.
  *  \param [in] o_current  BOX OBJECT to write to document.
  *  \param [in] origin_x   Page x coordinate to place BOX OBJECT.
  *  \param [in] origin_y   Page y coordinate to place BOX OBJECT.
  */
-void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_box_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		 int origin_x, int origin_y)
 {
   int x, y, width, height;
@@ -735,7 +735,7 @@ void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
   line_width = o_current->line_width;
   
   if(line_width <=2) {
-    if(w_current->line_style == THICK) {
+    if(toplevel->line_style == THICK) {
       line_width=LINE_WIDTH;
     } else {
       line_width=2;
@@ -779,7 +779,7 @@ void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     outl_func = o_box_print_solid;
   }
 
-  (*outl_func)(w_current, fp,
+  (*outl_func)(toplevel, fp,
 	       x, y, width, height,
 	       color,
 	       line_width,
@@ -840,7 +840,7 @@ void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
       fill_func = o_box_print_filled;
     }
     
-    (*fill_func)(w_current, fp,
+    (*fill_func)(toplevel, fp,
                  x, y, width, height,
                  color,
                  fill_width,
@@ -863,7 +863,7 @@ void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -880,7 +880,7 @@ void o_box_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *   PB : parameter filled removed
  */
 void
-o_box_print_solid(TOPLEVEL *w_current, FILE *fp,
+o_box_print_solid(TOPLEVEL *toplevel, FILE *fp,
                   int x, int y,
                   int width, int height,
                   int color,
@@ -889,29 +889,29 @@ o_box_print_solid(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
   x1 = x;
   y1 = y - height; /* move the origin to 0, 0*/
 
-  o_line_print_solid(w_current, fp,
+  o_line_print_solid(toplevel, fp,
                      x1, y1, x1 + width, y1,
                      color,
                      line_width, length, space,
                      origin_x, origin_y);
-  o_line_print_solid(w_current, fp,
+  o_line_print_solid(toplevel, fp,
                      x1 + width, y1, x1 + width, y1 + height,
                      color,
                      line_width, length, space,
                      origin_x, origin_y);
-  o_line_print_solid(w_current, fp,
+  o_line_print_solid(toplevel, fp,
                      x1 + width, y1 + height, x1, y1 + height,
                      color,
                      line_width, length, space,
                      origin_x, origin_y);
-  o_line_print_solid(w_current, fp,
+  o_line_print_solid(toplevel, fp,
                      x1, y1 + height, x1, y1,
                      color,
                      line_width, length, space,
@@ -932,7 +932,7 @@ o_box_print_solid(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -949,7 +949,7 @@ o_box_print_solid(TOPLEVEL *w_current, FILE *fp,
  *  PB : parameter filled removed
  *  PB : parameter o_current removed
  */
-void o_box_print_dotted(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_dotted(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y,
 			int width, int height,
 			int color,
@@ -958,29 +958,29 @@ void o_box_print_dotted(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
   x1 = x;
   y1 = y - height; /* move the origin to 0, 0*/
 
-  o_line_print_dotted(w_current, fp,
+  o_line_print_dotted(toplevel, fp,
                       x1, y1, x1 + width, y1,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dotted(w_current, fp,
+  o_line_print_dotted(toplevel, fp,
                       x1 + width, y1, x1 + width, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dotted(w_current, fp,
+  o_line_print_dotted(toplevel, fp,
                       x1 + width, y1 + height, x1, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dotted(w_current, fp,
+  o_line_print_dotted(toplevel, fp,
                       x1, y1 + height, x1, y1,
                       color,
                       line_width, length, space,
@@ -1000,7 +1000,7 @@ void o_box_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1017,7 +1017,7 @@ void o_box_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *  PB : parameter filled removed
  *  PB : parameter o_current removed
  */
-void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_dashed(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y,
 			int width, int height,
 			int color,
@@ -1026,7 +1026,7 @@ void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -1034,22 +1034,22 @@ void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp,
   x1 = x;
   y1 = y - height; /* move the origin to 0, 0*/
 
-  o_line_print_dashed(w_current, fp,
+  o_line_print_dashed(toplevel, fp,
                       x1, y1, x1 + width, y1,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dashed(w_current, fp,
+  o_line_print_dashed(toplevel, fp,
                       x1 + width, y1, x1 + width, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dashed(w_current, fp,
+  o_line_print_dashed(toplevel, fp,
                       x1 + width, y1 + height, x1, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_dashed(w_current, fp,
+  o_line_print_dashed(toplevel, fp,
                       x1, y1 + height, x1, y1,
                       color,
                       line_width, length, space,
@@ -1069,7 +1069,7 @@ void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1086,7 +1086,7 @@ void o_box_print_dashed(TOPLEVEL *w_current, FILE *fp,
  * PB : parameter filled removed
  * PB : parameter o_current removed
  */
-void o_box_print_center(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_center(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y,
 			int width, int height,
 			int color,
@@ -1095,29 +1095,29 @@ void o_box_print_center(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
   x1 = x;
   y1 = y - height; /* move the origin to 0, 0*/
 
-  o_line_print_center(w_current, fp,
+  o_line_print_center(toplevel, fp,
                       x1, y1, x1 + width, y1,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_center(w_current, fp,
+  o_line_print_center(toplevel, fp,
                       x1 + width, y1, x1 + width, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_center(w_current, fp,
+  o_line_print_center(toplevel, fp,
                       x1 + width, y1 + height, x1, y1 + height,
                       color,
                       line_width, length, space,
                       origin_x, origin_y);
-  o_line_print_center(w_current, fp,
+  o_line_print_center(toplevel, fp,
                       x1, y1 + height, x1, y1,
                       color,
                       line_width, length, space,
@@ -1137,7 +1137,7 @@ void o_box_print_center(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *  
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1154,7 +1154,7 @@ void o_box_print_center(TOPLEVEL *w_current, FILE *fp,
  *  PB : parameter filled removed
  *  PB : parameter o_current removed
  */
-void o_box_print_phantom(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_phantom(TOPLEVEL *toplevel, FILE *fp,
 			 int x, int y,
 			 int width, int height,
 			 int color,
@@ -1163,29 +1163,29 @@ void o_box_print_phantom(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
   x1 = x;
   y1 = y - height; /* move the origin to 0, 0*/
 
-  o_line_print_phantom(w_current, fp,
+  o_line_print_phantom(toplevel, fp,
                        x1, y1, x1 + width, y1,
                        color,
                        line_width, length, space,
                        origin_x, origin_y);
-  o_line_print_phantom(w_current, fp,
+  o_line_print_phantom(toplevel, fp,
                        x1 + width, y1, x1 + width, y1 + height,
                        color,
                        line_width, length, space,
                        origin_x, origin_y);
-  o_line_print_phantom(w_current, fp,
+  o_line_print_phantom(toplevel, fp,
                        x1 + width, y1 + height, x1, y1 + height,
                        color,
                        line_width, length, space,
                        origin_x, origin_y);
-  o_line_print_phantom(w_current, fp,
+  o_line_print_phantom(toplevel, fp,
                        x1, y1 + height, x1, y1,
                        color,
                        line_width, length, space,
@@ -1209,7 +1209,7 @@ void o_box_print_phantom(TOPLEVEL *w_current, FILE *fp,
  * 
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1224,7 +1224,7 @@ void o_box_print_phantom(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place BOX OBJECT.
  *  \param [in] origin_y    Page y coordinate to place BOX OBJECT.
  */
-void o_box_print_filled(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_filled(TOPLEVEL *toplevel, FILE *fp,
 			int x, int y,
 			int width, int height,
 			int color,
@@ -1235,7 +1235,7 @@ void o_box_print_filled(TOPLEVEL *w_current, FILE *fp,
 {
   int x1, y1;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -1263,7 +1263,7 @@ void o_box_print_filled(TOPLEVEL *w_current, FILE *fp,
  * 
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1278,7 +1278,7 @@ void o_box_print_filled(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place BOX OBJECT.
  *  \param [in] origin_y    Page y coordinate to place BOX OBJECT.
  */
-void o_box_print_mesh(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_mesh(TOPLEVEL *toplevel, FILE *fp,
 		      int x, int y,
 		      int width, int height,
 		      int color,
@@ -1287,13 +1287,13 @@ void o_box_print_mesh(TOPLEVEL *w_current, FILE *fp,
 		      int angle2, int pitch2,
 		      int origin_x, int origin_y)
 {
-  o_box_print_hatch(w_current, fp,
+  o_box_print_hatch(toplevel, fp,
                     x, y, width, height,
                     color,
                     fill_width,
                     angle1, pitch1, -1, -1,
                     origin_x, origin_y);
-  o_box_print_hatch(w_current, fp,
+  o_box_print_hatch(toplevel, fp,
                     x, y, width, height,
                     color,
                     fill_width,
@@ -1318,7 +1318,7 @@ void o_box_print_mesh(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Upper x coordinate of BOX.
  *  \param [in] y           Upper y coordinate of BOX.
@@ -1333,7 +1333,7 @@ void o_box_print_mesh(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place BOX OBJECT.
  *  \param [in] origin_y    Page y coordinate to place BOX OBJECT.
  */
-void o_box_print_hatch(TOPLEVEL *w_current, FILE *fp,
+void o_box_print_hatch(TOPLEVEL *toplevel, FILE *fp,
 		       int x, int y,
 		       int width, int height,
 		       int color,
@@ -1348,7 +1348,7 @@ void o_box_print_hatch(TOPLEVEL *w_current, FILE *fp,
   double x1, y1, x2, y2;
   double amin, amax, a[4], min1, min2, max1, max2;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
diff --git a/libgeda/src/o_bus_basic.c b/libgeda/src/o_bus_basic.c
index 83e97e4..752a03b 100644
--- a/libgeda/src/o_bus_basic.c
+++ b/libgeda/src/o_bus_basic.c
@@ -45,17 +45,17 @@
  * \par Function Description
  *
  */
-void world_get_bus_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top,
+void world_get_bus_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top,
 			  int *right, int *bottom)
 {
-  world_get_line_bounds( w_current, object, left, top, right, bottom );
+  world_get_line_bounds( toplevel, object, left, top, right, bottom );
 }
 
 /* \brief
  * \par Function Description
  *
  */
-OBJECT *o_bus_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_bus_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		  char type, int color,
 		  int x1, int y1, int x2, int y2,
 		  int bus_ripper_direction)
@@ -78,7 +78,7 @@ OBJECT *o_bus_add(TOPLEVEL *w_current, OBJECT *object_list,
 
   new_node->bus_ripper_direction = bus_ripper_direction;
 
-  world_get_bus_bounds(w_current, new_node, &left, &top, &right, &bottom);
+  world_get_bus_bounds(toplevel, new_node, &left, &top, &right, &bottom);
 	
   new_node->w_left = left;
   new_node->w_top = top;
@@ -90,12 +90,12 @@ OBJECT *o_bus_add(TOPLEVEL *w_current, OBJECT *object_list,
 
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
 
-  s_tile_add_object(w_current, object_list, 
+  s_tile_add_object(toplevel, object_list,
                     new_node->line->x[0], new_node->line->y[0], 
                     new_node->line->x[1], new_node->line->y[1]);
 
-  if (!w_current->ADDING_SEL) {
-    s_conn_update_object(w_current, object_list);
+  if (!toplevel->ADDING_SEL) {
+    s_conn_update_object(toplevel, object_list);
   }
 
   return(object_list);
@@ -105,7 +105,7 @@ OBJECT *o_bus_add(TOPLEVEL *w_current, OBJECT *object_list,
  * \par Function Description
  *
  */
-void o_bus_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_bus_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
@@ -117,7 +117,7 @@ void o_bus_recalc(TOPLEVEL *w_current, OBJECT *o_current)
     return;
   }
 
-  world_get_bus_bounds(w_current, o_current, &left, &top, &right, &bottom);
+  world_get_bus_bounds(toplevel, o_current, &left, &top, &right, &bottom);
 
   o_current->w_left = left;
   o_current->w_top = top;
@@ -131,7 +131,7 @@ void o_bus_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  * \par Function Description
  *
  */
-OBJECT *o_bus_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_bus_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		   unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -160,8 +160,8 @@ OBJECT *o_bus_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
     s_log_message("Found a zero length bus [ %c %d %d %d %d %d ]\n", type, x1, y1, x2, y2, color);
   }
 
-  if (w_current->override_bus_color != -1) {
-    color = w_current->override_bus_color;
+  if (toplevel->override_bus_color != -1) {
+    color = toplevel->override_bus_color;
   }
 
   if (color < 0 || color > MAX_COLORS) {
@@ -178,7 +178,7 @@ OBJECT *o_bus_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
     ripper_dir = 0;
   }
 
-  object_list = o_bus_add(w_current, object_list, type, color,
+  object_list = o_bus_add(toplevel, object_list, type, color,
                           d_x1, d_y1, d_x2, d_y2, ripper_dir);
   return(object_list);
 }
@@ -214,7 +214,7 @@ char *o_bus_save(OBJECT *object)
  * \par Function Description
  *
  */
-void o_bus_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
+void o_bus_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object)
 {
   int left, right, top, bottom;
 
@@ -228,21 +228,21 @@ void o_bus_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
   object->line->y[1] = object->line->y[1] + y1;
 
   /* Update bounding box */
-  world_get_bus_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_bus_bounds(toplevel, object, &left, &top, &right, &bottom);
 
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
 
 /* \brief
  * \par Function Description
  *
  */
-OBJECT *o_bus_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
+OBJECT *o_bus_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current)
 {
   OBJECT *new_obj;
   ATTRIB *a_current;
@@ -258,7 +258,7 @@ OBJECT *o_bus_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
   /* still doesn't work... you need to pass in the new values */
   /* or don't update and update later */
   /* I think for now I'll disable the update and manually update */
-  new_obj = o_bus_add(w_current, list_tail, OBJ_BUS, color, 
+  new_obj = o_bus_add(toplevel, list_tail, OBJ_BUS, color,
                       o_current->line->x[0], o_current->line->y[0],
                       o_current->line->x[1], o_current->line->y[1],
                       o_current->bus_ripper_direction);
@@ -289,7 +289,7 @@ OBJECT *o_bus_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *
  */
 /* need to make this bus specific */
-void o_bus_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
+void o_bus_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		 int origin_x, int origin_y)
 {
   int offset, offset2;
@@ -307,12 +307,12 @@ void o_bus_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
 
   cross = offset;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, o_current->color);
   }
 
   bus_width = 2;
-  if (w_current->bus_style == THICK) {
+  if (toplevel->bus_style == THICK) {
     bus_width = BUS_WIDTH;	
   }
 
@@ -331,7 +331,7 @@ void o_bus_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  * \par Function Description
  *
  */
-void o_bus_rotate_world(TOPLEVEL *w_current, 
+void o_bus_rotate_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, int angle,
 			OBJECT *object)
 {
@@ -341,7 +341,7 @@ void o_bus_rotate_world(TOPLEVEL *w_current,
   return;
 
   /* translate object to origin */
-  o_bus_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_bus_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   rotate_point_90(object->line->x[0], object->line->y[0], angle,
                   &newx, &newy);
@@ -355,24 +355,24 @@ void o_bus_rotate_world(TOPLEVEL *w_current,
   object->line->x[1] = newx;
   object->line->y[1] = newy;
 
-  o_bus_translate_world(w_current, world_centerx, world_centery, object);
+  o_bus_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 /* \brief
  * \par Function Description
  *
  */
-void o_bus_mirror_world(TOPLEVEL *w_current,
+void o_bus_mirror_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, OBJECT *object)
 {
   /* translate object to origin */
-  o_bus_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_bus_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   object->line->x[0] = -object->line->x[0];
 
   object->line->x[1] = -object->line->x[1];
 
-  o_bus_translate_world(w_current, world_centerx, world_centery, object);
+  o_bus_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 /* \brief
@@ -530,7 +530,7 @@ void o_bus_consolidate_lowlevel(OBJECT *object, OBJECT *del_object,
  *
  */
 /* needs to be bus specific */
-int o_bus_consolidate_segments(TOPLEVEL *w_current, OBJECT *object)
+int o_bus_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object)
 {
 
   return(0);
@@ -540,7 +540,7 @@ int o_bus_consolidate_segments(TOPLEVEL *w_current, OBJECT *object)
  * \par Function Description
  *
  */
-void o_bus_consolidate(TOPLEVEL *w_current)
+void o_bus_consolidate(TOPLEVEL *toplevel)
 {
 
 }
@@ -549,7 +549,7 @@ void o_bus_consolidate(TOPLEVEL *w_current)
  * \par Function Description
  *
  */
-void o_bus_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_bus_modify(TOPLEVEL *toplevel, OBJECT *object,
 		  int x, int y, int whichone)
 {
   int left, right, top, bottom;
@@ -557,14 +557,14 @@ void o_bus_modify(TOPLEVEL *w_current, OBJECT *object,
   object->line->x[whichone] = x;
   object->line->y[whichone] = y;
 
-  world_get_bus_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_bus_bounds(toplevel, object, &left, &top, &right, &bottom);
 	
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;	
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
 
 
diff --git a/libgeda/src/o_circle_basic.c b/libgeda/src/o_circle_basic.c
index a2c0891..e2fe1d1 100644
--- a/libgeda/src/o_circle_basic.c
+++ b/libgeda/src/o_circle_basic.c
@@ -68,7 +68,7 @@ int dist(int x1, int y1, int x2, int y2)
  *  The object is added to the end of the list described by the
  *  <B>object_list</B> parameter with #s_basic_link_object().
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list  OBJECT list to add circle to.
  *  \param [in]     type         Must be OBJ_CIRCLE.
  *  \param [in]     color        Circle line color.
@@ -77,7 +77,7 @@ int dist(int x1, int y1, int x2, int y2)
  *  \param [in]     radius       Radius of new circle.
  *  \return A pointer to the new end of the object list.
  */
-OBJECT *o_circle_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_circle_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		     char type, int color,
 		     int x, int y, int radius)
 {
@@ -96,16 +96,16 @@ OBJECT *o_circle_add(TOPLEVEL *w_current, OBJECT *object_list,
   new_node->circle->radius   = radius;
   
   /* line type and filling initialized to default */
-  o_set_line_options(w_current, new_node,
+  o_set_line_options(toplevel, new_node,
 		     END_NONE, TYPE_SOLID, 0, -1, -1);
-  o_set_fill_options(w_current, new_node,
+  o_set_fill_options(toplevel, new_node,
 		     FILLING_HOLLOW, -1, -1, -1, -1, -1);
   
   new_node->draw_func = circle_draw_func;  
   new_node->sel_func = select_func;  
   
   /* compute the bounding box coords */
-  o_circle_recalc(w_current, new_node);
+  o_circle_recalc(toplevel, new_node);
   
   /* add the object to the list */
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
@@ -120,12 +120,12 @@ OBJECT *o_circle_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  the end of the list, following the <B>list_tail</B> pointed object.
  *
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [out] list_tail  OBJECT list to copy to.
  *  \param [in]  o_current  Circle OBJECT to copy.
  *  \return A new pointer to the end of the object list.
  */
-OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_circle_copy(TOPLEVEL *toplevel, OBJECT *list_tail,
 		      OBJECT *o_current)
 {
   OBJECT *new_obj;
@@ -144,7 +144,7 @@ OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail,
    * modified.
    */
   /* create and link a new circle object */
-  new_obj = o_circle_add(w_current, list_tail, OBJ_CIRCLE, 
+  new_obj = o_circle_add(toplevel, list_tail, OBJ_CIRCLE,
 			 color, 
 			 0, 0, 0);
   
@@ -161,15 +161,15 @@ OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail,
   new_obj->circle->center_y = o_current->circle->center_y;
   new_obj->circle->radius   = o_current->circle->radius;
   
-  o_set_line_options(w_current, new_obj, o_current->line_end,
+  o_set_line_options(toplevel, new_obj, o_current->line_end,
 		     o_current->line_type, o_current->line_width,
 		     o_current->line_length, o_current->line_space);
-  o_set_fill_options(w_current, new_obj,
+  o_set_fill_options(toplevel, new_obj,
 		     o_current->fill_type, o_current->fill_width,
 		     o_current->fill_pitch1, o_current->fill_angle1,
 		     o_current->fill_pitch2, o_current->fill_angle2);
   
-  o_circle_recalc(w_current, new_obj);
+  o_circle_recalc(toplevel, new_obj);
 
   /*	new_obj->attribute = 0;*/
   a_current = o_current->attribs;
@@ -202,7 +202,7 @@ OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail,
  *  The bounding box of the circle object is updated after the modification of its 
  *  parameters.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     Circle OBJECT to modify.
  *  \param [in]     x          New center x coordinate, or radius value.
  *  \param [in]     y          New center y coordinate.
@@ -215,7 +215,7 @@ OBJECT *o_circle_copy(TOPLEVEL *w_current, OBJECT *list_tail,
  *    <DT>*</DT><DD>CIRCLE_RADIUS
  *  </DL>
  */
-void o_circle_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_circle_modify(TOPLEVEL *toplevel, OBJECT *object,
 		     int x, int y, int whichone)
 {
   switch(whichone) {
@@ -237,7 +237,7 @@ void o_circle_modify(TOPLEVEL *w_current, OBJECT *object,
   }
 
   /* recalculate the boundings */
-  o_circle_recalc(w_current, object);
+  o_circle_recalc(toplevel, object);
   
 }
 
@@ -254,14 +254,14 @@ void o_circle_modify(TOPLEVEL *w_current, OBJECT *object,
  *    <DT>*</DT><DD>the file format used for the releases after 20000704.
  *  </DL>
  *
- *  \param [in]  w_current       The TOPLEVEL object.
+ *  \param [in]  toplevel       The TOPLEVEL object.
  *  \param [out] object_list     OBJECT list to create circle in.
  *  \param [in]  buf             Character string with circle description.
  *  \param [in]  release_ver     libgeda release version number.
  *  \param [in]  fileformat_ver  libgeda file format version number.
  *  \return A pointer to the new circle object.
  */
-OBJECT *o_circle_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_circle_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		      unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -332,12 +332,12 @@ OBJECT *o_circle_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
    * Its filling and line type are set according to the values of the field
    * on the line.
    */
-  object_list = (OBJECT *) o_circle_add(w_current, object_list,
+  object_list = (OBJECT *) o_circle_add(toplevel, object_list,
 					type, color, x1, y1, radius);
-  o_set_line_options(w_current, object_list,
+  o_set_line_options(toplevel, object_list,
 		     circle_end, circle_type, circle_width, 
 		     circle_length, circle_space);
-  o_set_fill_options(w_current, object_list,
+  o_set_fill_options(toplevel, object_list,
 		     circle_fill, fill_width, pitch1, angle1, pitch2, angle2);
   
   return(object_list);
@@ -419,12 +419,12 @@ char *o_circle_save(OBJECT *object)
  *  This function applies a translation of (<B>x1</B>,<B>y1</B>) to the circle
  *  described by <B>*object</B>. <B>x1</B> and <B>y1</B> are in world unit. 
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in]     x1         x distance to move.
  *  \param [in]     y1         y distance to move.
  *  \param [in,out] object     Circle OBJECT to translate.
  */
-void o_circle_translate_world(TOPLEVEL *w_current,
+void o_circle_translate_world(TOPLEVEL *toplevel,
 			      int x1, int y1, OBJECT *object)
 {
   if (object == NULL) printf("ctw NO!\n");
@@ -434,7 +434,7 @@ void o_circle_translate_world(TOPLEVEL *w_current,
   object->circle->center_y = object->circle->center_y + y1;
   
   /* recalc the screen coords and the bounding box */
-  o_circle_recalc(w_current, object);
+  o_circle_recalc(toplevel, object);
   
 }
 
@@ -445,13 +445,13 @@ void o_circle_translate_world(TOPLEVEL *w_current,
  *  angle <B>angle</B> degrees.
  *  The center of rotation is in world unit.
  *
- *  \param [in]      w_current      The TOPLEVEL object.
+ *  \param [in]      toplevel      The TOPLEVEL object.
  *  \param [in]      world_centerx  Rotation center x coordinate in WORLD units.
  *  \param [in]      world_centery  Rotation center y coordinate in WORLD units.
  *  \param [in]      angle          Rotation angle in degrees (See note below).
  *  \param [in,out]  object         Circle OBJECT to rotate.
  */
-void o_circle_rotate_world(TOPLEVEL *w_current, 
+void o_circle_rotate_world(TOPLEVEL *toplevel,
 			   int world_centerx, int world_centery, int angle,
 			   OBJECT *object)
 {
@@ -486,7 +486,7 @@ void o_circle_rotate_world(TOPLEVEL *w_current,
   object->circle->center_x += world_centerx;
   object->circle->center_y += world_centery;
 
-  o_circle_recalc(w_current, object);
+  o_circle_recalc(toplevel, object);
   
 }
 
@@ -498,12 +498,12 @@ void o_circle_rotate_world(TOPLEVEL *w_current,
  *  The circle coordinates and its bounding are recalculated as well as the
  *  OBJECT specific (line width, filling ...).
  *
- *  \param [in]     w_current      The TOPLEVEL object.
+ *  \param [in]     toplevel      The TOPLEVEL object.
  *  \param [in]     world_centerx  Origin x coordinate in WORLD units.
  *  \param [in]     world_centery  Origin y coordinate in WORLD units.
  *  \param [in,out] object         Circle OBJECT to mirror.
  */
-void o_circle_mirror_world(TOPLEVEL *w_current,
+void o_circle_mirror_world(TOPLEVEL *toplevel,
 			   int world_centerx, int world_centery,
 			   OBJECT *object)
 {
@@ -520,7 +520,7 @@ void o_circle_mirror_world(TOPLEVEL *w_current,
   object->circle->center_y += world_centery;
 
   /* recalc boundings and screen coords */
-  o_circle_recalc(w_current, object);
+  o_circle_recalc(toplevel, object);
   
 }
 
@@ -532,10 +532,10 @@ void o_circle_mirror_world(TOPLEVEL *w_current,
  *  The circle coordinates and its bounding are recalculated as well as the
  *  OBJECT specific (line width, filling ...).
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in,out] o_current  Circle OBJECT to be recalculated.
  */
-void o_circle_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_circle_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
@@ -544,7 +544,7 @@ void o_circle_recalc(TOPLEVEL *w_current, OBJECT *o_current)
   }
   
   /* update the bounding box - world unit */
-  world_get_circle_bounds(w_current, o_current,
+  world_get_circle_bounds(toplevel, o_current,
 		    &left, &top, &right, &bottom);
   o_current->w_left   = left;
   o_current->w_top    = top;
@@ -559,14 +559,14 @@ void o_circle_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  parameters to the boundings of the circle object described in <B>*circle</B>
  *  in world units.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  object     Circle OBJECT to read coordinates from.
  *  \param [out] left       Left circle coordinate in WORLD units.
  *  \param [out] top        Top circle coordinate in WORLD units.
  *  \param [out] right      Right circle coordinate in WORLD units.
  *  \param [out] bottom     Bottom circle coordinate in WORLD units.
  */
-void world_get_circle_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
+void world_get_circle_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left,
                              int *top, int *right, int *bottom)
 {
   int halfwidth;
@@ -603,13 +603,13 @@ void world_get_circle_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
  *  The outline and the inside of the circle are successively handled by
  *  two differend sets of functions.
  *  
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to Postscript document.
  *  \param [in] o_current  Circle OBJECT to write to document.
  *  \param [in] origin_x   Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y   Page y coordinate to place circle OBJECT.
  */
-void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_circle_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		    int origin_x, int origin_y)
 {
   int x, y, radius;
@@ -646,7 +646,7 @@ void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
    */
   circle_width = o_current->line_width;
   if(circle_width <=2) {
-    if(w_current->line_style == THICK) {
+    if(toplevel->line_style == THICK) {
       circle_width=LINE_WIDTH;
     } else {
       circle_width=2;
@@ -690,7 +690,7 @@ void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     outl_func = o_circle_print_solid;
   }
 
-  (*outl_func)(w_current, fp,
+  (*outl_func)(toplevel, fp,
                x - origin_x, y - origin_y,
                radius,
                color,
@@ -751,7 +751,7 @@ void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
       fill_func = o_circle_print_filled;
     }
 		
-    (*fill_func)(w_current, fp,
+    (*fill_func)(toplevel, fp,
                  x, y, radius,
                  color,
                  fill_width,
@@ -774,7 +774,7 @@ void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x             Center x coordinate of circle.
  *  \param [in] y             Center y coordinate of circle.
@@ -786,14 +786,14 @@ void o_circle_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *  \param [in] origin_x      Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y      Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_solid(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_solid(TOPLEVEL *toplevel, FILE *fp,
 			  int x, int y, int radius,
 			  int color,
 			  int circle_width, int length, int space,
 			  int origin_x, int origin_y)
 {
 
-  o_arc_print_solid(w_current, fp,
+  o_arc_print_solid(toplevel, fp,
                     x, y, radius,
                     0, FULL_CIRCLE / 64,
                     color,
@@ -817,7 +817,7 @@ void o_circle_print_solid(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x             Center x coordinate of circle.
  *  \param [in] y             Center y coordinate of circle.
@@ -829,14 +829,14 @@ void o_circle_print_solid(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y      Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_dotted(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_dotted(TOPLEVEL *toplevel, FILE *fp,
 			   int x, int y, int radius,
 			   int color,
 			   int circle_width, int length, int space,
 			   int origin_x, int origin_y)
 {
 
-  o_arc_print_dotted(w_current, fp,
+  o_arc_print_dotted(toplevel, fp,
                      x, y, radius,
                      0, FULL_CIRCLE / 64,
                      color,
@@ -858,7 +858,7 @@ void o_circle_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x             Center x coordinate of circle.
  *  \param [in] y             Center y coordinate of circle.
@@ -870,7 +870,7 @@ void o_circle_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y      Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_dashed(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_dashed(TOPLEVEL *toplevel, FILE *fp,
 			   int x, int y,
 			   int radius,
 			   int color,
@@ -878,7 +878,7 @@ void o_circle_print_dashed(TOPLEVEL *w_current, FILE *fp,
 			   int origin_x, int origin_y)
 {
 
-  o_arc_print_dashed(w_current, fp,
+  o_arc_print_dashed(toplevel, fp,
                      x, y, radius,
                      0, FULL_CIRCLE / 64,
                      color,
@@ -900,7 +900,7 @@ void o_circle_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x             Center x coordinate of circle.
  *  \param [in] y             Center y coordinate of circle.
@@ -912,7 +912,7 @@ void o_circle_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y      Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_center(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_center(TOPLEVEL *toplevel, FILE *fp,
 			   int x, int y,
 			   int radius,
 			   int color,
@@ -920,7 +920,7 @@ void o_circle_print_center(TOPLEVEL *w_current, FILE *fp,
 			   int origin_x, int origin_y)
 {
 	
-  o_arc_print_center(w_current, fp,
+  o_arc_print_center(toplevel, fp,
                      x, y, radius,
                      0, FULL_CIRCLE / 64,
                      color,
@@ -942,7 +942,7 @@ void o_circle_print_center(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x             Center x coordinate of circle.
  *  \param [in] y             Center y coordinate of circle.
@@ -954,7 +954,7 @@ void o_circle_print_center(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y      Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_phantom(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_phantom(TOPLEVEL *toplevel, FILE *fp,
 			    int x, int y,
 			    int radius,
 			    int color,
@@ -962,7 +962,7 @@ void o_circle_print_phantom(TOPLEVEL *w_current, FILE *fp,
 			    int origin_x, int origin_y)
 {
 
-  o_arc_print_phantom(w_current, fp,
+  o_arc_print_phantom(toplevel, fp,
                       x, y, radius,
                       0, FULL_CIRCLE / 64,
                       color,
@@ -984,7 +984,7 @@ void o_circle_print_phantom(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils (except <B>angle1</B> and <B>angle2</B> in degree). 
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Center x coordinate of circle.
  *  \param [in] y           Center y coordinate of circle.
@@ -998,7 +998,7 @@ void o_circle_print_phantom(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y    Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_filled(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_filled(TOPLEVEL *toplevel, FILE *fp,
 			   int x, int y, int radius,
 			   int color,
 			   int fill_width,
@@ -1006,7 +1006,7 @@ void o_circle_print_filled(TOPLEVEL *w_current, FILE *fp,
 			   int angle2, int pitch2,
 			   int origin_x, int origin_y)
 {
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
@@ -1032,7 +1032,7 @@ void o_circle_print_filled(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils (except <B>angle1</B> and <B>angle2</B> in degree).
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Center x coordinate of circle.
  *  \param [in] y           Center y coordinate of circle.
@@ -1046,7 +1046,7 @@ void o_circle_print_filled(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y    Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_mesh(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_mesh(TOPLEVEL *toplevel, FILE *fp,
 			 int x, int y, int radius,
 			 int color,
 			 int fill_width,
@@ -1054,14 +1054,14 @@ void o_circle_print_mesh(TOPLEVEL *w_current, FILE *fp,
 			 int angle2, int pitch2,
 			 int origin_x, int origin_y)
 {
-  o_circle_print_hatch(w_current, fp,
+  o_circle_print_hatch(toplevel, fp,
                        x, y, radius,
                        color,
                        fill_width,
                        angle1, pitch1,
                        -1, -1,
                        origin_x, origin_y);
-  o_circle_print_hatch(w_current, fp,
+  o_circle_print_hatch(toplevel, fp,
                        x, y, radius,
                        color,
                        fill_width,
@@ -1087,7 +1087,7 @@ void o_circle_print_mesh(TOPLEVEL *w_current, FILE *fp,
  *
  *  All dimensions are in mils (except <B>angle1</B> is in degrees).
  *
- *  \param [in] w_current   The TOPLEVEL object.
+ *  \param [in] toplevel   The TOPLEVEL object.
  *  \param [in] fp          FILE pointer to Postscript document.
  *  \param [in] x           Center x coordinate of circle.
  *  \param [in] y           Center y coordinate of circle.
@@ -1101,7 +1101,7 @@ void o_circle_print_mesh(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x    Page x coordinate to place circle OBJECT.
  *  \param [in] origin_y    Page y coordinate to place circle OBJECT.
  */
-void o_circle_print_hatch(TOPLEVEL *w_current, FILE *fp,
+void o_circle_print_hatch(TOPLEVEL *toplevel, FILE *fp,
 			  int x, int y, int radius,
 			  int color,
 			  int fill_width,
@@ -1112,7 +1112,7 @@ void o_circle_print_hatch(TOPLEVEL *w_current, FILE *fp,
   double x0, y0, x1, y1, x2, y2;
   double cos_a_, sin_a_;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
 
diff --git a/libgeda/src/o_complex_basic.c b/libgeda/src/o_complex_basic.c
index 03fa010..ef34ace 100644
--- a/libgeda/src/o_complex_basic.c
+++ b/libgeda/src/o_complex_basic.c
@@ -46,7 +46,7 @@
 
 /*! \brief Return the bounds of the given object.
  *  \par Given an object, calculate the bounds coordinates.
- *  \param [in] w_current The toplevel structure.
+ *  \param [in] toplevel The toplevel structure.
  *  \param [in] o_current The object to look the bounds for.
  *  \param [out] rleft   pointer to the left coordinate of the object.
  *  \param [out] rtop    pointer to the top coordinate of the object.
@@ -56,7 +56,7 @@
  *  \retval 0 No bound was found
  *  \retval 1 Bound was found
  */
-int world_get_single_object_bounds(TOPLEVEL *w_current, OBJECT *o_current,
+int world_get_single_object_bounds(TOPLEVEL *toplevel, OBJECT *o_current,
                                    int *rleft, int *rtop, int *rright, int *rbottom)
 {
   if (o_current != NULL) {
@@ -81,7 +81,7 @@ int world_get_single_object_bounds(TOPLEVEL *w_current, OBJECT *o_current,
         /* only do bounding boxes for visible or doing show_hidden_text*/
         /* you might lose some attrs though */
         if ( o_current->visibility == VISIBLE ||
-             w_current->show_hidden_text ) {
+             toplevel->show_hidden_text ) {
           *rleft = o_current->w_left;
           *rtop = o_current->w_top;
           *rright = o_current->w_right;
@@ -99,7 +99,7 @@ int world_get_single_object_bounds(TOPLEVEL *w_current, OBJECT *o_current,
 
 /*! \brief Return the bounds of the given list of objects.
  *  \par Given a list of objects, calcule the bounds coordinates.
- *  \param [in] w_current The toplevel structure.
+ *  \param [in] toplevel The toplevel structure.
  *  \param [in] complex   The list of objects to look the bounds for.
  *  \param [out] left   pointer to the left coordinate of the object.
  *  \param [out] top    pointer to the top coordinate of the object.
@@ -110,7 +110,7 @@ int world_get_single_object_bounds(TOPLEVEL *w_current, OBJECT *o_current,
  *  \retval 1 Bound was found
  */
 int
-world_get_object_list_bounds(TOPLEVEL *w_current, OBJECT *complex, 
+world_get_object_list_bounds(TOPLEVEL *toplevel, OBJECT *complex,
 		       int *left, int *top, int *right, int *bottom)
 {
   OBJECT *o_current=NULL;
@@ -121,7 +121,7 @@ world_get_object_list_bounds(TOPLEVEL *w_current, OBJECT *complex,
 
   // Find the first object with bounds, and set the bounds variables, then expand as necessary
   while ( o_current != NULL ) {
-    if ( world_get_single_object_bounds( w_current, o_current, &rleft, &rtop, &rright, &rbottom) ) {
+    if ( world_get_single_object_bounds( toplevel, o_current, &rleft, &rtop, &rright, &rbottom) ) {
       if ( found ) {
         *left = min( *left, rleft );
         *top = min( *top, rtop );
@@ -142,7 +142,7 @@ world_get_object_list_bounds(TOPLEVEL *w_current, OBJECT *complex,
 
 /*! \brief Return the bounds of the given GList of objects.
  *  \par Given a list of objects, calcule the bounds coordinates.
- *  \param [in] w_current The toplevel structure.
+ *  \param [in] toplevel The toplevel structure.
  *  \param [in] complex   The list of objects to look the bounds for.
  *  \param [out] left   pointer to the left coordinate of the object.
  *  \param [out] top    pointer to the top coordinate of the object.
@@ -152,7 +152,7 @@ world_get_object_list_bounds(TOPLEVEL *w_current, OBJECT *complex,
  *  \retval 0 No bounds were found
  *  \retval 1 Bound was found
  */
-int world_get_object_glist_bounds(TOPLEVEL *w_current, GList *head, 
+int world_get_object_glist_bounds(TOPLEVEL *toplevel, GList *head,
                                   int *left, int *top, int *right, int *bottom)
 {
   GList *s_current=NULL;
@@ -166,7 +166,7 @@ int world_get_object_glist_bounds(TOPLEVEL *w_current, GList *head,
   while ( s_current != NULL ) {
     o_current = (OBJECT *) s_current->data;
     g_assert (o_current != NULL);
-    if ( world_get_single_object_bounds( w_current, o_current, &rleft, &rtop, &rright, &rbottom) ) {
+    if ( world_get_single_object_bounds( toplevel, o_current, &rleft, &rtop, &rright, &rbottom) ) {
       if ( found ) {
         *left = min( *left, rleft );
         *top = min( *top, rtop );
@@ -190,7 +190,7 @@ int world_get_object_glist_bounds(TOPLEVEL *w_current, GList *head,
  *  This function returns the bounding box of the complex object
  *  <B>object</B>.
  *
- *  \param [in]  w_current The toplevel environment.
+ *  \param [in]  toplevel The toplevel environment.
  *  \param [in]  complex   The complex object.
  *  \param [out] left      The leftmost edge of the bounding box (in
  *                         world units).
@@ -201,7 +201,7 @@ int world_get_object_glist_bounds(TOPLEVEL *w_current, GList *head,
  *  \param [out] bottom    The bottom edge of the bounding box (in
  *                         screen units).
  */
-void world_get_complex_bounds(TOPLEVEL *w_current, OBJECT *complex, 
+void world_get_complex_bounds(TOPLEVEL *toplevel, OBJECT *complex,
 			      int *left, int *top, int *right, int *bottom)
 {
   g_return_if_fail (complex != NULL &&
@@ -209,7 +209,7 @@ void world_get_complex_bounds(TOPLEVEL *w_current, OBJECT *complex,
                      complex->type == OBJ_PLACEHOLDER) &&
                     complex->complex != NULL);
 
-  world_get_object_list_bounds (w_current, complex->complex->prim_objs->next,
+  world_get_object_list_bounds (toplevel, complex->complex->prim_objs->next,
                                 left, top, right, bottom);
 
 }
@@ -237,7 +237,7 @@ OBJECT *add_head(void)
  */
 /* The promote_invisible flag is either TRUE or FALSE */
 /* It controls if invisible text is promoted (TRUE) or not (FALSE) */
-int o_complex_is_eligible_attribute (TOPLEVEL *w_current, OBJECT *object,
+int o_complex_is_eligible_attribute (TOPLEVEL *toplevel, OBJECT *object,
 				     int promote_invisible) 
 {
   char *name = NULL;
@@ -267,13 +267,13 @@ int o_complex_is_eligible_attribute (TOPLEVEL *w_current, OBJECT *object,
   }
 
   /* check list against attributes which can be promoted */
-  if (w_current->always_promote_attributes &&
-      (strlen(w_current->always_promote_attributes) != 0))
+  if (toplevel->always_promote_attributes &&
+      (strlen(toplevel->always_promote_attributes) != 0))
   {
     if (o_attrib_get_name_value(object->text->string, &name, &value))
     {
       padded_name = g_strdup_printf(" %s ", name);
-      if (strstr(w_current->always_promote_attributes, padded_name))
+      if (strstr(toplevel->always_promote_attributes, padded_name))
       {
 	/* Yes the name of the attribute was in the always promote */
         /* attributes list */
@@ -322,7 +322,7 @@ int o_complex_is_embedded(OBJECT *o_current)
  *  \par Function Description
  *
  */
-OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list, 
+OBJECT *o_complex_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		      GList **object_glist, char type,
 		      int color, int x, int y, int angle,
 		      int mirror, const CLibSymbol *clib,
@@ -389,9 +389,9 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
   /* for the objects, UGG! there foreattribs are being copied */
   /* you need to override them if there are attached ones */
   /* on the main list */
-  temp_tail = w_current->page_current->object_tail;
-  temp_parent = w_current->page_current->object_parent;	
-  w_current->page_current->object_parent = prim_objs;
+  temp_tail = toplevel->page_current->object_tail;
+  temp_parent = toplevel->page_current->object_parent;
+  toplevel->page_current->object_parent = prim_objs;
   /* reason this works is because it has a head, see add_head above */
 
   /* get the symbol data */
@@ -399,8 +399,8 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     buffer = s_clib_symbol_get_data (clib);
   }
 
-  save_adding_sel = w_current->ADDING_SEL;
-  w_current->ADDING_SEL = 1;	/* name is hack, don't want to */
+  save_adding_sel = toplevel->ADDING_SEL;
+  toplevel->ADDING_SEL = 1;	/* name is hack, don't want to */
 
   if (clib == NULL || buffer == NULL) {
 
@@ -421,10 +421,10 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     new_node->type = OBJ_PLACEHOLDER;
 
     /* Mark the origin of the missing component */
-    prim_objs = o_line_add(w_current, prim_objs, OBJ_LINE, 
+    prim_objs = o_line_add(toplevel, prim_objs, OBJ_LINE,
                            DETACHED_ATTRIBUTE_COLOR,
                            x - 50, y, x + 50, y);
-    prim_objs = o_line_add(w_current, prim_objs, OBJ_LINE, 
+    prim_objs = o_line_add(toplevel, prim_objs, OBJ_LINE,
                            DETACHED_ATTRIBUTE_COLOR,
                            x, y + 50, x, y - 50); 
 
@@ -432,7 +432,7 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     not_found_text = 
       g_strdup_printf ("Component not found:\n %s", 
 		       new_node->complex_basename);
-    prim_objs = o_text_add(w_current, prim_objs,
+    prim_objs = o_text_add(toplevel, prim_objs,
                            OBJ_TEXT, DETACHED_ATTRIBUTE_COLOR, 
                            x + NOT_FOUND_TEXT_X, 
                            y + NOT_FOUND_TEXT_Y, LOWER_LEFT, 0, 
@@ -441,37 +441,37 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     g_free(not_found_text);
 
     /* figure out where to put the hazard triangle */
-    world_get_text_bounds(w_current, prim_objs,
+    world_get_text_bounds(toplevel, prim_objs,
                           &left, &top, &right, &bottom);
     x_offset = (right - left) / 4;  
     y_offset = bottom - top + 100;  /* 100 is just an additional offset */
 
     /* add hazard triangle */
-    prim_objs = o_line_add(w_current, prim_objs, OBJ_LINE, 
+    prim_objs = o_line_add(toplevel, prim_objs, OBJ_LINE,
                            DETACHED_ATTRIBUTE_COLOR,
                            x + NOT_FOUND_TEXT_X + x_offset, 
                            y + NOT_FOUND_TEXT_Y + y_offset, 
                            x + NOT_FOUND_TEXT_X + x_offset + 600, 
                            y + NOT_FOUND_TEXT_Y + y_offset); 
-    o_set_line_options(w_current, prim_objs, END_ROUND, TYPE_SOLID, 
+    o_set_line_options(toplevel, prim_objs, END_ROUND, TYPE_SOLID,
                        50, -1, -1);
-    prim_objs = o_line_add(w_current, prim_objs, OBJ_LINE, 
+    prim_objs = o_line_add(toplevel, prim_objs, OBJ_LINE,
                            DETACHED_ATTRIBUTE_COLOR,
                            x + NOT_FOUND_TEXT_X + x_offset, 
                            y + NOT_FOUND_TEXT_Y + y_offset, 
                            x + NOT_FOUND_TEXT_X + x_offset + 300, 
                            y + NOT_FOUND_TEXT_Y + y_offset + 500); 
-    o_set_line_options(w_current, prim_objs, END_ROUND, TYPE_SOLID, 
+    o_set_line_options(toplevel, prim_objs, END_ROUND, TYPE_SOLID,
                        50, -1, -1);
-    prim_objs = o_line_add(w_current, prim_objs, OBJ_LINE, 
+    prim_objs = o_line_add(toplevel, prim_objs, OBJ_LINE,
                            DETACHED_ATTRIBUTE_COLOR,
                            x + NOT_FOUND_TEXT_X + x_offset + 300, 
                            y + NOT_FOUND_TEXT_Y + y_offset + 500, 
                            x + NOT_FOUND_TEXT_X + x_offset + 600, 
                            y + NOT_FOUND_TEXT_Y + y_offset); 
-    o_set_line_options(w_current, prim_objs, END_ROUND, TYPE_SOLID, 
+    o_set_line_options(toplevel, prim_objs, END_ROUND, TYPE_SOLID,
                        50, -1, -1);
-    prim_objs = o_text_add(w_current, prim_objs,
+    prim_objs = o_text_add(toplevel, prim_objs,
                            OBJ_TEXT, DETACHED_ATTRIBUTE_COLOR, 
                            x + NOT_FOUND_TEXT_X + x_offset + 270, 
                            y + NOT_FOUND_TEXT_Y + y_offset + 90, 
@@ -485,14 +485,14 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     loaded_normally = TRUE;
     
     /* add connections till translated */
-    o_read_buffer(w_current, prim_objs, buffer, -1, new_node->complex_basename);
+    o_read_buffer(toplevel, prim_objs, buffer, -1, new_node->complex_basename);
 
     g_free (buffer);
     
   }
-  w_current->ADDING_SEL = save_adding_sel;
+  toplevel->ADDING_SEL = save_adding_sel;
 
-  if (w_current->attribute_promotion) { /* controlled through rc file */
+  if (toplevel->attribute_promotion) { /* controlled through rc file */
 
     OBJECT *tmp,*next;
 
@@ -501,8 +501,8 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
       next=tmp->next;
 
       /* valid floating attrib? */
-      if (o_complex_is_eligible_attribute(w_current, tmp,
-                                          w_current->promote_invisible))
+      if (o_complex_is_eligible_attribute(toplevel, tmp,
+                                          toplevel->promote_invisible))
       {
         /* Is attribute promotion called for? (passed in parameter) */
         if (attribute_promotion)
@@ -517,7 +517,7 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
           tmp->next=tmp->prev=NULL;
 	  if (use_object_list) {
 	    object_list = (OBJECT *) s_basic_link_object(tmp, object_list);
-	    o_attrib_attach (w_current, object_list, tmp, new_node);
+	    o_attrib_attach (toplevel, object_list, tmp, new_node);
 	  }
 	  else {
 	    if (object_glist) {
@@ -538,24 +538,24 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
 		glist_ptr = glist_ptr->next;
 	      }
 	      
-	      o_attrib_attach (w_current, ((OBJECT *) g_list_last(*object_glist)->data), 
+	      o_attrib_attach (toplevel, ((OBJECT *) g_list_last(*object_glist)->data),
 			       tmp, new_node);
 	    } else {
-	      o_attrib_attach (w_current, NULL, tmp, new_node);
+	      o_attrib_attach (toplevel, NULL, tmp, new_node);
 	    }
 	  }
-          o_text_translate_world(w_current, x, y, tmp);
+          o_text_translate_world(toplevel, x, y, tmp);
 
         } else { /* not promoting now, but deal with floating attribs */
 
-          if (w_current->keep_invisible == TRUE) {  
+          if (toplevel->keep_invisible == TRUE) {
             /* if we are not promoting invisible attribs, keep them */
             /* around */
             tmp->visibility = INVISIBLE;
           } else {
             /* else do the default behavior of deleting the original */
             /* object */
-            s_delete(w_current, tmp);
+            s_delete(toplevel, tmp);
           }
 
         }
@@ -563,8 +563,8 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
     }
   }
 
-  w_current->page_current->object_tail = temp_tail;
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->page_current->object_tail = temp_tail;
+  toplevel->page_current->object_parent = temp_parent;
 
   if (use_object_list) {
     object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
@@ -601,21 +601,21 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
    */
   if (loaded_normally == TRUE) {
     if (mirror) {
-      o_complex_mirror_lowlevel(w_current, x, y, new_node);
+      o_complex_mirror_lowlevel(toplevel, x, y, new_node);
     } 
     
-    o_complex_rotate_lowlevel(w_current, x, y, angle, angle, new_node); 
-    o_complex_world_translate(w_current, x, y, prim_objs);
+    o_complex_rotate_lowlevel(toplevel, x, y, angle, angle, new_node);
+    o_complex_world_translate(toplevel, x, y, prim_objs);
 
-    if (!w_current->ADDING_SEL) {
-     s_conn_update_complex(w_current, prim_objs);
+    if (!toplevel->ADDING_SEL) {
+     s_conn_update_complex(toplevel, prim_objs);
     }
   }
 
   if (use_object_list)
-    o_complex_recalc(w_current, object_list);
+    o_complex_recalc(toplevel, object_list);
   else
-    o_complex_recalc(w_current, new_node);
+    o_complex_recalc(toplevel, new_node);
 
   return(object_list);
 }
@@ -624,7 +624,7 @@ OBJECT *o_complex_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  \par Function Description
  *
  */
-OBJECT *o_complex_add_embedded(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_complex_add_embedded(TOPLEVEL *toplevel, OBJECT *object_list,
 			       char type, int color, int x, int y, int angle,
 			       const gchar *basename, int selectable)
 {
@@ -674,18 +674,18 @@ OBJECT *o_complex_add_embedded(TOPLEVEL *w_current, OBJECT *object_list,
  *  \par Function Description
  *
  */
-void o_complex_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_complex_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
   /* realc routine Add this somewhere */
   /* libhack */
-  /* o_recalc(w_current, o_current->complex);*/
+  /* o_recalc(toplevel, o_current->complex);*/
 
   if ((!o_current) || (o_current->type != OBJ_COMPLEX && o_current->type != OBJ_PLACEHOLDER))
     return;
 
-  world_get_complex_bounds(w_current, o_current, &left, &top, &right, &bottom);
+  world_get_complex_bounds(toplevel, o_current, &left, &top, &right, &bottom);
   o_current->w_left = left;
   o_current->w_top = top;
   o_current->w_right = right;
@@ -698,7 +698,7 @@ void o_complex_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *
  *  \todo Don't use fixed-length string for symbol basename
  */
-OBJECT *o_complex_read(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_complex_read(TOPLEVEL *toplevel, OBJECT *object_list,
 		       char buf[], unsigned int release_ver,
 		       unsigned int fileformat_ver)
 {
@@ -742,7 +742,7 @@ OBJECT *o_complex_read(TOPLEVEL *w_current, OBJECT *object_list,
   }
   if (strncmp(basename, "EMBEDDED", 8) == 0) {
     
-  object_list = o_complex_add_embedded(w_current, 
+  object_list = o_complex_add_embedded(toplevel,
                                        object_list, type, 
                                        WHITE, x1, y1, angle,
                                        basename + 8, 
@@ -751,7 +751,7 @@ OBJECT *o_complex_read(TOPLEVEL *w_current, OBJECT *object_list,
     
     const CLibSymbol *clib = s_clib_get_symbol_by_name (basename);
 
-    object_list = o_complex_add(w_current, object_list, NULL, type, 
+    object_list = o_complex_add(toplevel, object_list, NULL, type,
                                 WHITE, 
                                 x1, y1, 
                                 angle, mirror, clib,
@@ -809,22 +809,22 @@ char *o_complex_save(OBJECT *object)
  *  \par Function Description
  *
  */
-void o_complex_set_filename(TOPLEVEL *w_current, const char *basename) 
+void o_complex_set_filename(TOPLEVEL *toplevel, const char *basename)
 {
-  o_complex_free_filename (w_current);
+  o_complex_free_filename (toplevel);
 
-  w_current->internal_symbol_name = g_strdup (basename);
+  toplevel->internal_symbol_name = g_strdup (basename);
 } 
 
 /*! \brief
  *  \par Function Description
  *
  */
-void o_complex_free_filename(TOPLEVEL *w_current)
+void o_complex_free_filename(TOPLEVEL *toplevel)
 {
-  if (w_current->internal_symbol_name != NULL) {
-    g_free(w_current->internal_symbol_name);
-    w_current->internal_symbol_name = NULL;
+  if (toplevel->internal_symbol_name != NULL) {
+    g_free(toplevel->internal_symbol_name);
+    toplevel->internal_symbol_name = NULL;
   }
 }
 
@@ -836,7 +836,7 @@ void o_complex_free_filename(TOPLEVEL *w_current)
 /* libhack */
 /* and recalc stuff */
 /* this function takes in a complex list */
-void o_complex_world_translate(TOPLEVEL *w_current, int x1, int y1, 
+void o_complex_world_translate(TOPLEVEL *toplevel, int x1, int y1,
 			       OBJECT *prim_objs)
 {
   OBJECT *o_current=NULL;
@@ -849,57 +849,57 @@ void o_complex_world_translate(TOPLEVEL *w_current, int x1, int y1,
   while ( o_current != NULL ) {
     switch(o_current->type) {
       case(OBJ_LINE):
-        o_line_translate_world(w_current, x1, y1, o_current);
+        o_line_translate_world(toplevel, x1, y1, o_current);
         break;
 
       case(OBJ_NET):
 				/* same as a line, don't do this */
-        o_line_translate_world(w_current, x1, y1, o_current);
-        temp_color = w_current->override_color;
-        w_current->override_color = -1;
-        o_redraw_single(w_current, one); /* trying loop? hack*/
-        o_redraw_single(w_current, two);
-        w_current->override_color = temp_color;
+        o_line_translate_world(toplevel, x1, y1, o_current);
+        temp_color = toplevel->override_color;
+        toplevel->override_color = -1;
+        o_redraw_single(toplevel, one); /* trying loop? hack*/
+        o_redraw_single(toplevel, two);
+        toplevel->override_color = temp_color;
         break;
 
       case(OBJ_BUS):
 				/* same as a line, don't do this */
-        o_line_translate_world(w_current, x1, y1, o_current);
-        temp_color = w_current->override_color;
-        w_current->override_color = -1;
-        o_redraw_single(w_current, one); /* trying loop? hack*/
-        o_redraw_single(w_current, two);
-        w_current->override_color = temp_color;
+        o_line_translate_world(toplevel, x1, y1, o_current);
+        temp_color = toplevel->override_color;
+        toplevel->override_color = -1;
+        o_redraw_single(toplevel, one); /* trying loop? hack*/
+        o_redraw_single(toplevel, two);
+        toplevel->override_color = temp_color;
         break;
 	
       case(OBJ_BOX):
-        o_box_translate_world(w_current, x1, y1, o_current);
+        o_box_translate_world(toplevel, x1, y1, o_current);
         break;
 
       case(OBJ_PICTURE):
-        o_picture_translate_world(w_current, x1, y1, o_current);
+        o_picture_translate_world(toplevel, x1, y1, o_current);
         break;
 
       case(OBJ_CIRCLE):
-        o_circle_translate_world(w_current, x1, y1, o_current);
+        o_circle_translate_world(toplevel, x1, y1, o_current);
         break;
 	
       case(OBJ_COMPLEX):
       case(OBJ_PLACEHOLDER):
-        o_complex_world_translate_toplevel(w_current, x1, y1, o_current);
+        o_complex_world_translate_toplevel(toplevel, x1, y1, o_current);
         break;
 
       case(OBJ_TEXT):
-        o_text_translate_world(w_current, x1, y1, o_current);
+        o_text_translate_world(toplevel, x1, y1, o_current);
         break;
 
         /* same note as above */
       case(OBJ_PIN):
-        o_pin_translate_world(w_current, x1, y1, o_current);
+        o_pin_translate_world(toplevel, x1, y1, o_current);
         break;
 
       case(OBJ_ARC):
-        o_arc_translate_world(w_current, x1, y1, o_current);
+        o_arc_translate_world(toplevel, x1, y1, o_current);
         break;
     }
     o_current=o_current->next;
@@ -912,7 +912,7 @@ void o_complex_world_translate(TOPLEVEL *w_current, int x1, int y1,
  */
 /* this function takes the toplevel object and then also translates the
  * complex */
-void o_complex_world_translate_toplevel(TOPLEVEL *w_current,
+void o_complex_world_translate_toplevel(TOPLEVEL *toplevel,
 					int x1, int y1, OBJECT *object)
 {
   int left, right, top, bottom;
@@ -924,10 +924,10 @@ void o_complex_world_translate_toplevel(TOPLEVEL *w_current,
   object->complex->x = object->complex->x + x1;
   object->complex->y = object->complex->y + y1;
 
-  o_complex_world_translate(w_current, x1, y1, 
+  o_complex_world_translate(toplevel, x1, y1,
                             object->complex->prim_objs);
 
-  world_get_object_list_bounds(w_current, object->complex->prim_objs, 
+  world_get_object_list_bounds(toplevel, object->complex->prim_objs,
 			 &left, &top, &right, &bottom);
 	
   object->w_left = left;
@@ -940,7 +940,7 @@ void o_complex_world_translate_toplevel(TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-OBJECT *o_complex_copy(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_complex_copy(TOPLEVEL *toplevel, OBJECT *list_tail,
 		       OBJECT *o_current)
 {
   OBJECT *new_obj=NULL;
@@ -965,14 +965,14 @@ OBJECT *o_complex_copy(TOPLEVEL *w_current, OBJECT *list_tail,
 
   clib = s_clib_get_symbol_by_name (o_current->complex_basename);
 
-  new_obj = o_complex_add(w_current, list_tail, NULL, o_current->type, color,
+  new_obj = o_complex_add(toplevel, list_tail, NULL, o_current->type, color,
                           o_current->complex->x, o_current->complex->y, 
                           o_current->complex->angle, 
 			  o_current->complex->mirror,
                           clib, o_current->complex_basename, 
                           selectable, FALSE); 
 
-  o_attrib_slot_copy(w_current, o_current, new_obj);
+  o_attrib_slot_copy(toplevel, o_current, new_obj);
 
   /* deal with stuff that has changed */
 
@@ -999,7 +999,7 @@ OBJECT *o_complex_copy(TOPLEVEL *w_current, OBJECT *list_tail,
  *  \par Function Description
  *
  */
-OBJECT *o_complex_copy_embedded(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_complex_copy_embedded(TOPLEVEL *toplevel, OBJECT *list_tail,
 				OBJECT *o_current)
 {
   OBJECT *new_obj=NULL;
@@ -1022,7 +1022,7 @@ OBJECT *o_complex_copy_embedded(TOPLEVEL *w_current, OBJECT *list_tail,
     selectable = FALSE;	
   }
 
-  new_obj = o_complex_add_embedded(w_current, list_tail, o_current->type, 
+  new_obj = o_complex_add_embedded(toplevel, list_tail, o_current->type,
                                    color,
                                    o_current->complex->x, o_current->complex->y, 
                                    o_current->complex->angle, 
@@ -1030,7 +1030,7 @@ OBJECT *o_complex_copy_embedded(TOPLEVEL *w_current, OBJECT *list_tail,
                                    selectable); 
   /* deal with stuff that has changed */
 	
-  temp_list = o_list_copy_all(w_current,
+  temp_list = o_list_copy_all(toplevel,
                               o_current->complex->prim_objs->next,
                               new_obj->complex->prim_objs, 
                               NORMAL_FLAG);
@@ -1060,24 +1060,24 @@ OBJECT *o_complex_copy_embedded(TOPLEVEL *w_current, OBJECT *list_tail,
  *  \par Function Description
  *
  */
-void o_complex_delete(TOPLEVEL *w_current, OBJECT *delete)
+void o_complex_delete(TOPLEVEL *toplevel, OBJECT *delete)
 {
   g_return_if_fail(delete != NULL);
 
   /* first remove complex pointer */
   if (delete->complex) {
     if (delete->complex->prim_objs) {
-      s_delete_list_fromstart(w_current, 
+      s_delete_list_fromstart(toplevel,
                               delete->complex->prim_objs);
     }
     delete->complex->prim_objs = NULL;
   }
 
   /* then remove the actual node */	
-  s_delete(w_current, delete);
+  s_delete(toplevel, delete);
   delete = NULL;
-  w_current->page_current->object_tail = (OBJECT *) 
-  return_tail(w_current->page_current->object_head);
+  toplevel->page_current->object_tail = (OBJECT *)
+  return_tail(toplevel->page_current->object_head);
 }
 
 /*! \brief
@@ -1353,7 +1353,7 @@ OBJECT *o_complex_return_nth_pin(OBJECT *o_list, int counter)
  *
  */
 /* pass in top level object */
-void o_complex_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx, 
+void o_complex_rotate_lowlevel(TOPLEVEL *toplevel, int world_centerx,
 			       int world_centery, 
 			       int angle,
 			       int angle_change,
@@ -1377,44 +1377,44 @@ void o_complex_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx,
   while ( o_current != NULL ) {
     switch(o_current->type) {
       case(OBJ_LINE):
-        o_line_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_line_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_NET):
-        o_net_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_net_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_BUS):
-        o_bus_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_bus_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 	
       case(OBJ_BOX):
-        o_box_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_box_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_PICTURE):
-        o_picture_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_picture_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_CIRCLE):
-        o_circle_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_circle_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_PIN):
-        o_pin_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_pin_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_ARC):
-        o_arc_rotate_world(w_current, 0, 0, angle_change, o_current);
+        o_arc_rotate_world(toplevel, 0, 0, angle_change, o_current);
         break;
 
       case(OBJ_COMPLEX):
       case(OBJ_PLACEHOLDER):
-	o_complex_rotate_lowlevel(w_current, 0, 0, angle, angle_change, o_current);
+	o_complex_rotate_lowlevel(toplevel, 0, 0, angle, angle_change, o_current);
         break; 
 
       case(OBJ_TEXT):
-        o_text_rotate_world(w_current, 0, 0, angle, angle_change, o_current);
+        o_text_rotate_world(toplevel, 0, 0, angle, angle_change, o_current);
         break;
 
     }
@@ -1427,7 +1427,7 @@ void o_complex_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx,
  *
  */
 /* pass in top level object */
-void o_complex_mirror_lowlevel(TOPLEVEL *w_current, 
+void o_complex_mirror_lowlevel(TOPLEVEL *toplevel,
 			       int world_centerx, int world_centery,
 			       OBJECT *object)
 {
@@ -1444,44 +1444,44 @@ void o_complex_mirror_lowlevel(TOPLEVEL *w_current,
   while ( o_current != NULL ) {
     switch(o_current->type) {
       case(OBJ_LINE):
-        o_line_mirror_world(w_current, 0, 0, o_current);
+        o_line_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_NET):
-        o_net_mirror_world(w_current, 0, 0, o_current);
+        o_net_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_BUS):
-        o_bus_mirror_world(w_current, 0, 0, o_current);
+        o_bus_mirror_world(toplevel, 0, 0, o_current);
         break;
 	
       case(OBJ_BOX):
-        o_box_mirror_world(w_current, 0, 0, o_current);
+        o_box_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_PICTURE):
-        o_picture_mirror_world(w_current, 0, 0, o_current);
+        o_picture_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_CIRCLE):
-        o_circle_mirror_world(w_current, 0, 0, o_current);
+        o_circle_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_PIN):
-        o_pin_mirror_world(w_current, 0, 0, o_current);
+        o_pin_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_ARC):
-        o_arc_mirror_world(w_current, 0, 0, o_current);
+        o_arc_mirror_world(toplevel, 0, 0, o_current);
         break;
 
       case(OBJ_COMPLEX):
       case(OBJ_PLACEHOLDER):
-	o_complex_mirror_lowlevel(w_current, 0, 0, o_current);
+	o_complex_mirror_lowlevel(toplevel, 0, 0, o_current);
 	break;
 
       case(OBJ_TEXT):
-        o_text_mirror_world(w_current, 0, 0, o_current);
+        o_text_mirror_world(toplevel, 0, 0, o_current);
         break;
 
     }
@@ -1579,7 +1579,7 @@ int o_complex_count_pins(OBJECT *object)
  */
 /* pass in top level object */
 void
-o_complex_check_symversion(TOPLEVEL* w_current, OBJECT* object) 
+o_complex_check_symversion(TOPLEVEL* toplevel, OBJECT* object)
 {
   char *inside = NULL;
   char *outside = NULL;
@@ -1720,8 +1720,8 @@ o_complex_check_symversion(TOPLEVEL* w_current, OBJECT* object)
       refdes_copy = g_strconcat (refdes, " (",
                                  object->complex_basename,
                                  ")", NULL);
-      w_current->major_changed_refdes =
-        g_list_append(w_current->major_changed_refdes, refdes_copy);
+      toplevel->major_changed_refdes =
+        g_list_append(toplevel->major_changed_refdes, refdes_copy);
 
       /* don't bother checking minor changes if there are major ones*/
       goto done; 
diff --git a/libgeda/src/o_embed.c b/libgeda/src/o_embed.c
index 2a3ab25..0681477 100644
--- a/libgeda/src/o_embed.c
+++ b/libgeda/src/o_embed.c
@@ -45,7 +45,7 @@
  *  \par Function Description
  * 
  */
-void o_embed(TOPLEVEL *w_current, OBJECT *o_current)
+void o_embed(TOPLEVEL *toplevel, OBJECT *o_current)
 {
 
   /* check o_current is a complex and is not already embedded */
@@ -60,7 +60,7 @@ void o_embed(TOPLEVEL *w_current, OBJECT *o_current)
                    o_current->complex_basename);
     
     /* page content has been modified */
-    w_current->page_current->CHANGED = 1;
+    toplevel->page_current->CHANGED = 1;
   }
 
   /* If it's a picture and it's not embedded */
@@ -74,7 +74,7 @@ void o_embed(TOPLEVEL *w_current, OBJECT *o_current)
     
     
     /* page content has been modified */
-    w_current->page_current->CHANGED = 1;
+    toplevel->page_current->CHANGED = 1;
   }
   
 }
@@ -84,7 +84,7 @@ void o_embed(TOPLEVEL *w_current, OBJECT *o_current)
  *  \par Function Description
  * 
  */
-void o_unembed(TOPLEVEL *w_current, OBJECT *o_current)
+void o_unembed(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   const CLibSymbol *sym;
   
@@ -109,7 +109,7 @@ void o_unembed(TOPLEVEL *w_current, OBJECT *o_current)
                      o_current->complex_basename);
       
       /* page content has been modified */
-      w_current->page_current->CHANGED = 1;
+      toplevel->page_current->CHANGED = 1;
       
     }
   }
@@ -125,7 +125,7 @@ void o_unembed(TOPLEVEL *w_current, OBJECT *o_current)
     
     
     /* page content has been modified */
-    w_current->page_current->CHANGED = 1;
+    toplevel->page_current->CHANGED = 1;
   }
   
 }
diff --git a/libgeda/src/o_line_basic.c b/libgeda/src/o_line_basic.c
index 3ec08a8..71b6c1b 100644
--- a/libgeda/src/o_line_basic.c
+++ b/libgeda/src/o_line_basic.c
@@ -63,7 +63,7 @@
  *  The object is added to the end of the list described by the 
  *  <B>object_list</B> parameter by the #s_basic_link_object().
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list  OBJECT list to add line to.
  *  \param [in]     type         Must be OBJ_LINE.
  *  \param [in]     color        Circle line color.
@@ -73,7 +73,7 @@
  *  \param [in]     y2           Lower y coordinate.
  *  \return A pointer to the new end of the object list.
  */
-OBJECT *o_line_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_line_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		   char type, int color, 
 		   int x1, int y1, int x2, int y2)
 {
@@ -93,16 +93,16 @@ OBJECT *o_line_add(TOPLEVEL *w_current, OBJECT *object_list,
   new_node->line->y[1] = y2;
   
   /* line type and filling initialized to default */
-  o_set_line_options(w_current, new_node,
+  o_set_line_options(toplevel, new_node,
 		     END_NONE, TYPE_SOLID, 0, -1, -1);
-  o_set_fill_options(w_current, new_node,
+  o_set_fill_options(toplevel, new_node,
 		     FILLING_HOLLOW, -1, -1, -1, -1, -1);
   
   new_node->draw_func = line_draw_func;
   new_node->sel_func = select_func;  
   
   /* compute bounding box */
-  o_line_recalc(w_current, new_node);
+  o_line_recalc(toplevel, new_node);
   
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
     
@@ -116,12 +116,12 @@ OBJECT *o_line_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  is added at the end of the list following the <B>list_tail</B>
  *  parameter.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [out] list_tail  OBJECT list to copy to.
  *  \param [in]  o_current  Line OBJECT to copy.
  *  \return A new pointer to the end of the object list.
  */
-OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
+OBJECT *o_line_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current)
 {
   OBJECT *new_obj;
   ATTRIB *a_current;
@@ -138,7 +138,7 @@ OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
    * #o_line_add(). Values for its fields are default and need to
    * be modified.
    */
-  new_obj = o_line_add(w_current, list_tail,
+  new_obj = o_line_add(toplevel, list_tail,
 		       OBJ_LINE, color,
 		       0, 0, 0, 0);
 
@@ -158,16 +158,16 @@ OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
   new_obj->line->y[1] = o_current->line->y[1];
   
   /* copy the line type and filling options */
-  o_set_line_options(w_current, new_obj, o_current->line_end,
+  o_set_line_options(toplevel, new_obj, o_current->line_end,
 		     o_current->line_type, o_current->line_width,
 		     o_current->line_length, o_current->line_space);
-  o_set_fill_options(w_current, new_obj,
+  o_set_fill_options(toplevel, new_obj,
 		     o_current->fill_type, o_current->fill_width,
 		     o_current->fill_pitch1, o_current->fill_angle1,
 		     o_current->fill_pitch2, o_current->fill_angle2);
   
   /* calc the bounding box */
-  o_line_recalc(w_current, o_current);
+  o_line_recalc(toplevel, o_current);
   
   /* new_obj->attribute = 0;*/
   a_current = o_current->attribs;
@@ -195,7 +195,7 @@ OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *  The coordinates of the end of line is modified in the world
  *  coordinate system. Screen coordinates and boundings are then updated.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     Line OBJECT to modify.
  *  \param [in]     x          New x coordinate.
  *  \param [in]     y          New y coordinate.
@@ -210,7 +210,7 @@ OBJECT *o_line_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *  \par Author's note
  *  pb20011009 - modified
  */
-void o_line_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_line_modify(TOPLEVEL *toplevel, OBJECT *object,
 		   int x, int y, int whichone)
 {
 	/* change one of the end of the line */
@@ -230,7 +230,7 @@ void o_line_modify(TOPLEVEL *w_current, OBJECT *object,
 	}
 	
 	/* recalculate the bounding box */
-	o_line_recalc(w_current, object);
+	o_line_recalc(toplevel, object);
 	
 }
 
@@ -250,14 +250,14 @@ void o_line_modify(TOPLEVEL *w_current, OBJECT *object,
  *    <DT>*</DT><DD>the file format used for the releases after 20010704.
  *  </DL>
  *
- *  \param [in]  w_current       The TOPLEVEL object.
+ *  \param [in]  toplevel       The TOPLEVEL object.
  *  \param [out] object_list     OBJECT list to create line in.
  *  \param [in]  buf             Character string with line description.
  *  \param [in]  release_ver     libgeda release version number.
  *  \param [in]  fileformat_ver  libgeda file format version number.
  *  \return A pointer to the new line object.
  */
-OBJECT *o_line_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_line_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		    unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -326,14 +326,14 @@ OBJECT *o_line_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
    * type is set according to the values of the fields on the line.
    */
   /* create and add the line to the list */
-  object_list = o_line_add(w_current, object_list,
+  object_list = o_line_add(toplevel, object_list,
 			   type, color, d_x1, d_y1, d_x2, d_y2);
   /* set its line options */
-  o_set_line_options(w_current, object_list,
+  o_set_line_options(toplevel, object_list,
 		     line_end, line_type, line_width, line_length, 
 		     line_space);
   /* filling is irrelevant for line, just set to default */
-  o_set_fill_options(w_current, object_list,
+  o_set_fill_options(toplevel, object_list,
 		     FILLING_HOLLOW, -1, -1, -1, -1, -1);
 
   return(object_list);
@@ -395,12 +395,12 @@ char *o_line_save(OBJECT *object)
  *  This function applies a translation of (<B>x1</B>,<B>y1</B>) to the line
  *  described by <B>*object</B>. <B>x1</B> and <B>y1</B> are in world unit.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in]     x1         x distance to move.
  *  \param [in]     y1         y distance to move.
  *  \param [in,out] object     Line OBJECT to translate.
  */
-void o_line_translate_world(TOPLEVEL *w_current,
+void o_line_translate_world(TOPLEVEL *toplevel,
 			    int x1, int y1, OBJECT *object)
 {
   int left, right, top, bottom;
@@ -414,7 +414,7 @@ void o_line_translate_world(TOPLEVEL *w_current,
   object->line->y[1] = object->line->y[1] + y1;
   
   /* Update bounding box */
-  world_get_line_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_line_bounds(toplevel, object, &left, &top, &right, &bottom);
   
   object->w_left   = left;
   object->w_top    = top;
@@ -430,13 +430,13 @@ void o_line_translate_world(TOPLEVEL *w_current,
  *  point by <B>angle</B> degrees.
  *  The center of rotation is in world units.
  *
- *  \param [in]      w_current      The TOPLEVEL object.
+ *  \param [in]      toplevel      The TOPLEVEL object.
  *  \param [in]      world_centerx  Rotation center x coordinate in WORLD units.
  *  \param [in]      world_centery  Rotation center y coordinate in WORLD units.
  *  \param [in]      angle          Rotation angle in degrees (See note below).
  *  \param [in,out]  object         Line OBJECT to rotate.
  */
-void o_line_rotate_world(TOPLEVEL *w_current, 
+void o_line_rotate_world(TOPLEVEL *toplevel,
 			 int world_centerx, int world_centery, int angle,
 			 OBJECT *object)
 {
@@ -457,7 +457,7 @@ void o_line_rotate_world(TOPLEVEL *w_current,
    * back to its previous location.
    */
   /* translate object to origin */
-  o_line_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_line_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   /* rotate line end 1 */
   rotate_point_90(object->line->x[0], object->line->y[0], angle,
@@ -474,7 +474,7 @@ void o_line_rotate_world(TOPLEVEL *w_current,
   object->line->y[1] = newy;
 
   /* translate object back to normal position */
-  o_line_translate_world(w_current, world_centerx, world_centery, object);
+  o_line_translate_world(toplevel, world_centerx, world_centery, object);
   
 }
 
@@ -486,23 +486,23 @@ void o_line_rotate_world(TOPLEVEL *w_current,
  *  The line if first translated to the origin, then mirrored
  *  and finally translated back at its previous position.
  *
- *  \param [in]     w_current      The TOPLEVEL object.
+ *  \param [in]     toplevel      The TOPLEVEL object.
  *  \param [in]     world_centerx  Origin x coordinate in WORLD units.
  *  \param [in]     world_centery  Origin y coordinate in WORLD units.
  *  \param [in,out] object         Line OBJECT to mirror.
  */
-void o_line_mirror_world(TOPLEVEL *w_current, int world_centerx,
+void o_line_mirror_world(TOPLEVEL *toplevel, int world_centerx,
 			 int world_centery, OBJECT *object)
 {
   /* translate object to origin */
-  o_line_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_line_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   /* mirror the line ends */
   object->line->x[0] = -object->line->x[0];
   object->line->x[1] = -object->line->x[1];
 
   /* translate back in position */
-  o_line_translate_world(w_current, world_centerx, world_centery, object);
+  o_line_translate_world(toplevel, world_centerx, world_centery, object);
   
 }
 
@@ -510,10 +510,10 @@ void o_line_mirror_world(TOPLEVEL *w_current, int world_centerx,
  *  \par Function Description
  *  This function recalculate the bounding box of the <B>o_current</B>
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in,out] o_current  Line OBJECT to be recalculated.
  */
-void o_line_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_line_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
@@ -522,7 +522,7 @@ void o_line_recalc(TOPLEVEL *w_current, OBJECT *o_current)
   }
   
   /* update the bounding box - screen unit */
-  world_get_line_bounds(w_current, o_current, 
+  world_get_line_bounds(toplevel, o_current,
 		  &left, &top, &right, &bottom);
   o_current->w_left   = left;
   o_current->w_top    = top;
@@ -537,14 +537,14 @@ void o_line_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  <B>bottom</B> parameters to the boundings of the line object described
  *  in <B>*line</B> in world units.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  OBJECT     Line OBJECT to read coordinates from.
  *  \param [out] left       Left line coordinate in WORLD units.
  *  \param [out] top        Top line coordinate in WORLD units.
  *  \param [out] right      Right line coordinate in WORLD units.
  *  \param [out] bottom     Bottom line coordinate in WORLD units.
  */
-void world_get_line_bounds(TOPLEVEL *w_current, OBJECT *object,
+void world_get_line_bounds(TOPLEVEL *toplevel, OBJECT *object,
                            int *left, int *top, int *right, int *bottom)
 {
   int halfwidth;
@@ -572,13 +572,13 @@ void world_get_line_bounds(TOPLEVEL *w_current, OBJECT *object,
  *  Parameters of the line are extracted from object pointed by
  *  <B>o_current</B>.
  *  
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to Postscript document.
  *  \param [in] o_current  Line OBJECT to write to document.
  *  \param [in] origin_x   Page x coordinate to place line OBJECT.
  *  \param [in] origin_y   Page y coordinate to place line OBJECT.
  */
-void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_line_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		  int origin_x, int origin_y)
 {
   int x1, y1, x2, y2;
@@ -612,7 +612,7 @@ void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
    */
   line_width = o_current->line_width;
   if(line_width <=2) {
-    if(w_current->line_style == THICK) {
+    if(toplevel->line_style == THICK) {
       line_width=LINE_WIDTH;
     } else {
       line_width=2;
@@ -657,7 +657,7 @@ void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     outl_func = o_line_print_solid;
   }
   
-  (*outl_func)(w_current, fp,
+  (*outl_func)(toplevel, fp,
 	       x1 - origin_x, y1 - origin_y,
 	       x2 - origin_x, y2 - origin_y,
 	       color,
@@ -674,7 +674,7 @@ void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *  The parameters <B>length</B> and <B>space</B> are ignored whereas
  *  <B>line_width</B> specifies the width of the printed line.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x1            Upper x coordinate.
  *  \param [in] y1            Upper y coordinate.
@@ -687,13 +687,13 @@ void o_line_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *  \param [in] origin_x      Page x coordinate to place line OBJECT.
  *  \param [in] origin_y      Page y coordinate to place line OBJECT.
  */
-void o_line_print_solid(TOPLEVEL *w_current, FILE *fp,
+void o_line_print_solid(TOPLEVEL *toplevel, FILE *fp,
 			int x1, int y1, int x2, int y2,
 			int color,
 			int line_width, int length, int space,
 			int origin_x, int origin_y)
 {
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -717,7 +717,7 @@ void o_line_print_solid(TOPLEVEL *w_current, FILE *fp,
  *
  *  The function sets the color in which the line will be printed with.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x1            Upper x coordinate.
  *  \param [in] y1            Upper y coordinate.
@@ -730,7 +730,7 @@ void o_line_print_solid(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place line OBJECT.
  *  \param [in] origin_y      Page y coordinate to place line OBJECT.
  */
-void o_line_print_dotted(TOPLEVEL *w_current, FILE *fp,
+void o_line_print_dotted(TOPLEVEL *toplevel, FILE *fp,
 			 int x1, int y1, int x2, int y2,
 			 int color,
 			 int line_width, int length, int space,
@@ -740,7 +740,7 @@ void o_line_print_dotted(TOPLEVEL *w_current, FILE *fp,
   double dx1, dy1;
   double xa, ya;
   
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -800,7 +800,7 @@ void o_line_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *  The function sets the color in which the line will be printed and
  *  the width of the line - that is the width of the dashes.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x1            Upper x coordinate.
  *  \param [in] y1            Upper y coordinate.
@@ -813,7 +813,7 @@ void o_line_print_dotted(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place line OBJECT.
  *  \param [in] origin_y      Page y coordinate to place line OBJECT.
  */
-void o_line_print_dashed(TOPLEVEL *w_current, FILE *fp,
+void o_line_print_dashed(TOPLEVEL *toplevel, FILE *fp,
 			 int x1, int y1, int x2, int y2,
 			 int color,
 			 int line_width, int length, int space,
@@ -823,7 +823,7 @@ void o_line_print_dashed(TOPLEVEL *w_current, FILE *fp,
   double dx1, dy1, dx2, dy2;
   double xa, ya, xb, yb;
   
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -905,7 +905,7 @@ void o_line_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *  width of the line - that is the width of the dashes and the diameter
  *  of the dots.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x1            Upper x coordinate.
  *  \param [in] y1            Upper y coordinate.
@@ -918,7 +918,7 @@ void o_line_print_dashed(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place line OBJECT.
  *  \param [in] origin_y      Page y coordinate to place line OBJECT.
  */
-void o_line_print_center(TOPLEVEL *w_current, FILE *fp,
+void o_line_print_center(TOPLEVEL *toplevel, FILE *fp,
 			 int x1, int y1, int x2, int y2,
 			 int color,
 			 int line_width, int length, int space,
@@ -928,7 +928,7 @@ void o_line_print_center(TOPLEVEL *w_current, FILE *fp,
   double dx1, dy1, dx2, dy2;
   double xa, ya, xb, yb;
   
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -1039,7 +1039,7 @@ void o_line_print_center(TOPLEVEL *w_current, FILE *fp,
  *  width of the line - that is the width of the dashes and the diameter
  *  of the dots.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] fp            FILE pointer to Postscript document.
  *  \param [in] x1            Upper x coordinate.
  *  \param [in] y1            Upper y coordinate.
@@ -1052,7 +1052,7 @@ void o_line_print_center(TOPLEVEL *w_current, FILE *fp,
  *  \param [in] origin_x      Page x coordinate to place line OBJECT.
  *  \param [in] origin_y      Page y coordinate to place line OBJECT.
  */
-void o_line_print_phantom(TOPLEVEL *w_current, FILE *fp,
+void o_line_print_phantom(TOPLEVEL *toplevel, FILE *fp,
 			  int x1, int y1, int x2, int y2,
 			  int color,
 			  int line_width, int length, int space,
@@ -1062,7 +1062,7 @@ void o_line_print_phantom(TOPLEVEL *w_current, FILE *fp,
   double dx1, dy1, dx2, dy2;
   double xa, ya, xb, yb;
   
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, color);
   }
   
@@ -1186,12 +1186,12 @@ void o_line_print_phantom(TOPLEVEL *w_current, FILE *fp,
 /*! \brief
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] x_scale
  *  \param [in] y_scale
  *  \param [in] object
  */
-void o_line_scale_world(TOPLEVEL *w_current, int x_scale, int y_scale,
+void o_line_scale_world(TOPLEVEL *toplevel, int x_scale, int y_scale,
 			OBJECT *object)
 {
   if (object == NULL) printf("lsw NO!\n");
@@ -1203,14 +1203,14 @@ void o_line_scale_world(TOPLEVEL *w_current, int x_scale, int y_scale,
   object->line->y[1] = object->line->y[1] * y_scale;
 
   /* update boundingbox */
-  o_line_recalc(w_current, object);
+  o_line_recalc(toplevel, object);
   
 }
 
 /*! \brief
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] line
  *  \param [in] x1
  *  \param [in] y1
@@ -1218,21 +1218,21 @@ void o_line_scale_world(TOPLEVEL *w_current, int x_scale, int y_scale,
  *  \param [in] y2
  *  \return int
  */
-int o_line_visible(TOPLEVEL *w_current, LINE *line, 
+int o_line_visible(TOPLEVEL *toplevel, LINE *line,
                    int *x1, int *y1, int *x2, int *y2)
 {
   int visible=0;
 
 
   /* don't do clipping if this is false */
-  if (!w_current->object_clipping) {
+  if (!toplevel->object_clipping) {
     return(TRUE);
   }
 
-  WORLDtoSCREEN( w_current, line->x[0], line->y[0], x1, y1 );
-  WORLDtoSCREEN( w_current, line->x[1], line->y[1], x2, y2 );
+  WORLDtoSCREEN( toplevel, line->x[0], line->y[0], x1, y1 );
+  WORLDtoSCREEN( toplevel, line->x[1], line->y[1], x2, y2 );
 
-  visible = SCREENclip_change(w_current, x1, y1, x2, y2);
+  visible = SCREENclip_change(toplevel, x1, y1, x2, y2);
 
   return(visible);
 }
diff --git a/libgeda/src/o_list.c b/libgeda/src/o_list.c
index bb1d7db..49e0b63 100644
--- a/libgeda/src/o_list.c
+++ b/libgeda/src/o_list.c
@@ -50,20 +50,20 @@ extern int global_sid;
  *  copies selected to list_head (!! returns new list)
  *  flag is either NORMAL_FLAG or SELECTION_FLAG
  *
- *  \param [in]  w_current   The TOPLEVEL object.
+ *  \param [in]  toplevel   The TOPLEVEL object.
  *  \param [in]  list_head
  *  \param [in]  selected
  *  \param [in]  flag
  *  \param [out] return_end  
  *  \return OBJECT pointer.
  */
-OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head,
+OBJECT *o_list_copy_to(TOPLEVEL *toplevel, OBJECT *list_head,
 		       OBJECT *selected, int flag, OBJECT **return_end)
 {
   OBJECT *end=NULL;
 
   /* are we adding a selection or the real object list */
-  w_current->ADDING_SEL = flag;
+  toplevel->ADDING_SEL = flag;
 
   end = (OBJECT *) return_tail(list_head);
 
@@ -71,40 +71,40 @@ OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head,
 
     case(OBJ_LINE):
       /* do we do anything with the return value) ? */
-      end = (OBJECT *) o_line_copy(w_current, end, selected);	
+      end = (OBJECT *) o_line_copy(toplevel, end, selected);
       break;
 
     case(OBJ_NET):
-      end = (OBJECT *) o_net_copy(w_current, end, selected);	
+      end = (OBJECT *) o_net_copy(toplevel, end, selected);
       break;
 
     case(OBJ_BUS):
-      end = (OBJECT *) o_bus_copy(w_current, end, selected);	
+      end = (OBJECT *) o_bus_copy(toplevel, end, selected);
       break;
 
     case(OBJ_BOX):
-      end = (OBJECT *) o_box_copy(w_current, end, selected);	
+      end = (OBJECT *) o_box_copy(toplevel, end, selected);
       break;
 
     case(OBJ_PICTURE):
-      end = (OBJECT *) o_picture_copy(w_current, end, selected);	
+      end = (OBJECT *) o_picture_copy(toplevel, end, selected);
       break;
 
     case(OBJ_CIRCLE):
-      end = (OBJECT *) o_circle_copy(w_current, end, selected);	
+      end = (OBJECT *) o_circle_copy(toplevel, end, selected);
       break;
 
     case(OBJ_COMPLEX):
     case(OBJ_PLACEHOLDER):
       if (o_complex_is_embedded (selected)) {
-        end = (OBJECT *) o_complex_copy_embedded(w_current, end, selected);	
+        end = (OBJECT *) o_complex_copy_embedded(toplevel, end, selected);
       } else {
-        end = (OBJECT *) o_complex_copy(w_current, end, selected);	
+        end = (OBJECT *) o_complex_copy(toplevel, end, selected);
       }
       break;
 
     case(OBJ_TEXT):
-      end = (OBJECT *) o_text_copy(w_current, end, selected);	
+      end = (OBJECT *) o_text_copy(toplevel, end, selected);
       if (selected->attribute && 
           selected->visibility == INVISIBLE) {
         end->visibility = INVISIBLE;
@@ -112,11 +112,11 @@ OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head,
       break;
 
     case(OBJ_PIN):
-      end = (OBJECT *) o_pin_copy(w_current, end, selected);	
+      end = (OBJECT *) o_pin_copy(toplevel, end, selected);
       break;
 
     case(OBJ_ARC):
-      end = (OBJECT *) o_arc_copy(w_current, end, selected);	
+      end = (OBJECT *) o_arc_copy(toplevel, end, selected);
       break;
   }
 
@@ -129,7 +129,7 @@ OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head,
   }
 
   /* I don't think this is a good idea at all */
-  /* w_current->ADDING_SEL = 0; */
+  /* toplevel->ADDING_SEL = 0; */
         
   if (return_end) {
     *return_end = end;	
@@ -144,13 +144,13 @@ OBJECT *o_list_copy_to(TOPLEVEL *w_current, OBJECT *list_head,
  *  you need to pass in a head_node for dest_list_head
  *  flag is either NORMAL_FLAG or SELECTION_FLAG
  *
- *  \param [in] w_current       The TOPLEVEL object.
+ *  \param [in] toplevel       The TOPLEVEL object.
  *  \param [in] src_list_head   
  *  \param [in] dest_list_head  
  *  \param [in] flag
  *  \return OBJECT pointer.
  */
-OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
+OBJECT *o_list_copy_all(TOPLEVEL *toplevel, OBJECT *src_list_head,
 			OBJECT *dest_list_head, int flag)
 {
   OBJECT *src;
@@ -160,26 +160,26 @@ OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
 
   src = src_list_head;
   dest = dest_list_head;
-  temp_parent = w_current->page_current->object_parent;
-  w_current->page_current->object_parent = dest_list_head;
+  temp_parent = toplevel->page_current->object_parent;
+  toplevel->page_current->object_parent = dest_list_head;
 
   if (dest == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
   if (src == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
-  adding_sel_save = w_current->ADDING_SEL;
+  adding_sel_save = toplevel->ADDING_SEL;
 
   /* first do all NON text items */
   while(src != NULL) {
 
     if (src->type != OBJ_TEXT) {
-      dest->next = o_list_copy_to(w_current, NULL, src, flag,
+      dest->next = o_list_copy_to(toplevel, NULL, src, flag,
                                   NULL);
 		
       dest->next->prev = dest;
@@ -194,12 +194,12 @@ OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
   /*dest = dest_list_head; out since we want to add to the end */
 
   if (dest == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
   if (src == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
@@ -207,17 +207,17 @@ OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
   while(src != NULL) {
 
     if (src->type == OBJ_TEXT) {
-      dest->next = o_list_copy_to(w_current, NULL, src, flag,
+      dest->next = o_list_copy_to(toplevel, NULL, src, flag,
                                   NULL);
 		
       dest->next->prev = dest;
       dest = dest->next;
       dest->sid = global_sid++;
 	
-      if (src->attached_to /*&& !w_current->ADDING_SEL*/) {
+      if (src->attached_to /*&& !toplevel->ADDING_SEL*/) {
         if (src->attached_to->copied_to) {
-          o_attrib_attach(w_current,
-                          w_current->page_current->object_parent,
+          o_attrib_attach(toplevel,
+                          toplevel->page_current->object_parent,
                           dest, src->attached_to->copied_to);     
 
                                 /* satisfied copy request */
@@ -229,8 +229,8 @@ OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
     src = src->next;
   }
 
-  w_current->ADDING_SEL = adding_sel_save;
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->ADDING_SEL = adding_sel_save;
+  toplevel->page_current->object_parent = temp_parent;
 
   return(dest);
 }
@@ -246,13 +246,13 @@ OBJECT *o_list_copy_all(TOPLEVEL *w_current, OBJECT *src_list_head,
  *  objects are unselected before they are copied and then reselected
  *  this is necessary to preserve the color info
  *
- *  \param [in] w_current       The TOPLEVEL object.
+ *  \param [in] toplevel       The TOPLEVEL object.
  *  \param [in] src_list_head   
  *  \param [in] dest_list_head  
  *  \param [in] flag
  *  \return OBJECT pointer.
  */
-OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
+OBJECT *o_list_copy_all_selection2(TOPLEVEL *toplevel,
 				   GList *src_list_head, 
 				   OBJECT *dest_list_head, int flag)
 {
@@ -265,20 +265,20 @@ OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
   src = src_list_head;
   dest = dest_list_head;
 
-  temp_parent = w_current->page_current->object_parent;
-  w_current->page_current->object_parent = dest_list_head;
+  temp_parent = toplevel->page_current->object_parent;
+  toplevel->page_current->object_parent = dest_list_head;
 
   if (dest == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
   if (src == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
-  adding_sel_save = w_current->ADDING_SEL;
+  adding_sel_save = toplevel->ADDING_SEL;
 
   /* first do all NON text items */
   while(src != NULL) {
@@ -289,7 +289,7 @@ OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
     o_selection_unselect(object);	
 
     if (object->type != OBJ_TEXT && object->type != OBJ_HEAD) {
-      dest->next = o_list_copy_to(w_current, NULL, object, 
+      dest->next = o_list_copy_to(toplevel, NULL, object,
                                   flag, NULL);
       dest->next->prev = dest;
       dest = dest->next;
@@ -306,12 +306,12 @@ OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
   /*dest = dest_list_head; out since we want to add to the end */
 
   if (dest == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
   if (src == NULL) {
-    w_current->page_current->object_parent = temp_parent;
+    toplevel->page_current->object_parent = temp_parent;
     return(NULL);
   }
 
@@ -324,17 +324,17 @@ OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
     o_selection_unselect(object);	
 
     if (object->type == OBJ_TEXT) {
-      dest->next = o_list_copy_to(w_current, NULL, object, 
+      dest->next = o_list_copy_to(toplevel, NULL, object,
                                   flag, NULL);
 	
       dest->next->prev = dest;
       dest = dest->next;
       dest->sid = global_sid++;
 
-      if (object->attached_to /*&& !w_current->ADDING_SEL*/) {
+      if (object->attached_to /*&& !toplevel->ADDING_SEL*/) {
         if (object->attached_to->copied_to) {
-          o_attrib_attach(w_current,
-                          w_current->page_current->object_parent,
+          o_attrib_attach(toplevel,
+                          toplevel->page_current->object_parent,
                           dest, object->attached_to->copied_to);     
                                 /* satisfied copy request */
           object->attached_to->copied_to = NULL;
@@ -348,8 +348,8 @@ OBJECT *o_list_copy_all_selection2(TOPLEVEL *w_current,
     src = src->next;
   }
 
-  w_current->ADDING_SEL = adding_sel_save;
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->ADDING_SEL = adding_sel_save;
+  toplevel->page_current->object_parent = temp_parent;
 
   return(dest);
 }
@@ -391,18 +391,18 @@ OBJECT *o_list_search(OBJECT *list, OBJECT *current)
  *  \brief
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] list
  *  \param [in] delete
  */
-void o_list_delete(TOPLEVEL *w_current, OBJECT *list, OBJECT *delete)
+void o_list_delete(TOPLEVEL *toplevel, OBJECT *list, OBJECT *delete)
 {
   OBJECT *find;
 
   find = o_list_search(list, delete);
 
   if (find != NULL)
-  s_delete(w_current, find);
+  s_delete(toplevel, find);
 
 }
 
@@ -412,27 +412,27 @@ void o_list_delete(TOPLEVEL *w_current, OBJECT *list, OBJECT *delete)
  *  assuming list is head
  *  head will NOT be deleted
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] list
  */
-void o_list_delete_rest(TOPLEVEL *w_current, OBJECT *list)
+void o_list_delete_rest(TOPLEVEL *toplevel, OBJECT *list)
 {
   OBJECT *o_current=NULL;
   OBJECT *o_prev=NULL;
 	
   o_current = (OBJECT *) return_tail(list);
 
-  w_current->REMOVING_SEL = 1;
+  toplevel->REMOVING_SEL = 1;
   /* remove list backwards */
   while(o_current != NULL) {
     if (o_current->type != OBJ_HEAD) {
       o_prev = o_current->prev;
-      s_delete(w_current, o_current);	
+      s_delete(toplevel, o_current);
       o_current = o_prev;
     } else {
       o_current->next = NULL; /* set sel_head->next to be empty */
       o_current = NULL;
     }
   }
-  w_current->REMOVING_SEL = 0;
+  toplevel->REMOVING_SEL = 0;
 }
diff --git a/libgeda/src/o_net_basic.c b/libgeda/src/o_net_basic.c
index 89e34cf..0b98bb8 100644
--- a/libgeda/src/o_net_basic.c
+++ b/libgeda/src/o_net_basic.c
@@ -42,24 +42,24 @@
  *  \brief
  *  \par Function Description
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  line
  *  \param [out] left
  *  \param [out] top
  *  \param [out] right
  *  \param [out] bottom
  */
-void world_get_net_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
+void world_get_net_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left,
                           int *top, int *right, int *bottom)
 {
-  world_get_line_bounds( w_current, object, left, top, right, bottom );
+  world_get_line_bounds( toplevel, object, left, top, right, bottom );
 }
 
 /*! \todo Finish function documentation!!!
  *  \brief
  *  \par Function Description
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list
  *  \param [in]     type
  *  \param [in]     color
@@ -69,7 +69,7 @@ void world_get_net_bounds(TOPLEVEL *w_current, OBJECT *object, int *left,
  *  \param [in]     y2
  *  \return OBJECT *
  */
-OBJECT *o_net_add(TOPLEVEL *w_current, OBJECT *object_list, char type,
+OBJECT *o_net_add(TOPLEVEL *toplevel, OBJECT *object_list, char type,
 		  int color, int x1, int y1, int x2, int y2)
 {
   int left, right, top, bottom;
@@ -88,7 +88,7 @@ OBJECT *o_net_add(TOPLEVEL *w_current, OBJECT *object_list, char type,
   new_node->line->y[1] = y2;
   new_node->line_width = NET_WIDTH;
 
-  world_get_net_bounds(w_current, new_node, &left, &top, &right,
+  world_get_net_bounds(toplevel, new_node, &left, &top, &right,
                  &bottom);
 
   new_node->w_left = left;
@@ -102,11 +102,11 @@ OBJECT *o_net_add(TOPLEVEL *w_current, OBJECT *object_list, char type,
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
 
 
-  if (!w_current->ADDING_SEL) {
-    s_tile_add_object(w_current, object_list,
+  if (!toplevel->ADDING_SEL) {
+    s_tile_add_object(toplevel, object_list,
 		      new_node->line->x[0], new_node->line->y[0],
 		      new_node->line->x[1], new_node->line->y[1]);
-    s_conn_update_object(w_current, object_list);
+    s_conn_update_object(toplevel, object_list);
   }
 
   return (object_list);
@@ -118,7 +118,7 @@ OBJECT *o_net_add(TOPLEVEL *w_current, OBJECT *object_list, char type,
  *
  *
  */
-void o_net_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_net_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
@@ -130,7 +130,7 @@ void o_net_recalc(TOPLEVEL *w_current, OBJECT *o_current)
     return;
   }
 
-  world_get_net_bounds(w_current, o_current, &left, &top, &right,
+  world_get_net_bounds(toplevel, o_current, &left, &top, &right,
                  &bottom);
 
   o_current->w_left = left;
@@ -147,7 +147,7 @@ void o_net_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *
  *
  */
-OBJECT *o_net_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_net_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		   unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type;
@@ -171,8 +171,8 @@ OBJECT *o_net_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
   }
 
 
-  if (w_current->override_net_color != -1) {
-    color = w_current->override_net_color;
+  if (toplevel->override_net_color != -1) {
+    color = toplevel->override_net_color;
   }
 
   if (color < 0 || color > MAX_COLORS) {
@@ -183,7 +183,7 @@ OBJECT *o_net_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
   }
 
   object_list =
-  o_net_add(w_current, object_list, type, color, d_x1, d_y1, d_x2,
+  o_net_add(toplevel, object_list, type, color, d_x1, d_y1, d_x2,
             d_y2);
   return (object_list);
 }
@@ -222,7 +222,7 @@ char *o_net_save(OBJECT *object)
  *
  *
  */
-void o_net_translate_world(TOPLEVEL *w_current, int x1, int y1,
+void o_net_translate_world(TOPLEVEL *toplevel, int x1, int y1,
 			   OBJECT *object)
 {
   int left, right, top, bottom;
@@ -238,14 +238,14 @@ void o_net_translate_world(TOPLEVEL *w_current, int x1, int y1,
   object->line->y[1] = object->line->y[1] + y1;
 
   /* Update bounding box */
-  world_get_net_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_net_bounds(toplevel, object, &left, &top, &right, &bottom);
 
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -254,7 +254,7 @@ void o_net_translate_world(TOPLEVEL *w_current, int x1, int y1,
  *
  *
  */
-OBJECT *o_net_copy(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_net_copy(TOPLEVEL *toplevel, OBJECT *list_tail,
 		   OBJECT *o_current)
 {
   OBJECT *new_obj;
@@ -271,7 +271,7 @@ OBJECT *o_net_copy(TOPLEVEL *w_current, OBJECT *list_tail,
   /* still doesn't work... you need to pass in the new values */
   /* or don't update and update later */
   /* I think for now I'll disable the update and manually update */
-  new_obj = o_net_add(w_current, list_tail, OBJ_NET, color,
+  new_obj = o_net_add(toplevel, list_tail, OBJ_NET, color,
                       o_current->line->x[0], o_current->line->y[0],
                       o_current->line->x[1], o_current->line->y[1]);
 
@@ -302,7 +302,7 @@ OBJECT *o_net_copy(TOPLEVEL *w_current, OBJECT *list_tail,
  *
  *
  */
-void o_net_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
+void o_net_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		 int origin_x, int origin_y)
 {
   int offset, offset2;
@@ -320,12 +320,12 @@ void o_net_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
 
   cross = offset;
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, o_current->color);
   }
 
   net_width = 2;
-  if (w_current->net_style == THICK) {
+  if (toplevel->net_style == THICK) {
     net_width = NET_WIDTH;
   }
 
@@ -344,7 +344,7 @@ void o_net_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *
  *
  */
-void o_net_rotate_world(TOPLEVEL *w_current,
+void o_net_rotate_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, int angle,
 			OBJECT *object)
 {
@@ -354,7 +354,7 @@ void o_net_rotate_world(TOPLEVEL *w_current,
   return;
 
   /* translate object to origin */
-  o_net_translate_world(w_current, -world_centerx, -world_centery,
+  o_net_translate_world(toplevel, -world_centerx, -world_centery,
                         object);
 
   rotate_point_90(object->line->x[0], object->line->y[0], angle,
@@ -369,7 +369,7 @@ void o_net_rotate_world(TOPLEVEL *w_current,
   object->line->x[1] = newx;
   object->line->y[1] = newy;
 
-  o_net_translate_world(w_current, world_centerx, world_centery, object);
+  o_net_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -378,18 +378,18 @@ void o_net_rotate_world(TOPLEVEL *w_current,
  *
  *
  */
-void o_net_mirror_world(TOPLEVEL *w_current, int world_centerx,
+void o_net_mirror_world(TOPLEVEL *toplevel, int world_centerx,
 			int world_centery, OBJECT *object)
 {
   /* translate object to origin */
-  o_net_translate_world(w_current, -world_centerx, -world_centery,
+  o_net_translate_world(toplevel, -world_centerx, -world_centery,
                         object);
 
   object->line->x[0] = -object->line->x[0];
 
   object->line->x[1] = -object->line->x[1];
 
-  o_net_translate_world(w_current, world_centerx, world_centery, object);
+  o_net_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 int o_net_orientation(OBJECT *object)
@@ -583,7 +583,7 @@ int o_net_consolidate_nomidpoint(OBJECT *object, int x, int y)
  *
  *
  */
-int o_net_consolidate_segments(TOPLEVEL *w_current, OBJECT *object)
+int o_net_consolidate_segments(TOPLEVEL *toplevel, OBJECT *object)
 {
   int object_orient;
   int other_orient;
@@ -630,22 +630,22 @@ int o_net_consolidate_segments(TOPLEVEL *w_current, OBJECT *object)
 
           changed++;
           if (other_object->selected == TRUE ) {
-            o_selection_remove( w_current->page_current->selection_list, other_object );
+            o_selection_remove( toplevel->page_current->selection_list, other_object );
             reselect_new=TRUE;
           }
 
           if (reselect_new == TRUE) {
-            o_selection_remove( w_current->page_current->selection_list, object );
-            o_selection_add( w_current->page_current->selection_list, object );
+            o_selection_remove( toplevel->page_current->selection_list, object );
+            o_selection_add( toplevel->page_current->selection_list, object );
           }
 
-          s_conn_remove(w_current, other_object);
-          s_delete(w_current, other_object);
-          o_net_recalc(w_current, object);
-          s_tile_update_object(w_current, object);
-          s_conn_update_object(w_current, object);
-          w_current->page_current->object_tail = 	
-            return_tail(w_current->page_current->object_head);
+          s_conn_remove(toplevel, other_object);
+          s_delete(toplevel, other_object);
+          o_net_recalc(toplevel, object);
+          s_tile_update_object(toplevel, object);
+          s_conn_update_object(toplevel, object);
+          toplevel->page_current->object_tail =
+            return_tail(toplevel->page_current->object_head);
           return(-1);
         }
       }
@@ -664,21 +664,21 @@ int o_net_consolidate_segments(TOPLEVEL *w_current, OBJECT *object)
  *
  *
  */
-void o_net_consolidate(TOPLEVEL *w_current)
+void o_net_consolidate(TOPLEVEL *toplevel)
 {
   OBJECT *o_current;
   int status = 0;
 
-  o_current = w_current->page_current->object_head;
+  o_current = toplevel->page_current->object_head;
 
   while (o_current != NULL) {
 
     if (o_current->type == OBJ_NET) {
-      status = o_net_consolidate_segments(w_current, o_current);
+      status = o_net_consolidate_segments(toplevel, o_current);
     }
 
     if (status == -1) {
-      o_current = w_current->page_current->object_head;
+      o_current = toplevel->page_current->object_head;
       status = 0;
     } else {
       o_current = o_current->next;
@@ -692,7 +692,7 @@ void o_net_consolidate(TOPLEVEL *w_current)
  *
  *
  */
-void o_net_modify(TOPLEVEL *w_current, OBJECT *object,
+void o_net_modify(TOPLEVEL *toplevel, OBJECT *object,
 		  int x, int y, int whichone)
 {
   int left, right, top, bottom;
@@ -700,12 +700,12 @@ void o_net_modify(TOPLEVEL *w_current, OBJECT *object,
   object->line->x[whichone] = x;
   object->line->y[whichone] = y;
 
-  world_get_net_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_net_bounds(toplevel, object, &left, &top, &right, &bottom);
 
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
diff --git a/libgeda/src/o_picture.c b/libgeda/src/o_picture.c
index 6edff47..ffea11c 100644
--- a/libgeda/src/o_picture.c
+++ b/libgeda/src/o_picture.c
@@ -50,7 +50,7 @@
  *  element before the call.  The function returns the new last
  *  element, that is the added picture object.
  *
- *  \param [in]  w_current       The TOPLEVEL object.
+ *  \param [in]  toplevel       The TOPLEVEL object.
  *  \param [out] object_list     OBJECT list to create picture in.
  *  \param [in]  first_line      Character string with picture description.
  *  \param [in]  tb              Text buffer to load embedded data from.
@@ -58,7 +58,7 @@
  *  \param [in]  fileformat_ver  libgeda file format version number.
  *  \return A pointer to the new picture object.
  */
-OBJECT *o_picture_read(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_picture_read(TOPLEVEL *toplevel, OBJECT *object_list,
 		       const char *first_line,
 		       TextBuffer *tb,
 		       unsigned int release_ver,
@@ -76,7 +76,7 @@ OBJECT *o_picture_read(TOPLEVEL *w_current, OBJECT *object_list,
 
   /* Initialize GDK first if it isn't a graphic app */
   /* i.e: it has no main window */
-  if ( (w_current->main_window == NULL) &&
+  if ( (toplevel->main_window == NULL) &&
        (gdk_initialized == 0)) {
     gdk_init(NULL, NULL);
     gdk_initialized = 1;
@@ -209,7 +209,7 @@ OBJECT *o_picture_read(TOPLEVEL *w_current, OBJECT *object_list,
     fprintf(stderr, "Loading warning picture.\n");
     s_log_message ("Loading warning picture.\n");
     
-    temp_filename = g_strconcat(w_current->bitmap_directory, 
+    temp_filename = g_strconcat(toplevel->bitmap_directory,
 			       G_DIR_SEPARATOR_S, "gschem-warning.png", NULL);
     pixbuf = gdk_pixbuf_new_from_file (temp_filename, NULL);
     if (pixbuf == NULL) {
@@ -221,7 +221,7 @@ OBJECT *o_picture_read(TOPLEVEL *w_current, OBJECT *object_list,
   
   /* create and add the picture to the list */
   /* The picture is described by its upper left and lower right corner */
-  object_list = (OBJECT *) o_picture_add(w_current, object_list,
+  object_list = (OBJECT *) o_picture_add(toplevel, object_list,
 					 pixbuf, filename, 
 					 (double) (height/width),
 					 type, 
@@ -330,11 +330,11 @@ char *o_picture_save(OBJECT *object)
  *  \brief
  *  \par Function Description
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] pixbuf
  *  \param [in] filename
  */
-void o_picture_set_pixbuf(TOPLEVEL *w_current,
+void o_picture_set_pixbuf(TOPLEVEL *toplevel,
 			  GdkPixbuf *pixbuf, char *filename)
 {
 
@@ -344,20 +344,20 @@ void o_picture_set_pixbuf(TOPLEVEL *w_current,
     return;
   }
 
-  if (w_current->current_pixbuf != NULL) {
-    g_object_unref(w_current->current_pixbuf);
-    w_current->current_pixbuf=NULL;
+  if (toplevel->current_pixbuf != NULL) {
+    g_object_unref(toplevel->current_pixbuf);
+    toplevel->current_pixbuf=NULL;
   }
 
-  if (w_current->pixbuf_filename != NULL) {
-    g_free(w_current->pixbuf_filename);
-    w_current->pixbuf_filename=NULL;
+  if (toplevel->pixbuf_filename != NULL) {
+    g_free(toplevel->pixbuf_filename);
+    toplevel->pixbuf_filename=NULL;
   }
 
-  w_current->current_pixbuf = pixbuf;
-  w_current->pixbuf_filename = (char *) g_strdup(filename);
+  toplevel->current_pixbuf = pixbuf;
+  toplevel->pixbuf_filename = (char *) g_strdup(filename);
   
-  w_current->pixbuf_wh_ratio = (double) gdk_pixbuf_get_width(pixbuf) / 
+  toplevel->pixbuf_wh_ratio = (double) gdk_pixbuf_get_width(pixbuf) /
                                         gdk_pixbuf_get_height(pixbuf);
 
   /* be sure to free this pixbuf somewhere */
@@ -380,7 +380,7 @@ void o_picture_set_pixbuf(TOPLEVEL *w_current,
  *  The object is added to the end of the list described by the
  *  <B>object_list</B> parameter by the #s_basic_link_object().
  *
- *  \param [in]     w_current    The TOPLEVEL object.
+ *  \param [in]     toplevel    The TOPLEVEL object.
  *  \param [in,out] object_list  OBJECT list to add line to.
  *  \param [in]     pixbuf       The GdkPixbuf picture to add.
  *  \param [in]     filename     File name to read picture from.
@@ -395,7 +395,7 @@ void o_picture_set_pixbuf(TOPLEVEL *w_current,
  *  \param [in]     embedded     ???
  *  \return A pointer to the new end of the object list.
  */
-OBJECT *o_picture_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_picture_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		      GdkPixbuf * pixbuf, char *filename, double ratio,
 		      char type, 
 		      int x1, int y1, int x2, int y2, int angle, char mirrored,
@@ -432,24 +432,24 @@ OBJECT *o_picture_add(TOPLEVEL *w_current, OBJECT *object_list,
     fprintf(stderr, "new picture: Couldn't get enough memory for the new picture\n");
   }
   
-  /* Clean w_current variables */
+  /* Clean toplevel variables */
   /* \bug This should be done when canceling the action. */
   /* Pixbuf filename is not freed because we want to
      remember the last directory
   */
   /*
-    if (w_current->current_pixbuf != NULL) {
-      g_object_unref(w_current->current_pixbuf);
+    if (toplevel->current_pixbuf != NULL) {
+      g_object_unref(toplevel->current_pixbuf);
     }
-    w_current->current_pixbuf = NULL;
-    w_current->pixbuf_wh_ratio = 0;
+    toplevel->current_pixbuf = NULL;
+    toplevel->pixbuf_wh_ratio = 0;
   */
 
   new_node->draw_func = picture_draw_func; 
   new_node->sel_func  = select_func;  
 
   /* compute the bounding picture */
-  o_picture_recalc(w_current, new_node);
+  o_picture_recalc(toplevel, new_node);
   
   /* add the object to the list */
   object_list = (OBJECT *) s_basic_link_object(new_node, object_list);
@@ -462,10 +462,10 @@ OBJECT *o_picture_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  This function recalculates the bounding box of the <B>o_current</B>
  *  parameter picture object.
  *
- *  \param [in] w_current      The TOPLEVEL object.
+ *  \param [in] toplevel      The TOPLEVEL object.
  *  \param [in,out] o_current  Picture OBJECT to be recalculated.
  */
-void o_picture_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_picture_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, top, right, bottom;
 
@@ -474,7 +474,7 @@ void o_picture_recalc(TOPLEVEL *w_current, OBJECT *o_current)
   }
 
   /* update the bounding picture - world units */
-  world_get_picture_bounds(w_current, o_current,
+  world_get_picture_bounds(toplevel, o_current,
 		     &left, &top, &right, &bottom);
   o_current->w_left   = left;
   o_current->w_top    = top;
@@ -489,14 +489,14 @@ void o_picture_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  <B>bottom</B> parameters to the boundings of the picture object
  *  described in <B>*picture</B> in WORLD units.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [in]  object     Picture OBJECT to read coordinates from.
  *  \param [out] left       Left picture coordinate in WORLD units.
  *  \param [out] top        Top picture coordinate in WORLD units.
  *  \param [out] right      Right picture coordinate in WORLD units.
  *  \param [out] bottom     Bottom picture coordinate in WORLD units.
  */
-void world_get_picture_bounds(TOPLEVEL *w_current, OBJECT *object,
+void world_get_picture_bounds(TOPLEVEL *toplevel, OBJECT *object,
                               int *left, int *top, int *right, int *bottom)
 {
   *left   = min(object->picture->upper_x, object->picture->lower_x);
@@ -515,7 +515,7 @@ void world_get_picture_bounds(TOPLEVEL *w_current, OBJECT *object,
  *  The coordinates of the corner is modified in the world coordinate system.
  *  Screen coordinates and boundings are then updated.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in,out] object     Picture OBJECT to modify.
  *  \param [in]     x          New x coordinate.
  *  \param [in]     y          New y coordinate.
@@ -532,7 +532,7 @@ void world_get_picture_bounds(TOPLEVEL *w_current, OBJECT *object,
  *  \par Author's note
  *  pb20011002 - rewritten : old one did not used x, y and whichone
  */
-void o_picture_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_picture_modify(TOPLEVEL *toplevel, OBJECT *object,
 		      int x, int y, int whichone)
 {
   int tmp;
@@ -597,7 +597,7 @@ void o_picture_modify(TOPLEVEL *w_current, OBJECT *object,
   }
 	
   /* recalculate the screen coords and the boundings */
-  o_picture_recalc(w_current, object);
+  o_picture_recalc(toplevel, object);
 }
 
 /*! \brief Rotate picture OBJECT using WORLD coordinates.
@@ -607,7 +607,7 @@ void o_picture_modify(TOPLEVEL *w_current, OBJECT *object,
  *  degrees.
  *  The center of rotation is in world units.
  *
- *  \param [in]      w_current      The TOPLEVEL object.
+ *  \param [in]      toplevel      The TOPLEVEL object.
  *  \param [in]      world_centerx  Rotation center x coordinate in
  *                                  WORLD units.
  *  \param [in]      world_centery  Rotation center y coordinate in
@@ -615,7 +615,7 @@ void o_picture_modify(TOPLEVEL *w_current, OBJECT *object,
  *  \param [in]      angle          Rotation angle in degrees (See note below).
  *  \param [in,out]  object         Picture OBJECT to rotate.
  */
-void o_picture_rotate_world(TOPLEVEL *w_current, 
+void o_picture_rotate_world(TOPLEVEL *toplevel,
 			    int world_centerx, int world_centery, int angle,
 			    OBJECT *object)
 {
@@ -662,7 +662,7 @@ void o_picture_rotate_world(TOPLEVEL *w_current,
   object->picture->lower_y += world_centery;
   
   /* recalc boundings and screen coords */
-  o_picture_recalc(w_current, object);
+  o_picture_recalc(toplevel, object);
 	
 }
 
@@ -674,12 +674,12 @@ void o_picture_rotate_world(TOPLEVEL *w_current,
  *  The picture is first translated to the origin, then mirrored and
  *  finally translated back at its previous position.
  *
- *  \param [in]     w_current      The TOPLEVEL object.
+ *  \param [in]     toplevel      The TOPLEVEL object.
  *  \param [in]     world_centerx  Origin x coordinate in WORLD units.
  *  \param [in]     world_centery  Origin y coordinate in WORLD units.
  *  \param [in,out] object         Picture OBJECT to mirror.
  */
-void o_picture_mirror_world(TOPLEVEL *w_current,
+void o_picture_mirror_world(TOPLEVEL *toplevel,
 			    int world_centerx, int world_centery,
 			    OBJECT *object)
 {
@@ -715,7 +715,7 @@ void o_picture_mirror_world(TOPLEVEL *w_current,
   object->picture->lower_y += world_centery;
 
   /* recalc boundings and screen coords */
-  o_picture_recalc(w_current, object);
+  o_picture_recalc(toplevel, object);
   
 }
 
@@ -724,12 +724,12 @@ void o_picture_mirror_world(TOPLEVEL *w_current,
  *  This function applies a translation of (<B>x1</B>,<B>y1</B>) to the picture
  *  described by <B>*object</B>. <B>x1</B> and <B>y1</B> are in world units.
  *
- *  \param [in]     w_current  The TOPLEVEL object.
+ *  \param [in]     toplevel  The TOPLEVEL object.
  *  \param [in]     x1         x distance to move.
  *  \param [in]     y1         y distance to move.
  *  \param [in,out] object     Picture OBJECT to translate.
  */
-void o_picture_translate_world(TOPLEVEL *w_current,
+void o_picture_translate_world(TOPLEVEL *toplevel,
 			       int x1, int y1, OBJECT *object)
 {
   if (object == NULL) printf("btw NO!\n");
@@ -741,7 +741,7 @@ void o_picture_translate_world(TOPLEVEL *w_current,
   object->picture->lower_y = object->picture->lower_y + y1;     
   
   /* recalc the screen coords and the bounding picture */
-  o_picture_recalc(w_current, object);
+  o_picture_recalc(toplevel, object);
 }
 
 /*! \brief Create a copy of a picture.
@@ -750,12 +750,12 @@ void o_picture_translate_world(TOPLEVEL *w_current,
  *  <B>o_current</B> describing a picture. The new object is added at the
  *  end of the list, following the <B>list_tail</B> pointed object.
  *
- *  \param [in]  w_current  The TOPLEVEL object.
+ *  \param [in]  toplevel  The TOPLEVEL object.
  *  \param [out] list_tail  OBJECT list to copy to.
  *  \param [in]  o_current  Picture OBJECT to copy.
  *  \return A new pointer to the end of the object list.
  */
-OBJECT *o_picture_copy(TOPLEVEL *w_current, OBJECT *list_tail,
+OBJECT *o_picture_copy(TOPLEVEL *toplevel, OBJECT *list_tail,
 		       OBJECT *o_current)
 {
   OBJECT *new_obj;
@@ -774,10 +774,10 @@ OBJECT *o_picture_copy(TOPLEVEL *w_current, OBJECT *list_tail,
    */
 
   /* create and link a new picture object */	
-  new_obj = o_picture_add(w_current, list_tail,
-			  w_current->current_pixbuf, 
-			  w_current->pixbuf_filename, 
-			  w_current->pixbuf_wh_ratio,
+  new_obj = o_picture_add(toplevel, list_tail,
+			  toplevel->current_pixbuf,
+			  toplevel->pixbuf_filename,
+			  toplevel->pixbuf_wh_ratio,
 			  OBJ_PICTURE,
 			  0, 0, 0, 0, 0, FALSE, FALSE);
 
@@ -813,7 +813,7 @@ OBJECT *o_picture_copy(TOPLEVEL *w_current, OBJECT *list_tail,
   new_obj->picture->angle = o_current->picture->angle;
   new_obj->picture->mirrored = o_current->picture->mirrored;
   
-  o_picture_recalc(w_current, new_obj);
+  o_picture_recalc(toplevel, new_obj);
   
   /* new_obj->attribute = 0;*/
   a_current = o_current->attribs;
@@ -917,13 +917,13 @@ guint8 *o_picture_mask_data(GdkPixbuf *image)
  *
  *  All dimensions are in mils.
  *  
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] fp         FILE pointer to Postscript document.
  *  \param [in] o_current  Picture OBJECT to write to document.
  *  \param [in] origin_x   Page x coordinate to place picture OBJECT.
  *  \param [in] origin_y   Page y coordinate to place picture OBJECT.
  */
-void o_picture_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_picture_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		     int origin_x, int origin_y)
 {
   int x1, y1, x, y;
diff --git a/libgeda/src/o_pin_basic.c b/libgeda/src/o_pin_basic.c
index 64c8278..a5e9a43 100644
--- a/libgeda/src/o_pin_basic.c
+++ b/libgeda/src/o_pin_basic.c
@@ -43,10 +43,10 @@
  *  \par Function Description
  *
  */
-void world_get_pin_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *top,
+void world_get_pin_bounds(TOPLEVEL *toplevel, OBJECT *object, int *left, int *top,
 			  int *right, int *bottom)
 {
-  world_get_line_bounds( w_current, object, left, top, right, bottom );
+  world_get_line_bounds( toplevel, object, left, top, right, bottom );
 }
 
 /*! \todo Finish function documentation!!!
@@ -54,7 +54,7 @@ void world_get_pin_bounds(TOPLEVEL *w_current, OBJECT *object, int *left, int *t
  *  \par Function Description
  *
  */
-OBJECT *o_pin_add(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_pin_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		  char type, int color,
 		  int x1, int y1, int x2, int y2, int pin_type, int whichend)
 {
@@ -73,7 +73,7 @@ OBJECT *o_pin_add(TOPLEVEL *w_current, OBJECT *object_list,
   new_node->line->y[1] = y2;
   new_node->line_width = PIN_WIDTH;
 
-  world_get_pin_bounds(w_current, new_node, &left, &top, &right, &bottom);
+  world_get_pin_bounds(toplevel, new_node, &left, &top, &right, &bottom);
 	
   new_node->w_left = left;
   new_node->w_top = top;
@@ -97,17 +97,17 @@ OBJECT *o_pin_add(TOPLEVEL *w_current, OBJECT *object_list,
 #if 0
   /*  ifed out 3/15/98 due to above  */
   if (!adding_sel) {
-    o_pin_conn_recalc(w_current, object_list); /* old conn system */
+    o_pin_conn_recalc(toplevel, object_list); /* old conn system */
     /*o_net_conn_recalc(object_list); */
   }     
 #endif
 
 
-  if (!w_current->ADDING_SEL) {
-    s_tile_add_object(w_current, object_list, 
+  if (!toplevel->ADDING_SEL) {
+    s_tile_add_object(toplevel, object_list,
                       new_node->line->x[0], new_node->line->y[0], 
                       new_node->line->x[1], new_node->line->y[1]);
-    s_conn_update_object(w_current, object_list);
+    s_conn_update_object(toplevel, object_list);
   }
 
   return(object_list);
@@ -118,7 +118,7 @@ OBJECT *o_pin_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  \par Function Description
  *
  */
-void o_pin_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_pin_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
@@ -126,7 +126,7 @@ void o_pin_recalc(TOPLEVEL *w_current, OBJECT *o_current)
     return;
   }
 
-  world_get_pin_bounds(w_current, o_current, &left, &top, &right, &bottom);
+  world_get_pin_bounds(toplevel, o_current, &left, &top, &right, &bottom);
 
   o_current->w_left = left;
   o_current->w_top = top;
@@ -140,7 +140,7 @@ void o_pin_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  \par Function Description
  *
  */
-OBJECT *o_pin_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
+OBJECT *o_pin_read(TOPLEVEL *toplevel, OBJECT *object_list, char buf[],
 		   unsigned int release_ver, unsigned int fileformat_ver)
 {
   char type; 
@@ -191,11 +191,11 @@ OBJECT *o_pin_read(TOPLEVEL *w_current, OBJECT *object_list, char buf[],
     color = WHITE;
   }
 
-  if (w_current->override_pin_color != -1) {
-    color = w_current->override_pin_color;
+  if (toplevel->override_pin_color != -1) {
+    color = toplevel->override_pin_color;
   }
 
-  object_list = o_pin_add(w_current, object_list, type, color, d_x1, d_y1,
+  object_list = o_pin_add(toplevel, object_list, type, color, d_x1, d_y1,
                           d_x2, d_y2, pin_type, whichend);
   return(object_list);
 }
@@ -237,7 +237,7 @@ char *o_pin_save(OBJECT *object)
  *  \par Function Description
  *
  */
-void o_pin_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
+void o_pin_translate_world(TOPLEVEL *toplevel, int x1, int y1, OBJECT *object)
 {
   int left, right, top, bottom;
 
@@ -251,14 +251,14 @@ void o_pin_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
   object->line->y[1] = object->line->y[1] + y1;
 
   /* Update bounding box */
-  world_get_pin_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_pin_bounds(toplevel, object, &left, &top, &right, &bottom);
 
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -266,7 +266,7 @@ void o_pin_translate_world(TOPLEVEL *w_current, int x1, int y1, OBJECT *object)
  *  \par Function Description
  *
  */
-OBJECT *o_pin_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
+OBJECT *o_pin_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current)
 {
   OBJECT *new_obj;
   ATTRIB *a_current;
@@ -278,7 +278,7 @@ OBJECT *o_pin_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
     color = o_current->saved_color;
   }
 
-  new_obj = o_pin_add(w_current, list_tail, OBJ_PIN, color, 
+  new_obj = o_pin_add(toplevel, list_tail, OBJ_PIN, color,
                       o_current->line->x[0], o_current->line->y[0],
                       o_current->line->x[1], o_current->line->y[1],
                       o_current->pin_type, o_current->whichend);
@@ -309,7 +309,7 @@ OBJECT *o_pin_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
  *  \par Function Description
  *
  */
-void o_pin_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_pin_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		 int origin_x, int origin_y)
 {
   int pin_width;
@@ -321,7 +321,7 @@ void o_pin_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     return;
   }
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, o_current->color);
   }
 
@@ -330,7 +330,7 @@ void o_pin_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
   x2 = o_current->line->x[1] - origin_x;
   y2 = o_current->line->y[1] - origin_y;
   pin_width = 2;
-  if(w_current->pin_style == THICK) {
+  if(toplevel->pin_style == THICK) {
     pin_width = PIN_WIDTH;
   }
 
@@ -343,7 +343,7 @@ void o_pin_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *  \par Function Description
  *
  */
-void o_pin_rotate_world(TOPLEVEL *w_current, int world_centerx, 
+void o_pin_rotate_world(TOPLEVEL *toplevel, int world_centerx,
 			int world_centery, int angle,
 			OBJECT *object)
 {
@@ -353,7 +353,7 @@ void o_pin_rotate_world(TOPLEVEL *w_current, int world_centerx,
   return;
 
   /* translate object to origin */
-  o_pin_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_pin_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   rotate_point_90(object->line->x[0], object->line->y[0], angle,
                   &newx, &newy);
@@ -367,7 +367,7 @@ void o_pin_rotate_world(TOPLEVEL *w_current, int world_centerx,
   object->line->x[1] = newx;
   object->line->y[1] = newy;
 
-  o_pin_translate_world(w_current, world_centerx, world_centery, object);
+  o_pin_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -375,17 +375,17 @@ void o_pin_rotate_world(TOPLEVEL *w_current, int world_centerx,
  *  \par Function Description
  *
  */
-void o_pin_mirror_world(TOPLEVEL *w_current,
+void o_pin_mirror_world(TOPLEVEL *toplevel,
 			int world_centerx, int world_centery, OBJECT *object)
 {
   /* translate object to origin */
-  o_pin_translate_world(w_current, -world_centerx, -world_centery, object);
+  o_pin_translate_world(toplevel, -world_centerx, -world_centery, object);
 
   object->line->x[0] = -object->line->x[0];
 
   object->line->x[1] = -object->line->x[1];
 
-  o_pin_translate_world(w_current, world_centerx, world_centery, object);
+  o_pin_translate_world(toplevel, world_centerx, world_centery, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -393,7 +393,7 @@ void o_pin_mirror_world(TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-void o_pin_modify(TOPLEVEL *w_current, OBJECT *object, 
+void o_pin_modify(TOPLEVEL *toplevel, OBJECT *object,
 		  int x, int y, int whichone)
 {
   int left, right, top, bottom;
@@ -401,14 +401,14 @@ void o_pin_modify(TOPLEVEL *w_current, OBJECT *object,
   object->line->x[whichone] = x;
   object->line->y[whichone] = y;
 
-  world_get_pin_bounds(w_current, object, &left, &top, &right, &bottom);
+  world_get_pin_bounds(toplevel, object, &left, &top, &right, &bottom);
 	
   object->w_left = left;
   object->w_top = top;
   object->w_right = right;
   object->w_bottom = bottom;	
 
-  s_tile_update_object(w_current, object);
+  s_tile_update_object(toplevel, object);
 }
 
 /*! \todo Finish function documentation!!!
@@ -416,7 +416,7 @@ void o_pin_modify(TOPLEVEL *w_current, OBJECT *object,
  *  \par Function Description
  *
  */
-void o_pin_update_whichend(TOPLEVEL *w_current,
+void o_pin_update_whichend(TOPLEVEL *toplevel,
 			   OBJECT *object_list, int num_pins)
 {
   OBJECT *o_current;
@@ -429,8 +429,8 @@ void o_pin_update_whichend(TOPLEVEL *w_current,
   int found;
 
   if (object_list && num_pins) {
-    if (num_pins == 1 || w_current->force_boundingbox) {
-      world_get_object_list_bounds(w_current, object_list,
+    if (num_pins == 1 || toplevel->force_boundingbox) {
+      world_get_object_list_bounds(toplevel, object_list,
                                    &left, &top, &right, &bottom);
     } else {
       found = 0;
diff --git a/libgeda/src/o_selection.c b/libgeda/src/o_selection.c
index ee7f59d..25fd075 100644
--- a/libgeda/src/o_selection.c
+++ b/libgeda/src/o_selection.c
@@ -94,16 +94,16 @@ void o_selection_remove(SELECTION *selection, OBJECT *o_selected )
 /*! \brief Unselects all the objects in the given list.
  *  \par Unselects all objects in the given list, does the 
  *  needed work to make the objects visually unselected, and redraw them.
- *  \param [in] w_current TOPLEVEL struct.
+ *  \param [in] toplevel TOPLEVEL struct.
  *  \param [in] head Pointer to the selection list
  */
-void o_selection_unselect_list(TOPLEVEL *w_current, SELECTION *selection)
+void o_selection_unselect_list(TOPLEVEL *toplevel, SELECTION *selection)
 {
   const GList *list = geda_list_get_glist( selection );
 
   while ( list != NULL ) {
     o_selection_unselect( (OBJECT *)list->data );
-    o_redraw_single( w_current, (OBJECT *)list->data );
+    o_redraw_single( toplevel, (OBJECT *)list->data );
    list = g_list_next( list );
   }
 
diff --git a/libgeda/src/o_text_basic.c b/libgeda/src/o_text_basic.c
index c98ad83..268357f 100644
--- a/libgeda/src/o_text_basic.c
+++ b/libgeda/src/o_text_basic.c
@@ -67,10 +67,10 @@ int tab_in_chars = 8;
  *  \par Function Description
  *
  */
-int world_get_text_bounds(TOPLEVEL *w_current, OBJECT *o_current, int *left,
+int world_get_text_bounds(TOPLEVEL *toplevel, OBJECT *o_current, int *left,
                           int *top, int *right, int *bottom)
 {
-  return world_get_object_list_bounds(w_current, o_current->text->prim_objs,
+  return world_get_object_list_bounds(toplevel, o_current->text->prim_objs,
                                       left, top, right, bottom);
 }
 
@@ -151,7 +151,7 @@ void o_text_print_set(void)
  *  \par Function Description
  *
  */
-OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char)
+OBJECT *o_text_load_font(TOPLEVEL *toplevel, gunichar needed_char)
 {
   gchar *temp_string = NULL;
   OBJECT *temp_parent, *o_font_set;
@@ -169,11 +169,11 @@ OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char)
        */
       if (needed_char >= 'a' && needed_char <= 'z') {
         temp_string = g_strdup_printf("%s%c%c_.sym", 
-                w_current->font_directory, G_DIR_SEPARATOR,
+                toplevel->font_directory, G_DIR_SEPARATOR,
                 needed_char);
       } else {
         temp_string = g_strdup_printf("%s%c%c.sym", 
-                w_current->font_directory, G_DIR_SEPARATOR,
+                toplevel->font_directory, G_DIR_SEPARATOR,
                 needed_char);
       }
   } else {
@@ -191,7 +191,7 @@ OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char)
     s_log_message("Could not find character '%s' definition.\n", outbuf);
     
     g_free (temp_string);
-    temp_string = g_strdup_printf("%s%cquest.sym", w_current->font_directory, G_DIR_SEPARATOR);
+    temp_string = g_strdup_printf("%s%cquest.sym", toplevel->font_directory, G_DIR_SEPARATOR);
     if ( access(temp_string, R_OK) != 0 ) {
       fprintf(stderr, "Could not load question font char -- check font-directory keyword\n");
       exit(-1);
@@ -222,7 +222,7 @@ OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char)
     aux_obj = g_hash_table_lookup (font_loaded,
                                    GUINT_TO_POINTER ((gunichar)'?'));
     if (aux_obj == NULL) {
-      o_text_load_font(w_current, (gunichar) '?');
+      o_text_load_font(toplevel, (gunichar) '?');
       aux_obj = g_hash_table_lookup (font_loaded,
                                      GUINT_TO_POINTER ((gunichar)'?'));
     }
@@ -231,13 +231,13 @@ OBJECT *o_text_load_font(TOPLEVEL *w_current, gunichar needed_char)
   }
 	
 
-  temp_parent = w_current->page_current->object_parent;
+  temp_parent = toplevel->page_current->object_parent;
   /* set the addition of attributes to the head node */
-  w_current->page_current->object_parent = o_font_set->font_prim_objs;
+  toplevel->page_current->object_parent = o_font_set->font_prim_objs;
 
-  o_font_set->font_prim_objs = o_read(w_current, o_font_set->font_prim_objs,
+  o_font_set->font_prim_objs = o_read(toplevel, o_font_set->font_prim_objs,
 				      temp_string);
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->page_current->object_parent = temp_parent;
 
   o_font_set->font_prim_objs = return_head(o_font_set->font_prim_objs);
 
@@ -306,7 +306,7 @@ int o_text_height(char *string, int size)
  */
 /* You need to divide the size in half here. */
 /*! \todo FIXME consistancy. */
-int o_text_width(TOPLEVEL *w_current, char *string, int size) 
+int o_text_width(TOPLEVEL *toplevel, char *string, int size)
 {
   int width=0, max_width=0;
   int size_of_tab_in_coord;
@@ -323,7 +323,7 @@ int o_text_width(TOPLEVEL *w_current, char *string, int size)
   o_font_set = g_hash_table_lookup (
     font_loaded, GUINT_TO_POINTER ((gunichar)TAB_CHAR_MODEL[0]));
   if (o_font_set == NULL) {
-    o_text_load_font(w_current, (gunichar) TAB_CHAR_MODEL[0]);
+    o_text_load_font(toplevel, (gunichar) TAB_CHAR_MODEL[0]);
     o_font_set = (OBJECT *) g_hash_table_lookup (
       font_loaded, GUINT_TO_POINTER ((gunichar)TAB_CHAR_MODEL[0]));
   }
@@ -358,7 +358,7 @@ int o_text_width(TOPLEVEL *w_current, char *string, int size)
           o_font_set = g_hash_table_lookup (font_loaded,
                                             GUINT_TO_POINTER (c));
           if (o_font_set == NULL) {
-            o_text_load_font (w_current, (gunichar)c);
+            o_text_load_font (toplevel, (gunichar)c);
             /* let do a new search for character c */
             o_font_set = g_hash_table_lookup (font_loaded,
                                               GUINT_TO_POINTER (c));
@@ -386,7 +386,7 @@ int o_text_width(TOPLEVEL *w_current, char *string, int size)
  *  \par Function Description
  *
  */
-OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list, 
+OBJECT *o_text_create_string(TOPLEVEL *toplevel, OBJECT *object_list,
 			     char *string, int size, int color, int x, int y,
 			     int alignment, int angle)
 {
@@ -420,11 +420,11 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
   }
 	
   /* now read in the chars */
-  temp_tail = w_current->page_current->object_tail;
+  temp_tail = toplevel->page_current->object_tail;
 
   text_height = o_text_height(string, size); 
   char_height = o_text_height("a", size);
-  text_width = o_text_width(w_current, string, size/2);
+  text_width = o_text_width(toplevel, string, size/2);
 
   switch(angle) {
     case(0):
@@ -573,7 +573,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
   }
 
 #if DEBUG
-  printf("width: %d\n", o_text_width(w_current, string, size/2));
+  printf("width: %d\n", o_text_width(toplevel, string, size/2));
   printf("1 %d %d\n", x_offset, y_offset);
 #endif
 
@@ -593,13 +593,13 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
     /*   - end the string */
     aux_string[l] = '\0';
     /*   - finally get the width of the previous character */
-    last_char_width = o_text_width(w_current, aux_string, size/2);
+    last_char_width = o_text_width(toplevel, aux_string, size/2);
 
     c = g_utf8_get_char_validated (ptr, -1);
 
     o_font_set = g_hash_table_lookup (font_loaded, GUINT_TO_POINTER (c));
     if (o_font_set == NULL) {
-      o_text_load_font(w_current, (gunichar) c);
+      o_text_load_font(toplevel, (gunichar) c);
       o_font_set = g_hash_table_lookup (font_loaded, GUINT_TO_POINTER (c));
     }
 
@@ -615,14 +615,14 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
       o_font_set_aux = g_hash_table_lookup (
         font_loaded, GUINT_TO_POINTER ((gunichar)TAB_CHAR_MODEL[0]));
       if (o_font_set_aux == NULL) {
-         o_text_load_font(w_current, (gunichar) TAB_CHAR_MODEL[0]);
+         o_text_load_font(toplevel, (gunichar) TAB_CHAR_MODEL[0]);
          o_font_set_aux = g_hash_table_lookup (
            font_loaded, GUINT_TO_POINTER ((gunichar)TAB_CHAR_MODEL[0]));
        }
     
       /* Get the maximum tab width's in coordinates */
       size_of_tab_in_coord = tab_in_chars * 
-                 o_text_width(w_current, TAB_CHAR_MODEL, size/2);
+                 o_text_width(toplevel, TAB_CHAR_MODEL, size/2);
 
       /* Count escape characters. Notice it includes the current character */
       if (c == '\\') {
@@ -641,7 +641,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
 	if ( ( (c != '\\') &&
 	       (!(previous_char == '\\' && c == '_')) ) ||
 	     (previous_char == '\\' && c == '\\' && (escapes_counter > 1)) ) {
-	  temp_list = o_list_copy_all(w_current, 
+	  temp_list = o_list_copy_all(toplevel,
 				      o_font_set->font_prim_objs->next, 
 				      temp_list, NORMAL_FLAG);
 	  if (start_of_char != NULL)
@@ -650,13 +650,13 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
 	     special character.
 	     This is correct. */ 
 	  o_complex_set_color(start_of_char, color);	
-	  o_scale(w_current, start_of_char, size/2, size/2);
+	  o_scale(toplevel, start_of_char, size/2, size/2);
 	  
 	  /* do this if you want to stack chars */
 	  /* we don't want to do that for now */
 	  /* Rotate and translate the character to its world position */
-	  o_text_rotate_lowlevel(w_current, x, y, angle, start_of_char);
-	  o_complex_world_translate(w_current, 
+	  o_text_rotate_lowlevel(toplevel, x, y, angle, start_of_char);
+	  o_complex_world_translate(toplevel,
 				    x_offset, y_offset, 
 				    start_of_char);
 	  
@@ -738,7 +738,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
 	  /* Now add the overbar (if it is not a zero length overbar) */
 	  if ( (overbar_startx != overbar_endx) ||
 	       (overbar_starty != overbar_endy) ) {
-	    temp_list = o_line_add(w_current, temp_list, OBJ_LINE, color,
+	    temp_list = o_line_add(toplevel, temp_list, OBJ_LINE, color,
 				   overbar_startx, overbar_starty,
 				   overbar_endx, overbar_endy);
 	  }
@@ -856,7 +856,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
 
   /* don't set the head */	
 
-  w_current->page_current->object_tail = temp_tail;
+  toplevel->page_current->object_tail = temp_tail;
 
 #if DEBUG
   printf("2 %d %d\n", x_offset, y_offset);
@@ -871,7 +871,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
  *  Also add the OBJECTs forming the graphical representation of the visible
  *  string, to the text OBJECT's prim_objs list.
  *
- *  \param [in]  w_current              The TOPLEVEL object.
+ *  \param [in]  toplevel              The TOPLEVEL object.
  *  \param [in]  object_list            OBJECT list onto which to add text.
  *  \param [in]  type                   OBJ_TEXT (TODO: why bother)
  *  \param [in]  color                  The color of the text.
@@ -888,7 +888,7 @@ OBJECT *o_text_create_string(TOPLEVEL *w_current, OBJECT *object_list,
  *  \note
  *  Caller is responsible for string; this function allocates its own copy.
  */
-OBJECT *o_text_add(TOPLEVEL *w_current, OBJECT *object_list, 
+OBJECT *o_text_add(TOPLEVEL *toplevel, OBJECT *object_list,
 		   char type, int color, int x, int y, int alignment,
 		   int angle, char *string, int size, 
 		   int visibility, int show_name_value)
@@ -976,30 +976,30 @@ OBJECT *o_text_add(TOPLEVEL *w_current, OBJECT *object_list,
   /* now start working on the complex */
   temp_list = o_text_add_head();
 
-  temp_parent = w_current->page_current->object_parent;
+  temp_parent = toplevel->page_current->object_parent;
   /* set the addition of attributes to the head node */
-  w_current->page_current->object_parent = temp_list;
+  toplevel->page_current->object_parent = temp_list;
 
   if (visibility == VISIBLE ||
-      (visibility == INVISIBLE && w_current->show_hidden_text)) {
+      (visibility == INVISIBLE && toplevel->show_hidden_text)) {
     object_list->text->prim_objs = 
-      o_text_create_string(w_current, temp_list, 
+      o_text_create_string(toplevel, temp_list,
                            output_string, size, color,
                            x, y, alignment, angle); 
-    object_list->text->displayed_width = o_text_width(w_current,
+    object_list->text->displayed_width = o_text_width(toplevel,
                                                       output_string, size/2);
     object_list->text->displayed_height = o_text_height(output_string, size);
   } else {
     object_list->text->prim_objs = NULL;
     object_list->text->displayed_width = 0;
     object_list->text->displayed_height = 0;
-    s_delete(w_current, temp_list);
+    s_delete(toplevel, temp_list);
   }
 
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->page_current->object_parent = temp_parent;
 
   /* Update bounding box */
-  o_text_recalc( w_current, object_list );
+  o_text_recalc( toplevel, object_list );
 
   if (name) g_free(name);
   if (value) g_free(value);
@@ -1012,15 +1012,15 @@ OBJECT *o_text_add(TOPLEVEL *w_current, OBJECT *object_list,
  *  \par Function Description
  *
  */
-void o_text_recalc(TOPLEVEL *w_current, OBJECT *o_current)
+void o_text_recalc(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   int left, right, top, bottom;
 
-  if (o_current->visibility == INVISIBLE && !w_current->show_hidden_text) {
+  if (o_current->visibility == INVISIBLE && !toplevel->show_hidden_text) {
     return;
   }
 
-  if ( !world_get_text_bounds(w_current, o_current, &left, &top, &right, &bottom) )
+  if ( !world_get_text_bounds(toplevel, o_current, &left, &top, &right, &bottom) )
     return;
 
   o_current->w_left = left;
@@ -1034,7 +1034,7 @@ void o_text_recalc(TOPLEVEL *w_current, OBJECT *o_current)
  *  \par Function Description
  *
  */
-OBJECT *o_text_read(TOPLEVEL *w_current, OBJECT *object_list,
+OBJECT *o_text_read(TOPLEVEL *toplevel, OBJECT *object_list,
 		    const char *first_line,
 		    TextBuffer *tb,
 		    unsigned int release_ver,
@@ -1159,7 +1159,7 @@ OBJECT *o_text_read(TOPLEVEL *w_current, OBJECT *object_list,
     }
   }
   
-  object_list = o_text_add(w_current, object_list, type, color, x, y, 
+  object_list = o_text_add(toplevel, object_list, type, color, x, y,
                            alignment, angle, string, 
                            size, visibility, show_name_value);
   g_free(string);
@@ -1279,7 +1279,7 @@ char *o_text_save(OBJECT *object)
  *  \par Function Description
  *
  */
-void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current)
+void o_text_recreate(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   OBJECT *temp_parent;
   char *name = NULL;
@@ -1322,14 +1322,14 @@ void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current)
     output_string = g_strdup(o_current->text->string);
   }
 
-  o_list_delete_rest(w_current, o_current->text->prim_objs);
+  o_list_delete_rest(toplevel, o_current->text->prim_objs);
 
-  temp_parent = w_current->page_current->object_parent;
+  temp_parent = toplevel->page_current->object_parent;
   /* set the addition of attributes to the head node */
-  w_current->page_current->object_parent = o_current->text->prim_objs;
+  toplevel->page_current->object_parent = o_current->text->prim_objs;
 
   if (o_current->visibility == VISIBLE ||
-      (o_current->visibility == INVISIBLE && w_current->show_hidden_text)) {
+      (o_current->visibility == INVISIBLE && toplevel->show_hidden_text)) {
 
     /* need to create that head node if complex is null */
     if (o_current->text->prim_objs == NULL) {
@@ -1337,7 +1337,7 @@ void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current)
     }
 
     o_current->text->prim_objs = 
-      o_text_create_string(w_current, 
+      o_text_create_string(toplevel,
                            o_current->text->prim_objs, 
                            output_string, 
                            o_current->text->size, 
@@ -1349,22 +1349,22 @@ void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current)
 
     o_complex_set_saved_color_only(o_current->text->prim_objs, 
                                    o_current->saved_color);
-    o_current->text->displayed_width = o_text_width(w_current,
+    o_current->text->displayed_width = o_text_width(toplevel,
                                                     output_string,
                                                     o_current->text->size/2);
     o_current->text->displayed_height = o_text_height(output_string,
                                                       o_current->text->size);
   } else {
     /* make sure list is truely free */
-    s_delete_list_fromstart(w_current, o_current->text->prim_objs);
+    s_delete_list_fromstart(toplevel, o_current->text->prim_objs);
     o_current->text->prim_objs = NULL;
     o_current->text->displayed_width = 0;
     o_current->text->displayed_height = 0;
   }
 
-  o_text_recalc( w_current, o_current );
+  o_text_recalc( toplevel, o_current );
 
-  w_current->page_current->object_parent = temp_parent;
+  toplevel->page_current->object_parent = temp_parent;
   if (name) g_free(name);
   if (value) g_free(value);
   if (output_string) g_free(output_string);
@@ -1375,16 +1375,16 @@ void o_text_recreate(TOPLEVEL *w_current, OBJECT *o_current)
  *  \par Function Description
  *
  */
-void o_text_translate_world(TOPLEVEL *w_current,
+void o_text_translate_world(TOPLEVEL *toplevel,
                             int x1, int y1, OBJECT *o_current)
 {
   o_current->text->x = o_current->text->x + x1;
   o_current->text->y = o_current->text->y + y1;
 
-  o_complex_world_translate(w_current, x1, y1, o_current->text->prim_objs);
+  o_complex_world_translate(toplevel, x1, y1, o_current->text->prim_objs);
 
   /* Update bounding box */
-  o_text_recalc( w_current, o_current );
+  o_text_recalc( toplevel, o_current );
 }
 
 /*! \todo Finish function documentation!!!
@@ -1392,7 +1392,7 @@ void o_text_translate_world(TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-OBJECT *o_text_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
+OBJECT *o_text_copy(TOPLEVEL *toplevel, OBJECT *list_tail, OBJECT *o_current)
 {
   OBJECT *new_obj;
   int color;
@@ -1403,7 +1403,7 @@ OBJECT *o_text_copy(TOPLEVEL *w_current, OBJECT *list_tail, OBJECT *o_current)
     color = o_current->saved_color;
   }
 
-  new_obj = o_text_add(w_current, list_tail, OBJ_TEXT, 
+  new_obj = o_text_add(toplevel, list_tail, OBJ_TEXT,
                        color, 
                        o_current->text->x, o_current->text->y, 
                        o_current->text->alignment, 
@@ -1447,12 +1447,12 @@ static gboolean delete_font_set (gpointer key, gpointer value,
  *  \par Function Description
  *
  */
-void o_text_freeallfonts(TOPLEVEL *w_current)
+void o_text_freeallfonts(TOPLEVEL *toplevel)
 {
   /* destroy the char-to-objects hastable */
   g_hash_table_foreach_remove (font_loaded,
                                delete_font_set,
-                               w_current);
+                               toplevel);
   g_hash_table_destroy (font_loaded);
   font_loaded = NULL;
 
@@ -1601,7 +1601,7 @@ void o_text_print_text_string(FILE *fp, char *string, int unicode_count,
  *  \par Function Description
  *
  */
-void o_text_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current, 
+void o_text_print(TOPLEVEL *toplevel, FILE *fp, OBJECT *o_current,
 		  int origin_x, int origin_y, 
 		  int unicode_count, gunichar *unicode_table)
 {
@@ -1619,7 +1619,7 @@ void o_text_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
     return;
   }
 
-  if (w_current->print_color) {
+  if (toplevel->print_color) {
     f_print_set_color(fp, o_current->color);
   }
 
@@ -1743,7 +1743,7 @@ void o_text_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
   x = o_current->text->x;
   y = o_current->text->y;
   font_size = (((float)(o_current->text->size))
-	       * w_current->postscript_font_scale / 72.0 * 1000.0);
+	       * toplevel->postscript_font_scale / 72.0 * 1000.0);
   fprintf(fp,"] %d %d %d %f text\n",angle,x,y,font_size);
 
   
@@ -1758,24 +1758,24 @@ void o_text_print(TOPLEVEL *w_current, FILE *fp, OBJECT *o_current,
  *
  */
 /* takes world coords as the center point as well as a true angle */
-void o_text_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx,
+void o_text_rotate_lowlevel(TOPLEVEL *toplevel, int world_centerx,
 			    int world_centery, int angle, OBJECT *object)
 {
   OBJECT *o_current=NULL;
 
   /* translate object to origin */
-  /* o_text_translate_world(w_current, -world_centerx, -world_centery, object);*/
+  /* o_text_translate_world(toplevel, -world_centerx, -world_centery, object);*/
 
   /* rotate_point_90(object->text->x, object->text->y, &newx, &newy);*/
 	
-  /* o_text_translate_world(w_current, world_centerx, world_centery, object);*/
+  /* o_text_translate_world(toplevel, world_centerx, world_centery, object);*/
 	
   o_current = object;
 
   while ( o_current != NULL ) {
     switch(o_current->type) {
       case(OBJ_LINE):
-        o_line_rotate_world(w_current, 0, 0, angle, o_current);
+        o_line_rotate_world(toplevel, 0, 0, angle, o_current);
         break;
     }
     o_current=o_current->next;
@@ -1787,7 +1787,7 @@ void o_text_rotate_lowlevel(TOPLEVEL *w_current, int world_centerx,
  *  \par Function Description
  *
  */
-void o_text_rotate_world(TOPLEVEL *w_current,
+void o_text_rotate_world(TOPLEVEL *toplevel,
 			 int world_centerx, int world_centery,
 			 int angle, int angle_change, OBJECT *object)
 {
@@ -1814,9 +1814,9 @@ void o_text_rotate_world(TOPLEVEL *w_current,
   x = newx + (world_centerx);
   y = newy + (world_centery);
 	
-  o_text_translate_world(w_current, x-object->text->x, y-object->text->y, object);
+  o_text_translate_world(toplevel, x-object->text->x, y-object->text->y, object);
 
-  o_text_recreate(w_current, object);
+  o_text_recreate(toplevel, object);
 }
 
 #if 0 /* code which is no longer needed, replaced by new functions below */
@@ -1825,7 +1825,7 @@ void o_text_rotate_world(TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
+void o_text_mirror_old(TOPLEVEL *toplevel, int centerx, int centery,
 		       OBJECT *object)
 {
   int newx=0, newy=0;
@@ -1838,7 +1838,7 @@ void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
   int height_mod=0;
   int sign=1;
 	
-  SCREENtoWORLD(w_current, centerx, centery,
+  SCREENtoWORLD(toplevel, centerx, centery,
                 &world_centerx,
                 &world_centery);
 
@@ -1982,7 +1982,7 @@ void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
   switch (object->text->angle) {
 
     case(0): 
-    newx = -(x + sign*o_text_width(w_current, 
+    newx = -(x + sign*o_text_width(toplevel,
                                    output_string, 
                                    object->text->size/2)); 
     break;
@@ -1994,7 +1994,7 @@ void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
     break;
 
     case(180):
-    newx = -(x - sign*o_text_width(w_current,
+    newx = -(x - sign*o_text_width(toplevel,
                                    output_string, 
                                    object->text->size/2)); 
     break;
@@ -2019,9 +2019,9 @@ void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
   y = newy + (world_centery);
 	
   /* don't know if this is needed? */	
-  o_text_translate_world(w_current, x-object->text->x, y-object->text->y, object);
+  o_text_translate_world(toplevel, x-object->text->x, y-object->text->y, object);
 
-  o_text_recreate(w_current, object);
+  o_text_recreate(toplevel, object);
   if (output_string) g_free(output_string);
   if (name) g_free(name);
   if (value) g_free(value);
@@ -2032,7 +2032,7 @@ void o_text_mirror_old(TOPLEVEL *w_current, int centerx, int centery,
  *  \par Function Description
  *
  */
-void o_text_mirror_world_old(TOPLEVEL *w_current, int world_centerx,
+void o_text_mirror_world_old(TOPLEVEL *toplevel, int world_centerx,
 			     int world_centery, OBJECT *object)
 {
   int newx=0, newy=0;
@@ -2186,7 +2186,7 @@ void o_text_mirror_world_old(TOPLEVEL *w_current, int world_centerx,
   switch (object->text->angle) {
 
     case(0): 
-    newx = -(x + sign*o_text_width(w_current, 
+    newx = -(x + sign*o_text_width(toplevel,
                                    output_string, 
                                    object->text->size/2)); 
 
@@ -2198,7 +2198,7 @@ void o_text_mirror_world_old(TOPLEVEL *w_current, int world_centerx,
     break;
 
     case(180):
-    newx = -(x - sign*o_text_width(w_current, 
+    newx = -(x - sign*o_text_width(toplevel,
                                    output_string, 
                                    object->text->size/2)); 
     break;
@@ -2224,8 +2224,8 @@ void o_text_mirror_world_old(TOPLEVEL *w_current, int world_centerx,
   object->text->y = y;
 
   /* don't know if this is needed ?*/	
-  /* o_text_translate_world(w_current, x-object->text->x, y-object->text->y, object);*/
-  o_text_recreate(w_current, object);
+  /* o_text_translate_world(toplevel, x-object->text->x, y-object->text->y, object);*/
+  o_text_recreate(toplevel, object);
   if (output_string) g_free(output_string);
   if (name) g_free(name);
   if (value) g_free(value);
@@ -2238,7 +2238,7 @@ void o_text_mirror_world_old(TOPLEVEL *w_current, int world_centerx,
  *  \par Function Description
  *
  */
-void o_text_return_center(TOPLEVEL *w_current, OBJECT *o_current,
+void o_text_return_center(TOPLEVEL *toplevel, OBJECT *o_current,
 			  int *centerx, int *centery)
 {
   int text_height; 
@@ -2248,7 +2248,7 @@ void o_text_return_center(TOPLEVEL *w_current, OBJECT *o_current,
 			      o_current->text->size);
 
   /* this will NOT NOT NOT work with attributes */
-  text_width = o_text_width(w_current, o_current->text->string, 
+  text_width = o_text_width(toplevel, o_current->text->string,
                             o_current->text->size/2); 
 	
   switch(o_current->text->angle) {
@@ -2280,7 +2280,7 @@ void o_text_return_center(TOPLEVEL *w_current, OBJECT *o_current,
  *
  */
 /* the complex here is the complex of a complex object */
-void o_text_change_angle(TOPLEVEL *w_current, OBJECT *prim_objs, int new_angle)
+void o_text_change_angle(TOPLEVEL *toplevel, OBJECT *prim_objs, int new_angle)
 {
   OBJECT *o_current;
   int centerx, centery;
@@ -2292,35 +2292,35 @@ void o_text_change_angle(TOPLEVEL *w_current, OBJECT *prim_objs, int new_angle)
       o_current->text->angle = new_angle;
 
       /* change world to non */
-      o_text_return_center(w_current, o_current, &centerx, &centery);
+      o_text_return_center(toplevel, o_current, &centerx, &centery);
 
-      o_text_translate_world(w_current, 
+      o_text_translate_world(toplevel,
                              -centerx, -centery, o_current);
 
-      o_text_mirror_world(w_current, 0, 0, 
+      o_text_mirror_world(toplevel, 0, 0,
                           o_current);
       /* 
-         o_text_rotate_world(w_current, 0, 0, 
+         o_text_rotate_world(toplevel, 0, 0,
          new_angle, 180, o_current);
       */
 
-      /*			o_text_rotate_world(w_current, 0, 0, new_angle, 
+      /*			o_text_rotate_world(toplevel, 0, 0, new_angle,
                                 180, o_current)*/
 
-      o_text_translate_world(w_current, 
+      o_text_translate_world(toplevel,
                              centerx, centery, o_current);
 
-      /* 			o_text_rotate_lowlevel(w_current, 
+      /* 			o_text_rotate_lowlevel(toplevel,
 				0, 0, new_angle, 180, o_current->text->prim_objs);*/
 
 #if 0
-      w_current->override_color =
-        w_current->background_color;
-      o_text_draw(w_current, o_current);
-      w_current->override_color = -1;
+      toplevel->override_color =
+        toplevel->background_color;
+      o_text_draw(toplevel, o_current);
+      toplevel->override_color = -1;
 #endif
 
-      o_text_recreate(w_current, o_current);
+      o_text_recreate(toplevel, o_current);
     }
     o_current = o_current->next;
   }
@@ -2332,7 +2332,7 @@ void o_text_change_angle(TOPLEVEL *w_current, OBJECT *prim_objs, int new_angle)
  *  \par Function Description
  *
  */
-void o_text_mirror_world(TOPLEVEL *w_current,
+void o_text_mirror_world(TOPLEVEL *toplevel,
 			 int world_centerx, int world_centery,
 			 OBJECT *object)
 {
@@ -2408,6 +2408,6 @@ void o_text_mirror_world(TOPLEVEL *w_current,
   object->text->x = -x + (world_centerx);
   object->text->y =  y + (world_centery);
 	
-  o_text_recreate(w_current, object);
+  o_text_recreate(toplevel, object);
 }
 
diff --git a/libgeda/src/s_basic.c b/libgeda/src/s_basic.c
index bb5971c..7f4c35c 100644
--- a/libgeda/src/s_basic.c
+++ b/libgeda/src/s_basic.c
@@ -357,10 +357,10 @@ void print_struct(OBJECT *ptr)
  *
  */
 void
-s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
+s_delete_object(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   if (o_current != NULL) {
-    s_conn_remove(w_current, o_current);
+    s_conn_remove(toplevel, o_current);
 	
     /* second half of if is odd that we need it? hack */
     /* need to do this early so we can do the printfs */
@@ -375,8 +375,8 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
       o_attrib_delete(o_current->attached_to);
     }
 
-    if (w_current->page_current->object_lastplace == o_current) {
-      w_current->page_current->object_lastplace = NULL; 
+    if (toplevel->page_current->object_lastplace == o_current) {
+      toplevel->page_current->object_lastplace = NULL;
     }
 
     if (o_current->line) {
@@ -384,8 +384,8 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
       g_free(o_current->line);
 
       /* yes this object might be in the tile system */
-      s_tile_remove_object_all(w_current,
-                               w_current->page_current,
+      s_tile_remove_object_all(toplevel,
+                               toplevel->page_current,
                                o_current);
     }
     o_current->line = NULL;
@@ -431,7 +431,7 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
 
       if (o_current->text->prim_objs) {
 				/*printf("sdeleting text complex\n");*/
-        s_delete_list_fromstart(w_current, 
+        s_delete_list_fromstart(toplevel,
                                 o_current->text->prim_objs);
       }
       o_current->text->prim_objs = NULL;
@@ -458,7 +458,7 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
 
       if (o_current->complex->prim_objs) {
         /* printf("sdeleting complex->primitive_objects\n");*/
-        s_delete_list_fromstart(w_current, 
+        s_delete_list_fromstart(toplevel,
                                 o_current->complex->prim_objs);
       }
       o_current->complex->prim_objs = NULL;
@@ -468,7 +468,7 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
     }
 
     if (o_current->attribs) {
-      o_attrib_free_all(w_current, o_current->attribs);
+      o_attrib_free_all(toplevel, o_current->attribs);
     }
     o_current->attribs = NULL;
 
@@ -485,7 +485,7 @@ s_delete_object(TOPLEVEL *w_current, OBJECT *o_current)
  *
  */
 void
-s_delete(TOPLEVEL *w_current, OBJECT *o_current)
+s_delete(TOPLEVEL *toplevel, OBJECT *o_current)
 {
   if (o_current != NULL) {
 
@@ -505,7 +505,7 @@ s_delete(TOPLEVEL *w_current, OBJECT *o_current)
     else
     o_current->prev = NULL;
     
-    s_delete_object(w_current, o_current);
+    s_delete_object(toplevel, o_current);
   }
 }
 
@@ -515,7 +515,7 @@ s_delete(TOPLEVEL *w_current, OBJECT *o_current)
  *
  */
 /* deletes everything include the head */
-void s_delete_list_fromstart(TOPLEVEL *w_current, OBJECT *start)
+void s_delete_list_fromstart(TOPLEVEL *toplevel, OBJECT *start)
 {
   OBJECT *temp=NULL; /* literally is a temp */
   OBJECT *current=NULL; /* ugg... you have both o_current and current? */
@@ -528,14 +528,14 @@ void s_delete_list_fromstart(TOPLEVEL *w_current, OBJECT *start)
   /*while(current != NULL && current->type != OBJ_HEAD ) {*/
   while(current != NULL) {
     o_current = current->prev;
-    s_delete(w_current, current);
+    s_delete(toplevel, current);
     current = o_current;
   }
 
   /* now delete the head node */
   /* might not need this but what the hell */
   /* no longer needed, since it's deleted above */
-  /*s_delete_head(w_current, start);*/
+  /*s_delete_head(toplevel, start);*/
 }
 
 #if 0 /* old way of doing this */
@@ -567,7 +567,7 @@ void s_delete_list_fromstart(OBJECT *start)
  */
 /* deletes everything include the GList */
 void
-s_delete_object_glist(TOPLEVEL *w_current, GList *list)
+s_delete_object_glist(TOPLEVEL *toplevel, GList *list)
 {
   OBJECT *o_current=NULL;
   GList *ptr;
@@ -577,7 +577,7 @@ s_delete_object_glist(TOPLEVEL *w_current, GList *list)
   /* do the delete backwards */
   while(ptr != NULL) {
     o_current = (OBJECT *) ptr->data;
-    s_delete_object(w_current, o_current);
+    s_delete_object(toplevel, o_current);
     ptr = ptr->prev;
   }
   g_list_free(list);
@@ -596,11 +596,11 @@ s_delete_object_glist(TOPLEVEL *w_current, GList *list)
  *  list it belonged to as it can be the last object. Therefore the tail
  *  of the list is modified.
  *
- *  \param [in] w_current  The TOPLEVEL object.
+ *  \param [in] toplevel  The TOPLEVEL object.
  *  \param [in] object
  *  \return OBJECT *
  */
-OBJECT *s_remove(TOPLEVEL *w_current, OBJECT *object)
+OBJECT *s_remove(TOPLEVEL *toplevel, OBJECT *object)
 {
   if(object->type == OBJ_HEAD)
   return NULL;
diff --git a/libgeda/src/s_clib.c b/libgeda/src/s_clib.c
index 5a9a57a..543dd23 100644
--- a/libgeda/src/s_clib.c
+++ b/libgeda/src/s_clib.c
@@ -1293,10 +1293,10 @@ gchar *s_clib_symbol_get_data_by_name (const gchar *name)
  *  \bug Only includes components which are not embedded, but they
  *  should (probably) also appear in the list.
  *
- *  \param w_current #TOPLEVEL structure to scan.
+ *  \param toplevel #TOPLEVEL structure to scan.
  *  \return GList of symbols.
  */
-GList *s_toplevel_get_symbols (const TOPLEVEL *w_current)
+GList *s_toplevel_get_symbols (const TOPLEVEL *toplevel)
 {
   GList *result = NULL;
   GList *iter = NULL;
@@ -1306,9 +1306,9 @@ GList *s_toplevel_get_symbols (const TOPLEVEL *w_current)
   CLibSymbol *sym = NULL;
   const GList *p_iter;
 
-  g_assert (w_current != NULL);
+  g_assert (toplevel != NULL);
 
-  for ( p_iter = geda_list_get_glist( w_current->pages );
+  for ( p_iter = geda_list_get_glist( toplevel->pages );
         p_iter != NULL;
         p_iter = g_list_next( p_iter )) {
     page = (PAGE *)p_iter->data;
diff --git a/libgeda/src/s_conn.c b/libgeda/src/s_conn.c
index b18da40..669c704 100644
--- a/libgeda/src/s_conn.c
+++ b/libgeda/src/s_conn.c
@@ -105,7 +105,7 @@ int s_conn_uniq(GList * conn_list, CONN * input_conn)
  *  \par Function Description
  *
  */
-int s_conn_remove_other(TOPLEVEL * w_current, OBJECT * other_object,
+int s_conn_remove_other(TOPLEVEL * toplevel, OBJECT * other_object,
 			OBJECT * to_remove)
 {
     GList *c_current = NULL;
@@ -153,7 +153,7 @@ int s_conn_remove_other(TOPLEVEL * w_current, OBJECT * other_object,
  *  \par Function Description
  *
  */
-void s_conn_remove(TOPLEVEL * w_current, OBJECT * to_remove)
+void s_conn_remove(TOPLEVEL * toplevel, OBJECT * to_remove)
 {
   GList *c_current;
   CONN *conn;
@@ -174,7 +174,7 @@ void s_conn_remove(TOPLEVEL * w_current, OBJECT * to_remove)
     /* keep calling this till it returns false (all refs removed) */
     /* there is NO body to this while loop */
     while (s_conn_remove_other
-           (w_current, conn->other_object, to_remove));
+           (toplevel, conn->other_object, to_remove));
 
 #if DEBUG
     printf("returned from remove_other\n");
@@ -206,7 +206,7 @@ void s_conn_remove(TOPLEVEL * w_current, OBJECT * to_remove)
  *  \par Function Description
  *
  */
-void s_conn_remove_complex(TOPLEVEL * w_current, OBJECT * to_remove)
+void s_conn_remove_complex(TOPLEVEL * toplevel, OBJECT * to_remove)
 {
   OBJECT *o_current;
   
@@ -220,7 +220,7 @@ void s_conn_remove_complex(TOPLEVEL * w_current, OBJECT * to_remove)
       case (OBJ_NET):
       case (OBJ_PIN):
       case (OBJ_BUS):
-        s_conn_remove(w_current, o_current);
+        s_conn_remove(toplevel, o_current);
         break;
 
     }
@@ -284,7 +284,7 @@ OBJECT *s_conn_check_midpoint(OBJECT *o_current, int x, int y)
  *  \par Function Description
  *
  */
-void s_conn_update_object(TOPLEVEL * w_current, OBJECT * object)
+void s_conn_update_object(TOPLEVEL * toplevel, OBJECT * object)
 {
   TILE *t_current;
   TILE_LOC *tl_current;
@@ -311,7 +311,7 @@ void s_conn_update_object(TOPLEVEL * w_current, OBJECT * object)
     printf("\nInside tile: %d %d\n\n", i, j);
 #endif
     
-    t_current = &w_current->page_current->world_tiles[i][j];
+    t_current = &toplevel->page_current->world_tiles[i][j];
     object_list = t_current->objects;
     while (object_list != NULL) {
       other_object = (OBJECT *) object_list->data;
@@ -700,7 +700,7 @@ void s_conn_update_object(TOPLEVEL * w_current, OBJECT * object)
  *  \par Function Description
  *
  */
-void s_conn_update_complex(TOPLEVEL * w_current, OBJECT * complex)
+void s_conn_update_complex(TOPLEVEL * toplevel, OBJECT * complex)
 {
   OBJECT *o_current;
 
@@ -710,7 +710,7 @@ void s_conn_update_complex(TOPLEVEL * w_current, OBJECT * complex)
       case (OBJ_PIN):
       case (OBJ_NET):
       case (OBJ_BUS):
-        s_conn_update_object(w_current, o_current);
+        s_conn_update_object(toplevel, o_current);
         break;
 
     }
diff --git a/libgeda/src/s_cue.c b/libgeda/src/s_cue.c
index a2650cb..9f77e96 100644
--- a/libgeda/src/s_cue.c
+++ b/libgeda/src/s_cue.c
@@ -52,7 +52,7 @@
  *  \par Function Description
  *
  */
-void s_cue_postscript_fillbox(TOPLEVEL * w_current, FILE * fp, int x,
+void s_cue_postscript_fillbox(TOPLEVEL * toplevel, FILE * fp, int x,
 			      int y)
 {
   int offset;
@@ -62,8 +62,8 @@ void s_cue_postscript_fillbox(TOPLEVEL * w_current, FILE * fp, int x,
   offset = CUE_BOX_SIZE;
   offset2 = offset*2;
 
-  if (w_current->print_color) {
-    f_print_set_color(fp, w_current->net_endpoint_color);
+  if (toplevel->print_color) {
+    f_print_set_color(fp, toplevel->net_endpoint_color);
   }
 
   fprintf(fp, "%d %d %d %d fbox\n", 
@@ -75,7 +75,7 @@ void s_cue_postscript_fillbox(TOPLEVEL * w_current, FILE * fp, int x,
  *  \par Function Description
  *
  */
-void s_cue_postscript_fillcircle(TOPLEVEL * w_current, FILE * fp,
+void s_cue_postscript_fillcircle(TOPLEVEL * toplevel, FILE * fp,
                                  int x, int y, int size_flag)
 {
   int offset2;
@@ -86,8 +86,8 @@ void s_cue_postscript_fillcircle(TOPLEVEL * w_current, FILE * fp,
     offset2 = CUE_CIRCLE_SMALL_SIZE;
   }
 
-  if (w_current->print_color) {
-    f_print_set_color(fp, w_current->junction_color);
+  if (toplevel->print_color) {
+    f_print_set_color(fp, toplevel->junction_color);
   }
 
   fprintf(fp, "newpath\n");
@@ -103,7 +103,7 @@ void s_cue_postscript_fillcircle(TOPLEVEL * w_current, FILE * fp,
  *  \par Function Description
  *
  */
-void s_cue_output_all(TOPLEVEL * w_current, OBJECT * head, FILE * fp,
+void s_cue_output_all(TOPLEVEL * toplevel, OBJECT * head, FILE * fp,
 		      int type)
 {
   OBJECT *o_current;
@@ -114,12 +114,12 @@ void s_cue_output_all(TOPLEVEL * w_current, OBJECT * head, FILE * fp,
       case (OBJ_NET):
       case (OBJ_BUS):
       case (OBJ_PIN):
-        s_cue_output_single(w_current, o_current, fp, type);
+        s_cue_output_single(toplevel, o_current, fp, type);
         break;
 
       case (OBJ_COMPLEX):
       case (OBJ_PLACEHOLDER):
-        s_cue_output_all(w_current, o_current->complex->prim_objs, fp,
+        s_cue_output_all(toplevel, o_current->complex->prim_objs, fp,
                          type);
         break;
 
@@ -134,7 +134,7 @@ void s_cue_output_all(TOPLEVEL * w_current, OBJECT * head, FILE * fp,
  *  \par Function Description
  *
  */
-void s_cue_output_lowlevel(TOPLEVEL * w_current, OBJECT * object, int whichone,
+void s_cue_output_lowlevel(TOPLEVEL * toplevel, OBJECT * object, int whichone,
 			   FILE * fp, int output_type)
 {
   int x, y;
@@ -195,16 +195,16 @@ void s_cue_output_lowlevel(TOPLEVEL * w_current, OBJECT * object, int whichone,
       if (object->type == OBJ_NET) {	/* only nets have these cues */
         if (count < 1) {	/* Didn't find anything connected there */
           if (output_type == POSTSCRIPT) {
-            s_cue_postscript_fillbox(w_current, fp, x, y);
+            s_cue_postscript_fillbox(toplevel, fp, x, y);
           }
 
 
         } else if (count >= 2) {
           if (output_type == POSTSCRIPT) {
             if (!bus_involved) {
-              s_cue_postscript_fillcircle(w_current, fp, x, y, FALSE);
+              s_cue_postscript_fillcircle(toplevel, fp, x, y, FALSE);
             } else {
-              s_cue_postscript_fillcircle(w_current, fp, x, y, TRUE);
+              s_cue_postscript_fillcircle(toplevel, fp, x, y, TRUE);
             }
           }
         }
@@ -214,9 +214,9 @@ void s_cue_output_lowlevel(TOPLEVEL * w_current, OBJECT * object, int whichone,
     case (CONN_MIDPOINT):
       if (output_type == POSTSCRIPT) {
         if (!bus_involved) {
-          s_cue_postscript_fillcircle(w_current, fp, x, y, FALSE);
+          s_cue_postscript_fillcircle(toplevel, fp, x, y, FALSE);
         } else {
-          s_cue_postscript_fillcircle(w_current, fp, x, y, TRUE);
+          s_cue_postscript_fillcircle(toplevel, fp, x, y, TRUE);
         }
       }
   }
@@ -228,7 +228,7 @@ void s_cue_output_lowlevel(TOPLEVEL * w_current, OBJECT * object, int whichone,
  *  \par Function Description
  *
  */
-void s_cue_output_lowlevel_midpoints(TOPLEVEL * w_current, OBJECT * object,
+void s_cue_output_lowlevel_midpoints(TOPLEVEL * toplevel, OBJECT * object,
 				     FILE * fp, int output_type)
 {
   int x, y;
@@ -258,7 +258,7 @@ void s_cue_output_lowlevel_midpoints(TOPLEVEL * w_current, OBJECT * object,
 
         
         if (output_type == POSTSCRIPT) {
-          s_cue_postscript_fillcircle(w_current, fp, x, y, size_flag);
+          s_cue_postscript_fillcircle(toplevel, fp, x, y, size_flag);
         }
         break;
     }
@@ -273,7 +273,7 @@ void s_cue_output_lowlevel_midpoints(TOPLEVEL * w_current, OBJECT * object,
  *  \par Function Description
  *
  */
-void s_cue_output_single(TOPLEVEL * w_current, OBJECT * object, FILE * fp,
+void s_cue_output_single(TOPLEVEL * toplevel, OBJECT * object, FILE * fp,
 			 int type)
 {
   if (!object) {
@@ -285,9 +285,9 @@ void s_cue_output_single(TOPLEVEL * w_current, OBJECT * object, FILE * fp,
 	return;
       }
 
-  s_cue_output_lowlevel(w_current, object, 0, fp, type);
-  s_cue_output_lowlevel(w_current, object, 1, fp, type);
-  s_cue_output_lowlevel_midpoints(w_current, object, fp, type);
+  s_cue_output_lowlevel(toplevel, object, 0, fp, type);
+  s_cue_output_lowlevel(toplevel, object, 1, fp, type);
+  s_cue_output_lowlevel_midpoints(toplevel, object, fp, type);
 }
 
 
diff --git a/libgeda/src/s_hierarchy.c b/libgeda/src/s_hierarchy.c
index 305bc2a..c2f8363 100644
--- a/libgeda/src/s_hierarchy.c
+++ b/libgeda/src/s_hierarchy.c
@@ -58,7 +58,7 @@ static int page_control_counter=0;
  *  function will load the page again with a new page id. The second case
  *  is mainly used by gnetlist where pushed down schematics MUST be unique.
  *
- *  \param [in] w_current     The TOPLEVEL object.
+ *  \param [in] toplevel     The TOPLEVEL object.
  *  \param [in] filename      Schematic file name.
  *  \param [in] parent        The parent page of the schematic.
  *  \param [in] page_control
@@ -73,7 +73,7 @@ static int page_control_counter=0;
  *  flag can either be HIERARCHY_NORMAL_LOAD or HIERARCHY_FORCE_LOAD
  *  flag is mainly used by gnetlist where pushed down schematics MUST be unique
  */
-int s_hierarchy_down_schematic_single(TOPLEVEL *w_current,
+int s_hierarchy_down_schematic_single(TOPLEVEL *toplevel,
 				      const gchar *filename, PAGE *parent,
 				      int page_control, int flag) 
 {
@@ -89,13 +89,13 @@ int s_hierarchy_down_schematic_single(TOPLEVEL *w_current,
   switch (flag) {
     case HIERARCHY_NORMAL_LOAD:
     {
-      found = s_page_search (w_current, string);
+      found = s_page_search (toplevel, string);
       
       if (found) {
 	/* check whether this page is in the parents list */
 	for (forbear = parent; 
 	     forbear != NULL && found->pid != forbear->pid && forbear->up >= 0;
-	     forbear = s_hierarchy_find_page (w_current->pages, forbear->up))
+	     forbear = s_hierarchy_find_page (toplevel->pages, forbear->up))
 	  ; /* void */
 
 	if (found->pid == forbear->pid) {
@@ -103,7 +103,7 @@ int s_hierarchy_down_schematic_single(TOPLEVEL *w_current,
 			"  \"%s\"\n",found->page_filename);
 	  return -1;  /* error signal */
 	}
-        s_page_goto (w_current, found);
+        s_page_goto (toplevel, found);
         if (page_control != 0) {
           found->page_control = page_control;
         }
@@ -112,32 +112,32 @@ int s_hierarchy_down_schematic_single(TOPLEVEL *w_current,
         return found->page_control;
       }
       
-      found = s_page_new (w_current, string);
-      s_page_goto (w_current, found);
+      found = s_page_new (toplevel, string);
+      s_page_goto (toplevel, found);
       
-      f_open (w_current, found->page_filename);
+      f_open (toplevel, found->page_filename);
     }
     break;
 
     case HIERARCHY_FORCE_LOAD:
     {
-      PAGE *page = s_page_new (w_current, string);
-      s_page_goto (w_current, page);
-      f_open (w_current, page->page_filename);
+      PAGE *page = s_page_new (toplevel, string);
+      s_page_goto (toplevel, page);
+      f_open (toplevel, page->page_filename);
     }
     break;
   }
 
   if (page_control == 0) {
     page_control_counter++;
-    w_current->page_current->page_control = page_control_counter;
+    toplevel->page_current->page_control = page_control_counter;
   } else {
-    w_current->page_current->page_control = page_control;
+    toplevel->page_current->page_control = page_control;
   }
 
-  w_current->page_current->up = parent->pid;
+  toplevel->page_current->up = parent->pid;
 
-  s_page_goto(w_current, w_current->page_current);
+  s_page_goto(toplevel, toplevel->page_current);
 
   g_free (string);
 
@@ -153,7 +153,7 @@ int s_hierarchy_down_schematic_single(TOPLEVEL *w_current,
  *  only works for schematic files though
  *  this is basically push
  */
-void s_hierarchy_down_schematic_multiple (TOPLEVEL *w_current,
+void s_hierarchy_down_schematic_multiple (TOPLEVEL *toplevel,
 					  const gchar *filename, PAGE *parent) 
 {
   char *string=NULL;
@@ -166,32 +166,32 @@ void s_hierarchy_down_schematic_multiple (TOPLEVEL *w_current,
   string = s_slib_search (filename, SLIB_SEARCH_NEXT);
   while (string != NULL) {
 
-    found = s_page_new(w_current, string);
+    found = s_page_new(toplevel, string);
 
     if (found) {
-      w_current->page_current = found;
-      s_page_goto(w_current, found);
+      toplevel->page_current = found;
+      s_page_goto(toplevel, found);
       if (string) 
         g_free(string);
       return;
     }
 
-    f_open(w_current, w_current->page_current->page_filename);
+    f_open(toplevel, toplevel->page_current->page_filename);
 
     if (loaded_schematics == 0) {
       page_control_counter++;
-      save_first_page = w_current->page_current;
-      /* parent->down = w_current->page_current; not needed */
-      w_current->page_current->page_control = 
+      save_first_page = toplevel->page_current;
+      /* parent->down = toplevel->page_current; not needed */
+      toplevel->page_current->page_control =
         page_control_counter;
       loaded_schematics=1;
     } else {
-      w_current->page_current->page_control = 
+      toplevel->page_current->page_control =
         page_control_counter;
     }
 
-    w_current->page_current->up = parent->pid;
-    /* w_current->page_current->down = NULL; not needed */
+    toplevel->page_current->up = parent->pid;
+    /* toplevel->page_current->down = NULL; not needed */
 
     if (string) 
       g_free(string);
@@ -204,10 +204,10 @@ void s_hierarchy_down_schematic_multiple (TOPLEVEL *w_current,
   g_free (string);
 
   if (loaded_schematics) {
-    w_current->page_current = save_first_page;
+    toplevel->page_current = save_first_page;
   }
 
-  s_page_goto (w_current, w_current->page_current);
+  s_page_goto (toplevel, toplevel->page_current);
   
 }
 
@@ -216,7 +216,7 @@ void s_hierarchy_down_schematic_multiple (TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-void s_hierarchy_down_symbol (TOPLEVEL *w_current,
+void s_hierarchy_down_symbol (TOPLEVEL *toplevel,
 			      const CLibSymbol *symbol, PAGE *parent)
 {
   PAGE *page;
@@ -224,19 +224,19 @@ void s_hierarchy_down_symbol (TOPLEVEL *w_current,
 
   filename = s_clib_symbol_get_filename (symbol);
 
-  page = s_page_search (w_current, filename);
+  page = s_page_search (toplevel, filename);
   if (page) {
-    s_page_goto (w_current, page);
+    s_page_goto (toplevel, page);
     g_free (filename);
     return;
   }
 
-  page = s_page_new (w_current, filename);
+  page = s_page_new (toplevel, filename);
   g_free(filename);
 
-  s_page_goto (w_current, page);
+  s_page_goto (toplevel, page);
 
-  f_open(w_current, page->page_filename);
+  f_open(toplevel, page->page_filename);
 
   page->up = parent->pid;
   page_control_counter++;
@@ -249,7 +249,7 @@ void s_hierarchy_down_symbol (TOPLEVEL *w_current,
  *  \par Function Description
  *
  */
-void s_hierarchy_up(TOPLEVEL *w_current, int pid)
+void s_hierarchy_up(TOPLEVEL *toplevel, int pid)
 {
   PAGE *p_current;
 
@@ -258,10 +258,10 @@ void s_hierarchy_up(TOPLEVEL *w_current, int pid)
     return;
   }
 
-  p_current = s_hierarchy_find_page(w_current->pages, pid);
+  p_current = s_hierarchy_find_page(toplevel->pages, pid);
 
   if (p_current) {
-    s_page_goto(w_current, p_current);
+    s_page_goto(toplevel, p_current);
   } else {
     s_log_message("Cannot find any schematics above the current one!\n");
     s_log_message("Maybe toplevel schematic page was closed/discarded?\n");
@@ -283,7 +283,7 @@ void s_hierarchy_up(TOPLEVEL *w_current, int pid)
  *  \warning
  *  Call must g_list_free returned GList.
  */
-GList *s_hierarchy_traversepages(TOPLEVEL *w_current,
+GList *s_hierarchy_traversepages(TOPLEVEL *toplevel,
 				 gint flags)
 {
   PAGE *p_current;
@@ -297,7 +297,7 @@ GList *s_hierarchy_traversepages(TOPLEVEL *w_current,
     pages = NULL;
   }
 
-  p_current = w_current->page_current;
+  p_current = toplevel->page_current;
 
   /* preorder traversing */
   if (!(flags & HIERARCHY_POSTORDER)) {
@@ -328,16 +328,16 @@ GList *s_hierarchy_traversepages(TOPLEVEL *w_current,
       if (filename != NULL) {
 	/* we got a schematic source attribute 
 	   lets load the page and dive into it */
-	page_control =s_hierarchy_down_schematic_single(w_current,
+	page_control =s_hierarchy_down_schematic_single(toplevel,
 							filename,
 							p_current,
 							0,
 							HIERARCHY_NORMAL_LOAD);
 	if (page_control != -1) {
 	  /* call the recursive function */
-	  s_hierarchy_traversepages(w_current,
+	  s_hierarchy_traversepages(toplevel,
 				    flags | HIERARCHY_INNERLOOP);
-	  s_page_goto(w_current, p_current);
+	  s_page_goto(toplevel, p_current);
 	}
 	else {
 	  s_log_message("ERROR in s_hierarchy_traverse: "
diff --git a/libgeda/src/s_page.c b/libgeda/src/s_page.c
index 1556c0d..2ed64e4 100644
--- a/libgeda/src/s_page.c
+++ b/libgeda/src/s_page.c
@@ -243,8 +243,8 @@ void s_page_delete (TOPLEVEL *toplevel, PAGE *page)
   g_free (page);
 
 #if 0 /* don't do this for now hack */ /* this is a per window free */
-  o_attrib_free_current(w_current);
-  o_complex_free_filename(w_current);
+  o_attrib_free_current(toplevel);
+  o_complex_free_filename(toplevel);
 #endif
 
   /* restore page_current */
diff --git a/libgeda/src/s_stretch.c b/libgeda/src/s_stretch.c
index e3dee66..2e781ac 100644
--- a/libgeda/src/s_stretch.c
+++ b/libgeda/src/s_stretch.c
@@ -210,7 +210,7 @@ void s_stretch_remove(STRETCH *head, OBJECT *object)
  *
  */
 /*! \note removes all but the head node */
-void s_stretch_remove_most(TOPLEVEL *w_current, STRETCH *head)
+void s_stretch_remove_most(TOPLEVEL *toplevel, STRETCH *head)
 {
   STRETCH *s_current;
   STRETCH *s_prev;
diff --git a/libgeda/src/s_tile.c b/libgeda/src/s_tile.c
index 4b5e618..270e775 100644
--- a/libgeda/src/s_tile.c
+++ b/libgeda/src/s_tile.c
@@ -53,12 +53,12 @@
  *  \par Function Description
  *
  */
-void s_tile_init(TOPLEVEL * w_current, PAGE * p_current)
+void s_tile_init(TOPLEVEL * toplevel, PAGE * p_current)
 {
   int i, j;
   TILE *t_current;
-  int x_size = w_current->init_right / MAX_TILES_X;
-  int y_size = w_current->init_bottom / MAX_TILES_Y;
+  int x_size = toplevel->init_right / MAX_TILES_X;
+  int y_size = toplevel->init_bottom / MAX_TILES_Y;
   int x_sum = 0;
   int y_sum = 0;
 
@@ -120,7 +120,7 @@ TILE_LOC *s_tile_new_loc(int i, int j)
  *  \par Function Description
  *
  */
-void s_tile_add_object(TOPLEVEL * w_current, OBJECT * object, int world_x1,
+void s_tile_add_object(TOPLEVEL * toplevel, OBJECT * object, int world_x1,
 		       int world_y1, int world_x2, int world_y2)
 {
   TILE *t_current;
@@ -140,15 +140,15 @@ void s_tile_add_object(TOPLEVEL * w_current, OBJECT * object, int world_x1,
   printf("name: %s\n", object->name);
 #endif
 
-  if (w_current->ADDING_SEL) {
+  if (toplevel->ADDING_SEL) {
 #if DEBUG    
     printf("s_tile_add_object, adding sel TRUE\n");
 #endif
     return;
   }
   
-  x_size = (double) w_current->init_right / (double) MAX_TILES_X;
-  y_size = (double) w_current->init_bottom / (double) MAX_TILES_Y;
+  x_size = (double) toplevel->init_right / (double) MAX_TILES_X;
+  y_size = (double) toplevel->init_bottom / (double) MAX_TILES_Y;
 
   x1 = (int) (world_x1 / x_size);
   x2 = (int) (world_x2 / x_size);
@@ -156,7 +156,7 @@ void s_tile_add_object(TOPLEVEL * w_current, OBJECT * object, int world_x1,
   y2 = (int) (world_y2 / y_size);
 
   bottom = x2 - x1;
-  p_current = w_current->page_current;
+  p_current = toplevel->page_current;
 
   if (bottom != 0.0) {
     m = (double) (y2 - y1) / bottom;
@@ -329,7 +329,7 @@ void s_tile_add_object(TOPLEVEL * w_current, OBJECT * object, int world_x1,
  *  \par Function Description
  *
  */
-void s_tile_remove_object_all_crude(TOPLEVEL * w_current, OBJECT * object)
+void s_tile_remove_object_all_crude(TOPLEVEL * toplevel, OBJECT * object)
 {
   TILE *t_current;
 
@@ -338,7 +338,7 @@ void s_tile_remove_object_all_crude(TOPLEVEL * w_current, OBJECT * object)
   for (j = 0; j < MAX_TILES_Y; j++) {
     for (i = 0; i < MAX_TILES_X; i++) {
 #if 0				/* this checks for existance */
-      t_current = &w_current->page_current->world_tiles[i][j];
+      t_current = &toplevel->page_current->world_tiles[i][j];
       found = g_list_find(t_current->objects, object);
 
       if (found) {
@@ -350,7 +350,7 @@ void s_tile_remove_object_all_crude(TOPLEVEL * w_current, OBJECT * object)
 
       /* this just does the remove if the object is found */
 #if 1
-      t_current = &w_current->page_current->world_tiles[i][j];
+      t_current = &toplevel->page_current->world_tiles[i][j];
       t_current->objects = g_list_remove(t_current->objects, object);
 #endif
     }
@@ -365,7 +365,7 @@ void s_tile_remove_object_all_crude(TOPLEVEL * w_current, OBJECT * object)
  *  this is still wrong, p_current needs to be the page the object is on 
  *  doesn't work if the current page isn't where the object lives
  */
-void s_tile_remove_object_all(TOPLEVEL * w_current, PAGE *p_current,
+void s_tile_remove_object_all(TOPLEVEL * toplevel, PAGE *p_current,
                               OBJECT * object)
 {
   TILE *t_current;
@@ -406,10 +406,10 @@ void s_tile_remove_object_all(TOPLEVEL * w_current, PAGE *p_current,
  *  \par Function Description
  *
  */
-void s_tile_update_object(TOPLEVEL * w_current, OBJECT * object)
+void s_tile_update_object(TOPLEVEL * toplevel, OBJECT * object)
 {
-  s_tile_remove_object_all(w_current, w_current->page_current, object);
-  s_tile_add_object(w_current, object,
+  s_tile_remove_object_all(toplevel, toplevel->page_current, object);
+  s_tile_add_object(toplevel, object,
                     object->line->x[0], object->line->y[0],
                     object->line->x[1], object->line->y[1]);
 }
@@ -419,7 +419,7 @@ void s_tile_update_object(TOPLEVEL * w_current, OBJECT * object)
  *  \par Function Description
  *
  */
-void s_tile_print(TOPLEVEL * w_current)
+void s_tile_print(TOPLEVEL * toplevel)
 {
   TILE *t_current;
   GList *temp;
@@ -432,7 +432,7 @@ void s_tile_print(TOPLEVEL * w_current)
     for (i = 0; i < MAX_TILES_X; i++) {
       printf("\nTile %d %d\n", i, j);
 
-      t_current = &w_current->page_current->world_tiles[i][j];
+      t_current = &toplevel->page_current->world_tiles[i][j];
 
       temp = t_current->objects;
       while (temp) {
diff --git a/libgeda/src/s_undo.c b/libgeda/src/s_undo.c
index 0af0f50..617c33d 100644
--- a/libgeda/src/s_undo.c
+++ b/libgeda/src/s_undo.c
@@ -202,7 +202,7 @@ void s_undo_print_all( UNDO *head )
  *  \par Function Description
  *
  */
-void s_undo_destroy_all(TOPLEVEL *w_current, UNDO *head) 
+void s_undo_destroy_all(TOPLEVEL *toplevel, UNDO *head)
 {
   UNDO *u_current;
   UNDO *u_prev;
@@ -214,10 +214,10 @@ void s_undo_destroy_all(TOPLEVEL *w_current, UNDO *head)
     if (u_current->filename) g_free(u_current->filename);
 		
     if (u_current->object_head) {
-      w_current->REMOVING_SEL = 1;
-      s_delete_list_fromstart(w_current, 
+      toplevel->REMOVING_SEL = 1;
+      s_delete_list_fromstart(toplevel,
                               u_current->object_head);
-      w_current->REMOVING_SEL = 0;
+      toplevel->REMOVING_SEL = 0;
       u_current->object_head = NULL;
     }
 
@@ -231,7 +231,7 @@ void s_undo_destroy_all(TOPLEVEL *w_current, UNDO *head)
  *  \par Function Description
  *
  */
-void s_undo_remove(TOPLEVEL *w_current, UNDO *head, UNDO *u_tos)
+void s_undo_remove(TOPLEVEL *toplevel, UNDO *head, UNDO *u_tos)
 {
   UNDO *u_current;
 
@@ -259,10 +259,10 @@ void s_undo_remove(TOPLEVEL *w_current, UNDO *head, UNDO *u_tos)
       }
 
       if (u_current->object_head) {
-				/*w_current->REMOVING_SEL = 1; */
-        s_delete_list_fromstart(w_current, 
+				/*toplevel->REMOVING_SEL = 1; */
+        s_delete_list_fromstart(toplevel,
                                 u_current->object_head);
-				/*w_current->REMOVING_SEL = 0;*/
+				/*toplevel->REMOVING_SEL = 0;*/
         u_current->object_head = NULL;
       }
 
@@ -278,7 +278,7 @@ void s_undo_remove(TOPLEVEL *w_current, UNDO *head, UNDO *u_tos)
  *  \par Function Description
  *
  */
-void s_undo_remove_rest(TOPLEVEL *w_current, UNDO *head) 
+void s_undo_remove_rest(TOPLEVEL *toplevel, UNDO *head)
 {
   UNDO *u_current;
   UNDO *u_next;
@@ -294,10 +294,10 @@ void s_undo_remove_rest(TOPLEVEL *w_current, UNDO *head)
     }
 
     if (u_current->object_head) {
-      w_current->REMOVING_SEL = 1;
-      s_delete_list_fromstart(w_current, 
+      toplevel->REMOVING_SEL = 1;
+      s_delete_list_fromstart(toplevel,
                               u_current->object_head);
-      w_current->REMOVING_SEL = 0;
+      toplevel->REMOVING_SEL = 0;
       u_current->object_head = NULL;
     }
 
@@ -344,9 +344,9 @@ void s_undo_init(PAGE *p_current)
  *  \par Function Description
  *
  */
-void s_undo_free_all(TOPLEVEL *w_current, PAGE *p_current)
+void s_undo_free_all(TOPLEVEL *toplevel, PAGE *p_current)
 {
-  s_undo_destroy_all(w_current, p_current->undo_bottom);
+  s_undo_destroy_all(toplevel, p_current->undo_bottom);
   p_current->undo_bottom = NULL;
   p_current->undo_tos = NULL;
   p_current->undo_current = NULL;




_______________________________________________
geda-cvs mailing list
geda-cvs@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-cvs