1 /*----------------------------------------------------------------------*
3 *----------------------------------------------------------------------*
5 * All portions of code are copyright by their respective author/s.
6 * Copyright (c) 2004-2006 Marc Lehmann <pcg@goof.com>
8 * This program is free software; you can redistribute it and/or modify
9 * it under the terms of the GNU General Public License as published by
10 * the Free Software Foundation; either version 2 of the License, or
11 * (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 * GNU General Public License for more details.
18 * You should have received a copy of the GNU General Public License
19 * along with this program; if not, write to the Free Software
20 * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
21 *----------------------------------------------------------------------*/
29 class byteorder byteorder;
31 unsigned int byteorder::e;
33 byteorder::byteorder ()
48 #if !HAVE_GCC_BUILTINS
49 int rxvt_ctz (unsigned int x) CONST
53 x &= -x; // this isolates the lowest bit
55 if (x & 0xaaaaaaaa) r += 1;
56 if (x & 0xcccccccc) r += 2;
57 if (x & 0xf0f0f0f0) r += 4;
58 if (x & 0xff00ff00) r += 8;
59 if (x & 0xffff0000) r += 16;
64 int rxvt_popcount (unsigned int x) CONST
66 x -= (x >> 1) & 0x55555555;
67 x = ((x >> 2) & 0x33333333) + (x & 0x33333333);
68 x = ((x >> 4) + x) & 0x0f0f0f0f;
76 zero_initialized::operator new (size_t s)
85 zero_initialized::operator delete (void *p, size_t s)
90 static void *temp_buf;
91 static uint32_t temp_len;
94 rxvt_temp_buf (int len)
98 temp_buf = realloc (temp_buf, len);