Ruby
3.5.0dev (2025-01-10 revision 5fab31b15e32622c4b71d1d347a41937e9f9c212)
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