patch 9.1.0233: Vim9: string() output of enum is problematic
Problem: Vim9: string() output of enum is problematic
Solution: Make string() output for an enum consistent with that of a
regular object (Yegappan Lakshmanan).
closes: #14343
Signed-off-by: Yegappan Lakshmanan <yegappan@yahoo.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/vim9class.c b/src/vim9class.c
index 2d60ba9..fc4e002 100644
--- a/src/vim9class.c
+++ b/src/vim9class.c
@@ -3844,16 +3844,18 @@
class_T *cl = obj == NULL ? NULL : obj->obj_class;
if (cl != NULL && IS_ENUM(cl))
{
+ ga_concat(&ga, (char_u *)"enum ");
ga_concat(&ga, cl->class_name);
- char_u *name = ((typval_T *)(obj + 1))->vval.v_string;
+ char_u *enum_name = ((typval_T *)(obj + 1))->vval.v_string;
ga_concat(&ga, (char_u *)".");
- ga_concat(&ga, name);
- return ga.ga_data;
+ ga_concat(&ga, enum_name);
}
-
- ga_concat(&ga, (char_u *)"object of ");
- ga_concat(&ga, cl == NULL ? (char_u *)"[unknown]"
- : cl->class_name);
+ else
+ {
+ ga_concat(&ga, (char_u *)"object of ");
+ ga_concat(&ga, cl == NULL ? (char_u *)"[unknown]"
+ : cl->class_name);
+ }
if (cl != NULL)
{
ga_concat(&ga, (char_u *)" {");