2026-05-25 10:33:29 +01:00
|
|
|
#include <bshell/format.h>
|
2026-05-24 20:19:32 +01:00
|
|
|
#include <fx/term/print.h>
|
|
|
|
|
#include <fx/type.h>
|
|
|
|
|
#include <fx/value-type.h>
|
|
|
|
|
|
|
|
|
|
static void format_value_fallback(const fx_value *value, fx_stream *dest)
|
|
|
|
|
{
|
2026-05-30 21:08:39 +01:00
|
|
|
#if BSHELL_INTERACTIVE == 1
|
2026-05-24 20:19:32 +01:00
|
|
|
fx_printf("[yellow]");
|
2026-05-30 21:08:39 +01:00
|
|
|
#endif
|
|
|
|
|
|
2026-05-24 20:19:32 +01:00
|
|
|
fx_value_to_string(value, dest, NULL);
|
2026-05-30 21:08:39 +01:00
|
|
|
|
|
|
|
|
#if BSHELL_INTERACTIVE == 1
|
2026-05-24 20:19:32 +01:00
|
|
|
fx_printf("[reset]\n");
|
2026-05-30 21:08:39 +01:00
|
|
|
#endif
|
2026-05-24 20:19:32 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
enum bshell_status format_value_default(const fx_value *value, fx_stream *dest)
|
|
|
|
|
{
|
|
|
|
|
if (fx_type_is_value_type(value->v_type)) {
|
|
|
|
|
format_value_fallback(value, dest);
|
|
|
|
|
return BSHELL_SUCCESS;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
fx_object *object = NULL;
|
|
|
|
|
fx_value_get_object(value, &object);
|
|
|
|
|
enum bshell_status status = format_object_table(object, dest);
|
|
|
|
|
if (status != BSHELL_SUCCESS) {
|
|
|
|
|
format_value_fallback(value, dest);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return BSHELL_SUCCESS;
|
|
|
|
|
}
|