netcdf-c/nc_test
Dennis Heimbigner 36102e3c32 Improve UTF8 Support On Windows
re: Issue https://github.com/Unidata/netcdf-c/issues/2190

The primary purpose of this PR is to improve the utf8 support
for windows. This is persuant to a change in Windows that
supports utf8 natively (almost). The almost means that it is
still utf16 internally and the set of characters representable
by utf8 is larger than those representable by utf16.

This leaves open the question in the Issue about handling
the Windows 1252 character set.

This required the following changes:

1. Test the Windows build and major version in order to see if
   native utf8 is supported.
2. If native utf8 is supported, Modify dpathmgr.c to call the 8-bit
   version of the windows fopen() and open() functions.
3. In support of this, programs that use XGetOpt (Windows versions)
   need to get the command line as utf8 and then parse to
   arc+argv as utf8. This requires using a homegrown command line parser
   named XCommandLineToArgvA.
4. Add a utility program called "acpget" that prints out the
   current Windows code page and locale.

Additionally, some technical debt was cleaned up as follows:

1. Unify all the places which attempt to read all or a part
   of a file into the dutil.c#NC_readfile code.
2. Similary unify all the code that creates temp files into
   dutil.c#NC_mktmp code.
3. Convert almost all remaining calls to fopen() and open()
   to NCfopen() and NCopen3(). This is to ensure that path management
   is used consistently. This touches a number of files.
4. extern->EXTERNL as needed to get it to work under Windows.
2022-02-08 20:53:30 -07:00
..
bad_cdf5_begin.nc add a test program to read a CDF-5 file with a corrupted header 2017-09-16 14:04:39 -05:00
CMakeLists.txt Codify cross-platform file paths 2021-03-04 13:41:31 -07:00
error.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
error.h More copyright stanza updates. 2018-12-06 14:56:42 -07:00
f03tst_open_mem.nc Fix use of 'int' to represent 'hid_t' that caused HDF5 1.10 to fail. 2018-05-30 14:47:37 -06:00
large_files.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
make_test_file.sh Swapped /bin/bash for /bin/sh to test on osx. 2018-08-12 23:01:08 -06:00
Makefile.am Fix additional S3 support issues 2021-10-29 20:06:37 -06:00
nc_enddef.cdl Fix additional S3 support issues 2021-10-29 20:06:37 -06:00
nc_sync.cdl moving to trunk subdir 2010-06-03 13:24:43 +00:00
nc_test.c Turn verbose output on in nc_test. 2021-06-16 16:34:06 -06:00
nc_test.html moving to trunk subdir 2010-06-03 13:24:43 +00:00
quick_large_files.c Spelling fixes 2019-09-18 08:03:01 -06:00
ref_tst_diskless2.cdl - Implemented diskless files for both netcdf classic and extended. 2012-03-26 01:34:32 +00:00
ref_tst_diskless3_create.cdl Fix cmake X mmap 2019-04-19 20:32:26 -06:00
ref_tst_diskless3_open.cdl Fix cmake X mmap 2019-04-19 20:32:26 -06:00
ref_tst_http_nc3.cdl Use the built-in HDF5 byte-range reader, if available. 2020-09-24 14:33:58 -06:00
ref_tst_http_nc4a.cdl Use the built-in HDF5 byte-range reader, if available. 2020-09-24 14:33:58 -06:00
ref_tst_http_nc4b.cdl Mostly revert the filter code to reduce its complexity of use. 2020-09-27 12:43:46 -06:00
ref_tst_http_nc4c.cdl Fix additional S3 support issues 2021-10-29 20:06:37 -06:00
run_cdf5.sh add another test program to check if a CDF-5 file has a corrupted header 2017-09-16 14:30:09 -05:00
run_diskless2.sh Fix more memory leaks in netcdf-c library 2018-11-15 10:00:38 -07:00
run_diskless5.sh typo 2017-05-03 10:19:35 -06:00
run_diskless.sh Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
run_inmemory.sh Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
run_mmap.sh Fix cmake X mmap 2019-04-19 20:32:26 -06:00
run_pnetcdf_test.sh Use PnetCDF instead of parallel-netcdf to avoid confusion with 2018-09-17 17:18:48 -05:00
t_nc_p5.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
t_nc.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
test_byterange.sh Add complete bitgroom support to NCZarr 2022-01-24 15:22:24 -07:00
test_get.m4 Docs migration 2021-11-11 10:47:49 -07:00
test_put.m4 Fix an accidentally-introduced bug. 2021-07-13 12:07:56 -06:00
test_read.m4 Eliminate a lot of 'result of operation is undefined or garbage' errors reported by static analysis. These errors appeared to be false positives as there was logic that should prevent their occurance, but it's possible that optimization would result in these error states occuring. 2021-07-12 16:40:27 -06:00
test_write.m4 Eliminate a lot of 'result of operation is undefined or garbage' errors reported by static analysis. These errors appeared to be false positives as there was logic that should prevent their occurance, but it's possible that optimization would result in these error states occuring. 2021-07-12 16:40:27 -06:00
testnc3perf.c cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
tests.h windows: detect Windows using the correct define name 2019-11-07 07:55:47 -05:00
tst_addvar.c cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
tst_atts3.c fixed comment 2020-08-12 07:59:45 -06:00
tst_big_rvar.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_big_var2.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_big_var6.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_big_var.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_byterange.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_cdf5_begin.c cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
tst_cdf5format.c Added int i and j declarations 2019-02-12 15:10:39 +00:00
tst_def_var_fill.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_default_format_pnetcdf.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_default_format.c Merge remote-tracking branch 'origin/license_update.wif' into pr-aggregation.wif 2018-12-11 17:08:21 -05:00
tst_diskless2.c Fix cmake X mmap 2019-04-19 20:32:26 -06:00
tst_diskless3.c Spelling fixes 2019-09-18 08:03:01 -06:00
tst_diskless4.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_diskless5.c Improve UTF8 Support On Windows 2022-02-08 20:53:30 -07:00
tst_diskless5.cdl Add testcase 2017-05-03 09:58:49 -06:00
tst_diskless6.c Improve UTF8 Support On Windows 2022-02-08 20:53:30 -07:00
tst_diskless.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_err_enddef.c Addendum: This PR has been extended to include 2021-04-02 18:39:50 -06:00
tst_formats.c Mostly revert the filter code to reduce its complexity of use. 2020-09-27 12:43:46 -06:00
tst_formatx_pnetcdf.c warnings fixes 2019-01-03 07:07:13 -07:00
tst_global_fillval.c Merge remote-tracking branch 'origin/license_update.wif' into pr-aggregation.wif 2018-12-11 17:08:21 -05:00
tst_inmemory.c Improve UTF8 Support On Windows 2022-02-08 20:53:30 -07:00
tst_inq_type.c merged ejh_test_null_vars_stride this time I mean it! 2019-01-03 06:36:58 -07:00
tst_large_cdf5.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_large.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_max_var_dims.c cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
tst_meta.c cleaned up makefile.am, added config.h to some tests 2019-01-02 05:31:15 -07:00
tst_misc.c Improve UTF8 Support On Windows 2022-02-08 20:53:30 -07:00
tst_names.c Revert "Revert "Fix nczarr-experimental: improve build support, disengage hdf5 vs netcdf4 flags, and find AWS libraries"" 2020-08-17 19:15:47 -06:00
tst_nofill2.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_nofill3.c Spelling fixes 2019-09-18 08:03:01 -06:00
tst_nofill.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_norm.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_open_cdf5.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_open_mem.c Remove need for HDF5-1.6 API being defined 2021-04-28 13:59:24 -06:00
tst_parallel2.c More copyright stanza updates. 2018-12-06 14:56:42 -07:00
tst_pnetcdf.c merged master 2019-01-02 03:52:51 -07:00
tst_small.c Spelling fixes 2019-09-18 08:03:01 -06:00
tst_utf8_phrases.c Spelling fixes 2019-09-18 08:03:01 -06:00
tst_utf8_validate.c Testing a fix for a failure I observed. 2018-12-06 17:46:30 -07:00
util.c Docs migration 2021-11-11 10:47:49 -07:00