#!/usr/local/bin/gawk -f
##public script mkfilters filter checkmir charsets : cp1252 och UTF-8
##public script mkfilters filter checkmir code BEGIN{peili="(;);[;];{;};-\240;\240-;;;;;;;;;;;;;;;;;;;\227\240;\240\227";if(length(sprintf("%c%c%c%c",0,16,216,128))==3){gsub(/\240/,"\302\240");gsub(/\227/,"\342\200\224")};antalspeglar=split(peili,tkn,";")/2;IGNORECASE=1}{for(peili=1;peili<=antalspeglar;peili++){if((split($0,slask,tkn[peili*2-1])!=split($0,slask,tkn[peili*2]))||(index($0,tkn[peili*2-1] tkn[peili*2]))||($0~/""/)){print tkn[peili*2-1] NR tkn[peili*2] " " $0}} if((split($0,slask,"\"")%2==0)&&(length($0)>0)){print "\"" NR "\"" " " $0}}
##public script mkfilters filter checkmir creation : 2007-02-01
##public script mkfilters filter checkmir filter : checkmir.awk
##public script mkfilters filter checkmir known-"bugs" : doesn't check ,
, | nor
##public script mkfilters filter checkmir known-bug : doesn't like ""
##public script mkfilters filter checkmir last-modified : 2007-10-31
##public script mkfilters filter checkmir purpose : checks that parentheses and other mirror characters in an ISO_8859, CP_1252 or ASCII file occur in pairs. Prints lines where this is not the case, beginning with the line number between the mirror characters
BEGIN{peili="(;);[;];{;};-\240;\240-;;;;;;;;;;;;;;;;;;;\227\240;\240\227";if(length(sprintf("%c%c%c%c",0,16,216,128))==3){gsub(/\240/,"\302\240");gsub(/\227/,"\342\200\224")};antalspeglar=split(peili,tkn,";")/2;IGNORECASE=1}{for(peili=1;peili<=antalspeglar;peili++){if((split($0,slask,tkn[peili*2-1])!=split($0,slask,tkn[peili*2]))||(index($0,tkn[peili*2-1] tkn[peili*2]))||($0~/""/)){print tkn[peili*2-1] NR tkn[peili*2] " " $0}} if((split($0,slask,"\"")%2==0)&&(length($0)>0)){print "\"" NR "\"" " " $0}}