aboutsummaryrefslogtreecommitdiff
path: root/libidn
diff options
context:
space:
mode:
Diffstat (limited to 'libidn')
-rw-r--r--libidn/ChangeLog7
-rw-r--r--libidn/Versions1
-rw-r--r--libidn/idna.c21
3 files changed, 17 insertions, 12 deletions
diff --git a/libidn/ChangeLog b/libidn/ChangeLog
index b5df17cf5c..1903cab566 100644
--- a/libidn/ChangeLog
+++ b/libidn/ChangeLog
@@ -1,5 +1,12 @@
2004-03-12 Ulrich Drepper <drepper@redhat.com>
+ * idna.c (idna_to_ascii_4z): Use strdup if available. Unify two ifs.
+
+ * idn-stub.c: Implement __idna_to_unicode_lzlz. Split
+ __idna_to_ascii_lz in two parts so that loading can be shared with
+ the new function.
+ * Versions (libcidn): Export idna_to_unicode_lzlz.
+
* Makefile (libcidn-inhibit-o): Define. We need no archive.
2004-03-08 Simon Josefsson <jas@extundo.com>
diff --git a/libidn/Versions b/libidn/Versions
index 3803a5bb91..0897fd1717 100644
--- a/libidn/Versions
+++ b/libidn/Versions
@@ -1,5 +1,6 @@
libcidn {
GLIBC_PRIVATE {
idna_to_ascii_lz;
+ idna_to_unicode_lzlz;
}
}
diff --git a/libidn/idna.c b/libidn/idna.c
index 69c928fc42..b89350f1f3 100644
--- a/libidn/idna.c
+++ b/libidn/idna.c
@@ -437,24 +437,21 @@ idna_to_ascii_4z (const uint32_t * input, char **output, int flags)
U+3002 (ideographic full stop), U+FF0E (fullwidth full stop),
U+FF61 (halfwidth ideographic full stop). */
- if (input[0] == 0)
+ if (input[0] == 0
+ /* Handle explicit zero-length root label. */
+ || (DOTP (input[0]) && input[1] == 0))
{
+#if defined HAVE_STRDUP || defined _LIBC
+ *output = strdup (input);
+ return *output == NULL ? IDNA_MALLOC_ERROR : IDNA_SUCCESS;
+#else
/* Handle implicit zero-length root label. */
*output = malloc (1);
if (!*output)
return IDNA_MALLOC_ERROR;
- strcpy (*output, "");
- return IDNA_SUCCESS;
- }
-
- if (DOTP (input[0]) && input[1] == 0)
- {
- /* Handle explicit zero-length root label. */
- *output = malloc (2);
- if (!*output)
- return IDNA_MALLOC_ERROR;
- strcpy (*output, ".");
+ strcpy (*output, input);
return IDNA_SUCCESS;
+#endif
}
*output = NULL;