/
ChangeLog
9065 lines (6937 loc) · 393 KB
/
ChangeLog
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
2021-11-04 D. V. Wiebe <getdata@ketiltrout.net>
* src/parse.c (_GD_ParseFieldSpec): If parsing a RAW field
fails, and it was stored as D->reference_field, NULLify
D->reference_field when destroying the bad RAW entry.
(Fixes CVE-2021-20204.)
* src/common.c (_GD_LinterpData): Remove restrict from
input and output buffers (which may be the same for
in-place processing).
* m4/php.m4 (GD_PHP): Disable PHP bindings if a check
for php.h fails.
* test/olimit_count_gzip.c: Fix skip condition.
* src/getdata.h.in bindings/make_parameters.c: Remove symbols:
GD_FLOAT GD_DOUBLE GD_E_BAD_ENDIANNESS GD_E_BAD_PROTECTION
GD_E_BAD_VERSION GD_E_FORMAT_NO_PARENT gd_bit_t gd_spf_t
all deprecated in GetData-0.8.
2021-11-03 D. V. Wiebe <getata@ketiltrout.net>
* bindings/f77/Makefile.am bindings/f77/test/Makefile.am:
Add -std=legacy to FFLAGS and -fallow-argument-mismatch to
FCFLAGS for modern gfortran support.
* configure.ac: Check for the above compiler flags.
* bindings/f77/getdata.f90.in (fgd_madd): Remove extra
parameters in gdadwd calls.
* bindings/f77/getdata.f90.in (fgd_add_window_r): Fix
int-ification of threshold.
* bindings/f77/getdata.f90.in (fgd_match_entries): Ensure
return value is initialised.
* bindings/php/getdata.c: Fix definition of dtracetsrm.
* m4/compiler.m4 configure.ac: Combine all the compiler
flag checking macros into one per language:
GD_PROG_CC_ARG. GD_PROG_CXX_ARG, GD_PROG_F77_ARG,
GG_PROG_FC_ARG
* m4/php.m4 (PHP_CONFIG): Try php7-config, too.
2018-04-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1174
* bindings/php/getdata.c (gdphp_to_datum): Handle GD_STRING.
* bindings/php/getdata.c (gdphp_convert_cmparray): Fix error string.
* bindings/python/pydirfile.c (gdpy_dirfile_getsarray gdpy_dirfile_getdata):
Check for overflow of returned string array data.
* bindings/python/pydirfile.c (gdpy_dirfile_putsarray): Use size_t for len.
2018-04-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1173
* configure.ac: Look for install_name_tool
* bindings/perl/Makefile.am bindings/python/Makefile.am src/Makefile.am:
Use install_name_tool to mangle library paths on MacOS.
* src/Makefile.am: Drop all the -dlopen options from libgetdata.la. Link
all the modules to libgetdata.la.
* m4/perl.m4 (GD_PERL_MAKEMAKER_CONFIG): Replaced GD_PERL_MAN3EXT.
Determine DLEXT from ExtUtils::MakeMaker
* bindings/perl/Makefile.am: Use correct dlext.
2018-04-18 D. V. Wiebe <getdata@ketiltrout.net> svn:1172
* src/Makefile.am: Add -lgetdata to the module link line.
* src/bzip.c (_GD_Bzip2DoOpen _GD_Bzip2Open): Zero file->pos in
_GD_Bzip2Open not _GD_Bzip2DoOpen so that mixing gd_nframes calls
with data reads of a bzipped REFERENCE field doesn't mess things up.
* bindings/python/pydirfile.c (gdpy_dirfile_getdata): Fix read-past-end
check. Patch from Matthew Petroff.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1165
* src/getdata.h.in: Define GD_OLIMIT_*
* src/globals.c (_GD_FindOpenFields openedcmp _GD_CloseOpenFields
_GD_AutoClose gd_open_limit): Added.
* src/internal.h (gd_private_entry_): Add u.raw.atime, u.raw.fd_count
* src/internal.h (gd_dirfile_): Add open_limit, open_fds, open_raws,
opened_sorted, opened.
* src/iopos.c (_GD_DoSeek): Update u.raw.atime.
* src/close.c (_GD_FreeD): Free D->opened.
* src/encoding.c (_GD_FiniRawIO): Remove closed field from D->opened.
* src/encoding.c (_GD_InitRawIO): Call _GD_AutoClose if limiting is active.
Add opened field to D->opened.
* man/gd_open_limit.3in: Added.
* test/test.h (MAKERAWFILE): Added.
* test/olimit_count.c test/olimit_count_gzip.c test/olimit_down.c
test/olimit_foffs.c test/olimit_get.c test/olimit_get_err.c
test/olimit_reset.c test/olimit_set.c: Added.
* bindings/make_parameters.c: Add GD_OLIMIT_*. Merge GDMP_RFLAG and
GDMP_DESYNC flags into GDMP_FFLAG.
* bindings/cxx/dirfile.cpp (Dirfile::OpenLimit) bindings/f77/fgetdata.c
(GDOLIM) bindings/f77/getdata.f90.in (fgd_open_limit) bindings/idl/getdata.c
(gdidl_open_limit) bindings/matlab/gd_open_limit.c
bindings/perl/simple_funcs.xsin (open_limit) bindings/php/getdata.c
(gd_open_limit) bindings/python/pydirfile.c (gdpy_dirfile_getocount
gdpy_dirfile_getolimit gdpy_dirfile_setolimit): Added.
* bindings/perl/simple_funcs.pl: Handle (signed) long.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Added test
306.
* bindings/idl/getdata.c (gdidl_dirfile_standards): Remove unnecessary,
undocumented /CURRENT flag.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1164
* src/internal.h bindings/idl/getdata.c: Define CMPLX if necessary.
* src/internal.h bindings/idl/getdata.c test/add_clincom.c
test/add_clincom_nfields.c test/add_cpolynom.c test/add_cpolynom_order.c
test/add_crecip.c test/alter_clincom.c test/alter_cpolynom.c
test/alter_cpolynom_null.c test/alter_crecip.c test/alter_entry_scalar3c.c
test/convert_complex128_complex64.c test/convert_complex64_complex128.c
test/get_clincom.c test/get_complex128.c test/get_complex64.c
test/get_const_complex.c test/get_cpolynom.c test/get_endian_complex128_arm.c
test/get_endian_complex128_big.c test/get_endian_complex128_little.c
test/get_endian_complex64_arm.c test/get_endian_complex64_big.c
test/get_endian_complex64_little.c test/madd_clincom.c
test/madd_clincom_nfields.c test/madd_cpolynom.c test/madd_cpolynom_order.c
test/madd_crecip.c test/parse_const_complex.c test/put_complex128.c
test/put_complex64.c test/put_endian_complex128_arm.c
test/put_endian_complex128_big.c test/put_endian_complex128_little.c
test/put_endian_complex64_big.c test/put_endian_complex64_little.c: Use
CMPLX to build up complex numbers.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1163
* bindings/f77/fgetdata.c src/add.c src/common.c src/internal.h src/mod.c
src/putdata.c src/sie.c src/types.c test/add_clincom.c
test/add_clincom_nfields.c test/add_cpolynom.c test/add_cpolynom_order.c
test/add_crecip.c test/alter_clincom.c test/alter_cpolynom.c
test/alter_crecip.c test/convert_complex128_complex64.c
test/convert_complex128_float64.c test/convert_complex128_int64.c
test/convert_complex128_uint64.c test/convert_complex64_complex128.c
test/convert_complex64_float64.c test/convert_complex64_int64.c
test/convert_complex64_int64.c test/convert_complex64_uint64.c
test/convert_float32_complex128.c test/convert_float32_complex64.c
test/convert_float64_complex128.c test/convert_float64_complex64.c
test/convert_int16_complex128.c test/convert_int16_complex64.c
test/convert_int32_complex128.c test/convert_int32_complex64.c
test/convert_int64_complex128.c test/convert_int64_complex64.c
test/convert_int8_complex128.c test/convert_int8_complex64.c
test/convert_uint16_complex128.c test/convert_uint16_complex64.c
test/convert_uint32_complex128.c test/convert_uint32_complex64.c
test/convert_uint64_complex128.c test/convert_uint64_complex64.c
test/convert_uint8_complex128.c test/convert_uint8_complex64.c
test/get_clincom.c test/get_complex128.c test/get_complex64.c
test/get_const_complex.c test/get_cpolynom.c test/get_endian_complex128_arm.c
test/get_endian_complex128_big.c test/get_endian_complex128_little.c
test/get_endian_complex64_arm.c test/get_endian_complex64_big.c
test/get_endian_complex64_little.c test/madd_clincom.c
test/madd_clincom_nfields.c test/madd_cpolynom.c test/madd_cpolynom_order.c
test/madd_crecip.c test/parse_const_complex.c test/put_complex128.c
test/put_complex64.c test/put_endian_complex128_arm.c
test/put_endian_complex128_big.c test/put_endian_complex128_little.c
test/put_endian_complex64_arm.c test/put_endian_complex64_big.c
test/put_endian_complex64_little.c: Use _Complex instead of complex.
2017-10-04 D. V. Wiebe <getdata@ketiltrout.net> svn:1161
* test/match_pcre_js.c: Check that PCRE behaves as expected.
* test/alter_entry_sarray.c test/match_fragment.c test/match_pcre.c
test/match_pcre_caseless.c test/match_pcre_ext.c test/match_pcre_js.c
test/match_pcre_utf8.c test/match_regex.c test/match_regex_ext.c
test/match_regex_icase.c test/name_alias.c test/name_dangle.c
test/name_meta2.c test/name_move.c test/name_move_alias.c test/name_name.c:
Fix string array checks.
* test/test.h (CHECKSA CHECKPA): Added.
* test/ascii_put.c test/ascii_put_here.c test/ascii_sync.c test/bzip_put.c
test/bzip_put_back.c test/bzip_put_endian.c test/bzip_put_get.c
test/bzip_put_pad.c test/bzip_put_sub.c test/bzip_sync.c test/enc_del.c
test/flac_put_big.c test/flac_put_complex128.c test/flac_put_float64.c
test/flac_put_int32.c test/flac_put_little.c test/flac_sync.c test/flush_all.c
test/flush_flush.c test/flush_raw_close.c test/flush_sync.c gzip_put.c
test/gzip_put_back.c test/gzip_put_endian.c test/gzip_put_get.c
test/gzip_put_pad.c test/gzip_put_sub.c test/gzip_sync.c test/legacy_get_put.c
test/legacy_put.c test/lzma_xz_put.c test/lzma_xz_put_back.c
test/lzma_xz_put_endian.c test/lzma_xz_put_get.c test/lzma_xz_put_pad.c
test/lzma_xz_sync.c test/put64.c test/put_char.c test/put_clincom1.c
test/put_complex128.c test/put_complex64.c test/put_crecip.c test/put_divide.c
test/put_ff.c test/put_float32.c test/put_float64.c test/put_fs.c
test/put_here.c test/put_heres.c test/put_indir.c test/put_int16.c
test/put_int32.c test/put_int64.c test/put_int8.c test/put_lincom1.c
test/put_lincom2.c test/put_linterp.c test/put_linterp_noin.c
test/put_linterp_nomono.c test/put_linterp_notab.c test/put_linterp_reverse.c
test/put_multiply.c test/put_off64.c test/put_phase.c test/put_phase_noin.c
test/put_polynom1.c test/put_polynom2.c test/put_polynom_noin.c
test/put_protect.c test/put_rdonly.c test/put_recip.c test/put_repr.c
test/put_sf.c test/put_sindir.c test/put_ss.c test/put_uint16.c
test/put_uint32.c test/put_uint64.c test/put_window.c: Remove unnecessary
memset.
* test/test/bzip_get.c test/bzip_get_far.c test/convert_complex128_complex64.c
test/convert_complex64_complex128.c test/convert_float32_complex128.c
test/convert_float32_complex64.c test/convert_float32_float64.c
test/convert_float32_int16.c test/convert_float32_int32.c
test/convert_float32_int64.c test/convert_float32_uint16.c
test/convert_float32_uint32.c test/convert_float32_uint64.c
test/convert_float64_complex128.c test/convert_float64_complex64.c
test/convert_float64_float32.c test/convert_float64_int16.c
test/convert_float64_int32.c test/convert_float64_uint16.c
test/convert_float64_uint32.c test/convert_float64_uint64.c
test/convert_int16_complex128.c test/convert_int16_complex64.c
test/convert_int16_float32.c test/convert_int16_float64.c
test/convert_int16_int32.c test/convert_int16_int64.c
test/convert_int16_uint16.c test/convert_int16_uint32.c
test/convert_int16_uint64.c test/convert_int32_complex128.c
test/convert_int32_complex64.c test/convert_int32_float32.c
test/convert_int32_float64.c test/convert_int32_int16.c
test/convert_int32_int64.c test/convert_int32_uint16.c
test/convert_int32_uint32.c test/convert_int32_uint64.c
test/convert_int64_complex128.c test/convert_int64_complex64.c
test/convert_int64_float32.c test/convert_int64_float64.c
test/convert_int64_int16.c test/convert_int64_int32.c
test/convert_int64_uint16.c test/convert_int64_uint32.c
test/convert_int64_uint64.c test/convert_int8_complex128.c
test/convert_int8_complex64.c test/convert_int8_float32.c
test/convert_int8_float64.c test/convert_int8_int16.c
test/convert_int8_int32.c test/convert_int8_int64.c
test/convert_int8_uint16.c test/convert_int8_uint32.c
test/convert_int8_uint64.c test/convert_uint16_complex128.c
test/convert_uint16_complex64.c test/convert_uint16_float32.c
test/convert_uint16_float64.c test/convert_uint16_int16.c
test/convert_uint16_int32.c test/convert_uint16_int64.c
test/convert_uint16_uint32.c test/convert_uint16_uint64.c
test/convert_uint32_complex128.c test/convert_uint32_complex64.c
test/convert_uint32_float32.c test/convert_uint32_float64.c
test/convert_uint32_int16.c test/convert_uint32_int32.c
test/convert_uint32_int64.c test/convert_uint32_uint16.c
test/convert_uint32_uint64.c test/convert_uint64_complex128.c
test/convert_uint64_complex64.c test/convert_uint64_float32.c
test/convert_uint64_float64.c test/convert_uint64_int16.c
test/convert_uint64_int32.c test/convert_uint64_int64.c
test/convert_uint64_uint16.c test/convert_uint64_uint32.c
test/convert_uint8_complex128.c test/convert_uint8_complex64.c
test/convert_uint8_float32.c test/convert_uint8_float64.c
test/convert_uint8_int16.c test/convert_uint8_int32.c
test/convert_uint8_int64.c test/convert_uint8_uint16.c
test/convert_uint8_uint32.c test/convert_uint8_uint64.c
test/encode_alter.c test/encode_recode.c test/endian_alter.c
test/endian_move.c test/flac_get_big.c test/flac_get_far.c
test/flac_get_int64.c test/flac_get_little.c test/get_complex128.c
test/get_complex64.c test/get_float32.c test/get_float64.c test/get_int16.c
test/get_int32.c test/get_int64.c test/get_uint16.c test/get_uint32.c
test/get_uint64.c gzip_get.c gzip_get_far.c test/lzma_get.c test/lzma_xz_get.c
test/lzma_xz_get_far.c test/repr_float32.c test/repr_float64.c
test/repr_int16.c test/repr_int32.c test/repr_int64.c test/repr_uint16.c
test/repr_uint32.c test/repr_uint64.c test/version_2.c test/version_3.c
test/version_4.c test/version_5.c test/version_5_strict.c test/version_6.c
test/version_6_strict.c test/version_7.c test/version_7_strict.c
test/version_8.c test/version_9.c test/zzip_data.c test/zzip_get.c: Fix
memset call.
2017-06-02 D. V. Wiebe <getdata@ketiltrout.net> svn:1160
* m4/matlab.m4: Eval matlabroot to determine matlab_prefix instead
of using mex -v.
* m4/matlab.m4 (GD_MEX_VAR): Deleted.
2017-03-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1155
* man/Makefile.am: Fix man3 distribution
2017-01-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1153
GetData-0.10.0 released.
2017-01-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1148
* src/encoding.c: Better values for GD_INT_FUNCS when USE_<foo> is not
defined.
* test/enc_seek.c: Replace accidental USE_FLAC with USE_ENC.
2017-01-21 D. V. Wiebe <getdata@ketiltrout.net> svn:1146
* test/error_verbose.c test/error_verbose_prefix.c: Use an anonymous pipe
instead of a named fifo.
* configure.ac: Look for dup2, kill and pipe instead of mkfifo.
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1145
* src/getdata.c (_GD_DoRaw): Don't assume malloc(0) returns NULL.
* test/alter_entry_sarray.c: zero E.flags;
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1144
* src/close.c (_GD_FreeD): Free D->regex_list.
2017-01-20 D. V. Wiebe <getdata@ketiltrout.net> svn:1143
GetData-0.10.0rc2:
* README, README.win,: Update.
* bindings/perl/src/typemap [INPUT] (T_DIRFILE): Don't leak the struct
gdp_dirfile_t pointer.
* bindings/perl/src/typemap [INPUT] (T_GDP_DIRFILE): Added to handle struct
gdp_dirfile_t *.
* bindings/perl/src/GetData.xs (DESTROY parser_callback close discard): Accept
struct gdp_dirfile_t argument explicitly, rather than implcitly via the
T_DIRFILE typemap.
* bindings/perl/src/typemap [OUTPUT] (T_GDP_DIRFILE): Replaced the OUTPUT
T_DIRFILE.
* bindings/perl/src/GetData.xs (open invalid_dirfile): Change return type to
struct gdp_dirfile *.
* src/field_list.c (gd_match_entries): Properly NULL D->regex_list if n == 0.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1141,1142
* test/legacy_get_rofs.c: Unbreak after chainsawing.
* test/test.h (rmdirfile): Check system return value.
* src/field_list.c (gd_match_entries): Suppress compiler warning.
* util/checkdirfile.c (main): Fix printf.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1140
GetData-0.10.0rc1.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1136
* test/flac_get_int64.c: Correct.
2017-01-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1135
* src/encoding.c: set GD_EF_SWAP instead of GD_EF_ECOR for flac.
* src/flac.c (_GD_FlacDecodeCallback _GD_FlacWrite): Ensure non-native
endianness channelisation occurs in the right order.
* src/flac.c (_GD_FlacOpen _GD_FlacSize): The size parameter is no longer
unused; pass it to _GD_FlacDoOpen.
* src/flac.c (_GD_FlacDoOpen): Record the value of swap.
* test/flac_get_big.c test/flac_get_cont.c test/flac_get_far.c
test/flac_get_get.c test/flac_get_get2.c test/flac_get_int64.c
test/flac_get_int8.c test/flac_get_little.c test/flac_get_long.c
test/flac_move_from.c test/flac_put_big.c test/flac_put_little.c
test/flac_seek.c test/flac_seek_far.c test/flac_sync.c: Test endianness
correctly.
* src/lzma.c (_GD_LzmaRead): Deal with a trailing partial sample in the
returned LZMA data.
* src/lzma.c (_GD_LzmaReady): Read more data when we have less than one
full sample.
* src/lzma.c (_GD_LzmaClear): Handle a trailing partial sample.
* test/enc_complex128.c test/enc_complex64.c test/enc_float32.c
test/enc_float64.c test/enc_int16.c test/enc_int32.c test/enc_int64.c
test/enc_int8.c test/enc_put_offs.c test/enc_uint16.c test/enc_uint32.c
test/enc_uint64.c test/enc_uint8.c: Don't accidentally read out of bounds.
Remove unnecessary mkdir() calls.
* test/error_verbose.c test/error_verbose_prefix.c: Use waitpid instead of
wait.
* test/include_ns_dotns.c: Correct test.
2017-01-17 D. V. Wiebe <getdata@ketiltrout.net> svn:1134
* bindings/cxx/getdata/entry.h: replace gd_shift_t with gd_int64_t.
* src/field_list.c (_GD_Constants): char *fl;
* src/field_list.c (gd_match_entries): Fix GD_NO_REGEX case.
* src/getdata.c (_GD_IndirData): Fix carray pointer arithmetic.
* src/internal.h: Fix ssize_t definition on WIN32/WIN64. Define __func__
if needed.
* test/add_spec_affix.c: Check e1.
* test/cvlist_meta_meta.c: Deleted.
* test/vlist.c test/include_ns_dotns.c: Fix test.
* test/parse_esc.c: Use '\x1B' instead of '\e'.
* test/test.h (MAKEDATAFILE): Use O_BINARY.
2017-01-16 D. V. Wiebe <getdata@ketiltrout.net> svn:1132
* bindings/python/pyentry.c (gdpy_entry_geta): Fix self->E->EN access.
* src/common.c (INVERTC): Fix non-C99 case.
* test/add_name_len.c test/alter_polynom_scalar.c: ANSI C fixes.
* test/parse_ns_par.c: Deleted.
* util/checkdirfile.c: Include inttypes.h if present.
2016-12-25 D. V. Wiebe <getdata@ketiltrout.net> svn:1130,1131
* configure.ac: Add --disable-util. Remove --enable-assert. Locate
regex libraries.
* src/internal.h: Deprecate gd_shift_t.
* src/add.c (gd_add_phase gd_madd_phase): Replace gd_shift_t with
gd_int64_t.
* src/field_list.c (_GD_EntryList gd_entry_list) src/nfields.c (_GD_NEntries
gd_nentries: Remove fragment.
* util/checkdirfile.c: Updated.
* src/internal.h: Add regex_list to struct gd_dirfile_.
* src/field_list.c (gd_compile_regex gd_compile_pcre gd_match_entries):
Added.
* src/errors.c: Add GD_E_UNSUPPORTED:GD_E_SUPPORT_REGEX,
GD_E_ARGUMENT:GD_E_ARG_REGEX, GD_E_ARGUMENT:GD_E_ARG_PCRE.
* src/getdata.h.in: Add GD_REGEX_PCRE, GD_REGEX_EXTENDED, GD_REGEX_ICASE,
GD_REGEX_CASELESS, GD_REGEX_JAVASCRIPT, GD_REGEX_UNICODE.
* src/internal.h: Remove unused alias_list from struct gd_flist_.
* test/add_spec_affix.c: Reimplemented.
* test/elist_alias.c test/elist_hidden.c test/elist_noalias.c
test/elist_parent.c test/elist_parent2.c test/elist_scalar.c
test/elist_type.c test/nentries_alias.c test/nentries_entype.c
test/nentries_hidden.c test/nentries_noalias.c test/nentries_scalar.c:
Updated.
* test/match_fragment.c: Moved from test/elist_fragment.c and updated.
* test/match_pcre.c test/match_pcre_bad.c test/match_pcre_caseless.c
test/match_pcre_ext.c test/match_pcre_js.c test/match_pcre_utf8.c
test/match_regex.c test/match_regex_bad.c test/match_regex_ext.c
test/match_regex_icase.c: Added.
* test/nentries_fragment.c: Deleted.
* man/gd_mstrings.3: Merged into man/gd_strings.3.
* man/*.3in: moved from *.3
* man/header.tmac: Added.
* bindings/make_parameters.c: Add GD_REGEX_* flags.
* bindings/cxx/dirfile.cpp (Dirfile::NEntries Dirfile::EntryList)
bindings/f77/fgetdata.c (GDNENT GDENTX GDENTN) bindings/f77/getdata.f90.in
(fgd_nentries fgd_entry_name_max fgd_entry_list)
bindings/matlab/gd_entry_list.c bindings/matlab/gd_field_list.m
bindings/matlab/gd_field_list_by_type.m bindings/matlab/gd_mfield_list.m
bindings/matlab/gd_mfield_list_by_type.m bindings/matlab/gd_mvector_list.m
bindings/matlab/gd_nentries.c bindings/matlab/gd_nfields.m
bindings/matlab/gd_nfields_by_type.m bindings/matlab/gd_nmfields.m
bindings/matlab/gd_nmfields_by_type.m bindings/matlab/gd_nmvectors.m
bindings/matlab/gd_nvectors.m bindings/matlab/gd_vector_list.m
bindings/perl/src/GetData.xs (entry_list) bindings/php/getdata.c
(gd_entry_list gd_nentries) bindings/python/pydirfile.c
(gdpy_dirfile_nentries gdpy_dirfile_entrylist): Remove fragment parameter.
* bindings/idl/getdata.c (gdidl_get_field_list): Support gd_match_entries().
* bindings/cxx/dirfile.cpp (Dirfile::MatchEntries) bindings/f77/fgetdata.c
(GDMATX GDMATN GDNMAT) bindings/f77/getdata.f90.in (fgd_match_entries_max
fgd_match_entries) bindings/matlab/gd_match_entries.c gd_nvectors.m
bindings/matlab/gd_vector_list.m (match_entries) bindings/php/getdata.c
(gd_match_entries) bindings/python/pydirfile.c (gdpy_dirfile_matchentries):
Added.
* bindings/cxx/getdata/phaseentry.h bindings/cxx/phaseentry.cpp
(PhaseEntry::PhaseEntry PhaseEntry::SetShift) bindings/perl/simple_funcs.pl
bindings/perl/simple_funcs.xsin bindings/perl/src/GetData.xs
bindings/perl/src/typemap: Replace gd_shift_t with gd_int64_t.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/idl/test/big_test.pro
bindings/matlab/test/big_test.m bindings/perl/t/big_test.t
bindings/php/test/big_test.php bindings/python/test/big_test.py: Add test 305.
2016-12-08 D. V. Wiebe <getdata@ketiltrout.net> svn:1129
* bindings/matlab/gd_include.c: Initialise ns to NULL.
* bindings/php/getdata.c (gdphp_convert_sarray): Fix empty list check.
* bindings/php/getdata.c (gdphp_convert_cmparray gdphp_convert_sarray
gdphp_convert_nsarray gdphp_convert_array): Make index unsigned.
* src/flush.c (WriteInclude): Added to simplify cleaning up sx on error.
* src/flush.c (_GD_FlushFragment): Call WriteInclude.
* test/alloc_callback.c test/parse_ref_type.c: Remove unused variables.
2016-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:1128
* src/include.c (_GD_IncludeAffix): Actually delete the deleted entries,
why not.
* src/name.c (_GD_PerformRename): Steal 'new_name' instead of strdup'ing a
copy.
* src/move.c (_GD_Move): Delete unnecessary free()s.
* src/name.c (_GD_Rename): Properly clean up on error.
* src/name.c (_GD_RenameCode): Fix error handling when _GD_CodeOffsets
checks fail.
* src/parse.c (_GD_ParseFieldSpec): Clean up after I/O errors.
* src/compat.c (_GD_ReadDir): We don't know how big struct dirent actually
is, so don't pretend we do. Ignore the second parameter (entry), just set
*result to the returned pointer.
* src/open.c (_GD_TruncDir): Ignore the second parameter to _GD_ReadDir
(which may be readdir_r(3)).
* src/field_list.c (_GD_ListEntry): Don't match SINDIR entries with
GD_VECTOR_ENTRIES.
* cxx/test/big_test.cpp f77/test/big_test.f f77/test/big_test95.f90
idl/test/big_test.pro matlab/test/big_test.m perl/t/big_test.t
php/test/big_test.php python/test/big_test.py: Update tests 69, 70, 237, 239
* test/vlist.c: Update.
* test/mflush_affix.c test/mflush_pretty.c test/put_carray_bad.c
test/put_carray_bounds.c test/put_carray_bounds.c test/put_carray_type.c
test/put_sarray_bad.c test/put_sarray_bounds.c test/put_sarray_type.c: Call
gd_discard().
* test/put_carray_bounds.c: Don't double-open the dirfile.
2016-12-06 D. V. Wiebe <getdata@ketiltrout.net> svn:1127
* src/flac.c (_GD_FlacOutput): Fix memcpy src calculation.
* test/bzip_get_cont.c test/enc_get_cont.c test/flac_get_cont.c
test/gzip_get_cont.c test/lzma_xz_get_cont.c: Added.
2016-11-30 D. V. Wiebe <getdata@ketiltrout.net> svn:1126
* bindings/cxx/dirfile.cpp: Update Dirfile::PutString return type.
* bindings/perl/simple_funcs.xsin: Update put_string return type.
* bindings/f77/fgetdata.c (GDPTST): Don't return n_wrote.
* bindings/f77/getdata.f90.in (fgd_put_string): Change to subroutine.
* bindings/cxx/test/big_test.cpp bindings/f77/test/big_test.f
bindings/f77/test/big_test95.f90 bindings/perl/t/big_test.t: Update
test 94.
2016-11-30 D. V. Wiebe <getdata@ketiltrout.net> svn:1125
* m4/perl.m4: Better default install path.
2016-11-29 D. V. Wiebe <getdata@ketiltrout.net> svn:1122
* src/protect.c (gd_alter_protection): If the protection level changes,
mark the fragment dirty (modified).
* src/parse.c (_GD_CodeFromFrag): Fix version check.
* src/add.c (_GD_BadType): Deal with DSV <= 4 correctly.
* src/common.c (_GD_Alloc _GD_LinterpData) src/getdata.c (_GD_ExtractRepr
_GD_PolynomData _GD_CPolynomData _GD_MultiplyData _GD_CMultiplyData
_GD_DivideData _GD_CDivideData _GD_WindowData _GD_MplexData) src/types.c
(_GD_ConvertType): Return internal error on bad data type.
* src/constant.c (gd_get_carray_slice gd_get_carray _GD_PutCarraySlice)
src/field_list.c (_GD_Constants _GD_Carrays) src/getdata.c (gd_getdata64)
src/putdata.c (gd_putdata64):
Call _GD_BadType.
* src/getdata.c (_GD_DoLincom _GD_DoMultiply _GD_DoRecip _GD_DoDivide
_GD_DoBit _GD_DoPhase _GD_DoLinterp _GD_DoPolynom _GD_DoWindow _GD_DoMplex
_GD_DoIndir) src/putdata.c (_GD_DoLinterpOut _GD_DoBitOut _GD_DoPhaseOut
_GD_DoRecipOut _GD_DoPolynomOut _GD_MplexOutData): Remove _GD_BadInput call.
* src/entry.c (_GD_BadInput): Moved from common.c and statickified.
* src/entry.c (_GD_FindInputs): Added.
* src/entry.c (gd_validate) src/flimits.c (_GD_GetEOF _GD_GetBOF)
src/flush.c (_GD_Flush) src/getdata.c (_GD_DoSindir) src/iopos.c
(_GD_GetIOPos _GD_Seek) src/native.c (_GD_NativeType) src/putdata.c
(_GD_DoFieldOut) src/spf.c (_GD_GetSPF): Call _GD_FindInputs.
* src/flush.c (_GD_Flush): Permit E == NULL (in which case do nothing).
* src/fragment.c (_GD_UpdateAffixes): Remove dead code.
* src/close.c (_GD_FreeF): Added.
* src/close.c (_GD_FreeD) src/include (gd_uninclude): Call _GD_FreeF.
* src/include.c (_GD_IncludeAffix): Properly clean up after errors.
* src/close.c (_GD_FreeD _GD_ShutdownDirfile): Move directory closing from
_GD_ShutdownDirfile to _GD_FreeD.
* src/parse.c (_GD_CodeFromFrag): Fix early calculation in _GD_BuildCode
call.
* src/protect.c (gd_alter_protection): Dirty fragment if protection changed.
* src/nfields.c (_GD_NEntries): Correct invalid type check.
* src/parse.c (_GD_ParseFieldSpec): Remove n_cols < 2 check.
* src/add.c (_GD_AddSpec): Add n_cols < 2 check.
* src/parse.c (_GD_ParseFieldSpec): Remove encoding checks; _GD_InitRawIO
already does them.
* src/common.c (_GD_ReadLinterpFile): Return non-zero on error.
* src/getdata.c (gd_getdata64) src/putdata.c (gd_putdata64): Always convert
from frames to samples.
* src/parse.c (_GD_WindOp): Also check for the trailing NUL.
* src/parse.c (_GD_ParseNamespace): Fix trailing . removal.
* src/parse.c (_GD_ResolveAlias): Add base parameter and delete the recursion
counter, which want' being used. Alias loops are valid syntax, so don't
return an error when encountering them, just make them all dangle (set
entry[0] to NULL).
* src/putdata.c (_GD_DoLinterpOut): Load the LUT *before* checking if it's
complex valued, instead of after.
* src/string.c (_GD_PutSarraySlice): Return void.
* src/string.c (gd_put_string): Return int D->error.
* test/alter_entry_lincom_nfields.c: Renamed from alter_lincom_nfields.c
* test/mflush.c: Renamed from flush_meta.c
* test/mflush_amb_code.c test/mflush_hex.c test/mflush_ref.c
test/mflush_repr.c test/mflush_repr9.c test/mflush_reprz.c
test/mflush_spec.c test/mflush_string.c: Renamed from flush_*.c
* test/ref_empty.c test/ref_get.c test/ref_set.c: Renamed from
global_ref_*.c
* test/tell_multi_div.c: Renamed from tell_multidiv.c
* test/parse_name_pedantic.c: Deleted.
* test/add_name_len.c test/add_spec_raw_autoenc.c test/add_spec_raw_prot.c
test/add_spec_raw_unkenc.c test/alloc_affix.c test/alloc_callback.c
test/alloc_clear.c test/alloc_entry.c test/alloc_tok.c
test/alter_bit_scalar.c test/alter_clincom_32.c test/alter_clincom_nfields.c
test/alter_clincom_nfields_code.c test/alter_clincom_null.c
test/alter_cpolynom_ord.c test/alter_cpolynom_ord_code.c
test/alter_lincom_nfields.c test/alter_lincom_nfields_code.c
test/alter_lincom_scalar.c test/alter_mplex_scalar.c test/alter_phase_scalar.c
test/alter_polynom_ord2.c test/alter_polynom_ord_code.c
test/alter_polynom_scalar.c test/alter_raw_spf_type.c
test/alter_recip_scalar.c test/alter_spec_prot.c test/alter_spec_rdonly.c
test/alter_window_scalar.c test/flush_recurse.c test/get_divide_code.c
test/get_index_type.c test/get_lincom_code.c test/get_multiply_code.c
test/get_sindir_code.c test/get_sindir_neg.c test/include_format.c
test/include_ref_code.c test/include_ref_type.c test/index_empty.c
test/index_one.c test/index_scalar.c test/mflush_carray.c test/mflush_indir.c
test/mflush_mplex.c test/mflush_ns.c test/mflush_pretty.c test/mflush_prot.c
test/mflush_sindir.c test/mflush_type.c test/mflush_type4.c
test/mflush_windop.c test/move_unkenc.c test/native_code.c
test/native_recurse.c test/nentries_entype.c test/nmeta_parent_meta.c
test/parse_alias_loop.c test/parse_alias_ncols.c test/parse_carray_ncols.c
test/parse_carray_type.c test/parse_const_type.c test/parse_endian_bad2.c
test/parse_esc.c test/parse_hidden_frag.c test/parse_meta_ncols.c
test/parse_mplex_neg.c test/parse_recip_ncols.c test/parse_ref_type.c
test/parse_sarray_ncols.c test/protect_alter_arg.c test/protect_alter_index.c
test/protect_alter_rdonly.c test/protect_index.c test/put_bit_repr.c
test/put_lincom_repr.c test/put_linterp_cmp.c test/put_linterp_repr.c
test/put_mplex_repr.c test/put_neg.c test/put_phase_repr.c
test/put_polynom_repr.c test/put_recip_repr.c test/put_scalar.c
test/put_string_type.c test/ref_set_code.c test/ref_set_prot.c
test/ref_set_rdonly.c test/ref_set_type.c test/seek_arg.c test/seek_code.c
test/seek_dim.c test/seek_index_end.c test/seek_mplex.c test/seek_range_end.c
test/seek_recurse.c test/spf_const.c test/tell_code.c test/tell_dim.c
test/tell_multi_lincom.c test/tell_recurse.c: Added.
* test/convert_float64_int64.c test/parse_const_ncols.c
test/put_lincom_noin.c test/put_recurse.c: Fixed.
* test/fragment_affix_alter_code.c test/name_updb_carray.c
test/name_updb_const.c test/parse_window_op.c test/put_string.c
test/put_string_protect.c: Updated.
2016-11-26 D. V. Wiebe <getdata@ketiltrout.net> svn:1121
* src/ascii.c (_GD_AsciiOpen): Remove the ancient existing file code.
* src/ascii.c (_GD_AsciiWrite): Update file->pos.
* src/bzip.c (_GD_Bzip2Seek): Unfortunately, remove the dead backwards
seek code: the current bookkeping layer means this can never happen. (For
OOP encodings, seeks calls to the framework are always forward.)
* src/common.c (_GD_ReadLinterpFile): Return GD_E_IO for I/O errors instead
of GD_E_LUT.
* src/common.c (_GD_CInvertData): Remove dead, non-complex return_type code:
_GD_DoField ensures that return_type is always complex valued in this case.
* src/constat.c (gd_array_len): Return 0 on error.
* src/del.c (_GD_ClearInput): Added.
* src/del.c (_GD_ClearDerived): Call _GD_ClearInput for each in_fields
element. strcmp is not adequate for field matching; _GD_ClearInput uses
_GD_FindFieldAndRepr.
* src/del.c (_GD_Delete): Remove incorrect check for _GD_ClearDerived call.
* src/getdata.c (_GD_DoRaw): Update s0 based on zero padding. Instead of
calling the encoding's seek function directly, use _GD_Seek, which also will
handle calling _GD_InitRawIO when necessary. Always call _GD_Seek if zero
padding.
* src/iopos.c (_GD_DoSeek): Fix oop_write calculation.
* test/get_carray.c: Remove GD_VERBOSE.
* test/legacy_format.c bindings/cxx/test/big_test.cpp
bindings/f77/test/big_test.f bindings/f77/test/big_test95.f90
bindings/idl/test/big_test.pro bindings/matlab/test/big_test.m
bindings/perl/t/big_test.t bindings/php/test/big_test.php
bindings/python/test/big_test.py: Update checks for sortation change.
* test/test.h: Define INFINITY if necessary.
* test/len_carray.c test/len_sarray.c: Renamed from get_carray_len.c and
get_sarray_len.c.
* test/calist.c test/calist0.c test/calist_free.c test/calist_hidden.c
test/calist_long.c test/calist_meta.c test/calist_meta0.c
test/calist_meta_free.c test/calist_meta_hidden.c test/calist_meta_meta.c
test/calist_meta_parent.c test/calist_null.c test/salist.c test/salist0.c
test/salist_hidden.c test/salist_long.c test/salist_meta.c test/salist_meta0.c
test/salist_meta_free.c test/salist_meta_hidden.c test/salist_meta_meta.c
test/salist_meta_parent.c: Renamed from [cs]vlist_array*.c.
* test/add_sarray_dup.c test/add_spec_nil.c test/add_string_dup.c
test/ascii_complex128.c test/ascii_complex64.c test/ascii_float32.c
test/ascii_float64.c test/ascii_int16.c test/ascii_int32.c test/ascii_int64.c
test/ascii_int8.c test/ascii_uint16.c test/ascii_uint32.c test/ascii_uint64.c
test/ascii_uint8.c test/bof_bit_code.c test/bof_code.c test/bof_const.c
test/bof_lincom_code.c test/bof_phase_code.c test/bof_recurse.c
test/bzip_complex128.c test/bzip_complex64.c test/bzip_float32.c
test/bzip_float64.c test/bzip_int16.c test/bzip_int32.c test/bzip_int64.c
test/bzip_int8.c test/bzip_uint16.c test/bzip_uint32.c test/bzip_uint64.c
test/bzip_uint8.c test/cvlist_meta_code.c test/del_alias_dangle.c
test/del_alias_target.c test/del_data_prot.c test/del_divide.c test/del_prot.c
test/del_rdonly.c test/elist_parent2.c test/enc_complex128.c
test/enc_complex64.c test/enc_float32.c test/enc_float64.c test/enc_int16.c
test/enc_int32.c test/enc_int64.c test/enc_int8.c test/enc_uint16.c
test/enc_uint32.c test/enc_uint64.c test/enc_uint8.c test/endian_alter_arg.c
test/endian_alter_dprot.c test/endian_alter_fprot.c test/endian_alter_index.c
test/endian_alter_rdonly.c test/endian_index.c test/eof_bit_code.c
test/eof_const.c test/eof_lincom_code.c test/eof_phase_code.c
test/eof_recurse.c test/flac_complex128.c test/flac_complex64.c
test/flac_float32.c test/flac_float64.c test/flac_int16.c test/flac_int32.c
test/flac_int64.c test/flac_int8.c test/flac_uint16.c test/flac_uint32.c
test/flac_uint64.c test/flac_uint8.c test/foffs_alter_dprot.c
test/foffs_alter_fprot.c test/foffs_alter_index.c test/foffs_alter_range.c
test/foffs_alter_rdonly.c test/foffs_index.c test/get_carray_bad.c
test/get_carray_slice_bounds.c test/get_carray_slice_type.c
test/get_carray_type.c test/get_dimin.c test/get_indir_typein.c
test/get_recip_cmpin.c test/get_sarray_bad.c test/get_sarray_slice_bounds.c
test/get_sarray_slice_type.c test/get_sarray_type.c test/get_sindir_reprz.c
test/get_sindir_typein.c test/gzip_complex128.c test/gzip_complex64.c
test/gzip_float32.c test/gzip_float64.c test/gzip_int16.c test/gzip_int32.c
test/gzip_int64.c test/gzip_int8.c test/gzip_uint16.c test/gzip_uint32.c
test/gzip_uint64.c test/gzip_uint8.c test/len_bad.c test/len_const.c
test/len_string.c test/len_type.c test/lzma_xz_complex128.c
test/lzma_xz_complex64.c test/lzma_xz_float32.c test/lzma_xz_float64.c
test/lzma_xz_int16.c test/lzma_xz_int32.c test/lzma_xz_int64.c
test/lzma_xz_int8.c test/lzma_xz_uint16.c test/lzma_xz_uint32.c
test/lzma_xz_uint64.c test/lzma_xz_uint8.c test/madd_sarray_dup.c
test/madd_spec_parent.c test/madd_string_dup.c test/put_carray_bad.c
test/put_carray_bounds.c test/put_carray_rdonly.c test/put_carray_type.c
test/put_sarray_bad.c test/put_sarray_bounds.c test/put_sarray_rdonly.c
test/put_sarray_type.c: Added.
2016-11-24 D. V. Wiebe <getdata@ketiltrout.net> svn:1118, 1119
* src/internal.h: Add GD_CO_REPR and GD_CO_REPRZ flags.
* src/name.c (_GD_SlashDot): Don't match '.z' unless GD_CO_REPRZ is set.
* src/name.c (_GD_StripCode): Keep a representation suffix if GD_CO_REPR is
set. If GD_CO_REPR and GD_CO_REPRZ set, add a disambiguating .z if needed.
* src/flush.c (_GD_WriteFieldCode): Add GD_WFC_NAME flag. Set GD_CO_REPR
and/or GD_CO_REPRZ in strip_flags when appropriate.
* src/flush.c (_GD_PadField): Call _GD_WriteFieldCode with GD_WFC_NAME set.
* src/flush.c (_GD_FieldSpec) src/flush.c (_GD_FlushFragment): For
/ALIAS, /HIDDEN, and /REFERENCE directives, add GD_WFC_NAME to
_GD_WriteFieldCode call.
* src/name.c (_GD_CodeOffsets): Fix offset[8] calculation for repr.
* test/flush_affix.c test/flush_repr.c test/flush_repr9.c
test/flush_reprz.c: Added.
2016-11-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1117
* src/common.c (_GD_FindFieldWithParent): Remove unused DIRFILE* parameter.
2016-11-23 D. V. Wiebe <getdata@ketiltrout.net> svn:1116
* src/common.c (_GD_FindFieldWithParent _GD_FindField): Ignore an initial
dot in the field code.
* src/common.c (_GD_FindFieldAndRepr): Look for field code with repr first
to resolve the .z ambiguity.
* src/entry.c (_GD_GetScalar): Don't set an error (for gd_entry() use).
* src/entry.c (gd_validate): If _GD_CalculateEntry() fails, return early.
* test/get_const_bad.c test/get_const_reprz.c test/get_dot.c test/get_reprz.c
test/index_reprz.c test/native_reprz.c test/valid_reprz.c: Added.
2016-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:1115
* src/common.c (_GD_GetRepr): Add len parameter. Don't malloc, just
decrement *len twice if matched. Don't set errors. Remove D and field_code
parameters.
* src/common.c (_GD_FindFieldAndRepr): Remove field_code and set parameters.
* src/constant.c (gd_array_len): Call _GD_FindEntry instead of
_GD_FindFieldAndRepr.
* src/entry.c (gd_aliases): Don't call gd_naliases. Resize as necessary.
2016-11-22 D. V. Wiebe <getdata@ketiltrout.net> svn:1112
* bindings/perl/src/GetData.xs: Fix a few EXTEND() calls.
* src/add.c (_GD_Add): subfield_offs is size_t. Move _GD_InvalidEntype call
earlier.
* src/internal.h (gd_private_entry_): Add len.
* src/internal.h (gd_rename_update_): Add new_len and dst_len.
* src/add.c (_GD_Add _GD_AddAlias) src/fragment.c (_GD_UpdateAffixes)
src/open.c (_GD_Open) src/parse.c (_GD_SetField): Set E->e->len.
* src/move.c (_GD_Move): Update E->e->len.
* src/add.c (_GD_FixName) src/common.c (_GD_FindField): Add len parameter.
* src/name.c (_GD_RenameCode): Add len parameter. Record E->e->len update.
* src/name.c (_GD_PerformRename): Do all the len updates.
* src/name.c (_GD_PrepareRename): Add new_len parameter.
* src/parse.c (_GD_CheckParent): Add len parameter. Update *len.
* src/parse.c (_GD_ParseFieldSpec): Add len0 parameter.
* src/common.c (_GD_pstrlencmp _GD_strlencmp _GD_FindFieldWithParent): Added.
* src/common.c (_GD_EntryCmp): Use _GD_strlencmp for comparison. This
changes the sorted entry order!
* src/common.c (_GD_FindField): Don't malloc. Use _GD_FindFieldWithParent to
find subfields of aliased fields.
* test/name_alias.c test/name_dangle.c test/name_move.c
test/name_move_alias.c test/name_name.c test/parse_sort.c: Update for
changes in entry sort.
* src/del.c (_GD_Delete): Delete meta fields the expensive way (by searching
for each one) because they aren't necessarily sorted together anymore.
* src/constant.c (gd_put_carray_slice gd_put_carray) src/entry.c (gd_aliases
gd_naliases) src/field_list.c (gd_entry_list _GD_Constants _GD_Carrays
_GD_Strings _GD_SArrays) src/globals.c (gd_reference) src/mod.c (_GD_Change
gd_alter_lincom gd_alter_clincom gd_alter_polynom gd_alter_cpolynom
_GD_AlterSpec) src/nfields.c (gd_nentries) src/putdata.c (gd_putdata64)
src/string.c (gd_get_sarray_slice gd_put_sarray_slice gd_put_sarray
gd_put_string): Call _GD_FindEntry instead of _GD_FindField.
* src/field_list.c (_GD_Carrays _GD_Strings _GD_SArrays): Add space for the
terminating record.
* src/name.c (_GD_PerformRename): Don't allow rdat==NULL.
* src/move.c (_GD_Move): Only call _GD_PerformRename if rdat is non-NULL.
* test/alter_bit_in.c test/alter_divide_in.c test/alter_mplex_in.c
test/alter_phase_in.c test/alter_window_in.c test/alter_window_op.c: Free
entry strings.
* test/cvlist_array_long.c: Check number returned.
* test/enc_add.c test/enc_del.c test/enc_enoent.c test/enc_move_from.c
test/enc_nframes.c test/enc_seek.c: Added.
* test/bzip_add.c test/bzip_enoent.c test/bzip_move_from.c
test/bzip_nframes.c test/bzip_seek.c test/flac_add.c test/flac_enoent.c
test/flac_nframes.c test/flac_seek.c test/gzip_add.c test/gzip_del.c
test/gzip_enoent.c test/gzip_move_from.c test/gzip_nframes.c
test/gzip_seek.c test/lzma_enoent.c test/lzma_nframes.c test/lzma_xz_add.c
test/lzma_xz_nframes.c test/lzma_xz_seek.c: Use enc_*.c version.
* test/bzip_del.c test/flac_del.c test/flac_move_from.c: Added.
* test/flac_seek_far.c test/gzip_seek_far.c test/lzma_xz_del.c
test/lzma_xz_move_from.c test/zzip_nframes.c: Update.
* test/unclude_index.c test/unclude_prot.c test/unclude_rdonly.c: Call
gd_discard.
2016-11-19 D. V. Wiebe <getdata@ketiltrout.net> svn:1111
* src/fragment.c (_GD_UpdateAffixes): Always steal nsin. Caller must pass
nsl and ensure ns has a dot at the end.
* src/fragment.c (_GD_NormaliseNamespace): Added.
* src/fragment.c (gd_alter_affixes): Handle leading dots correctly.
* src/include.c (gd_include_ns) src/fragment.c (gd_fragment_namespace): Call
_GD_NormaliseNamespace.
* configure.ac: Look for features.h.
* src/internal.h: Deal with glibc-2.24's deprecation of readdir_r, I
suppose.
* test/fragment_ns_dot.c test/fragment_ns_dotdot.c test/fragment_ns_dotns.c
test/fragment_ns_nsdot.c test/include_ns_dotdot.c test/move_ns.c
test/move_nsns.c: Added.
2016-11-18 D. V. Wiebe <getdata@ketiltrout.net> svn:1110
* src/open.c (gd_desync): Moved from fragment.c.
* src/open.c (_GD_Open): Statickify.
* src/internal.h: Renamed gd_fragment_t.prefix and gd_fragment_t.suffix to
px and sx, and add pxl and sxl to match namespace handling.
* src/flush.c (_GD_FlushFragment): Handle /INCLUDE affixes directly.
* src/getdata.h.in: GD_EN_DOTTED deleted.
* src/internal.h: GD_EN_EARLY internal entry flag, does basically the
same thing that GD_EN_DOTTED did.
* src/add.c (_GD_Add): Set GD_EN_EARLY when appropriate.
* test/add_dot10.c test/add_dot5.c test/name_dot10.c test/name_dot5.c
test/name_dot5r.c: Remove references to GD_EN_DOTTED.
* src/parse.c (_GD_SubfieldCode): Remove nso parameter.
* src/parse.c (_GD_ParseNamespace): Simplify /NAMESPACE: it now is always
relative to the fragment rootspace. An initial . is ignored.
* src/include.c (_GD_SetFieldAffixes): Use memcpy instead of sprintf.
Handle namespace better.
* src/include.c (_GD_Include _GD_SetFieldAffixes): Update for /NAMESPACE
changes: parser_state_->ns now holds only the namespace part relative to
fragment rootspace.
* test/parse_include_ns2.c test/parse_name_dot.c test/parse_ns_dotdot.c
test/parse_nsf_dot.c test/parse_nsf_sub.c: Update test.
* test/parse_nsf_par.c test/parse_nsf_refrel.c test/parse_nsf_rpar.c:
Deleted.
* src/include.c (_GD_IncludeAffix): Renamed form gd_include_affix to get
parser_state function name correct.
* src/include.c (gd_include_affix): Added.
* src/include.c (_GD_CollectFragments): Deleted. Duplicated by
_GD_SubFragmentList in fragment.c.
* src/include.c (gd_uninclude): Call _GD_SubFragmentList.
* bindings/matlab/gd_include.c: Renamed from gd_include_ns.c
* bindings/matlab/gd_include_affix.c: Renamed from gd_include.c
* bindings/perl/src/GetData.xs (include): Call gd_include_ns instead of
gd_include_affix.
* bindings/perl/simple_funcs.xsin: Removed include_ns. Added include_affix.
* bindings/php/getdata.c (gd_include_affix): Renamed from gd_include.
* bindings/php/getdata.c (gd_include): Renamed from gd_include_ns.
* bindings/python/pydirfile.c (gdpy_dirfile_include): Re-order keywords.
* man/gd_fragment_namespace.3: Added.
* src/add.c (_GD_InvalidEntype): Parameterise check.
* src/add.c (_GD_BadType): Added.
* src/add.c (_GD_Add): Call _GD_BadType to check storage type.
* test/alter_carray_type.c test/alter_raw_type.c: Expand test.
* src/add.c (_GD_Add): Add init_scalar parameter to avoid unnecessary
scalar initialisations.
* src/add.c (_GD_Add _GD_AddAlias): Reject aliases as parents. Call
_GD_SlashDot to find namespace.
* src/fragment.c (_GD_CheckAffixes): Deleted. Replaced by
_GD_UpdateAffixes.
* src/fragment.c (_GD_UpdateCode _GD_UpdateAffixes) src/name.c (_GD_SlashDot
_GD_CodeOffsets _GD_StripCode _GD_BuildCode): Added.
* src/internal.h: Replace GD_MC_ flags with GD_CO_ flags.
* src/fragment.c (_GD_ChangeAffixes) src/name.c (_GD_MungeCode): Deleted.
Functionality broken up into smaller pieces: _GD_SlashDot, _GD_CodeOffsets,
_GD_StripCode, _GD_BuildCode in name.c plus _GD_UpdateCode in fragment.c.
* src/add.c (_GD_Add) src/flush.c (_GD_WriteFieldCode) src/move.c (_GD_Move)
src/parse.c (_GD_CodeFromFrag): Replace _GD_MungeCode calls with
_GD_StripCode or _GD_BuildCode calls.
* src/parse.c (_GD_InputCode): Just call _GD_BuildCode.
* src/name.c (_GD_RenameCode): Added.
* src/name.c (_GD_MatchCode _GD_MakeNewCode): Deleted. Functionality
combined into _GD_RenameCode.
* src/name.c (_GD_UpdateScalar _GD_UpdateInField): Do little other than
call _GD_RenameCode and dirty caches.
* src/internal.h: Update gd_rename_data_ struct. Add gd_rename_update_
struct.
* src/name.c (_GD_CleanUpRename _GD_PrepareRename): Update. Call
_GD_RenameCode for subfields.
* src/name.c (_GD_PerformRename): Handle rename directly.
* src/name.c (_GD_Rename): Create new filebase with _GD_StripCode to
properly handle namespaces.
* src/flush.c (GD_WRITE_INFIELD GD_WRITE_CONST): Added.
* src/include.h src/add.c (_GD_Add) src/common.c (_GD_FindEntry
_GD_FindFieldAndRepr) src/move.c (_GD_Move) src/parse.c (_GD_ParseFieldSpec):
Remove dot_list stuff.
* src/mod.c (_GD_AlterSpec): Only undo the parser's handiwork on success.
* src/entry.c (_GD_FreeE): Don't assume the caller has set n_fields or
poly_ord to a valid value.
* src/errors.c: Fix GD_E_BAD_TYPE string.
* src/field_list.c (_GD_SArrays): Don't leak.
* src/add.c (gd_add_polynom gd_add_cpolynom): Fix poly_ord check.
* test/add_cpolynom.c test/add_polynom.c: Update.
* test/add_alias_index.c test/add_alias_name.c test/add_alias_ns.c
test/add_alias_prot.c test/add_alias_rdonly.c test/add_bit_inaff.c
test/add_carray_entry.c test/add_carray_type.c test/add_clincom_nfields.c
test/add_const_type.c test/add_cpolynom_order.c test/add_divide_inaff1.c
test/add_divide_inaff2.c test/add_lincom_nfields2.c test/add_linterp_inaff.c
test/add_meta_parent.c test/add_mplex_inaff.c test/add_mplex_period.c
test/add_phase_inaff.c test/add_polynom_inaff.c test/add_polynom_order.c
test/add_polynom_order2.c test/add_raw_prot.c test/add_recip_inaff.c
test/add_spec_index.c test/add_spec_prot.c test/add_string_entry.c
test/add_window_inaff.c test/alter_bit_in.c test/alter_code.c
test/alter_const_type.c test/alter_divide_in.c test/alter_entry_entype.c
test/alter_lincom_nfields.c test/alter_linterp_in.c test/alter_mplex_in.c
test/alter_phase_in.c test/alter_prot.c test/alter_raw_prot.c
test/alter_rdonly.c test/alter_sarray_nop.c test/alter_sbit.c
test/alter_spec_code.c test/alter_spec_format.c test/alter_spec_nil.c
test/alter_window_in.c test/alter_window_op.c test/cvlist_array_long.c
test/cvlist_array_meta_meta.c test/cvlist_array_meta_parent.c
test/cvlist_long.c test/cvlist_meta_meta.c test/cvlist_meta_parent.c
test/elist_parent.c test/elist_type.c test/fragment_affix_alter_dotpx.c
test/fragment_affix_alter_index.c test/fragment_affix_alter_nons.c
test/fragment_affix_alter_ns.c test/fragment_affix_alter_pns.c
test/fragment_affix_index.c test/fragment_ns_alter_nop.c
test/fragment_ns_alter_pdel.c test/fragment_parent_index.c
test/fragment_parent_root.c test/include_prot.c test/madd_alias_alias.c
test/madd_alias_subsub.c test/madd_aliasmeta.c test/madd_clincom_nfields.c
test/madd_cpolynom_order.c test/madd_lincom_nfields.c test/madd_parent_bad.c
test/madd_polynom_order.c test/madd_raw.c test/madd_subsub.c test/move_code.c
test/move_data_enc_un.c test/move_data_prot.c test/move_entype.c
test/move_nop.c test/move_rdonly.c test/name_code.c test/name_index.c
test/name_meta2.c test/name_prot.c test/name_rdonly.c test/parse_huge.c
test/parse_include_nodir.c test/parse_ns_include.c test/parse_ns_include_ns.c
test/svlist_array_long.c test/svlist_array_meta_meta.c
test/svlist_array_meta_parent.c test/svlist_long.c test/svlist_meta_meta.c
test/svlist_meta_parent.c test/unclude_index.c test/unclude_keep.c
test/unclude_prot.c test/unclude_rdonly.c: Added.
* test/add_code.c test/add_ns.c: Zero memory to avoid crashing.
* test/cvlist_array_meta.c test/cvlist_array_meta0.c
test/cvlist_array_meta_free.c test/cvlist_array_meta_hidden.c
test/svlist_array_meta_free.c test/svlist_array_meta_hidden.c: error is
signed.