text: /* ************************************************************************** */
  /*                                                          LE - /            */
  /*                                                              /             */
  /*   ft_utf8_4.c                                      .::    .:/ .      .::   */
  /*                                                 +:+:+   +:    +:  +:+:+    */
  /*   By: clcreuso <clcreuso@student.le-101.fr>      +:+   +:    +:    +:+     */
  /*                                                 #+#   #+    #+    #+#      */
  /*   Created: 2017/12/28 16:35:13 by clcreuso     #+#   ##    ##    #+#       */
  /*   Updated: 2017/12/28 16:35:13 by clcreuso    ###    #+. /#+    ###.fr     */
  /*                                                         /                  */
  /*                                                        /                   */
  /* ************************************************************************** */
  
  #include "libft.h"
  
  int	ft_utf8_4(wchar_t w, int fd)
  {
  	unsigned char	*tmp;
  	int				ret;
  
  	ret = 0;
  	tmp = (unsigned char *)ft_strnew(5);
  	tmp[0] = ((w >> 18) | 240);
  	if (w >= 65536 && w <= 131071)
  		tmp[1] = (((w >> 12) ^ 32) | 128);
  	else if (w >= 131072 && w <= 262143)
  		tmp[1] = (((w >> 12) ^ 64) | 128);
  	else if (w >= 1048576 && w <= 1114111)
  		tmp[1] = ((((w >> 12) ^ 256)) | 128);
  	else
  		tmp[1] = ((((w >> 12) ^ ((w >> 18) << 6))) | 128);
  	tmp[2] = ((((w >> 6) ^ ((w >> 12) << 6))) | 128);
  	tmp[3] = ((w ^ ((w >> 6) << 6)) | 128);
  	while (tmp[ret])
  		write(fd, &tmp[ret++], 1);
  	free(tmp);
  	return (ret);
  }
  