Jean,
I'll have to hold on to your patch until the cvs re-org is complete. Guis, you should try applying it to your local tree and see if it fixes your issue.


Ian

indeed there is a problem (i see it in the code).

Gius,
if you do <exec append="true" ... />, you'll get all the text output,
but no line breaks between each output lines.  hopefully, that helps
some for now...

nant-dev, i don't have write-access to cvs, so i'm submitting a patch here, which
i haven't tested but that's straightforward, me thinks.


the problem is in ExternalProgramBase.cs

here the code snippet that misbehaves, followed by the code that SHOULD
work.

before:
private void StreamReaderThread_Error() {
StreamReader reader = ( StreamReader )_htThreadStream[
Thread.CurrentThread.Name ];
while ( true ) { string strLogContents = reader.ReadLine();
if ( strLogContents == null )
break;
// Ensure only one thread writes to the log at any time
lock ( _htThreadStream ) {
logger.Error(strLogContents);
//do not print LogPrefix, just pad that length...
Log.WriteLine(new string(char.Parse(" "),
LogPrefix.Length) + strLogContents);


                    if (OutputFile != null && OutputFile != "") {
                        StreamWriter writer = new
StreamWriter(OutputFile, OutputAppend);
                        writer.Write(strLogContents);
                        writer.Close();
                    }
                }
            }
        }
after:
#1: use writer.WriteLine(...)
#2: use doAppend, not OutputAppend.  doAppend initially set to
OutputAppend, then always true.

        private void StreamReaderThread_Output() {
            StreamReader reader = (StreamReader)
_htThreadStream[Thread.CurrentThread.Name];
            bool doAppend = OutputAppend;
            while (true) {
                string strLogContents = reader.ReadLine();
                if (strLogContents == null)
                    break;
                // Ensure only one thread writes to the log at any time
                lock (_htThreadStream) {
                    logger.Info(strLogContents);
                    //do not print LogPrefix, just pad that length.
                    Log(Level.Info, new string(char.Parse(" "),
LogPrefix.Length) + strLogContents);

                    if (OutputFile != null && OutputFile.Length != 0) {
                        StreamWriter writer = new
StreamWriter(OutputFile, doAppend);
                        writer.WriteLine(strLogContents);
                        doAppend = true;
                        writer.Close();
                    }
                }
            }
        }






-----Original Message-----
From: [EMAIL PROTECTED]
[mailto:[EMAIL PROTECTED] On Behalf Of Giuseppe Greco
Sent: Thursday, May 29, 2003 09:04
To: NAnt Users
Subject: [Nant-users] Problem with the <exec> task



Hi all,


There is a problem with the <exec> task. To produce a
Formattings Object (FO) file, I've written a task like
this:

<exec program="xsltproc" output="${build.dir}/mydocument.fo"
 commandline="mystylesheet.xsl mydocument.xml"/>

If you give a look at the generated mydocument.fo file,
only the first output line generated by xsltproc is there...
the rest is lost.

This is just an example; I stated the same problem with
other programs when trying to redirect output with the 'output' property.


Gius_.

----------------------------------------
Giuseppe Greco

::agamura::

phone:  +41 (0)91 604 67 65
mobile: +41 (0)76 390 60 32
email:  [EMAIL PROTECTED]
web:    www.agamura.com
----------------------------------------



-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-> 6916-5

_______________________________________________

Nant-users mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/n> ant-users





-------------------------------------------------------
This SF.net email is sponsored by: eBay
Get office equipment for less on eBay!
http://adfarm.mediaplex.com/ad/ck/711-11697-6916-5
_______________________________________________
Nant-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/nant-developers

Reply via email to