Author: yamakenz
Date: Fri Aug 10 16:25:02 2007
New Revision: 4816
Modified:
trunk/doc/COMPATIBILITY
trunk/uim/uim-error.c
trunk/uim/uim.h
Log:
* uim/uim.h
- (uim_strdup): New function decl
* uim/uim-error.c
- Include lacked uim-internal.h
- (uim_strdup): New function
* doc/COMPATIBILITY
- Update
Modified: trunk/doc/COMPATIBILITY
==============================================================================
--- trunk/doc/COMPATIBILITY (original)
+++ trunk/doc/COMPATIBILITY Fri Aug 10 16:25:02 2007
@@ -80,7 +80,7 @@
Affects: IM developers, uim developers
Updates: C API
Version: 1.5.0
-Revision: ac4814
+Revision: ac4814, ac4816
Date: 2007-08-11
Modifier: YamaKen
Related: Exception-based libuim error handling
@@ -93,6 +93,7 @@
(new) uim_malloc()
(new) uim_realloc()
(new) uim_calloc()
+ (new) uim_strdup()
Description:
------------------------------------------------------------------------------
Summary: New utility procedures in uim 1.5.0
Modified: trunk/uim/uim-error.c
==============================================================================
--- trunk/uim/uim-error.c (original)
+++ trunk/uim/uim-error.c Fri Aug 10 16:25:02 2007
@@ -34,11 +34,13 @@
#include <config.h>
#include <stdlib.h>
-#include <stdio.h>
+#include <string.h>
#include <setjmp.h>
+#include <stdio.h>
#include <assert.h>
#include "uim.h"
+#include "uim-internal.h"
#if HAVE_SIGSETJMP
@@ -159,3 +161,22 @@
return p;
}
+char *
+uim_strdup(const char *s)
+{
+ char *copied;
+
+#if HAVE_STRDUP
+ copied = strdup(s);
+ if (!copied)
+ uim_fatal_error("strdup() failed");
+#else
+ size_t size;
+
+ size = strlen(s) + sizeof("");
+ copied = uim_malloc(size);
+ strcpy(copied, s);
+#endif
+
+ return copied;
+}
Modified: trunk/uim/uim.h
==============================================================================
--- trunk/uim/uim.h (original)
+++ trunk/uim/uim.h Fri Aug 10 16:25:02 2007
@@ -943,6 +943,7 @@
void *uim_malloc(size_t size);
void *uim_realloc(void *p, size_t size);
void *uim_calloc(size_t nmemb, size_t size);
+char *uim_strdup(const char *s);
#ifdef __cplusplus
}