| 
					
				 | 
			
			
				@@ -1917,11 +1917,15 @@ TEXT is the string to transcode.  INFO is a plist holding 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 contextual information." 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				   (let ((specialp (plist-get info :with-special-strings)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	(output text)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    ;; Protect %, #, &, $, ^, _,  { and }. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-    (while (string-match "\\([^\\]\\|^\\)\\([%$#&{}^_]\\)" output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; Protect %, #, &, $, _, { and }. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (while (string-match "\\([^\\]\\|^\\)\\([%$#&{}_]\\)" output) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				       (setq output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	    (replace-match 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 	     (format "\\%s" (match-string 2 output)) nil t output 2))) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ;; Protect ^. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    (setq output 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	  (replace-regexp-in-string 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+	   "\\([^\\]\\|^\\)\\(\\^\\)" "\\\\^{}" output nil nil 2)) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; Protect \.  If special strings are used, be careful not to 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     ;; protect "\" in "\-" constructs. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     (let ((symbols (if specialp "-%$#&{}^_\\" "%$#&{}^_\\"))) 
			 |