Skip to content

Declaration of RuleThickness() in src/main/plotmath.c (PR#7380)

2 messages · Wolfgang Huber, Peter Dalgaard

#
Full_Name: Wolfgang Huber
Version: R-2.0.1
OS: HP-UX B.11.23 ia64
Submission from: (NULL) (81.104.215.6)


Hi, 

I hope I am not missing something basic... I am using a somewhat exotic compiler
and OS, but if I understand what I am seeing the problem is more general:

In src/main/plotmath.c, the following function is defined

/* Thickness of rules */
static double RuleThickness()
{
    return 0.015;
}

but later it is called in expressions like

  RuleThickness(gc, dd)

This leads to a compiler error:

cc +DD64 -I../../src/extra/zlib -I../../src/extra/bzip2 -I../../src/extra/pcre 
-I. -I../../src/include -I../../src/include -I/usr/local/include -DHAVE_CONFIG_H
  -O +e -c plotmath.c -o plotmath.o
Error 181: "plotmath.c", line 255 # Expected 0 argument(s) for "double
RuleThickness()"; had 2 instead.
                + 3.51 * RuleThickness(gc, dd)
 

It would appear that the function definition should include the argument
(R_GE_gcontext *gc, GEDevDesc *dd), like in the other functions that are defined
around there.
#
huber@ebi.ac.uk writes:
It appears like that to me too, but why, oh why, hasn't any of the
other compilers been complaining about it???? (Perhaps this is
actually legal ANSI C, and compilers are only supposed to barf if you
declare statid double RuleThickness(void)?)