@@ -86,7 +86,6 @@ wikibase.queryService.ui.queryHelper.QueryHelper = ( function( $, wikibase, _ )
8686 SELF . prototype . setQuery = function ( query ) {
8787 var prefixes = wikibase . queryService . RdfNamespaces . ALL_PREFIXES ;
8888 this . _query . parse ( query , prefixes ) ;
89-
9089 this . _selectorBox . setQuery ( this . _query ) ;
9190 } ;
9291
@@ -111,28 +110,22 @@ wikibase.queryService.ui.queryHelper.QueryHelper = ( function( $, wikibase, _ )
111110 * @private
112111 */
113112 SELF . prototype . _cleanQueryPrefixes = function ( query ) {
114- var prefixRegex = / P R E F I X ( [ a - z ] + ) : < ( .* ) > / gi,
115- m ,
116- prefixes = { } ,
117- cleanQuery = query . replace ( prefixRegex , '' ) . replace ( / \n + / g, '\n' ) ;
118-
119- while ( ( m = prefixRegex . exec ( query ) ) ) {
120- var prefix = m [ 1 ] ;
121- var uri = m [ 2 ] . replace ( / [ \- \[ \] \/ \{ \} \( \) \* \+ \? \. \\ \^ \$ \| ] / g, '\\$&' ) ;
122-
123- var newQuery = cleanQuery . replace ( new RegExp ( '<' + uri + '([^/>#]+?)>' , 'gi' ) ,
124- prefix + ':$1' ) ;
125-
126- if ( cleanQuery !== newQuery ) {
127- cleanQuery = newQuery ;
128- if ( ! wikibase . queryService . RdfNamespaces . STANDARD_PREFIXES [ prefix ] ) {
129- prefixes [ m [ 0 ] ] = true ;
130- }
131- }
132- }
133-
134- cleanQuery = Object . keys ( prefixes ) . join ( '\n' ) + '\n\n' + cleanQuery . trim ( ) ;
135- return cleanQuery ;
113+ var prefixRe = / ^ \s * P R E F I X \s + ( [ a - z ] + ) : \s + < .* > \s * $ / ;
114+ return = query . split ( '\n' )
115+ . map ( function ( line ) {
116+ if ( ! prefixRe . test ( line ) ) {
117+ return line ;
118+ }
119+ line = line . trim ( ) ;
120+ var match = line . match ( prefixRe ) ;
121+ var prefix = match [ 1 ] ;
122+ if ( prefix in wikibase . queryService . RdfNamespaces . STANDARD_PREFIXES ) {
123+ return null ;
124+ }
125+ return line ;
126+ } )
127+ . filter ( Boolean )
128+ . join ( '\n' ) ;
136129 } ;
137130
138131 /**
0 commit comments