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 >
ExternalProgramBase.patch
Description: Binary data