--- a/STCCompilerInterface.st Tue Aug 29 17:29:05 2006 +0200
+++ b/STCCompilerInterface.st Tue Aug 29 19:18:38 2006 +0200
@@ -151,7 +151,7 @@
command oFileName cFileName
initName oldMethod newMethod ok status className sep class stcPath ccPath
errorStream errorMessages eMsg moduleFileName
- mapFileName libFileName pkg libDir incDir incDirArg|
+ mapFileName libFileName pkg libDir incDir incDirArg lNr|
install ifFalse:[
"/ cannot do it uninstalled. reason:
@@ -372,11 +372,13 @@
] ifFalse:[
errorMessages := 'errorOutput' asFilename contents.
errorMessages notNil ifTrue:[
+ errorMessages := errorMessages reject:[:line | line includesString:'Warning:'].
+
errorMessages size > 20 ifTrue:[
-errorMessages := errorMessages select:[:line | line asLowercase startsWith:'error'].
-errorMessages size > 20 ifTrue:[
- errorMessages := (errorMessages copyTo:20) copyWith:'... more messages skipped'
-].
+ errorMessages := errorMessages select:[:line | line asLowercase startsWith:'error'].
+ errorMessages size > 20 ifTrue:[
+ errorMessages := (errorMessages copyTo:20) copyWith:'... more messages skipped'
+ ].
].
"/ errorMessages := errorMessages collect:[:line |
"/ (line startsWith:(stFileName , ':')) ifTrue:[
@@ -385,21 +387,42 @@
"/ line
"/ ]
"/ ].
- errorMessages := errorMessages asString
].
errorMessages isNil ifTrue:[
- errorMessages := ''
+ errorMessages := #('')
].
+
+ "/ try to extract a line number"
+ (errorMessages contains:[:line | line includesString:'Borland']) ifTrue:[
+ |i i2 s|
+ i := errorMessages findFirst:[:l | l startsWith:(cFileName,':')].
+ i ~~ 0 ifTrue:[
+ ((errorMessages at:i+1) startsWith:'Error') ifTrue:[
+ i2 := (errorMessages at:i+1) indexOfSubCollection:(stFileName).
+ i2 ~~ 0 ifTrue:[
+ s := (errorMessages at:i+1) copyFrom:(i2+stFileName size+1).
+ s := s readStream.
+ lNr := Integer readFrom:s.
+ s skipSeparators.
+ ].
+ ]
+ ].
+ ].
+
errorMessages isEmpty ifTrue:[
- eMsg := 'STC / CC error during compilation:\\unspecified error' withCRs
+ eMsg := 'Error during compilation:\\Unspecified error (no output)' withCRs
] ifFalse:[
- eMsg := 'STC / CC error during compilation:\\'withCRs,errorMessages
+ eMsg := 'Error during compilation:\\' withCRs ,
+ (errorMessages asStringCollection asString).
].
"/ eMsg := eMsg withCRs
].
originator activityNotification:'compilation failed'.
- originator parseError:eMsg position:1.
-
+ lNr notNil ifTrue:[
+ originator parseError:eMsg line:lNr
+ ] ifFalse:[
+ originator parseError:eMsg position:1.
+ ].
originator activityNotification:''.
^ #Error
].
@@ -644,7 +667,7 @@
!STCCompilerInterface class methodsFor:'documentation'!
version
- ^ '$Header: /cvs/stx/stx/libcomp/STCCompilerInterface.st,v 1.3 2006-02-20 09:10:05 cg Exp $'
+ ^ '$Header: /cvs/stx/stx/libcomp/STCCompilerInterface.st,v 1.4 2006-08-29 17:18:38 cg Exp $'
! !
STCCompilerInterface initialize!