Unfortunately that's not possible in the case of
virStrcpyStatic(). Because
virStrcpyStatic() does a sizeof(dest), you have to have the original char
foo[123], not a char *, to get something meaningful. That means that it has to
either be a macro or not exist at all. (I could be convinced of the latter, but
I found it convenient when converting a number of these locations)
I could make virStrcpy a small function, though.
Yes, that would be quite nice. It would remove the multiple-evaluation
problem from virStrcpyStatic too.
In the followup I'd also like to have macro arguments parenthesized:
#define virStrcpyStatic(dest, src) \
virStrcpy((dest), (src), sizeof(dest))
I don't remember off the top of my head the case in which that would be
a problem (since these are just function arguments), but I'm sure Jim
Meyering could enlighten us. ;-)
Paolo