On 01/12/2013 05:25 AM, Stefan Monnier wrote: > Do you really consider this code cleaner? The implementation's worse, but the use is nicer, since eabs is guaranteed to evaluate its argument just once. Anyway, here's a simpler implementation that also evaluates its argument just once: would you prefer this? #define eabs(x) imaxabs (x) (This is shorter and simpler than what's in Emacs now.) I've attached a complete patch based on this idea. It incorporates Eli's suggestion to implement imaxabs via abs rather than labs on 32-bit MS-Windows. (The idea is to avoid the need to build imaxabs.o on Windows.)