Mercurial > hg > xemacs-beta
diff src/dialog-x.c @ 412:697ef44129c6 r21-2-14
Import from CVS: tag r21-2-14
author | cvs |
---|---|
date | Mon, 13 Aug 2007 11:20:41 +0200 |
parents | b8cc9ab3f761 |
children | 41dbb7a9d5f2 |
line wrap: on
line diff
--- a/src/dialog-x.c Mon Aug 13 11:19:22 2007 +0200 +++ b/src/dialog-x.c Mon Aug 13 11:20:41 2007 +0200 @@ -44,28 +44,22 @@ widget_value *wv; int got_some; wv = xmalloc_widget_value (); - wv->name = xstrdup ("value"); + wv->name = (char *) "value"; got_some = lw_get_some_values (id, wv); if (got_some) { Lisp_Object text_field_callback; char *text_field_value = wv->value; VOID_TO_LISP (text_field_callback, wv->call_data); - text_field_callback = XCAR (XCDR (text_field_callback)); if (text_field_value) { - void *tmp = - LISP_TO_VOID (cons3 (Qnil, - list2 (text_field_callback, - build_string (text_field_value)), - Qnil)); + void *tmp = LISP_TO_VOID (list2 (text_field_callback, + build_string (text_field_value))); popup_selection_callback (0, id, (XtPointer) tmp); + xfree (text_field_value); } } - /* This code tried to optimize, newing/freeing. This is generally - unsafe so we will alwats strdup and always use - free_widget_value_tree. */ - free_widget_value_tree (wv); + free_widget_value (wv); } static void @@ -106,7 +100,7 @@ lw_set_keyboard_focus (FRAME_X_SHELL_WIDGET (f), FRAME_X_TEXT_WIDGET (f)); } -static const char * const button_names [] = { +static CONST char * CONST button_names [] = { "button1", "button2", "button3", "button4", "button5", "button6", "button7", "button8", "button9", "button10" }; @@ -126,7 +120,7 @@ widget_value *prev = 0, *kids = 0; int n = 0; int count = specpdl_depth (); - Lisp_Object wv_closure, gui_item; + Lisp_Object wv_closure; CHECK_CONS (desc); CHECK_STRING (XCAR (desc)); @@ -150,7 +144,7 @@ wv_closure = make_opaque_ptr (kids); record_unwind_protect (widget_value_unwind, wv_closure); - prev->name = xstrdup ("message"); + prev->name = (char *) "message"; prev->value = xstrdup (name); prev->enabled = 1; @@ -169,11 +163,9 @@ CHECK_VECTOR (button); wv = xmalloc_widget_value (); - gui_item = gui_parse_item_keywords (button); - if (!button_item_to_widget_value (Qdialog, - gui_item, wv, allow_text_p, 1, 0)) + if (!button_item_to_widget_value (button, wv, allow_text_p, 1)) { - free_widget_value_tree (wv); + free_widget_value (wv); continue; } @@ -185,9 +177,8 @@ else /* it's a button */ { allow_text_p = 0; /* only allow text field at the front */ - if (wv->value) xfree (wv->value); - wv->value = wv->name; /* what a mess... */ - wv->name = xstrdup (button_names [n]); + wv->value = xstrdup (wv->name); /* what a mess... */ + wv->name = (char *) button_names [n]; if (partition_seen) rbuttons++; @@ -210,7 +201,7 @@ widget_value *dbox; sprintf (tmp_dbox_name, "%c%dBR%d", type, lbuttons + rbuttons, rbuttons); dbox = xmalloc_widget_value (); - dbox->name = xstrdup (tmp_dbox_name); + dbox->name = tmp_dbox_name; dbox->contents = kids; /* No more need to free the half-filled-in structures. */