| 
				
			 | 
			
			
				@@ -1321,11 +1321,12 @@ __jat__writelog() { 
			 | 
		
	
		
			
			| 
				1321
			 | 
			
				1321
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				1322
			 | 
			
				1322
			 | 
			
			
				     # Write logged output (copy if needed) 
			 | 
		
	
		
			
			| 
				1323
			 | 
			
				1323
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				1324
			 | 
			
				
			 | 
			
			
				-    case $JAT__YLOG in 
			 | 
		
	
		
			
			| 
				1325
			 | 
			
				
			 | 
			
			
				-        "") cat >> "$__JAT__SDIR/log.yaml" ;; 
			 | 
		
	
		
			
			| 
				1326
			 | 
			
				
			 | 
			
			
				-        -)  tee -a "$__JAT__SDIR/log.yaml" ;; 
			 | 
		
	
		
			
			| 
				1327
			 | 
			
				
			 | 
			
			
				-        *)  tee -a "$__JAT__SDIR/log.yaml" >> "$JAT__YLOG" ;; 
			 | 
		
	
		
			
			| 
				1328
			 | 
			
				
			 | 
			
			
				-    esac 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1324
			 | 
			
			
				+    __jat__strip4yaml \ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1325
			 | 
			
			
				+      | case $JAT__YLOG in 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1326
			 | 
			
			
				+            "") cat >> "$__JAT__SDIR/log.yaml" ;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1327
			 | 
			
			
				+            -)  tee -a "$__JAT__SDIR/log.yaml" ;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1328
			 | 
			
			
				+            *)  tee -a "$__JAT__SDIR/log.yaml" >> "$JAT__YLOG" ;; 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1329
			 | 
			
			
				+        esac 
			 | 
		
	
		
			
			| 
				1329
			 | 
			
				1330
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1330
			 | 
			
				1331
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				1331
			 | 
			
				1332
			 | 
			
			
				 __jat__valid_beid() { 
			 | 
		
	
	
		
			
			| 
				
			 | 
			
			
				@@ -1344,6 +1345,31 @@ __jat__valid_pair() { 
			 | 
		
	
		
			
			| 
				1344
			 | 
			
				1345
			 | 
			
			
				     grep -qx '\([tor][.]\)\?[[:alpha:]_][[:alnum:]_]*=.*' <<<"$tainted" 
			 | 
		
	
		
			
			| 
				1345
			 | 
			
				1346
			 | 
			
			
				 } 
			 | 
		
	
		
			
			| 
				1346
			 | 
			
				1347
			 | 
			
			
				  
			 | 
		
	
		
			
			| 
				
			 | 
			
				1348
			 | 
			
			
				+__jat__strip4yaml() { 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1349
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1350
			 | 
			
			
				+    # Replace yaml-invalid characters 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1351
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1352
			 | 
			
			
				+    # Yaml won't allow all characters: 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1353
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1354
			 | 
			
			
				+    # > [...] The allowed character range explicitly excludes the C0 control 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1355
			 | 
			
			
				+    # > block #x0-#x1F (except for TAB #x9, LF #xA, and CR #xD which are 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1356
			 | 
			
			
				+    # > allowed), DEL #x7F, the C1 control block #x80-#x9F (except for NEL 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1357
			 | 
			
			
				+    # > #x85 which is allowed), the surrogate block #xD800-#xDFFF, #xFFFE, 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1358
			 | 
			
			
				+    # > and #xFFFF. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1359
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1360
			 | 
			
			
				+    # so take stdin and replace all unacceptable characters with '�'. 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1361
			 | 
			
			
				+    # 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1362
			 | 
			
			
				+    local bad           # perl 'tr///' range of bad characters 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1363
			 | 
			
			
				+    local repl='�'      # replacement char 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1364
			 | 
			
			
				+    bad+='\N{U+0}-\N{U+8}\N{U+B}\N{U+C}\N{U+E}-\N{U+1F}'    # C0 with some gaps 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1365
			 | 
			
			
				+    bad+='\N{U+7F}'                                         # DEL alone 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1366
			 | 
			
			
				+    bad+='\N{U+80}-\N{U+84}\N{U+86}-\N{U+9F}'               # C1 with NEL gap 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1367
			 | 
			
			
				+    #   bad+='\N{U+D800}-\N{U+DFFF}'                        # surrogates 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1368
			 | 
			
			
				+    #   bad+='\N{U+FFFE}-\N{U+FFFF}'                        # 0xFFFE and 0xFFFF 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1369
			 | 
			
			
				+    #FIXME: for some reasons perl complains about these ^^ 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1370
			 | 
			
			
				+    perl -CS -Mutf8 -pe "tr/$bad/$repl/" 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1371
			 | 
			
			
				+} 
			 | 
		
	
		
			
			| 
				
			 | 
			
				1372
			 | 
			
			
				+ 
			 | 
		
	
		
			
			| 
				1347
			 | 
			
				1373
			 | 
			
			
				 __jat__yamls() { 
			 | 
		
	
		
			
			| 
				1348
			 | 
			
				1374
			 | 
			
			
				     # 
			 | 
		
	
		
			
			| 
				1349
			 | 
			
				1375
			 | 
			
			
				     # Print a scalar field named $1 with value $2 
			 |