Excerpts from Bruno Haible's message of Sat Dec 03 08:50:37 -0500 2011: Hi Bruno,
> > +#if !HAVE_GETEUID > > +# define geteuid() ((uid_t) -1) > > +#endif > > Wow! You have thought at many things. You did it better than if I had > written this test. I saw a similar trick somewhere else in gnulib (although I can't find it now).... In one of the subsequent tweaks to this test, you restored a space between the function name and the emtpy () at the call site for geteuid. I realize I let some foo() slip through so it's understandable that you were doing a bunch of corrections. Will this not break the use of the macro for platforms lacking geteuid though? If so, the following patch should fix this. >From 7b0c5cb00ba3a294ce1919fded4dab2816919c03 Mon Sep 17 00:00:00 2001 From: Ben Walton <bwal...@artsci.utoronto.ca> Date: Sun, 4 Dec 2011 10:54:31 -0500 Subject: [PATCH] Tweak test-sethostname2 to intentionally violate coding style We must violate the coding style in test-sethostname2.c in order to allow the preprocessor to substitute a value for geteuid() on platforms that lack it. Signed-off-by: Ben Walton <bwal...@artsci.utoronto.ca> --- ChangeLog | 7 +++++++ tests/test-sethostname2.c | 5 ++++- 2 files changed, 11 insertions(+), 1 deletions(-) diff --git a/ChangeLog b/ChangeLog index 0bd5d06..d9a38b1 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2011-12-04 Ben Walton <bwal...@artsci.utoronto.ca> + + sethostname tests: Intentionally violate style + * tests/set-sethostname2.c: If geteuid isn't defined, we rely on + the macro geteuid() being replaced by the preprocessor. Remove + the space betwen function name and () so that this can happen. + 2011-12-04 Bruno Haible <br...@clisp.org> sethostname: Fix documentation. diff --git a/tests/test-sethostname2.c b/tests/test-sethostname2.c index 51f92ae..a791726 100644 --- a/tests/test-sethostname2.c +++ b/tests/test-sethostname2.c @@ -48,7 +48,10 @@ main (int argc, char *argv[] _GL_UNUSED) consider things like CAP_SYS_ADMIN (linux) or PRIV_SYS_ADMIN (solaris), etc. systems without a working geteuid (mingw, MSVC 9) will always skip this test. */ - if (geteuid () != 0) + /* NOTE: the missing space between function name and () is + intentional here so that in the event geteuid is derived from the + macro above it will still work. */ + if (geteuid() != 0) { fprintf (stderr, "Skipping test: insufficient permissions.\n"); return 77; -- 1.7.4.1 > Oops, that looks like a tab again. I did install a .dir-locals.el on one system and forgot to copy it to other places where I was testing this. Would a .dir-locals.el (and vim equivalent) file be something that might be included in the project? Something that defined the indentation and C style rules but nothing else? I suspect not, but I'm asking just in case. Thanks -Ben -- Ben Walton Systems Programmer - CHASS University of Toronto C:416.407.5610 | W:416.978.4302