X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/4a47c2757309e338321da1e7a2f6d399a306ce7d..2b943ba68988e9925cf50f4df37550f0342370dd:/lwlib/lwlib.c
diff --git a/lwlib/lwlib.c b/lwlib/lwlib.c
index 1f434e5b61..7d9920e8bc 100644
--- a/lwlib/lwlib.c
+++ b/lwlib/lwlib.c
@@ -1,7 +1,7 @@
/* A general interface to the widgets of different toolkits.
+
Copyright (C) 1992, 1993 Lucid, Inc.
-Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2003, 2004,
- 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+Copyright (C) 1994-1996, 1999-2013 Free Software Foundation, Inc.
This file is part of the Lucid Widget Library.
@@ -16,20 +16,16 @@ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
-along with GNU Emacs; see the file COPYING. If not, write to
-the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
-Boston, MA 02110-1301, USA. */
+along with GNU Emacs. If not, see . */
-#ifdef HAVE_CONFIG_H
#include
-#endif
#include
-#include "../src/lisp.h"
+#include
+#include
#include
#include
-#include
#include "lwlib-int.h"
#include "lwlib-utils.h"
#include
@@ -75,7 +71,6 @@ static widget_value *merge_widget_value (widget_value *,
widget_value *,
int, int *);
static void instantiate_widget_instance (widget_instance *);
-static int my_strcasecmp (const char *, const char *);
static void safe_free_str (char *);
static void free_widget_value_tree (widget_value *);
static widget_value *copy_widget_value_tree (widget_value *,
@@ -110,37 +105,15 @@ safe_strdup (const char *s)
{
char *result;
if (! s) return 0;
- result = (char *) malloc (strlen (s) + 1);
- if (! result)
- return 0;
+ result = (char *) xmalloc (strlen (s) + 1);
strcpy (result, s);
return result;
}
-/* Like strcmp but ignore differences in case. */
-
-static int
-my_strcasecmp (const char *s1, const char *s2)
-{
- while (1)
- {
- int c1 = *s1++;
- int c2 = *s2++;
- if (isupper (c1))
- c1 = tolower (c1);
- if (isupper (c2))
- c2 = tolower (c2);
- if (c1 != c2)
- return (c1 > c2 ? 1 : -1);
- if (c1 == 0)
- return 0;
- }
-}
-
static void
safe_free_str (char *s)
{
- free (s);
+ xfree (s);
}
static widget_value *widget_value_free_list = 0;
@@ -158,7 +131,7 @@ malloc_widget_value (void)
}
else
{
- wv = (widget_value *) malloc (sizeof (widget_value));
+ wv = (widget_value *) xmalloc (sizeof (widget_value));
malloc_cpt++;
}
memset ((void*) wv, 0, sizeof (widget_value));
@@ -178,7 +151,7 @@ free_widget_value (widget_value *wv)
{
/* When the number of already allocated cells is too big,
We free it. */
- free (wv);
+ xfree (wv);
malloc_cpt--;
}
else
@@ -194,9 +167,9 @@ free_widget_value_tree (widget_value *wv)
if (!wv)
return;
- free (wv->name);
- free (wv->value);
- free (wv->key);
+ xfree (wv->name);
+ xfree (wv->value);
+ xfree (wv->key);
wv->name = wv->value = wv->key = (char *) 0xDEADBEEF;
@@ -258,7 +231,7 @@ allocate_widget_info (const char* type,
lw_callback post_activate_cb,
lw_callback highlight_cb)
{
- widget_info* info = (widget_info*)malloc (sizeof (widget_info));
+ widget_info* info = (widget_info*) xmalloc (sizeof (widget_info));
info->type = safe_strdup (type);
info->name = safe_strdup (name);
info->id = id;
@@ -283,7 +256,7 @@ free_widget_info (widget_info *info)
safe_free_str (info->name);
free_widget_value_tree (info->val);
memset ((void*)info, 0xDEADBEEF, sizeof (widget_info));
- free (info);
+ xfree (info);
}
static void
@@ -300,7 +273,7 @@ static widget_instance *
allocate_widget_instance (widget_info* info, Widget parent, Boolean pop_up_p)
{
widget_instance* instance =
- (widget_instance*)malloc (sizeof (widget_instance));
+ (widget_instance*) xmalloc (sizeof (widget_instance));
memset (instance, 0, sizeof *instance);
instance->parent = parent;
instance->pop_up_p = pop_up_p;
@@ -319,7 +292,7 @@ static void
free_widget_instance (widget_instance *instance)
{
memset ((void*)instance, 0xDEADBEEF, sizeof (widget_instance));
- free (instance);
+ xfree (instance);
}
static widget_info *
@@ -424,7 +397,7 @@ safe_strcmp (const char *s1, const char *s2)
(nc == STRUCTURAL_CHANGE ? "structural" : "???")))), \
nc, desc, a1, a2)
#else
-# define EXPLAIN(name, oc, nc, desc, a1, a2)
+# define EXPLAIN(name, oc, nc, desc, a1, a2) ((void) 0)
#endif
@@ -604,7 +577,7 @@ name_to_widget (widget_instance *instance, const char *name)
widget = XtNameToWidget (instance->widget, real_name);
- free (real_name);
+ xfree (real_name);
}
return widget;
}
@@ -733,7 +706,7 @@ find_in_table (const char *type, const widget_creation_entry *table)
{
const widget_creation_entry* cur;
for (cur = table; cur->type; cur++)
- if (!my_strcasecmp (type, cur->type))
+ if (!c_strcasecmp (type, cur->type))
return cur->function;
return NULL;
}
@@ -914,8 +887,9 @@ destroy_one_instance (widget_instance *instance)
xaw_destroy_instance (instance);
else
#endif
- /* do not remove the empty statement */
- ;
+ {
+ /* Empty compound statement to terminate if-then-else chain. */
+ }
}
free_widget_instance (instance);
@@ -980,7 +954,7 @@ lw_destroy_all_pop_ups (void)
}
#ifdef USE_MOTIF
-extern Widget first_child (/* Widget */); /* garbage */
+extern Widget first_child (Widget); /* garbage */
#endif
Widget
@@ -1157,9 +1131,9 @@ lw_get_widget_value_for_widget (widget_instance *instance, Widget w)
/* To forbid recursive calls */
static Boolean lwlib_updating;
-/* This function can be used as a an XtCallback for the widgets that get
- modified to update other instances of the widgets. Closure should be the
- widget_instance. */
+/* This function can be used as an XtCallback for the widgets that get
+ modified to update other instances of the widgets. Closure should be the
+ widget_instance. */
void
lw_internal_update_other_instances (Widget widget,
XtPointer closure,
@@ -1421,6 +1395,3 @@ lw_separator_p (const char *label, enum menu_separator *type, int motif_p)
return separator_p;
}
-
-/* arch-tag: 3d730f36-a441-4a71-9971-48ef3b5a4d9f
- (do not change this comment) */