diff options
author | Arnold D. Robbins <arnold@skeeve.com> | 2011-04-01 11:58:20 +0300 |
---|---|---|
committer | Arnold D. Robbins <arnold@skeeve.com> | 2011-04-01 11:58:20 +0300 |
commit | d806340faadd79524b3adccef6cbced20cd88396 (patch) | |
tree | 31ff37862e0603576bf3c0111149af70ff7578ef | |
parent | 6aed27e0a553cb31800bbaeee1bf8e96a98abb12 (diff) | |
download | egawk-d806340faadd79524b3adccef6cbced20cd88396.tar.gz egawk-d806340faadd79524b3adccef6cbced20cd88396.tar.bz2 egawk-d806340faadd79524b3adccef6cbced20cd88396.zip |
Fix array sorting, add test case.
-rw-r--r-- | ChangeLog | 5 | ||||
-rw-r--r-- | array.c | 4 | ||||
-rw-r--r-- | test/ChangeLog | 6 | ||||
-rw-r--r-- | test/Makefile.am | 3 | ||||
-rw-r--r-- | test/Makefile.in | 8 | ||||
-rw-r--r-- | test/Maketests | 5 | ||||
-rw-r--r-- | test/arraysort.awk | 11 | ||||
-rw-r--r-- | test/arraysort.ok | 13 |
8 files changed, 53 insertions, 2 deletions
@@ -1,3 +1,8 @@ +Fri Apr 1 11:53:54 2011 Pat Rankin <rankin@patechdata.com> + + * array.c (sort_up_index_number): Fix the NODE arguments passed to + sort_up_index_string() when a tie breaker is needed. + Fri Apr 1 11:49:17 2011 Arnold D. Robbins <arnold@skeeve.com> Change ISATTY macro to os_isatty function. @@ -1433,8 +1433,8 @@ sort_up_index_number(const void *p1, const void *p2) /* break a tie with the index string itself */ if (ret == 0) - return sort_up_index_string((const void *) n1->sort_index, - (const void *) n2->sort_index); + return sort_up_index_string((const void *) &n1->sort_index, + (const void *) &n2->sort_index); return ret; } diff --git a/test/ChangeLog b/test/ChangeLog index c429ce4c..ee4c679d 100644 --- a/test/ChangeLog +++ b/test/ChangeLog @@ -1,3 +1,9 @@ +Fri Apr 1 11:56:54 2011 Arnold D. Robbins <arnold@skeeve.com> + + * arraysort.awk, arraysort.ok: New files from John Haque, + edited somewhat. + * Makefile.am (arraysort): New test. + Wed Mar 30 22:00:59 2011 Arnold D. Robbins <arnold@skeeve.com> * next.sh, exit.sh: New files from John Haque, edited somewhat. diff --git a/test/Makefile.am b/test/Makefile.am index 2fecaca0..ad44ffa8 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -46,6 +46,8 @@ EXTRA_DIST = \ anchgsub.awk \ anchgsub.in \ anchgsub.ok \ + arraysort.awk \ + arraysort.ok \ argarray.awk \ argarray.in \ argarray.ok \ @@ -767,6 +769,7 @@ UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftln GAWK_EXT_TESTS = \ aadelete1 aadelete2 aarray1 aasort aasorti \ + arraysort \ argtest backw badargs beginfile1 binmode1 clos1way \ devfd devfd1 devfd2 dumpvars \ fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \ diff --git a/test/Makefile.in b/test/Makefile.in index 51bdf298..7e57d7e1 100644 --- a/test/Makefile.in +++ b/test/Makefile.in @@ -231,6 +231,8 @@ EXTRA_DIST = \ anchgsub.awk \ anchgsub.in \ anchgsub.ok \ + arraysort.awk \ + arraysort.ok \ argarray.awk \ argarray.in \ argarray.ok \ @@ -951,6 +953,7 @@ BASIC_TESTS = addcomma anchgsub argarray arrayparm arrayprm2 arrayprm3 \ UNIX_TESTS = fflush getlnhd localenl pid pipeio1 pipeio2 poundbang space strftlng GAWK_EXT_TESTS = \ aadelete1 aadelete2 aarray1 aasort aasorti \ + arraysort \ argtest backw badargs beginfile1 binmode1 clos1way \ devfd devfd1 devfd2 dumpvars \ fieldwdth fpat1 funlen fsfwfs fwtest fwtest2 gensub gensub2 getlndir \ @@ -2565,6 +2568,11 @@ aasorti: @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +arraysort: + @echo arraysort + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + backw: @echo backw @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/Maketests b/test/Maketests index ea4b76d4..70b7df68 100644 --- a/test/Maketests +++ b/test/Maketests @@ -865,6 +865,11 @@ aasorti: @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ +arraysort: + @echo arraysort + @AWKPATH=$(srcdir) $(AWK) -f $@.awk >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ + @-$(CMP) $(srcdir)/$@.ok _$@ && rm -f _$@ + backw: @echo backw @AWKPATH=$(srcdir) $(AWK) -f $@.awk < $(srcdir)/$@.in >_$@ 2>&1 || echo EXIT CODE: $$? >>_$@ diff --git a/test/arraysort.awk b/test/arraysort.awk new file mode 100644 index 00000000..28535528 --- /dev/null +++ b/test/arraysort.awk @@ -0,0 +1,11 @@ +# Date: Thu, 31 Mar 2011 12:29:09 -0600 +# From: j.eh@mchsi.com + +BEGIN { a[100]=a[1]=a["x"]=a["y"]=1; PROCINFO["sorted_in"]="num"; +for (i in a) print i, a[i] } + +BEGIN { a[100]=a[1]=a["x"]=1; PROCINFO["sorted_in"]="num"; +for (i in a) print i, a[i] } + +BEGIN { a[0]=a[100]=a[1]=a["x"]=1; PROCINFO["sorted_in"]="num"; +for (i in a) print i, a[i] } diff --git a/test/arraysort.ok b/test/arraysort.ok new file mode 100644 index 00000000..2306e8a9 --- /dev/null +++ b/test/arraysort.ok @@ -0,0 +1,13 @@ +x 1 +y 1 +1 1 +100 1 +x 1 +y 1 +1 1 +100 1 +0 1 +x 1 +y 1 +1 1 +100 1 |