strip (memcpy (fromcode_conv, fromcode, fromcode_len + 1));
strip (fromcode_conv, fromcode);
iconv_open (const char *tocode, const char *fromcode){  char *tocode_conv;  char *fromcode_conv;  size_t tocode_len;  size_t fromcode_len;  gconv_t cd;  int res;  /* Normalize the name.  We remove all characters beside alpha-numeric,     '_', '-', '/', and '.'.  */  tocode_len = strlen (tocode);  tocode_conv = alloca (tocode_len + 3);  strip (memcpy (tocode_conv, tocode, tocode_len + 1));  fromcode_len = strlen (fromcode);  fromcode_conv = alloca (fromcode_len + 3);  strip (memcpy (fromcode_conv, fromcode, fromcode_len + 1));  res = __gconv_open (tocode_conv[2] == '\0' ? tocode : tocode_conv,		      fromcode_conv[2] == '\0' ? fromcode, fromcode_conv, &cd);  if (res != GCONV_OK)    {      /* We must set the error number according to the specs.  */      if (res == GCONV_NOCONV || res == GCONV_NODB)	__set_errno (EINVAL);      return (iconv_t) -1;    }  return (iconv_t) cd;}