[T106][ZXW-22]7520V3SCV2.01.01.02P42U09_VEC_V0.8_AP_VEC origin source commit

Change-Id: Ic6e05d89ecd62fc34f82b23dcf306c93764aec4b
diff --git a/ap/libc/glibc/glibc-2.22/localedata/show-ucs-data.c b/ap/libc/glibc/glibc-2.22/localedata/show-ucs-data.c
new file mode 100644
index 0000000..85d2659
--- /dev/null
+++ b/ap/libc/glibc/glibc-2.22/localedata/show-ucs-data.c
@@ -0,0 +1,69 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <sys/types.h>
+
+int
+main (int argc, char *argv[])
+{
+  int n;
+  char *line = NULL;
+  size_t len = 0;
+
+  if (argc == 1)
+    {
+      static char *new_argv[] = { NULL, (char *) "/dev/stdin", NULL };
+      argv = new_argv;
+      argc = 2;
+    }
+
+  for (n = 1; n < argc; ++n)
+    {
+      FILE *fp = fopen (argv[n], "r");
+      if (fp == NULL)
+	continue;
+
+      while (! feof (fp))
+	{
+	  ssize_t cnt = getline (&line, &len, fp);
+	  char *runp;
+	  if (cnt <= 0)
+	    break;
+
+	  runp = line;
+	  do
+	    {
+	      if (runp[0] == '<' && runp[1] == 'U' && isxdigit (runp[2])
+		  && isxdigit (runp[3]) && isxdigit (runp[4])
+		  && isxdigit (runp[5]) && runp[6] == '>')
+		{
+		  unsigned int val = strtoul (runp + 2, NULL, 16);
+
+		  //putchar ('<');
+		  if (val < 128)
+		    putchar (val);
+		  else if (val < 0x800)
+		    {
+		      putchar (0xc0 | (val >> 6));
+		      putchar (0x80 | (val & 0x3f));
+		    }
+		  else
+		    {
+		      putchar (0xe0 | (val >> 12));
+		      putchar (0x80 | ((val >> 6) & 0x3f));
+		      putchar (0x80 | (val & 0x3f));
+		    }
+		  //putchar ('>');
+		  runp += 7;
+		}
+	      else
+		putchar (*runp++);
+	    }
+	  while (runp < &line[cnt]);
+	}
+
+      fclose (fp);
+    }
+
+  return 0;
+}