… | |
… | |
278 | put_string (k, v); |
278 | put_string (k, v); |
279 | } |
279 | } |
280 | |
280 | |
281 | void put (keyword k, double v) |
281 | void put (keyword k, double v) |
282 | { |
282 | { |
283 | char buf [128]; |
283 | force (32); |
284 | |
284 | ptr += sprintf (ptr, "%.7g", v); |
285 | snprintf (buf, 128, "%.7g", v); |
|
|
286 | |
|
|
287 | put (k, (const char *)buf); |
|
|
288 | } |
285 | } |
289 | |
286 | |
290 | void put_(keyword k, sint64 v) |
287 | void put_(keyword k, sint64 v) |
291 | { |
288 | { |
292 | add (keyword_str [k], keyword_len [k]); |
289 | add (keyword_str [k], keyword_len [k]); |
… | |
… | |
347 | char *as_string (); // like strdup |
344 | char *as_string (); // like strdup |
348 | |
345 | |
349 | operator bool () { return !!av; } |
346 | operator bool () { return !!av; } |
350 | }; |
347 | }; |
351 | |
348 | |
352 | // compatibility support, should be removed when no longer needed |
|
|
353 | void fprintf (object_freezer &freezer, const char *format, ...); |
|
|
354 | void fputs (const char *s, object_freezer &freezer); |
|
|
355 | |
|
|
356 | struct object_thawer |
349 | struct object_thawer |
357 | { |
350 | { |
358 | char *line; // current beginning of line |
351 | char *line; // current beginning of line |
359 | SV *text; // text part |
352 | SV *text; // text part |
360 | AV *av; // perl part |
353 | AV *av; // perl part |