1da2e3ebdSchin########################################################################
2da2e3ebdSchin#                                                                      #
3da2e3ebdSchin#               This software is part of the ast package               #
4*b30d1939SAndy Fiddaman#          Copyright (c) 1982-2012 AT&T Intellectual Property          #
5da2e3ebdSchin#                      and is licensed under the                       #
6*b30d1939SAndy Fiddaman#                 Eclipse Public License, Version 1.0                  #
77c2fbfb3SApril Chin#                    by AT&T Intellectual Property                     #
8da2e3ebdSchin#                                                                      #
9da2e3ebdSchin#                A copy of the License is available at                 #
10*b30d1939SAndy Fiddaman#          http://www.eclipse.org/org/documents/epl-v10.html           #
11*b30d1939SAndy Fiddaman#         (with md5 checksum b35adb5213ca9657e911e9befb180842)         #
12da2e3ebdSchin#                                                                      #
13da2e3ebdSchin#              Information and Software Systems Research               #
14da2e3ebdSchin#                            AT&T Research                             #
15da2e3ebdSchin#                           Florham Park NJ                            #
16da2e3ebdSchin#                                                                      #
17da2e3ebdSchin#                  David Korn <dgk@research.att.com>                   #
18da2e3ebdSchin#                                                                      #
19da2e3ebdSchin########################################################################
20da2e3ebdSchinfunction err_exit
21da2e3ebdSchin{
22da2e3ebdSchin	print -u2 -n "\t"
23da2e3ebdSchin	print -u2 -r ${Command}[$1]: "${@:2}"
24da2e3ebdSchin	let Errors+=1
25da2e3ebdSchin}
26da2e3ebdSchinalias err_exit='err_exit $LINENO'
27da2e3ebdSchin
28da2e3ebdSchinCommand=${0##*/}
29da2e3ebdSchininteger Errors=0
3034f9b3eeSRoland Mainz
3134f9b3eeSRoland Mainztmp=$(mktemp -dt) || { err_exit mktemp -dt failed; exit 1; }
3234f9b3eeSRoland Mainztrap "cd /; rm -rf $tmp" EXIT
33*b30d1939SAndy Fiddaman
34*b30d1939SAndy Fiddamantmp1=$tmp/tmp1.csv
35*b30d1939SAndy Fiddamantmp2=$tmp/tmp2.csv
36*b30d1939SAndy Fiddamancat > $tmp1 <<- \EOF
37*b30d1939SAndy Fiddaman	CAT,"CVE CCODE","NECA OCN",ST,LATA,AP,"New InterState
38*b30d1939SAndy Fiddaman	Orig","New Inter""""State
39*b30d1939SAndy Fiddaman	Term","New IntraState
40*b30d1939SAndy Fiddaman	Orig","New IntraState
41*b30d1939SAndy Fiddaman	Term"
42*b30d1939SAndy Fiddaman	CLEC,XXXX,AAAA,RB,ABC,comp," 0.2 "," 0.4 "," 0.6 "," 0.8 "
43*b30d1939SAndy Fiddaman	CLEC,YYYY,QQQQ,SX,123,mmmm," 0.3 "," 0.5 "," 0.7 "," 0.9 "
44*b30d1939SAndy FiddamanEOF
45*b30d1939SAndy Fiddamaninteger count=0 nfields
46*b30d1939SAndy FiddamanIFS=${2-,}
47*b30d1939SAndy Fiddamanfor j in 1 2
48*b30d1939SAndy Fiddamando	typeset -a arr
49*b30d1939SAndy Fiddaman	while read -A -S arr
50*b30d1939SAndy Fiddaman	do	((nfields=${#arr[@]}))
51*b30d1939SAndy Fiddaman		if	((++count==1))
52*b30d1939SAndy Fiddaman		then	((nfields==10)) || err_exit 'first record should contain 10 fields'
53*b30d1939SAndy Fiddaman			[[ ${arr[7]} == $'New Inter""State\nTerm' ]] || err_exit $'7th field of record 1 should contain New Inter""State\nTerm'
54*b30d1939SAndy Fiddaman		fi
55*b30d1939SAndy Fiddaman		for	((i=0; i < nfields;i++))
56*b30d1939SAndy Fiddaman		do	delim=$IFS
57*b30d1939SAndy Fiddaman			if	((i == nfields-1))
58*b30d1939SAndy Fiddaman			then	delim=$'\r\n'
59*b30d1939SAndy Fiddaman			fi
60*b30d1939SAndy Fiddaman			if ((i==1))
61*b30d1939SAndy Fiddaman			then	printf "%#q%s"  "${arr[i]}" "$delim"
62*b30d1939SAndy Fiddaman			else	printf "%(csv)q%s"  "${arr[i]}" "$delim"
63*b30d1939SAndy Fiddaman			fi
64*b30d1939SAndy Fiddaman		done
65*b30d1939SAndy Fiddaman	done < $tmp1 > $tmp2
66*b30d1939SAndy Fiddamandone
67*b30d1939SAndy Fiddamandiff "$tmp1" "$tmp2" >/dev/null 2>&1 || err_exit "files $tmp1 and $tmp2 differ"
6834f9b3eeSRoland Mainz
69*b30d1939SAndy Fiddamanexit $((Errors<125?Errors:125))
70da2e3ebdSchin
71