mruby: implement dummy KernAux.snprintf1

This commit is contained in:
Alex Kotov 2022-05-24 18:55:39 +03:00
parent 8593fb4246
commit eaa0015d47
Signed by: kotovalexarian
GPG Key ID: 553C0EBBEB5D5F08
4 changed files with 27 additions and 4 deletions

View File

@ -23,10 +23,6 @@ module KernAux
snprintf1(SPRINTF1_BUFFER_SIZE, format, *args).first
end
def self.snprintf1(_buffer_size, _format, ...)
['', 0]
end
class Error < RuntimeError; end
class AssertError < Error; end
end

View File

@ -27,6 +27,7 @@ void mrb_mruby_kernaux_gem_init(mrb_state *const mrb)
init_assert(mrb);
init_ntoa(mrb);
init_cmdline(mrb);
init_printf(mrb);
}
void current_mrb_start(mrb_state *mrb)

View File

@ -10,5 +10,6 @@ mrb_state *current_mrb_get();
void init_assert(mrb_state *mrb);
void init_ntoa(mrb_state *mrb);
void init_cmdline(mrb_state *mrb);
void init_printf(mrb_state *mrb);
#endif

25
pkgs/mruby/src/printf.c Normal file
View File

@ -0,0 +1,25 @@
#include "main.h"
#include <kernaux.h>
#include <mruby.h>
#include <mruby/array.h>
#include <mruby/presym.h>
static mrb_value rb_KernAux_snprintf1(mrb_state *mrb, mrb_value self);
void init_printf(mrb_state *const mrb)
{
struct RClass *const rb_KernAux = mrb_module_get_id(mrb, MRB_SYM(KernAux));
mrb_define_class_method(mrb, rb_KernAux, "snprintf1", rb_KernAux_snprintf1,
MRB_ARGS_REQ(2) | MRB_ARGS_OPT(2));
}
mrb_value rb_KernAux_snprintf1(mrb_state *const mrb, mrb_value self)
{
mrb_value values[2];
values[0] = mrb_obj_freeze(mrb, mrb_str_new_lit(mrb, ""));
values[1] = mrb_nil_value();
return mrb_obj_freeze(mrb, mrb_ary_new_from_values(mrb, 2, values));
}