Ruby
3.5.0dev (2025-02-22 revision 412997300569c1853c09813e4924b6df3d7e8669)
missing
nan.c
1
#include "ruby/missing.h"
2
#include <
assert.h
>
3
#include <stdlib.h>
4
#include <string.h>
5
6
double
7
nan(
const
char
*spec)
8
{
9
#if 0
10
/* FIXME: we have not yet seen any situation this is
11
* necessary. Please write a proper implementation that
12
* covers this branch. */
13
if
(spec && spec[0]) {
14
double
generated_nan;
15
int
len
= snprintf(NULL, 0,
"NAN(%s)"
, spec);
16
char
*buf = malloc(
len
+ 1);
/* +1 for NUL */
17
sprintf(buf,
"NAN(%s)"
, spec);
18
generated_nan =
strtod
(buf, NULL);
19
free(buf);
20
return
generated_nan;
21
}
22
else
23
#endif
24
{
25
assert(!spec || !spec[0]);
26
return
(
double
)NAN;
27
}
28
}
assert.h
len
int len
Length of the buffer.
Definition
io.h:8
strtod
#define strtod(s, e)
Just another name of ruby_strtod.
Definition
util.h:223
Generated by
1.9.8