void ft_putwchar_fd(unsigned int c, int fd) { int sb; sb = significant_bit(&c, 4); if (sb <= 7) ft_putchar_fd(c, fd); else if (sb <= 11) { c = do_mask(c, 0xC080, 0xE0C0); ft_putoctet_fd((unsigned char*)&c, 2, fd); } else if (sb <= 16) { c = do_mask(c, 0xE08080, 0xF0C0C0); ft_putoctet_fd((unsigned char*)&c, 3, fd); } else { c = do_mask(c, 0xF0808080, 0xF8C0C0C0); ft_putoctet_fd((unsigned char*)&c, 4, fd); } }
LOCAL void PROC do_path (char *pathend) { struct find_t fi; do_mask (pathend); if (recurse == 0) return; adds (pathend, "*.*"); if (_dos_findfirst (path, DIR_ATTR, &fi)) return; do { const char *p; if ((fi.attrib & _A_SUBDIR) == 0) continue; p = fi.name-1; do p++; while (*p == '.'); if (*p == '\0') continue; /* name == dots */ do_path (adds (adds (pathend, fi.name), "\\")); } while (_dos_findnext (&fi) == 0); }
HXBOOL hx_maskaddr6(in6_addr* paddr, UINT32 bits) { return do_mask(sizeof(in6_addr), (BYTE*)&paddr->s6_addr, bits); }