summary refs log tree commit diff
path: root/iconvdata/utf-16.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2005-08-08 19:04:11 +0000
committerUlrich Drepper <drepper@redhat.com>2005-08-08 19:04:11 +0000
commitdc4bb1c2be1370fafd597602eb2b009cf10c025b (patch)
tree8f4ebb944a214ecae469243b05fada295839a487 /iconvdata/utf-16.c
parent6c49b464d92da2945de33b9f1b0bddbb14c240ef (diff)
downloadglibc-dc4bb1c2be1370fafd597602eb2b009cf10c025b.tar.gz
glibc-dc4bb1c2be1370fafd597602eb2b009cf10c025b.tar.xz
glibc-dc4bb1c2be1370fafd597602eb2b009cf10c025b.zip
* posix/bits/unistd.h (confstr, getgroups, ttyname_r, gethostname,
	getdomainname): Add __NTH.
	* stdlib/bits/stdlib.h (ptsname_r, wctomb, mbstowcs, wcstombs):
	Likewise.
	(realpath): Likewise.  Use __const instead of const.  Add __restrict
	keywords.
	* socket/bits/socket2.h (recvfrom): Add __restrict keyword to __buf.
	* wcsmbs/bits/wchar2.h (wmemcpy, wmemmove, wmempcpy, wmemset,
	wcscpy, wcpcpy, wcsncpy, wcpncpy, wcscat, wcsncat, vswprintf, wcrtomb,
	mbsrtowcs, wcsrtombs, mbsnrtowcs, wcsnrtombs): Add __NTH.
	* string/bits/string3.h (__memset_ichk): Likewise.
	(__memcpy_ichk, __memmove_ichk, __mempcpy_ichk, __strcpy_ichk,
	__stpcpy_ichk, __strncpy_ichk, stpncpy, __strcat_ichk,
	__strncat_ichk): Likewise.  Use __const instead of const.
	(__stpncpy_chk): Use __const instead of const.
	(__stpncpy_alias): Use __REDIRECT_NTH instead of __REDIRECT.

2005-08-08  Ulrich Drepper  <drepper@redhat.com>
	    Jakub Jelinek  <jakub@redhat.com>

	* nscd/mem.c (BLOCK_ALIGN_LOG, BLOCK_ALIGN, BLOCK_ALIGN_M1): Move
	definitions to...
	* nscd/nscd.h (BLOCK_ALIGN_LOG, BLOCK_ALIGN, BLOCK_ALIGN_M1): ...here.
	* nscd/connections.c (usekey): New enum.
	(check_use, verify_persistent_db): New functions.
	(nscd_init): If persistent database is corrupted, unlink it and
	recreate rather than falling back to non-persistent database.
	Call verify_persistent_db.  Avoid overflows in total computation.

2005-08-08  Ulrich Drepper  <drepper@redhat.com>

	* iconvdata/utf-16.c (PREPARE_LOOP): Minor cleanups to make code
	better readable.  Avoid passing var to loop function, it's not
	necessary at all.
Diffstat (limited to 'iconvdata/utf-16.c')
-rw-r--r--iconvdata/utf-16.c36
1 files changed, 16 insertions, 20 deletions
diff --git a/iconvdata/utf-16.c b/iconvdata/utf-16.c
index 6b0dd9c8f5..7f6c760900 100644
--- a/iconvdata/utf-16.c
+++ b/iconvdata/utf-16.c
@@ -1,5 +1,5 @@
 /* Conversion module for UTF-16.
-   Copyright (C) 1999, 2000-2002, 2003 Free Software Foundation, Inc.
+   Copyright (C) 1999, 2000-2002, 2003, 2005 Free Software Foundation, Inc.
    This file is part of the GNU C Library.
    Contributed by Ulrich Drepper <drepper@cygnus.com>, 1999.
 
@@ -44,10 +44,9 @@
 #define PREPARE_LOOP \
   enum direction dir = ((struct utf16_data *) step->__data)->dir;	      \
   enum variant var = ((struct utf16_data *) step->__data)->var;		      \
-  int swap;								      \
-  if (FROM_DIRECTION && var == UTF_16)					      \
+  if (__builtin_expect (data->__invocation_counter == 0, 0) && var == UTF_16) \
     {									      \
-      if (data->__invocation_counter == 0)				      \
+      if (FROM_DIRECTION)						      \
 	{								      \
 	  /* We have to find out which byte order the file is encoded in.  */ \
 	  if (inptr + 2 > inend)					      \
@@ -63,19 +62,18 @@
 	      *inptrp = inptr += 2;					      \
 	    }								      \
 	}								      \
-    }									      \
-  else if (!FROM_DIRECTION && var == UTF_16 && !data->__internal_use	      \
-	   && data->__invocation_counter == 0)				      \
-    {									      \
-      /* Emit the Byte Order Mark.  */					      \
-      if (__builtin_expect (outbuf + 2 > outend, 0))			      \
-	return __GCONV_FULL_OUTPUT;					      \
+      else if (!FROM_DIRECTION && !data->__internal_use)		      \
+	{								      \
+	  /* Emit the Byte Order Mark.  */				      \
+	  if (__builtin_expect (outbuf + 2 > outend, 0))		      \
+	    return __GCONV_FULL_OUTPUT;					      \
 									      \
-      put16u (outbuf, BOM);						      \
-      outbuf += 2;							      \
+	  put16u (outbuf, BOM);						      \
+	  outbuf += 2;							      \
+	}								      \
     }									      \
-  swap = ((struct utf16_data *) step->__data)->swap;
-#define EXTRA_LOOP_ARGS		, var, swap
+  int swap = ((struct utf16_data *) step->__data)->swap;
+#define EXTRA_LOOP_ARGS		, swap
 
 
 /* Direction of the transformation.  */
@@ -267,7 +265,7 @@ gconv_end (struct __gconv_step *data)
   }
 #define LOOP_NEED_FLAGS
 #define EXTRA_LOOP_DECLS \
-	, enum variant var, int swap
+	, int swap
 #include <iconv/loop.c>
 
 
@@ -328,8 +326,6 @@ gconv_end (struct __gconv_step *data)
 	  }								      \
 	else								      \
 	  {								      \
-	    uint16_t u2;						      \
-									      \
 	    /* It's a surrogate character.  At least the first word says      \
 	       it is.  */						      \
 	    if (__builtin_expect (inptr + 4 > inend, 0))		      \
@@ -341,7 +337,7 @@ gconv_end (struct __gconv_step *data)
 	      }								      \
 									      \
 	    inptr += 2;							      \
-	    u2 = get16 (inptr);						      \
+	    uint16_t u2 = get16 (inptr);				      \
 	    if (__builtin_expect (u2 < 0xdc00, 0)			      \
 		|| __builtin_expect (u2 > 0xdfff, 0))			      \
 	      {								      \
@@ -358,7 +354,7 @@ gconv_end (struct __gconv_step *data)
   }
 #define LOOP_NEED_FLAGS
 #define EXTRA_LOOP_DECLS \
-	, enum variant var, int swap
+	, int swap
 #include <iconv/loop.c>