summaryrefslogtreecommitdiffstats
path: root/Macros.h
AgeCommit message (Collapse)Author
2021-07-06Check for alloc_size attribute in configure.acBenny Baumann
2021-06-26Replaces WRAP_SUBTRACT with saturatingSub inline function to reduce code ↵fraggerfox
duplication.
2021-06-26Refactor saturatingSub() to be part of Macros.hfraggerfox
2021-04-14Rework TTY columnChristian Göttsche
* Rename internal identifier from TTY_NR to just TTY * Unify column header on platforms * Use devname(3) on BSD derivate to show the actual terminal, simplifies current FreeBSD implementation. * Use 'unsigned long int' as id type, to fit dev_t on Linux. Only on Solaris the terminal path is not yet resolved.
2021-03-21Use `#if defined()` syntax when `#elif defined()` is presentBenny Baumann
This prefers the `#if defined()` syntax over the `#ifdef` variant whenever there's also a `#elif defined()` clause, thus making the multiple branching structure more obvious and the overall use more consistent.
2021-01-11Add compiler hints on memory allocating utility functionsChristian Göttsche
2020-11-15Introduce spaceship comparison for ProcessesChristian Göttsche
If currently two unsigned values are compared via `a - b`, in the case b is actually bigger than a, the result will not be an negative number (as -1 is expected) but a huge positive number as the subtraction is an unsigned subtraction. Avoid over-/underflow affected operations; use comparisons. Modern compilers will generate sane code, like: xor eax, eax cmp rdi, rsi seta al sbb eax, 0 ret
2020-10-20Drop tabs in source indentionsChristian Göttsche
2020-10-19Allow low and high value of CLAMP to be equalChristian Göttsche
Can for example occur in RichString_setAttrn(), when pausing and resuming process tracing: htop: RichString.c:56: void RichString_setAttrn(RichString *, int, int, int): Assertion `(0) < (this->chlen - 1)' failed. ./htop(backtrace+0x5b)[0x45d9eb] ./htop(CRT_handleSIGSEGV+0x189)[0x4ebab9] /lib/x86_64-linux-gnu/libpthread.so.0(+0x14140)[0x7fd249d35140] /lib/x86_64-linux-gnu/libc.so.6(gsignal+0x141)[0x7fd249b6ac41] /lib/x86_64-linux-gnu/libc.so.6(abort+0x123)[0x7fd249b54537] /lib/x86_64-linux-gnu/libc.so.6(+0x2540f)[0x7fd249b5440f] /lib/x86_64-linux-gnu/libc.so.6(+0x345c2)[0x7fd249b635c2] ./htop(RichString_setAttrn+0x234)[0x526de4] ./htop(RichString_setAttr+0x50)[0x5275c0] ./htop(Panel_draw+0x17b6)[0x514c26] ./htop(InfoScreen_run+0x305)[0x4fe7a5] ./htop[0x4d59d8] ./htop[0x5029cf] ./htop(ScreenManager_run+0x69f)[0x52a82f] ./htop(main+0x704)[0x4f8774] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xea)[0x7fd249b55cca] ./htop(_start+0x2a)[0x4268ea]
2020-10-18Make all required includes explicitBenny Baumann
Information as seen by IWYU 0.12 + clang 9 on Linux
2020-10-06Enclose CLAMP macro arguments in parenthesesChristian Göttsche
2020-10-06Enable -Wcast-qual compiler warningChristian Göttsche
2020-10-05Assert that low value is lower than the high value in CLAMPChristian Göttsche
2020-10-03Introduce ARRAYSIZEChristian Göttsche
2020-09-18Refactor __attribute__ usageChristian Göttsche
Use internal macros for compatibility with non GNUC compilers.
2020-09-09Consolidate repeated macro definitions into one headerNathan Scott
The MIN, MAX, CLAMP, MINIMUM, and MAXIMUM macros appear throughout the codebase with many re-definitions. Make a single copy of each in a common header file, and use the BSD variants of MINIMUM/MAXIMUM due to conflicts in the system <sys/param.h> headers.