@@ -79,7 +79,7 @@ var assembleCommand = function(options) {
7979
8080
8181var search = function ( root , args ) {
82- var d = Q . defer ( ) ;
82+ var d = Q . defer ( ) , prevfile = null ;
8383 var results = { } ;
8484
8585 args = _ . defaults ( args || { } , {
@@ -103,19 +103,28 @@ var search = function(root, args) {
103103 var proc = spawn ( command . command , command ) ;
104104 proc . stdout . on ( 'data' , function ( data ) {
105105 data = data . toString ( ) ;
106-
107- _ . each ( data . toString ( ) . split ( "\n" ) , function ( line ) {
108- var parts = line . split ( ":" ) ;
109- if ( parts . length < 3 ) return ;
110-
111- var _path = path . normalize ( parts [ 0 ] ) ;
112-
106+ var lines = data . toString ( ) . split ( / ( [ \n \r ] + ) / g) ;
107+
108+ for ( var i = 0 , l = lines . length ; i < l ; ++ i ) {
109+ var parts = lines [ i ] . split ( ":" ) ;
110+ if ( parts . length < 3 ) continue ;
111+
112+ var _path = path . normalize ( parts . shift ( ) . replace ( root , "" ) . trimRight ( ) ) ;
113+ var _line = parseInt ( parts . shift ( ) ) ;
114+ if ( ! _line ) {
115+ if ( prevfile ) {
116+ results [ prevfile ] [ results [ prevfile ] . length - 1 ] . content += "\n\r" + lines [ i ] ;
117+ }
118+ continue ;
119+ }
120+
121+ prevfile = _path ;
113122 results [ _path ] = results [ _path ] || [ ] ;
114123 results [ _path ] . push ( {
115- 'line' : parseInt ( parts [ 1 ] ) ,
116- 'content' : parts [ 2 ]
124+ 'line' : _line ,
125+ 'content' : parts . join ( ":" )
117126 } ) ;
118- } ) ;
127+ }
119128 } ) ;
120129
121130 proc . on ( 'error' , function ( err ) {
0 commit comments