Thank you for your help.
I used your code and implemented it.
cl_object string, stream, object, eof, evObj;
string = make_simple_base_string(srccontent);
stream = cl_make_string_input_stream(1,string);
eof = string; /* Marker for EOF */
do {
object = cl_read(3, stream, Cnil, eof);
if(object == eof)
break;
evObj = si_safe_eval(2, object, Cnil);
cl_object princed = cl_princ_to_string(evObj); //Get output
char* output = (char*)princed->base_string.self; //Convert the last result
to text
ap_rputs(output, r); //Print out the last result to the client
ap_rputs("\n", r);
} while (1);
If I run this lisp code:
(defun hello-world-two()
(print "Hello world!")
(print "How are you today"))
(hello-world-two)
It just prints out:
How are you today
While ECL itself prints:
"Hello world!"
"How are you today"
"How are you today"
Do I have to run the evaluated object
through a loop to get all output?
Von: Juan Jose Garcia-Ripoll [mailto:juanjose.garciarip...@googlemail.com]
Gesendet: Sonntag, 4. Juli 2010 19:33
An: Pascal J. Bourguignon
Cc: ecls-list@lists.sourceforge.net
Betreff: Re: [Ecls-list] Simple Hello word! function
The other option, which is not that bad, is to create a REPL for that
string.
cl_object string, stream, object, end;
string = make_simple_base_string(".....");
stream = cl_make_string_input_stream(1,string);
eof = string; /* Marker for EOF */
do {
object = cl_read(3, stream, Cnil, eof);
if (object == eof)
break;
...
si_eval...(object);
} while (1);
------------------------------------------------------------------------------
This SF.net email is sponsored by Sprint
What will you do first with EVO, the first 4G phone?
Visit sprint.com/first -- http://p.sf.net/sfu/sprint-com-first
_______________________________________________
Ecls-list mailing list
Ecls-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ecls-list