More rigorous regexp escaping
This commit is contained in:
		
							parent
							
								
									ef0f9b986e
								
							
						
					
					
						commit
						c4608279af
					
				@ -149,20 +149,16 @@ private
 | 
				
			|||||||
  end
 | 
					  end
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
def inreplace(path, before, after)
 | 
					def inreplace(path, before, after)
 | 
				
			||||||
  before=before.to_s
 | 
					  before=before.to_s.gsub('"', '\"').gsub('/', '\/')
 | 
				
			||||||
  after=after.to_s
 | 
					  after=after.to_s.gsub('"', '\"').gsub('/', '\/')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  before.gsub! '"', '\"'
 | 
					 | 
				
			||||||
  after.gsub! '"', '\"'
 | 
					 | 
				
			||||||
  before.gsub! '|', '\|"'
 | 
					 | 
				
			||||||
  after.gsub! '|', '\|"'
 | 
					 | 
				
			||||||
  # we're not using Ruby because the perl script is more concise
 | 
					  # we're not using Ruby because the perl script is more concise
 | 
				
			||||||
  #TODO the above escapes are worse, use a proper ruby script :P
 | 
					  #TODO the above escapes are worse, use a proper ruby script :P
 | 
				
			||||||
  #TODO optimise it by taking before and after as arrays
 | 
					  #TODO optimise it by taking before and after as arrays
 | 
				
			||||||
  #Bah, just make the script writers do it themselves with a standard collect block
 | 
					  #Bah, just make the script writers do it themselves with a standard collect block
 | 
				
			||||||
  `perl -pi -e "s|#{before}|#{after}|g" "#{path}"`
 | 
					  #TODO use ed -- less to escape
 | 
				
			||||||
 | 
					  `perl -pi -e "s/#{before}/#{after}/g" "#{path}"`
 | 
				
			||||||
end
 | 
					end
 | 
				
			||||||
 | 
					
 | 
				
			||||||
def system cmd
 | 
					def system cmd
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user