[Vala] Genie and extra '\n' in some strings



Hi. I was playing around with Vala and Genie and I noticed that in the
case of Genie, the compiler adds an extra '\ n' sequence at the end of
some strings. Is that supposed to be?


Test program in Genie

// hello.gs
init
       var caption = "Hello World!\n"
       var hello = new HelloWorld ()
       var message = hello.say (caption)
       print ("Message: %s\n", message)

class HelloWorld : Object

       def say (greeting : string) : string

               print (greeting)
               return "OK"


Some fragments of a program in C

// hello.c

...

void _vala_main (gchar** args, int args_length1) {
       gchar* _tmp0_;
       gchar* caption;
       HelloWorld* _tmp1_;
       HelloWorld* hello;
       gchar* _tmp2_ = NULL;
       gchar* message;
       _tmp0_ = g_strdup ("Hello World!\n");
       caption = _tmp0_;
       _tmp1_ = hello_world_new ();
       hello = _tmp1_;
       _tmp2_ = hello_world_say (hello, caption);
       message = _tmp2_;
       g_print ("Message: %s\n\n", message); // <-- an extra '\n' here
       _g_free0 (message);
       _g_object_unref0 (hello);
       _g_free0 (caption);
}

...

gchar* hello_world_say (HelloWorld* self, const gchar* greeting) {
       gchar* result = NULL;
       const gchar* _tmp0_;
       gchar* _tmp1_;
       gchar* _tmp2_;
       gchar* _tmp3_;
       g_return_val_if_fail (self != NULL, NULL);
       g_return_val_if_fail (greeting != NULL, NULL);
       _tmp0_ = greeting;
       _tmp1_ = g_strconcat (_tmp0_, "\n", NULL); // <-- an extra '\n' here
       _tmp2_ = _tmp1_;
       g_print ("%s", _tmp2_);
       _g_free0 (_tmp2_);
       _tmp3_ = g_strdup ("OK");
       result = _tmp3_;
       return result;
}

...

Attachment: hello.c
Description: Text Data



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]